我想找...

搜尋

函式庫參考

目錄

QEC-M-070T × Motion86 — 在觸控螢幕繪製路徑,由三軸即時執行

本入門指南將介紹如何建立一個完整的 三軸路徑繪製控制系統 在 QEC-M-070T。操作人員可直接在 7 吋觸控螢幕上以手指繪製線條,控制器會自動將軌跡平滑化、轉換為路徑點(Waypoint),再交由一台 QEC-R11MP3S 的三個軸即時執行。
觸控介面、EtherCAT 主站、路徑規劃與位置記錄皆運行於同一台控制器上,不需要外接 PC、PLC 或獨立的運動控制卡。

Motion86_drawpath

1. 快速概覽

  • 自由繪製路徑 — 直接在畫布上繪製路徑。繪製完成後,程式會自動將軌跡轉換為最多 600 個路徑點,無需預先建立任何固定圖形。
  • 三軸連續運動 — X、Y、Z 三軸依照產生的路徑持續運動。所有運動指令皆以毫米(mm)為單位,不需要自行進行脈波換算。
  • 平滑路徑執行 — 即將執行的路徑點會預先加入運動緩衝區,Motion86 會銜接相鄰的路徑區段,使整段軌跡保持連續且平順的運動。
  • 即時極限開關保護 — 每個控制週期皆會檢查極限開關。一旦觸發,系統立即執行緊急停止並鎖定停止狀態,直到被觸發的極限開關解除。
  • 三個操作頁面Draw 用於路徑繪製、 Jog 用於手動軸控制、 Data 用於查看路徑點與運動執行狀態。

所需設備

項目說明
QEC-M-070TEtherCAT MDevice with a built-in 7″ 800 × 480 touch panel
QEC-R11MP3S × 1主要機構: 三軸 CiA 402 馬達控制模組,用於執行繪製路徑
QEC-R11MP3S × 2選配機構 用於同步運動驗證,不影響主要繪圖路徑
24 V 電源Vs 提供系統電源,Vp 提供周邊設備電源
極限開關分別連接至主要機構各軸的數位輸入
開發環境86Duino IDE

功能概覽

3.1 Draw — 路徑繪製與即時位置

Motion86-draw
  • 橘黃色區域 — 安全繪製範圍。超出此區域的觸控輸入會在轉換成路徑點之前被排除,以避免操作人員建立可能造成機構碰撞的路徑。
  • 綠色線條 — 轉換完成後的路徑。當手指離開螢幕時會立即完成計算,也可以使用右下角的 CONVERT 按鈕重新計算。
  • 紅色十字標記 — 顯示機構目前的實際位置。馬達 Enable 後即會顯示,可用於即時監看目前座標。
  • 底部狀態列 — 顯示路徑點數量、總路徑長度、M0 即時 XYZ 座標,以及右側的狀態標籤 (OFF / ON / READY / RUN / JOG / LIMIT).

畫面上方的提示列會依照目前系統狀態,提示操作人員下一個應執行的操作,並以不同顏色顯示狀態: 藍色代表機台尚未準備完成、綠色代表可以開始繪製、橘黃色代表路徑執行中,而紅色則表示極限開關已被觸發,運動系統目前處於鎖定停止狀態。

3.2 Jog — 手動移動

Motion86-jog

首先選擇需要控制的機構群組(M0 / M1 / M2),再選擇移動距離(1 mm 或 5 mm),接著即可操作: X- X+ Y- Y+ Z- Z+畫面右側會即時顯示目前所選群組的位置,以及各軸允許的運動範圍。

Jog 指令不會直接以未經處理的控制命令傳送至驅動器。系統會先將目標位置限制在允許的運動範圍內,再以絕對位置命令執行。因此,手動操作與程式控制皆受到相同的軟體限位保護。

3.3 Data — 路徑點與執行進度

Motion86-data

此頁面會顯示完整的路徑資料,包括: 步驟編號、目標 X / Y / Z 座標、進給速度(Feedrate)以及目前狀態。 每一個路徑點皆會依序經過: Wait → Running → Finish執行路徑期間,頁面也會自動跟隨目前正在執行的步驟。

如果實際繪製結果與預期不同,可透過此頁面判斷問題是來自座標轉換,還是來自機構本身或運動參數設定。


4. 操作流程

步驟按鈕動作
1SERVO ON第一次按下會啟動 EtherCAT 並掃描模組;第二次按下則啟用驅動器
2HOMEM0 搜尋原點開關、建立座標系統,並離開原點開關
3READYM0 移動至工作原點;M1 與 M2 將目前位置設定為各自的起始位置
4RUN PATHM0 開始執行繪圖路徑;M1 與 M2 同步跟隨各段位移
5STOP可隨時停止所有馬達

5. Motion86 負責了哪些工作?

這個範例真正簡化開發工作的地方,在於 Motion86 已經將許多常見的運動控制功能整合完成:

  • 直接使用毫米下達運動指令 : config_PPU() 設定一次「每毫米脈波數(Pulses Per Millimetre)」後,後續所有運動指令都可以直接使用毫米。即使之後修改齒輪比、螺桿導程或編碼器解析度,也只需要調整此參數。
  • 自動執行軟體限位保護 : 透過 config_PosLimit() 以及 enableSoftLimit()設定後,超出有效行程範圍的目標位置會在任何脈波輸出之前被阻擋,不需要在每一條運動指令前自行加入範圍檢查。
  • 內建原點復歸功能,並可自行決定開關讀取方式 : 原點復歸流程由 Motion86 負責執行,開發者只需要提供讀取原點開關的 Callback。即使使用特殊的 I/O 配線方式,仍可繼續使用 Motion86 其他功能。
  • 將整條路徑作為連續運動執行 : 最多 600 個路徑點會透過 Buffer 持續送入,Motion86 自動銜接相鄰的路徑區段,因此不會變成 600 次獨立的「啟動-停止」運動。
  • 一台主站控制三組機構 : 三組獨立座標系統都可以在相同的 500 µs 控制週期中更新,並可混合使用絕對座標與相對座標模式。
  • 支援 G-code : gcode() 可隨時呼叫,並可自由搭配使用 line().

最能體現 Motion86 設計概念的部分,是它與馬達驅動器之間的介面。 整個連接主要透過兩個 Callback 函式完成:

void setRemoteTargetPos0(int axis, long pos) {
  if (servo[0][axis]) servo[0][axis]->setTargetPosition(pos);
}
long getRemoteTargetPos0(int axis) {
  if (servo[0][axis]) return servo[0][axis]->getPositionActualValue();
  return 0;
}

machine0.config_CustomActuators_CycleTime(ECAT_CYCLE_TIME);
machine0.config_CustomActuators_Callbacks(setRemoteTargetPos0, getRemoteTargetPos0);

EtherCAT 函式庫負責處理編碼器脈波,而 Motion86 則負責處理毫米、進給速度與 G-code。這兩個簡單的 Callback 函式將兩者連接起來。 未來若更換不同的馬達,或先使用虛擬軸進行整套流程模擬,主要只需要重新實作這兩個函式;路徑規劃、軟體限位、原點復歸及 G-code 等功能都可以維持不變。


6. 安全設計

此範例將碰撞防護分成三個層級,分別在不同階段阻止異常操作:

防護層級防止的問題實作位置
畫面範圍限制不合理的路徑ui.cpp
軟體限位不合理的運動命令.ino
硬體極限開關實體機構的碰撞風險.ino

前兩層屬於軟體判斷,因此前提是程式內設定的限制值必須與實際機構相符。 當設定值與實際機構不一致時,最後一道保護就是實體極限開關。 一旦極限開關觸發,系統會 立即停止運動並鎖定目前狀態。 這是刻意採用的安全設計,因為極限開關在持續被壓住時可能產生接點彈跳(Bounce)。如果系統僅依靠「開關已經釋放」作為恢復條件,機台可能在操作人員尚未完成確認之前就重新開始移動。


7. 相關資源


我們將持續推出穩健且創新的 EtherCAT 自動化平台,讓機台整合更聰明、更快速。欲取得更多資訊或索取樣品,歡迎來信 info@icop.com.tw,致電離您最近的 ICOP分公司,或聯絡我們的 全球官方經銷商.

返回頂端