大家好,欢迎来到IT知识分享网。
背景:小编是个ifix盲,在拿到需求之前是一脸懵逼,在恶补了两周ifix基础知识后对ifix有一定的了解。其实我们写java的只是取ifix的数据,对于ifix的一些配置可以不用去管,但为了自己做测试不得不自己搭建ifix。还有就是客户使用的ifix是MBE,不是像kepware或者IGS那种直接就能作为opc服务器的应用,相较于使用kepware或IGS作为opc服务器稍微麻烦了点,其实就是换了一个opc服务器而已。
推荐看看这些博客
云逸大佬的其他博客也可以看看:
使用kepware作为opc服务器的文章:
步骤跟上面博客一样,先配置DCOM和OPC,使用MBE先将模拟器的数据读上来。然后就是使用java读ifix opc。
跟使用kepware/IGS作为服务器不一样的是,ifix opc应该读取的是iFIX OPC Client Data Access Server,所以在配置DCOM时要配置iFIX OPC Client Data Access Server的DCOM。然后就是拿到iFIX OPC Client Data Access Server的应用程序ID,也就是下图所示。
然后就是代码,配置itemid这块,我是这么配的:
public static void syncOpcRead(ConnectionInformation ci){
Server server = new Server(ci, Executors.newSingleThreadScheduledExecutor());
try {
server.connect();
for (int i = 0; i < 10; i++) {
Group group = server.addGroup();
Item item = group.addItem("Server2;Group3;d1:400011");
Item item2 = group.addItem("Server2;Group3;d1:400013");
log.info("ItemName:[" + item.getId()+ "],value:”" + item.read(false).getValue());
log.info("ItemName:[" + item.getId()+ "],value:”" + item2.read(false).getValue());
Thread.sleep(1000);
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (JIException e) {
e.printStackTrace();
} catch (org.openscada.opc.lib.common.AlreadyConnectedException e) {
e.printStackTrace();
} catch (AddFailedException e) {
e.printStackTrace();
} catch (NotConnectedException e) {
e.printStackTrace();
} catch (DuplicateGroupException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
写的不好,相互交流。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15269.html