Name=ups_st_on_battery   Title=UPS On battery

Data type=int16   R/W=Read Only

Address=40004

Transfer=js  Data type=bool

>
return ($input & 1<<4)>0; class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">

Name=ups_st_overload   Title=UPS Overload

Data type=int16   R/W=Read Only

Address=40004

Transfer=js  Data type=bool

>
return ($input & 1<<5)>0; class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
2.1.2 电池充电状态机(%)

40006这个地址是电池充电状态——0-100的百分比,直接提取数据就行

Name=battery_soc   Title=电池充电状态

Data type=int16   R/W=Read Only

Address=40006

2.1.3 电池运行剩余分钟数

40007这个地址是电池在当前功耗情况下,如果市电断开,电池能够支持的剩余分钟数。此数据会根据你当前UPS输入功率动态变化。

Name=rt_remain   Title=运行时剩余分钟

Data type=int16   R/W=Read Only

Address=40007

2.1.4 UPS内部温度

40009这个地址是UPS内部温度,也即是电池温度。

Name=in_temp   Title=UPS内部温度

Data type=int16   R/W=Read Only

Address=40009

2.1.5 UPS输入输出电压

40018是UPS输入电压

Name=inputv   Title=输入电压

Data type=int16   R/W=Read Only

Address=40018

40015是UPS实际输出电压

Name=ioutv_actual   Title=实际输出电压

Data type=int16   R/W=Read Only

Address=40015

2.1.6 UPS电池低电压持续时间(分钟)——这是一个坑

40032是UPS电池低电压之后还能够支撑的分钟数

Name=battery_low_dur   Title=Low Battery Duration

Data type=int16   R/W=Read Only

Address=40032

2.2 UPS最终数据列表

机房环境很好,我这个项目目前使用这些数据也够了。如果你在更复杂的场合,那么请根据需要配置更多的监控数据即可。

3 运行测试

3.1 一个Modbus协议的坑

以上数据配置看着都正常,但我在现场启动此项目时,发现battery_low_dur这个标签一直取不到数据。而其他数据确实好的。从数据地址上看,这个标签数据地址从十几一下子第32个位置。这个很明显就和Modbus协议数据包大小有关。

这里我补充一个Modbus协议细节,主设备发起请求和从设备应答数据,这个数据包有个最大值,在Modbus协议中好像是128(我如果弄错请指出来)。但我在实际项目接触的各种设备中,我发现一些设备实现此协议的时候,可能受到单片机限制,很可能这个数据包会更小,比如甚至都不能超过30个字。因此,我就怀疑我发送请求的时候,允许的数据包大小还是太大了。那么如何解决呢。往下看

3.2 发现并解决办法

请点击apc9631这个设备节点,然后在右边点击Properties选项卡。如图:

找到这个设备和Modbus相关的分组 Block Size。缺省情况下是四种读取数据的模式最大都是32个。如果我们配置的标签数据超过这个值,那么会被切分成多次请求。我在现场把下面两个字读取的最大值都设置成20,这样就减少了一次读取的数据大小(修改之后,还需要点击Apply确保起作用)。然后问题就解决了。

重新启动刚才的项目。这下一切正常,那么你会看到UPS数据都能显示正常。你可以尝试在UPS上手工切换by pass模式(这个不会影响UPS对外供电,除非你运气极差正好外部供电停电了),看看里面的状态数据是否跟随变化。

4 设备相关工作完成

至此,我们已经完成了对接现场全部设备和模块工作,接下来主要工作就是在软件上使用这些数据了。后面我们还需要使用软件制作监控画面,并且部署到现场的触摸屏监控计算机中;还需要对接短信平台推送报警信息。

为了体现本系列文章手把手的高要求,我们准备下一篇单独详细告诉你如何使用IOT-Tree制作监控画面。其实,这样的文章写起来很繁琐,你现场软件操作可能几秒钟的事,我教你的时候写文字那可费老劲了。唉:谁让我取名“手把手”的呢!

 

data-report-view="{"mod":"1585297308_001","spm":"1001.2101.3001.6548","dest":"https://blog.csdn.net/qq_40065619/article/details/135381707","extend1":"pc","ab":"new"}">>
注:本文转载自blog.csdn.net的柱子jason的文章"https://blog.csdn.net/qq_40065619/article/details/135381707"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接

评论记录:

未查询到任何数据!