Function Global 与Action Engine

发布者:代码律动最新更新时间:2015-08-24 来源: eefocus关键字:Function  Global  Action  Engine 手机看文章 扫描二维码
随时随地手机看文章
Action Engine的概念在LV的书籍中是看不到,国外一些LV高手创造了这个概念.暂时翻译成动作器吧.

任何语言编程,都有数据封装的问题.在面向对象的编程语言中处处可见.LABVIEW8.X增加了一部分类的概念,对数据封装自然就容易多了.这是另外一个话题.

一个Action Engine,我的理解是一个黑匣子操作,它可以接受外部命令并自动自行相应的操作,命令的具体执行过程外部是看不到了,类似于类中的属性和方法的概念.

比如开车,作为一个司机,只需要用方向盘控制方向,用油门和档位来控制速度,具体是如何实现的,司机是并不关心的,所以具体实现过程对司机来说是不透明的,这就是动作器的含义.

就本质来说,是基于消息发送的机制.

windows就是典型的采用消息来发送命令的.

LRESULT SendMessage(
HWND hWnd, // 目标窗口句柄
UINT Msg, // 被发送的消息
WPARAM wParam, // 第一个消息参数
LPARAM lParam // 第二个消息参数
);

hWnd---是接受消息的窗口句柄  Msg----消息(命令), wParam 和lParam是要传递的数据.

实际所谓Action Engine也是基于这个原理的.


举一个实际应用问题来进一步说明.为了简单,消息只采用命令方式,不传递任何数据.

一般的数据采集卡都有一个8位的数字量输出,每一位对应一个外部的输出点,控制电机,方向阀等.

我们分别命名为:bit 0--->Relay 0,1--->Relay1 .....7---Relay 7,我们需要对其中每一位都有置0和置1的功能.

可编制如下的命令组:

Relay0 On

Relay0 Off

...

Port On (全部On)

Port Off(全部Off)

Keep(可以改变,但不输出)

显然我们需要一个Enum类型的数据来描述上述命令,强烈建议使用自定义控件中的strict tyep def,这样如果需要修改,程序中任何地方都可以自动更新.



我们需要用Function Global方法保存一个U8数据来做代表这个8位输出口.


[page]

 下一步为每个命令配置一个CASE项目.




 


这样,一个AE就形成了,它是作为一个子VI而存在的,在其他部分可以非常方便地调用它.


这样,对于主循环来说,只是给AE发送相应的命令,具体实现过程与主循环无关,有效地封装的数据.

 

关键字:Function  Global  Action  Engine 引用地址:Function Global 与Action Engine

上一篇:shift register 与循环结构
下一篇:Shift Register 与 Function Global

推荐阅读最新更新时间:2024-03-30 23:03

HID Global移动门禁技术开启安全、便捷新时代
全球安全身份识别解决方案领袖HID Global 今日宣布推出HID的移动门禁技术(Mobile Access )解决方案,旨在以更安全、便捷的方式开启房门和大门,同时引入简单的安全身份管理流程。该解决方案包括企业机构在当今日益流行的自带设备(BYOD)移动环境中,实现即刻使用支持蓝牙和NFC的智能手机和其他移动设备替代钥匙和智能卡所需的一切。此外,该解决方案利用公司的旋转开启(Twist and Go)专利手势技术,允许用户在一定距离内开门。 HID移动门禁可与公司的基于移动技术的iCLASS SE 和/或multiCLASS SE 读卡器配套使用,包括移动ID、HID移动门禁App和HID Secure Identit
[物联网]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved