【问题标题】:Connect to Matrikon server with OPC UA Java Legacy使用 OPC UA Java Legacy 连接到 Matrikon 服务器
【发布时间】:2026-02-10 03:45:01
【问题描述】:

我正在尝试连接到 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 服务器一起使用的基本客户端,我将不胜感激

谢谢。

【问题讨论】:

    标签: java client opc siemens s7-1200


    【解决方案1】:

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

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

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

    这个版本的协议是使用的historyaménte windows,使用COM库,只能在Windows电脑下实现。

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

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

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

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

    我希望这些信息能帮助遇到我这种情况的人。

    您好。

    【讨论】: