如何在西门子 TIA 中配置 Modbus RTU 通信

介绍

在工业通信中,Modbus RTU(远程终端单元)是最通用和最被接受的协议之一,因为许多自动化系统都具有用于通信的 Modbus-RTU 接口。Modbus RTU 与 TCP 相比具有一些优势,其中一个优势是在长距离通信领域。RTU 的传输距离远远超过 1000 米,而 TCP 在不使用中继器的情况下传输距离为 100 米。

在本教程中,我们将学习如何在西门子 TIA 门户中将 Modbus RTU 配置为主从。

准备工作

为了按照本教程进行作,您将需要:

  • 了解 Modbus 协议。您可以查找我们的入门教程
  • Tia Portal 的安装。在本教程中,我们将使用 TIA Portal V16。
  • 安装 Modbus Poll(一种充当 Modbus 主站的模拟软件)
  • 安装 Modbus Slave(一种充当 Modbus 从站的模拟软件)

在 TIA 中创建新项目

启动 TIA 并添加新设备。我们将添加一个 S7-1200 PLC。Modbus RTU 无法使用 PLCSIM 进行仿真,因为 MODBUS RTU 是串行设备。

添加新的通信设备

为了能够使用 Modbus RTU,将添加支持 Modbus RTU 的新设备。本教程中使用设备 CB 1241 (RS 485)。该设备能够通过串行 RS 485 网络进行通信。

导航到项目树上的设备配置,然后在右侧的目录下选择点对点并选择 RTU 设备。

CB 1241 模块接线

CB 1241 模块的接线如右图所示。A 和 B 传出到另一个 Modbus RS 485 设备。


如果没有其他物理 Modbus 兼容设备(如下图所示)可用,则可以使用 USB 转 RS 485 设备进行连接

配置 Modbus 通讯块


要在 TIA Portal 中配置 Modbus RTU,您需要配置通讯块。导航到通讯并选择 Modbus,然后选择MB_COMM_LOAD块。波特率为 9.6kbps 或 9600。这些块看起来与下图中看到的完全相同。
这是参数的描述

PORT- 通信端口的 ID

BAUD- 波特率选择:300、600、1200、2400、4800、9600、19200、38400、57600、76800、115200。所有其他值均无效。

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

MB_DB - 对“MB_MASTER”或“MB_SLAVE”指令的实例数据块的引用。在程序中插入“MB_SLAVE”或“MB_MASTER”后,数据库标识符将出现在MB_DB框连接的下拉列表中。

DONE-指令执行完成,没有错误

ERRIR- 错误:0 – 未检测到错误。1 – 表示检测到错误。错误代码在 STATUS 参数中输出。

STATUS- 端口配置错误代码

创建一个数据块来保存 Modbus 数据。

此外,为 Modbus 通信块参数创建另一个数据块
要获取端口参数,请单击图标,您将看到本地CB_1241端口号
按如下方式配置块
 

配置 Modbus 从站

在通讯下,选择 Modbus 并选择MB_SLAVE。然后按如下方式配置,编译并下载到PLC中。

MB_ADDR 是从设备的从机 ID 号,我们使用了 5。MB_HOLD 是容纳 Modbus 数据的数据块。

接下来在Modbus数据数据库中输入一些随机数据。

配置 Modbus 轮询

Modbus 轮询设备充当 Modbus 设备。启动 Modbus 轮询软件并单击连接选项卡。

导航到设置并选择读/写定义。输入正确的从机 ID 和数量。提醒主设备中的可读地址数必须小于从设备。
如果设备已正确连接,请检查端口下的设备管理器将显示连接的设备。它是串行通信。
在 Modbus Poll 连接设置中,选择串行通信端口,在 TIA Portal 上设置的准确波特率,然后选择模式作为 RTU,然后单击“确定”。

如果一切都准确完成,您将看到从 TIA 门户读取的数据。

要查看浮点数据,则显示两个实数寄存器,例如,显示 16779 和 13107 的寄存器,然后右键单击以格式化并选择 Float AB CD。这将更改格式以显示为 实数数据类型 而不是整数。

将数据从 Modbus Poll 写入 TIA 门户

导航到设置并选择读/写定义。选择在函数下写入多个寄存器,以将数据写入 TIA 门户。此后,输入 Modbus Poll 中的一些值。
在 TIA 门户上检查 Modbus 数据的数据库,您将看到 Modbus Poll 的值位于正确的寄存器位置。
到目前为止,我们已经成功地从 Modbus Poll 读取和写入了数据。

配置 Modbus 主站

要在 TIA 门户中配置 Siemens Modbus Master,请在通信下选择 Modbus 并选择MB_Master块。
    

参数描述如下

MB_ADDR - Modbus RTU 站地址,即从站 ID。

模式- 模式选择:指定请求类型:读取、写入或诊断。0 表示读取数据,1 表示写入数据。

DATA_ADDR - 从站中的起始地址:这指定了 Modbus 从站中要访问的数据的起始地址。

DATA_LEN - 指定在此请求中要访问的位数或字数。此参数规定了您打算读取或写入的寄存器数。

DATA_PTR - 指向要写入或读取数据的 CPU 的 DB 或位内存地址。用于保存数据的数据块放置在这里。

如下图所示配置 MB-Master 模块并下载到 PLC 中。

我们使用时钟信号作为请求输入,以便它轮询每个 5Hz 扫描周期的值。

40001 指示我们从第一个保留寄存器读取。

配置 Modbus 从站

启动 Modbus 从站并设置从站定义。该功能为Holding寄存器,从ID为8。

对于连接设置,选择串口和 COM 设备,然后单击“确定”。它与 Modbus 轮询连接设置相同。

在寄存器位置输入一些值,以发送到 TIA 门户。
在 TIA Portal 上,检查 DB 中的 Modbus 数据显示从 Modbus 从站读取的数据

将数据从 TIA Portal 写入 Modbus Slave

要将数据写入 Modbus 从机,MB_block上的模式将更改为 1,并且 Data Len 参数增加。
在 TIA Portal 的 Modbus 数据块上,在数据库地址中输入一些值。这些值将从 Modbus 从站读取
检查 Modbus Slave 中的值,我们可以在各个寄存器位置看到它们。   
因此,如果您能够成功查看数据,则意味着 TIA Portal 和 Modbus Slave 之间的 Modbus 通信是准确的。

结论

Modbus RTU 通信是最古老的 Modbus 通信类型之一,至今仍被广泛使用,主要用于 SCADA。大多数工业设备和设备都使用 Modbus RTU 作为其通信协议的一部分,因为它在最恶劣的环境和情况下很有帮助。因此,作为自动化/控制专家,对它有深入的了解将是有益的。