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

初学者实操|PLC MODBUS通讯示例缩略图

一、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

图4图4中符号说明如下:En使

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

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

图2

图2中符号说明如下:

EN:一直使能

图2-72.三台PLC通信主站

MODE:允许Modbus通信

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

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

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

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

Done:完成位

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

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

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

图3

图3中符号说明如下:

En:使能

First:首次扫描用沿触发

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

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

Addr:读写地址功能码

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

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通讯示例插图4

图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通讯示例插图5

图5

四、通信程序编写

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

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

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

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

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

图6

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

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

图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通讯示例插图11

图1-1

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

图1-2

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

图1-3

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

图1-4

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

图1-5

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

图1-6

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

图1-7

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

图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通讯示例插图19

图2-1

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

图2-2

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

图2-3

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

图2-4

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

图2-5

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

图2-6

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

图2-7

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

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

图2-8

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

图2-9

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

图2-10

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

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

图2-11

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

图2-12

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

图2-13

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

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

图2-14

技术术语(共 4 个)—— 点击展开
Modbus RTU基于串行链路的Modbus协议,使用二进制编码和CRC校验
功能码Modbus功能码指定读/写操作类型,如01读线圈、03读保持寄存器
PLC可编程逻辑控制器,工业自动化控制的核心设备
波特率串行通信每秒传输符号数,Modbus RTU常用9600/19200
来源/工具信息 —— 点击展开
来源 Modbus中文网(modbus.cn) —— 国内领先的Modbus通信协议技术社区 分类 Modbus技术文档 / 工业物联网 字数 1976 字 · 阅读约 5 分钟 更新 2023-08-21 永久链接 https://www.modbus.cn/%e5%88%9d%e5%ad%a6%e8%80%85%e5%ae%9e%e6%93%8dplc-modbus%e9%80%9a%e8%ae%af%e7%a4%ba%e4%be%8b/
推荐工具:Modbus调试助手 微信小程序
Modbus中文网官方推出的Modbus调试工具,支持 Modbus RTU/TCP 实时通信调试、寄存器读写、线圈控制、数据监控和报文分析。 无需安装,微信搜索「Modbus调试助手」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
相关标签
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

发表回复

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