西门子S7-1200 modbus rtu通讯使用介绍
一
Modbus RTU 介绍
”
1.Modbus是用在工控领域中的一种标准通信协议,该协议位于OSI的第7层(应用层),它定义了消息封装模式、沟通方法、沟通顺序。
Modbus的优势 :
1)Modbus协议是开放的
2)Modbus在多种物理接口(RS232, RS485, TCP/IP)均适用
3)Modbus格式简单易于开发
2.Modbus RTU 是运行在物理串口(RS232,RS485)上的一种Modbus协议。
Modbus RTU特点:
1)线路上只能有一个主站,可以有多个从站
2)从站的编号为1-247
3)从站只能和主站进行通讯,从站与从站之间无法通讯
4)主站可以对从站进行广播,从站不会产生应答
二
S7-1200支持的
Modbus RTU模块
”
注意:
1. 使用通信模块CM 1241 RS232作为Modbus RTU主站时,只能与一个从站通讯。
2. 使用通信模块CM 1241 RS485作为Modbus RTU主站时,则允许建立Zui多与 32个从站的通讯。
3. 使用通信板CB 1241 RS485时,CPU 固件必须为 V2.0 或更高版本,且使用软件必须为STEP 7 BasicV11 或STEP 7 Professional V11 以上更高版本
三
S7-1200作为主站
的程序编写
”
用到的软硬件介绍:
硬件:CM1241 RS422/485作为Modbus RTU主站
软件:TIA Portal v16
1.硬件组态:
修改模块属性
记住模块硬件标识符(端口号):
2.程序编写
注意:
早期版本的Modbus RTU指令(不带“(RTU)”字样)仅可通过CM1241通信模块或CB1241通信板进行ModbusRTU通信。
新版本的 Modbus RTU指令(带“(RTU)”字样)扩展了ModbusRTU的功能,该指令除了支持CM1241通信模块、CB1241通信板,还支持 PROFINET 或 PROFIBUS 分布式 I/O机架上的PTP通信模块实现Modbus RTU通信
在这里,我们用新版本的指令。
1)进行初始化
在此处▲
1中填入端口号,波特率,奇偶校验
2中填写Modbus_Master指令背景数据块中的数据区
需要修改背景数据块中的Mode,填入4
2)使用读写指令
在此处:
REQ:上升沿有效
MB_ADDR:要读写的从站站地址
MODE:读写模式(0读1写)
DATA_ADDR:读写从站的存储区地址(例如40001)
DATA_LEN:读写的数据(字的个数,而不是字节、双字,是读的双字,也要折算为字来计算长度)
DATA_PTR:主站的存储区(读存放的位置/写发送的位置)
3)建议:
因为无法执行多个Modbus_Master指令,建议
a.使用done或者error反馈来进行多个Modbus_Master的轮询操作。
b.使用计数器进行定时轮询操作
”
1.使用主站模式时,对于一个通讯模块而言,需要一个初始化指令、一个或者多个读写指令,读写指令要使用同一个背景DB块。
2.主站模式下对从站的多个读写指令需要使用轮询操作。
3.需要修改初始化背景数据块中的Mode,填入4。