<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      產品分類

      當前位置: 首頁 > 工業電氣產品 > 工業繼電器 > 智能繼電器 > 智能繼電器擴展模塊

      類型分類:
      科普知識
      數據分類:
      智能繼電器擴展模塊

      8軸EtherCAT軸擴展模塊EIO24088的使用

      發布日期:2022-05-18 點擊率:90

      • 關鍵詞:正運動技術,EtherCAT,EIO24088


      • 摘要:EIO系列帶軸的擴展模塊的使用方法相同,僅是擴展資源數量的區別。本文以EIO24088擴展模塊為例,來對EIO系列擴展模塊進行使用說明。


      EIO系列帶軸的擴展模塊的使用方法相同,僅是擴展資源數量的區別。本文以EIO24088擴展模塊為例,來對EIO系列擴展模塊進行使用說明。


      一擴展模塊簡介


      EIO24088擴展模塊是EtherCAT總線控制器使用的擴展模塊,可擴展數字量IO和脈沖軸這兩類資源,通過EtherCAT總線連接控制器與EIO24088擴展模塊。


      image.png


      當控制器的IO或軸資源不夠的時候,需要增加擴展模塊,控制器可以同時連接多個擴展模塊,EIO系列擴展模塊通過EtherCAT總線連接,每個擴展模塊有唯一的地址,從0開始。


      EIO24088軸擴展時,為總線轉脈沖,將脈沖型驅動器接入到EIO24088擴展模塊上的脈沖軸接口上。


      EIO24088帶兩個EtherCAT總線接口,接線時注意EtherCAT IN 連接主控制器或上級模塊,EtherCAT OUT連接驅動設備或下一級擴展板,IN和OUT口不可混用。


      image.png

      二材料準備


      (一)硬件

      A.ZMC432控制器一臺,任意帶EtherCAT總線接口的控制器均可。

      B.EtherCAT伺服驅動器+電機一套,脈沖型伺服驅動器+電機一套

      C.EIO24088擴展模塊一個

      D.電腦一臺。

      E.帶屏蔽層網線兩根。

      F.24V直流電源一個。

      G.接線端子與連接線若干。


      (二)軟件

      ZDevelop V3.10版本控制器編程軟件。


      image.png


      從正運動官網www.zmotion.com.cn下載壓縮包,解壓后直接運行應用程序,無需安裝。


      需要配置驅動器參數時下載驅動器調試軟件。


      三硬件接線


      ZMC432總線控制器支持EtherCAT總線連接,支持最快250us的刷新周期(16軸以內),支持多達32軸運動控制,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸設置等;同時還支持位置鎖存、硬件比較輸出、運動中精準輸出等,功能齊全,配置高。采用優化的網絡通訊協議可以實現實時的運動控制。


      image.png


      總線接線參考:


      控制器、EIO擴展模塊和驅動器的接線參考如下圖:


      image.png


      EIO24088擴展模塊接線規則:EIO24088可接到EtherCAT總線上的任意節點。

      EIO24088為總線上的一個設備節點,可接入8個脈沖型驅動器,驅動器按照AXIS 0到AXIS 7的順序依次編號,并且遵從總線上的驅動器編號規則。

      驅動器的使能信號為脈沖接口內的通用輸出口,直接通過主控制器的OP指令來使能。或使用SDO指令配置數據字典為自動使能后,主控制器無法直接控制對應的輸出口來使能。

      涉及的編號概念如下:總線相關指令參數會用到如下編號。


      1.槽位號(slot)


      槽位號是指控制器上總線接口的編號,缺省為0。當控制器上有多個總線接口時,在線命令發送?*SLOT查看。


      image.png


      運動控制器支持單總線時,槽位號為0。


      支持雙總線時,EtherCAT總線槽位號為0,RTEX總線槽位號為1。


      2.設備號(node)


      設備號是指一個槽位上連接的所有設備的編號,從0開始,按設備在總線上的連接順序自動編號,可以通過NODE_COUNT(slot)指令查看總線上連接的設備總數。


      3.驅動器編號


      控制器會自動識別出槽位上的驅動器,編號從0開始,按驅動器在總線上的連接順序自動編號。


      驅動器編號與設備號不同,只給槽位上的驅動器設備編號,其他設備忽略。


      四擴展資源映射方法


      EIO24088擴展模塊上有兩類資源需要映射,軸資源和IO資源。


      控制器上程序只需通過IO編號就可以訪問到擴展模塊上的IO資源,EtherCAT總線擴展模塊的IO編號通過總線指令NODE_IO來設置。


      IO映射時先查看控制器自身的最大IO編號(包括外部IO接口和脈沖軸內的通用接口),再使用指令設置。


      若擴展的IO與控制器自身IO編號重合,二者將同時起作用,所以IO映射的編號在整個控制系統中均不得重復。


      擴展模塊的軸使用前需要使用AXIS_ADDRESS指令映射軸號,軸映射也需要注意軸號不得重復。


      IO映射語法:NODE_IO(slot,node)=iobase


      slot:槽位號,0-缺省


      node:設備編號,編號從0開始


      iobase:映射IO起始編號,設置結果只會是8的倍數


      示例:NODE_IO(0,0)=32    '設置槽位0接口設備0的IO起始編號為32


      軸映射語法:AXIS_ADDRESS(軸號)=(槽位號<<16)+驅動器編號+1


      示例:AXIS_ADDRESS(0)=(0<<16)+0+1   'EtherCAT總線上的第一個驅動器,驅動器編號0,綁定為軸0


      若第一個節點是EIO24088,那么這里的驅動器編號0對應連接在EIO24088上的第一個脈沖型驅動器,否則便是EtherCAT總線驅動器。


      五擴展模塊上驅動器使用方法


      EIO24088擴展模塊需要經過總線初始化之后才能使用,我們這里把一個脈沖型驅動器接到EIO24088擴展模塊上的AXIS 0接口上,使用步驟如下:


      1.執行總線初始化程序,初始化過程中識別EIO擴展模塊的設備編號和連接的驅動器編號,根據驅動器編號操作軸映射,根據設備號操作擴展模塊的IO映射,設置DRIVE_PROFILE和ATYPE。


      2.初始化成功后,使能EIO24088擴展模塊上的脈沖驅動器,同樣也是操作脈沖軸接口內的OP信號使能驅動器,由于擴展模塊映射的起始IO編號是32,這里的軸接口AXIS 0-AXIS 7內的通用輸出口編號是40-47。在輸出口窗口內按下OP(40)或在程序中執行指令OP(40,ON)均可使能AXIS 0上的脈沖型驅動器。


      3.使能完成設置相關軸參數,再發送運動指令便可驅動電機。


      軟件操作如下:


      image.png


      在初始化操作成功后,總線上能識別該擴展模塊,可查看擴展模塊上的軸接口數,IO映射后輸入輸出的編號范圍。


      起始編號映射為32,該擴展模塊上的輸入編號為外部自帶的24點+軸接口通用輸入8點,一共32點,范圍32-63,輸出編號為外部的8點+軸接口通用輸出8點,共16點,范圍32-47。


      image.png


      EIO24088使用注意事項:


      擴展模塊上的IO不管有沒有使用,都需要使用NODE_IO指令映射EIO24088的輸入輸出編號。擴展模塊的DRIVE_PROFILE需要配置為0,ATYPE設為65,但實際由于是脈沖型驅動器,軸類型并不是65,真實軸類型的配置使用SDO指令配置數據字典6011h設置。


      初始化過程中若產生硬限位報警,可在軸參數窗口將硬限位的映射編號號指向-1,表示不映射,需要接入限位開關時再去修改FWD_IN和REV_IN。


      EIO24088擴展模塊設置:


      通過SDO指令讀寫數據字典設置,只開放了部分數據字典供設置,詳情參見EIO24088硬件手冊,更多驅動器參數使用驅動器調試軟件修改。


      例如:擴展的脈沖軸的真實軸類型ATYPE設置通過數據字典6011h設置,(按軸號依次設置,第一個驅動器設置數據字典編號為6011h+0*800h,第二個驅動器設置6011h+1*800h,以此類推,每個驅動器加800h,其他參數同理)。


      image.png


      數據字典讀取語法:


      SDO_READ (槽位號, 設備編號, 數據字典編號, 數據字典子編號, 數據類型, 讀取數據存儲TABLE位置)


      SDO_READ_AXIS (軸號, 數據字典編號, 數據字典子編號, 數據類型, 讀取數據存儲TABLE位置)


      數據字典寫入語法:


      SDO_WRITE (槽位號, 設備編號, 數據字典編號, 數據字典子編號, 數據類型, 寫入數據值)


      SDO_WRITE_AXIS (軸號, 數據字典編號, 數據字典子編號, 數據類型, 寫入數據值)


      數據字典讀寫示例:


      global sub Sub_SetNodePara(iNode,iVender,iDevice,Iaxis)

          if iVender = $41B and iDevice = $1ab0   then    '正運動24088脈沖擴展軸

              SDO_WRITE(Bus_Slot,iNode,$6011+Iaxis*$800,0,5,4)  '設置擴展脈沖軸ATYPE類型,值為4表示脈沖和編碼器信號在同一個軸號上

              SDO_WRITE(Bus_Slot,iNode,$6012+Iaxis*$800,0,6,0)  '設置擴展脈沖軸INVERT_STEP脈沖輸出模式,模式0脈沖+方向

              NODE_IO(Bus_Slot,iNode) = 32 + 32*iNode    '設置240808上IO的起始映射地址

          endif

      end sub

      如果EIO擴展模塊之后還連接了EtherCAT驅動器,使用時注意總線掃描設備數量的設置,EtherCAT驅動器在初始化程序執行完便使能成功,后續設置軸參數便能運行,注意初始化過程中使用DRIVE_PROFILE指令配置合適的PDO列表,需要用到驅動器IO時,還需操作DRIVE_IO映射。


      image.png


      六脈沖軸與總線軸混合使用


      驅動器在使用之前,先配置常用驅動器參數,例如電子齒輪比、一圈脈沖數、電機轉向、控制器模式等,配置方法可參考公眾號歷史文章,關于脈沖型驅動器和EtherCAT/RTEX總線驅動器的配置方法都有詳細說明。


      不同類型的軸混合使用時,主要是初始化過程和與驅動器通訊方式不同。


      脈沖軸是通過給OP信號使能,總線軸通過一段初始化程序使能,使能成功后均可設置軸參數后執行運動。


      驅動器通訊方式的區別:總線驅動器有對應的驅動器讀寫指令或驅動器軟件修改參數,脈沖型驅動器只能通過驅動器軟件修改參數。


      演示配置:


      本例子采用兩種不同類型的的驅動器,脈沖型驅動器和EtherCAT總線驅動器混合使用,將一個脈沖驅動器接在控制器的脈沖軸接口AXIS 0上;將另一個EtherCAT總線驅動器接在控制器的EtherCAT口上,設備號和驅動器編號均為0。


      總線初始化完成,在“控制器狀態”能看到總線上的節點。


      image.png


      混合使用步驟:


      脈沖軸的軸號按所接的AXIS 0口默認是軸0,總線軸的軸號使用AXIS_ADDRESS指令映射為軸1。


      1.使能EtherCAT總線驅動器:執行總線初始化程序,設置EtherCAT總線軸的AXIS_ADDRESS、DRIVE_PROFILE和ATYPE等。


      2.使能脈沖型驅動器:總線初始化成功后,使能控制器脈沖軸接口上的脈沖驅動器,操作脈沖軸接口內的OP信號使能驅動器,這里的AXIS 0-AXIS 5口內的通用輸出口編號是12-17。在輸出口窗口內按下OP(12)或在程序中執行指令OP(12,ON)均可使能。


      3.驅動器使能完成,后續兩種不同的軸的使用方法基本一致,設置相關軸參數,再發送運動指令便可驅動電機。


      控制器支持不同類型的軸混合插補。


      image.png


      總線初始化模板程序:


      '****************ECAT總線初始化

      global ConST PUL_AxisStart   = 0    '本地脈沖軸起始軸號

      global ConST PUL_AxisNum   = 1    '本地脈沖軸軸數量

      global ConST Bus_AxisStart   = 1      '總線軸起始軸號

      global ConST Bus_NodeNum   = 1      '總線配置節點數量,用于判斷實際檢測到的從站數量是否一致

      global ConST BUS_TYPE = 0         '總線類型。可用于上位機區分當前總線類型

      global ConST Bus_Slot  = 0        '槽位號0(單總線控制器缺省0)


      global  MAX_AXISNUM        '最大軸數

      MAX_AXISNUM = SYS_ZFEATURE(0)


      global Bus_InitStatus      '總線初始化完成狀態

      Bus_InitStatus = -1

      global  Bus_TotalAxisnum    '檢查掃描的總軸數


      delay(3000)    '延時3S等待驅動器上電,不同驅動器自身上電時間不同,具體根據驅動器調整延時


      ?"總線通訊周期:",SERVO_PERIOD,"us"

      Ecat_Init()      '初始化ECAT總線 



      END



      '************************ECAT總線初始化****************************************

      '初始流程:  slot_scan(掃描總線) ->   從站節點映射軸/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)                      '防止所有驅動器全部同時切換使能導致瞬間電流過大

        next


        Bus_InitStatus = -1

      '  Bus_TotalAxisnum = 0  

        SLOT_STOP(Bus_Slot)        

        delay(200)                   '延時時間可以按需調整,確保驅動器已上電可以等待EtherCAT到位

        slot_scan(Bus_Slot)                      '掃描總線

        if return then 

          ?"總線掃描成功","連接從站設備數:"NODE_COUNT(Bus_Slot)

          if NODE_COUNT(Bus_Slot) <> Bus_NodeNum then    '判斷總線檢測數量是否為實際接線數量

            ?""  

            ?"掃描節點數量與程序配置數量不一致!" ,"配置數量:"Bus_NodeNum,"檢測數量:"NODE_COUNT(Bus_Slot)

            Bus_InitStatus = 0    '初始化失敗。報警提示

            'return

          endif   

          

          

          '"開始映射軸號"

          for Node_Num=0 to NODE_COUNT(Bus_Slot)-1            '遍歷掃描到的所有從站節點

            Drive_Vender = NODE_INFO(Bus_Slot,Node_Num,0)        '讀取驅動器廠商

            Drive_Device = NODE_INFO(Bus_Slot,Node_Num,1)        '讀取設備編號

            Drive_Alias = NODE_INFO(Bus_Slot,Node_Num,3)          '讀取設備撥碼ID

            

            if NODE_AXIS_COUNT(Bus_Slot,Node_Num) <> 0  then        '判斷當前節點是否有電機

              for j=0 to NODE_AXIS_COUNT(Bus_Slot,Node_Num)-1      '根據節點帶的電機數量循環配置軸參數(針對一拖多驅動器)

                    

                Temp_Axis = Bus_AxisStart + Bus_TotalAxisnum    '軸號按NODE順序分配

                'Temp_Axis = Drive_Alias              '軸號按驅動器設定的撥碼分配(一拖多需要特殊處理)          

                base(Temp_Axis)

                AXIS_ADDRESS(Temp_Axis)= (Bus_Slot<<16)+ Bus_TotalAxisnum + 1  '映射軸號

                ATYPE=65    '設置控制模式 65-位置 66-速度 67-轉矩   

                  DRIVE_PROFILE=0     '配置為驅動器內置PDO列表,可改為1,-1,等參數                                         '配置為驅動器內置PDO列表

                


      '          Sub_SetDriverIo(Drive_Vender,Temp_Axis,128 + 32*Temp_Axis)    '映射驅動器IO  IO映射到控制器IO32-以后每個驅動器間隔32點      '          

                          Sub_SetNodePara(Node_Num,Drive_Vender,Drive_Device,j)      '設置特殊總線參數,EIO24088配置


                disable_group(Temp_Axis)                      '每軸單獨分組

                Bus_TotalAxisnum=Bus_TotalAxisnum+1                  '總軸數+1

              next

            else                            'IO擴展模塊

      '        Sub_SetNodeIo(Node_Num,Drive_Vender,Drive_Device,1024 + 32*Node_Num)    '映射擴展模塊IO  

            endif

          next

          ?"軸號映射完成","連接總軸數:"Bus_TotalAxisnum

          

          delay(200)

          SLOT_START(Bus_Slot)        '啟動總線

          if return then 

            

            

            

            '?"開始清除驅動器錯誤"

            for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1 

              base(i)

              

              DRIVE_CLEAR(0)

              DELAY 50

        

              '?"驅動器錯誤清除完成"

              datum(0)            '清除控制器軸狀態錯誤"

              wa 100  

              

              wdog=1              '使能總開關

              

              '"軸使能"

              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擴展模塊設置*****************************

      '通過NODE_IO(Bus_Slot,Node_Num)分配模塊IO起始地址

      '************************************************************************

      global sub Sub_SetNodePara(iNode,iVender,iDevice,Iaxis)

          if  iVender = $41B and iDevice = $1ab0   then    '正運動24088脈沖擴展軸

              SDO_WRITE(Bus_Slot,iNode,$6011+Iaxis*$800,0,5,4)      '設置擴展脈沖軸ATYPE類型

              SDO_WRITE(Bus_Slot,iNode,$6012+Iaxis*$800,0,6,0)      '設置擴展脈沖軸INVERT_STEP脈沖輸出模式

              NODE_IO(Bus_Slot,iNode) = 32 + 32*iNode          '設置240808上IO的起始映射地址        

          endif

      end sub



      '***********************總線IO擴展模塊映射********************************

      '通過NODE_IO(Bus_Slot,Node_Num)分配模塊IO起始地址

      '**************************************************************************

      global sub Sub_SetNodeIo(iNode,iVender,iDevice,i_IoNum)

          if iVender = $41B and iDevice = $130   then    '正運動EIO1616MT

             NODE_IO(Bus_Slot,iNode) = i_IoNum

          endif

      end sub


      《8軸EtherCAT軸擴展模塊EIO24088的使用》就講到這里。

      更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師:400-089-8936。


      本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。


      下一篇: PLC、DCS、FCS三大控

      上一篇: ZBasic結合Qt實現機器

      推薦產品

      更多
      主站蜘蛛池模板: 国内精品综合久久久40p| 亚洲欧洲日产国产综合网| 国产精品综合AV一区二区国产馆| 亚洲国产综合在线| 成人综合婷婷国产精品久久蜜臀| 天天爱天天做色综合| 伊人久久大香线焦AV综合影院| 亚洲狠狠婷婷综合久久久久| 国产成人亚洲综合网站不卡| 插插插色欲综合网| 色偷偷尼玛图亚洲综合| 久久综合图区亚洲综合图区| 亚洲综合精品香蕉久久网97| 色噜噜狠狠狠色综合久| 99久久国产综合精品1尤物| 狠狠激情五月综合婷婷俺| 激情综合亚洲色婷婷五月APP| 精品福利一区二区三区精品国产第一国产综合精品 | 伊人久久综合影院| 亚洲欧美综合精品成人导航| 久久亚洲伊人中字综合精品| 一97日本道伊人久久综合影院| 色婷婷综合久久久中文字幕| 狠狠色狠狠色综合伊人| 99精品国产综合久久久久五月天| 色综合天天综合高清网| 狠狠色狠狠色综合日日五| 国产香蕉久久精品综合网| 伊人久久久大香线蕉综合直播| 色综合久久无码五十路人妻| 婷婷综合久久中文字幕蜜桃三电影| 久久综合视频网站| 国产香蕉尹人综合在线| 久久88色综合色鬼| 色综合天天综合网站中国| 综合五月激情二区视频| 18和谐综合色区| 国产婷婷综合在线视频中| 亚洲综合激情另类专区| 久久综合九色综合精品| 久久综合亚洲色HEZYO社区|