问题标签 [iec61131-3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
real-time - 在 CODESYS (IEC61131) 中实例化众多功能块
我使用 CODESYS 制作了一个功能块来执行电能计量。功能块的输入是电流和电压,输出是能量。现在,我们需要有 1000 个此功能块的实例来运行我们拥有的 1000 米的代码。编写(可能还有复制和粘贴)这些实例似乎不是最有趣的工作。想知道是否有人有更聪明的方法来做这个众多的实例化。
例如,下面是 2 个实例的代码(在 CODESYS 中)的样子:
我们希望拥有 1000 个实例。任何想法都受到高度赞赏。
file-io - 如何在 CODESYS (IEC 61131-3 ) 中执行文件 I/O?
我正在使用自动化设备(配备 CODESYS)来计算功能块的输出值。为了确保函数按预期工作,我们希望将此输出值与另一个我们没有编写的函数块的输出结果进行比较。
为了报告此比较的结果,我们希望以图形的形式绘制上述两个值。因此,我们需要有这两个数据的时间字符串(csv 或任何其他格式)。我做了一些谷歌研究,也看看这个问题。似乎没有大量关于如何使用 CODESYS 进行文件 I/O 的信息。
我想知道是否有人有类似的经验(执行同步文件 I/O 以生成 CSV 数据)。
任何想法都受到高度赞赏。谢谢。
plc - 在线更改期间的指针和引用行为
任何人都可以帮助我了解有关在线更改期间指针、引用和接口引用的行为方式的更多信息吗?
我有什么要注意的?我从其他答案中了解到,如果在每个周期中不编写指针可能会很危险,但我将主要使用接口和引用。
plc - 61131程序架构
在我的 61131 程序中,我有需要在不同程序部分之间共享的对象/信息。什么是最佳实践,需要共享的对象应该是 PRG POU 中的 VAR 还是 GVL 中的全局?
从“高级”编程中,我对全局数据持怀疑态度,但这可能是必要的吗?
感谢 61131 中有关最佳实践架构的任何意见。
llvm - 是否有符合 IEC61131-3 的 IL 代码的 LLVM 后端?
有人知道根据IEC 61131-3输出 IL (指令列表,也称为 AWL)的LLVM 后端吗?
背景:我有一个用 C 语言编写的算法,想在工业 PLC 上运行它,不幸的是它不能处理 C 代码(其他一些 PLC 能够做到)。我想到的一种可能的方法是将 C 代码编译为 IL,然后可以将其导入 PLC。
如果 LLVM 没有 IL 后端,你怎么看:在技术上是否可以编写一个后端,这意味着多少努力?
我对 LLVM 等所有这些东西都很陌生,但在我看来,IL 与汇编程序非常相似。
automata - Hierarchical State Machine in IEC 61131-3
I would like implement a HSM in 61131-3. Doing some reading I understand that HSM's are a sort of subset of pushdown automata?
Most of the examples from other languages are using pointers and references, which I would like to avoid. Is it feasible to implement a HSM without using pointers or references?
I guess I need an event stack and a stack for the nesting of the stack?
Thanks
arrays - Symbolic adressing of array elements
I have an array of objects, lets say MyArray[1..x]
of Object.
When programming I want to have a more "readable" way of addressing each object. Instead of saying MyArray[1] := ...etc
. I would like to say MyReadableName :=...
I've looked into references, but I'm worried a bit about the whole pointer stuff. How could I do this in a good way and support online change? And where should I put the declaration and assignment of the references, it could be many many hundreds, and I don't want to clutter the Main VAR window when in online mode?
Another thing I've looked at is having an enum with the readable names and using this as an index into the array. The lookup is then MyArray[Enum.MyReadableName] :=..
. but I'm not sure if that is a good solution.
Any solutions or hints are very welcome! Thanks!
switch-statement - 如何避免使用结构化文本在 CCW 中的案例标签中使用文字?
我正在使用 Connected Components Workbench (CCW),文档中给出的 case 语句的语法是:
我想避免使用显式数字(文字):
当我为案例标签使用变量时,出现编译错误:
错误 1 STATE_A:意外语句
有没有办法避免不同情况下的明确数字?
locking - 用整数互锁对象
我有一堆对象,每个对象都有一个唯一的 ID。
我需要互锁对象,以便一次只允许其中一个对象执行特定操作。
我有一个想法来定义一个所有对象都可以访问的整数。
如果联锁是空闲的,则整数包含零。然后允许对象将其自己的唯一 ID 放入整数中,执行操作并在之后放回零。
如果任何其他对象在其锁定时检查该整数,它将看到一个与其自己的 ID 不同的非零值并退出。
感觉几乎 100% 肯定我在这里重新发明了一个旧原则,但没有受过 CS 教育,我什至不知道它叫什么,所以我不知道要搜索什么。
我锁定声音的方法/有缺陷吗?我应该阅读什么?
请注意,这是相当低级的 61131-3/PLC 编程,因此没有单例模式等。
谢谢
javascript - EC6 中“导出默认值”之后的“要求”如何工作?
按照教程,我在一个文件中找到了这段代码:
该文件被导入另一个文件:
当我运行应用程序时出现此错误
我想解决这个问题,但我不明白require
在 for 之前是如何工作的export default
。
谢谢!