labview建立OPCUA客户端

1、现在opcUA在自动化领域里应用越来越广泛,OPC UA客户端的建立不像以前OPC UA的建立那么复杂,并且OPC UA支持很多平台,拜托了微软DCOM的束缚。比如NodeRed平台,JS,单片机,labview等等语言都可以开发客户端。

2、labview在建立OPCUA方面也一如既往的简单,通过建立连接->读写数据或订阅数据->删除订阅->删除连接等操作就可以完成对OPCUA服务器上标签点的读写于订阅。

3、查询相关资料-NI官网资料讲解了OPCUA 客户端函数的详细用法,当然也可以在安装OPCUA开发包后查看随机帮助,那里面还有相关例程

4、软件版本:labview用的2020版本32位中文,OPCUA开发包从网上下载的也用的是2020版32位的,32位软件有中文支持,64位没有中文版

5、OPCUA服务但采用codesys control win

6、软件架构

(1)采用JKI状态机,统筹管理界面事件,和数据和UI界面的初始化。

(2)消息队列(生产者),JKI状态机内建立OPCUA连接后,产生注册事件,在消息队列中通过事件处理函数收到OPCUA订阅到的数据,并将数据插入消息队列

(3)消费者,消息队列有数据后,将队列内的数据解析放入多列列表框内

7、JKI状态机中新增内容

 

 (1)新增内容,主要完成了树形控件显示OPCUAserver中各个对象的层级关系,完成树形控件中标签点到多列列表框中的拖拽功能

 (2)完成OPCUA服务器的连接、订阅、注销等工作

8、消息队列-数据生产者

 

(1)生产者,重新定义了消息队列传递的数据类型,该类型中包括原本数据订阅传递的数据以及增加了一个字符串数据类型,用于传递附加消息,生产者循环通过JKI状态机中控制共享变量的值来停止。

(2)JKI状态机中在建立OPCUA连接后,产生订阅事件,这里采用了LV2全局变量将注册事件引用传递出来。

(3)主界面关闭程序后通过JKI状态机控制StopWhile共享变量,在生产者循环中,产生一个新消息,将停止消息加入其中,传给消费者循环

9、消费者循环

 

(1)消费者循环负责将接收到的数据更新到多列列表框,同时接收到停止消息后停止循环并销毁消息队列

10、通过实现OPCUA客户端,熟悉了labview树形控件和多列列表框控件的使用,以及对数组函数、消息队列、LV2全局变量、JKI状态机等相关功能的使用,学习labview的使用还是要具体去实现某些功能,才能真正理解函数的使用方法。

 

 

 

 

                                        

posted @ 2022-03-15 11:23  小猪向钱冲  阅读(3370)  评论(2编辑  收藏  举报