(1)、
MODBUS 分为 0X ,1X,3X,4X 四种寄存器。
0X--->离散输出 (可读可写) 对应PLC为:DO
1X--->离散输入(只读) 对应PLC为:DI
3X--->输入寄存器16位(只读) 对应PLC为:AI
4X--->保持寄存器16位(可读可写) 对应PLC为:AO
同时根据上述规约,还可以扩展0X和4X,其中OX不仅可以对应DO,同时还可以对应上位机发送的“按钮”
4X不仅可以对应AO,同时还可以对应上位机的“设置参数”
(2)、为什么MODBUS寄存器地址从40000开始而不从0开始,有什么特别的说法吗,还是仅仅是大家都习惯这样用
(A)、寄存器地址从40001开始的
是因为它属于4X寄存器,同时0X寄存器是从00001开始的,1X寄存器是从10001开始的,其余雷同。
(B)、实际上40001在你的程序中对应缓冲区的第0个地址单元,
假如:你的程序定义一段缓冲区BUFFER(20)要和上位机的40001-40020交换数据,则
40001 ----> BUFFER(0)
40002 ----> BUFFER(1)
40003 ----> BUFFER(2)
40004 ----> BUFFER(3)
........................
40020 ----> BUFFER(19)
MODBUS寄存器从40000开始而不从0开始,有什么特别的说法吗,还是仅仅是大家都习惯
于 2021-05-25 18:06:52 首次发布