问题标签 [plc]

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

open-source - 不错的开源OPC软件

我们目前正在为我们的 OPC 使用免费试用版的 KEP 服务器与我们的 PLC 进行通信。我们想知道是否有人知道任何好的开源 OPC 软件。

0 投票
2 回答
19557 浏览

opc - 什么是历史学家?

就 OPC 和 PLC 而言,历史学家的功能是什么?

0 投票
1 回答
2967 浏览

networking - FIN 数据包后的 TCP Windowsize 0

如果机器在收到 FIN 后将 TCP 窗口大小设置为零,是否可以?

我从连接结束的wireshark得到以下数据包转储,我只是想知道这是否是结束连接的有效方法或者是否有问题。

顺便说一句:.1 是普通的 Windows PC,而 .6 是西门子 PLC。(S7-400)


经过一番调查,它看起来像是一种奇怪但有效的结束 TCP 对话的方式。

0 投票
1 回答
297 浏览

matlab - MATLAB PLC识别

我需要有关此作业的帮助:

通信信道(例如电力线)具有非平凡的特性,这是实现调制解调器高吞吐量的主要问题。这就是为什么,我们想知道通道特征,例如。作为信道脉冲响应和调整调制解调器的特性。

从文件( http://home.agh.edu.pl/~kwant/wordpress/wp-content/uploads/ir1.mat )下载并检查示例性信道脉冲响应,并且:

0 投票
1 回答
3423 浏览

c - 从 PLC(OPC 客户端服务器 Kepware)传输到 MS Access,C

我对使用 PLC 完全陌生,但我有一个项目需要从 OPC 客户端服务器获取数据,然后将其发送到 Access 数据库表。减去 OPCWriteGroupItems 的大部分代码来自其他人。我只是迷失了将从 OPCReadGroupItems 获取的数据传输到我的函数 OPCWriteGroupItems 中的正确变量。我只想获取读入变量的值。谢谢。仅供参考,我知道我的查询语句需要调整,以便正确读取变量,但这是我正在处理的另一个问题。这是更紧迫的问题。

以下是我谈到的两个功能:

0 投票
3 回答
7010 浏览

c# - .NET 与 Siemens PLC S7 200 的接口

我正在尝试将 .NET(C# 或 VB 无关紧要)与 Siemens PLC S7 200 连接。但是我无法建立连接。我正在使用 Win7 64 位机器,但似乎也无法让它在 32 位上运行。我有两个文件:

Interop.OPCSiemensDAAutomation.dll Siemens_s7-200.dll

从我试图迁移到更新系统的另一个项目。但是我一直收到一个 com 异常。

我已经尝试过 libnodave 并且似乎也无法使其正常工作。有人可以为我提供一些指示(请不要在那个方面有 XKCD 幽默)去哪里看?

我无法在这台机器上安装 Siemens PC-Access,稍后将在 WinXP 32 位上尝试。我读到一些关于我需要 OPC 服务器或机器上的东西?

请耐心等待,第一次与 PLC 接口:/

0 投票
2 回答
244 浏览

windows - 网络通讯故障排除

我有一个由第三方用 C++ 编写的工业 HMI,它通过 TCP/IP 与 36 个 GE PLC 通信。HMI 在同一个房间的两台不同机器上运行,连接到同一个交换机。一台 HMI 在 32 位 Windows Server 2003 上运行。另一个在 Windows 7 64 位上运行。Windows 7 HMI 无法连接到一些 PLC。所有 PLC 在 Windows Server 2003 HMI 上都能正常通信。我已经运行 Wireshark 看看发生了什么。

在 PLC 的以太网卡复位后,Win7 HMI 和其中一个故障基板将发送一个 SYN/ACK 序列。一旦 HMI 发送数据 (PSH),PLC 就会以 RST 数据包进行响应。从那时起,任何来自 Win7 HMI 的 SYN 数据包都会收到 RST 响应。我昨天刚刚设置了这个新的 HMI,从那时起就一直这样。此 HMI 在其他 Win7 计算机上运行正常。据我所知,所有的 PLC 都处于相同的硬件/固件版本级别。我确实知道 36 个 PLC 上的每个 PLC 上的软件都是相同的。

我完全不知道该怎么做才能进一步解决这个问题。与 PLC 的连接数量没有增加,因为我昨天安装的这台新机器正在替换本周早些时候死机的机器。此外,大多数其他 PLC 都可以正常通信,因此 PLC 硬件上的负载似乎不是问题。C++ 代码以完全相同的方式与所有基进行通信。代码只保留一个包含 36 个 PLC 对象的数组,并在更新信息时循环它们。有没有人对我可以做些什么来进一步解决这个问题有任何想法?

0 投票
5 回答
7607 浏览

java - 从 Java 访问 S7 Profinet PLC (1212C) 的资源

我在这里有一个比较特别的问题。至少我认为这很特别,因为 Google 似乎无法为我提供我正在寻找的信息。

我最近购买了一个 S7 入门套件,其中包含一个 S7 1212C PLC。这一切都已设置并正在运行。

我想做的是编写一个与该控制器通信的 Java 程序(没有本机库)。我知道有 S7 Java Bean,但这些似乎只适用于 200/300/400 系列。是否有 Java 协议栈的任何(开源)实现,允许从 Java 访问这样的 PLC?如果不是,我真的很高兴能得到一些规范的指针,这些规范可以让我自己实现一个基本的堆栈(看起来网络上充满了高级信息,但周围似乎很少有低级的东西:-()

非常感谢您的帮助,克里斯

0 投票
4 回答
5776 浏览

c - 如何将代码添加到保护读取例程不崩溃的 libnodave 测试程序(简化的 testISO_TCP)?

我首先要说我是一名几乎没有 c++ 经验的大学生。你听过多少次是对的?我正在使用 libnodave 库中的测试程序 testISO_TCP(简化版)。该程序在连接到 seimens 300 PLC 时对标志值和数据块进行简单读取。该程序本身不会产生任何错误。我想要做的是希望在这个程序中添加一些代码,以保护读取不会崩溃。让我解释得更好一点。例如,我在代码中实现了很多读取。到目前为止,只有两个读取。最终,我将通过更多读取来运行此代码。现在,假设我正在运行测试程序,但由于某种原因我失去了与 PLC 的连接。我想让程序做两件事之一:1)一旦连接丢失,进行一定次数的重试连接,当尝试次数用完时,退出。或 2) 不知何故继续从 PLC 读取,直到它们全部完成。

我希望这是足够的信息来获得一些帮助。我将发布我长期以来一直在寻找的代码,但不知道如何有效地做到这一点。提前感谢大家。

0 投票
1 回答
174 浏览

macos - 如何通过 Mac OSX 中的终端修改 PLC 中的寄存器值?

简单来说,我有一个可编程逻辑控制器通过 USB 转串口适配器连接到我的 Mac。还有另一个适配器将 RS-232 从计算机转换为 PLC 所需的 RS-485。我想通过我的 Mac 终端应用程序简单地修改我的 PLC 中的寄存器值。我该怎么做呢?

谢谢,

山姆