问题标签 [scada]

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 投票
0 回答
319 浏览

stream - 将 SCADA 系统中的数据捕获到 HDFS(Hadoop DataLake)中进行分析

我正在寻找一种可以实时从 SCADA 应用程序捕获 PLC 数据并将其存储在 hdfs(数据湖的)中以进行分析的方法。

如果可以做到,有哪些可能的方法?

任何帮助或指导都会非常有帮助。

0 投票
0 回答
141 浏览

java - 从 Altivar 变频器或 MODICON PLC 读取 Modbus 网络上的数据

告诉我是否可以直接从使用Modbus协议的设备中读取寄存器的值。我想用java语言实现读取寄存器并将它们输出到jsp页面。该程序是文凭项目和获得Java知识所必需的。有没有人尝试这样做?使用芒果无限自动化找到了库 modbus4j,但不知何故,一切都非常困难。预先感谢您的回答。

我必须添加一些信息。我将施耐德电动ATV 71变频器通过Modbus TCP连接到计算机(由于软件看到此设备而建立连接)。

下面是使用的代码示例。主机不同,因为设备在大学里,我不记得指示的地址。

} }

方法“master.isInitialized()”和“master.isConnected()”返回值“true”。设备中设置的地址为“1”。它还确认连接,因为在安装另一个 id 时会引发异常。

无论我设置什么班次,上面的代码总是返回“null”。

我还尝试了 EasyModbus 库并一直得到值“0”。

所以我相信有了这些信息,你可以帮助我。预先感谢您的回答。

0 投票
1 回答
934 浏览

vba - Msxml2.XMLHTTP 会进行不需要的 URL 编码翻译吗?

我正在使用 CitectSCADA 的 CitectVBA 环境通过对象向 Twilio 的 Twimlets 服务器发出 POST 请求Msxml2.XMLHTTP。在发现这与 Office 的 VBA v6 之间的一些差异之后,我确实设法得到了发出 POST 请求的东西。

我现在遇到的问题是,我为Url请求参数提供的输入对 XML 字符具有有效的 URL 编码,但我得到的响应表明这些代码作为其相应的 HTML 和号字符代码通过。

我上面代码的输出:

关于翻译发生在哪里的任何想法?我非常接近能够让 Citect 呼叫操作员的电话并读取当前活动警报的代码!

更新:我刚刚通过Hurl.it运行了我的 POST 请求,并确认 Twilio 正确接收了它 - 呼叫通过我的手机并按请求读取了 Twimlet 编码的消息。所以问题出在Msxml2.XMLHTTP. 关于我如何解决这个问题的任何想法?

更新 2: 编码“<” 和“>”同时通过 HTTP Post 发送 XML解决了最初的 POST 错误:我已经更新了我的请求标头。

但是,现在我收到一条回复说没有指定“To”号码:

我的电话号码格式为%2B15555556430. 这里还有另一个编码问题吗?我什至不知道如何调查这次 Msxml2.XMLHTTP 发送的内容。

更新 3:问题出在 MSXML2.XMLHTTP 上。当我将我的帖子数据发送到httpbin.org/post以让它回显我发送的内容时,它会返回以下对象,具体取决于Content-Type我选择的标头:

text/xml; charset=""utf-8""

application/x-www-form-urlencoded

application/json

我实际上尝试交换并得到完全相同的结果WinHttp.WinHttpRequest.5.1Msxml2.XMLHTTP有什么想法吗?

0 投票
0 回答
366 浏览

javascript - Eclipse 和 Nashorn 抛出 java.lang.RuntimeException: java.lang.ClassNotFoundException

我正在使用 Eclipse SCADA 框架,它使用 Nashorn 将 JavaScript 集成到 Java 中。

Nashorn 的一个特性是您可以直接从 JavaScript 片段调用 Java 代码。

我已经阅读了一些教程,为了调用你必须使用的 java 方法:

但我收到以下错误

难道我做错了什么?我正在"cilindrovertical.js"文件中编写 JavaScript 代码,并且正在引用文件中的"test2""src"。我应该如何编写 Java.type 代码?

Eclipse 项目资源管理器

在此处输入图像描述

提前感谢您的回答。

0 投票
0 回答
281 浏览

python - 如何在 OPCUA 服务器中写入值

我正在尝试在 freeopcua 库上实现 OPCUA 服务器。SCADA 成功地从服务器读取数据。数据也被写入服务器。但我无法截取服务器本身的记录以向设备发送数据。我不明白这是在库中实现的什么方法。回调不处理记录。

0 投票
1 回答
50 浏览

sql - 聚合函数导致 SQL 错误

尝试使用以下语句根据同一张表中的几个值建立生产百分比:

我收到以下错误:

无法对包含聚合或子查询的表达式执行聚合函数。

我还应该指定我正在通过一个 SCADA 系统执行此操作,该系统将放置我绑定的参数,因此是“Lpram”和“dvalue”。这些在其他语句中工作正常,所以看来我的问题是实际的 select 语句本身。谢谢!

样本数据:

0 投票
0 回答
301 浏览

vba - VBA 执行流程意外中断

问题的背景

我正在使用Factory Talk View Studio 7.00.00 (CPR 9 SR 6)VBA 6.5为 HMI 开发一项新功能。
我有两个显示器:ma1_headerma2_header,而且,正如你们中的许多人所知,在 Factory Talk View Studio(为了简洁起见,我将把它称为 FTV)每个显示器都有一个专用的DisplayCode。显示代码可以看作是 Excel 文件后面的 VBA 代码,只要它的 excel 文件保持打开状态。从这个角度来看,在 FTV 中绑定到显示的 VBA 代码与 excel 中的 VBA 项目具有相同的行为,因此当图形显示被用户或代码关闭时,它会被关闭。

在此处输入图像描述

为了理解这个问题,另一个重要的一点是,当 FTV 中名为 A 的通用显示器在替换模式下打开时,至少有一个像素与另一个显示器 B 重叠,显示器 B 会以其 VBA 代码关闭。请记住,ma1_header 和 ma2_header 始终以替换模式打开。

问题描述

也就是说,现在我将描述我发现的问题。
绑定到 ma1_header 和 ma2_header 的 VBA 代码基本相同(在以下模式中指出了差异),它在显示开始时执行一些初始化操作,然后运行一个名为ScheduleCheck的过程。此过程更新一些 UI 组件并评估一些条件以确定是否该显示 ma2_header(如果代码在 ma2_header 后面执行,则为 ma1_header),然后它会自行调用。

在此处输入图像描述

打开显示的命令不是直接从 VBA 执行的,而是在 VBA 外部异步执行的。事实上,VBA 对于某些操作,如:“显示显示”、“设置标签值”等,可以使用一个库来告诉 FTV 服务(也可以与命令行工具一起使用)来执行这些操作的列表(一次传输 1 个或更多命令)。
当用户启动 FTV 客户端时,首先显示 ma1_header 和其他一些组成用户界面的显示。
在ma1_header中,当ma2_header的开启条件满足并开启时,问题就出来了。现在让我们逐步描述 VBA 状态,以便尽可能清楚地解决问题:

  1. 在 ma1_header 中,满足打开条件并执行显示 ma2_header 的异步命令。请注意,目前 ma1_header vba 仍处于打开状态。
  2. 当 ma2_header 开始打开代码时,它的执行没有任何问题,直到等待过程。等待过程编写如下:

    /li>
  3. 等待过程的执行没有任何问题,直到第 18 行的DoEvents命令。当 DoEvents 执行时,ma1_header 有时间完全关闭自己(甚至是它的 vba 代码),然后 ma2_header 中的 vba 流似乎在这里停止而没有任何错误。因此,ScheduleCheck 无法自行调用。

丑陋的解决方案1

目前我发现了一个我称之为让代码工作的丑陋解决方案。

当 ma1_header 打开时,ma2_header 的打开将强制关闭 ma1_header,正如我之前解释的,只有在执行 DoEvents 时才完成。当需要显示 ma2_header 时,我尝试将这个新的命令列表传输到 FTW 工具:

使用新方法,我关闭 ma2_header,然后使用命令“Pause 1;”等待(在 FTV 工具中,而不是在 VBA 中)1 秒钟;然后当我有理由确定 ma1_heder 由于 pause 命令而关闭时,我打开 ma1_header。以这种方式,ma2_heder 定期执行过程 ScheduleCheck,而不会出现奇怪的执行中断。

我不知道为什么这可以解决我的问题,所以我想了解它为什么会起作用以及导致此问题的原因,以便找到更好的解决方案。

丑陋的解决方案2

我找到了另一个丑陋的解决方案,但和以前一样,我并不满意,因为我想知道我当前的代码存在这个问题的方式(对我来说,解决一个问题而不知道是什么原因导致了程序员的失败)。

  1. 我在FTV 的标签服务器上创建了以下新标签

在此处输入图像描述

  1. 我在 FTV 上创建了以下新活动:

在此处输入图像描述

  1. 我在 ma1_header 和 ma2_header 中添加了一个包含新标签 Tick 的字符串显示

    1. 现在,在 VBA 中,我可以使用此字符串显示的Change事件,以便在每次此字符串显示更改(每秒)时执行 ScheduleCheck 中包含的相同代码(显然无需等待 DoEvents 循环)。

对问题的任何澄清或更好的解决方案将不胜感激。

0 投票
0 回答
238 浏览

excel - 使用单元格语法时被调用者拒绝调用

我一直在寻找可以帮助我解决此错误“呼叫被被调用者拒绝”的线程,但到目前为止,我没有找到任何可以帮助我的线程。我是 VBScript 的新手,我一直在学习创建一个脚本,该脚本可以通过 ClearSCADA 中的按钮自动将数据从数据库传输到 Excel。我的项目是为 ClearSCADA HMI 中的一个按钮创建一个脚本代码,当我按下它时,它可以自动将任何数据(如警报列表或事件列表)从 scada 服务器导出到 Excel。

我不断收到此错误“呼叫被被调用者拒绝”,并且始终在我的代码的这一部分(见下文)中导致此错误。

另外这里是错误的图片:

错误

更新:它奏效了!我决定将延迟放在xlApp.ActiveWorkbook.SaveAs "C:\HData.xlsx"和之间xlSheet.Cells(1, 1).Value = "Severity"。谢谢您的帮助!!!

0 投票
1 回答
70 浏览

svg - 使用 max 函数在 svg 中使用计算值

我有一个 svg,想使用两个测量值中的最大值。所以像:{{max(left, right)}}

这不起作用,并在浏览器控制台中给出错误。我怎样才能改变表达方式?

0 投票
1 回答
82 浏览

controls - 设置 EPICS 控制器/IOC

我在 Beagle Board Black 上运行一项服务来控制一些移位机制硬件。目前,该系统的所有命令都通过标准 IP 套接字传递给服务。

在下一步中,我想从 Qt GUI 控制我的移位机制,通过EPICS -Channel Access 与 BBB 通信。

我在 EPICS 网站上找不到任何关于如何启动这样一个项目的好文档。我非常感谢有人一步一步地告诉我,我需要安装什么才能让它运行。