程式頁面#
點選導覽列「程式」進入程式頁面。程式頁面可以管理程式清單、編輯程式、執行程式。
程式列表頁#
列表頁用來管理目前啟動工程內的所有程式。如圖為程式清單頁面,顯示了程式根目錄下的所有程式及資料夾。

選取資料夾,點選右邊的 按鈕,點選“進入程式”,可切換到該檔案目錄,查看該資料夾下的所有程式及資料夾。
勾選程序,右側「程式預覽」區可顯示程式的內容,點選「進入程式」可開啟程式。
左上方可顯示目前所在的目錄,如圖。點選「返回上層」按鈕返回上層目錄,點選路徑可切換目錄,點選 可切換至根目錄。

新建程式#
點選「新程式」按鈕,可彈出鍵盤,輸入程式名,點選「OK」即在目前資料夾下建立了程式。

新建資料夾#
點選「新資料夾」按鈕,可彈出鍵盤,輸入資料夾名,點選「OK」即在目前資料夾下方建立了一個資料夾。
程式文件操作#
點選清單項目右邊的 按鈕,可彈出式選單框如下圖所示:

對於程式檔案來說,可執行如下操作:
進入程式
點擊可開啟程式。
複製
點選「複製」按鈕,將複製該程式文件,程式清單頁面如下,此時可選擇貼上貼文的位置,點選「貼上貼文」按鈕,即可將程式複製到目前資料夾,點選「取消」按鈕取消複製。貼上貼文時,若目前資料夾有同名文件,將自動在後面加上「_copyXX」後綴


重新命名
點選「重新命名」按鈕,會彈出鍵盤,輸入新的名稱後,確定即可修改。 注意:已經開啟的程式或正在執行的程式不能重新命名。

刪除
點選「刪除」按鈕,跳出確定對話框,確定後即可刪除該程式
注意:已經開啟的程式或正在執行的程式不能刪除。
導出
可以將程式檔案匯出到USB上,詳見程式的匯入匯出
儲存至本地
可以將程式檔案透過瀏覽器下載到本機
資料夾操作#
點選資料夾項目右邊的按 鈕,彈出的選單可執行以下操作:進入程式、重新命名、匯出資料夾、刪除。
進入程式
點擊可切換到該資料夾,查看該資料夾下的所有程式及子資料夾。
重新命名
可進行資料夾的重新命名。注意:若該資料夾下有已開啟的程式或正在執行的程序,則無法重新命名。
匯出資料夾
可以將整個程式資料夾壓縮成壓縮包匯出到USB。
刪除
可刪除資料夾下的所有內容。如該資料夾下有已開啟的程式或正在執行的程序,則無法刪除。
程式的導入導出#
支援從外部設備匯入程式、資料夾或匯出程式、資料夾到外部設備中,外部設備指接入控制櫃USB連接埠的儲存設備,如USB、行動硬碟等。
程式/資料夾導入
點選「匯入」按鈕,彈出以下窗口,顯示目前控制櫃上掛載的USB儲存設備,選擇一個設備。

頁面上將顯示該裝置中的資料夾及符合條件的文件(後綴名為jspf或script或program),選取一個文件,點選「選擇」按鈕,則會將該文件或檔案壓縮包(後綴名為program )解壓縮後,導入控制櫃。當匯入檔案時,若檢查到與控制櫃上的程式檔案剛好重名,則會彈出重命名提示框,重新命名後匯入控制櫃。


當匯入資料夾(後綴名為program)時,有重名文件,會提示重名文件數量,使用者可操作「取消」或「直接覆蓋」。

程式/資料夾匯出
在程序清單頁選取一個程序,在其互動操作選單中選擇“匯出”,則會執行匯出操作。與導入類似,此時將彈出視窗顯示目前控制櫃上掛載的USB儲存裝置。勾選設備後,可以查看該設備的檔案及資料夾,選擇匯出的資料夾,確定後即可將程式匯出到裝置的該資料夾下。若匯出的程式檔案與裝置中的檔案剛好同名,則會彈出如下視窗。使用者可選擇取消匯出,或修改匯出名稱後重新匯出,或直接覆寫裝置中的檔案。若選擇的是資料夾,則會以該資料夾名稱為命名,打包資料夾並壓縮成“資料夾名稱.program”,該壓縮包包含本級資料夾。

點擊程式清單頁上方「匯出」按鈕,會將目前目錄下的所有檔案與資料夾打包到壓縮包中,壓縮包名稱為「目前程式清單名稱.program」並匯出到外部裝置的指定路徑下。此壓縮包不包含本級資料夾。與匯出程式類似,存在同名檔案時,同樣會彈同名操作提示框。
程式設計#
整體佈局#
在程式清單頁新建程式或開啟程式後,可進入程式頁面,如下圖。
程式頁面左側為程式設計區,可進行程式樹的編輯。右側可分為五個部分:「指令」標籤頁是功能塊清單區,顯示了可用的圖形化程式設計功能塊;「程式變數」標籤頁是程式變數區,可建立程式變量,程式執行時,監控程式變量,也可對程式變數名稱依照字母排序,以及選擇是否進行變數監控;「系統變數」標籤頁是顯示系統變數的初始值,以及程式執行時間監控系統變數的目前值,同樣地可將系統變數名稱依字母排序;「參數」標籤頁是參數配置區,檢視及編輯程式樹中選取的功能塊參數;「模擬」標籤頁是顯示機器人的3D模型。
其中,點選「指令」標籤頁中「移動」、「基礎」、「流程控制」、「通訊」、「進階」、「擴充」任一類功能塊清單區的功能塊右邊|H| 圖示可彈出操作對話框,點選該操作對話框中「加入常用」的按鈕,可將該指令塊新增至「常用」類別;點選「常用」類別功能塊清單區的功能塊右邊|H| 圖示也會彈出操作對話框,點選彈出操作對話框中「移除」按鈕,可將該指令塊移除「常用」類別。

左側上方顯示目前程式名稱,程式名稱後面的*表示程式有改動。點選程式名稱所在顯示框任一區域,顯示框下方會出現下拉框顯示已開啟的程式清單。

如上圖所示,已開啟的程序清單顯示了目前系統中有兩個開啟的程序,點擊下拉框裡名稱右側的|A| 按鈕可以關閉該程序;點擊下拉方塊清單項目列可切換至對應程序。
關閉程式時,若程式有改動,會跳出對話方塊提示儲存程式或放棄修改。
程式設計操作#
程式設計採用拖曳和雙擊添加的方式。
拖曳的方式: 可以按住功能區塊清單區的功能區塊,拖曳到程式設計區,程式樹對應的位置將會顯示藍色橫線表示功能區塊將插入該處。鬆開即在該處新增了一個功能塊。當拖曳功能區塊到程式樹對應位置顯示紅色橫線時,表示此功能區塊無法插入該處,且放開後會彈框提示。
雙擊新增:點選程式樹的任一功能區塊可選中該功能區塊,此時雙擊功能區塊清單區中的功能區塊,清單區中的功能區塊將會新增至程式樹選取功能區塊的下方。 (注意:移動設備端不支援雙擊操作)
支援直接拖曳程式樹中的功能塊到其他位置。
選取某個功能塊,手動切換到參數配置區,配置該功能塊的參數,各個功能塊及其對應的參數配置頁面參考後面內容。

程式樹中的功能塊有以下五種狀態,紅色代表該功能塊未配置有效的參數;斜體加*代表該功能塊的參數發生改動,但是未保存到程序樹中;黑色正體代表該功能塊是參數有效、無改動;功能塊部分灰顯代表已選取可進行拖曳的狀態;功能塊全部灰顯代表此功能塊設定為不啟用。





點選程式樹功能塊右邊 可跳出如下操作對話框。包含以下操作

剪下:剪下該功能塊。
複製:複製該功能塊。
黏貼:可以將複製的功能塊貼文到選取功能塊的下方。
不啟用/啟用:點選可以選擇是否啟用該功能塊,選擇不啟用時,該功能塊灰顯,程式不會執行該功能塊。
批量操作:可以進行功能塊的批量複製、批量剪切、建立群組、批量啟用、批量禁用、批量刪除。選取任一功能區塊批次操作,該功能區塊行號處會出現|B| 被選取圖標,且與該功能區塊屬於同一個層級的功能區塊行號處出現多選框圖標,選取其中任一功能區塊,會自動選取該功能區塊和初始功能區塊之間的所有功能區塊。並且,只能選取同一層級的功能區塊,不能選取跨越父級的功能區塊。

批次複製: 點擊後,選擇需要貼上的位置,貼上
批次剪下: 點擊後,選擇需要貼上的位置,貼上
批次啟用: 對選取的功能區塊都啟用
批次停用: 選取的功能區塊都停用
批次刪除: 刪除選取的功能區塊
建立群組: 將選取的功能區塊建立為群組:若選取的都為Move子區塊,則將建立新的Move區塊, Move區塊參數和原Move區塊參數一致;否則將建立一個Group區塊


刪除:可以刪除該功能塊。
選取此行為運行起始行: 點選可選取該功能區塊為執行起始行,此時該功能區塊的前方將會有圖示|C| 此時執行程序,程式將從該功能區塊處往下執行。點選右側上方的「取消選取行」可以取消起始行的設定。
在程式編輯過程中,可隨時透過頁面左側上方的 和
圖示來撤銷修改或復原修改。注意:撤銷修改最多支援撤銷10次。
一旦程式樹發生了改動,目前程式名稱後面會顯示*,表示程式有改動,此時可以透過頁面左側上方 圖示將程式儲存到控制器。
功能塊及參數配置#
功能塊清單區顯示了目前可用的圖形化編程功能塊,這些功能塊根據機器人編程常用的場景封裝而來。本系統提供的功能塊及其配置參數如下。
Start功能區塊#
機器人初始關節位置設定。當開啟此功能區塊,程式運作時,會進行初始關節位置判斷。若停用該功能塊,則會從目前所在的位置直接執行程式。
建議主程式始終開啟該功能塊,子程式可根據情況關閉該功能塊。

移動功能塊#
在拖曳MoveJ、MoveL等運動類別功能塊到程式樹中,若沒有Move節點,將自動建立一個Move功能塊。這個功能塊可以用來批次設定其子節點的運動參數和座標系,含有以下參數:
末端速度:單位mm/s,取值範圍為[0.01,5000];
末端加速度:單位mm/s2,取值範圍為[0.01,Infinity];
關節角速度:單位°/s,取值範圍為[0.01,225];
關節角加速度:單位°/s2,取值範圍為[0.01,Infinity];
融合半徑:單位mm,取值範圍為[0,Infinity];
參考座標系:工具座標系、工件座標系,可手動變更。
其中,末端速度、末端加速度、關節角速度和關節角加速度均可使用自訂直接輸入數值的方式或選擇變量,末端加速度和關節角加速度也可以選擇系統預設。當末端加速度或關節角加速度選擇為系統預設時,運動規劃將採用演算法計算的最優規劃。注意:「自訂」時才會顯示對應參數的單位;選擇變數時,只能選擇特定類型變量,末端速度只能選擇pose_speed類型變量,末端加速度只能選擇pose_acc類型變量,關節角速度只能選擇joint_speed類型變量,關節角加速度只能選擇joint_acc類型變數。
產生Move功能塊時,預設會取得Move的所有父節點是否有設定參考座標系,若無將使用系統目前設定的座標系。例如傳送帶功能塊有設定的參考座標系,也就是標定的傳送帶座標系,所以拖曳Move類功能塊到傳送帶子節點時,產生的Move功能塊預設使用傳送帶的座標系。
Move功能塊設定的笛卡爾空間運動參數只針對MoveL、MoveC、MoveTCP、MoveWobj、MoveSpiral功能塊,對其他子功能塊無影響;設定的關節運動參數只針對MoveJ功能塊,對其他子功能塊無影響。
Move功能塊設定的參考座標系只針對MoveJ、MoveL、MoveC、MoveTCP、MoveWobj、MoveSpiral功能塊,對其他功能塊無影響。

具體的控制機器人運動的功能塊,有以下類型:
MoveJ
機器人以關節移動的方式移動,可以選擇移動到目標關節或目標姿勢。可設參數:
目標關節:目標使用關節位置,可透過示教的方式設定或設定為變量,示教設定後可手動變更;
目標姿態:目標使用末端位置,可以透過示教的方式設定或設定為變量,示教設定後可手動更改
示教:記錄目標點位,點擊將跳到移動頁面,在移動頁面移動機器人後,點擊「記錄當前關節」按鈕,將跳回程式頁面,並設定點位
記錄目前點:點擊後,將目前點位設定為目標點
移動到此點: 點擊“移動到此點”,程式頁面右側將跳到“模擬”頁面。在仿真頁面右下方將出現「按住移動」按鈕。功能與概覽頁面的「按住移動」相同,詳情請參閱概覽頁面。
小技巧
注意: 當使用目標姿態時,從不同的機器人初始位姿使用「移動到此點」功能,會出現最終位姿一致,但機器人構型不一致,即關節位置不一致。可以透過觀察灰透3D模型判斷構型是否正確
小技巧
注意: 當使用目標姿態時,若腳本運行過程中運行到此腳本時機器人實際關節位置與試教時機器人的關節位置處於不同的選解空間,則會報錯“機器人當前關節位置與試教參考關節位置選解不一致”
使用父節點座標系:選擇目標位置姿態時可設,勾選時,此功能區塊使用父節點Move功能區塊設定的參考座標系,預設勾選;
參考座標系:選擇目標位置姿態時可設,不勾選使用父節點座標系時,可單獨為此功能塊設定其參考座標系;
使用父節點參數:勾選時,此功能塊使用父節點Move功能塊設定的關節角速度、關節角加速度參數;不勾選時,需另外為功能塊設定關節角速度、關節角加速度,預設為勾選;
關節角速度:單位°/s,可自訂或選擇變量,自訂取值範圍為[0.01,225];
關節角加速度:單位°/s2,可自訂或選擇變量,自訂取值範圍為[0.01,Infinity];
使用父節點融合半徑:勾選時,此功能區塊使用父節點Move功能區塊設定的融合半徑參數;不勾選時,需單獨為此功能區塊設定融合半徑,預設為勾選;
融合半徑:單位mm,取值範圍為[0,Infinity],0表示不融合;
小技巧
注意: 不合適的融合半徑,會導致軌跡抖動,需要根據實際情況調整
小技巧
注意: 過小的融合半徑長度可能會導致軌跡無法正常融合,若出現融合取消的情況,在確保不影響運動正常邏輯的情況下,優先使用MotionConfig色塊配置融合預讀取參數為“運動起點” 。若依舊無法達到預期的融合效果,則應適當降低目前軌跡運行速度或增加目前軌跡的路徑長度,確保軌跡路徑長度運行時長至少不小於100ms
啟用OP:OP功能可以在軌跡執行過程中設定通用數位輸出口狀態或設定工具輸出狀態或操作自訂事件。

若啟用OP,則需要做以下配置:
可以在軌跡開始後觸發和軌跡結束前/結束後觸發
觸發類型:可選擇不觸發、時間觸發、距離觸發
觸發延時:設定時間,單位ms
觸發操作:選擇連接埠及連接埠狀態,或操作自訂事件


MoveL
機器人依照直線移動到目標姿態,可設參數:
目標姿態:可透過示教的方式設定或設定為變量,示教設定後可手動變更;
示教:記錄目標點位,點擊將跳到移動頁面,在移動頁面移動機器人後,點擊「記錄當前關節」按鈕,將跳回程式頁面,並設定點位
記錄目前點:點擊後,將目前點位設定為目標點
移動到此點: 點擊“移動到此點”,程式頁面右側將跳到“模擬”頁面。在仿真頁面右下方將出現「按住移動」按鈕。功能與概覽頁面的「按住移動」相同,詳情請參閱概覽頁面。
小技巧
注意: 從不同的機器人初始位姿使用「移動到此點」功能,會出現最終位姿一致,但機器人構型不一致,即關節位置不一致。可以透過觀察灰透3D模型判斷構型是否正確
小技巧
注意: 若腳本運行過程中運行到此腳本時機器人實際關節位置與試教時機器人的關節位置處於不同的選解空間,則會報錯“機器人當前關節位置與試教參考關節位置選解不一致”
使用父節點座標系:勾選時,此功能區塊使用父節點Move功能區塊設定的參考座標系,預設勾選;
參考座標系:不勾選使用父節點座標系時,可單獨為該功能塊設定其參考座標系;
使用父節點參數:勾選時,此功能塊使用父節點Move功能塊設定的末端速度、末端加速度參數;不勾選時,需單獨為此功能塊設定末端速度、末端加速度,預設為勾選;
末端速度:單位mm/s,可自訂或選擇變量,自訂取值範圍為[0.01,5000];
末端加速度:單位mm/s2,可自訂或選擇變量,自訂取值範圍為[0.01,Infinity];
使用父節點融合半徑:勾選時,此功能區塊使用父節點Move功能區塊設定的融合半徑參數;不勾選時,需單獨為此功能區塊設定融合半徑,預設為勾選;
融合半徑:單位mm,取值範圍為[0,Infinity],0表示不融合;
小技巧
注意: 不合適的融合半徑,會導致軌跡抖動,需要根據實際情況調整
小技巧
注意: 過小的融合半徑長度可能會導致軌跡無法正常融合,若出現融合取消的情況,在確保不影響運動正常邏輯的情況下,優先使用MotionConfig色塊配置融合預讀取參數為“運動起點” 。若依舊無法達到預期的融合效果,則應適當降低目前軌跡運行速度或增加目前軌跡的路徑長度,確保軌跡路徑長度運行時長至少不小於100ms
啟用OP:OP功能可以在軌跡執行過程中設定通用數位輸出口狀態或設定工具輸出狀態或操作自訂事件。

若啟用OP,則需要做以下配置:
可以在軌跡開始後觸發和軌跡結束前/結束後觸發。
觸發類型:可選擇不觸發、時間觸發、距離觸發
觸發延時:設定時間,單位ms
觸發距離:設定距離,單位mm
觸發操作:選擇連接埠及連接埠狀態,或操作自訂事件

融合中的OP操作:
機器人在軌跡執行過程中設定通用數位輸出口狀態。與融合一起使用時,以三條moveL融合為例,其效果如下:

MoveC
機器人依圓弧或整圓移動,可設參數:
模式:圓弧或整圓;
中間點姿態/中間點1:可以透過示教的方式設定或設定為變量,示教設定後可手動變更;
目標姿態/中間點2:可透過示教的方式設定或設定為變量,示教設定後可手動變更;
示教:記錄目標點位,點擊將跳到移動頁面,在移動頁面移動機器人後,點擊「記錄當前關節」按鈕,將跳回程式頁面,並設定點位
記錄目前點:點擊後,將目前點位設定為目標點
移動到此點: 點擊“移動到此點”,程式頁面右側將跳到“模擬”頁面。在仿真頁面右下方將出現「按住移動」按鈕。功能與概覽頁面的「按住移動」相同,詳情請參閱概覽頁面。
小技巧
注意: 從不同的機器人初始位姿使用「移動到此點」功能,會出現最終位姿一致,但機器人構型不一致,即關節位置不一致。可以透過觀察灰透3D模型判斷構型是否正確
小技巧
注意: 若腳本運行過程中運行到此腳本時機器人實際關節位置與試教時機器人的關節位置處於不同的選解空間,則會報錯“機器人當前關節位置與試教參考關節位置選解不一致”
使用父節點座標系:勾選時,此功能區塊使用父節點Move功能區塊設定的參考座標系,預設勾選;
參考座標系:不勾選使用父節點座標系時,可單獨為該功能塊設定其參考座標系;
使用父節點參數:勾選時,此功能塊使用父節點Move功能塊設定的末端速度、末端加速度參數;不勾選時,需單獨為此功能塊設定末端速度、末端加速度,預設為勾選;
末端速度:單位mm/s,可自訂或選擇變量,自訂取值範圍為[0.01,5000];
末端加速度:單位mm/s2,可自訂或選擇變量,自訂取值範圍為[0.01,Infinity];
使用父節點融合半徑:勾選時,此功能區塊使用父節點Move功能區塊設定的融合半徑參數;不勾選時,需單獨為此功能區塊設定融合半徑,預設為勾選;
融合半徑:單位mm,取值範圍為[0,Infinity],0表示不融合;
小技巧
注意: 不合適的融合半徑,會導致軌跡抖動,需要根據實際情況調整
小技巧
注意: 過小的融合半徑長度可能會導致軌跡無法正常融合,若出現融合取消的情況,在確保不影響運動正常邏輯的情況下,優先使用MotionConfig色塊配置融合預讀取參數為“運動起點” 。若依舊無法達到預期的融合效果,則應適當降低目前軌跡運行速度或增加目前軌跡的路徑長度,確保軌跡路徑長度運行時長至少不小於100ms
姿態控制模式:若選擇“與終點一致”,機器人的姿態根據終點姿態對圓弧路徑中的姿態進行規劃;若選擇“與起點一致”,機器人的姿態根據起點姿態對圓弧路徑中的姿態進行規劃,路徑過程中姿態與起點一致;若選擇“受圓心約束”,機器人的姿態相對於圓弧運動產生的姿態變化對姿態進行約束;
啟用OP:OP功能可以在軌跡執行過程中設定通用數位輸出口狀態或設定工具輸出狀態或操作自訂事件。
OP參數配置同MoveL

MoveTCP
機器人沿著工具座標系移動。
可以自訂各個方向的偏移量,或使用變數。可以示教兩個點位,以這兩個點位之間的偏移量作為移動的偏移值。其他可設參數:
使用父節點座標系:勾選時,此功能區塊使用父節點Move功能區塊設定的參考座標系,預設勾選;
參考座標系:不勾選使用父節點座標系時,可單獨為該功能塊設定其參考座標系;若選擇設定增量方式,只需選擇工具座標系;若選擇設定兩點方式,則需設定工具座標系和工件座標系;
使用父節點參數:勾選時,此功能塊使用父節點Move功能塊設定的末端速度、末端加速度參數;不勾選時,需單獨為此功能塊設定末端速度、末端加速度,預設為勾選;
末端速度:單位mm/s,可自訂或選擇變量,自訂取值範圍為[0.01,5000];
末端加速度:單位mm/s2,可自訂或選擇變量,自訂取值範圍為[0.01,Infinity];
使用父節點融合半徑:勾選時,此功能區塊使用父節點Move功能區塊設定的融合半徑參數;不勾選時,需單獨為此功能區塊設定融合半徑,預設為勾選;
融合半徑:單位mm,取值範圍為[0,Infinity],0表示不融合;
小技巧
注意: 不合適的融合半徑,會導致軌跡抖動,需要根據實際情況調整
小技巧
注意: 過小的融合半徑長度可能會導致軌跡無法正常融合,若出現融合取消的情況,在確保不影響運動正常邏輯的情況下,優先使用MotionConfig色塊配置融合預讀取參數為“運動起點” 。若依舊無法達到預期的融合效果,則應適當降低目前軌跡運行速度或增加目前軌跡的路徑長度,確保軌跡路徑長度運行時長至少不小於100ms
啟用OP:OP功能可以在軌跡執行過程中設定通用數位輸出口狀態或設定工具輸出狀態或操作自訂事件。
OP參數配置同MoveL

MoveWobj
使機器人末端工具沿著工件座標系軸向進行增量運動,運動方向與工件座標系軸所在方向平行。
可以自訂各個方向的偏移量,或使用變數。可以示教兩個點位,以這兩個點位之間的偏移量作為移動的偏移值。 其他可設參數:
使用父節點座標系:勾選時,此功能區塊使用父節點Move功能區塊設定的參考座標系,預設勾選;
參考座標系:不勾選使用父節點座標系時,可單獨為該功能塊設定其參考座標系; 若選擇設定增量方式,只需選擇工件座標系;若選擇設定兩點方式,則需設定工具座標系和工件座標系;
使用父節點參數:勾選時,此功能塊使用父節點Move功能塊設定的末端速度、末端加速度參數; 不勾選時,需單獨為此功能塊設定末端速度、末端加速度,預設為勾選;
末端速度:單位mm/s,可自訂或選擇變量,自訂取值範圍為[0.01,5000];
末端加速度:單位mm/s2,可自訂或選擇變量,自訂取值範圍為[0.01,Infinity];
使用父節點融合半徑:勾選時,此功能區塊使用父節點Move功能區塊設定的融合半徑參數; 不勾選時,需單獨為此功能塊設定融合半徑,預設為勾選;
融合半徑:單位mm,取值範圍為[0,Infinity],0表示不融合;
啟用OP:OP功能可以在軌跡執行過程中設定通用數位輸出口狀態或設定工具輸出狀態或操作自訂事件。
OP參數配置同MoveL

Spline
控制機器人末端依照樣條曲線移動。可選擇自訂即直接示教點位,或選擇變量,且選擇變數時,只能選擇pose_list類型變量,其他可設參數:
樣條路點:新增、編輯、刪除路點,依路點產生樣條曲線;
參考座標系:示教點位時,預設為目前的工具和工件座標系,可手動變更;
末端速度:單位mm/s,可自訂或選擇變量,自訂取值範圍為[0.01,5000];
末端加速度:單位mm/s2,可自訂或選擇變量,自訂取值範圍為[0.01,Infinity];
融合半徑:單位mm,取值範圍為[0,Infinity],0表示不融合;
小技巧
注意: 不合適的融合半徑,會導致軌跡抖動,需要根據實際情況調整
小技巧
注意: 過小的融合半徑長度可能會導致軌跡無法正常融合,若出現融合取消的情況,在確保不影響運動正常邏輯的情況下,優先使用MotionConfig色塊配置融合預讀取參數為“運動起點” 。若依舊無法達到預期的融合效果,則應適當降低目前軌跡運行速度或增加目前軌跡的路徑長度,確保軌跡路徑長度運行時長至少不小於100ms
啟用OP:OP功能可以在軌跡執行過程中設定通用數位輸出口狀態或設定工具輸出狀態或操作自訂事件。
OP參數配置同MoveL


MotionConfig
開啟或關閉運動相關配置。可選配置:
速度優化:開啟速度優化後,機械手臂將在滿足系統約束的前提下,以盡可能高的速度執行運動指令;
振動控制:打開振動控制後,將會針對機器人末端振動進行最佳化;
奇異規避:打開奇異規避後,會在機器人經過奇異空間附近時,對軌跡自動優化;
姿態約束:開啟姿態約束後,機器人運動姿態將會與路徑間關係始終保持一致;
融合預讀取:可選運動中間點或運動起點,配置了融合半徑的運動腳本會根據此設定參數在對應的位置預先讀取後續腳本以進行融合半徑。



MoveSpiral
機器人做螺旋軌跡運動,可設參數:
螺旋示教方式:參數設定或結束點設定;
總圈數:機器人總旋轉圈數,正數為順時針旋轉,負數為逆時針旋轉;
螺旋線中心點:可透過示教的方式設定或設定為變量,示教設定後可手動變更;
軸向移動距離:示教方式為參數設定時,需配置的參數,正負號遵循右手定則,單位mm;
結束點半徑:示教方式為參數設定時,需配置的參數,單位mm;
軌跡結束點:示教方式為結束點設定時,可透過示教的方式設置,或設定為變量,示教設定後可手動變更;
使用父節點座標系:勾選時,此功能區塊使用父節點Move功能區塊設定的參考座標系,預設勾選;
參考座標系:不勾選使用父節點座標系時,可單獨為該功能塊設定其參考座標系;
使用父節點參數:勾選時,此功能塊使用父節點Move功能塊設定的末端速度、末端加速度參數;不勾選時,需單獨為此功能塊設定末端速度、末端加速度,預設為勾選;
末端速度:單位mm/s,可自訂或選擇變量,自訂取值範圍為[0.01,5000];
末端加速度:單位mm/s2,可自訂或選擇變量,自訂取值範圍為[0.01,Infinity];
啟用OP:OP功能可以在軌跡執行過程中設定通用數位輸出口狀態或設定工具輸出狀態或操作自訂事件。
OP參數配置同MoveL。

CombineMotion
僅針對直線及圓弧運動控制機器人做複合軌跡運動,可設參數:
軌跡類型:預設為三角,可選三角、正弦、圓弧、梯形、8字;
參考平面:預設為工具XOY,選用工具XOY、工具XOZ、工具YOZ、工件XOY、工件XOZ、工件YOZ;
頻率:預設值為1,單位Hz;
振幅:預設值為1,單位mm;
主路徑同步停留:僅軌跡類型為正弦或梯形時,需要配置的參數,預設為不勾選;當勾選此參數時,能夠在左右停留過程中,機器人運動主路徑也同時停止;
左停留時間:僅軌跡類型為正弦或梯形時,需配置的參數,單位ms;
右停留時間:僅軌跡類型為正弦或梯形時,需配置的參數,單位ms;

基礎功能區塊#
Set
設定功能塊。可設定控制櫃數位輸出埠及機械臂末端數位輸出埠為高電平或低電平或脈衝訊號,且設為脈衝訊號時,需設定脈衝的頻率及佔空比;為程式變數或系統變量賦值。


Wait
等待功能塊。可選等待一段時間、等待DI訊號、等待某一執行緒結束或表達式,程式執行到此功能塊時會一直等待直到滿足設定的條件。

注意:延遲設定至少100ms!
當勾選「延遲」以外其他選項時,會顯示是否啟用逾時偵測的勾選方塊。若勾選“啟用超時檢測”,可輸入超時時間和超時變量,如下圖。

使用者可手動輸入逾時時間,預設逾時時間60000ms;使用者也可以使用超時變數判斷是否逾時,且逾時變數為可選項,可不選擇變數。
Script
腳本功能塊。可以選擇表達式、腳本或腳本檔案。表達式可使用表達式編輯器建立一行腳本,表達式的輸入請參閱第8節輸入鍵盤(表達式輸入鍵盤);腳本可用於編寫整段的腳本程式碼;腳本檔案可以從檔案中選擇腳本一個腳本文件。腳本程式碼的說明請參考腳本手冊。

選擇腳本編寫整段程式碼時,點擊編輯區上方 提示圖示會彈出編輯快捷鍵提示框,如下圖。

點擊編輯區上方 最大化圖標,腳本編輯區會最大化顯示如下,點擊最大化介面右上方
還原圖標即可還原到原始介面大小。
為撤銷圖標,
為恢復圖標。編輯區左下方會顯示遊標所在的行數和列數,右下方會顯示腳本總行數。

使用腳本編寫方式可以使用系統自帶的快速輸入框和外部鍵盤輸入。點選腳本編寫區上方的 圖示彈出系統快速輸入框,懸浮在編輯器上方如下圖,且該彈框可按住拖曳。

快速輸入框有三個標籤,分別為快速輸入、通用鍵盤、腳本函數。輸入框下方欄為一些常用的控制按鍵,功能分別為遊標左移、遊標右移、遊標上移、遊標下移、輸入空格、刪除、換行。

快速輸入會針對一些常用的功能進行快速輸入。主要功能有
點位:點擊“關節”可輸入當前機械臂的關節值,單位是rad;點擊“位姿”,可輸入當前機械臂工具在設定工件上的位置姿態,單位m、rad。
功能:可以輸入While迴圈、條件分支、函數定義、單行註解等

IO/暫存器/Modbus/變數:可以選擇讀取或寫入,系統會自動轉換為對應的腳本函數。如選擇「讀取」時,選擇通用輸入DI1,系統自動輸入對應的腳本函數get_standard_digital_in(1)
運算符:輸入一些常用的運算符

通用鍵盤與實體鍵盤類似,可以輸入大小寫字母、數字、符號。
腳本函數可以從清單中選擇腳本函數,選取後,在下方會顯示該腳本函數的說明及範例,並雙擊或點選左上方的「新增」按鈕可以將該腳本輸入到腳本區。支援腳本的搜尋。

Log
日誌功能塊。可以列印訊息或變數的值到日誌檔案中。

Message
訊息彈窗功能塊。可對訊息彈框進行配置,即可選暫停程序、僅彈窗或停止程序。

當選擇暫停程式時,設定一則訊息,程式運行到此功能區塊時可彈出對話方塊顯示該訊息且程式暫停執行,使用者可選擇繼續運作、停止程式或關閉彈跳窗。

當選擇僅彈窗時,設定一則訊息,程式運行到此功能塊時彈出一個對話方塊顯示該訊息,但程式會繼續運行,使用者可選擇停止程式或關閉彈跳窗。

當選擇停止程式時,設定一則訊息,程式運行到此功能區塊時彈出對話方塊顯示訊息並且程式直接停止執行,使用者可選擇關閉彈跳窗。

Comment
註釋功能塊。在程式樹中加入一個註解。程式運行時,此功能塊不會執行任何操作。

Group
組功能塊。用於對程式進行整理,可以將某些功能塊放在一個Group下面,方便程式的組織和閱讀。對程序的執行無影響。

CoordOffset
座標系偏移功能塊,基於工件座標系設定偏移量,可以自訂或設定變數。後續的Move類功能塊的參考工件座標系上都會加入這個偏移量。在程式運作過程中生效,程式停止座標系偏移取消。

备注
使用CoordOffset功能塊對工件座標系進行偏移,在程式停止時會自動對其清空。在程式執行過程中,若對程式進行暫停並手動示教機器人,此時機器人針對笛卡爾運動所參考的工件坐標係為使用CoordOffset功能塊偏移後的工件坐標系,該偏移將保持到程序手被手動停止或完成運轉。
SetLoad
設定抓取負載功能塊。可以在程式運作過程中設定機器人目前的負載(品質、質心)

GetListElement
取得列表元素功能塊。此功能塊用於從list類型變數中取得其中的一個元素,並將該元素的值轉存至指定的變數中。
選擇清單類型:目前支援num_list,pose_list,joints_list,三種類型的變數。使用時,需要先建立期望的list類變數。
索引:即期望獲取的元素在列表中的位置,從1開始計數。支援直接輸入索引值,或從變數取得索引值。
元素:指定取得的元素需要轉存到的對應變數。支援number, pose, joints 三種類型的變數。使用時,需要先建立期望的變數。


RemoveListElement
移除列表元素功能塊。此功能塊用於將list類型變數中的某一個元素,從該list種刪除。
選擇清單類型:目前支援num_list,pose_list,joints_list,三種類型的變數。使用時,需要先建立期望的list類別變數。
索引:即期望移除的元素在清單中的位置,從1開始計數。支援直接輸入索引值,或從變數取得索引值。


TimerStart
計時開始功能塊。此功能塊用於計時器的開始計時

TimerEnd
計時結束功能塊。此功能塊用於計時器的結束計時。
選擇變數:僅支援全域timer類型的變數。使用時,需要先建立全域的timer類別變數。

Stop
停止功能塊。此功能塊用於發出程式停止指令。

流程控制#
While
循環功能塊。循環執行其內部的功能塊。可以設定一直循環;指定循環次數;指定循環條件,只要循環條件為真,就循環運行。

If
條件功能塊。可以設定數字輸入埠條件或條件表達式,滿足該條件則執行If內的功能塊,可以加入後續的elsif或else功能塊

Goto&Label
Goto功能,和Label搭配使用,可以將程式的控制點轉移到Label處。
首先建立Label功能區塊,標記跳轉點,並對此跳轉點命名。再使用goto功能塊,選擇要跳到的位置。
如圖的範例程式表示程式執行到第6行時將跳到第3行的label1處再向下執行,即第四行Set與第五行wait功能塊將會執行兩次。

通訊#
SocketOpen
建立Socket,參數頁面需要設定連線的名稱,設定目標Server的IP位址及連接埠號,選擇是否將回傳值綁定到變數

SocketClose
關閉socket連接,需要選擇關閉連接的名稱

SocketSend
socket發送資料。向已建立的socket連接發送數據,發送類型可以選擇發送字串或浮點數數組,發送數據可以選擇變數或直接輸入,可以將返回值綁定到變數以獲取發送狀態。

SocketRecv
socket接收資料。從已建立的socket連接中接收數據,接收類型可選字串、字串數組、浮點數數組,接收訊息配置接收變數。
字串類型時,此時需要給定接收長度,程式會接收該長度的資料並按照字串來處理,將其儲存到「接收資訊」配置的變數。
字串陣列類型時,此時程式會將收到的字串解析成數值,所有數值在「()」內,數值之間使用「,」隔開。例如,從socket中收到了一串字串“(12,1.23)”,該功能塊會將其轉換為num_list類型,值為{12,1.23},並將其保存到“接收訊息”配置的變量。
浮點數數組類型時,此時需要給定接收長度,程式會將收到資料轉換為一組單精度浮點數,(依照IEEE 754標準轉換)並將其儲存到「接收訊息」配置的變數。
可以設定接收逾時時間,在逾時時間內未收到符合規則的資料則執行下一語句。

CommSend
配方資料發送。當機器人的485埠或CAN埠設定了配方時,使用該功能塊可以為配方中的資料設定值,並傳送。可以設定返回變數取得配方資料發送的狀態。

CommRecv
配方資料接收。當機器人的485埠或CAN埠設定了配方時,使用該功能塊接收數據,並依照配方處理後,將所得的num_list資料賦值到接收變數上。

進階#
Subprogram
子程序。可以將其他程式嵌入到目前程式中。有以下兩種方式:
直接從程序清單中選擇嵌入的子程序,若不勾選“內嵌該子程序”選項,則每次在程序運行過程中從文件中加載子程序,即子程序文件的改動會影響主程序,且可點選子程式名稱後的「開啟」按鈕,可直接開啟子程式檔案進行檢視。若勾選,則是將子程式直接複製到了主程式中,此後子程式檔案的變更對其無影響,且子程式名稱後不顯示「開啟」按鈕。
設定為字串變量,則程式在執行時,依據變數值會作為子程式名稱來動態載入對應的子程式。



Replay
軌跡復現。可以創建一條記錄方式為基於位置記錄或基於時間記錄的機器人運動軌跡,程式執行到此功能塊時機器人按照基於關節空間或基於笛卡爾空間的複現方式來運動該軌跡。可以選擇已有的軌跡檔案或建立新的軌跡。
建立新軌蹟的方法,點選“新軌跡”,輸入軌跡名後會顯示“軌跡記錄”框,選擇好工具座標系、工件座標系、記錄方式後點選“開始記錄”則開始記錄軌跡數據,此時頁面會顯示一個半透明的懸浮框表示正在記錄軌跡,使用者可以使用牽引或點動等方式移動機器人,點擊「停止記錄」或懸浮框上的停止按鈕, 則完成該軌跡文件的建立。軌跡記錄過程中,使用者修改座標係或切換目前座標系,終止目前軌跡記錄,「軌跡記錄中」懸浮框消失。

對於選取的軌跡,當復現方式為基於關節空間時,會顯示該軌蹟的軌跡名稱、記錄方式;當復現方式為基於笛卡爾空間時,會顯示該軌蹟的軌跡名稱、記錄方式以及記錄時刻的工具座標系和工件座標系。

Pallet
碼垛/卸垛。可以透過一些簡單的參數設置,自動載入一組碼垛/卸垛 標準程式模板,並在此基礎上進行適配性變更。

請依照下列步驟使用堆疊/卸垛功能塊:
1.確定使用碼垛或卸垛,碼垛為將工件移動到托盤上,卸垛為從托盤上移走工件
2.可以指定名稱,每次新增Pallet時會產生一個預設的名稱
3.選擇工件在托盤上的擺放模式,直線或網格模式
4.標定托盤使用的參考座標系,標定方式:基於托盤上擺放的第一個工件來標定,P1點為示教到工件上的一點,P2點示教到行方向(參考坐標系X軸方向),P3點示教到列方向。點選「標定」按鈕完成座標系的標定。上方將顯示參考座標系 的值。

點擊「新增&啟動」按鈕,將彈出對話框,輸入該座標系的名稱後,將會加入系統中,並設為目前座標系。

5.設定工件擺放參數,需設定工件的高度,工件在行及列方向上的擺放數量,工件在行及列方向上的間距
6.設定工件的計數變量,需在程式變數區新建一個類型為number的變數
7.設定擺放層數
8.定義在各個工件上執行動作的點位,可分為三個接近點位、動作點位、退出點位。在托盤擺放的第一個工件處示教這三個點位。接近點位為機器人運行到托盤上方計劃擺放/抓取工件的位置;動作點位為機器人擺放/抓取工件的位置;退出點位為機器人在擺放/抓取完成離開托盤時的位置。注意:這三個點位的示教務必在托盤的參考座標系下進行。
9.示教完成後,點選「產生腳本」按鈕,將自動在程式中加入一系列功能塊。 其中Group功能塊下可以加入對應的執行動作如夾爪開合等。

10、 程式設定為一直循環方式,碼垛程式會在每次執行時,根據設定的參數計算偏移量,決定下一次碼垛/卸垛的位置姿態。在變數區,根據設定的工件計數變數可查看目前堆疊/卸垛工件的數量
RecordPoseTrans
操作點轉換示教功能塊。用來做點位轉換。
如下圖,點O為參考點,A、B、C、D點相對於參考點O的位姿是不變的。操作點轉換示教功能塊記錄這些點位相對於參考點O的相對位姿關係,當O的位姿改變時,輸出A’、B’、C’、D’點的位姿。常用在視覺辨識定位、雷射尋位等場合。例如在視覺辨識定位場景中,參考點O為一個工位的標記區塊,A、B、C、D為該工位的四個工件,工件相對於標記區塊的位姿固定。相機拍照辨識得到該標記塊在機器人基底座標系下的位姿,使用操作點示教功能塊計算得到工件在機器人基底座標系下的位姿。


配置頁如圖,有三個部分,在「輸入-參考位姿」設定參考點位(O點),並在「操作點偏移」中設定操作點位(A,B,C,D點),「輸出-轉換位姿」中設定變數存放計算所得的操作點位,即儲存A',B',C',D'位姿。配置階段,功能區塊將記錄操作點(A,B,C,D點)相對於基準(O點)的偏差;程式運行時,根據目前輸入變數的值(O'點)加上偏差計算得到操作點(A',B',C',D'點)的位姿。
選擇一個pose類型的全域變數作為參考位姿,點選“設定為基準”,將以該變數目前值作為參考基準(O點)。在操作點偏移中點選「示教新增」將跳到行動頁面,可以移動機械手臂選取點位(A,B,C,D),選取後即新增了一個點位,設定頁面會顯示新增的點位在基座標系下的值。輸出欄中,選擇一個pose_list類型變數存放計算結果(A’,B’,C’,D’)。
力控相關腳本
目前力控相關腳本包括 Force,ForceGuard,ForceSetZero,ForceWait,ForceMove. 詳細的應用介紹請參考《DUCO CORE末端力控功能操作手冊》
CollisionDetect
碰撞偵測等級。此腳本可實現在程式運行過程中,對碰撞檢測靈敏度的設定。


線程
線程,與機器人主程式並行執行,透過變數與主程式互動。在參數配置區可設定該執行緒是否一直循環;也可設定執行緒是否可重入,即該執行緒在未執行完成的情況下是否可建立新的實例執行。在一個程式中最多允許創建10個執行緒。


變數區#
該頁面可以建立程式變量,監控程式變數值。程式變數與系統變數不同,系統變數是作用於整個工程,而程式變數只存在於本程式內。
新增變數#
點選「新增變數」按鈕,可跳出對話框,如圖,輸入變數名稱、選擇類型、給定初始值即可建立。

程式變數有以下類型:
boolean: 布林型,只能為false或true
number: 數字類型
string: 字串類型
num_list: 陣列類型
pose: 表示機器人笛卡兒位置的資料類型
joints: 表示機器人關節位置的資料類型
joints_list:表示機器人關節位置清單類型
pose_list:表示機器人笛卡爾位置列表數據
pose_speed:表示機器人末端速度的資料類型
pose_acc:表示機器人末端加速度的資料類型
joint_speed:表示機器人關節角速度的資料類型
pose_acc:表示機器人關節角加速度的資料類型

變數監控#
當勾選「變數監控」時,程式運行過程中,該頁面可以顯示程式變數的目前值。點擊“排序”按鈕也可以對程式變數名稱進行按字母排序。


當不勾選「變數監控」時,由於節省了程式變數同步並顯示到介面此過程,將大大提高程式腳本的執行效率。

運行#
點選「模擬」標籤頁可以進入3D模型頁面,該頁面顯示機器人的3D模型。程式樹左側下方的圖示控製程式的啟停,點擊 圖示按鈕運行程序,點擊
圖示按鈕單步運行程序。在程式運作過程中,可以隨時暫停或停止程式。點擊
圖示按鈕設定程式運行過程中遊標自動跟隨指令區塊,點擊
圖示後退出自動跟隨,且遊標自動跟隨功能是預設開啟的。圖示灰色代表跟隨,藍色代表取消跟隨 。

運行程式#
執行程式時,會檢查程式起始點位和目前機器人所處點位是否一致,若不一致,先移動到起始點,如圖,3D模型上會顯示處於起始點位的機器人(灰色顯示),點選「按住移動」按鈕,機器人會移動到起始點位。

移動到起始點位後,再次點擊 圖示按鈕,程式運行。如下圖,程式樹左側下方可以顯示程式的運行時間,3D模型上可以觀察機器人的即時姿態,左側的程式樹可以顯示目前正在執行的功能區塊。點擊下方的控制按鈕可以進行程式的暫停、恢復、停止操作。

單步運行程式#
點選 圖示按鈕單步運行程式。單步時,首先會檢查程式的起始點,移動機器人到程式的起始點位置後。每點擊一次
圖標,程式會向下執行一個功能塊。點選
圖示按鈕,程式將退出單步模式,連續運作。在單步驟過程中可以暫停、恢復程序。點選
圖示按鈕,將執行後退操作,此時機器人將後退移動到上一個點位,後退僅針對運動類功能塊。
點選 停止按鈕,程式停止運行,退出單步狀態。

斷點#
支援斷點偵錯功能,程式在執行到斷點位置處,會停止並進入單步模式。
可以在程式樹和腳本編輯區打斷點,點擊程式樹行號左側區域、腳本行號左側區域即可打上斷點,再次點擊斷點則可以取消斷點。點擊下方的 圖示按鈕可以取消系統設定的所有斷點。

運行程序,當程序運行到斷點處,程序將停止並進入單步模式,如圖所示。點擊 圖示按鈕,程式將單步執行,(執行到Script功能塊時,將單行執行);點擊
圖示按鈕,程式將繼續運行,直到碰到下一個斷點或程式結束。
手動模式下,在程式運作過程中可以隨時打斷點或取消斷點。
