在上一篇文章中《Micrologix1400 ModbusTCP通讯之master | 答题赠书》,我们配置了如何使用MSG指令将第三方ModbusTCP协议的数据读取到Micrologix1400 PLC内,但是只能传输整型数据。同样地,1400PLC作为ModbusTCP Slave(Server)时,也只能传输整型数据,那如果我们真的需要传输一些浮点数该怎么办呢?
- Micrologix1400 PLC作为ModbusTCP Slave功能时配置 很简单,上文已经简单介绍过,再来回顾一下。
打开logix500软件里面的channel Configuration选项,勾选channel-1通道的ModbusTCP Enable 复选框,配置modbusTCP协议地址区在PLC里面对应的数据文件。本文中,0xxxx区对应B12数据文件,4xxx区地址对应N10文件。1xxxx和3xxxx我们一般很少用到,默认即可。
此时将程序下载到PLC后,使用Modscan软件就可以连接到该PLC了。为了测试方便,可在N10文件里面模拟几个数值,在modscan里面查看。
- 再来看看浮点数的问题
在Micrologix系列 PLC内,数据类型不一样表示的数据范围也就不一样,如下表:
可以看出来,Integer类型是与标准modbus协议支持的3xxx和4xxx的WORD类型相匹配的,所以我们配置的时候一直选择Integer类型传输数据,但是其表示的数据范围时有限的,如果有更大的数据要传输该怎么办呢?
实际上,在实际的使用中,这种问题是经常遇到的,在MicrologixPLC内,我们只能将Float类型或Long类型的数据转换为2个Integer类型的数据,通过Modbus协议传输到第三方设备后再将这2个Integer类型数据经过换算转换为可识别的Float和Long。
思考题:
如果PLC内有一些浮点数需要传输该怎么办