一、Modbus通信协议

Modbus协议只有一个主站,可以有1~247个从站。此协议支持传统的RS-232、RS-422、RS-485和以太网设备,许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通信标准。

当控制器设为在Modbus网络上以RTU模式通信,在消息中的每个8Bit字节按照原值传送,不做处理,如63H,RTU将直接发送01100011,这种方式的主要优点是数据帧传送之间没有间隔,相同波特率下传输数据的密度要比ASCII高,传输速度更快。

二、ModbusRTU主站指令

1、Modbus库指令如图1所示,Master为主站0口,Master2为主站1口,Slave为从站,且从站只有0口。

初学者实操|PLC MODBUS通讯示例插图1

图1

2.西门子Modbus库主站MBUS_CTRL的主站定义参数,如图2所示。

初学者实操|PLC MODBUS通讯示例插图3

图2

图2中符号说明如下:

EN:一直使能

MODE:允许Modbus通信

Baud:通信速率,波特率(主从一致),默认9600

Parity:奇偶校验,0无校验,1奇校验,2偶校验(主从一致),默认偶校验

Port:通信端口,0口自带,1口扩展(CM01信号板)

Timeout:最大等待时间单位:ms

Done:完成位

Error:错误代码(当出现错误可以查看软件帮助相对应的错误代码)

西门子Modbus库主站MBUS_MSG的主站信息读写参数,如图3所示

初学者实操|PLC MODBUS通讯示例插图5

图3

图3中符号说明如下:

En:使能

First:首次扫描用沿触发

Slave:从站地址(1-247主站默认2号站,从站地址除2以外)

RW:读写操作,0读,1写

Addr:读写地址功能码

初学者实操|PLC MODBUS通讯示例插图7

Count:数量

Dataptr:数据指针 (默认指主站而且是以字节的形式显示)

Done:完成位

Error:错误字节(当出现错误可以查看软件帮助相对应的错误代码)

STEP7_Micro/WIN Smart和S7_200SmartCPU支持两种Modbus RTU主站,对于单个Modbus RTU主站,使用指令MBUS_CTRL和MBUS_MSG,在进行0口通信时应用。对于第二个Modbus RTU主站,使用指令MBUS_CTRL2和 MBUS_MSG2,在进行1口通信时应用。如果您在项目中使用两个 Modbus 主站,则要确保 MBUS_CTRL 和 MB_CTRL2 使用不同的端口号。

MBUS_CTRL写在主站里,不管有多少从站,只写一次。MBUS_MSG 写在主站里,比如有一个从站,主从互相控制,需要2条指令,一个读一个写,有多个从站,就写多个读写指令。

三、ModbusRTU从站指令

  1. 西门子Modbus库从站MBUS_CTRL的从站定义参数,如图4所示。

初学者实操|PLC MODBUS通讯示例插图9

图4

图4中符号说明如下:

En 使能用沿触发

Mode 允许Modbus通信

Addr 从站地址(1-147)

Baud 通信速率波特率(主从一致)默认9600

Parity 奇偶校验0无校验,1奇校验,2偶校验(主从一致)默认偶校验

Port 通信端口0口自带

Delay 延时

MaxIQ 最大输入输出点数256

MaxAI 最大模拟量输入56

Maxhold 最大缓存区

Holdstart 最大缓存区起始地址

Done 完成位

Error 错误字节

Done 完成位

Error 错误字节

2.西门子Modbus库从站MBUS_SLAVE的从站应答参数,如图5所示。

初学者实操|PLC MODBUS通讯示例插图11

图5

四、通信程序编写

ModbusRTU两台PLC互相控制通信示例

ModbusRTU 两台PLC分别用I点相互控制Q点,主站程序如图6所示,从站程序如图7所示。写从站程序需要注意,从站定义需要用沿触发,在系统块记得更改从站PLC站地址。

初学者实操|PLC MODBUS通讯示例插图13

初学者实操|PLC MODBUS通讯示例插图15

初学者实操|PLC MODBUS通讯示例插图17

图6

初学者实操|PLC MODBUS通讯示例插图19

初学者实操|PLC MODBUS通讯示例插图21

图7

ModbusRTU两台PLC星三角通信示例

两台PLC,主站控制从站的星三角启动停止,主站IW0控制从站VW0(I0.0-V0.0启动,I0.1-V0.1停止),主站程序如图1-1图1-2所示,从站程序如图1-3图1-4图1-5图1-6图1-7图1-8所示。

初学者实操|PLC MODBUS通讯示例插图23

图1-1

初学者实操|PLC MODBUS通讯示例插图25

图1-2

初学者实操|PLC MODBUS通讯示例插图27

图1-3

初学者实操|PLC MODBUS通讯示例插图29

图1-4

初学者实操|PLC MODBUS通讯示例插图31

图1-5

初学者实操|PLC MODBUS通讯示例插图33

图1-6

初学者实操|PLC MODBUS通讯示例插图35

图1-7

初学者实操|PLC MODBUS通讯示例插图37

图1-8

ModbusRTU三台PLC星三角通信示例

  1. 三台PLC通信主站、3号从站和4从站,3号和4号之间互相控制两台电机的启停如图2-1所示,控制程序如图2-2图2-3图2-4图2-5图2-6图2-7所示。

初学者实操|PLC MODBUS通讯示例插图39

图2-1

初学者实操|PLC MODBUS通讯示例插图41

图2-2

初学者实操|PLC MODBUS通讯示例插图43

图2-3

初学者实操|PLC MODBUS通讯示例插图45

图2-4

初学者实操|PLC MODBUS通讯示例插图47

图2-5

初学者实操|PLC MODBUS通讯示例插图49

图2-6

初学者实操|PLC MODBUS通讯示例插图51

图2-7

2.三台PLC通信主站、3号从站和4从站,3号和4号之间互相控制两台电机的启停,3号从站控制程序如图2-8图2-9图2-10所示。

初学者实操|PLC MODBUS通讯示例插图53

图2-8

初学者实操|PLC MODBUS通讯示例插图55

图2-9

初学者实操|PLC MODBUS通讯示例插图57

图2-10

3.三台PLC通信主站、3号从站和4从站,3号和4号之间互相控制两台电机的启停,4号从站控制程序如图2-11图2-12图2-13所示。

初学者实操|PLC MODBUS通讯示例插图59

图2-11

初学者实操|PLC MODBUS通讯示例插图61

图2-12

初学者实操|PLC MODBUS通讯示例插图63

图2-13

值得注意的是,要记得更改三号站和四号站在系统块内的地址,从站定义用沿来触发。最后记得在程序块中设置库存储区的分配如图2-14。

初学者实操|PLC MODBUS通讯示例插图65

图2-14

相关新闻

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

邮箱

cloud@modbus.cn

QQ
QQ
微信
微信
SHARE
TOP