- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中级LabVIEW程式设计技巧与观念
中级LabVIEW程序设计技巧与观念 I
if叙述的写法 a=a+1的写法 getch( )与kbhit( ) 程序中有while 循环的结束方法 Occurrence 的功能及使用方法 平行循环执行时的同步性 巢状if结构的改良 State Machine 的观念及写法 ? ?
高科技产业需要好的生产设备作为进攻市场的利器。而如何控制生产设备的自动化则是决定此设备优劣的要件之一。
在一个公司考虑采用何种系统来控制生产机器,选择多数日系机器都采用的PLC (Programmable Logic Controllers)系统(如三菱的FX2或A系列),或藉由PC接口(如ISA、PCI、GPIB等)来控制机器的系统,是最优先考虑的难题,因这两种截然不同的控制系统需用不同的软件及各有优劣,因此往往也很难下决定。
当初本公司在决定要采用PLC系统或是PC-based系统确实经过一番挣扎,由于大部分工程师的背景并非机械或控制科系出身,要想建立公司自行发展的技术基础,无论是采用PLC系统或是PC-based系统均需重新学习。最后决定采用PC-based 的系统来作自动化控制,并使用软件为National Instruments 公司的LabVIEW(以下简称LV),主要着眼于其发展的弹性与潜力比PLC系统来的大,不仅可随全世界的软件进展而不断改良,而使其应用范围越来越广,举凡机械运动、仪器量测、网络通讯、影像处理…等均可应用,除此之外,更可支持active X的对象(objects)的插入连结应用于LV中,进而使LV的能力也越发强大到令人咋舌的地步。
?
在LabVIEW程序设计的技巧与观念上,以下提供一些个人心得供大家参考:
?
if叙述的写法:
在LabVIEW中并没有if的语法,这对写惯了text-based程序语言的人来说,刚开始还真有点绑手绑脚,施展不开。解决的方法为所有的if判断叙述均改用case结构来取代即可,原本就有写过C语言的工程师很快就能上手了,但还是要花一小段时间来适应。
?
a=a+1的写法:
有没有搞错?这么基本的写法还要讨论吗?程度也未免太低了吧!没错,它是很简单,但刚开始时也确实有些小困扰,因LabVIEW中,一个变量在一般情形下只能出现在block diagram中一次,将一个数值变量加一后再连回自己本身是最直觉的想法,但若如此,便会因data flow的方向相互抵触的关系出现断线,解决的方法有两种:
1.????? 使用local variable,如:
2.????? 若是在循环中便可使用shift register来帮忙达成目的,如下图所示,但记得shift register最好要给初值,否则初值将预设为0。
getch( )与kbhit( )﹔
对C语言有经验的人一定很怀念这两个函式:getch( )与kbhit( ),这两个函式的功用差不多,差异是kbhit( )只会侦测到键盘是否有按键被按下,而getch( )则除了kbhit( )的功用外,还会传回被按下按键的ASCII code。这两个函式可让程序暂停去等待某些键盘指令,非常好用也非常常用,例如:按下”y”或”Y”代表YES,”n”或”N”代表NO等等。
但一到LabVIEW中就发现,当程序执行时想要实时读取键盘有何输入并不是很方便,常用的做法是设一个numeric control或string control,用鼠标去移动到control上及按鼠标键,然后再由键盘输入某些键,再按enter或移动鼠标到toolbar上按下一个勾勾的按键,才能将键入的键值由程序读入,对于只为了单纯目的让程序继续的单击动作(如按下”y”或”n”)而言,似乎太麻烦了,然而这类单击动作显然还是非常有需要的。
以下提供一个简单的subVI:getch( ).vi,具有C语言中getch( )的功能,如此便很容易加到一般程序中了。当程序读到键盘有按键被按下时,将按下的键值传出后即结束。因其中有用到一个read keyboard.vi的subVI,使用时要注意在主程序呼叫getch( ).vi前,要先呼叫过Open Keyboard.vi,否则getch( ).vi中的Read Keyboard.vi会读不到键盘,而主程序结束前要呼叫Close Keyboard.vi。
?
程序中有while 循环的结束方法:
一般而言,当程序执行完所有的程序代码后就自动结束,这种情形也就没什么需要讨论的。所以以下针对程序中有while 这种无限循环在程序里面的情形作讨论。
1.????? 程序在执行时,按下上方tool bar中的红色圆形停止键。这个方法看起来方便但实际上并不理想,理由是你并没有真正在程序中写使程序结束的程序代码,而是用LabVIEW本身去终止你的程序,
文档评论(0)