搬家第22天-Citect 通过ModbusTCP协议连接申克皮带秤仪表读取数据和累积量清零
现场安装了申克皮带秤,需要把信号引入citect显示,秤仪表支持modbus协议,本以为是轻松事情,还是折腾了一天,现把关键点记下来,便于今后类似情况处理。
首先皮带秤仪表配置了Modbus TCP协议和IP地址。在Citect的通讯向导配置选择Modicon Quantum PLC,按照TCP协议。板参数默认,端口配置特殊参数写-I10.21.49.192 -P502 -T,I10.21.49.192 是仪表的IP地址。IO设备参数设置中,地址写1,协议修改成ModNet。我需要取瞬时量、累积量1、累积量2、累积量3,按照申克官方手册,这4个变量地址分别是4001872、4001874、4001876、4001878,在citect中,地址都需要偏移1,写成4001873、4001875、4001877、4001879。在Citect项目管理器工具-配置参数中,建一个Section,名字叫做ModNet,下面建一个参数Parameter,数值为1,这是为了将采集上来的数据高低位交换,具体可以看citect的帮助文件。通过这些设置,就可以读取参数了。
读取的3个累积量是用来做日累计、月累积和总累积的,由于申克秤仪表自身不能根据时钟自动清零,因此只能在上位机来做。根据手册,可以远程对累积量1和累积量2清零。累积量1清零是通过对地址000326发一个脉冲,累积量2清零是通过对地址000327发一个脉冲。和前面real类型数据一样,这两个bool量地址也需要偏移1为,也就是说在citect中对000327和000328发脉冲。对于日累计,是每天0:0:0清零,对于月累积是每月1号0:0:0清零。我在项目编辑器的系统-事件中写赋值语句。日累计清零,先建一个事件,时间选00:00:00,周期是24:00:00,对000327的变量=1;然后再建一个事件,时间选00:00:05,周期是24:00:00,对000327的变量=0,相当于在每天00:00:00发一个5秒的脉冲给000327,把累积量1清零。
月累积清零,先建一个事件,时间选00:00:00,周期是1st,对000328的变量=1;然后再建一个事件,时间选00:00:05,周期是1st,对000328的变量=0,相当于在每天00:00:00发一个5秒的脉冲给000328,把累积量2清零。
通过上面4个事件,就可以日累计和月累积清零了。需要注意的是,1st的周期,我在7.0中文版编译时,始终说周期定义错误,我换成英文版后,就没有这个错误了,这个应该是软件的bug。事件定义完成后,还需要在项目管理器的计算机设置向导中启用上面定义的事件才行。