问题标签 [ignition]

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 回答
68 浏览

python - Python Scripting 问题,可能很简单,但我对这段代码没有什么经验

以上是我写的代码。它有效,但我想确切地了解它为什么有效。最初,我写了它,它奏效了,我继续前进。然后我开始思考为什么它会不断更新?有关更多解释,数据来自只能存储带符号的 16 位的旧 PLC。因此,最大数量为 32,676。由于计数器将很快超过该值,因此每次达到 1000 时,我们都会在“千”计数器中加 1,并重置“百”。不过,这会将我想要查看的实际数字放在两个不同的词中。我在 Ignition 中编写了这段代码,将这两个数字合并到一个位置。

话虽这么说,“千”标签当然从 0 开始,所以底部的 if 语句一直存在,直到第一个 1000 被计算在内,它只查看数百个值。

我理解它的方式是,一旦我的“千”标签加一,那一刻,我的 while 语句条件被等号运算符(x = 1000 和我的标签 * 1000 = 1000)满足,我加 1000 + 我的“Hundreds”计数器并将其存储在新数据标签“MyA2Good”中,然后将 x 加 1000 为 2000。话虽如此,直到我现在在计数器上达到 2000 之前,while 语句不应该再次评估,对吧? 但是,当监视存储在我的标签中的值时,“MyA2Good”随着数百个计数器一次递增 1,标签会不断更新,就好像 while 语句正在不断评估一样,即使评估的条件不再为真。

代码正在做我想做的事,我只是想弄清楚为什么。

0 投票
2 回答
241 浏览

sql - Ignition 中的 SQL where 子句(带条件)帮助

我目前有一个在 Ignition 中运行的 SQL 查询。如果我选择特定区域,它可以正常工作。问题是我想给它添加一个“ALL”。如果它具有“全部”选择​​,我希望能够忽略区域作为条件。

我不确定这是否可以通过 SQL 查询来处理。我正在对下拉列表运行查询以使用区域填充它。

这是我的代码:

0 投票
1 回答
53 浏览

python - 执行 Alter 查询时出现此错误

我收到此错误:

  • 点火 v8.0.12 (b2020042115)
  • Java:Azul Systems, Inc. 11.0.6
0 投票
1 回答
49 浏览

node.js - 有没有办法用 CodeStubAssembly 编写一个 nodejs 内置函数,它在其中调用一个动态链接的 c++ 库?

有没有办法用 CodeStubAssembly 编写一个 nodejs 内置函数,它在其中调用一个动态链接的 c++ 库?所以我可以从javascript调用它。我不想使用插件,因为它引入了我不想要的额外编译。我想使用 CSA 的原因是它是在 Runtime 期间调用的,而我只需要 nodejs Runtime 期间的信息并希望消除开销。

0 投票
1 回答
65 浏览

postgresql - 为什么这会导致“org.postgresql.util.PSQLException:列索引超出范围”异常?

我正在尝试从 Ignition(8.0.16)作为命名查询在 PostgreSQL 11 服务器中运行一个函数,并得到一个列索引错误。关于 Postgres 讨论此错误的所有地方都表明,这是所提供的参数和预期数量不匹配的问题。

它始终显示为超出范围的数字比提供的数字多一。即使更改为使用不同数量的参数。

我到处数 13:点火参数、测试参数、Ignition 中的函数调用、函数定义、表格。这是来自 Ignition 的函数调用:

在同一个命名查询窗口中,如果我注释掉函数调用并尝试使用相同的参数直接写入,它会毫无问题地写入:

该功能也可以在 PGAdmin 中正常运行。

以下是用于创建表和函数的 SQL、Ignition 的堆栈跟踪以及显示命名查询创作窗口参数匹配的图像的要点:

创建功能要点

创建表要点

错误要点的堆栈跟踪

点火参数

0 投票
1 回答
180 浏览

node.js - v8 引擎:生成的每个字节码点火是否在 CodeStubAssembly 中都有相应的字节码处理程序?

我问这个问题的原因是,如果我编写一个没有热代码的 Javascript(因此它不需要通过 TurboFan 进行优化,也就是短运行脚本),所以当我运行这个 Javascript 时,我假设它将经历以下过程:

js 代码(点火)-> 字节码 -> codeStubHandler(TurboFan IR) -> 汇编代码

并且为 builtins-definition.h 中声明的所有内置函数生成的汇编代码位于名为 embedded.S 的文件中。

所以每个字节码都有一个处理程序来直接为它们生成汇编代码?我的理解正确吗?至少这是我在调试脚本时看到的。

请帮我验证。

0 投票
0 回答
122 浏览

javascript - 如何循环遍历 SVG 库文件以在网页上显示所有 SVG

Inductive Automation 最新版本的 Ignition SCADA 允许程序员创建 SVG“图标库”以用于他们的 SCADA 系统。图标库被定义为一个包含嵌套 SVG 的 SVG 文件(例如 icons.svg)。以下示例显示了嵌套的“blue-circle”和“red-circle”。一个自定义图标库可以有数百个这样的嵌套 SVG:

在这种格式下,SCADA 工程师很难在不将它们一一拉出的情况下查看图标库中所有可用图标的外观。有没有一种简单的方法可以将此图标库中的所有图标及其 ID 加载到网页上以便于查看?我想这可以通过一些循环显示图标库中的 SVG 的 HTML 和 Javascript 来完成。我对 HTML 有一些经验,但对 Javascript 没有经验,因此其他涉及使用 Javascript 循环遍历 SVG 元素的 Stack Overflow 示例有点难以理解。

0 投票
1 回答
111 浏览

sql - 具有多个非空值的 MSSQL COALESCE 函数

我正在尝试使用可变时间间隔和目的地选择从两个表中获取数据(T_Stamp、Destination、Weight、Line)。这将进入点火 SCADA。下面的我的 SQL 代码适用于大多数情况,除非两个表中的条目具有相同的时间戳。在这些情况下,它只显示表 A 中的数据。这给了我不正确目的地的结果。我知道 COALESCE 函数返回第一个非空值,但我不知道如何编写这个逻辑。

预期成绩:

t_stamp 目的地 重量 线
10:05:01 1 30.01 一种
10:05:05 1 25.11
10:05:07 1 26.32

实际结果:

t_stamp 目的地 重量 线
10:05:01 1 30.01 一种
10:05:05 1 25.11
10:05:07 2 25.46 一种

样本数据表 A:| t_stamp | 目的地 | A_重量 | | -------- | ------------ | -------- | | 10:05:01 | 1 | 30.01 | | 10:05:07 | 2 | 32.32 |

表 B:| t_stamp | 目的地 | B_重量 | | -------- | ------------ | -------- | | 10:05:03 | 1 | 24.01 | | 10:05:07 | 1 | 26.46 |

0 投票
0 回答
92 浏览

python - 循环遍历文件夹节点的 OPC 服务器以在树组件中构建文件夹路径

我正在尝试基于 OPC Server 的浏览构建文件夹路径,我可以部分成功,因为我可以使用递归获取根文件夹节点,然后是其下的子节点等等,除非我无法构建我想要的格式,例如 [root/children1/children1,root/children1/children2,......] 这是这些字符串类型路径的列表?看看下面的代码:

您可以从图像中看到,我可以根据树视图中的结构提取文件夹,但我无法正确格式化?我还故意注释掉了变量 pathList 因为我无法正确解析并添加到列表中,所以我只是做了一个打印测试来确定我是否到达了子节点!

点火输出

在此处输入图像描述

0 投票
0 回答
15 浏览

python - Pythong递归函数不返回