工业软件架构的新突破。开源的基于多核异构框架 RTOnBoot 和 OpenPLC 打造的低成本高性能 linux 主控加工业控制器解决方案
工业控制器是现代工业控制系统的重要组成部分,它的性能和稳定性对工业控制系统起着至关重要的作用。
现在市场上有一些国内外的成熟的工业控制器解决方案,它们一般都不开源,而且价格不斐,并且实时性并不优越。OpenPLC 是开源的工业控制器解决方案,OpenPLC 有良好的生态,但 OpenPLC 实时性能很差,有诸多地方需要改进。
成都实安安信科技有限公司将其所开发的业界领先的多核异构框架 RTOnBoot,以及基于 RTOnBoot 的 Ethercat 主站解决方案,同 OpenPLC 完美融合,推出了开源的基于多核异构框架 RTOnBoot 和 OpenPLC 打造的低成本高性能 linux 主控加工业控制器解决方案。
多核异构框架 RTOnBoot 具有优异的实时性能,让 OpenPLC 的 runtime 运行在 RTOnBoot 所控制的实时核上,无疑会大大提升 OpenPLC 的 runtime 的运行的实时性能。同时 OpenPLC 的 webserver,libmodbus,opendnp3 和 libsnap7 等运行在 linux 上,这样既发挥了 Linux 在网络上的优势,又发挥了 RTOnBoot 的实时性能优势,优势互补,使系统整体性能达到最优,又不增加成本。
现在的版本采用 RTOnBoot 的多核版,让 RTOnBoot 控制两个实时核,一个运行 Ethercat SOEM 主站,另一个运行 OpenPLC 的 runtime,Ethercat SOEM 主站的同步周期可稳定达到 125 微秒,OpenPLC 的 runtime 的循环周期也是 125 微秒,OpenPLC 的 runtime 的延时不影响 Ethercat SOEM 主站。现在经测试,在 RK3588 上,OpenPLC 的 runtime 的执行延时,最小执行延时 4.592 微秒,最大执行延时 44.198 微秒, 平均执行延时 9.128 微秒,这个执行延时是包含了等待锁的时间的,为了保证数据一致性,是加了核间锁的,可以看出实时性能优异。Ethercat SOEM 主站的延时和以前一样,sleep 的最大延时是 11 微秒,执行最大延时包括收发包是 20 微秒,两个最大的延时加起来只有 30 微秒多,距离 125 微秒还有 90 多微秒的裕量。
如果用户不需要 Ethercat 主站或是 OpenPLC 的 runtime 的延时不影响 Ethercat 主站的实时性能,也可让 RTOnBoot 只控制一个核,这很容易切换。
原有的 OpenPLC 方案是在目标机器上生成并编译出 OpenPLC 的 runtime,直接照搬肯定不行,因为现在是交叉编译,而且 runtime 运行在 Nuttx 上。所以我们的解决方案是把生成的程序和 hardware layer 交叉编译成一个 Nuttx 的动态链接库,再把这个动态链接库和 st 源文件以及一些配置参数打包成一个特殊的 bin 文件。这个特殊的 bin 文件在开发环境下由一个脚本一键生成。把 OpenPLC 的原有的通过网页上传 st 源文件改为上传 bin 文件。OpenPLC 的 Hardware 的原有选项中增加一个 RTOnBoot 选项,并且缺省即处于这种状态。在这种状态下,OpenPLC 的原有的的编译流程改成了解包这个特殊 bin 文件的流程。其他的 OpenPLC 原有配置不变。当然 OpenPLC 的原有的代码中一些不完善的部分我们也进行了改进。
通过以上一些努力,我们就实现了一个完整且完善的低成本高性能 Linux 主控加工业控制器加 Ethercat 主站解决方案。
这个方案除了 RTOnBoot 框架的少量代码外,其他跟 OpenPLC,PLC runtime 和 Ethercat 主站有关的代码全部开源。RTOnBoot 框架编程简单且经过了充分验证和测试。
以下是低成本高性能的 Linux 主控加工业控制器加 Ethercat 主站解决方案的演示视频
https://www.bilibili.com/video/BV1nLSKB3EBH/?vd_source=bd86c57a4fc0bbcd4f3e9d0999ce28e2
源码下载地址是:
https://gitee.com/winfred-young/RTOnBootIndustrialController
欢迎咨询和交流。







评论