utgard在使用异步(Async20Access)读取数据时,总是出错,我的邮箱:sangjingrui@163.com 5C
  1. 在使用utgard访问OPC服务器,使用异步(Async20Access)读取数据时,总是出错,同步读取就可以,我想问一下,这是什么问题? 下面是console输出:Recieved FAULT 最后接到一个FAULT,不知道什么原因,请赐教!
  2. 代码:
    public static void main ( final String[] args ) throws Throwable
    {
    // create connection information
    final ConnectionInformation ci = new ConnectionInformation ();
    ci.setHost("127.0.0.1"); // 电脑IP
    ci.setDomain(""); // 域,为空就行
    ci.setUser("opcuser"); // 电脑上自己建好的用户名
    ci.setPassword("123456"); //密码

     // 使用KEPServer的配置
    ci.setClsid("7BC0CC8E-482C-47CA-ABDC-0FE7F9C6E729"); 
    
    final Set<String> items = new HashSet<String> ();
    
    if ( items.isEmpty () )
    {
        items.add ("ch1.d1.tag1");
        items.add ("ch1.d1.tag2");
    }
    
    // create a new server
    final Server server = new Server ( ci, Executors.newSingleThreadScheduledExecutor () );
    try
    {
        // connect to server
        server.connect ();
    
        // add sync access
        final AccessBase access = new Async20Access ( server, 100, false );
        for ( final String itemId : items )
        {
            access.addItem ( itemId, new DataCallbackDumper () );
        }
    
        // start reading
        access.bind ();
    
        // wait a little bit
        _log.info ( "Sleep for some seconds to give events a chance..." );
        Thread.sleep ( 10 * 1000 );
        _log.info ( "Returned from sleep" );
    
        // stop reading
        access.unbind ();
    }
    catch ( final JIException e )
    {
        System.out.println ( String.format ( "%08X: %s", e.getErrorCode (), server.getErrorMessage ( e.getErrorCode () ) ) );
    }
    

    }
    }

  3. 我发现同样的代码,采用同步读取就没有问题,这是为什么?是不是对异步需要对环境进一步配置?
    我的邮箱:sangjingrui@163.com

1个回答

可能你的opc服务器不支持并发和重入,具体要问Async20Access的编写者

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问