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 服务器,如果你有几个,请订阅你的程序。当然,您也可以混合搭配这些方法。
我想将 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 服务器,如果你有几个,请订阅你的程序。当然,您也可以混合搭配这些方法。