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 编译器 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 如何在 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