java - 如何连接到plc并获取数据

标签 java plc opc

我需要将 OPC 服务器嵌入到 eclipse RCP 应用程序中,但我不知道从哪里开始。我正在使用 opcua4j 作为示例来创建服务器,但无法弄清楚如何连接到远程 PLC 设备。

我的问题是如何在给定客户端 IP 地址的情况下使用 OPC 从服务器与远程客户端通信?

Ps:关于opc ua java编程最好的教程/书是什么?

最佳答案

这可能会让您对 OPC 服务器的工作感到失望,我不太确定您知道多少,如果我转述的话,很抱歉。 OPC 服务器轮询而不是请求/回复通信方式。它轮询标签而不是设备。

检查此链接以获取 Java - OPC Deve - http://www.opcconnect.com/java.php#javacom

OPC 101

您将需要开发:

  • channel
  • 设备
  • 变量

每个 channel 指定两件事。指定的两个方面是: 1. 物理介质(网络适配器,例如标准以太网设备或串行端口) 2. 使用的协议(protocol)(MODBUS、Allen Bradley、GE-Fanuc 等)。这意味着每个 channel 都不能在不同的介质或协议(protocol)上托管设备。

设备 该字段指定了一些内容。这些是:

  1. 地址。这可以是一个 IP 地址(对于以太网通过的协议(protocol)——例如 IDEC 串行封装协议(protocol)),或者是一个用于串行通信的标识号,例如 Profibus 或 Modbus ASCII/RTU。
  2. 驱动程序特定信息 - 这可能包括指定 CPU 型号或正在使用的 I/O 卡。这因司机而异。

变量是定义“标签”的地方。

  1. 标签名称
  2. PLC 地址。例如 M1 或 RW1 或 49075(虽然特定于驱动程序)
  3. 数据类型—— boolean 型、字型等。

每个标签或过程变量都有数据和元数据。这可以包括变量、上次更新、标签的健康状况等、工程单位。

最后

我实际上并没有编写自己的 OPC 服务器,但以上内容可能会有所帮助。我不确定上面的 Java SDK 提供了多少,但请考虑您的应用程序的安全性。

是否可以运行 OPC 服务器,轮询数据,然后您的应用程序与 OPC 服务器接口(interface)?这有助于避免(至少)与 OPC 混淆。您可以获得基于 Java 的 OPC 服务器,而不是在任何平台上运行,而且我相信大多数服务器都有 API,或者至少有一种方式来传递数据。

编辑

查看软件包 Pi ( http://www.osisoft.com/ )。这可能有助于解决这个问题。

关于java - 如何连接到plc并获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19796184/

相关文章:

java - 匿名可运行实现并将其发布到处理程序

c# - 将西门子 PLC (S7-1200) 的实际数据类型转换为在 Visual C# Windows 窗体中显示

java - OPC DA/DCOM示例java源代码,可以从服务器接收标签

python - 了解 python 中的免费 OPC/UA 代码

java - 在 Java 中生成 2d Json 数组

java - 在 Apache Beam 中使用 BigQuery 处理空 PCollection

java - 如何使用 GSON 序列化 map 的 map ?

javascript - 根据 PLC(可编程逻辑 Controller )的变量显示图像

plc - 开始PLC编程

OPC UA 唯一 ID