任務
在 LogicLab 中,有六種任務可供 PLC 程式選擇,於 Project 面板中展開 Task 清單。
- 快速:程式以最快的 PLC 週期循環執行,快速任務週期範圍在 0.25 毫秒至 2 毫秒,它與 EtherCAT 循環時間同步。
- 中速:程式在快速和慢速之間循環執行。
- 慢速:程式以相較於快速任務還慢的週期循環執行,通常慢速任務週期比快速任務週期慢 5-10 倍。
- 背景:程式在長週期下循環執行(通常比慢速還慢),優先順序較其他任務為低,當有其他任務需要執行時,背景任務即被暫停。此任務適用於在不中斷其他程式下定期檢查某些內容。
- Boot:程式在 KINGSTAR PLC Runtime 啟動後開始執行。
- Init:程式在 KINGSTAR LogicLab 重啟程式後開始執行(點擊工具列中的 Cold restart),保留和非保留變數皆會重置,預設 KsMain、KsAxes 及 KsCamTables 皆在 Init 底下,它們會將資源配置傳給 KINGSTAR,請勿編輯(甚至不要新增空格)或刪除它們,否則程式可能會變得不穩定。
中速和慢速的週期皆可更改,欲更改有以下方式:
- 於 Project 面板中展開 Task 清單。
- 右鍵點擊 Moderate 並選擇 Task configuration。
- 在 Task configuration 中,點選 Moderate 的 Set period 並點選 Yes。
- 點擊 Moderate 的 Period 並輸入想要的週期,建議將值設定於快速與慢速之間。由於此範例我們將在下一步調整慢速的週期,因此先將中速週期設為 10。
- 比照上訴步驟調整 Slow 的週期,於 Set period 點選 Yes 後,在 Period 輸入想要的值,此值必須為快速任務的倍數。例如快速任務設為 10 毫秒,則慢速必須為 20、30、40 或其他為 10 的倍數的值,此值不可與快速任務之值相同,亦不可為零。
- 完成編輯後按 OK。
注意:若點選 Period 欄位但仍無法編輯,請再點一次。
注意:若將 Set period 設為 No,週期將會重置為預設值。
注意:若將 Set period 設為 No,週期將會重置為預設值。
快速任務的超時檢查
KINGSTAR LogicLab 具有“超時檢查”機制,可以偵測執行時間過長的快速任務,若快速任務的週期太短以至於無法運行任務,則輸出 (Output) 窗格中將顯示錯誤訊息,而 PLC 程式將停止運作。下圖展示錯誤訊息,快速任務的週期是 1 毫秒(1000 微秒),但 LogicLab 需要 90518 微秒才能完成任務。
超時檢查不計算 I/O 模組的存取時間,例如若快速任務的週期為 1 毫秒,其中任務耗時 920 微秒,I/O 模組的存取時間為 200 微秒,超時檢查不計算後者。若有與 KINGSTAR PLC Runtime (llexec) 搭配使用的的自製外掛程式,超時檢查也不會計算外掛程式的處理時間。
快速任務的週期與 EtherCAT 週期時間
快速任務的週期必須與 EtherCAT 週期時間相同,若不相同恐發生以下問題:
- 同步邏輯:為降低通訊延遲,快速任務會同步 EtherCAT 週期時間,在每次 EtherCAT 週期封包回傳時觸發快速任務,若快速任務的週期與觸發任務的 EtherCAT 週期時間不同,恐將產生問題。
- 任務的週期時間:快速任務可能沒有穩定的週期時間。
註:若有高速授權 (High-Speed license),則 PLC 所支援的最低週期為 250 微秒。