二維碼
工博士官方客服微信
聯(lián)系方式
聯(lián)系方式
電話:18621383605
服務(wù)時(shí)間 8:30~18:00
返回首頁
回到頂部
干貨分享:庫卡機(jī)器人編程思維模式——結(jié)構(gòu)化
2017-12-04 15:05:04
1.采用統(tǒng)一編程方法的目的
采用統(tǒng)一編程方法,以便:
通過嚴(yán)密的分段結(jié)構(gòu)方便地解決復(fù)雜的問題
以清晰易懂的方式展示基本方法(無需深度編程知識(shí))
提高維護(hù)、修改和擴(kuò)展程序的效率
前瞻性程序規(guī)劃可:
使復(fù)雜的任務(wù)得以分解成幾個(gè)簡(jiǎn)單的分步任務(wù)
降低編程時(shí)的總耗時(shí)
使相同性能的組成部分得以更換
單獨(dú)開發(fā)各組成部分
對(duì)一個(gè)機(jī)器人程序的 6 個(gè)要求:
1. 高效
2. 無誤
3. 易懂
4. 維護(hù)簡(jiǎn)便
5. 清晰明了
6. 具有良好的經(jīng)濟(jì)效益
二、創(chuàng)建結(jié)構(gòu)化機(jī)器人程序的輔助工具
注釋有什么用處?
注釋是在編程語言中補(bǔ)充/ 說明的部分。所有編程語言都由計(jì)算機(jī)指令(代碼)和對(duì)文本編輯器的提示(注釋)組成。
如果進(jìn)一步處理源程序(編譯、解釋等)時(shí),處理軟件則會(huì)忽略注釋,因此不會(huì)影響結(jié)果。
在 KUKA 控制器中使用行注釋,即注釋在行尾自動(dòng)結(jié)束。
單憑注釋無法使程序可讀,但它可以提高結(jié)構(gòu)分明的程序的可讀性。程序員可通過注釋在程序中添加說明、解釋,而控制器不會(huì)將其理解為句法。
程序員負(fù)責(zé)使注釋內(nèi)容與編程指令的當(dāng)前狀態(tài)一致。因此在更改程序時(shí)還必須檢查注釋,并在必要時(shí)加以調(diào)整。
注釋的內(nèi)容以及其用途可由編輯人員任意選擇,沒有嚴(yán)格規(guī)定的句法。通常以“ 人類”語言書寫注釋,或使用作者的母語或常用語言。
對(duì)程序內(nèi)容或功能的說明
內(nèi)容和用途可任意選擇
改善程序的可讀性
有利于程序結(jié)構(gòu)化
注釋的時(shí)效性由程序員負(fù)責(zé)
KUKA 使用行注釋
控制器不會(huì)將注釋理解為句法
在什么時(shí)候和什么地方使用注釋?
關(guān)于整個(gè)源程序的信息:
作者可在源程序開頭處寫上引言,包括作者說明、授權(quán)、創(chuàng)建日期、出現(xiàn)疑問時(shí)的聯(lián)系地址以及所需其它文件的列表等等。
源程序的分段:
標(biāo)題和段落可以這樣標(biāo)出。在此通常不僅會(huì)使用語言表達(dá)方式,而且還使用可由文字轉(zhuǎn)換為圖形的方式。
單行的說明:
這樣可以說明文本段(例如程序行)的工作原理或含義,以便于其他人或作者本人以后理解。
對(duì)需執(zhí)行的工作的說明:
注釋可以標(biāo)記不完整的代碼段,或者標(biāo)記完全沒有代碼段的通配符。
變?yōu)樽⑨專?/span>
如要臨時(shí)刪除以后可能還會(huì)重新使用的代碼組成部分,則要將其變?yōu)樽⑨尅V?/span>要代碼段包含在注釋中,則編譯器就不再將其視為代碼,即實(shí)際上代碼已經(jīng)不再存在。
在機(jī)器人程序中使用 FOLD 有什么作用?
在 FOLD 里可以隱藏程序段
FOLD 的內(nèi)容對(duì)用戶來說是不可見的
FOLD 的內(nèi)容完全如通常情況在程序運(yùn)行流程中得到處理
通過使用 Fold 可改善程序的可讀性
Fold 應(yīng)用示例有哪些?
在 KUKA 控制器上通常由系統(tǒng)使用準(zhǔn)備好的 Fold,例如在顯示聯(lián)機(jī)表單時(shí)。這些 Fold 使聯(lián)機(jī)表單中輸入的值更為簡(jiǎn)潔明了,并為操作人員隱藏?zé)o關(guān)的程序段。
除此之外,用戶(專家用戶組以上)還可以創(chuàng)建自己的 Fold。這些 Fold 例如可以由程序員使用,使用時(shí)雖然可以通知操作人員在程序的一定位置處發(fā)生的事件,但在后臺(tái)仍保持實(shí)際的 KRL 句法。Fold 通常在創(chuàng)建后首先顯示成關(guān)閉狀態(tài)。
為什么要使用子程序技術(shù)進(jìn)行工作?
在編程中,子程序主要用于實(shí)現(xiàn)相同任務(wù)部分的多次使用,從而避免程序碼重復(fù)。另外,采用子程序后也可節(jié)省存儲(chǔ)空間。
使用子程序的另一個(gè)重要原因是由此會(huì)使程序結(jié)構(gòu)化。
子程序應(yīng)該能夠完成包含在自身內(nèi)部并可解釋詳明的分步任務(wù)。
子程序現(xiàn)在主要是通過其簡(jiǎn)潔明了、條理清晰的特點(diǎn)而使得維護(hù)和排除程序錯(cuò)誤,更為方便,因?yàn)楝F(xiàn)代計(jì)算機(jī)內(nèi)部用于調(diào)用子程序的時(shí)間和管理成本實(shí)際上已經(jīng)無足輕重了。
可以多次使用
避免程序碼重復(fù)
節(jié)省存儲(chǔ)空間
各組成部分可單獨(dú)開發(fā)
隨時(shí)可以更換具有相同性能的組成部分
使程序結(jié)構(gòu)化
將總?cè)蝿?wù)分解成分步任務(wù)
維護(hù)和排除程序錯(cuò)誤更為方便
子程序的應(yīng)用
指令行的縮進(jìn)有什么作用?
為了便于說明程序模塊之間的關(guān)系,建議在程序文本中縮進(jìn)嵌套的指令列,并
一行緊挨一行地寫入嵌套深度相同的指令。
所獲得的效果只是體現(xiàn)在外觀上,它只與作為人與人之間交流方式的程序可讀
性有關(guān)。
合理命名的數(shù)據(jù)名稱有什么作用?
為了能夠正確解釋機(jī)器人程序中的數(shù)據(jù)和信號(hào)函數(shù),應(yīng)在為其命名時(shí)使用意義明確的概念。其中包括:
輸入和輸出信號(hào)的長(zhǎng)文本名稱
工具與基坐標(biāo)的名稱
輸入和輸出的信號(hào)協(xié)定
點(diǎn)的名稱
3 如何創(chuàng)建程序流程圖
什么是程序流程圖(PAP)?
程序流程圖 (PAP) 是一個(gè)程序的流程圖,也稱為程序結(jié)構(gòu)圖。它是在一個(gè)程序中執(zhí)行某一算法的圖示,描述了為解決一個(gè)課題所要進(jìn)行的運(yùn)算之順序。程序流程圖中所用的圖標(biāo)在 DIN 66001 標(biāo)準(zhǔn)中作了規(guī)定。程序流程圖也常常用于圖示過程和操作,與計(jì)算機(jī)程序無關(guān)。
與基于代碼的描述相比,提高了程序算法的易讀性,因?yàn)橥ㄟ^圖示可明顯地便于識(shí)別結(jié)構(gòu)。
以后轉(zhuǎn)換成程序代碼時(shí)可方便地避免結(jié)構(gòu)和編程錯(cuò)誤,因?yàn)槭褂谜_的程序流程圖 PAP 時(shí)可直接轉(zhuǎn)換成程序代碼。同時(shí),創(chuàng)建程序流程圖時(shí)將得到一份待編制程序的文獻(xiàn)。
用于程序流程結(jié)構(gòu)化的工具
程序流程更加易讀
結(jié)構(gòu)錯(cuò)誤更加易于識(shí)別
同時(shí)生成程序的文獻(xiàn)
程序流程圖圖標(biāo)
如何創(chuàng)建程序流程
用戶總是希望問題會(huì)逐步得到細(xì)化,直至制定出的組成部分清楚到可以轉(zhuǎn)換成KRL 程序,在依次逐步開發(fā)的過程中出現(xiàn)的設(shè)計(jì)方案會(huì)不斷地深化細(xì)節(jié)。
1. 在約 1 至 2 頁的紙上將整個(gè)流程大致地劃分
2. 將總?cè)蝿?wù)劃分成小的分步任務(wù)
3. 大致劃分分步任務(wù)
4. 細(xì)分分步任務(wù)
5. 轉(zhuǎn)換成 KRL 碼
4、練習(xí)制定程序流程
成功完成此練習(xí)后,您可執(zhí)行下列操作:
將總?cè)蝿?wù)分解成分步任務(wù)
細(xì)化粗略的分段
創(chuàng)建程序流程圖 (PAP)
為成功完成此練習(xí),必須滿足以下前提條件:
具有有關(guān)編程方法的理論知識(shí)
機(jī)器人的任務(wù)是將塑料制品從一臺(tái)注塑機(jī)中取出。制品用真空吸盤吸住,再堆放到注塑機(jī)旁的一臺(tái)間歇輸送機(jī)上
1. 注塑機(jī) (SGM) 完成了一件制品后,其門打開。
2. 在進(jìn)行了門限位開關(guān)的檢查后機(jī)器人運(yùn)行到取料位置,并抓取構(gòu)件。
3. 頂料器將構(gòu)件從模具中頂出。
4. 現(xiàn)在,機(jī)器人從機(jī)器中駛出,頂料器重又收回。
5. 一旦機(jī)器人安全地駛離機(jī)器,便可關(guān)上門,生產(chǎn)一個(gè)新的部件。
6. 完成的構(gòu)件現(xiàn)在被放到間歇運(yùn)輸機(jī)上空著的位置處。
7. *后,間歇運(yùn)輸機(jī)一直運(yùn)行到又有堆放位置空出來為止。
練習(xí)內(nèi)容
1. 將任務(wù)劃分為合理的程序模塊
2. 再次細(xì)化您的粗略分段
3. 創(chuàng)建程序流程圖