Apache PLC4X是否可以替代SCADA系统中的网关?

问题描述

我需要搜索和整理有关什么是PLC4X,PLC4X和旧版系统(例如PLC协议-网关-用户应用程序)之间的差异的信息,但是我发现的大部分内容都是关于如何使用API​​的。我想弄清楚:

  1. PLC4X在SCADA系统中的确切作用是什么?网关? api?他们两个?
  2. 如果PLC4X的角色只是统一的API,是否需要支持PLC4X的网关?
  3. 将PLC4X应用于旧式SCADA系统之前/之后有什么区别?
  4. 使用PLC4X可以防止数据遗漏吗?

PLC4X in SCADA

Legacy SCADA system

如果您使用上图回答我的问题,我会更容易理解。

解决方法

我是Apache PLC4X项目的发起人,所以我想有资格在这里为您提供帮助。

PLC4X本身不是网关,但是您可以使用它来构建一个。可以将其视为使用各种协议与各种PLC通信的通用驱动程序。我们已经实现了定义许多通用操作的API:

  • 阅读
  • 订阅
  • 浏览(尚未实施)
  • 调用函数(尚未实现)

由此,您可以实现独立于最后使用的协议的程序。这样可以轻松地与各种不同的硬件进行通信,并且可以在不更改软件的情况下迁移现有硬件。

如果您正在寻找100%实现给定PLC本地协议的所有功能的产品,那么PLC4X也不是您想要的。

目前,在Java上最好支持PLC4X。通常,这里您所需要的只是Java 8或更高版本的VM。如果您想使用我们的被动模式驱动程序以及将来的现场总线驱动程序(例如ProfiNet和EtherCat),则还需要libpcap。

目前,我们正在努力提供其他语言的驱动程序:

  • 开始(可能会以最快的速度成熟,因为这是我目前90%至100%的工作时间)
  • C(由于C真的不好玩,我会在Go上投入更多的时间,所以它可能会变慢)
  • Python(PLC4X社区正在努力的一项举措)
  • C ++(目前由于缺少贡献者而使启动停滞了)
  • C#(由于缺少贡献者,目前的计划陷入僵局)

关于您的问题3,由于两者是完全不同的事情,我不确定。如果您只是身处传统SCADA系统和兼容PLC的世界,那么我根本看不到使用PLC4X的意义。当您想将现代IT系统引入包含旧PLC的系统中时,PLC4X非常出色。最新一代的PLC有时已经带有MQTT支持,在这种情况下,我也看不到使用PLC4X的优势。不幸的是,在接下来的10到20年里,我们将不得不使用传统协议在车间内使用大量被认为是“传统”的机器。

如果您现在想做最先进的机器学习,预测性维护,黄金批处理分析……(所有很酷的Industry 4.0流行语),PLC4X当前可能是您最好的和最便宜的选择,以弥合两者之间的差距这个旧有的PLC世界和现代IT系统。

我希望我能回答你的问题。