设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
排行榜
积分充值
帖子
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
3分钟速通!西门子MODBUS RTU通讯指令核心参数配置 ...
返回列表
发新帖
[三菱]
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
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
『人才与培训』
lilin2006
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』