Modbus 已经四十岁了,它仍然驱动着一半的工业世界。原因很简单:它简单、开放,并且只需两根线和一份祈祷。当您的 SCADA 需要读取一个Micro PLC,Modbus 就是您将要使用的语言——xLogic 系列以主从模式支持 RTU、ASCII 和 TCP。
这是设置路径,包含数据表页面从未打印的详细信息。
串行优先:RS485 和 Modbus RTU
RS485 端口通过标准 RS485 端口与任何设备进行 Modbus RTU 或 ASCII 通信——变频器、能量表、人机界面、其他 PLC。通过内置端口连接,或者为没有本地 RS485 端口的 CPU 添加 SR-RS485 模块。PRO-RS485 电缆在紧急情况下将编程端口转换为隔离的 RS485 端口。
波特率:9600 是默认值,也是最安全的。想要 19200 吗?先更改 CPU 端,然后更改 SCADA 端——手册中有明确说明,反向操作会导致失败模式(静默超时),浪费您一个下午的时间。
寻址比速度更重要。总线上的每个设备都有一个唯一地址,手册中的警告值得记住:重复地址会导致通信异常。在实践中,这意味着数据损坏,而不是礼貌的错误信息。
以太网:现代工厂的 Modbus TCP
在支持以太网的 CPU 上,Modbus TCP 是标准路线:PLC 作为服务器,SCADA 或 HMI 通过局域网轮询寄存器。无需网关,无需协议转换器,网络上的寄存器映射与串口上相同。控制器上有一个静态 IP,通过路由器可达的端口,您的办公室可以看到机器。
远程工作有两种连接方式——CPU 作为服务器(直接、简单,需要可达的 IP)或 CPU 作为客户端拨号到服务器(适用于 NAT 和移动站点)。在配置之前,了解您的站点需要哪一种,因为它们的配置方式不同,混淆它们是经典的三小时谜题。
真实设置:泵站进入 easySCADA
一个有液位、压力和流量值的双泵站:CPU 运行交替逻辑,办公室的 PC 运行免费的 easySCADA 软件包。首先进行串行测试——CPU 在 RS485 上,站点地址 1,9600 波特率,液位寄存器已映射。一旦值出现在 easyMonitor 屏幕上,同一项目通过端口更改切换到 Ethernet,办公室 PC 看到相同的寄存器。
总配置时间:一个下午,包括喝咖啡的时间。协议没有反抗,因为我们严格遵循了地址和波特率规则。
SCADA 端
easySCADA 仅支持 Modbus RTU 和 TCP——不支持 MQTT,不支持 OPC-UA,这没关系,因为 Modbus 是 SCADA 世界仍然信任的控制器类型。请在数据选项卡中映射寄存器块:输入、输出、标志、模拟标志、寄存器,设置高/中/低轮询优先级。优先级比人们想象的更重要——报警标志应快速轮询,模拟值可以等待。
再补充一点:RS485 需要在总线两端有公共接地和终端。协议是宽容的;电气层则不是。双绞线、正确极性、一个接地参考——这就是全部秘密,永远不会改变。
寄存器映射纪律
Modbus 项目的无声杀手不是接线或波特率,而是寄存器映射——特别是当它仅存在于某人的脑海中时。我调试过的系统中,SCADA 错误地读取了两个星期的错误寄存器,因为程序更新更改了地址,而没有人更新映射。值看起来似乎合理。这就是陷阱:看起来正确的错误数据比没有数据更糟。
在创建寄存器映射的那一天将其写下来。列:PLC 地址、寄存器编号、数据类型、缩放、单位,以及哪个 SCADA 点读取它。将其保存在项目文件夹中,像代码一样进行版本控制,并在与程序相同的提交中更新它。花费的十五分钟将在第一年内为您节省一个周末的困惑——保证。
设计映射时留有扩展空间。在功能组之间留出间隙:输入在 100-120,输出在 150-160,模拟在 200-240,标志在 300-320。当客户要求一个新值时——他们总是会要求——它会落在一个间隙中,而无需重新编号所有内容并破坏 SCADA 屏幕。这种前瞻性规划是一个系统能够演变与每次添加传感器时都需要重新调试项目之间的区别。
并且故意使用数据类型。报警使用离散位,计数使用 16 位整数,精度重要的地方使用浮点数。easySCADA 的数据选项卡为您提供类型选择——字节、字、寄存器、标志——以及轮询的优先级字段。报警使用高优先级,慢值使用低优先级。SCADA 按照您告诉它的顺序进行轮询,而设计良好的映射使整个系统更加灵敏。
排查无声总线故障
当 SCADA 屏幕冻结时,从便宜到昂贵的顺序检查列表。首先:PC 是否在正确的网络上?子网不匹配看起来就像死总线,检查只需十秒。第二:地址。如果 SCADA 有诊断功能,请在其中输入寄存器编号——错误的地址可以正常轮询但不返回任何内容。第三:波特率。CPU 和 PC 之间的不匹配会导致沉默,手册中的规则——先更改 CPU 端——存在是因为这种故障非常常见。
第四,这个问题让每个人都感到谦卑:电气层。RS485 需要在所有设备之间有共同接地和在总线物理端的终端电阻。浮动接地会产生间歇性损坏,随着机柜中的负载而出现和消失。我看到工程师更换了三个设备,追逐一个结果证明是缺失的接地线。使用万用表,测量接地之间的电阻,然后再更换硬件。
在面板中保留一份寄存器映射的副本。塑封,放在门后,靠近接线图。下一个工程师——可能是您,十八个月后——会感激您的名字。
Modbus 并不华丽。它只是机柜中最可靠的东西,一旦接线正确,它会保持多年不变。












