如何使用 STEP 7 (TIA Portal) V11 为 SIMATIC S7-1200 建立 MODBUS-RTU 通讯?

概述

利用CM 1241 RS485 和CM 1241 RS232 通讯模块,SIMATIC S7-1200 可以实现点对点的通讯。也可以利用第三方通讯设备与SIMATIC S7-1200 通讯。利用集成在STEP 7 (TIA Portal) V11 中的MODBUS 库文件,可以定义通讯模块为MODBUS 主站或MODBUS 从站。由于物理限制,使用CM 1241 RS232 通讯模块作为MODBUS 主站时,只能与一个从站通讯。但使用CM 1241 RS485 通讯模块作为MODBUS 主站时,则允许建立最多与32 个站的通讯。将会有一个范例去介绍如何使用CM 1241 RS485 通讯模块与多个从站进行通讯。此范例是由STEP 7 (TIA Portal) V11 创建的。

说明

已经有一个MODBUS 主站和一个MODBUS 从站间的通讯例程。

通讯可以轮流将数据写入从站寄存器( MODBUS 功能码为16),也可以读取从站寄存器的数值( MODBUS 功能码为03)。因为RS485 接口是两线制半双工模式,故数据读写必须是连续的操作。同理,读写操作也可以针对不同的从站地址。综上所述,主站和多个从站之间的数据交换是可以实现的。

图. 01

多个CM 1241 RS485 通讯模块之间可以使用PROFIBUS 电缆相互连接。可以将1 个主站和最多31 个MODBUS 从站使用PROFIBUS 电缆连接组网。利用STEP 7 (TIA Portal) V11 可以完成组态操作,使用CSM 1277 模块可以将程序下载至控制器。

MB_COMM_LOAD

MODBUS 通讯中,无论是主站还是从站都应该使用MB_COMM_LOAD 指令。

图. 02

使用MB_COMM_LOAD 指令可以完成如下功能:选择通讯模块、设定通讯参数、建立与主站或从站参数的连接。

在第一个程序执行周期中必须调用MB_COMM_LOAD 指令。(可用系统硬件设置中的系统标志位M1.0 来实现或在OB 100 中调用)

硬件组态中完成通讯模块的组态后,可以在PORT 参数中选择通讯模块的符号名。

无论主站还是从站,必须设定相同的波特率和校验方式。STEP 7 (TIA Portal) V11 设备视图中关于RS485 的端口特性的设置要一致。

通过MB_DB 可以设定用于主站或从站的数据块。同时也就定义了通讯模块的端口参数是

主站还是从站。

MB_MASTER

使用MB_MASTER 功能块可以定义通讯模块(在MB_COMM_LOAD 中完成设置的模块)为MODBUS 主站。

图. 03

MB_MASTER可以用来设定MODBUS从站的地址、选择功能码和设定本地的存储区。下表解释了具体参数:参数描述

REQ 使能通信

MB_ADDR MODBUS-RTU 站地址

MODE 选择传输方向("0" = 读, "1" = 写或附加的诊断功能).

DATA_ADDR 指定MODBUS的起始地址

DATA_LEN 指定MODBUS 数据长度

DATA_PTR 参数定义了主站发送和接收的数据区. DATA_PTR参数必须参考全局数据块

MB_MASTER 功能块必须在第一个程序的循环周期中调用(可用系统硬件设置中的系统标志位,M1.0 来实现或在OB 100 中调用)。

MB_SLAVE

使用MB_SLAVE 功能块可以定义通讯模块(在MB_COMM_LOAD 中完成设置的模块)为MODBUS 从站。

图. 04

MB_SLAVE 功能块可以定义MODBUS-RTU 站地址并定义MODBUS 保持寄存器数据块地址

参数描述

MB_ADDR 定义MODBUS-RTU 站地址

MB_HOLD_REG 定义了从站保持寄存器数据块的地址。MB_HOLD_REG 必须参考全局数据块

当进行多字传输时,与主站DATA_ADDR 和DATA_PTR 中规定的参数范围相对应的从站寄存器也在MB_HOLD_REG 中定义。从站中第一个字的保持寄存器对应MODBUS 寄存器的地址为40001。

这类参数可以依据功能块的输入和输出功能的不同或相关数据块的不同而转换。

范例

在主站的范例里,交替的读写从站寄存器是通过一个时序标志完成的。

图. 05

1.初始化:调用MB_COMM_LOAD 功能块。

2.第一步:调用MB_Master并执行使能(REQ = 1)。设此时的工作模式为:将数据写入从站(MODE = 1) 。

当MB_MASTER 设置完成,即ERROR=0 或DONE=1 时,转至第二步。

当REQ=0 时,重启执行MB_MASTER 。

3.若MODE=0,在第二步将读取从站的参数并写入MB_MASTER 中相应的数据区。这个数据区和第一步中的数据区(MB_COMM_LOAD block 中MB_DB 参数)相似。

整个执行和完成与第一步类似。

下图中显示了转换(网络8 )的一个步(网络6 和网络7)。

图. 06

参见网络6可知,MB_ADDR 参数可以在不同的步中使用不同的从站地址,从而实现与最多32 个从站的数据交换。

下载

压缩文件包“STEP7_V11_Modbus_RTU.zip”包含范例“MODBUS_RTU_V11 SP2.ap11”用于实现主站和从站间的数据交换。将“STEP7_V11_Modbus_RTU.zip”解压,使用STEP 7 (TIA Portal) V11+SP2 打开范例程序,CPU的版本为V2.1。下载项目文件(主站或从站)至控制器。之后就可以在监控状态表中查看数据。

STEP7_V11_Modbus_RTU.zip ( 1446 KB )

https://www.360docs.net/doc/6418938022.html,/CN/llisapi.dll/csfetch/47756141/STEP7_V11_Modbus_R TU.zip?func=cslib.csFetch&nodeid=59865765

相关文档
最新文档