您的位置 首页 开关

Shift Register 与 Function Global

先看一段C代码,该函数的目的是记录它本身被调用的次数,最好的方式当然是在该函数内部记录,这就要求在两次调用之间保持上次的记录,用st

先看一段C代码,该函数的意图是记载它本身被调用的次数,最好的办法当然是在该函数内部记载,这就要求在两次调用之间坚持前次的记载,用static 变量最为合理,一是该变量的效果区域仅在函数内,外部无法直接修正,二是能够主动在初次调用时对变量进行初始化.

int Record(void)

{

static int counter=0; //初次调用初始化

counter++;

return(counter);

}

相似的功用在labview里是怎么完成的那,咱们当然能够用一个全局变量,在SUBVI中对全局变量履行+1的操作,可是这样做副效果是十分显着的.

一是由于没有封装数据,该全局变量能够在程序任何方位被修正.二是当几个当地一起操作该全局变量,由于没有维护机制,当时成果无法意料.

最好的办法是运用Function Global,也称做LV2型全局变量,可能是LABVIEW2曾经没有内置的全局变量,这是仅有的办法.

Function Global中心是Shift Register (未初始化的),大多数书本都着重Shift Register 初始化的重要性,实际上未初始化的Shift Register 更为重要.

Shift Register的一般用法就不解说了,比如在FOR循环中求平均值的问题.咱们要考虑的是Shift Register实质到底是什麽?实际上应该是拓荒的一段同享内存空间,这段内存空间是可读写的,已然这样实质上和全局变量就没有差异,一个最基本的Function Global如下图所示:

更正:上图中操控循环的布尔常量应为TRUE,意图使循环只运转一次,意图是运用SHIFT REGISTER

下面演示一下它的运用办法:

这就完成了全局变量的数据交换功用.运用组件编程是LABVIEW的重要编程办法,Funtion Global是它的中心部分.

这段程序存在一个问题,当程序发动,未进行写操作时,那Shift Register的值是什麽那?做为组件编程,应该在它的内部完成自我初始化. 这儿引进一个重要的VI,FIRST CALL来处理这个问题.

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/211635.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部