前言
台达A3伺服作为台达当下最新的智能运动驱动器。在市场有一定的竞争力。当然本文只作为记录笔者是学习A3过程的备忘篇。()
正文
学习分两个阶段,也分两个软件。分别是调机(ASDAsoft V6)和二次开发平台(ezASD V5)。
调机(ASDAsoft V6)

二次开发平台(ezASD V5)

台達智能伺服為硬即時多工系統,採4個時槽(Slot)平分1毫秒的概念進行設計
如果你想更清楚多工切換的時序,首先你必須先把握下列多工切換三原則
- Task-Switching Rules
1. 時槽已有指定的工作則執行該工作
下圖是系統內定Slot與Task的對應圖,當時間進入到Slot 0時開始運行Task 0,緊接著當時間進入到Slot 1時則切換至Task 1 運行,依此類推。
[图片上传失败...(image-f644fe-1570719971453)]
2. 時槽未有指定的工作則執行前一時槽的工作
當Task內並未安排Program時,則原定的執行時間會讓給前一時槽的Task進續運行
3. 工作已完成或須等待,該時槽尚有剩餘時間,則執行該工作對應的候補工作
系統內定的候補順序為 Task 1, 2, 3 → Task 0 → Task B
多工時序情境 1
下圖Task 0為掃描周期1 ms,因此每當時間進到Slot 0時都會開始運行Task 0。
而Task 1, 2, 3為Trigger類型的工作,當有Program需要執行時它分別會於Slot 1, 2, 3時間點開始進行運作,若某些時刻並未安排有Program則不進行Task切換。

多工時序情境 2
第一個cycle的Task 1 於時間點進到Slot 1 時開始執行,然而時間進入到Slot 2時,Task 2並沒有任何Program需執行,則根據rule 2 將繼續執行前一時槽(Slot 1)的工作 (Task 1),
同理,當時間點進去slot 3時由於Task 3 並沒有任何Program需要執行,則根據rule 2 將繼續執行前一時槽(Slot 2)的工作 (Task B)

多工時序情境 3
該情境演示了當Task 1所運行的Program中含有等待指令時,它會根據rule 3 切換給Task B運行,待等待事件結束,再於下個Slot 1循環中啟動運行剩餘Program。

多工時序情境 4
當Task 0改為2 ms的掃描周期會如下圖進行多工切換,而每個slot依然保持 0.25 ms。

多工時序情境 5
該情境Task 0掃描周期保持預設的 1 ms,但Task 1改為掃描周期為2 ms的Cyclic類型。

多工時序情境 6
Task 0有較多的工作量,而Task 2在第二個cycle時被動態觸發執行一段Program,很巧的是由於Task 2運行的Program所需要的時間已經擠壓了Task 0的運行時間進而導致Task 0發生Timeout,而逾時所需執行的T0_TOUT將於原Program被執行完畢後立即接續執行,並在T0_TOUT結束後再重新運行原Program

结尾
Log:
2019.10.10
网友评论