導(dǎo)讀
面對(duì)一臺(tái)ZMC600E運(yùn)動(dòng)控制器與多臺(tái)伺服電機(jī),我們?cè)撛鯓幼屗ぷ髌饋恚勘疚膸懔私?a target="_blank">PLCOPen,并詳細(xì)講解如何使用AWStudio控制電機(jī)運(yùn)動(dòng)。
在自動(dòng)化領(lǐng)域,運(yùn)動(dòng)控制是一件很復(fù)雜的事情,包含了上位機(jī)通訊,工業(yè)現(xiàn)場(chǎng)總線通信協(xié)議,運(yùn)動(dòng)控制算法,伺服電機(jī)控制等領(lǐng)域知識(shí)。致遠(yuǎn)電子自主研發(fā)的AWStudio 的 AWPLC 解決方案可以快速實(shí)現(xiàn)運(yùn)動(dòng)控制編程。
AWStudio 的邏輯組態(tài)提供了符合 IEC61131-3 標(biāo)準(zhǔn)的 ST 語(yǔ)言編程環(huán)境,該開發(fā)環(huán)境和運(yùn)行時(shí)均是由 ZLG 致遠(yuǎn)電子自主研發(fā),提供了帶智能提示的代碼編輯器,以及多種程序調(diào)試手段,讓用戶可以輕松開發(fā) PLC 程序。AWPLC 提供了 PLC 的運(yùn)行時(shí)環(huán)境,可以運(yùn)行用戶開發(fā)的 PLC 程序(開發(fā)環(huán)境生成的二進(jìn)制文件),進(jìn)而控制硬件 IO 或電機(jī)伺服器等按程序邏輯進(jìn)行工作。AWPLC 運(yùn)行時(shí)環(huán)境是一個(gè)軟 PLC 的引擎,需要在一個(gè)硬件載體上運(yùn)行,比如 ZLG 致遠(yuǎn)電子的運(yùn)動(dòng)控制器,或者 PC 機(jī)等。PLCOPen 是總部在歐洲的 IEC61131-3 推廣團(tuán)體,目的是為了使得不同 PLC 廠家的產(chǎn)品應(yīng)用編程通用化,消除產(chǎn)品技術(shù)差異和壁壘,在用戶選用不同品牌 PLC 時(shí),不必另外學(xué)習(xí)相應(yīng)的編程方法。PLCOPen 對(duì)運(yùn)動(dòng)控制功能塊 MC 的技術(shù)規(guī)格進(jìn)行了約定,包括 MC 功能模塊的命名、具體功能、輸入輸出變量定義、相關(guān)時(shí)序邏輯等,最大限度地保證用戶編程技術(shù)的互通。AWStudio提供了支持PLCOPen規(guī)范的運(yùn)動(dòng)控制接口,包含了 MC_Power、MC_MoveAbsolute、MC_MoveRelative、MC_Reset等單軸功能塊。接下來,我們介紹如何通過 AWStudio 快速地創(chuàng)建ZMC600E應(yīng)用示例:控制 ZMC600E 打印字符,通過EtherCAT控制電機(jī)轉(zhuǎn)動(dòng)。
?編譯環(huán)境搭建
首先需要搭建編譯環(huán)境,準(zhǔn)備硬件和軟件。
1. 必備硬件
x86架構(gòu)Windows系統(tǒng)的個(gè)人電腦;
ZMC600E運(yùn)動(dòng)控制器;
支持EtherCAT 協(xié)議的電機(jī)驅(qū)動(dòng)器和伺服電機(jī)。
2. 軟件工具
電腦端安裝 AWStudio 軟件 ;
ZMC600E端安裝 awplc運(yùn)行時(shí)。
配置電腦與ZMC600E設(shè)備的連接:使用網(wǎng)線連接windows10電腦端網(wǎng)絡(luò)端口與ZMC600E 運(yùn)動(dòng)控制器的NET2網(wǎng)絡(luò)端口,在電腦上配置在同一個(gè)網(wǎng)絡(luò)子網(wǎng)。配置ZMC600E設(shè)備與從站的連接,使用網(wǎng)線連接ZMC600E運(yùn)動(dòng)控制器的ECAT網(wǎng)絡(luò)端口與從站網(wǎng)絡(luò)端口。
?新建工程雙擊AWStudio圖標(biāo)啟動(dòng)程序。

圖1 AWstudio界面圖接下來創(chuàng)建運(yùn)動(dòng)控制器解決方案。

圖2 新建解決方案對(duì)話框圖
- 單擊工具欄的【新建】按鈕。
- 選擇【運(yùn)動(dòng)控制器】-【AWPLC編程】解決方案。
- 修改解決方案名稱。
- 點(diǎn)擊【確定】按鈕。

圖3 新建解決方案對(duì)話框圖選擇控制器型號(hào)為ZMC600E,點(diǎn)擊【確定】按鈕。

圖4 選擇運(yùn)動(dòng)控制器型號(hào)圖打開了空白項(xiàng)目。

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

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

圖7 代碼編輯圖
POU調(diào)度程序會(huì)在每個(gè)周期調(diào)用main.st程序。
?仿真運(yùn)行程序
AWStudio提供了仿真模式,無需連接目標(biāo)設(shè)備,程序可以運(yùn)行于windows系統(tǒng)的仿真器。

圖8 工程啟動(dòng)過程圖
- 點(diǎn)擊界面下方的【輸出】按鍵。
- 選擇【輸出】-【啟動(dòng)Solution】子頁(yè)。
- 點(diǎn)擊工具欄的【啟動(dòng)】按鈕,【啟動(dòng)】按鈕切換成【停止】按鈕。;
- 觀察【輸出】文本框,將會(huì)顯示打印內(nèi)容。
- 點(diǎn)擊電機(jī)工具欄的【停止】按鈕。
可以在輸出-啟動(dòng)區(qū)域看到打印結(jié)果,計(jì)數(shù)每次累加1并打印到屏幕。 ?在目標(biāo)設(shè)備運(yùn)行連接ZMC600E設(shè)備運(yùn)行。
- 點(diǎn)擊設(shè)備下拉按鈕。
- 電機(jī)刷新搜索設(shè)備按鈕。
- 單擊選擇設(shè)備。

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

圖10 登錄對(duì)話框圖登錄成功時(shí),下方狀態(tài)欄會(huì)顯示連接設(shè)備和對(duì)應(yīng)的MAC地址。
在設(shè)備端運(yùn)行st腳本。

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

圖12 添加總線對(duì)話框圖
ZMC600E充當(dāng)主站控制器,需要配置總線網(wǎng)口。

圖13 資源連接對(duì)話框圖
接下來添加從站設(shè)備。打開添加從站對(duì)話框。

圖14 打開添加從站對(duì)話框圖搜索并添加從站。

圖15 添加從站圖
從站添加成功,右邊是從站詳細(xì)配置頁(yè)面。

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

圖17 Cia402電機(jī)配置圖
映射關(guān)系頁(yè)面,可以查看或修改綁定的變量名。第一個(gè)從機(jī)的電機(jī)變量名稱默認(rèn)為“CiA402_AXIS_0”,該電機(jī)變量就是 PLCOPen 中的軸對(duì)象,后續(xù)我們寫代碼需要用到該變量。

圖18 電機(jī)映射關(guān)系配置頁(yè)面
通用頁(yè)面,可以編輯軸安全配置。

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

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

圖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電機(jī)使能過程打印圖
可以看到,軸使能標(biāo)志位開始時(shí)為假,然后為真,并打印了電機(jī)實(shí)際位置。
?電機(jī)運(yùn)動(dòng)
電機(jī)使能成功,接下來就可以實(shí)際驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)。
首先添加絕對(duì)運(yùn)動(dòng)功能塊,相對(duì)運(yùn)動(dòng)功能塊對(duì)應(yīng)的變量。
然后編寫程序:
等待軸使能狀態(tài)標(biāo)志為真。
軸執(zhí)行絕對(duì)運(yùn)動(dòng)。從當(dāng)前位置運(yùn)動(dòng)到 100單位的位置。
絕對(duì)運(yùn)動(dòng)到達(dá)目標(biāo)后,再執(zhí)行相對(duì)運(yùn)動(dòng)。從當(dāng)前位置,往前運(yùn)動(dòng)200的單位。

圖23 代碼編輯框圖
代碼中的位置,速度,加速度和減速度僅供參考,用戶可以根據(jù)實(shí)際情況自行縮放。
腳本代碼如下:
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 運(yùn)動(dòng)輪廓打印圖
查看打印過程,可以得到大概的運(yùn)動(dòng)輪廓:初始時(shí)軸在300單位位置,然后軸從300單位運(yùn)動(dòng)到100單位位置,再?gòu)?00單位位置運(yùn)動(dòng)到300單位位置,然后停留不動(dòng)。
?ZMC600E運(yùn)動(dòng)控制器
ZMC600E是廣州致遠(yuǎn)電子股份有限公司開發(fā)的最新一代高性能智能總線型控制器,是面向工廠智能化時(shí)代的機(jī)器人控制器。ZMC600E采用多核異構(gòu)應(yīng)用處理器為核心,其內(nèi)核包括2個(gè)64位的ArmCortex-A53核,主頻1.0GHz;4個(gè)Cortex-R5F內(nèi)核,主頻800MHz,同時(shí)板載1GB DDR4、4GB eMMC以及32KB FRAM。
ZMC600E 示意圖及接口圖如下所示:

圖1 產(chǎn)品示意圖

圖2 ZMC600E接口圖
ZMC600E EtherCAT主站控制器為設(shè)備制造商提供多軸數(shù)、多IO點(diǎn)數(shù)控制的新一代可靠智能的運(yùn)動(dòng)控制解決方案,提供空間直線、圓弧插補(bǔ)算法,可以廣泛應(yīng)用于注塑行業(yè)、沖壓行業(yè)、車床行業(yè)、搬運(yùn)碼垛、關(guān)節(jié)機(jī)器人、噴涂、玻璃機(jī)、壓鑄機(jī)、包裝設(shè)備、3C設(shè)備、鋰電池設(shè)備、紡織、流水線工作站、非標(biāo)自動(dòng)化裝備、特種機(jī)床等高端設(shè)備應(yīng)用。
-
控制器
+關(guān)注
關(guān)注
114文章
16845瀏覽量
182324 -
編程
+關(guān)注
關(guān)注
88文章
3674瀏覽量
94707 -
運(yùn)動(dòng)控制
+關(guān)注
關(guān)注
4文章
621瀏覽量
33293
發(fā)布評(píng)論請(qǐng)先 登錄
手把手教你學(xué)單片機(jī)之AVR入門視頻教程
手把手教程:各類數(shù)字電源設(shè)計(jì)實(shí)例(程序+原理圖)
手把手教你學(xué)stm32
【課程匯總】Hello HarmonyOS系列課程,手把手帶你零基礎(chǔ)入門
手把手教你安裝Quartus II
DSP開發(fā)軟件及工具介紹--力天手把手教你學(xué)DSP之入門篇

手把手教你學(xué)LabVIEW視覺設(shè)計(jì)
手把手教你開關(guān)電源PCB排板

評(píng)論