理解modbusTCP协议及对应的四种功能码
modbs寄存器物理结构(30000和40000地址),线圈类型较为简单,省略
Bool类型:
起始地址数据偏移量 0 -> 40000或30000 (之后仅以40000地址举例)
位 0~15对应modbus某地址的从低到高的16bit
例如上图2号地址,从左到右,A字节为高位,B字节为低位
例子:区域类型:HOLDING REGISTER 起始地址:2 位: 0
modbus存储实际值(地址为40002)如下:
scada读取值(bool类型为01):
Word类型:
起始地址数据偏移量 0 -> 40000
AB两字节整形,占一位寄存器
例子:区域类型:HOLDING REGISTER 起始地址:3
modbus存储实际值(地址为40003)如下:
DWordH类型:
起始地址数据偏移量 0 -> 40001,40000
小端CDAB式读取(电气方面约定小端读写,DWord类型于此相似,为大端ABCD式读取),四字节整形,占两位寄存器
例子:区域类型:HOLDING REGISTER 起始地址:2
modbus存储实际值(地址为40002,40003)如下:
自行验证: 00000001000001111000010000001111
Float类型:
起始地址数据偏移量 0 -> 40001,40000
小端CDAB式读取(电气方面约定小端读写),四字节浮点型(自行了解),占两位寄存器
例子:区域类型:HOLDING REGISTER 起始地址:4
modbus存储实际值(地址为40005,40004)如下:
自行验证: 11000000000000001111111111111111
保留小数位后四位
String类型:
起始地址数据偏移量 40000 + x/2
大端翻转BADC式读取,20字节,每字节为Ascll码转字符
例子: 区域类型:HOLDING REGISTER 起始地址:4 长度:20
modbus存储实际值(地址为40016~40025)如下:
a~t共20个字符