java通过opc协议获取ifix实时数据

java通过opc协议获取ifix实时数据java通过opc协议获取ifix实时数据

大家好,欢迎来到IT知识分享网。

背景:小编是个ifix盲,在拿到需求之前是一脸懵逼,在恶补了两周ifix基础知识后对ifix有一定的了解。其实我们写java的只是取ifix的数据,对于ifix的一些配置可以不用去管,但为了自己做测试不得不自己搭建ifix。还有就是客户使用的ifix是MBE,不是像kepware或者IGS那种直接就能作为opc服务器的应用,相较于使用kepware或IGS作为opc服务器稍微麻烦了点,其实就是换了一个opc服务器而已。

推荐看看这些博客

Java实现OPC通信,看这一篇就够了

OPC和DCOM配置

云逸大佬的其他博客也可以看看:

云逸大佬的其它关于opc的文章,还有kepware的文章

使用kepware作为opc服务器的文章:

OPCServer:使用KEPServer

步骤跟上面博客一样,先配置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,也就是下图所示。

java通过opc协议获取ifix实时数据

 然后就是代码,配置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

(0)
上一篇 2024-02-19 15:26
下一篇 2024-02-19 18:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信