Modbus RTU 和 Modbus TCP 通信概
Modbus 功能代码
● CPU 作为 Modbus RTU 主站(或 Modbus TCP 客户端)运行时,可在远程 Modbus RTU 从站(或 Modbus TCP 服务器)中读/写数据和 I/O 状态。可在程序逻辑中读取并处理远程数据。
● CPU 作为 Modbus RTU 从站(或 Modbus TCP 服务器)运行时,监控设备可在 CPU 存储器中读/写数据和 I/O 状态。RTU 主站(或 Modbus TCP 客户端)可以将新值写入从站/服务器 CPU 存储器,以供用户程序逻辑使用。
RTU 站 :标准站地址 1 到 247扩展站地址 1 到 65535
TCP 站 :站地址 IP 地址和端口号
实际可用的 Modbus 存储区地址数取决于 CPU 型号、存在多少工作存储器以及其他程序数据占用多少 CPU 存储区。下表给出地址范围的额定值。
Modbus RTU 通信
Modbus RTU(远程终端单元)是一个标准的网络通信协议,它使用 RS232 或 RS485 电气连接在 Modbus 网络设备之间传输串行数据。可在带有一个 RS232 或 RS485 CM 或一个 RS485 CB 的 CPU 上添加 PtP(点对点)网络端口。Modbus RTU 使用主/从网络,单个主设备启动所有通信,而从设备只能响应主设备的请求。主设备向从一个从设备地址发送请求,然后该从设备地址对命令做出响应。
Modbus TCP 通信
Modbus TCP(传输控制协议)是一个标准的网络通信协议,它使用 CPU 上的 PROFINET 连接器进行 TCP/IP 通信。不需要额外的通信硬件模块。
我们主要以Modbus TCP为主介绍:
在指令任务卡中,在“通信”(Communication) 组中的“其它”(Others) 下显示 MODBUS TCP 指令。
要更改 Modbus TCP 指令的版本,请从下拉列表中选择相应版本。可以选择一组指令或分别选择各个指令。
使用指令树将 Modbus TCP 指令放入程序时,将在项目树中创建新的 FB 实例。在项目树的“PLC_x > 程序块 > 系统块 > 程序资源”(PLC_x > Program blocks > System blocks > Program resources) 下可看到新的 FB 实例。
要确认程序中 Modbus TCP 指令的版本,必须检查项目树的属性而不是程序编辑器中显示的框的属性。选择项目树的 Modbus TCP FB 实例,单击右键,选择“属性”(Properties),然后选择“信息”(Information) 页查看 Modbus TCP 指令的版本号。
Modbus TCP 指令
MB_CLIENT(作为 Modbus TCP 客户端使用 PROFINET 进行通信)指令
"MB_CLIENT_DB"(
REQ:=_bool_in_,
DISCONNECT:=_bool_in_,
MB_MODE:=_usint_in_,
MB_DATA_ADDR:=_udint_in_,
MB_DATA_LEN:=_uint_in_,
DONE=>_bool_out_,
BUSY=>_bool_out_,
ERROR=>_bool_out_,
STATUS=>_word_out_,
MB_DATA_PTR:=_variant_inout_,
CONNECT:=_variant_inout_);
MB_CLIENT 作为 Modbus TCP 客户端,通过 S7-1200 CPU 上的 PROFINET 端口进行通信。不需要额外的通信硬件模块。MB_CLIENT 可进行客户端-服务器连接、发送 Modbus 功能请求、接收响应,以及控制 Modbus TCP 服务器的断开。
REQ In Bool
FALSE = 无 Modbus 通信请求TRUE = 请求与 Modbus TCP 服务器通信
DISCONNECT IN Bool
DISCONNECT 参数允许程序控制与 Modbus 服务器设备的连接和断开。如果 DISCONNECT = 0 且不存在连接,则 MB_CLIENT 尝试连接到分配的 IP 地址和端口号。如果 DISCONNECT = 1 且存在连接,则尝试断开连接操作。每当启用此输入时,无法尝试其它操作。
MB_MODE IN USInt
模式选择:分配请求类型(读、写或诊断)。
MB_DATA_ADDR IN UDInt
Modbus 起始地址:分配 MB_CLIENT 访问的数据的起始地址。有效地址的相关信息,请参见下面的 Modbus 功能表。
MB_DATA_LEN IN UInt
Modbus 数据长度:分配此请求中要访问的位数或字数。有效长度的相关信息,请参见下面的 Modbus 功能表。
MB_DATA_PTR IN_OUT Variant
指向 Modbus 数据寄存器的指针:寄存器缓冲进出 Modbus 服务器的数据。指针必须分配一个未进行优化的全局 DB 或 M 存储器地址。
CONNECT IN_OUT Variant
引用包含系统数据类型为“TCON_IP_v4”的连接参数的数据块结构。
DONE OUT Bool
上一请求已完成且没有出错后,DONE 位将保持为 TRUE 一个扫描周期时间。
BUSY OUT Bool
● 0 - 无 MB_CLIENT 操作正在进行
● 1 - MB_CLIENT 操作正在进行
ERROR OUT Bool
MB_CLIENT 执行因错误而结束后,ERROR 位将在一个扫描周期时间内保持为 TRUE。STATUS 参数中的错误代码仅在 ERROR = TRUE 的一个循环周期内有效。
STATUS OUT Word
编辑:jq
-
MODBUS
+关注
关注
28文章
1757浏览量
76756 -
TCP
+关注
关注
8文章
1347浏览量
78926 -
RTU
+关注
关注
0文章
403浏览量
28596
原文标题:S 7-1200-Modbus RTU 和 Modbus TCP 通信概
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论