moubus协议
寄存器协议地址指指通信时使用的寄存器地址,例如PLC地址40001对应寻址地址0x0000,40002对应寻址地址0x0001,寄存器寻址地址一般使用16进制描述。再如,PLC寄存器地址40003对应协议地址0002,PLC寄存器地址30003对应协议地址0002,虽然两个PLC寄存器寄存器通信时使用相同的地址,但是需要使用不同的命令访问,所以访问时不存在冲突。
moubus读取数据
参考资料:[](https://blog.youkuaiyun.com/xukai871105/article/details/16368615
moubus_tk实现
import serial
import modbus_tk
import modbus_tk.defines as cst
from modbus_tk import modbus_rtu
import struct
import json
#找本机的端口号是多少
PORT = 'COM6'
def WriteFloat(value,reverse=False):
#!:network (= big-endian),f:浮点数,此方法把浮点数转换为字节流
y_bytes = struct.pack('!f',value)
#字节流转化位16进制
y_hex = y_bytes.hex()
n,m = y_hex[:-4],y_hex[-4:]
n,m = int(n,16),int(m,16)
if reverse:
v = [n,m]
else:
v = [m,n]
return v
def ReadFloat(*args,reverse=Fals