Dannybaby 2016-07-13 14:29 采纳率: 0%
浏览 5184

JAVA OPC客户端远程调用OPC服务端问题

引用JEasyOpc的代码,在OPC服务端本地可以运行成功,但远程访问却报如下错误。

javafish.clients.opc.exception.ConnectivityException: The connection to the OPC Server has failed: 172.20.4.11->ABB.AfwOpcDaSurrogate
at javafish.clients.opc.JCustomOpc.connect(JCustomOpc.java:204)
at javafish.clients.opc.SynchReadItemExample.main(SynchReadItemExample.java:30)
javafish.clients.opc.exception.UnableAddGroupException: Unable to register some group to server.
at javafish.clients.opc.JOpc.registerGroups(JOpc.java:293)

  • 写回答

2条回答 默认 最新

  • Dannybaby 2016-07-14 11:51
    关注

    package javafish.clients.opc;

    import javafish.clients.opc.component.OpcGroup;
    import javafish.clients.opc.component.OpcItem;
    import javafish.clients.opc.exception.ComponentNotFoundException;
    import javafish.clients.opc.exception.ConnectivityException;
    import javafish.clients.opc.exception.SynchReadException;
    import javafish.clients.opc.exception.UnableAddGroupException;
    import javafish.clients.opc.exception.UnableAddItemException;
    import javafish.clients.opc.variant.Variant;

    public class SynchReadItemExample {
    public static void main(String[] args) throws InterruptedException {
    SynchReadItemExample test = new SynchReadItemExample();

    JOpc.coInitialize();
    
    JOpc jopc = new JOpc("172.20.4.11", "800Service", "JOPC1");
    
    OpcItem item1 = new OpcItem("[DIRECT][Control Structure]Root.PLC_connect.OPC.TS1_DCU10.5AA10", true, "");
    //OpcItem item1 = new OpcItem("Random.Real8", true, "");
    //OpcItem item1 = new OpcItem("Random.String", true, "");
    
    OpcGroup group = new OpcGroup("group1", true, 500, 0.0f);
    
    group.addItem(item1);
    jopc.addGroup(group);
    
    try {
      **jopc.connect();//报错**
      System.out.println("JOPC client is connected...");
    }
    catch (ConnectivityException e2) {
      e2.printStackTrace();
    }
    
    try {
      jopc.registerGroups();
      System.out.println("OPCGroup are registered...");
    }
    catch (UnableAddGroupException e2) {
      e2.printStackTrace();
    }
    catch (UnableAddItemException e2) {
      e2.printStackTrace();
    }
    
    synchronized(test) {
      test.wait(50);
    }
    
    // Synchronous reading of item
    int cycles = 7;
    int acycle = 0;
    while (acycle++ < cycles) {
      synchronized(test) {
        test.wait(1000);
      }
    
      try {
        OpcItem responseItem = jopc.synchReadItem(group, item1);
        System.out.println(responseItem);
        System.out.println(Variant.getVariantName(responseItem.getDataType()) + ": " + responseItem.getValue());
      }
      catch (ComponentNotFoundException e1) {
        e1.printStackTrace();
      }
      catch (SynchReadException e) {
        e.printStackTrace();
      }
    }
    
    JOpc.coUninitialize();
    

    }
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突