我正在尝试连接到 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 meEndpointDescription[] endpoints = myClient.discoverEndpoints(url);我想尽可能地模拟 jeasyOPC 的操作,无论如何我找不到任何适合我的例子。我将不胜感激任何可以帮助我拥有可以与 Matrikon 服务器一起使用的基本客户端的示例谢谢你。
1 回答
POPMUISE
TA贡献1765条经验 获得超5个赞
好的。我回答自己。经过多次搜索,我发现了我的错误:有两种类型的 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 /"; // 服务器示例 1
这个版本已经兼容 Windows、Linux 和任何能够运行 libria 的系统。
问题是,就我而言,S7 1200 只使用 OPC DA,如果它不使用兼容的网关,这使得 UA 选项对我来说不可行。
我希望这些信息能对处于我这种情况的人有所帮助。
问候。
添加回答
举报
0/150
提交
取消