问题标签 [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 投票
3 回答
886 浏览

plc - 是否可以在结构化文本中间接索引数组(IEC 61131-3 标准)

我有一个结构数组: myStructure[0..100]

我想按名称索引该结构。

它通过给每个索引一个名称来工作:

所以在结构中索引一个成员:(myStructure[P103_AI].value 即索引myStructure[11].value)

但是,是否可以间接索引?

即如果不关心TempString : STRING[30];

在运行时更改 TempString 以索引数组。

这是一些伪代码来描述我想做的事情:

0 投票
2 回答
1401 浏览

plc - 在结构化文本中清除整个结构的最佳方法是什么

这就是我现在的样子

是否有另一种方法可以使结构无效,而无需清除和使用struct_NULL

0 投票
1 回答
62 浏览

precision - 如何将 LREAL 值记录到文件中?

我是 PLC 编程的新手,我正在尝试跟踪一些现有结构化文本代码中的 LREAL 变量。我正在使用带有模拟 CJ2M 的 Omron 的 CX-Programmer。

我的第一反应是使用 WRITE_TEXT() 将值的所有变化记录到 SD 卡中。由于我需要一个字符串值来编写,我曾希望 LREAL_TO_STRING() 可以解决问题,但似乎该函数不存在。

我怎样才能在不丢失精度的情况下最好地记录该值?


编辑:我设法解决了这个问题。被告知 CX-Programmer 的 SD 卡仿真可能不可靠,我只是将值写入数组并使用内置工具检查这些内存位置的内容。如果需要,我还可以将这些值导出到文件中。这种方法将记录的数据量限制在模拟 PLC 内存中的可用空间内。

0 投票
1 回答
1845 浏览

plc - TwinCAT CoE:写入 SDO

我对 EtherCAT/CANopen 世界很陌生,并试图实现一个自定义从站。到目前为止,从站正在通过一致性测试,并且想要写入我的从站数据对象之一,从站连接到 CX5120,它被 XAE 发现并且还显示了从站设备。为此,我将我的 ESI 文件复制到了 TwinCAT 文件夹 (C:\TwinCAT\3.1\Config\Io\EtherCAT)。

项目树 从属数据对象 我创建了一个小型结构化文本 PLC 程序,它使用 FB_EcCoESdoWrite 将数据写入地址 0x607A。但是当我将其设置为活动并尝试连接时,Visual Studio 告诉我该设备至少需要一个 Sync Master。此外,当将 bExecute 设置为 TRUE 时,我从函数中收到错误消息。据我了解,我必须在我的 ST 程序和从站之间链接变量,但我不认为需要链接变量,因为 afaik 函数调用应该管理传输?写入 ESC 的 SDO 的步骤是什么?有人可以告诉我我缺少什么或手头有一个小例子吗?

0 投票
0 回答
84 浏览

plc - 为什么我在完成所有数学运算后会收到累加器扩展警告?

我正在编写一个程序来检查混合混凝土所需材料的温度。然后它将执行一个公式来确定达到所需混凝土温度所需的水温。我有公式的所有正确信息,所以这不是问题,但是当我编译程序时,我收到多个累加器扩展警告,每个都在数学语句之后。我尝试拆分数学,认为运行数字变得太大,但事实并非如此,因为它仍然有这个警告。当我运行程序时,如果我期望得到 80 度范围内的结果,我会得到疯狂的大正面或负面结果。第一个等式适用于寒冷天气条件,第二个等式适用于炎热条件。在我添加热方程之前,冷方程运行良好。

所以我的问题是:什么是累加器扩展,为什么我在数学之后会收到一个警告?

这是我的代码:

0 投票
2 回答
500 浏览

plc - 在 Codesys 中,如何定义预处理器参数?

我需要创建一定数量的结构 类型对,它们将进一步用作const参数,并且具有基本相同的一组值,但按比例缩放,如下所示(给定一个 n常数):

以及相关对:

通过分别创建这两个结构,它工作得很好,我使用它们来创建一个CONST数组以在SWITCH...CASE语句中使用 - 正如我们所熟知的那样,它只在其索引处接受常量,而不是变量。

然而,在一个结构中所做的每一项更改都必须在另一个结构中重构,这在“最佳实践”设计方面确实不是一种安全的方法。

我现在面临的问题是,如果我在全局变量列表 (GVL) 中创建CONST值,它在编译时间线中没有优先级,我的意思是,首先评估结构。

另一种选择是使用Pragmas,但它仅在特定范围内有效,这意味着它不会充当“全局参数”。

我只是想在编译之前定义上面的每个参数,这样我就可以定义一次,将一个除以 2。

0 投票
2 回答
914 浏览

plc - 在结构化文本中:是否可以在循环代码中用单行写入多维数组?

以下工作正常:

但是,如果我想在一行代码中修改所有值怎么办?

即以下是我想做的伪代码。(注意,它实际上不起作用)

0 投票
3 回答
273 浏览

c++ - TwinCAT:获取文件 (FB_FileGets)

我正在开发一个代码来获取 twincat 中的文本文件。我正在使用块功能:

  • FB_FileOpen

  • FB_FileGets

  • FB_FileClose

我以网站https://infosys.beckhoff.com/english.php?content=../content/1033/tcplclibsystem/html/tcplclibsys_fileio_example.htm&id=5958930695166849062上的示例为基础

当程序运行时,我的 FB_GetLabelFile 运行到第 3 步,然后不前进

我想知道我在哪里犯了错误。我在下面附上代码:

非常感谢!非常感谢您的帮助

0 投票
1 回答
312 浏览

initialization - 使用明确定义了 FB_init 方法的 __NEW 初始化功能块

假设我有一个定义了 FB_init 方法的功能块 (A),例如:

我还有另一个功能块 (B),我想从中动态初始化这个 (A) FB:

我无法动态创建 A 功能块的实例。这甚至可能,还是我做错了什么?

PS。我正在使用施耐德 SoMachine V4.3

0 投票
1 回答
183 浏览

python - 从文本为 KG 生成三元组

我正在尝试处理记录的文本并从文本中提取三元组数据以构建图表。我使用了 stanford nlp 模块来生成三元组,它给出了很好的结果。我想生成特定领域的三元组并处理文本数据。我正在寻找从文本生成三元组的任何论文、模块或任何其他实现。

任何帮助都将不胜感激。