Mobus_RTU协议是什么,当你有关注这个协议时,说明你已经在应用或者准备应用这个协议了。我刚接触RTU协议时,被协议里的地址搞晕了。比如说保存寄存器的开始地址是40001?有软件调试软件也是提示这样,工业的触摸屏也是写着4x表示保存寄存器,PLC也有这样写的。我后来用调试软件对RTU的指令分析,才发现是我理解错了,4x或4000x只是为了方便大家知道寄存器类型,就是文字上跟大家沟通的一种说法而已,真正的地址,是跟你使用的RTU指令相关,比如03、06 、16指令对应的是保存寄存器读取和写入,01是对输出线圈的读取。。。。各种寄存器或线圈地址统一都是第一个是00 00 ,第二个地址是 00 01。。。比如 01 03 00 00 00 01 84 0A 指令,就是读取保存寄存器4x的第一个地址。要注意的是,有些调试软件地址是以40001来表示第一个地址。反正记住:寄存器的第一个地址,生成的RTU通讯指令的地址是 00 00就行。
调试RTU,要么自写上位机,要么用工业触摸屏或组态,要么用调试软件,目前软件下载站的RTU软件,有Modbus Poll、Modbus Slave、Modbus SCAN等等,这些软件都能单个或批量读取或写入寄存器的内容,但在实际项目中,我们要的是监测通讯代码,解析代码的正确性,还有针对项目的功能进行调试。
基于这个原因,我自己在做项目时,编写了一款好用的Mobus_RTU调试生成工具,先看界面:
1.1 RTU指令生成:根据你的选择设置生成标准的RTU通讯指令。
1.2 与从机通讯调试:可以与RTU从机通讯
1.3 解析接回的指令:通讯时,RTU从机回传的数据进行解析,还带数据不同类型的显示(十六制、十进制),如果是线圈或输入点,还能直观看到ON和OFF状态
1.4 命令列表,保存常用的指令:你可以根据你的项目生成各个指令并保存,下次直接进入调试。
1.5 快捷功能:具有简单组态功能,点动、切换、复位、多条功能
点动:设好指令后,按下运行时,发送A指令,松开运行时,发送B指令(组态的开关)
切换:设好指令后,点击运行时,发送A指令,再次点击运行时,发送B指令,如此循环(组态的开关)
复位:设好指令后,点击运行时,只发送A指令(组态的单次写个数据或读数据)
多条:设好指令后,点击运行时,只发送A指令、发送B指令、发送C指令(组态的数据设定、读取)
总之,这个软件,无论你是做项目还是学习RTU都是一款超级利器。