Modbus RTU和Modbus TCP的通信过程分析

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
执行条件代码


将AI推入千家万户,共赢智能新时代
Twitter发布了适用于iPad的官方Twitter应用程序
如何选择微流控芯片?
旷视科技已成长为估值不菲的“独角兽”!7.5亿美元D轮融资落定
集萃智造亮相汉诺威工博会数字展,展现中国智造领域风采
Modbus RTU和Modbus TCP的通信过程分析
IBM宣布将进行史无前例的拆分
OLED产业链现状及前景概述
家电“超期服役”安全隐患让人堪忧
常见的EMI干扰来源和抑制措施盘点
浅析主机移动技术的现状及开发思路
福禄克线缆认证测试仪的三个重要参数
欧洲芯片商在美国与华为的斗争中处于弱势
微电子所在新型负电容FinFET器件研究中取得重要进展!
双核DSP片TMS320VC5421的并行引导方案
我国汽车销量连续12年蝉联全球第一 新能源汽车销量创历史新高
SonoSite公司使用NI平台设计医疗超声测试系统
四川移动联合华为共同发布了5G立体组网方案
旷视在AI+物流硬件领域的进展引人注目
浅谈电子商务发展的两种模式B2C和B2B