`
cisumer
  • 浏览: 82824 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

JEsayOpc使用心得

    博客分类:
  • J2SE
阅读更多
  
    前段时间做一个自动化的项目,由于种种原因需要使用swing开发客户端监控系统。由于使用了OPC作为数据采集和转发服务器,于是开始研究JEsayOpc,期间种种在此略过,最终总结了一些心得体会拿来与大家分享。
1、JCustomOpc是提供基础方法的抽象类,所有的与服务器通信,初始化等方法全在此类。尤其注意dll加载在此类一个static块中。

2、JOpc提供了操作group和item以及读写的基本方法。它是JCustomOpc的子类。

3、JEasyOpc是一个简单实现了JOpc的类,它实现了一个线程来异步读item。可以参考此类的实现,但不建议直接使用此类。

4、OpcItem代表了OPC服务器中的一个Item/Tag,在应用程序中它应该包含在一个OpcGroup中,注意OpcGroup和OPC服务器中的group没有关系。

5、OpcItem的name属性表示OPC服务器中的ItemID。

6、coInitialize在最开始,coUninitialize在最后。

7、正常的加载顺序为,创建OpcItem和OpcGroup,使用OpcGroup.addItem(OpcItem item)添加OpcItem;将所有的item加载后,调用JCustomOpc.connect()连接服务器;调用JOpc.registerGroups(),注册所有的组;调用JOpc.synchReadItem(OpcGroup, OpcItem)同步读数据,调用JOpc.synchWriteItem(OpcGroup, OpcItem)同步写数据。

8、注意使用registerGroups()方法注册则OpcItem不用单独注册。如果调用registerGroup(OpcGroup)注册OpcGroup,则还需调用registerItem(OpcGroup,OpcItem)注册该OpcGroup中的OpcItem。否则在读取是会出现javafish.clients.opc.exception.SynchReadException: Synchronous reading error.

9、注册OpcGroup后如果向Group添加了新的OpcItem,要调用registerItem(OpcGroup,OpcItem),否则在读取时会出现javafish.clients.opc.exception.SynchReadException: Synchronous reading error.

10、在注册新OpcItem前一定要调用JOpc.updateGroups()更新组,否则注册时会出现javafish.clients.opc.exception.ComponentNotFoundException: The component (group/item) wasn't found: componentname

转载请标明出处~!谢谢 http://cisumer.iteye.com/blog/690420
分享到:
评论
4 楼 ron.luo 2019-02-19  
使用JEasyOPC Client 写入的时候,内存会以4K或其倍数增长,请问有遇到过么?最终内存增长累计到一定的时候OPCServer就挂了。
3 楼 lixuguang 2013-08-30  
你好,想请教下,JEsayOpc如何连接远程服务器,只有本地也安装对应的opc服务器才行,怎么回事呢?
2 楼 hrf472989050 2013-05-02  
大神,JeasyOpc连接OpcServer 能给个实例吗?
1 楼 BlackGray 2013-01-14  
你好,想请教下,JEsayOpc如何连接远程服务器

相关推荐

Global site tag (gtag.js) - Google Analytics