问题标签 [codesys]

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.

0 投票
2 回答
148 浏览

plc - 如何修复我在 PLC 中的设备队列上的错误

我正在尝试在 .st 中创建一个简单的队列,其中包含 6 个设备,这些设备应该按队列顺序打开和关闭,只有可用的设备应该连接。例如,我用 6 个可用设备进行了测试,然后我一个接一个不可用,但最后一个始终不会在输出处关闭,并使程序停止。我使用 infoteam 的 OpenPCS IDE。

0 投票
2 回答
1138 浏览

twincat - 如果 VAR_INPUT 是 INTERFACE 类型,值是按引用传递还是按值传递?

在 TwinCAT 和 CodeSys IEC-61131 编程环境中,可以VAR_INPUT使用 anINTERFACE作为类型规范来声明 POU。我相信 TwinCAT 和 CoDeSys 中对接口的支持是对标准 IEC-61131 语言定义的扩展。

问题1:调用POU时,interfaceVAR_INPUT是否有pass-by-value(即输入FB的状态在每次执行被调用的FB时复制)或pass-by-reference语义?

问题 2:此行为在哪里指定或记录在案?

0 投票
0 回答
98 浏览

codesys - 如何为 Pfc100 包加载 Codesys 控件?

我正在使用Codesysv3。Sp14 补丁。当我PCF100V3.5.14.20. 我的 750-8100 固件版本是 11。我收到一个错误 Expected exit value of command failed: expected 0, received -1。我也得到

错误输出:ipkg * 无法杀死旧的 gunzip 进程 *正在中止。

当我还wago通过 wago 网络浏览器尝试使用固件版本 12,11 和 9 时,它也给出了同样的错误。

0 投票
1 回答
244 浏览

codesys - Codesys 和 CANopen 多节点 ID

如果我有带有 CANopen 管理器的 Codesys 项目,并且我将 CANopen 从节点添加到节点 ID 为 19 的 CAN,系统对我来说很清楚,但如果我添加两个具有相同出厂预设节点 ID 19 的相同传感器设备,我该如何更改两个中的任何一个的节点ID?我一点主意都没有。设备支持 LSS,但我不知道如何在有或没有它的情况下实现 nodeid 更改。我应该对其进行编码还是 canopen 管理器以某种方式更改 nodeid。欢迎任何想法。当然,我可以通过将第一个设备添加到 CAN 来更改它并更改它,然后我可以将第二个设备添加到 CAN 总线。但是我想在两者同时在 CAN 总线上时动态更改,所以它应该与未来生产线的情况相同。

0 投票
1 回答
824 浏览

codesys - 如何在 Codesys 中转换数组的数据类型

我正在将来自 REAL 数据类型的能量计的数据接收到一个数组中。 My array: ARRAY[0..49] OF Real; 我想将此数据转换为字符串数据类型,就像我希望将所有值分别用逗号“”括起来一样。

等待您的善意回应。

0 投票
1 回答
1449 浏览

stl - 从 codesys v 3 中的字符串拆分日期和时间

我正在使用 codesys。我有一个包含日期和时间的字符串。我想拆分日期和时间。当前时间:DATE_AND_TIME;在 concat 之后显示像这样的值 DT#2019-08-06-10:06:53 将 currentTime 变量转换为 string 。

现在我想拆分日期和时间值

请提供减速和执行部分

0 投票
1 回答
1010 浏览

powershell - 试图让 Codesys 从 HMI 运行批处理文件

因此,目前,我正在尝试获取实习生为该项目留下的代码。我有一个单击时运行的批处理文件,它将执行一个 powershell 脚本,该脚本将生成的 CSV 文件从收集的数据转换为 Excel 文件。我试图在 HMI 中单击按钮时自动执行此过程,但不确定如何在 Codesys 中调用批处理文件。

我尝试在代码的不同位置调用批处理文件。单击按钮时不会运行它。

这段代码没有错误,我只想找到一种方法,让批处理文件在用户单击特定按钮时自动执行。目前,用户必须手动进入文件资源管理器并自己运行批处理文件。

0 投票
1 回答
243 浏览

syntax - 在 Codesys 的数组中制作子数组?

我正在尝试操作现有数组的子数组。Codesys 可以做到这一点吗?我想这更像是一个语法问题。

在 Python 中,slice()是否有 Codesys 等价物?

这是我正在尝试做的一些伪代码

[1,1..3] 或 [1,1:3] 不是有效的语法。访问多个单元格的适当方法是什么?

0 投票
1 回答
595 浏览

plc - 通过引用传递的输入变量的语义是什么?

Beckhoff 的 TwinCat-3 以及它所基于的 Codesys 3 添加了引用作为对 IEC-61131-3 语言的扩展。我想知道这个非标准添加的确切语法和语义是什么(这就是它们的问题:没有人像标准那样费心记录它们)。

当从下面的测试函数调用时,它下面的F_IsNonEmpty函数有效并且做人们期望的事情吗?F_Test

鉴于必须使用REF=运算符初始化引用的目标(引用目标是不可变的 vseg C++),我原以为以下调用代码将是正确的——但它甚至无法编译:

似乎F_Test1可以正常工作,但我希望实际使用 Codesys 3 或 TwinCat-3REFERENCE TO功能的人来确认。

0 投票
3 回答
1905 浏览

plc - 按索引返回字符串的一个字符的语法

我正在尝试比较字符串的一个字符以查看它是否是我的分隔符。但是,当我执行以下代码时,放置在变量中的值valstring是一个数字,它表示转换为字符串的字节,而不是字符本身。例如,该值可能是字符串“58”。

通过我在 CoDeSys 中使用调试功能进行的测试,我知道该字符串sReadLine包含有效的字符串。我只是不确定只选择其中一个的语法;这sReadLine[valPos + i]部分是我不明白的。