[西门子] 西门子1200PLC的ModbusRTU通讯指令详解

[复制链接]
查看87765 | 回复0 | 2024-4-14 23:30:35 | 显示全部楼层 |阅读模式


S7-1200 支持Modbus RTU通信,以下以 CPU1215C DC/DC/DC和CM1241 RS485 模块为例,介绍S7-1200 Modbus RTU 主站通信组态及编程步骤。

1.组态Modbus RTU 通信模块
在硬件目录里找到“通信模块”→“点到点”→“CM1241(RS485)”,双击或拖拽此模块至CPU左侧即可,如下图所示:


2.调用MB_COMM_LOAD指令
为使端口一启动就被设置为Modbus RTU通信模式,可在OB 100中调用“MB_COMM_LOAD”指令。

需注意MB_DB输入引脚需指向“MB_MASTER”指令的背景数据块,如下图所示:



MB_COMM_LOAD指令参数意义如下表所示:

引脚

说明

EN

使能端

REQ

在上升沿执行该指令

PORT

通信端口的硬件标识符

BAUD

波特率选择:3600,6000,12000,2400,4800,9600,19200,38400,57600,76800,115200 (注意:所有其它值均无效)

PARITY

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

FLOW_CTRL

流控制选择:0-(默认值)无流控制

RTS_ON_DLY

RTS延时选择:0-(默认值)

RTS_OFF_DLY

RTS关断延时选择:0-(默认值)

RESP_TO

响应超时:默认值 = 1000 ms。MB_MASTER 允许用于从站响应的时间(以毫秒为单位)。

MB_DB

对 MB_MASTER 或 MB_SLAVE 指令所使用的背景数据块。

DONE

完成位:指令执行完成且未出错置1

ERROR

错误位:0-未检测到错误;1-检测到错误。在参数STATUS中输出错误代码。

STATUS

端口组态错误代码


3.调用MB_MASTER指令
在OB1中调用“MB_MASTER”指令, 如下图所示:



MB_MASTER指令参数意义如下表所示:

引脚

说明

EN

使能端

REQ

在上升沿执行该指令,请求将数据发送或读取到Modbus从站

MB_ADDR

Modbus RTU从站地址。默认地址范围:0至247;扩展地址范围:0至65535。值0被保留用于将消息广播到所有Modbus从站。

MODE

模式选择:指定请求类型

DATA_ADDR

从站中的起始地址:指定Modbus从站中将供访问的数据的起始地址。

DATA_LEN

数据长度:指定要在该请求中访问的位数或字数。

DATA_PTR

数据指针:指向要写入或读取的数据的 M 或 DB 地址(DB访问类型必须是标准与S7-300/400兼容)。

DONE

完成位:上一请求已完成且没有出错后,DONE 位将保持为 TRUE 一个扫描周期时间。

BUSY

0 – 无正在进行的 MB_MASTER 操作;1 – MB_MASTER 操作正在进行

EEROR

错误位:上一请求因错误而终止后,ERROR 位将保持为 TRUE 一个扫 描周期时间。STATUS 参数中的错误代码值仅在 ERROR =TRUE 的一个扫描周期内有效。

STATUS

端口组态错误代码



扫描下方二维码

助你成为优秀的电气工程师



左老师:18073180632(同微信)

本帖子中包含更多资源

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

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

本版积分规则