java进行opc连接之四 java jeasyOPC 连接

来源:互联网 发布:sql语句 数据类型 编辑:程序博客网 时间:2024/05/18 15:25

在前面java进行opc连接一到三的中已经完成了通过OPC 服务实现了数据的获取。
但是还是无法满足java开发的需要,所以还是需要通过java的一个JEasyOPC.jar包或者Utgard来实现java程序访问OPC server服务器获取数据的过程。
本次讲解JEasyOPC连接
我觉得主要还是需要说下连接,连接通了后面的一切都好处理,没连接成功后面的都扯蛋,因为我之前重来没有接触过OPC 这块的内容,也是通过各种资料查询,询问别人和无数次的测试才了解连接的原理。
首先确保OPC server正常启动,OPC Client客户端正常读取
如下图:
这里写图片描述
首先看下目录结构:
下面框红的文件很重要,并且文件位置需要正确
这里写图片描述
JEasyOPC在使用的时候需要用到JCustomOpc.dll文件
以下是连接代码
需要特别注意的是
JOpc jopc = new JOpc(“127.0.0.1”, “SunFull.X2OPC.1”, “JCustomOPC”);
JOpc 这几天的参数分别是在哪里获取的
127.0.0.1 连接地址就是服务器的地址
SunFull.X2OPC.1
这里写图片描述
JCustomOPC:这个随便填写

package com.freud.opc.jeasyopc;import java.util.ArrayList;import javafish.clients.opc.JOpc;import javafish.clients.opc.component.OpcGroup;import javafish.clients.opc.component.OpcItem;/** * 同步读取Group *  * @author Freud *  */public class JeasyopcTest06 {    public static void main(String[] args) throws Exception {        JOpc.coInitialize();        JOpc jopc = new JOpc("127.0.0.1", "SunFull.X2OPC.1", "JCustomOPC");        OpcItem item1 = new OpcItem("ModbusRTU.Channel_1.Device_1.Group_1.N1", true, "");        OpcItem item2 = new OpcItem("ModbusRTU.Channel_1.Device_1.Group_1.N2", true, "");        OpcItem item3 = new OpcItem("ModbusRTU.Channel_1.Device_1.Group_1.N3", true, "");        OpcItem item4 = new OpcItem("ModbusRTU.Channel_1.Device_1.Group_1.N4", true, "");        OpcItem item5 = new OpcItem("ModbusRTU.Channel_1.Device_1.Group_1.N5", true, "");        OpcItem item6 = new OpcItem("ModbusRTU.Channel_1.Device_1.Group_1.N6", true, "");        OpcItem item7 = new OpcItem("ModbusRTU.Channel_1.Device_1.Group_1.N7", true, "");        OpcGroup group = new OpcGroup("Group", true, 10, 0.0f);        group.addItem(item1);        group.addItem(item2);        group.addItem(item3);        group.addItem(item4);        group.addItem(item5);        group.addItem(item6);        group.addItem(item7);        jopc.addGroup(group);        jopc.connect();        System.out.println("JOPC client is connected...");        jopc.registerGroups();        System.out.println("OPCGroup are registered...");        synchronized (JeasyopcTest06.class) {            JeasyopcTest06.class.wait(2000);        }         OpcGroup responseGroup = jopc.synchReadGroup(group);        System.out.println(responseGroup.getItems());        ArrayList<OpcItem> opcItems = responseGroup.getItems();        for (OpcItem opcItem : opcItems) {            System.out.println(opcItem.getItemName() + ":" + opcItem.getValue());        }        JOpc.coUninitialize();    }}