PLCopen是工控程式設計全球標準。它使程式設計介面標準化從而協調了人們設計和從事工業控制的方式。該標準定義了用於構造程式內部結構的SFC(順序功能圖)語言和四個互操作程式語言:IL(指令表)、LD(梯形圖)、FBD(功能塊圖)和ST(結構文字)。不同廠家的運動控制器運動控制指令只要是遵循PLCopen標準,那麼使用者很容易在不同品牌的控制器之間切換使用,不需要重新學習。目前,國內外大部分控制器廠家都支援PLCopen標準。
在使用PLCopen運動控制指令時,我們經常看到指令的觸發介面有兩種:Enable和Execute。本節我將根據自己的實際操作經歷,為大家展示一下兩種介面的區別。我使用的時固高旗下子公司固高歐辰的基於codesys的運動控制器。
Enable介面:觸發埠為Enable,則表明該功能塊為高電平時觸發。當Enable=TRUE時,該功能塊一直處於執行狀態。當沒有發生錯誤時,功能塊的Done訊號或者其他執行成功標誌會處於TRUE狀態。當軸發生錯誤時,功能塊的Done訊號或者其他執行成功標誌會處於FALSE狀態。當軸故障消除之後,該功能塊繼續執行,不需要重新觸發。當Enable=FALSE時,功能塊停止執行。
例如MC_Power指令:當Enable=true時,運動控制器會對伺服電機進行上使能操作,當Enable=false時,對伺服進行下使能操作。
鎖軸指令
下圖是執行過程中,無故障的情況。
鎖軸指令執行OK
下圖為執行過程中,伺服出現故障時的時序圖。當故障消除後,指令自動執行。
鎖軸指令執行過程中伺服故障前後對比
Execute介面:Execute表示該指令為上升沿觸發。Execute訊號至少保持一個週期才能觸發功能塊的執行。功能塊觸發之後,工作執行完成時,功能塊的狀態引數會指示執行的結果。狀態引數的顯示形式也有兩種情況:
1.Execute在指令執行完成之前一直為TRUE:在上升沿時刻觸發功能塊執行,執行完成之後,輸出執行結果;在Execute的下降沿,功能塊的所有輸出變數會被複位。如果在執行完成之前功能塊被打斷,則CommandAborted=TRUE並且復位其他輸出變數,在Execute的下降沿,CommandAborted被複位。
2.Execute在執行完成之前變為False:在上升沿時刻觸發功能塊執行,執行完成之後,輸出執行結果,並且執行結果只保持一個執行週期;如果在執行完成之前功能塊被打斷,則CommandAborted=TRUE並且復位其他輸出變數,並且CommandAborted訊號只保持一個執行週期。
例如MC_MoveRelative指令:當Execute從false變為true時,運動控制器會控制伺服驅動器進行相對定位。
MC_MoveRelative指令
A. 指令執行成功,並且Execute訊號一直保持
指令執行成功,並且Execute訊號一直保持
B. 指令執行成功,並且Execute訊號保持一個週期
C. 指令執行過程中被其他指令打斷,並且Execute訊號一直保持
指令執行過程中被其他指令打斷,並且Execute訊號一直保持
D. 指令執行過程中被其他指令打斷,並且Execute訊號保持一個週期
指令執行過程中被其他指令打斷,並且Execute訊號保持一個週期
E. 指令執行過程中發生錯誤,並且Execute一直保持
指令執行過程中發生錯誤,並且Execute一直保持
F. 指令執行過程中發生錯誤,並且Execute保持一個週期
指令執行過程中發生錯誤,並且Execute保持一個週期