http://www.gkong.com 2022-11-08 11:19 成都亿佰特电子科技有限公司
设备驱动与变量定义
为了节省流量采用手动发送,因此不能使用官方驱动,需要使用用户自定义驱动,这里提供百度网盘下载地址(见评论区)。链接:https://pan.baidu.com/s/1ORy2UFOlHeRCXraYKC1xUA 提取码:tl3i
添加用户自定义设备,不能使用官方提供的Modbus RTU驱动,官方驱动不支持手动发送,此例程是基于整点自动发送指令实现的,可以将流量消耗降到最低,若对流量消耗无限制也可使用官方驱动实现,此处不做讲解。
无论是采用自定义驱动还是官方驱动,对于无线设备都需要适当增加超时时间,在后续实机调试时说明方法。
本例程使用变量表如下:
变量名 |
描述 |
类型 |
初值 |
注释 |
collection_run |
用于标记通讯执行中 |
开关型 |
0 |
0:空闲 1:忙 |
meter_IrAt_01 |
存储电流变比 |
数值型 |
1 |
1-9999 |
meter_UrAt_01 |
存储电压变比,使用时需要×0.1 |
数值型 |
10 |
1-9999 |
meter_state_01 |
设备状态 |
开关型 |
0 |
0:通讯正常 1:通讯异常 |
nReturn |
Modbus异常码 |
开关型 |
0 |
返回码 |
meter_value_01 |
有功电能综合,原始值,不含变比 |
数值型 |
0 |
—— |
resend_set_value |
重发次数配置值 |
开关型 |
3 |
—— |
resend_value |
重发次数运行值 |
开关型 |
0 |
—— |
MCGS嵌入式组态环境的“运行策略”下添加用户策略,具体配置如下:
MCGS嵌入式组态环境的“运行策略”下添加循环策略,并添加两个策略行,一个用于总线繁忙时用于延时,一个用于触发采集,配置如下:
脚本程序与调用策略配置如下图所示:
人机交互界面制作
添加人机交互界面“HOME”,并在启动策略中添加手动获取变比与有功总功率的Modbus指令发送函数如下:
!SetDevice(设备0,6,"ReadP(4,7,WUB,2,meter_IrAt_01,meter_UrAt_01,nReturn)")
!SetDevice(设备0,6,"ReadP(4,4127,DF,1,meter_value_01,nReturn)")
添加13个“标签”控件,以下仅说明有关联函数“标签”,添加2个“按钮”控件。
采集状态,使用两个“标签”控制,分别在变量“meter_state_01”等于1或者0时隐藏。
通过DTSU666手册提供计算公式,显示当前真实有功总功率。
电流变比与电压变比仅关联对应变量显示,不再说明。
手动采集调用用户自定义策略“采集执行”,该按钮在自动采集过程中不生效。
更新变比“按钮”控件调用脚本函数实现:
!SetDevice(设备0,6,"ReadP(4,7,WUB,2,meter_IrAt_01,meter_UrAt_01,nReturn)")
相关文章:MCGS用户程序云端授权系统设计