德國KUKA機(jī)器人編程知識之程序結(jié)構(gòu)
機(jī)器人程序的結(jié)構(gòu)和組成
程序流程控制,除了純運(yùn)動指令和通訊指令(切換和等待功能)之外,在機(jī)器人程序中還有大量用于控制程序流程的程序.其中 包括:
1.循環(huán)|循環(huán)是控制結(jié)構(gòu).它不斷重復(fù)執(zhí)行指令塊指令,直至出現(xiàn)終止條件.
無限循環(huán)
計數(shù)循環(huán)
當(dāng)型和直到型循環(huán)
2.分支|使用分支后,便可以只在特定的條件下執(zhí)行程序段.
條件分支
多分支結(jié)構(gòu)
無限循環(huán):在無限循環(huán)中無止境地重復(fù)指令段.然而,卻可通過一個提前出現(xiàn)的中斷(含EXIT功能)退出循環(huán)語句.
程序流程圖:無限循環(huán)
LOOP指令舉例:
無EXIT:永久執(zhí)行對P1和P2的運(yùn)動指令
帶EXIT:一直執(zhí)行對P1和P2的運(yùn)動指令,直到輸入端30切換到True
計數(shù)循環(huán):用計數(shù)循環(huán)(FOR循環(huán)語句)可使指令重復(fù)定義的次數(shù).循環(huán)的次數(shù)借助與一個計數(shù)變量控制
程序流程圖:FOR循環(huán)語句
一個FOR循環(huán)語句舉例:將輸出端1至5依次切換到TRUE.用整數(shù)(Integer)變量i來對一個循環(huán)語句內(nèi)的循環(huán)進(jìn)行計數(shù).
當(dāng)型循環(huán):WHILE循環(huán)是一種當(dāng)型或者先判斷型循環(huán),這種循環(huán)會在執(zhí)行循環(huán)的指令部分前先判斷終止條件是否成立.
WHILE程序流程圖
WHILE循環(huán)示例:輸出端17被切換為TRUE,而輸出端18被切換為False,并且機(jī)器人移入home位置,但僅當(dāng)循環(huán)開始時就已滿足條件(輸入端22為TRUE)時才成立.
直到型循環(huán):REPEAT循環(huán)是一種直到型或者效驗循環(huán),這種循環(huán)會在第一次執(zhí)行完循環(huán)的指令部分后才回檢測終止條件.
程序流程圖:REPEAT循環(huán)
REPEAT循環(huán)示例:輸出端17被切換為TRUE,而輸出端18被切換為False,并且機(jī)器人移入home位置,這時才會檢測條件.
程序分支
條件性分支:條件性分支(IF語句)由一個條件和兩個指令部分組成.如果滿足條件,則可處理第一個指令.如果未滿足條件,則執(zhí)行第二個指令.
但是,對IF語句也有替代方案:
1.在誒二個指令部分可以省去:無ELSE的IF語句.由此,當(dāng)不滿足條件時緊跟在分支后便繼續(xù)執(zhí)行程序.
2.多個IF語句可相互嵌套(多重分支):問詢被依次處理,知道有一個條件得到滿足.
程序流程圖:IF分支
IF語句舉例:如果滿足條件(輸入端30必須為True),則機(jī)器人運(yùn)動到點P3,否則到點P4
多分支結(jié)構(gòu):一個Switch分支語句是一個分配器或多路分支.此處首先分析一個表達(dá)式.然后,該表達(dá)式的值與一個案例段(CASE)的值進(jìn)行比較.值一致時執(zhí)行相應(yīng)案例的指令.
程序流程圖:Switch結(jié)構(gòu)
對帶有名稱”狀態(tài)”的整數(shù)變量(Integer),首先要檢查其值.如果變量的值為1,則執(zhí)行案例1(CASE1):機(jī)器人運(yùn)動到點5.如果變量的值為2.則執(zhí)行案例2(CASE2):德國KUKA機(jī)器人運(yùn)動到點P6.如果變量的值未在任何案例中列出(在該例中為1和2以外的值),則將執(zhí)行默認(rèn)分支:故障信息.