導讀
面對一臺ZMC600E運動控制器與多臺伺服電機,我們該怎樣讓它工作起來?本文帶你了解PLCOPen,并詳細講解如何使用AWStudio控制電機運動。
在自動化領域,運動控制是一件很復雜的事情,包含了上位機通訊,工業現場總線通信協議,運動控制算法,伺服電機控制等領域知識。致遠電子自主研發的AWStudio 的 AWPLC 解決方案可以快速實現運動控制編程。
AWStudio 的邏輯組態提供了符合 IEC61131-3 標準的 ST 語言編程環境,該開發環境和運行時均是由 ZLG 致遠電子自主研發,提供了帶智能提示的代碼編輯器,以及多種程序調試手段,讓用戶可以輕松開發 PLC 程序。AWPLC 提供了 PLC 的運行時環境,可以運行用戶開發的 PLC 程序(開發環境生成的二進制文件),進而控制硬件 IO 或電機伺服器等按程序邏輯進行工作。AWPLC 運行時環境是一個軟 PLC 的引擎,需要在一個硬件載體上運行,比如 ZLG 致遠電子的運動控制器,或者 PC 機等。PLCOPen 是總部在歐洲的 IEC61131-3 推廣團體,目的是為了使得不同 PLC 廠家的產品應用編程通用化,消除產品技術差異和壁壘,在用戶選用不同品牌 PLC 時,不必另外學習相應的編程方法。PLCOPen 對運動控制功能塊 MC 的技術規格進行了約定,包括 MC 功能模塊的命名、具體功能、輸入輸出變量定義、相關時序邏輯等,最大限度地保證用戶編程技術的互通。AWStudio提供了支持PLCOPen規范的運動控制接口,包含了 MC_Power、MC_MoveAbsolute、MC_MoveRelative、MC_Reset等單軸功能塊。接下來,我們介紹如何通過 AWStudio 快速地創建ZMC600E應用示例:控制 ZMC600E 打印字符,通過EtherCAT控制電機轉動。
?編譯環境搭建
首先需要搭建編譯環境,準備硬件和軟件。
1. 必備硬件
x86架構Windows系統的個人電腦;
ZMC600E運動控制器;
支持EtherCAT 協議的電機驅動器和伺服電機。
2. 軟件工具
電腦端安裝 AWStudio 軟件 ;
ZMC600E端安裝 awplc運行時。
配置電腦與ZMC600E設備的連接:使用網線連接windows10電腦端網絡端口與ZMC600E 運動控制器的NET2網絡端口,在電腦上配置在同一個網絡子網。配置ZMC600E設備與從站的連接,使用網線連接ZMC600E運動控制器的ECAT網絡端口與從站網絡端口。
?新建工程雙擊AWStudio圖標啟動程序。

圖1 AWstudio界面圖接下來創建運動控制器解決方案。

圖2 新建解決方案對話框圖
- 單擊工具欄的【新建】按鈕。
- 選擇【運動控制器】-【AWPLC編程】解決方案。
- 修改解決方案名稱。
- 點擊【確定】按鈕。

圖3 新建解決方案對話框圖選擇控制器型號為ZMC600E,點擊【確定】按鈕。

圖4 選擇運動控制器型號圖打開了空白項目。

圖5 打開空白控制器項目
?編寫簡單腳本
我們嘗試編寫一個簡單的st腳本,腳本功能是打印字符串。新建一個整型變量。
- 單擊main.st激活編輯頁
- 單擊變量新建的【+】按鈕
- 輸入變量名
- 單擊類型選擇下拉按鈕
- 單擊以選擇類型
- 點擊【確定】按鈕

圖6新建變量對話框
編寫st腳本,包含兩條語句:計數遞增,打印計數。
PRINT_STR('cnt = ' + DWORD_TO_STRING(cnt));cnt := cnt + 1;

圖7 代碼編輯圖
POU調度程序會在每個周期調用main.st程序。
?仿真運行程序
AWStudio提供了仿真模式,無需連接目標設備,程序可以運行于windows系統的仿真器。

圖8 工程啟動過程圖
- 點擊界面下方的【輸出】按鍵。
- 選擇【輸出】-【啟動Solution】子頁。
- 點擊工具欄的【啟動】按鈕,【啟動】按鈕切換成【停止】按鈕。;
- 觀察【輸出】文本框,將會顯示打印內容。
- 點擊電機工具欄的【停止】按鈕。
可以在輸出-啟動區域看到打印結果,計數每次累加1并打印到屏幕。 ?在目標設備運行連接ZMC600E設備運行。
- 點擊設備下拉按鈕。
- 電機刷新搜索設備按鈕。
- 單擊選擇設備。

圖9 設備連接示意圖
輸入管理密碼,登錄到設備。

圖10 登錄對話框圖登錄成功時,下方狀態欄會顯示連接設備和對應的MAC地址。
在設備端運行st腳本。

圖11 設備端啟動過程圖
點擊工具欄的【啟動】按鈕,【啟動】按鈕切換成【停止】按鈕。
觀察【輸出】文本框,將會顯示打印內容。
點擊電機工具欄的【停止】按鈕。
可以在輸出文本框區域看到打印結果,計數每次累加1并打印到屏幕。
在電腦端編寫代碼,單擊一個按鈕就能編譯程序并在設備端運行程序,非常方便。實際上 AWStudio在后臺做了編譯相關工作,把構建好的st程序打包發送到 ZMC600E設備,并通知守護進程啟動st腳本程序。
?添加主站從站
ZMC600E控制器通過 EtherCAT 協議連接了從站設備(電機驅動器)。首先添加一個 EtherCAT 主站總線,如下圖。

圖12 添加總線對話框圖
ZMC600E充當主站控制器,需要配置總線網口。

圖13 資源連接對話框圖
接下來添加從站設備。打開添加從站對話框。

圖14 打開添加從站對話框圖搜索并添加從站。

圖15 添加從站圖
從站添加成功,右邊是從站詳細配置頁面。

圖16 從站詳細配置圖
從站編輯頁可以配置從站子頁,變量子頁,FMMU/SM子頁,郵箱子頁,初始化命令子頁,分布時鐘子頁。變量頁包含了PDO詳細信息,是從站的核心配置。AWStudio提供了自動映射機制,可以自動拆包解析PDO變量,避免了用戶直接處理繁瑣又容易出錯的PDO。這里我們跳過配置流程,直接使用默認配置。如果有多個從站設備,需要重復上述流程添加從站。
?電機配置
打開電機配置頁面。

圖17 Cia402電機配置圖
映射關系頁面,可以查看或修改綁定的變量名。第一個從機的電機變量名稱默認為“CiA402_AXIS_0”,該電機變量就是 PLCOPen 中的軸對象,后續我們寫代碼需要用到該變量。

圖18 電機映射關系配置頁面
通用頁面,可以編輯軸安全配置。

圖19 電機通用配置頁面
軸的虛擬模式開關,支持在仿真模式下模擬軸運行,虛擬電機的控制模式和位置。仿真模式下能模擬EtherCAT主站和從站電機,便于用戶不連接設備也能調試腳本。
切換到縮放/映射頁面。默認脈沖比是1:1,不需要特別配置。

圖20 電機縮放/映射配置頁面
如果縮放比分子調的比較大,則后面的代碼中的運動功能塊的位置和速度和加速度就需要調小。
?電機編程
由于AWStudio提供了PDO映射,所以我們可以免于管理主站和解析變量。此外AWStudio提供了PLCOPen運動接口,用戶可以方便地控制電機運動,避免直接管理電機控制和狀態的字典變量。接下來我們使用PLCOPen接口編寫電機使能代碼和電機運動代碼。
軸是對伺服電機的高級抽象,避免了直接處理從站電機的狀態字、控制字、指令位置等對象字典項,支持軸使能、發布運動、軸狀態查詢等功能。
以下是軸控制功能塊常用接口的簡單介紹:
MC_Power 控制軸使能(核心功能塊)。
MC_Reset 清除軸錯誤。
MC_ReadStatus 查詢軸狀態。
MC_ReadActualPosition 查詢軸實際位置。
MC_MoveAbsolute 軸運動到指定的絕對位置。
MC_MoveRelative 軸基于當前位置按照偏移量運動。
操作要點:軸要先使能,才能驅動電機運動。電機存在錯誤時,要先清除錯誤,才能使能軸。
?電機使能
首先添加多個功能塊:軸狀態查詢,軸位置查詢,軸錯誤復位,軸使能功能塊。
然后編寫一個簡單的腳本,執行上述的功能塊。
程序每運行200個周期,打印一次當前計數、實際位置、軸使能狀態標志。

圖21 代碼編輯框圖
腳本代碼如下:
rdst(Axis:=CiA402_AXIS_0,Enable := true);rdActPos(Axis:=CiA402_AXIS_0, Enable := true, Position => posAct);IF rdst.ErrorStop THEN rst(Axis := CiA402_AXIS_0, Execute := TRUE);END_IF;power(Axis:=CiA402_AXIS_0, Enable := true, bRegulatorOn := true, bDriveStart := true);IF MOD(cnt, 200) = 0 THEN PRINT_STR('cnt = ' + DWORD_TO_STRING(cnt) + ' pos=' + LREAL_TO_STRING(posAct)); PRINT_STR( 'Status ' + BOOL_TO_STRING(power.Status) + ' RegulatorOn ' + BOOL_TO_STRING(power.bRegulatorRealState));END_IF;cnt := cnt + 1;
查看打印過程。

圖22電機使能過程打印圖
可以看到,軸使能標志位開始時為假,然后為真,并打印了電機實際位置。
?電機運動
電機使能成功,接下來就可以實際驅動電機轉動。
首先添加絕對運動功能塊,相對運動功能塊對應的變量。
然后編寫程序:
等待軸使能狀態標志為真。
軸執行絕對運動。從當前位置運動到 100單位的位置。
絕對運動到達目標后,再執行相對運動。從當前位置,往前運動200的單位。

圖23 代碼編輯框圖
代碼中的位置,速度,加速度和減速度僅供參考,用戶可以根據實際情況自行縮放。
腳本代碼如下:
power(Axis:=CiA402_AXIS_0, Enable := true, bRegulatorOn := true, bDriveStart := true);if power.bRegulatorRealState THEN movAbs(Axis := CiA402_AXIS_0, Execute := TRUE, Position := 100, Velocity := 50, Acceleration := 100, Deceleration := 100, Jerk := 0); if movAbs.Done THEN moveRel(Axis := CiA402_AXIS_0, Execute := TRUE, Distance := 200, Velocity := 50, Acceleration := 100, Deceleration := 100, Jerk := 0); END_IFEND_IF
IF MOD(cnt, 50) = 0 THEN PRINT_STR('cnt = ' + DWORD_TO_STRING(cnt) + ' pos=' + LREAL_TO_STRING(posAct));END_IF;cnt := cnt + 1;
查看打印過程。

圖24 運動輪廓打印圖
查看打印過程,可以得到大概的運動輪廓:初始時軸在300單位位置,然后軸從300單位運動到100單位位置,再從100單位位置運動到300單位位置,然后停留不動。
?ZMC600E運動控制器
ZMC600E是廣州致遠電子股份有限公司開發的最新一代高性能智能總線型控制器,是面向工廠智能化時代的機器人控制器。ZMC600E采用多核異構應用處理器為核心,其內核包括2個64位的ArmCortex-A53核,主頻1.0GHz;4個Cortex-R5F內核,主頻800MHz,同時板載1GB DDR4、4GB eMMC以及32KB FRAM。
ZMC600E 示意圖及接口圖如下所示:

圖1 產品示意圖

圖2 ZMC600E接口圖
ZMC600E EtherCAT主站控制器為設備制造商提供多軸數、多IO點數控制的新一代可靠智能的運動控制解決方案,提供空間直線、圓弧插補算法,可以廣泛應用于注塑行業、沖壓行業、車床行業、搬運碼垛、關節機器人、噴涂、玻璃機、壓鑄機、包裝設備、3C設備、鋰電池設備、紡織、流水線工作站、非標自動化裝備、特種機床等高端設備應用。
-
控制器
+關注
關注
114文章
16972瀏覽量
182920 -
編程
+關注
關注
88文章
3682瀏覽量
94871 -
運動控制
+關注
關注
4文章
638瀏覽量
33371
發布評論請先 登錄
評論