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();
    

    }
    }

    评论

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向