问题标签 [industrial]

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 投票
2 回答
422 浏览

python-2.7 - 将 PLC FileAddress/StartAddress 转换为 EtherNet/IP @//

我们正在评估cpppo以与各种罗克韦尔自动化 PLC 通信。我们有“N25:00”形式的地址范围(N = 整数,文件编号 25,文件偏移量 0),但 EtherNet/IP 似乎需要@<class>/<instance>/<attribute>.

你如何从一个翻译到另一个?

如果在这些 PLC 中定义了标签,有没有办法获取它们的列表或有关它们的信息?我们无法更改 PLC,通常看不到其中的梯形逻辑/配置。

cpppo 的 list_identity、list_interfaces 和 list_services 都可以工作,但不返回任何似乎可以翻译的内容:

0 投票
1 回答
498 浏览

controls - PLC梯形逻辑 - 使用两个电位器的有问题的序列

我花了很多时间和大量的纸素描,但我无法偶然发现任何东西来解决这个问题。

我们有两个装满水的水箱和它们之间的两个泵。如果 h>hmax(水箱 1)和 H,我们需要使用这些泵自动将水推到第二个水箱

我想不通一件事。第一个序列假设如果 H>Hmax 泵 1 或 2 将工作(它们不能同时工作)。当水被抽到第二个水箱并且第一个水箱中的水会下降时,在第一个水箱中补水后重复该顺序。我不知道如何在每个序列后仅使用电位计自动更换泵。我需要做的更多是包括其中一个泵的故障。我处理这个问题将近一个星期。

系统示意图

0 投票
0 回答
121 浏览

controls - PLC 梯形逻辑 - 如何在 PLC 中模拟水流测量?

我不知道如何使用 PLC 梯形图语言解决此任务。PLC 程序必须计算实际的水流量。闸门正在移动,闸门时间设置为 5 分钟。在这个门中计算脉冲(例如工资 - 工资为 1 m^3)。总时间(门可以移动的空间)设置为 1 小时。

闸门时间:例如 5 分钟 总时间:1 小时 冲动由我触发。

例如,如果我们在 5 分钟(5 分钟是 1/12 小时)的门内触发 I1 输入 3 次(一个输入的工资为 1 m^3),因此 3 * 1m^3 除以 (1/12)h = 36 m^3 / h 它给了我们实际的水流。我只能使用 TON 定时器,而且我有 2 个二进制输入。

你知道如何开始吗?

锻炼

这是我尝试基于的记录器,但现在我不知道下一步该做什么。

0 投票
1 回答
427 浏览

c# - 基于EmguCV驱动工业相机

我无法解决这个问题,它正在消磨我的时间。我无法使用 EmguCV 驱动工业相机。我已经安装了它的驱动程序,我可以通过其他应用程序从这个工业相机拍摄图片。EmguCV 不支持需要特殊驱动的工业相机吗?

0 投票
0 回答
110 浏览

controls - PLC 梯形逻辑 - PLC 中的水流测量有问题

我花了很多时间和大量的纸素描,但我无法偶然发现任何东西来解决这个问题。

我不知道如何使用 PLC 梯形图语言解决此任务。PLC 程序必须计算实际的水流量。闸门正在移动,闸门时间设置为 5 分钟。在这个门中计算脉冲(例如工资 - 工资为 1 m^3)。总时间(门可以移动的空间)设置为 1 小时。

闸门时间:例如 5 分钟 总时间:1 小时 冲动由我触发。

例如,如果我们在 5 分钟(5 分钟是 1/12 小时)的门内触发 I1 输入 3 次(一个输入的工资为 1 m^3),因此 3 * 1m^3 除以 (1/12)h = 36 m^3 / h 它给了我们实际的水流。我只能使用 TON 定时器,我有 2 个二进制输入。

你知道如何开始吗?

显示问题的图像

这是我尝试基于的记录器,但现在我不知道下一步该做什么。

0 投票
1 回答
981 浏览

python - 在 EtherNet/IP 中写入单个属性

我的问题是关于 Cpppo 和 EtherNET/IP。我已经通过 pip 安装了库 Cpppo 并尝试在某个类中设置单个值,但是我做错了,因为每次我得到“NONE”。我的测试代码是:

此外,我使用 Wireshark 获取有关服务的信息,发现该服务值为 0x4D,但在我的情况下,我需要 0x10。是否可以使用 Cpppo 库提出此类请求?Wireshark 程序的屏幕截图 PS 如果我的问题非常愚蠢,我很抱歉。最好的祝愿。
在此处输入图像描述

0 投票
0 回答
150 浏览

vb.net - 与 Modbus 现场设备接口 - VB.Net 程序在寄存器复位时进行解释

下午好,

我正在维护一个遗留程序,该程序通过带有 VB.Net 代码的 RS-232 物理连接与 Modbus/RTU 现场设备进行交互。挑战在于,在用较新型号替换原始现场设备后,在设备寄存器复位(写入线圈 33,值 1)和特定浮点寄存器(40005 和 40006)实际复位到0。

作为我正在尝试做的一个示例,我将重置命令作为单个 modbus 消息发送到设备。之后,我将立即尝试读取该值以验证寄存器是否已被我的命令重置。如果寄存器被重置(在这种情况下,<= 1.0),我将使用基线“0”作为此后获得的任何读数。如果它没有被重置(这是一种故障保护),我将使用寄存器中剩余的任何值作为新的基线(相对“0”),用于之后获取的任何读数。

问题是在我发出重置命令后,设备将等待至少 200 毫秒以上的时间才能真正重置寄存器。这个延迟超过了我的程序读取有问题的寄存器并建立基线(0 或新的“相对 0”)所花费的时间。因此,错误变成我的程序将假定一个相对基线,然后在经过足够的毫秒后最终重置为 0。

例如,请参见下面的代码:

对于解决方案,我考虑插入大约 250-500 毫秒的延迟来弥补这一点。我不喜欢这个解决方案,因为它是任意的,实际上并没有给我一种机制来在继续执行程序之前检查响应。任何想法将不胜感激。

0 投票
1 回答
726 浏览

modbus - 是否有将 Web 应用程序连接到 Modbus PLC 的解决方案

我正在开发一个具有 HMI 功能的 Web 应用程序,该应用程序需要与多个 Modbus RTU 和 Modbus TCP PLC 接口:

  • 根据 Modbus 设备的状态频繁更新 Web UI
  • 根据用户的输入向 Modbus 设备发送命令

考虑到要求,集成 Web 应用程序和一堆 Modbus 设备的最佳方式是什么?

0 投票
2 回答
1114 浏览

embedded - 重要的 IEC 61131-3 代码示例

我目前正在开发一种用于符号执行和测试 IEC 61131-3 应用程序的方法。为了评估我的方法,我需要使用标准中定义的任何语言编写的重要程序。

我可以为此使用任何可公开访问的代码库吗?

0 投票
1 回答
401 浏览

ethernet - Beckhoff BK9000 是源设备还是漏设备?选择哪个开关,PNP 还是 NPN?

我正在使用 Beckhoff 的 BK9000(以太网 TCP/IP 总线耦合器)和其他 KL 模块来连接交换机。我想选择适合这种总线耦合器的开关,但我注意到开关有两种选择,NPN 或 PNP。

根据该网站

许多现代 PLC 输入卡可以配置和接线为“漏型”或“源型”,尽管通常需要将特定输入卡上的所有输入配置为相同。

我应该选择哪个开关?BK9000 是源设备还是漏设备?还是根本不重要?

如果我问了一个愚蠢的问题,我很抱歉。我试图找到更多信息和教程,但找不到实用的解释(其中大多数只是关于 PNP/NPN 或采购/下沉的一般解释)。