创投圈|?干货丨ModBus RTU 与 ModBus TCP

创投圈|?干货丨ModBus RTU 与 ModBus TCP

文章图片

创投圈|?干货丨ModBus RTU 与 ModBus TCP

文章图片


一、两个密切相关的协议:RTU 与 TCPModBus RTU和ModBus TCP作为ModBus协议的两个主要变体 , 传统上 , ModBus RTU(需要将信息传送回ModBus主站或SCADA HMI的RTU)被许多不同类型的设备使用 。 ModBus RTU通常通过RS485串行发送 。 这种菊花链通信通道允许多个设备在主从配置中向单个HMI端口报告 。 每个从设备都能够通过向主设备发送流量来说话 。 这使得ModBus网络结构保持相当简单 。
ModBus TCP之所以得名 , 是因为它与早期的ModBus不同 , 它使用TCP / IP来读取/写入寄存器值 。

二、所有ModBus协议的基本结构【创投圈|?干货丨ModBus RTU 与 ModBus TCP】无论变体如何 , 所有标准ModBus通信都遵循相同的消息传递结构 。 一切都围绕着将值存储在寄存器中然后读取它们 。 这里有几种数据类型在起作用 。
例如 , 离散输入可以存储为单个位 。 更广泛地说 , 输入寄存器存储基于 ModBus 的设备收集的值 。 将多个分立器件存储为单个位 , 而模拟值甚至 ASCII 字符可能存储在 8 位寄存器中(最低有效位为 0 位 , 最高有效位为 64 位) 。
不同类型的寄存器按用于轮询它们的功能代码进行分类 。 功能代码字段中的“1”用于“读取线圈”(检查控制继电器的状态) 。 “2”表示“读取离散输入”(检查离散输入的状态) 。 “3”是“读保持寄存器”(从多用途读/写寄存器收集数据) 。 ModBus 规范中还有更多 。 寄存器由其“起始地址”请求 , 起始地址是一个 16 位值 , 用于唯一标识设备中的每个寄存器 。 对RTU或其他设备的主控请求将始终引用要报告的所需寄存器 。

三、ModBus RTU和ModBus TCP的主要区别主要区别在于ModBus RTU使用菊花链网络 , 因此你可以通过两条线连接整个网络 , 并通过为每个节点提供唯一的地址来与每个设备进行通信 。 ModBus TCP使用星形网络 , 其中每个节点都有一条称为Cat5或Cat6的单独电缆 。 它们可以使用路由器连接 。 它们还带有网络上每个节点唯一的个人地址 。 地址可以是 1 到 255 , 这意味着理论上 , 你可以在同一网络上拥有 254 台设备 。 你也可以通过互联网使用ModBus TCP 。
2023 年的趋势是 , 更多的现场设备使用 ModBus RTU , 但 ModBus TCP 正在迎头赶上 。 压力变送器、流量计和气体分析仪使用 ModBus RTU 。 PLC、DCS和控制室设备使用ModBus TCP 。 一些通过互联网与Web服务器通信的设备正在使用ModBus TCP 。 输入和输出模拟和数字模块可在ModBus RTU和ModBus TCP上使用 。

四、ModBus能作为一种低成本的解决方案吗?对于ModBus RTU和ModBus TCP , 答案都是肯定的 。 ModBus RTU 应用需要读取 4-20mA 或 0-10 V 输入 , 并在 PC 或 PLC 中显示 。 而使用ModBus TCP , 只需要一个模拟ModBus TCP卡 , 并使用交叉电缆或通过路由器直接将其连接到带有Cat5或Cat6电缆的PC , 就可以非常快速地读取ModBus寄存器 。
无论是使用ModBus RTU还是ModBus TCP , 都会发现它是适合您应用程序的简单且低成本的解决方案 。 根据系统的大小和复杂性 , 可以选择一种更适合用户需求的协议 , 但这两种协议都为工业自动化应用提供了出色的解决方案 。