LabVIEW-用户事件与动态注册事件

LabVIEW-用户事件与动态注册事件

用户事件与动态注册事件是LabVIEW新增的功能,用户事件主要用于不同线程之间的数据交换;

本文将讲解如何通过用户自定义事件触发随机数,在不同进程之间传递数据;

用户事件和动态注册事件函数位于:程序框图-查看(菜单)-函数选板-函数-编程-对话框与用户界面-事件,包括:注册事件,创建用户事件,产生用户事件,取消注册事件,销毁用户事件,清空事件队列;

注册事件:动态注册事件。可注册的事件由连线至事件源输入端的引用类型确定。连线事件注册引用句柄输出输出端至事件结构或该函数其他实例。

事件注册引用句柄(接线端):是对“注册事件”函数创建的已有事件注册的引用。

错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。

事件源1..n(接线端):是对应用程序、VI、控件或用户事件的引用。必须是对本地对象的引用。不能连线引用至远程对象。 如连线引用句柄数组或簇至该输入端,LabVIEW可为事件注册所有的数组或簇元素。

事件注册引用句柄输出(接线端):返回对新建或已有事件注册的引用。

错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

创建用户事件:返回用户事件的引用。LabVIEW通过连线的用户事件数据类型确定事件的事件名称和数据类型。连线用户事件输出输出端至注册事件函数可注册事件。连线用户事件输出输出端至产生用户事件函数,可发送事件和相关数据至为该事件注册的所有事件结构。

用户事件数据类型(接线端):是由多个元素或单个元素组成的簇,数据类型和标签可定义用户事件的数据类型和名称。错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。用户事件输出(接线端):返回严格类型用户事件引用句柄。错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。

用户事件输出(接线端):返回严格类型用户事件引用句柄。

错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

产生用户事件:

广播连线至用户事件输入端的用户事件,发送用户事件和相关的事件数据至注册为处理该事件的每个事件结构。

优先级(接线端):指定用户事件的优先级。如指定high priority,生成用户事件函数将把用户事件和相关的事件数据排在队列中已生成的一般优先级事件之前。默认值为normal priority。用户事件(接线端):是由创建用户事件函数创建的用户事件引用句柄。事件数据(接线端):是在创建用户事件函数的用户事件数据类型输入端定义的数据。错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。用户事件输出(接线端):返回严格类型用户事件引用句柄。错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

用户事件(接线端):是由创建用户事件函数创建的用户事件引用句柄。

事件数据(接线端):是在创建用户事件函数的用户事件数据类型输入端定义的数据。

错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。

用户事件输出(接线端):返回严格类型用户事件引用句柄。

错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

取消注册事件:取消注册与事件注册引用句柄关联的所有事件。

使用该事件注册引用句柄的事件结构不再接收任何动态事件。NI建议在事件无需处理时取消注册事件。如未取消注册事件,VI运行时,即使无事件结构等待处理事件,LabVIEW也可继续生成和排列事件,产生内存消耗且在前面板事件锁定启用时导致VI挂起。

事件注册引用句柄(接线端):是对“注册事件”函数创建的已有事件注册的引用。

错误输入(接线端):指示节点运行前产生错误的条件。在下列情况下,该输入可作为标准错误输入。 即使在节点运行前发生错误,节点仍正常运行。

错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

销毁用户事件:通过销毁用户事件引用句柄,释放用户事件引用。所有注册为该用户事件的事件结构不再接收该事件。

用户事件(接线端):是由创建用户事件函数创建的用户事件引用句柄。

错误输入(接线端):指示节点运行前产生错误的条件。在下列情况下,该输入可作为标准错误输入。 即使在节点运行前发生错误,节点仍正常运行。

错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

清空事件队列:放弃一个或多个事件队列中最早的通知事件。如要放弃的事件队列包含过滤事件,该函数将在队列的第一个过滤事件停止,仅放弃停止前发生的事件。

最早事件时间(接线端):是开始保持事件的事件时间,以毫秒为单位。该函数将丢弃该指定时间之前的所有事件。毫秒计时可接受时间计数器(ms)函数返回的值。

事件注册引用句柄(接线端):是与要清空的队列相关的事件注册引用句柄的引用。

包含静态事件?(接线端):指定清空操作是否包括事件结构队列中的静态事件。如将清空事件队列函数置于事件结构的某个事件分支,默认值为TRUE。否则,默认值为FALSE。事件类型或对象(接线端):指定在最早事件时间和保留最新项设定的标准下,要丢弃的通知事件。 关于如何指定要丢弃的事件的具体信息,见详细信息一节。错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。保留最新项(接线端):指定在事件队列中保留的最新事件的数量。如连接事件类型或对象,保留最新项仅影响指定类型的事件。如清空一个以上事件队列,保留最新项包括所有指定事件队列的事件数量的总和。事件注册引用句柄输出(接线端):返回与清空的事件队列相关的事件注册引用句柄。被放弃事件的数量(接线端):返回丢弃事件的总数。错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

事件类型或对象(接线端):指定在最早事件时间和保留最新项设定的标准下,要丢弃的通知事件。 关于如何指定要丢弃的事件的具体信息,见详细信息一节。

错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。

保留最新项(接线端):指定在事件队列中保留的最新事件的数量。如连接事件类型或对象,保留最新项仅影响指定类型的事件。如清空一个以上事件队列,保留最新项包括所有指定事件队列的事件数量的总和。事件注册引用句柄输出(接线端):返回与清空的事件队列相关的事件注册引用句柄。被放弃事件的数量(接线端):返回丢弃事件的总数。错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

事件注册引用句柄输出(接线端):返回与清空的事件队列相关的事件注册引用句柄。

被放弃事件的数量(接线端):返回丢弃事件的总数。

错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

打开LabVIEW,新建VI,程序框图,放置一个事件结构,然后选择事件结构,右击-选择显示动态事件接线端;

然后在程序框图添加:while循环,数值常量,创建用户事件,注册事件,并按照下图连线;在前面板添加一个停止布尔按钮(机械动作:单击时转换);

1)右击事件结构-添加事件分支;2)选择事件源/动态/<数值>:用户事件和选择事件-用户事件;3)事件结构出现:<数值>:用户事件

按照下图,继续添加:产生用户事件,销毁用户事件,取消注册事件,以及简易错误处理器等函数,并在循环2的“产生用户事件”的事件数据接线端连接随机数(0~1),在循环1-事件结构-用户事件分支-创建数值显示控件;