分类: modbus |
整理:
master
slave
看代码直观点:
slave.py
http://s15/mw690/6fe87f87ge00936452b2e&690我所理解的master和slave" TITLE="modbus
运行后是这样:
http://s9/mw690/6fe87f87gdf8190f1f738&690我所理解的master和slave" TITLE="modbus
master.py
http://s6/mw690/6fe87f87ge00b444830e5&690我所理解的master和slave" TITLE="modbus
运行后是这样:
http://s11/mw690/6fe87f87gdf819535654a&690我所理解的master和slave" TITLE="modbus
从上面可知,slave.py将2.7被,打包解包成(16428,52429)存放在 block1,master.py到block1拿(16428,52429)再反过来打包解包成原来的float型2.7
在Modbus 模拟器上设置:
http://s9/mw690/6fe87f87ge008fdcb76e8&690我所理解的master和slave" TITLE="modbus
需要把数据打包再拆包为modbus能认识的东西才能放数值拿数值
slave端的unpack好像只能HH或>HH或H或>H,用>f就存不了,不知为什么。。。有待考究
slave 也可以通过 bb = slave_1.get_values('block1', 0, 2) 来得到数值
master 也可以通过cc = struct.unpack('>HH',
struct.pack('>f', 2.8))
一个slave可以设置多个block,但不同的block地址不可以一样。理解为可将slave切为多个地址段,每个block上的地址需要是连续的,如果需要在不连续的地址段放置数值即可使用多block。
查看端口是否已经开放 root权限
/etc/init.d/iptables status
/sbin/iptables -I INPUT -p tcp --dport
/etc/rc.d/init.d/iptables save #保存配置
/etc/rc.d/init.d/iptables restart #重启服务
===================================================================
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
待续。。。