开源与PLC的结合MatPLC项目

本材料是2002年7月《控制工程》封面文章“嵌入式控制:系统的核心”中“开源与PLC相遇:MatPLC项目”的全文。点击这里阅读完整的封面文章。

Joe Jansen, Anderson, SC为MatPLC项目贡献程序员和测试人员 二二年八月二十一日

本材料是2002年7月《控制工程》封面文章“嵌入式控制:系统的核心”中“开源与PLC相遇:MatPLC项目”的全文。点击这里阅读完整的封面文章。

MatPLC是面向封闭的、专有的基于pc的控件世界的开源解决方案。它是在GNU通用公共许可证(GPL)下发布的,这意味着它是免费提供给公众的。这是我们的意图,这是一个公共拥有的项目,公众可以自由地使用,修改,扩展和做任何他们想要的系统。任何觉得能够为这个项目做出贡献的人都非常欢迎加入。在大多数竞争系统中,没有合同、秘密协议、许可或其他限制。现有软件包的问题在于,它们将您绑定到单一供应商,强制升级以保持技术支持,并且除了少数例外,它们严格基于Microsoft windows。

Linux的一个优点是,它可以通过删除执行手头任务不需要的组件来定制工具。将Linux系统精简到适合软盘是可能的。这种可定制性意味着您可以通过消除执行控制任务不需要的任何东西来获得出色的硬件性能。如果这还不够,MatPLC被设计为POSIX兼容,因此它可以移植到其他Unix变体,包括支持硬实时的Unix变体,如QNX、RTLinux等。

通过在与Linux相同的GNU通用公共许可证(GPL)下发布MatPLC,我们可以保证集成商和用户能够永久地应用、更新和支持他们的系统,如果他们愿意的话。与当前的解决方案不同,一旦新版本发布,就会停止对系统提供支持,GPL确保没有人会被迫对他们的系统进行剧烈的更改,只是为了继续被允许使用它。任何经历过将HMI或PC控制系统从Microsoft Windows 95迁移到Windows NT,甚至从一个版本的HMI[人机界面]迁移到另一个版本过程的人,都知道其中所涉及的问题。但是首先这样做的唯一令人信服的原因是供应商不再支持原始系统。这就是我们试图用MatPLC纠正的问题。通过使用GPL,任何人都可以继续使用他们喜欢的任何版本。

在项目早期做出的设计决策之一是尽可能地保持整个系统的模块化。通过这种方式,项目将只由执行所需操作所需的模块组成。

PLC核心包括一个共享内存管理器,该管理器控制对公共数据表的访问。I/O模块、模拟信号、整数和浮点变量等都可以通过这个内存管理器访问。通过控制每个模块何时将其数据同步到中心表,我们可以确保每个进程都使用一致的数据集,并且更新是精确可预测的。

同步也通过PLC核心进行维护。模块可以配置为以锁步扫描方式一个接一个地运行,或者可以配置复杂的关系,使用改进的petri-net控制设计,使模块相互独立运行。

今天,MatPLC正接近beta测试阶段。我们有一些I/O模块,最近的是Modbus主控模块。我们还支持Hilscher卡(www.hilscher.com),其中包括DeviceNet、AS-i、Profibus支持和许多其他工业网络。我们有系统核心,包括共享内存管理器。一个系统配置器正在开发中,我们也有一个操作指令列表逻辑引擎,以及一个正在进行中的HMI。我们正在将一个梯形逻辑编辑器/解算器吸收到项目中,并与姊妹项目合并。这是开源开发中最强大的方面之一。还有其他人在做的其他项目。当我们能够与他们一起工作时,将我们的两个项目结合成一个项目的能力就形成了一个非常强大的开发方法。与其躲着别人,试图保守我们正在做的事情的秘密,我们可以把我们的资源集中起来,大家都是赢家。

由于PC的设计,I/O控制最好使用现场总线网络来完成。我们最大的挑战之一是说服控制现场总线标准的各方,让他们允许我们支持他们的协议。他们中的许多人只是不希望允许他们的网络在开放系统环境中使用,而是希望将它们锁定在广泛的支持之外。通过在固件中使用硬件实现协议,我们已经在一定程度上解决了这个问题,这让我们可以使用硬件供应商的许可来使我们的使用合法,但如果我们能够本地实现这些协议,对最终用户来说会好得多。

我们的希望是,一旦我们发布了一个真正开放的系统,使用Modbus和其他厂商的I/O模块来帮助我们,其他一些网络也会加入我们的行列。我们还与一家基于机架的PC系统供应商合作,该系统位于plc风格的机箱中。这是目前市场上的一个系统,我们正试图让Linux在这个平台上运行。这将打开大量的I/O选项,并为我们提供一个半标准的硬件平台来备份它。

可在微型plc上使用。SixNet向我们承诺了一个允许我们与它的I/O设备通信的库。库将是gpl兼容的。对于系统供应商来说,这不是一小步。我们希望其他国家看到这一举措的积极成果,也能加入进来。

乔·詹森·安德森,南卡罗来纳州
为MatPLC项目贡献程序员和测试人员
JoeJansen@kemet.com

有关更多信息,请参阅描述性幻灯片https://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ *结帐* /垫/ doc /谈判/ rtl - 2001 / rtl - 2001. - htm