前文介绍了LV编程的重要概念—状况机,状况机是个基本概念或者说理论,其详细表现形式多种过样,很难详细分类,我依据个人在编程实践中的领会,概括几种常见类型.
一、次序结构
LV自身是有次序结构的,并且有两种方法,STACKED (堆叠)和FLAT FRAME(平铺)。
次序结构的状况机更象是堆叠次序结构,不过二者的差异在于LV自身的次序结构是强制的,无法中心退出的,而状况机的次序结构是选用的循环扫描的方法.我举一个例子来阐明一下:
一个加工零件的程序,进程如下:
等候发动按钮—>主轴发动—>滑台快进—->滑台作业进给—>结尾延时—>滑台快速回来原位——–>等候发动按钮(下一次循环)
这儿的发动按钮可所以界面上的按钮也可所以操作台上的按钮.用一般次序结构应该是(咱们用平铺更简略了解)
咱们注意到,每个动作(FRAME)内部都是一个循环结构,需求等候必定条件后,假如条件满意,转入下一个FRAME,咱们没有任何方法改动它,比方咱们有一个急停按钮,则需求在每一个FRAME中检测急停,假如急停收效,退出本FRAME,转入下一个FRAME,依然要判别急停,直到一切的FRAME都完结才干退出,
在这个进程中,外层循环需求一切动作完结后才履行下一循环,对它改造一下,就能够构成次序状况机结构.
我从前提到过,严厉类型的枚举是状况机的中心要素,咱们先结构一个严厉类型的枚举.枚举变量有一个特色,当最终的元素履行加一操作时回来第一个元素.
这个状况机的功用和上面的次序结构完结的功用是相同的,差异在于每个CASE不存在循环等候了,
整个循环进程都是在外层循环中完成的,外层循环不断地更新,假如转化条件(事情未产生),下一次循环依然履行前一个CASE(状况不变),假如转化条件满意(事情产生),采纳加一的动作(ACTION),转入下一个状况.
这样做和上面的次序结构比较,优点是清楚明了的,整个进程只要一个循环,而上面的次序结构实践每个FRAME都是一个循环,这样,假如有急停按钮,咱们能够在CASE外面检测急停,假如急停,能够立刻中止循环,而在次序结构中,需求在每个FRAME检测,并逐一退出.
次序结构的状况机是十分简略的,可是实践操控中又是比较常见的,后续我将介绍其他类型的状况机