分享

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

 金玉满堂jjnla8 2020-09-05

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

端口组态错误代码

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多