使用 OPC UA Java 旧版连接到 Matrikon 服务器

Connect to Matrikon server with OPC UA Java Legacy

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

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 服务器配合使用的基本客户端,我将不胜感激

谢谢。

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

第一个(DA)是我可以连接的:

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

此版本的协议是历史记录 windows 使用的版本,使用 COM 库并且只能在 Windows 计算机下实现。

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

String url = "opc.tcp: // localhost: 102 /"; // ServerExample1

此版本已与 Windows、Linux 和任何能够 运行 图书馆的系统兼容。

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

我希望这些信息对和我情况相同的人有所帮助。

你好。