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

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 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable