Modbus这样学,没有理由学不会的
大家好!我是付工。
有一些学员问:怎么学习上位机通信。
我建议是先把Modbus通信协议研究透彻。
那么怎么学习Modbus通信协议呢?
今天跟大家分享一下学习路线。
Modbus基础知识
第一阶段要学习Modbus的基础知识,下面是我整理的几个必须掌握的内容。
1、Modbus协议背景及发展历程
2、Modbus调试软件安装使用说明
3、Modbus通信协议存储区说明
4、Modbus通信协议功能码说明
5、Modbus通信协议地址模型说明
6、Modbus通信协议分类及测试
ModbusRTU报文
第二阶段是掌握Modbus报文,我们先学习ModbusRTU的报文,把ModbusRTU报文研究明白了,其他的ModbusASCII或者ModbusTCP都是大同小异的。
1、ModbusRTU通信格式说明
2、Modbus-01功能码读取输出线圈
3、Modbus-02功能码读取输入线圈
4、Modbus-03功能码读取保持型寄存器
5、Modbus-04功能码读取输入寄存器
6、Modbus-05功能码写入单输出线圈
7、Modbus-06功能码写入单寄存器
8、Modbus-0F功能码写入多输出线圈
9、Modbus-10功能码写入多保持寄存器
ModbusRTU通信库
第三阶段就是要写ModbusRTU通信库了,ModbusRTU通信库其实是串口通信与ModbusRTU报文的融合,学会ModbusRTU通信库,其他串口协议都可以触类旁通。
1、SerialBase串口打开关闭
2、SendAndReceive通用方法
3、IModbusRW读写接口实现
4、读取输出输入线圈方法编写
5、读取输出输入寄存器方法编写
6、写入单输出线圈方法编写
7、写入单输出寄存器方法编写
8、写入多输出线圈方法编写
9、写入多输出寄存器方法编写
10、写入寄存器某个位方法编写
ModbusRTU测试软件
第四阶段就是要去验证我们编写的ModbusRTU通信库的正确性,我们可以用C#编写一个类似于ModbusPoll/ModbusScan的测试软件。

1、ModbusRTU软件UI界面设计
2、通信参数初始化及串口连接
3、读取输入输出线圈方法测试
4、读取输入输出寄存器方法测试
5、写入单输出线圈方法测试
6、写入多输出线圈方法测试
7、写入单个寄存器方法测试
8、写入多个寄存器方法测试
9、写入寄存器位地址方法测试
ModbusRTU一主多从
第五阶段就是去做一些案例,比如和温湿度模块通信,和PLC通信,和仪表通信等等,包含多个从站实现一主多从,基本上这样的我们都可以用C#编写出类似的软件了。
1、RS232-422-485的区别
2、一主多从原理及接线方法
3、ModbusRTU与一主多从
4、IO采集卡与温湿度模块测试
5、西门子200Smart通信测试
6、Modbus一主多从UI界面
7、C#实现多从站轮询读取
8、C#实现多从站数据写入
9、ModbusSlave仿真多从站
ModbusTCP报文
第六阶段就该去学习ModbusTCP通信协议报文了,如果前面的ModbusRTU通信报文学得很扎实,那么ModbusTCP就很简单了,同时还能对ModbusRTU的报文有一个更深的认识和巩固。
1、ModbusTCP通信格式说明
2、ModbusTCP-01功能码读取输出线圈
3、ModbusTCP-02功能码读取输出线圈
4、ModbusTCP-03功能码读取输出线圈
5、ModbusTCP-04功能码读取输出线圈
6、ModbusTCP-05功能码读取输出线圈
7、ModbusTCP-06功能码读取输出线圈
8、ModbusTCP-0F功能码读取输出线圈
9、ModbusTCP-10功能码读取输出线圈
ModbusTCP通信库
第七阶段就是要写ModbusTCP通信库了,ModbusTCP通信库其实是以太网通信与ModbusTCP报文的融合,学会ModbusTCP通信库,其他以太网通信协议都可以触类旁通了。
1、TCPBase建立连接与断开
2、SendAndReceive通用方法
3、读取输出输入线圈方法编写
4、读取输出输入寄存器方法编写
5、写入单输出线圈方法编写
6、写入单输出寄存器方法编写
7、写入多输出线圈方法编写
8、写入多输出寄存器方法编写
9、写入寄存器某个位方法编写
ModbusTCP测试软件
第八阶段就是要去验证ModbusTCP通信库的正确性,那么我们可以用C#编写一个类似于ModbusPoll/ModbusScan的测试软件。

1、ModbusTCP软件UI界面设计
2、通信参数初始化及连接断开
3、读取输入输出线圈方法测试
4、读取输入输出寄存器方法测试
5、写入单多输出线圈方法测试
6、写入单多个寄存器方法测试
7、写入寄存器位地址方法测试
ModbusTCP上位机
第九阶段就是要去编写一个ModbusTCP协议的上位机,我们之前做过西门子S7协议版本的加压站,那么就可以很轻松改成ModbusTCP协议的,这里我们使用西门子和三菱PLC,其他PLC,只要支持ModbusTCP协议,也是类似的。

1、编写ModbusServer程序
2、添加ModbusTCP通信库
3、数据层及数据解析方法
4、修改数据层设备控制方法
5、Slave仿真实现加压站系统
6、三菱PLC配置及变量映射表
7、数据层及数据解析方法
8、修改数据层设备控制方法
通过以上9个阶段的学习,基本上Modbus通信协议就可以彻底掌握了。