基於圖像化程式編譯工具Blockly 之運動控制技術

作者:

周佑儒、李宜靜、陳世剛、李桂銘

刊登日期:2023/06/29

摘要:在發展多軸運動控制系統時,開發者通常需要撰寫程式的背景與邏輯概念,門檻相對高,有鑑於此,工研院機械所開發了圖像化MCCL運動控制函式庫,藉由Blockly將程式具像化為積木進行拖曳和組合,取代手動輸入程式碼,以降低初學者的程式開發門檻,增進產業的專案開發效率,並使運動控制輕易上手與快速應用;本文將介紹MCCL結合Blockly的圖像化運動控制函式庫,講述如何透過以積木程式編輯器來取代一般撰寫程式碼的方式執行運動控制命令,讓使用者可以達成快速開發運動控制系統的目的。
Abstract:Computational thinking and programming experience are required for developers when building multi-axis motion control systems, so the threshold of development is relatively high. In light of this, ITRI MMSL developed the graphical motion control command library (MCCL), which adopts Blockly to visualize programs into blocks for dragging and linking while replacing programming manually, and it can lower the educating threshold, boost the efficiency of project development among industries, and make motion control handled easier and applied faster. This article introduces the graphical motion control program of MCCL combining Blockly, explaining how to execute motion commands by stacking blocks instead of writing the general code so that users can develop motion control systems quickly.

關鍵詞:Blockly積木程式編輯器、圖像化編譯界面、MCCL運動控制函式庫
Keywords:Blockly, Graphical programming interface, MCCL

前言
現今開發能讓初學者上手的程式可說日益遽增,而低程式碼開發平台 (Low-code Development Platform, LCDP) 已經在產業中快速成長,在傳統的程式開發環境,如第三代程式語言C、C++與C#等,會以程序導向語言的形式做開發,主要包含過程與函式呼叫,以典型的C語言為例,在程式編輯中包含宣告、邏輯運算、函數與運算符號等複雜的語法[1],其僵化與嚴謹的語法對初學者相對難以上手,一個開發更方便的工具勢在必行,在第四代程式語言的目標會以非程序導向語言的方向來改善其抽象化程度與軟硬體整合,而在第五代程式語言則更使用自然語言來做開發,加深人機整合與程式自動化,啟發了程式自動化和圖像化程式編輯的概念,在其概念下Forrester於2014年時提出了低程式碼平台LCDP的雛形,在後續的時間LCDP的數量以雨後春筍般的速度增加;LCDP的目的為在當缺少專業開發人員時,依舊能達成商業資訊系統的核心目標[2],根據研究公司做的統計資料[3],其市場規模會從2020年時的132億美元,五年後將成長到至455億美元,成長幅度可達到3倍以上,原因可歸類於其特色:1.相對快速的程式開發。2.減少開發者與客戶之間的認知差異,以增加系統管理的效率[4]。LCDP會以圖形使用者介面 (Graphical User Interface, GUI) 上建立開發環境,並使用視覺化程式設計語言 (Visual Programming Language, VPL),而非使用複雜而艱深的文字編輯方法,低程式編輯可使開發者降低思考文法或語意,增加在功能性的驗證與開發,同時也降低除錯與建置的時間;而在開發的方法中,可分為:
1.模型驅動的軟體開發方法。
2.快速應用程式開發。
3.程式碼產生自動化。
4.視覺化程式設計語言[5]。
在目前的LCDP中,Forrester報告中提出著名且占有市場龍頭地位的Microsoft PowerApps、以及Mendix與OutSystems等[6-7]。
而在低程式碼的基礎上,為更便利使用,而研發出了無程式碼開發平台 (No-code Development Platform, NCDP),其目標為使用者只需邏輯性的思考程式功能而無須程式編輯的知識即可做程式開發[8],為了達成去程式碼的目的,NCDP也會以GUI與VPL來做程式開發,如Scratch與Blockly等視覺化應用程式[9-10],將程式碼以積木的形式做包裝,使用者可用積木組合的形式來做程式編輯[10],堆砌好的積木可以透過自動轉成相對應的程式語言,如Lua (一種腳本語言),LCDP/NCDP其優勢在於:1.節省時間,降低開發門檻,一般未經專業訓練的人員也可參與程式開發。2.提高效率,人員只需專注於建置程式,無須關注語法等瑣碎的事項。LCDP/NCDP的出現將原本複雜的程式開發注入新的活水,要如何將既有的模型、程式或平台轉換到LCDP/NCDP將會是一大挑戰。以Blockly為例,開發者需定義所需的積木方塊,其積木會透過GUI呈現給使用者做程式編輯 (積木組合),定義好的積木裡應包含特定的函式與定義值等,再透過所需的程式語言轉譯成相對的程式碼,後續執行轉譯後的程式代碼;在程式的執行路徑中,會有多層的轉譯與呼叫,目的為將複雜的程式代碼包裝成簡易的GUI與VPL,然而在包裝與轉換的途中,會產生多項限制,主要的缺點可分為:
1.研發成本高,開發者需付出研發成本且使用者也需要再購買相對應的LCDP/NCDP。
2.客製化程度相對限制,無法將所有模組搬到LCDP/NCDP。
3.執行速度相對慢,因為有額外的資料須處理與複雜的程式圖像化過程。
4.對於複雜且耗時的程式,難以或無法用LCDP/NCDP 來達成,故無法執行相對複雜的任務。
5.相對複雜的程式維護,多步驟的轉換將產生無法預測的錯誤,需要更多的除錯時間。
6.複雜的整合環境,開發者需要多設計使用者介面,並將資料與運算整合在程式中[11]。
而在LCDP/NCDP的產業運用中,以本文專注的運動控制系統為例,文獻指出在目前的控制系統中,其平台如用Blockly等LCDP/NCDP,可以為產業創造價值與達到教育訓練目的[12-13],Kapila等人[13]也指出如果使用Blockly來做運動控制與C語言的教育訓練,七成以上的受試者 (未經專業訓練) 可以因使用過平台而了解C語言與運動控制的運用,更有九成的受試者可以熟悉LCDP/NCDP的操作流程與圖像式程式開發。由結果可得知LCDP/NCDP其簡易好上手的特性在運動控制程式開發上的優勢,本文將以工研院機械所開發之運動控制函式庫MCCL[14]導入LCDP/NCDP的設計概念,以結合Blockly開發圖像化的運動控制函式庫,提供更友善的系統開發,以六軸運動控制卡(Exquisite Positioning Control Inputs and Outputs, EPCIO)為例,進一步說明如何使用圖像化的運動控制函式庫開發運動控制系統;將原本在開發環境上複雜的人機介面與運動函式庫,化繁為簡地使用腳本語言Lua轉換成簡易的積木,並以積木拖曳與堆疊來達成完整的運動控制,包含程式設計、運動控制卡的使用與相關軟硬體控制等,加速產業開發運動控制系統與產品多樣化。

…本文未結束

更完整的內容 歡迎訂購 2023年7月號 484期

機械工業雜誌‧每期240元‧一年12期2400元

我要訂購