问题标签 [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.
plc - 是否可以在结构化文本中间接索引数组(IEC 61131-3 标准)
我有一个结构数组: myStructure[0..100]
我想按名称索引该结构。
它通过给每个索引一个名称来工作:
所以在结构中索引一个成员:(myStructure[P103_AI].value
即索引myStructure[11].value)
但是,是否可以间接索引?
即如果不关心TempString : STRING[30];
在运行时更改 TempString 以索引数组。
这是一些伪代码来描述我想做的事情:
plc - 在结构化文本中清除整个结构的最佳方法是什么
这就是我现在的样子
是否有另一种方法可以使结构无效,而无需清除和使用struct_NULL
precision - 如何将 LREAL 值记录到文件中?
我是 PLC 编程的新手,我正在尝试跟踪一些现有结构化文本代码中的 LREAL 变量。我正在使用带有模拟 CJ2M 的 Omron 的 CX-Programmer。
我的第一反应是使用 WRITE_TEXT() 将值的所有变化记录到 SD 卡中。由于我需要一个字符串值来编写,我曾希望 LREAL_TO_STRING() 可以解决问题,但似乎该函数不存在。
我怎样才能在不丢失精度的情况下最好地记录该值?
编辑:我设法解决了这个问题。被告知 CX-Programmer 的 SD 卡仿真可能不可靠,我只是将值写入数组并使用内置工具检查这些内存位置的内容。如果需要,我还可以将这些值导出到文件中。这种方法将记录的数据量限制在模拟 PLC 内存中的可用空间内。
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 的步骤是什么?有人可以告诉我我缺少什么或手头有一个小例子吗?
plc - 为什么我在完成所有数学运算后会收到累加器扩展警告?
我正在编写一个程序来检查混合混凝土所需材料的温度。然后它将执行一个公式来确定达到所需混凝土温度所需的水温。我有公式的所有正确信息,所以这不是问题,但是当我编译程序时,我收到多个累加器扩展警告,每个都在数学语句之后。我尝试拆分数学,认为运行数字变得太大,但事实并非如此,因为它仍然有这个警告。当我运行程序时,如果我期望得到 80 度范围内的结果,我会得到疯狂的大正面或负面结果。第一个等式适用于寒冷天气条件,第二个等式适用于炎热条件。在我添加热方程之前,冷方程运行良好。
所以我的问题是:什么是累加器扩展,为什么我在数学之后会收到一个警告?
这是我的代码:
plc - 在 Codesys 中,如何定义预处理器参数?
我需要创建一定数量的结构 类型对,它们将进一步用作const参数,并且具有基本相同的一组值,但按比例缩放,如下所示(给定一个 n常数):
以及相关对:
通过分别创建这两个结构,它工作得很好,我使用它们来创建一个CONST数组以在SWITCH...CASE语句中使用 - 正如我们所熟知的那样,它只在其索引处接受常量,而不是变量。
然而,在一个结构中所做的每一项更改都必须在另一个结构中重构,这在“最佳实践”设计方面确实不是一种安全的方法。
我现在面临的问题是,如果我在全局变量列表 (GVL) 中创建CONST值,它在编译时间线中没有优先级,我的意思是,首先评估结构。
另一种选择是使用Pragmas,但它仅在特定范围内有效,这意味着它不会充当“全局参数”。
我只是想在编译之前定义上面的每个参数,这样我就可以定义一次,将一个除以 2。
plc - 在结构化文本中:是否可以在循环代码中用单行写入多维数组?
以下工作正常:
但是,如果我想在一行代码中修改所有值怎么办?
即以下是我想做的伪代码。(注意,它实际上不起作用)
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 步,然后不前进
我想知道我在哪里犯了错误。我在下面附上代码:
非常感谢!非常感谢您的帮助
initialization - 使用明确定义了 FB_init 方法的 __NEW 初始化功能块
假设我有一个定义了 FB_init 方法的功能块 (A),例如:
我还有另一个功能块 (B),我想从中动态初始化这个 (A) FB:
我无法动态创建 A 功能块的实例。这甚至可能,还是我做错了什么?
PS。我正在使用施耐德 SoMachine V4.3
python - 从文本为 KG 生成三元组
我正在尝试处理记录的文本并从文本中提取三元组数据以构建图表。我使用了 stanford nlp 模块来生成三元组,它给出了很好的结果。我想生成特定领域的三元组并处理文本数据。我正在寻找从文本生成三元组的任何论文、模块或任何其他实现。
任何帮助都将不胜感激。