问题标签 [structured-text]

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 投票
1 回答
2575 浏览

plc - Wago codesys PLC 字到布尔转换

我正在使用 Wago PFC100 和 Ecockpit 软件对太阳能电池跟踪器进行编程。

我有一个关于将 16 位 WORD 中的一些计数器值转换为 BOOL 形式的脉冲串的原则问题。

16 位字寄存器从 0 向上/向下计数到 12621。我需要将其转换为 BOOL 脉冲。

当字计数器从 0 变为 1 时,我需要一个 BOOL 脉冲 0->1->0,而在下一次从 1 计数到 2 时,我需要一个 0->1->0 的新 BOOL 脉冲。

在字寄存器倒计时的情况下,我还需要脉冲:2 比 1 还需要生成 BOOL 脉冲 0->1->0。

我正在使用结构化文本 (ST) 对此进行编程,但我不知道如何让这部分运行。

0 投票
2 回答
165 浏览

plc - 错误 4024 结构化文本编程

我不确定为什么我在此代码上收到错误 4024,需要a := before "THEN". 有人能帮我吗?

0 投票
1 回答
2708 浏览

structured-text - 结构化文本 - 带偏移量的取消引用表指针

关于结构化文本编程语言:

如果我有一个指向表的指针:

我想取消引用某个索引处的表,这样做的语法是什么?我认为等效的 C 代码将是:

0 投票
2 回答
991 浏览

plc - 如何在 TwinCAT3 PLC 上为 EL6002 或 EL6001 设置波特率?

我找不到如何为 Beckhoff EL6002 设置波特率。我得到一个提示,我应该为此使用 CoeWrite 块,但由于我对 TwinCAT 有点陌生,我找不到正确的功能块。有人可以发送一个代码示例(关于结构化文本)如何做到这一点?

0 投票
4 回答
2562 浏览

automation - 迭代 Twincat PLC 中的结构(结构化文本)

假设我有以下结构,其中填充了有关轴的信息:

该结构总共包含82 个字节。我将始终运行8个这样的结构(因为我有 8 个轴)。这相当于656 个字节加上所有结构。

现在,我有一个名为 Buffer 的变量:

我希望能够按顺序用 8 个结构中的每一个填充这个缓冲区。例如:

有没有办法在 PLC 上的 ST 中迭代结构的成员,然后将这些成员放入缓冲区并确保它们位于正确的位置?你知道有什么技巧可以做到这一点吗?

我问这个是因为我可以通过以下方法做到这一点,

但是我必须输入需要为其分配缓冲区的每一行,然后在我用第一个轴填充缓冲区后必须做一些技巧以避免它覆盖前 82 个字节。如果我将来更改结构的成员,必须有某种方法可以自动执行它。?

0 投票
2 回答
1254 浏览

automation - 使用 Beckhoff 同时为多个 LED 提供脉冲

对于不同的方法,这应该是一个很好的问题。我很新,所以请原谅我的简单问题。

假设我有 6 个 LED。

我的目标是能够切换 3 个 LED(我想要的)。因此,如果您按下特定按钮并将其切换为 ON,它将通过相应的 LED 执行此操作:

这很容易。现在说我有 3 个当前处于打开状态。

我希望能够按一个独特的“脉冲”按钮并同时脉冲所有 3 个当前点亮的 LED 3 个脉冲周期。每 1 秒长。前任。开 --> 关 --> 开 --> 关 --> 开 --> 关

结构化文本中能够知道哪些当前处于 ON状态的最佳方法是什么,如果是这样,请使用 Timers 将当前 ON LEDS 脉冲 3 次

谢谢!

0 投票
1 回答
388 浏览

plc - 三菱 PLC - 参数设置值超出范围 - GX Works3

我们有一个在 GXWorks3 中创建的 PLC 应用程序。

我们正在使用带有两个模拟组件的 IQ-F FX5U-32MR/DS:

PLC 设置

我们能够在模拟器上运行我们非常简单的程序并且没有任何问题,但是在将更改写入 PLC 时,我们收到以下错误:

错误信息

我们找不到这个参数的位置以及设置它的位置。根据手册,我们认为这意味着设定值超出范围,但我们不确定范围是在哪里定义的。

这个参数可能有什么问题,我们如何改变它?

0 投票
1 回答
2257 浏览

function - 如何使用结构化文本在 codesys 的函数中添加计时器?

我在 Codesys V3.5 SP9 Patch 5 中遇到结构化文本问题。我想做的是能够在我创建的函数中使用计时器,该函数在 POU 中调用。我通过将计时器直接放入 POU 并在不使用函数的情况下完成了相同的操作,并且它正在工作。

我的函数声明:

我的功能代码:

我在 POU main 中的代码:

此代码用于根据变量“DDUC_ComSta_Dcux_x”为“AssignDOORStatus”分配 0 或 1,然后,当“DDUC_DCUxEmHdler_x”为真时,它使用计时器将“AssignDOORStatus”值从“0 或 1”翻转为 10。

我必须多次调用 POU 这个函数。

提前致谢!

0 投票
1 回答
862 浏览

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!

0 投票
1 回答
595 浏览

switch-statement - 如何避免使用结构化文本在 CCW 中的案例标签中使用文字?

我正在使用 Connected Components Workbench (CCW),文档中给出的 case 语句的语法是:

我想避免使用显式数字(文字):

当我为案例标签使用变量时,出现编译错误:

错误 1 ​​STATE_A:意外语句

有没有办法避免不同情况下的明确数字?