modbus RTU/TCP,网络回复

来源:互联网 发布:群里人一键加好友软件 编辑:程序博客网 时间:2024/06/06 01:09



==========================================================================================================

求教,MODBUS设备地址从40000开始而不从0开始,有什么特别的说法吗,还是仅仅是大家都习惯?

我来帮助你解答
(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/TCP 在 stm32 上的移植?给个思路?

用网络协议栈处理TCP数据,送入modbus协议栈;解析完后用网络协议栈使用网络协议发送数据就可以了。


MODBUS-TCP 通信做服务器(从机)大家都是移植freemodbus-tcp吗?

网上查了很多例子 都是modbus-tcp 做主机的(客户端)例子比较,做下位机从机(服务器)的例子很少,好像都是有关freemodbus -tcp移植的资料
想直接移植freemodbus 但没完全弄透,就没有自己写的从机返回代码吗, modbus中的从机例子很多的啊
请教下大家 有相关的链接 实例,或代码链接就更好了,

一般都是自己写的,其实MODBUS-TCP与MODBUS-RTU是一样的,区别是TCP不用地址字节,RTU的第一个字节是地址。

==========================================================================================================
0 0