德國kuka機器人編程知識之程序結(jié)構(gòu)
機器人程序的結(jié)構(gòu)和組成
程序流程控制,除了純運動指令和通訊指令(切換和等待功能)之外,在機器人程序中還有大量用于控制程序流程的程序.其中 包括:
1.循環(huán)|循環(huán)是控制結(jié)構(gòu).它不斷重復執(zhí)行指令塊指令,直至出現(xiàn)終止條件.
無限循環(huán)
計數(shù)循環(huán)
當型和直到型循環(huán)
2.分支|使用分支后,便可以只在特定的條件下執(zhí)行程序段.
條件分支
多分支結(jié)構(gòu)
無限循環(huán):在無限循環(huán)中無止境地重復指令段.然而,卻可通過一個提前出現(xiàn)的中斷(含exit功能)退出循環(huán)語句.
程序流程圖:無限循環(huán)
loop指令舉例:
無exit:永久執(zhí)行對p1和p2的運動指令
帶exit:一直執(zhí)行對p1和p2的運動指令,直到輸入端30切換到true
計數(shù)循環(huán):用計數(shù)循環(huán)(for循環(huán)語句)可使指令重復定義的次數(shù).循環(huán)的次數(shù)借助與一個計數(shù)變量控制
程序流程圖:for循環(huán)語句
一個for循環(huán)語句舉例:將輸出端1至5依次切換到true.用整數(shù)(integer)變量i來對一個循環(huán)語句內(nèi)的循環(huán)進行計數(shù).
當型循環(huán):while循環(huán)是一種當型或者先判斷型循環(huán),這種循環(huán)會在執(zhí)行循環(huán)的指令部分前先判斷終止條件是否成立.
while程序流程圖
while循環(huán)示例:輸出端17被切換為true,而輸出端18被切換為false,并且機器人移入home位置,但僅當循環(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,并且機器人移入home位置,這時才會檢測條件.
程序分支
條件性分支:條件性分支(if語句)由一個條件和兩個指令部分組成.如果滿足條件,則可處理第一個指令.如果未滿足條件,則執(zhí)行第二個指令.
但是,對if語句也有替代方案:
1.在誒二個指令部分可以省去:無else的if語句.由此,當不滿足條件時緊跟在分支后便繼續(xù)執(zhí)行程序.
2.多個if語句可相互嵌套(多重分支):問詢被依次處理,知道有一個條件得到滿足.
程序流程圖:if分支
if語句舉例:如果滿足條件(輸入端30必須為true),則機器人運動到點p3,否則到點p4
多分支結(jié)構(gòu):一個switch分支語句是一個分配器或多路分支.此處首先分析一個表達式.然后,該表達式的值與一個案例段(case)的值進行比較.值一致時執(zhí)行相應案例的指令.
程序流程圖:switch結(jié)構(gòu)
對帶有名稱”狀態(tài)”的整數(shù)變量(integer),首先要檢查其值.如果變量的值為1,則執(zhí)行案例1(case1):機器人運動到點5.如果變量的值為2.則執(zhí)行案例2(case2):德國kuka機器人運動到點p6.如果變量的值未在任何案例中列出(在該例中為1和2以外的值),則將執(zhí)行默認分支:故障信息.