C 至 IEC 61131-3 IL 编译器

2023-12-15

我需要将一些现有的 C 代码移植到IEC 61131-3兼容的PLC。

我可以选择将代码拆分为离散的功能块,并将这些块编织成标准解决方案(梯形图、FB、结构化文本等)。但这需要分割 C 代码才能构建每个功能块。

当查看 IEC 规范时,我意识到IEC 指令表form 可以是编译器的目标语言。维基百科文章列出了两种开发工具:

  1. CoDeSys
  2. Beremiz

但这些似乎是针对将 IEC 语言编译为 C,而不是 C 到 IEC。

另一种可能的解决方案是通过 C 到 Pascal 转换器推送 C 代码,并将其用作结构化文本解决方案。

如果不是其中任何一个,我将沿着将代码拆分为功能块的路线。

Edit

正如 mlieson 的回复所提示的,我应该提到 C 代码是现有的实时控制系统。所以程序算法应该已经适合PLC环境。


也许这个答案来得太晚了,但是借助外部库,可以从 CoDeSys 调用 C 代码。

您可以在 CoDeSys 论坛上找到文档:http://forum-en.3s-software.com/viewtopic.php?t=620

这样您就可以在 PLC 中使用 C 代码,只需稍作修改即可。您只需定义函数或函数块接口。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 至 IEC 61131-3 IL 编译器 的相关文章

  • Windows 10 Mobile (10.0.14393) 地理围栏后台任务 (LocationTrigger)

    自从10 0 14393 周年纪念更新 LocationTrigger似乎不起作用 我有 Windows Phone 8 1 应用程序 也适用于 UWP 应用程序 输出到的便携式库Windows Runtime Component图书馆 w
  • 通过增加索引之和来生成排序组合的有效方法

    对于启发式算法 我需要一个接一个地评估特定集合的组合 直到达到停止标准 由于它们很多 目前我正在使用以下内存高效迭代器块生成它们 受到 python 的启发 itertools combinations http docs python o
  • 内联函数/方法

    声明 内联函数必须在调用之前定义 这个说法正确吗 EDIT 该问题最初是德语 内联功能穆森 弗 伊赫雷姆 奥夫鲁夫定义 sein 也许它对任何人都有帮助 是的 它是正确的 但只是部分正确 它可能正确地重新构建如下 内联函数必须在每个翻译单位
  • 将字节数组转换为托管结构

    更新 这个问题的答案帮助我编写了开源项目GitHub 上的 AlicanC 现代战争 2 工具 https github com AlicanC AlicanC s Modern Warfare 2 Tool 你可以看到我是如何阅读这些数据
  • C 程序从连接到系统的 USB 设备读取数据

    我正在尝试从连接到系统 USB 端口的 USB 设备 例如随身碟 获取数据 在这里 我可以打开设备文件并读取一些随机原始数据 但我想获取像 minicom teraterm 这样的数据 请让我知道我可以使用哪些方法和库来成功完成此操作以及如
  • 从多线程程序中调用 system()

    我们正在开发一个用 C 编写的多线程内存消耗应用程序 我们必须执行大量的 shellscript linux 命令 并获取返回码 读完之后article http www linuxprogrammingblog com threads a
  • SSL/TLS/HTTPS 站点在 C#/.NET WebBrowser 控件中非常慢,但在 Internet Explorer 中则很好

    背景 我正在修改自动维基浏览器 http en wikipedia org wiki Wikipedia AutoWikiBrowser使用托管在安全服务器上的 MediaWiki 站点 我允许用户通过 C 应用程序中的 WebBrowse
  • 从 C 结构生成 C# 结构

    我有几十个 C 结构 我需要在 C 中使用它们 典型的 C 结构如下所示 typedef struct UM EVENT ULONG32 Id ULONG32 Orgin ULONG32 OperationType ULONG32 Size
  • 如何创建用于 QML 的通用对象模型?

    我想知道是否有任何宏或方法如何将 Qt 模型注册为 QObject 的属性 例如 我有AnimalModel http doc qt io qt 5 qtquick modelviewsdata cppmodels html qabstra
  • 获取尚未实例化的类的函数句柄

    我对 C 相当陌生 我想做的事情可能看起来很复杂 首先 我想获取一些函数的句柄以便稍后执行它们 我知道我可以通过以下方式实现这一目标 List
  • 带 If 的嵌套 For 循环的时间复杂度

    void f int n for int i 1 i lt n i if i int sqrt n 0 for int k 0 k lt pow i 3 k do something 我的思考过程 执行if语句的次数 sum i 1 to
  • 从 Code::Blocks 运行程序时出现空白控制台窗口 [重复]

    这个问题在这里已经有答案了 当我尝试在 Code Blocks 中构建并运行新程序时 控制台窗口弹出空白 我必须单击退出按钮才能停止它 它对我尝试过的任何新项目 包括 Hello world 都执行此操作 奇怪的是 它对于我拥有的任何旧项目
  • 为什么 clang 使用 -O0 生成低效的 asm(对于这个简单的浮点和)?

    我正在 llvm clang Apple LLVM 版本 8 0 0 clang 800 0 42 1 上反汇编此代码 int main float a 0 151234 float b 0 2 float c a b printf f c
  • C++ 错误 - “成员初始值设定项表达式列表被视为复合表达式”

    我收到一个我不熟悉的 C 编译器错误 可能是一个非常愚蠢的错误 但我不能完全指出它 Error test cpp 27 error member initializer expression list treated as compound
  • 默认析构函数做了多少事情

    C 类中的默认析构函数是否会自动删除代码中未显式分配的成员 例如 class C public C int arr 100 int main void C myC new C delete myC return 0 删除 myC 会自动释放
  • asp.net网格分页的SQL查询

    我在用iBatis and SQLServer 使用偏移量和限制进行分页查询的最佳方法是什么 也许我添加该列ROW NUMBER OVER ORDER BY Id AS RowNum 但这只会阻止简单查询的数据访问 在某些情况下 我使用选择
  • 从 Delphi 调用 C# dll

    我用单一方法编写了 Net 3 5 dll 由Delphi exe调用 不幸的是它不起作用 步骤 1 使用以下代码创建 C 3 5 dll public class MyDllClass public static int MyDllMet
  • 在 C++17 中使用 成员的链接错误

    我在 Ubuntu 16 04 上使用 gcc 7 2 并且需要使用 C 17 中的新文件系统库 尽管确实有一个名为experimental filesystem的库 但我无法使用它的任何成员 例如 当我尝试编译此文件时 include
  • 为什么文件更新时“如果较新则复制”不复制文件?

    我在 Visual Studio Express 中有一个解决方案 如下所示 The LogicSchemaC 中的类 将在运行时解析指定的 XML 文件 以下是在main的方法Program cs LogicSchema ls new L
  • C#中为线程指定特殊的cpu

    我有 2 个线程 我想告诉其中一个在第一个 cpu 上运行 第二个在第二个 cpu 上运行 例如在具有两个 cpu 的机器中 我怎样才能做到这一点 这是我的代码 UCI UCIMain new UCI Thread UCIThread ne

随机推荐

  • 如何在 Eclipse 中添加 hibernate javadoc?

    过去两个月我一直在使用 Eclipse 我之前没有在其中使用javadocs 今天我搜索了 hibernate javadocs 并得到了 hibernate 3 2 2 ga javadoc jar 但我不知道如何在 eclipse 中添
  • Oracle PL/SQL:动态循环触发器列

    在触发器内部 我尝试循环表上的所有列并将新值与旧值进行比较 这是我到目前为止所拥有的 CREATE OR REPLACE TRIGGER JOSH TEST UPD BEFORE UPDATE ON JOSH TEST TRIGGER TA
  • Eclipse可以自动刷新资源吗?

    Eclipse 带有 PyDev 的 3 4 2 处理不同步资源 在 IDE 外部编辑的文件 的方式与我使用过的其他 IDE 不同 在其他 IDE 中 只有编辑器打开的资源才被视为不同步 在 Eclipse 中 任何资源都可能不同步 这意味
  • 将当前日期作为 Y-m-d 与不具有零填充天数的 Y-m-d 字符串进行比较

    如何在 PHP 中比较两个日期 日期以以下格式存储在数据库中 2011 10 2 如果我想将今天的日期与数据库中的日期进行比较 看看哪一个更大 我该怎么做 我试过这个 today date Y m d expire row gt expir
  • 根据购物车商品数量和产品类别进行折扣

    我正在尝试根据最小购物车商品数量和类别添加自定义购物车折扣 我从这个答案中获取了代码 购物车折扣基于购物车商品数量 并且仅适用于未促销的商品 我对其进行了一些更改 这是我的代码 add action woocommerce cart cal
  • 在单个结构中处理不同的数据类型

    我需要发送一些有关 VxWorks 消息队列的信息 要发送的信息是在运行时决定的 并且可以是不同的数据类型 我正在为此使用一个结构 struct structData char m chType variable to indicate t
  • 使用 DI->Get Phalcon PHP 时出现“无效服务定义”

    这个问题与在 PhalconPHP 中附加多个配置数组 我正在尝试使用 get 方法从 DI 检索对象 对象是这样设置的 new array the array with the merged data Load it in a Phalc
  • VBA - 未定义子或函数

    我的代码不断出现 Sub 或 Function not Defined 编译错误 我想要完成的是通过单元格中的输入获取两个项目描述符 然后为该项目生成一个唯一的字母数字序列号 然后将其输出到屏幕上并将其保存在另一张纸上 诚然 这甚至没有开始
  • JPA SQL Server 没有 JDBC 类型的方言映射:-9

    我正在编写一个本机查询 例如 Query query entityManagerUtil getEntityManager createNativeQuery SELECT c NodeID c Code c Name FROM COM L
  • jQuery 可排序回调不起作用?

    我正在使用Sortable的组成部分jQuery用户界面 即使进行了这个简单的测试 回调似乎也根本不起作用
  • 自定义 UIPageControl 的位置

    我使用 github 中的项目作为参考 项目网址 https github com lephuocdai iOSsample tree master PageViewDemo 在这个项目中 我想在左上角位置显示 UIPageControl
  • Git 推送抛出错误:GH001:检测到大文件

    我正在将用 Swift 编写的 Xcode 项目推送到 GitHub 在这个项目中 我使用了适用于 IOS 的 GoogleMaps SDK 以及与其他一些框架集成的 GoogleMaps 框架 这使得这个项目如我预期的那样沉重 特别是有一
  • 通用 Windows InkCanvas 笔划在 RenderTargetBitmap.RenderAsync 上消失

    我尝试将 InkCanvas 的笔画渲染到 Windows 10 通用应用程序中的 RenderTargetBitmap 这是我的 xaml 代码
  • 如何在远程集群中使用 NodePort 访问 kubernetes 仪表板进行测试?

    我有一个在远程虚拟机 在 VSphere 上 中运行的测试 Kubernetes 集群 我可以通过以下方式完全访问虚拟机 ssh 他们有私人IP 知道我可以远程执行所有 kubectl 命令 如何公开服务并从集群外部访问它们 从我的远程笔记
  • Android 模拟器:音频输入失败

    每当我尝试启动模拟器时 这些错误都会出现在控制台中 audio Failed to create voice goldfish audio in qemu system i386 exe warning opening audio inpu
  • Grails:部署时间非常慢。 “解决依赖关系...”需要 10 多秒

    每次我对 Grails 应用程序进行微小更改时 部署它都需要 10 15 秒 大部分时间都在 解决依赖关系 Welcome to Grails 1 3 7 http grails org Resolving dependencies Dep
  • 创建后如何在 JTextField 中设置新文本?

    我有一个 jTextField 当我创建框架时 我将其值设置为一定的总和 这是启动代码 totalTextField setText itemsPriceTextField getText Float toString orderDetai
  • 如何在模拟器中测试 MFMailComposeViewController

    有没有办法测试从以下位置发送电子邮件MFMailComposeViewController在 iPhone 模拟器中 不 你不能在模拟器上测试它 我的意思是你的邮件不会被送达 我们将能够测试有限的东西 例如 视图将如何 当用户单击取消按钮时
  • Android中的自动滚动TextView将文本带入视图

    我有一个TextView我正在动态添加文本 in my main xml文件中我设置了属性以使我的最大行数为 19 且滚动条垂直 in the java我正在使用的文件textview setMovementMethod new Scrol
  • C 至 IEC 61131-3 IL 编译器

    我需要将一些现有的 C 代码移植到IEC 61131 3兼容的PLC 我可以选择将代码拆分为离散的功能块 并将这些块编织成标准解决方案 梯形图 FB 结构化文本等 但这需要分割 C 代码才能构建每个功能块 当查看 IEC 规范时 我意识到I