我正在尝试连接到Siemens S7 1200 PLC的OPC服务器。为此,我使用了Matrikon application 那是在我的本地机器上配置的。使用JeasyOPC library,我可以建立连接,就像这样:
JOpc jopc =新的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服务器一起使用的基本客户端
谢谢。
答案 0 :(得分:0)
好的。我对自己说。 经过多次搜索,我发现了自己的错误: OPC有两种类型:DA和UA。
首先(DA)是我可以连接的:
JOpc jopc =新的JOpc(“本地主机”,“ Matrikon.OPC.SiemensPLC.1”,“ JOPC1”);
此协议的版本是使用过的历史窗口,使用COM库,并且只能在Windows计算机上实现。
第二个是OPC UA,它是新的实现,它的连接方式如下:
String url =“ opc.tcp://本地主机:102 /”; // ServerExample1
此版本已经与Windows,Linux和任何能够运行libria的系统兼容。
问题是,就我而言,S7 1200仅使用OPC DA,如果不使用兼容的网关,则UA选项对我来说不可行。
我希望这些信息能对处于我状况的人有所帮助。
问候。
答案 1 :(得分:0)
相反,您可以尝试jinterop库。它支持x64。