當(dāng)前位置: 首頁 > 工業(yè)電氣產(chǎn)品 > 工業(yè)繼電器 > 智能繼電器 > 智能繼電器擴(kuò)展模塊
發(fā)布日期:2022-05-18 點擊率:107
關(guān)鍵詞:正運(yùn)動技術(shù),EtherCAT,EIO24088
摘要:EIO系列帶軸的擴(kuò)展模塊的使用方法相同,僅是擴(kuò)展資源數(shù)量的區(qū)別。本文以EIO24088擴(kuò)展模塊為例,來對EIO系列擴(kuò)展模塊進(jìn)行使用說明。
EIO系列帶軸的擴(kuò)展模塊的使用方法相同,僅是擴(kuò)展資源數(shù)量的區(qū)別。本文以EIO24088擴(kuò)展模塊為例,來對EIO系列擴(kuò)展模塊進(jìn)行使用說明。
一擴(kuò)展模塊簡介
EIO24088擴(kuò)展模塊是EtherCAT總線控制器使用的擴(kuò)展模塊,可擴(kuò)展數(shù)字量IO和脈沖軸這兩類資源,通過EtherCAT總線連接控制器與EIO24088擴(kuò)展模塊。
當(dāng)控制器的IO或軸資源不夠的時候,需要增加擴(kuò)展模塊,控制器可以同時連接多個擴(kuò)展模塊,EIO系列擴(kuò)展模塊通過EtherCAT總線連接,每個擴(kuò)展模塊有唯一的地址,從0開始。
EIO24088軸擴(kuò)展時,為總線轉(zhuǎn)脈沖,將脈沖型驅(qū)動器接入到EIO24088擴(kuò)展模塊上的脈沖軸接口上。
EIO24088帶兩個EtherCAT總線接口,接線時注意EtherCAT IN 連接主控制器或上級模塊,EtherCAT OUT連接驅(qū)動設(shè)備或下一級擴(kuò)展板,IN和OUT口不可混用。
二材料準(zhǔn)備
(一)硬件
A.ZMC432控制器一臺,任意帶EtherCAT總線接口的控制器均可。
B.EtherCAT伺服驅(qū)動器+電機(jī)一套,脈沖型伺服驅(qū)動器+電機(jī)一套
C.EIO24088擴(kuò)展模塊一個
D.電腦一臺。
E.帶屏蔽層網(wǎng)線兩根。
F.24V直流電源一個。
G.接線端子與連接線若干。
(二)軟件
ZDevelop V3.10版本控制器編程軟件。
從正運(yùn)動官網(wǎng)www.zmotion.com.cn下載壓縮包,解壓后直接運(yùn)行應(yīng)用程序,無需安裝。
需要配置驅(qū)動器參數(shù)時下載驅(qū)動器調(diào)試軟件。
三硬件接線
ZMC432總線控制器支持EtherCAT總線連接,支持最快250us的刷新周期(16軸以內(nèi)),支持多達(dá)32軸運(yùn)動控制,支持直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨、虛擬軸設(shè)置等;同時還支持位置鎖存、硬件比較輸出、運(yùn)動中精準(zhǔn)輸出等,功能齊全,配置高。采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實現(xiàn)實時的運(yùn)動控制。
總線接線參考:
控制器、EIO擴(kuò)展模塊和驅(qū)動器的接線參考如下圖:
EIO24088擴(kuò)展模塊接線規(guī)則:EIO24088可接到EtherCAT總線上的任意節(jié)點。
EIO24088為總線上的一個設(shè)備節(jié)點,可接入8個脈沖型驅(qū)動器,驅(qū)動器按照AXIS 0到AXIS 7的順序依次編號,并且遵從總線上的驅(qū)動器編號規(guī)則。
驅(qū)動器的使能信號為脈沖接口內(nèi)的通用輸出口,直接通過主控制器的OP指令來使能。或使用SDO指令配置數(shù)據(jù)字典為自動使能后,主控制器無法直接控制對應(yīng)的輸出口來使能。
涉及的編號概念如下:總線相關(guān)指令參數(shù)會用到如下編號。
1.槽位號(slot)
槽位號是指控制器上總線接口的編號,缺省為0。當(dāng)控制器上有多個總線接口時,在線命令發(fā)送?*SLOT查看。
運(yùn)動控制器支持單總線時,槽位號為0。
支持雙總線時,EtherCAT總線槽位號為0,RTEX總線槽位號為1。
2.設(shè)備號(node)
設(shè)備號是指一個槽位上連接的所有設(shè)備的編號,從0開始,按設(shè)備在總線上的連接順序自動編號,可以通過NODE_COUNT(slot)指令查看總線上連接的設(shè)備總數(shù)。
3.驅(qū)動器編號
控制器會自動識別出槽位上的驅(qū)動器,編號從0開始,按驅(qū)動器在總線上的連接順序自動編號。
驅(qū)動器編號與設(shè)備號不同,只給槽位上的驅(qū)動器設(shè)備編號,其他設(shè)備忽略。
四擴(kuò)展資源映射方法
EIO24088擴(kuò)展模塊上有兩類資源需要映射,軸資源和IO資源。
控制器上程序只需通過IO編號就可以訪問到擴(kuò)展模塊上的IO資源,EtherCAT總線擴(kuò)展模塊的IO編號通過總線指令NODE_IO來設(shè)置。
IO映射時先查看控制器自身的最大IO編號(包括外部IO接口和脈沖軸內(nèi)的通用接口),再使用指令設(shè)置。
若擴(kuò)展的IO與控制器自身IO編號重合,二者將同時起作用,所以IO映射的編號在整個控制系統(tǒng)中均不得重復(fù)。
擴(kuò)展模塊的軸使用前需要使用AXIS_ADDRESS指令映射軸號,軸映射也需要注意軸號不得重復(fù)。
IO映射語法:NODE_IO(slot,node)=iobase
slot:槽位號,0-缺省
node:設(shè)備編號,編號從0開始
iobase:映射IO起始編號,設(shè)置結(jié)果只會是8的倍數(shù)
示例:NODE_IO(0,0)=32 '設(shè)置槽位0接口設(shè)備0的IO起始編號為32
軸映射語法:AXIS_ADDRESS(軸號)=(槽位號<<16)+驅(qū)動器編號+1
示例:AXIS_ADDRESS(0)=(0<<16)+0+1 'EtherCAT總線上的第一個驅(qū)動器,驅(qū)動器編號0,綁定為軸0
若第一個節(jié)點是EIO24088,那么這里的驅(qū)動器編號0對應(yīng)連接在EIO24088上的第一個脈沖型驅(qū)動器,否則便是EtherCAT總線驅(qū)動器。
五擴(kuò)展模塊上驅(qū)動器使用方法
EIO24088擴(kuò)展模塊需要經(jīng)過總線初始化之后才能使用,我們這里把一個脈沖型驅(qū)動器接到EIO24088擴(kuò)展模塊上的AXIS 0接口上,使用步驟如下:
1.執(zhí)行總線初始化程序,初始化過程中識別EIO擴(kuò)展模塊的設(shè)備編號和連接的驅(qū)動器編號,根據(jù)驅(qū)動器編號操作軸映射,根據(jù)設(shè)備號操作擴(kuò)展模塊的IO映射,設(shè)置DRIVE_PROFILE和ATYPE。
2.初始化成功后,使能EIO24088擴(kuò)展模塊上的脈沖驅(qū)動器,同樣也是操作脈沖軸接口內(nèi)的OP信號使能驅(qū)動器,由于擴(kuò)展模塊映射的起始IO編號是32,這里的軸接口AXIS 0-AXIS 7內(nèi)的通用輸出口編號是40-47。在輸出口窗口內(nèi)按下OP(40)或在程序中執(zhí)行指令OP(40,ON)均可使能AXIS 0上的脈沖型驅(qū)動器。
3.使能完成設(shè)置相關(guān)軸參數(shù),再發(fā)送運(yùn)動指令便可驅(qū)動電機(jī)。
軟件操作如下:
在初始化操作成功后,總線上能識別該擴(kuò)展模塊,可查看擴(kuò)展模塊上的軸接口數(shù),IO映射后輸入輸出的編號范圍。
起始編號映射為32,該擴(kuò)展模塊上的輸入編號為外部自帶的24點+軸接口通用輸入8點,一共32點,范圍32-63,輸出編號為外部的8點+軸接口通用輸出8點,共16點,范圍32-47。
EIO24088使用注意事項:
擴(kuò)展模塊上的IO不管有沒有使用,都需要使用NODE_IO指令映射EIO24088的輸入輸出編號。擴(kuò)展模塊的DRIVE_PROFILE需要配置為0,ATYPE設(shè)為65,但實際由于是脈沖型驅(qū)動器,軸類型并不是65,真實軸類型的配置使用SDO指令配置數(shù)據(jù)字典6011h設(shè)置。
初始化過程中若產(chǎn)生硬限位報警,可在軸參數(shù)窗口將硬限位的映射編號號指向-1,表示不映射,需要接入限位開關(guān)時再去修改FWD_IN和REV_IN。
EIO24088擴(kuò)展模塊設(shè)置:
通過SDO指令讀寫數(shù)據(jù)字典設(shè)置,只開放了部分?jǐn)?shù)據(jù)字典供設(shè)置,詳情參見EIO24088硬件手冊,更多驅(qū)動器參數(shù)使用驅(qū)動器調(diào)試軟件修改。
例如:擴(kuò)展的脈沖軸的真實軸類型ATYPE設(shè)置通過數(shù)據(jù)字典6011h設(shè)置,(按軸號依次設(shè)置,第一個驅(qū)動器設(shè)置數(shù)據(jù)字典編號為6011h+0*800h,第二個驅(qū)動器設(shè)置6011h+1*800h,以此類推,每個驅(qū)動器加800h,其他參數(shù)同理)。
數(shù)據(jù)字典讀取語法:
SDO_READ (槽位號, 設(shè)備編號, 數(shù)據(jù)字典編號, 數(shù)據(jù)字典子編號, 數(shù)據(jù)類型, 讀取數(shù)據(jù)存儲TABLE位置)
SDO_READ_AXIS (軸號, 數(shù)據(jù)字典編號, 數(shù)據(jù)字典子編號, 數(shù)據(jù)類型, 讀取數(shù)據(jù)存儲TABLE位置)
數(shù)據(jù)字典寫入語法:
SDO_WRITE (槽位號, 設(shè)備編號, 數(shù)據(jù)字典編號, 數(shù)據(jù)字典子編號, 數(shù)據(jù)類型, 寫入數(shù)據(jù)值)
SDO_WRITE_AXIS (軸號, 數(shù)據(jù)字典編號, 數(shù)據(jù)字典子編號, 數(shù)據(jù)類型, 寫入數(shù)據(jù)值)
數(shù)據(jù)字典讀寫示例:
global sub Sub_SetNodePara(iNode,iVender,iDevice,Iaxis)
if iVender = $41B and iDevice = $1ab0 then '正運(yùn)動24088脈沖擴(kuò)展軸
SDO_WRITE(Bus_Slot,iNode,$6011+Iaxis*$800,0,5,4) '設(shè)置擴(kuò)展脈沖軸ATYPE類型,值為4表示脈沖和編碼器信號在同一個軸號上
SDO_WRITE(Bus_Slot,iNode,$6012+Iaxis*$800,0,6,0) '設(shè)置擴(kuò)展脈沖軸INVERT_STEP脈沖輸出模式,模式0脈沖+方向
NODE_IO(Bus_Slot,iNode) = 32 + 32*iNode '設(shè)置240808上IO的起始映射地址
endif
end sub
如果EIO擴(kuò)展模塊之后還連接了EtherCAT驅(qū)動器,使用時注意總線掃描設(shè)備數(shù)量的設(shè)置,EtherCAT驅(qū)動器在初始化程序執(zhí)行完便使能成功,后續(xù)設(shè)置軸參數(shù)便能運(yùn)行,注意初始化過程中使用DRIVE_PROFILE指令配置合適的PDO列表,需要用到驅(qū)動器IO時,還需操作DRIVE_IO映射。
六脈沖軸與總線軸混合使用
驅(qū)動器在使用之前,先配置常用驅(qū)動器參數(shù),例如電子齒輪比、一圈脈沖數(shù)、電機(jī)轉(zhuǎn)向、控制器模式等,配置方法可參考公眾號歷史文章,關(guān)于脈沖型驅(qū)動器和EtherCAT/RTEX總線驅(qū)動器的配置方法都有詳細(xì)說明。
不同類型的軸混合使用時,主要是初始化過程和與驅(qū)動器通訊方式不同。
脈沖軸是通過給OP信號使能,總線軸通過一段初始化程序使能,使能成功后均可設(shè)置軸參數(shù)后執(zhí)行運(yùn)動。
驅(qū)動器通訊方式的區(qū)別:總線驅(qū)動器有對應(yīng)的驅(qū)動器讀寫指令或驅(qū)動器軟件修改參數(shù),脈沖型驅(qū)動器只能通過驅(qū)動器軟件修改參數(shù)。
演示配置:
本例子采用兩種不同類型的的驅(qū)動器,脈沖型驅(qū)動器和EtherCAT總線驅(qū)動器混合使用,將一個脈沖驅(qū)動器接在控制器的脈沖軸接口AXIS 0上;將另一個EtherCAT總線驅(qū)動器接在控制器的EtherCAT口上,設(shè)備號和驅(qū)動器編號均為0。
總線初始化完成,在“控制器狀態(tài)”能看到總線上的節(jié)點。
混合使用步驟:
脈沖軸的軸號按所接的AXIS 0口默認(rèn)是軸0,總線軸的軸號使用AXIS_ADDRESS指令映射為軸1。
1.使能EtherCAT總線驅(qū)動器:執(zhí)行總線初始化程序,設(shè)置EtherCAT總線軸的AXIS_ADDRESS、DRIVE_PROFILE和ATYPE等。
2.使能脈沖型驅(qū)動器:總線初始化成功后,使能控制器脈沖軸接口上的脈沖驅(qū)動器,操作脈沖軸接口內(nèi)的OP信號使能驅(qū)動器,這里的AXIS 0-AXIS 5口內(nèi)的通用輸出口編號是12-17。在輸出口窗口內(nèi)按下OP(12)或在程序中執(zhí)行指令OP(12,ON)均可使能。
3.驅(qū)動器使能完成,后續(xù)兩種不同的軸的使用方法基本一致,設(shè)置相關(guān)軸參數(shù),再發(fā)送運(yùn)動指令便可驅(qū)動電機(jī)。
控制器支持不同類型的軸混合插補(bǔ)。
總線初始化模板程序:
'****************ECAT總線初始化
global ConST PUL_AxisStart = 0 '本地脈沖軸起始軸號
global ConST PUL_AxisNum = 1 '本地脈沖軸軸數(shù)量
global ConST Bus_AxisStart = 1 '總線軸起始軸號
global ConST Bus_NodeNum = 1 '總線配置節(jié)點數(shù)量,用于判斷實際檢測到的從站數(shù)量是否一致
global ConST BUS_TYPE = 0 '總線類型。可用于上位機(jī)區(qū)分當(dāng)前總線類型
global ConST Bus_Slot = 0 '槽位號0(單總線控制器缺省0)
global MAX_AXISNUM '最大軸數(shù)
MAX_AXISNUM = SYS_ZFEATURE(0)
global Bus_InitStatus '總線初始化完成狀態(tài)
Bus_InitStatus = -1
global Bus_TotalAxisnum '檢查掃描的總軸數(shù)
delay(3000) '延時3S等待驅(qū)動器上電,不同驅(qū)動器自身上電時間不同,具體根據(jù)驅(qū)動器調(diào)整延時
?"總線通訊周期:",SERVO_PERIOD,"us"
Ecat_Init() '初始化ECAT總線
END
'************************ECAT總線初始化****************************************
'初始流程: slot_scan(掃描總線) -> 從站節(jié)點映射軸/io -> SLOT_START(啟動總線) -> 初始化成功
'****************************************************************************
global sub Ecat_Init()
local Node_Num,Temp_Axis,Drive_Vender,Drive_Device,Drive_Alias
RAPIDSTOP(2)
WAIT IDLE(0)
for i=0 to MAX_AXISNUM - 1 '初始化還原軸類型
AXIS_ENABLE(i) = 0
atype(i)=0
AXIS_ADDRESS(i) =0
DELAY(10) '防止所有驅(qū)動器全部同時切換使能導(dǎo)致瞬間電流過大
next
Bus_InitStatus = -1
' Bus_TotalAxisnum = 0
SLOT_STOP(Bus_Slot)
delay(200) '延時時間可以按需調(diào)整,確保驅(qū)動器已上電可以等待EtherCAT到位
slot_scan(Bus_Slot) '掃描總線
if return then
?"總線掃描成功","連接從站設(shè)備數(shù):"NODE_COUNT(Bus_Slot)
if NODE_COUNT(Bus_Slot) <> Bus_NodeNum then '判斷總線檢測數(shù)量是否為實際接線數(shù)量
?""
?"掃描節(jié)點數(shù)量與程序配置數(shù)量不一致!" ,"配置數(shù)量:"Bus_NodeNum,"檢測數(shù)量:"NODE_COUNT(Bus_Slot)
Bus_InitStatus = 0 '初始化失敗。報警提示
'return
endif
'"開始映射軸號"
for Node_Num=0 to NODE_COUNT(Bus_Slot)-1 '遍歷掃描到的所有從站節(jié)點
Drive_Vender = NODE_INFO(Bus_Slot,Node_Num,0) '讀取驅(qū)動器廠商
Drive_Device = NODE_INFO(Bus_Slot,Node_Num,1) '讀取設(shè)備編號
Drive_Alias = NODE_INFO(Bus_Slot,Node_Num,3) '讀取設(shè)備撥碼ID
if NODE_AXIS_COUNT(Bus_Slot,Node_Num) <> 0 then '判斷當(dāng)前節(jié)點是否有電機(jī)
for j=0 to NODE_AXIS_COUNT(Bus_Slot,Node_Num)-1 '根據(jù)節(jié)點帶的電機(jī)數(shù)量循環(huán)配置軸參數(shù)(針對一拖多驅(qū)動器)
Temp_Axis = Bus_AxisStart + Bus_TotalAxisnum '軸號按NODE順序分配
'Temp_Axis = Drive_Alias '軸號按驅(qū)動器設(shè)定的撥碼分配(一拖多需要特殊處理)
base(Temp_Axis)
AXIS_ADDRESS(Temp_Axis)= (Bus_Slot<<16)+ Bus_TotalAxisnum + 1 '映射軸號
ATYPE=65 '設(shè)置控制模式 65-位置 66-速度 67-轉(zhuǎn)矩
DRIVE_PROFILE=0 '配置為驅(qū)動器內(nèi)置PDO列表,可改為1,-1,等參數(shù) '配置為驅(qū)動器內(nèi)置PDO列表
' Sub_SetDriverIo(Drive_Vender,Temp_Axis,128 + 32*Temp_Axis) '映射驅(qū)動器IO IO映射到控制器IO32-以后每個驅(qū)動器間隔32點 '
Sub_SetNodePara(Node_Num,Drive_Vender,Drive_Device,j) '設(shè)置特殊總線參數(shù),EIO24088配置
disable_group(Temp_Axis) '每軸單獨分組
Bus_TotalAxisnum=Bus_TotalAxisnum+1 '總軸數(shù)+1
next
else 'IO擴(kuò)展模塊
' Sub_SetNodeIo(Node_Num,Drive_Vender,Drive_Device,1024 + 32*Node_Num) '映射擴(kuò)展模塊IO
endif
next
?"軸號映射完成","連接總軸數(shù):"Bus_TotalAxisnum
delay(200)
SLOT_START(Bus_Slot) '啟動總線
if return then
'?"開始清除驅(qū)動器錯誤"
for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1
base(i)
DRIVE_CLEAR(0)
DELAY 50
'?"驅(qū)動器錯誤清除完成"
datum(0) '清除控制器軸狀態(tài)錯誤"
wa 100
wdog=1 '使能總開關(guān)
'"軸使能"
AXIS_ENABLE=1
next
Bus_InitStatus = 1
?"軸使能完成"
'本地脈沖軸配置
for i = 0 to PUL_AxisNum - 1
base(PUL_AxisStart + i)
AXIS_ADDRESS = (-1<<16) + i
ATYPE = 4
next
?"總線開啟成功"
else
?"總線開啟失敗"
Bus_InitStatus = 0
endif
else
?"總線掃描失敗"
Bus_InitStatus = 0
endif
end sub
'***********************EIO24088擴(kuò)展模塊設(shè)置*****************************
'通過NODE_IO(Bus_Slot,Node_Num)分配模塊IO起始地址
'************************************************************************
global sub Sub_SetNodePara(iNode,iVender,iDevice,Iaxis)
if iVender = $41B and iDevice = $1ab0 then '正運(yùn)動24088脈沖擴(kuò)展軸
SDO_WRITE(Bus_Slot,iNode,$6011+Iaxis*$800,0,5,4) '設(shè)置擴(kuò)展脈沖軸ATYPE類型
SDO_WRITE(Bus_Slot,iNode,$6012+Iaxis*$800,0,6,0) '設(shè)置擴(kuò)展脈沖軸INVERT_STEP脈沖輸出模式
NODE_IO(Bus_Slot,iNode) = 32 + 32*iNode '設(shè)置240808上IO的起始映射地址
endif
end sub
'***********************總線IO擴(kuò)展模塊映射********************************
'通過NODE_IO(Bus_Slot,Node_Num)分配模塊IO起始地址
'**************************************************************************
global sub Sub_SetNodeIo(iNode,iVender,iDevice,i_IoNum)
if iVender = $41B and iDevice = $130 then '正運(yùn)動EIO1616MT
NODE_IO(Bus_Slot,iNode) = i_IoNum
endif
end sub
《8軸EtherCAT軸擴(kuò)展模塊EIO24088的使用》就講到這里。
更多精彩內(nèi)容請關(guān)注“正運(yùn)動小助手”公眾號,需要相關(guān)開發(fā)環(huán)境與例程代碼,請咨詢正運(yùn)動技術(shù)銷售工程師:400-089-8936。
本文由正運(yùn)動技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國智能制造水平。文章版權(quán)歸正運(yùn)動技術(shù)所有,如有轉(zhuǎn)載請注明文章來源。
下一篇: PLC、DCS、FCS三大控