0

我正在尝试连接到 Siemens S7 1200 PLC 的 OPC 服务器。为此,我使用了 在本地机器上配置的Matrikon 应用程序。使用JeasyOPC 库我可以建立连接,所以它是这样的:

JOpc jopc = new JOpc("localhost","Matrikon.OPC.SiemensPLC.1","JOPC1");

JOpc.coInitialize();

但是这个库只能在 Windows 中使用,并且在 64 位编译二进制文件时会出现问题。

所以我尝试了OPC Foundation UA JAVA Legacy,我想建立相同的连接,但是在示例中我们要求更多的东西:

String publicHostname = InetAddress.getLocalHost().getHostName();
String url = "opc.tcp://localhost:102/"; // ServerExample1
// String url = "Matrikon.OPC.SiemensPLC.1"; // This not work for me
EndpointDescription[] endpoints = myClient.discoverEndpoints(url);

我想尽可能地模拟 jeasyOPC 的操作,无论如何我找不到任何适合我的例子。

我将不胜感激任何可以帮助我拥有可以与 Matrikon 服务器一起使用的基本客户端的示例

谢谢你。

4

1 回答 1

1

好的。我回答自己。经过多次搜索,我发现了我的错误:有两种类型的 OPC:DA 和 UA。

首先(DA)是我可以连接的:

JOpc jopc = new JOpc ("localhost", "Matrikon.OPC.SiemensPLC.1", "JOPC1");

这个版本的协议是使用的历史记录窗口,使用 COM 库,只能在 Windows 计算机下实现。

第二个,OPC UA,是新的实现,连接方式如下:

String url = "opc.tcp: // localhost: 102 /"; // 服务器示例 1

这个版本已经兼容 Windows、Linux 和任何能够运行 libria 的系统。

问题是,就我而言,S7 1200 只使用 OPC DA,如果它不使用兼容的网关,这使得 UA 选项对我来说不可行。

我希望这些信息能对处于我这种情况的人有所帮助。

问候。

于 2019-02-01T11:44:33.727 回答