[三菱] 3分钟速通!西门子MODBUS RTU通讯指令核心参数配置

[复制链接]
查看43114 | 回复0 | 2025-3-26 13:32:27 | 显示全部楼层 |阅读模式
MODBUS RTU通讯
MODBUS RTU是RS485串口数据传输的一种,是网络中通讯的标准协议。因其通讯距离远、抗干扰能力强、成本低等优点在自动化领域应用广泛。比如常见的PLC通过Modbus RTU连接多个传感器(温度、压力、流量)智能仪表监控实时数据。还有在变频器通讯等中。
Modbus RTU是采用搭建主/从站网络的方式,整个通讯只能有一个主站设备,从站只能响应主站的请求。主站将请求发送给一个从站地址,在网络中只能有对应的地址从站做出响应。
1

Modbus RTU功能代码
01:读取输出位

02:读取输入位

03:读取保持寄存器

04:读取输入字;以上为用于读取的功能代码。

05:写入一个输出位,一个位

06:写入一个保持寄存器,一个字

15:写入一个或多个输出位,每个请求1-1960位

16:写入一个或多个保持寄存器,每个请求1-122个字
在西门子博图中Modbus RTU通讯如果使用需要搭载CM1241通讯模块,或CB1241模块。并且需要使用Modbus_Comm_Load指令通过Modbus RTU协议对通讯模块进行组态。
2

硬件组态
下面先创建一个新项目,并在硬件目录中添加好上述的硬件通讯模块,如下图所示:



3

Modbus_Comm_Load指令
Modbus_Comm_Load 指令通过 Modbus RTU 协议对用于通信的通信模块进行组态。当在程序中添加 Modbus_Comm_Load 指令时,将自动分配背景数据块。Modbus_Comm_Load 的组态更改将保存在 CM 中,而不是 CPU 中。恢复电压和插拔时,将使用保存在设备配置中的数据组态 CM。必须在这些情况下调用 Modbus_Comm_Load 指令。


4

引脚端口说明:
REQ:上升沿检测有效,启用该指令。

PORT:指定用于通讯的模块号,在1200/1500中是指设备组态的“硬件标识符”,可在添加的通讯模块属性中查看,或在PLC变量表的“系统常数”中查看。而在300/400中是指设备组态中的输入地址。

BAUD:通讯比特率;

PARITY:选择奇偶校验;0-无,1-奇,2-偶;

FLOW_CTRL:用于选择流控制,与RTS搭配;

RTS_ON_DLY:用于控制信号方向,在CM124通讯模块中需要控制信号方向,而在CB模块中是自动处理;

RESP_TO:响应超时设定,也就是等待从站响应的时间设定;

MB_DB:主站或从站指令的背景数据块引用;必须与对应的背景数据块相连;

DONE:指令执行标志位;

ERROR:指令出错标志位,错误时,STATUS中显示错误代码。

执行 Modbus_Comm_Load 以对 Modbus RTU 协议的端口进行组态。为 Modbus RTU 协议组态完端口后,它只能由 Modbus_Master 指令或 Modbus_Slave 指令使用。
必须运行 Modbus_Comm_Load 来完成将用于 Modbus 通信的每个通信端口的组态。必须为使用的每个端口分配唯一的 Modbus_Comm_Load 背景数据块。如果需要更改数据传输速率或奇偶校验等通信参数,或者网络已经恢复,只需再次运行Modbus_Comm_Load。
Modbus_Master:主站进行通讯
Modbus_Master 指令可通过由 Modbus_Comm_Load 指令组态的端口作为 Modbus 主站进行通信。当在程序中添加 Modbus_Master 指令时,将自动分配背景数据块。Modbus_Comm_Load 指令的 MB_DB 参数必须连接到 Modbus_Master 指令的(静态)MB_DB 参数。

指令格式:


1

Modbus_Master通讯规则
1:必须运行 Modbus_Comm_Load 来组态端口,以便 Modbus_Master 指令可以使用该端口进行通信。



2:要用来作为 Modbus 主站的端口不可作为 Modbus_Slave 使用。对于该端口,可以使用一个或多个 Modbus_Master的实例。但是,所有版本的 Modbus_Master 都必须为该端口使用相同的背景数据块。
3:Modbus 指令不会使用通信报警事件来控制通信过程。程序必须查询 Modbus_Master 指令来获得完整的命令(DONE、ERROR)。

DATE_PTR:参数指向在其中执行读取或写入的数据块或位存储器地址。如果使用数据块,则必须创建全局数据块,以便为 Modbus 从站上的读取或写入过程提供数据存储器。

Modbus_Slave:作为 Modbus 从站进行通信

从站同样需要通讯模块CM1241,然后作为从站与主站进行通讯 ,所以同样需要使用Modbus_Comm_Load指令的MB_DB参数与Modbus_Slave指令的(静态)MB_DB参数相连。

指令格式:



2

引脚端口说明:
MB_HOLD_REG:Modbus保持寄存器DB的指针,Modbus保持寄存器可能为标志的存储区或数据块。


功能代码及CPU过程映像地址如上表格所示。

常见问题:

通讯超时:检查物理接线、终端电阻、地址冲突等。

数据错位:确认寄存器地址和数据类型是否匹配。

指令不执行:确认Modbus_COMM_Load指令已经成功初始化,且主站和从站未同时启用。


往期相关通讯文章:
《西门子Modbus TCP通讯》《西门子PLC基于以太网的S7通讯》《西门子S7-1200PLC以太网通讯》


    通过网盘分享的文件:工业机器人与PLC通信实战教程.pdf链接: https://pan.baidu.com/s/18CbaXDu-buPQ5SGeyZAeow?pwd=wuih 提取码: wuih

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则