Java可以使用OPC Java SDK来实现对象OPC协议接口。

  1. 下载安装OPC Java SDK,并将其添加到Java项目中的Classpath中。

  2. 创建一个OPC Server连接对象。可以使用OPC Java SDK提供的OpcServerFactory类来创建连接对象。

import org.jinterop.dcom.common.JIException;
import org.jinterop.dcom.core.JIVariant;
import org.openscada.opc.lib.common.ConnectionInformation;
import org.openscada.opc.lib.da.AccessBase;
import org.openscada.opc.lib.da.AccessBaseListener;
import org.openscada.opc.lib.da.Item;
import org.openscada.opc.lib.da.ItemState;
import org.openscada.opc.lib.da.Server;

public class OPCClient {

    private static final String HOST = "localhost";
    private static final String DOMAIN = "";
    private static final String USER = "";
    private static final String PASSWORD = "";
    private static final String PROGID = "OPC.SimaticNET";

    private Server server = null;
    private AccessBase access = null;
    private Item item = null;

    public void connect() throws Exception {
        ConnectionInformation ci = new ConnectionInformation();
        ci.setHost(HOST);
        ci.setDomain(DOMAIN);
        ci.setUser(USER);
        ci.setPassword(PASSWORD);
        ci.setProgId(PROGID);

        server = new Server(ci, null);
        server.connect();
        access = new SyncAccess(server, 1000);
        access.addItem("Random.Real8", new DataCallback() {
            public void changed(Item item, ItemState state) {
                System.out.println(state.getValue().getObjectAsDouble());
            }
        });
        access.bind();
    }

    public void disconnect() throws Exception {
        access.unbind();
        server.disconnect();
    }
}
  1. 创建一个OPC Client对象,使用connect()方法连接到OPC Server。
OPCClient client = new OPCClient();
client.connect();
  1. 通过OPC Client对象,可以读取、写入OPC Server中的数据项。
ItemState itemState = access.read(item).get(0);
System.out.println(itemState.getValue().getObjectAsDouble());
access.write(item, new JIVariant(123.45));
  1. 使用disconnect()方法断开OPC Server连接。
client.disconnect();

需要注意的是,OPC Java SDK需要在Windows操作系统中运行,因为它使用了Java-Interop库来与Windows系统进行通信

Java 如何对象OPC协议接口

原文地址: https://www.cveoy.top/t/topic/fWQT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录