PLC 可编程逻辑控制器协议

PLC Programmable Logic Controller Protocols

我想将 PLC 与计算机集成在一起。设置输出和读取输入。我看过 Modbus 及其简单,但如果我想对输入的变化采取行动,我需要轮询输入以检测变化。是否有任何 PLC 使用的开放和通用协议可以 push/update on sensor/input 改变而不需要轮询?

开放通用,实现起来也简单,我觉得没有。 您应该查找 "report by exception" 和 "unsolicited reporting" 之类的术语。比如DNP3就有这个特性,在电气方面应用广泛,但是实现起来并不简单,也没有开放。

根据您的控制器,也许您可​​以查看 MQQT, there is support for Arduinos and RPi's, and also industrial controllers like WISE-5231

OPC UA (Unified Architecture) 是一种在许多 PLC 上实施的开放协议标准,具有许多可用的 PC 客户端实施。除了轮询和其他通信服务外,它还支持 "subscription" 和 "event" 机制。

前两个答案不错。正如 Nelson 提到的,您没有指定您使用的是哪个控制器。您也没有提到您希望在计算机上将什么与 PLC 集成。 Beckhoff 的 TwinCAT PLC 可以使用 MQTT、OPC-UA 以及许多其他协议。他们还提供图书馆以使用他们的 ADS 协议。

作为 ADS 的一部分,您可以在您的机器上设置一个 ADS 服务器(非常简单),然后让您的 PLC 写入服务器。更典型的方法是在程序运行时使用此 ADS 机制在 PLC 中订阅 variables/structure。当变量结构更改时将触发一个事件(如果是模拟值,您可以指定它应该更改多少)。

您选择的方法可能取决于您的体系结构。如果你有很多 PLC,我会在你的计算机上设置一个 ADS 服务器,如果你有几个,请订阅你的程序。当然,您也可以混合搭配这些方法。

这是一页示例:https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_adssamples_net/html/tcsample_net_intro.htm&id=8269274592628480035