我需要将一些现有的 C 代码移植到 IEC 61131-3 兼容的 PLC。
我有一些选项可以将代码拆分为离散的功能块并将这些块编织到标准解决方案中(梯形图、FB、结构化文本等)。但这需要分割 C 代码以构建每个功能块。
在查看 IEC 规范时,我意识到 IEC Instruction List 形式可能是编译器的目标语言。维基百科文章列出了两个开发工具:
但是这些似乎是针对将 IEC 语言编译为 C,而不是将 C 编译为 IEC。
另一种可能的解决方案是通过 C 到 Pascal 转换器推送 C 代码,并将其用作 Structured Text 解决方案的起点。
如果不是这些,我将沿着将代码拆分为功能块的路线走下去。
编辑
根据 mlieson 的回复提示,我应该提到 C 代码是一个现有的实时控制系统。所以程序算法应该已经适合 PLC 环境。
最佳答案
也许这个答案来得太晚了,但是由于外部库,可以从 CoDeSys 调用 C 代码。
您可以在 http://forum-en.3s-software.com/viewtopic.php?t=620 的 CoDeSys 论坛上找到文档
这将使您只需稍作修改即可将 C 代码用于 PLC。您只需要定义功能或功能块接口(interface)。