視頻教教程《視頻教程:EtherCAT總線運動控制器應用進階一》
01 準備工作
一、材料準備
1.硬件
A.ZMC432控制器一臺,帶EtherCAT總線接口。
C.電腦一臺。
D.帶屏蔽層網線兩根。
E.24V直流電源一個。
F.接線端子與連接線若干。
2.軟件
A.ZDevelop V3.10版本控制器編程軟件。
從正運動官網www.zmotion.com.cn下載壓縮包,解壓后直接運行應用程序,無需安裝。
B.松下伺服驅動器上位機調試軟件。
從松下官網下載后安裝。

二、硬件接線
1.控制器接線
控制器接口的用途參見下圖。

A.主電源:將控制器主電源接線端子上的E+24V端子接入24V直流電源正極,將EGND端子接入24V直流電源負極。
B.以太網EtherNET端口接線:使用一根網線將控制器的EtherNET端口與電腦的以太網口相連。
C.伺服驅動器與控制器接線:使用一根網線將控制器的EtherCAT總線端口與伺服驅動器的X2A或X2B口相連。

注意伺服驅動器的EtherCAT接口有兩個,有些驅動器這兩個口可以隨意接,有些分為EtherCAT IN和EtherCAT OUT,IN口接上一級設備,OUT口接下一級設備,二者不能混用,要注意連接順序。
多軸控制時伺服驅動器的EtherCAT OUT口再連接下一級驅動設備的EtherCAT IN口,依此類推。
2.驅動器接線
伺服驅動器與電機和編碼器的接線參見驅動器手冊,將驅動器接入220V市電。
02 控制器與電腦連接
控制器與電腦可以通過串口或網口連接,下面以網口連接例展開說明。
一、網口通訊操作方法
先將控制器與電腦用網線連接好,接通控制器的電源,再打開ZDevelop編程軟件,點擊菜單欄“控制器”→“連接”,打開“連接到控制器”窗口。

通過“連接到控制器”窗口,可以快速查看本機IP,對比控制器與電腦是否處于同一網段。
IP地址列表下拉選擇時,會自動查找當前局域網可用的控制器IP地址(控制器上電POWER燈和RUN燈亮的時候就能查找到該控制器的IP地址)。
同一個網絡有多個控制器的時候,IP的下拉列表若沒有顯示目標控制器的IP地址,可以采取IP掃描來查看當前所有可用的控制器IP地址,掃描完成之后確定關閉此窗口,重新在IP下拉列表選擇。

選擇正確的IP地址,點擊連接之后,編程軟件與控制器連接成功,在線命令與輸出窗口打印信息提示。

控制器出廠的缺省IP地址為192.168.0.11,“連接到控制器”窗口能顯示出本機IP地址,請注意設置有線網卡與無線網卡各自的IP。電腦需要設置IP地址與控制器IP處于同一網段才能連接,即四段的前三段要相同,最后一段不同才能通訊。
若控制器與電腦不處于同一網段,則需要修改控制器或電腦其中之一的IP地址,使二者處于同一網段。
修改控制器IP地址需要先使用串口連接控制器,獲取控制器IP地址,然后修改本機IP或控制器IP使二者處于同一網段。
二、修改控制器IP地址
先使用串口連接控制器,獲取控制器IP地址,再修改控制器IP地址。
方法一:可以通過菜單欄“控制器”→“修改IP地址”窗口直接修改控制器IP地址。

方法二:通過IP_ADDRESS指令發送在線命令修改。
指令發送修改成功之后自動斷開連接,在線命令打印控制器連接錯誤信息,通過網口連接選擇新IP地址192.168.0.23再次連接控制器,IP地址修改成功后永久有效。

三、修改本機IP地址
以WIN10為例,在開始菜單里打開控制面板,打開“網絡和Internet”。

再打開“網絡與共享中心”。

點擊“以太網”。

在“以太網狀態”窗口點擊“屬性”,打開“以太網屬性”窗口,找到Internet協議版本4(TCP/IPv4)打開,就能看到本機IP地址修改窗口,勾選“使用下面的IP地址”,在IP地址輸入欄里修改IP,將本機IP改為和控制器IP處于同一網段,修改完成點擊“確認”即可成功修改IP。
再次打開“連接到控制器”窗口嘗試連接到控制器。

03 DPOS與MPOS的區別
DPOS為用戶定義的目標位置,即控制器發出的指令位置,單位是UNITS,該值的大小等于控制器實際發送脈沖數,除以脈沖當量得出。
寫DPOS會自動轉換為DEFPOS絕對坐標位置偏移,不會移動電機。
MPOS為用戶單位的軸測量位置,也稱為實際位置,單位是UNITS。該值是由編碼器測量得出的軸實際位置,接在伺服電機上的編碼器用于測量電機的轉角與轉速,MPOS的值正常情況下會跟隨DPOS值,該值的大小等于編碼器測得實際脈沖數,除以脈沖當量得出。沒有編碼器的場合,軸的MPOS值自動復制DPOS的值。
寫MPOS會自動轉換為DEFPOS絕對坐標位置偏移。
部分電機有一定跟隨誤差的(DPOS-MPOS),這個和機械和電機本身剛性都有關系,機械越好,電機越好,調的剛性越足,則跟隨誤差越小,但跟隨誤差永遠存在,不可能消除,并且在實時變化,實際應用中盡量把機械剛性和電機剛性提高,讓跟隨誤差盡量減小,速度盡量平滑,使得MPOS更準確。
另外SPEED為控制器給定速度,MSPEED為編碼器的實際測量反饋速度。
如下圖,軸類型ATYPE=65,EtherCAT周期位置模式,帶編碼器反饋,故脈沖信號輸出與編碼器反饋信號均在軸0上,此時MPOS為真,跟隨DPOS。

ATYPE=4或65或50模式時,軸號上均帶編碼器反饋。
OFFPOS指令相對偏移修改所有的坐標,不會對已運行/進入緩沖區的運動產生影響。
DEFPOS指令設置當前軸位置為一個新的絕對位置值,不會對已運行/進入緩沖區的運動產生影響。
示例:
BASE(0,1) '選擇軸0,軸1
DPOS=100,100 '設置當前位置為100,100
?DPOS(0),DPOS(1) '打印確認,當前位置為100,100
OFFPOS=10,20 '多次調用OFFPOS相對位置
OFFPOS=10,20
?DPOS(0),DPOS(1) '此時當前位置變為120,140
DEFPOS(10,20) '設置當前位置為10,20
?DPOS(0),DPOS(1) '當前位置為10,20
04 EtherCAT伺服驅動器
參數設置
一、電子齒輪比的應用
伺服電機電子齒輪比就是伺服對接收到的控制器脈沖頻率進行放大或者縮小,其中一個參數為分子,一個為分母。分子與分母比值為大于1就是放大,比值小于1就是縮小,比值等于1時電機接受脈沖數等于控制器發出脈沖數。
計算公式:電機接收的實際脈沖數=控制器發送脈沖數*電子齒輪比
例如:控制器發出脈沖10000個,電子齒輪比分子設為1,分母設為2,電子齒輪比為0.5,那么伺服實際運行按照5000個脈沖來進行。控制器發出脈沖10000個,電子齒輪比分子設為2,分母設為1,電子齒輪比為2,那么伺服實際運行按照20000個脈沖來進行。
松下驅動器電子齒輪的比值在1000-1/1000的范圍內有效。
電子齒輪比通過數據字典6091h的子字典01h和02h的比值設定。6091h-01h設置電子齒輪比的分子,6091h-02h設置電子齒輪比的分母。


數據字典6092h的子字典01h用以設定電機旋轉一圈所需脈沖數,一般根據編碼器的分辨率設置,6092h的子字典02h的值默認為1。


電子齒輪比等驅動器的相關參數修改,可以通過驅動器軟件直接修改,或使用SDO指令讀寫對應的數據字典進行配置。
1.驅動器軟件修改電子齒輪比
修改驅動器參數先連接驅動器,可選USB線或WLAN連接驅動器,使用USB線連接電腦與驅動器端的X1端口,給驅動器上電,打開松下驅動器軟件PANATERM,彈出“選擇與驅動器通信”窗口,選擇與驅動器通過USB連接后,自動獲取到驅動器信息顯示在窗口內,點擊OK連接成功,就能對驅動器進行設置。

點擊菜單欄“顯示”→“對象編輯器”,打開如下窗口,找到需要設置的數據字典,在“Setting Value”一欄直接修改數據字典的內容。
修改完成將參數傳送給驅動器,并寫入驅動器的EEPROM,驅動器再次上電后參數生效。
圖中電子齒輪比=1:1,電機旋轉一圈脈沖數10000。

2.SDO指令修改電子齒輪比
SDO指令包含數據字典讀取SDO_READ、SDO_READ_AXIS和數據字典寫入SDO_WRITE、SDO_WRITE_AXIS。
數據字典讀取語法:
SDO_READ (槽位號, 設備編號, 數據字典編號, 數據字典子編號, 數據類型, 讀取數據存儲TABLE位置)
SDO_READ_AXIS (軸號, 數據字典編號, 數據字典子編號, 數據類型, 讀取數據存儲TABLE位置)
數據字典寫入語法:
SDO_WRITE (槽位號, 設備編號, 數據字典編號, 數據字典子編號, 數據類型, 寫入數據值)
SDO_WRITE_AXIS (軸號, 數據字典編號, 數據字典子編號, 數據類型, 寫入數據值)
示例:
SDO_WRITE(Bus_Slot,iNode,$6091,1,7,1) '電子齒輪比分子設為1
SDO_WRITE(Bus_Slot,iNode,$6091,2,7,1) '電子齒輪比分母設為1
SDO_WRITE(Bus_Slot,iNode,$6092,1,7,10000) '電機一圈脈沖數設為10000
SDO_WRITE(Bus_Slot,iNode,$1010,1,7,$65766173) '寫EPPROM(寫EPPROM后驅動器需要重新上電)
使用指令更改完成后,查看驅動器參數如下:

二、讀取多圈編碼器值
驅動器有多圈絕對值編碼器時,可使用ENCORDE指令讀取編碼器硬件寄存器原始值,就是多圈絕對值,此參數為只讀類型。只有配置為需要使用編碼器的ATYPE時才可以讀取。
驅動器重新啟動之后將ENCORDE值清零。
?*ENCODER '打印各軸編碼器值,驅動器上電初始值為0
?ENCODER(0) '打印單軸編碼器值
?ENCODER AXIS(0) '打印單軸編碼器值
如下圖,使用EtherCAT驅動器,帶編碼器反饋,控制軸0持續正向運動MOVE(500),此時發送的總脈沖數=UNITS*DPOS=100*500=50000。

ENCORDE指令讀取驅動器的多圈絕對值編碼器的值,等于編碼器檢測到的接受脈沖總數50000。
此時將DPOS和MPOS改變,ENCORDE的值不會發生變化,因為改坐標電機不會運動,編碼器接收脈沖數沒有改變。

因為讀取的是多圈絕對值,負方向運動ENCORDE值減小,正向運動ENCORDE值增大。

松下驅動器軟件可對絕對式編碼器設定。
通過參數Pr0.15設置。

Pr0.15參數選擇說明:三個設定值說明如下,上方例子為默認值1,作為增量編碼器使用。

三、驅動器IO操作
驅動器IN輸入的讀取,OP的輸出
通過DRIVE_IO指令映射驅動器對象字典中60FDh驅動器IO輸入、60FEh驅動器IO輸出的起始IO編號。
驅動器在映射IO信號之后,可根據編號對驅動器的IO信號進行控制,IO信號輸出可用OP指令控制。

Bit位的值設為1表示ON,為0表示OFF。
驅動器IO映射示例:映射正負限位信號
要設置正確的DRIVE_PROFILEE或者PDO后才可以正常映射輸入,也就是說DRIVE_PROFILE驅動器PDO配置模式包含60FDh和60FEh這兩個數據字典。
DRIVE_PROFILE(iAxis) = 5 '設定對應的帶IO映射的PDO模式
DRIVE_IO(iAxis) = i_IoNum '設定IO起始編號
REV_IN(iAxis) = i_IoNum '負限位應60FD BIT0
FWD_IN(iAxis) = i_IoNum + 1 '正限位先對應60FD BIT1
DATUM_IN(iAxis) = i_IoNum + 2 '原點信號對應60FD BIT2
INVERT_IN(i_IoNum,ON) '特殊信號有效電平反轉
INVERT_IN(i_IoNum + 1,ON)
INVERT_IN(i_IoNum + 2,ON)
驅動器IO輸出:
DRIVE_PROFILE(iAxis) = 5 '設定對應的帶IO映射的PDO模式
DRIVE_IO(iAxis) = i_IoNum '設定IO起始編號
OP(i_IoNum,ON) '打開驅動器的第一個OUT口
可在驅動器的“參數”窗口,找到參數分類4,操作驅動器的IO信號,如下圖。

四、驅動器回零
EtherCAT總線可使用控制器提供的回零方式DATUM(mode),mode模式值選擇查看ZBasic編程手冊的DATUM指令。EtherCAT總線也可以使用驅動器本身的回零模式。
驅動器本身回零使用DATUM(21,mode2)指令,mode2模式值要查驅動器手冊數據字典6098h回零模式,如下圖所示,mode2填入對應Value值,mode2缺省值為0,也是驅動器回零模式,注意此時的原點限位等信號要接在驅動器上,所以要使用驅動器回零時需要對驅動器的IO進行映射。

示例:
初始化完成后再運行驅動器回零程序,按上一節的示例,將驅動器的限位信號和原點信號映射到控制器的IO上,再運行以下回零程序。
BASE(iAxis) '按驅動器軸號逐個回零
AXIS_STOPREASON = 0
SPEED = 100 '回零速度
CREEP = 10 '反找速度
ACCEL = 1000
DATUM(21,2) '驅動器回零模式value=2
WAIT IDLE
IF AXIS_STOPREASON = 0 THEN
?"回零成功"
ELSE
?"回零失敗","停止原因:",AXIS_STOPREASON,"狀態字0X",HEX(DRIVE_STATUS)
ENDIF
五、力矩的實時讀取
當PDO包含數據字典6071h(目標力矩)時,ATYPE可設置為67,周期力矩模式,此時使用DAC指令控制電機以設置值的力矩運行,DAC值范圍0-1000,對應0-100%的DAC的值,比如DAC=10,此時電機力矩=1%的力矩值。
力矩控制時DAC單位為千分之一,等于1000時表示100%力矩,此時的值等于數據字典6072h(設定最大轉矩)的值。
注意速度模式和力矩模式切換時,先將DAC=0后,再修改ATYPE,防止出現事故。
SDO讀取數據字典6071h的值為目標力矩的大小,即當前發送的DAC的大小,沒有發送DAC指令時,6071h的值為0。一般當前力矩6071h的取值范圍是0-6072h的設定值。

例如:ATYPE=67力矩模式
DAC=40
SDO_READ(0,0,$6071,0,3,0)'讀取軸0的目標力矩,TABLE(0)的值變為40

驅動器力矩的讀取可以在配置的DRIVE_PROFILE包含數據字典6077h的情況下,使用DRIVE_TORQUE指令讀取當前軸的力矩,或使用SDO_READ指令直接讀取數據字典6077h的值獲取當前力矩,與目標轉矩的值之間可能存在波動,讀取的是實時值的大小。
示例:
?DRIVE_TORQUE(0) '打印軸0的力矩
數據字典6077h用于讀取當前力矩的值,示例:
SDO_READ(Bus_Slot,iNode,$6077,0,3,0)'讀取當前力矩保存到TABLE(0)

六、轉矩限制的應用
轉矩控制用于印刷機、繞線機、注塑機等場合,使用EtherCAT總線時,電機輸出的轉矩與DAC指令輸入的值成正比。
為了保護機臺,可對輸出轉矩進行限制,電機的最大轉矩使用6072h設置,出廠默認值10。

轉矩控制時,電機轉矩輸出受DAC指令控制,但不對電機速度進行控制,因此輕載時,可能發生超速現象,為了保護機械,必須對速度進行限制。
數據字典6072h用于設置電機的最大轉矩,6072h的值設為1000表示額定轉矩的100%;設為500,表示額定轉矩的50%。在EtherCAT的幾種不同的模式下均支持,例如在位置模式下可以設置最大允許的力矩,使用MOVE等運動指令控制電機運行,此時電機速度按照SPEED參數運動,若目標位置設置的更大,這樣碰到阻礙物后,速度受到限制,只能發出來設定的最大力矩。
SDO指令讀取示例:
SDO_READ(0,0,$6072,0,3,0) '讀取數據保存到TABLE(0),值為5000

七、電機極性設置
電機極性(旋轉方向)通過數據字典607Eh設定,有8個bit值可設定,如下圖,極性不反轉的時候,將607Eh的bit7-5均設為0;極性反轉的時候,將607Eh的bit7-4均設為1;其余位bit4-0均設為0。

設置方法:將607Eh的值設為224時,符號有反轉,給正方向指令,電機旋轉方向為CW(順時針);將607Eh的值設為0時,符號無反轉,給正方向指令,電機旋轉方向為CCW(逆時針);電機旋轉方向規定參見下圖。

設置示例:
使用驅動器軟件或SDO指令操作數據字典607Eh。
SDO_READ(Bus_Slot,iNode,$607E,0,5,0) '讀取極性保存到TABLE(0)
SDO_WRITE(Bus_Slot,iNode,$607E,0,5,$E0) '極性設置

驅動器軟件設置:可查看或修改設定值,值為224時,給正向運動參數,電機順時針旋轉。

八、驅動器其他參數設置
驅動器的出廠設置一般沒有反轉IO電平,會導致驅動器限位報警,出現限位報警之后,要根據驅動器手冊設置限位電平反轉。比如松下伺服要將Pr4.01、Pr4.02的參數分別設置為010101h(65793)、020202h(131586)。
IO輸入出廠默認值(下圖顯示十進制):

可在驅動器軟件上直接修改Pr4.01、Pr4.02的值,也可以通過SDO_write指令設置數據字典3401h和3402h設置正負限位的電平。
SDO指令設置正負限位的示例:
SDO_WRITE(Bus_Slot,iNode,$3401,0,4,$10101)'正限位電平,出廠值$818181
SDO_WRITE(Bus_Slot,iNode,$3402,0,4,$20202)'負限位電平,出廠值$828282
修改后的值,可查看數據字典的值,或查看參數分類。


其他參數的設置均可在“對象編輯器”窗口或“參數”窗口直接修改,修改完成保存到EEPROM,驅動器重新上電生效。
《EtherCAT總線運動控制器應用進階一》就講到這里。更多學習視頻及圖文詳解請關注我們的公眾號“正運動小助手”。
本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。
-
運動控制器
+關注
關注
2文章
444瀏覽量
25131 -
運動控制
+關注
關注
4文章
635瀏覽量
33354 -
EtherCAT總線
+關注
關注
5文章
80瀏覽量
5640 -
正運動技術
+關注
關注
0文章
118瀏覽量
597
發布評論請先 登錄







脈沖全閉環EtherCAT運動控制器的固件升級




評論