天天干天天做天天操-天天干天天做天天射-天天干网-天天干网站-天天干网址

產(chǎn)品分類

當(dāng)前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 運(yùn)動控制 > 伺服電機(jī)

類型分類:
科普知識
數(shù)據(jù)分類:
伺服電機(jī)

正運(yùn)動技術(shù)運(yùn)動控制器EtherCAT總線-如何進(jìn)行運(yùn)動控制器EtherCAT總線的基礎(chǔ)使用?

發(fā)布日期:2022-04-25 點(diǎn)擊率:466 品牌:組態(tài)王_Kingview

  1、材料準(zhǔn)備與控制器接線參考

  材料準(zhǔn)備:

  1)電腦1臺,安裝ZDevelop3.01以上版本軟件。

  2)控制器1個。

  3)24V直流電源2個(主電源,IO電源)。

  4)總線驅(qū)動器+電機(jī)(或步進(jìn)驅(qū)動器+電機(jī))若干。

  5)控制器接線端子若干。

  6)網(wǎng)線若干。

  7)連接線若干。

  8)不同類型擴(kuò)展模塊多個(擴(kuò)展模塊接線參考參見下文)。

  

1.png

  

   2、擴(kuò)展模塊的作用

  

  當(dāng)控制器自身的軸資源、IO資源不夠用時,可采用擴(kuò)展模塊來擴(kuò)展,可以擴(kuò)展脈沖軸、數(shù)字量輸入輸出、模擬量輸入輸出這三種類型。只有帶脈沖軸接口的擴(kuò)展模塊才支持?jǐn)U展脈沖軸數(shù),總線軸不可擴(kuò)展。

  擴(kuò)展模塊按連接方式可分為ZCAN總線擴(kuò)展模塊和EtherCAT擴(kuò)展模塊兩類。

  按產(chǎn)品系列劃分,可分為ZCAN擴(kuò)展模塊,EtherCAT擴(kuò)展模塊、ZMIO300擴(kuò)展模塊三大類。

  IO數(shù)字量擴(kuò)展:ZMC控制器4系列及以上的型號IO點(diǎn)數(shù)可擴(kuò)展至4096點(diǎn)。

  AIO模擬量擴(kuò)展:ZMC控制器4系列及以上的型號AIO點(diǎn)數(shù)可擴(kuò)展至520點(diǎn)。

  軸擴(kuò)展:只能擴(kuò)展脈沖軸,鑒于成本和使用方面,不建議使用過多軸擴(kuò)展板,可選用支持脈沖軸數(shù)較多的控制器型號。

  控制器可擴(kuò)展的IO點(diǎn)數(shù)可在硬件手冊或“命令與輸出”窗口輸入?*max打印查看。

  

  2.png

  

   3、EtherCAT總線擴(kuò)展模塊

  

  EtherCAT總線擴(kuò)展模塊包含兩個系列:可分為EIO擴(kuò)展模塊、ZMIO300-ECAT擴(kuò)展模塊。

  EIO1616MT支持?jǐn)U展數(shù)字量IO,包含16路輸入和16路輸出。

  EIO24088可擴(kuò)展數(shù)字量IO和脈沖軸,支持?jǐn)U展8個脈沖軸,包含24路輸入和8路輸出。

  ZMIO300-ECAT擴(kuò)展模塊為立式組合模塊,可擴(kuò)展數(shù)字量IO和模擬量。

  EtherCAT通訊建議采用帶屏蔽層的雙絞線進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)傳輸。

  3.png

  4.png

   1)EIO擴(kuò)展模塊

  A、EIO擴(kuò)展模塊使用EtherCAT總線擴(kuò)展,可選型號如下表:

  

  5.png

  

  EIO1616雙電源供電(除了主電源,IO也需要單獨(dú)供電),EIO24088為單電源供電。

  擴(kuò)展模塊數(shù)字量IO接口默認(rèn)支持NPN型。

  EtherCAT擴(kuò)展模塊接線只需將各個模塊的EtherCAT口相互連接即可,EIO擴(kuò)展板帶兩個EtherCAT接口,EtherCAT IN口接主控制器,EtherCAT OUT口接下級擴(kuò)展板或驅(qū)動設(shè)備,不可混用。

  B、EIO擴(kuò)展模塊使用接線

  EIO擴(kuò)展接線參考如下:

  

  6.png

  

   2)ZMIO300-ECAT擴(kuò)展模塊

  A、ZMIO300-ECAT擴(kuò)展模塊可搭配子模塊如下表:

  

  7.png

  

  模擬量精度為16位,有NPN和PNP兩種輸入方式可選,數(shù)字量輸入輸出口帶信號狀態(tài)指示燈。

  ZMIO300-16DO/ZMIO300-16DOP數(shù)字量輸出需要一路電源單獨(dú)供電。

  B、ZMIO300-ECAT擴(kuò)展模塊使用接線

  

  8.png

  

  ZMIO300-ECAT擴(kuò)展模塊接線參考如下,與EIO擴(kuò)展模塊接線方法相同。

  EtherCAT IN口與EtherCAT OUT口不可混用。

  

   4、EtherCAT總線使用

  

  EtherCAT總線上連接的電機(jī)則需要編寫一段程序來進(jìn)行使能。使能之后的應(yīng)用與脈沖電機(jī)一致,運(yùn)動指令都是相同的。初始化程序參見文章末尾。

  初始化過程主要包含以下幾個步驟:

  1、總線掃描SLOT_SCAN (slot)

  2、軸映射AXIS_ADDRESS,擴(kuò)展模塊IO映射NODE_IO

  3、總線開啟SLOT_START (slot)

  4、清除驅(qū)動器錯誤DRIVE_CLEAR(0)

  5、軸使能AXIS_ENABLE(單軸使能),WDOG(總使能)

  初始化成功后,便可以使用運(yùn)動控制指令控制總線軸運(yùn)轉(zhuǎn)。

  擴(kuò)展的資源必須映射到控制器本地資源才可使用。

  不同的EtherCAT擴(kuò)展模塊,IO映射、軸映射方法相同。

  IO映射采用NODE_IO指令(數(shù)字量)、NODE_AIO指令(模擬量)設(shè)置,軸映射采用AXIS_ADDRESS指令映射軸號。

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

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

  

   5、EtherCAT總線相關(guān)概念

  

  總線相關(guān)指令參數(shù)會用到如下編號:

  槽位號(slot)

  槽位號是指控制器上總線接口的編號,缺省為0。當(dāng)控制器上有多個總線接口,?*SLOT查看槽位號。

  

  9.png

  

  運(yùn)動控制器支持單總線時,槽位號為0。

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

   設(shè)備號(node)

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

   驅(qū)動器編號

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

  驅(qū)動器編號與設(shè)備號不同,只給槽位上的驅(qū)動器設(shè)備編號,其他設(shè)備忽略。

  

   6、IO映射

  

   1)數(shù)字量IO

  NODE_IO指令設(shè)置設(shè)備的數(shù)字量IO起始編號,單個設(shè)備的輸入輸出的起始編號一樣。必須總線掃描后才能設(shè)置。

  語法:

  NODE_IO(slot, node)=iobase

          slot:槽位號,0-缺省

          node:設(shè)備編號,編號從0開始

          iobase:映射IO起始編號,設(shè)置結(jié)果只會是8的倍數(shù)

  示例:

  SLOT_SCAN(0)                             '掃描總線

  IF NODE_COUNT(0)>0 THEN     '判斷槽位0上是否有設(shè)備

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

      ?NODE_IO(0,0)                         '打印出設(shè)備0的IO起始編號

  ENDIF

   2)模擬量IO

      NODE_AIO指令設(shè)置設(shè)備的模擬量IO起始編號,單個設(shè)備的輸入輸出的起始編號一樣。必須總線掃描后才能讀取。

      NODE_AIO(slot, node[,idir])=Aiobase

              slot:槽位號,0-缺省

              node:設(shè)備編號,編號從0開始

              idir:AD/DA選擇 。0-缺省,同時設(shè)置AIN、AOUT,讀取時只讀AIN;3-AIN;4-AOUT

  示例:

      SLOT_SCAN(0)             '掃描總線

      IF NODE_COUNT(0)>0 THEN     '判斷槽位0上是否有設(shè)備

              NODE_AIO(0,0,0)=8     '設(shè)置槽位0接口設(shè)備0的AIN和AOUT起始編號都為8

              ?NODE_AIO(0,0,0)     '打印出設(shè)備0的AIO起始編號

  ENDIF

   7、EtherCAT總線軸映射

  總線軸需要進(jìn)行軸映射操作,采用AXIS_ADDRESS指令映射,操作方法如下:

  AXIS_ADDRESS(軸號)=(槽位號<<16)+驅(qū)動器編號+1

  軸映射寫在總線初始化程序中,總線掃描之后,開啟總線之前。

  示例:

  AXIS_ADDRESS (0)=(0<<16)+0+1     '第一個ECAT驅(qū)動器,驅(qū)動器編號0,綁定為軸0

  AXIS_ADDRESS (2)=(0<<16)+1+1     '第二個ECAT驅(qū)動器,驅(qū)動器編號1,綁定為軸2

  AXIS_ADDRESS (1)=(0<<16)+2+1     '第三個ECAT驅(qū)動器,驅(qū)動器編號2,綁定為軸1

  ATYPE(0)=65         '設(shè)置為ECAT軸類型, 65-位置 66-速度 67-轉(zhuǎn)矩

  ATYPE(1)=65

  ATYPE(2)=65

   8、EtherCAT總線狀態(tài)

  使用編程軟件成功連接到控制器之后,執(zhí)行總線掃描之后,在線命令欄輸入?*EtherCAT打印出每個NODE節(jié)點(diǎn)的狀態(tài)。

  Slot 0 contain 1 nodes:0槽位口共連接了1個設(shè)備

  Lostcount 0-0:丟包數(shù)

  Node:設(shè)備連接NODE編號

  Status:設(shè)備連接狀態(tài),參考NODE_STATUS

  Mainid:廠商ID

  Productid:設(shè)備ID

  Axises:設(shè)備總軸數(shù)

  Alstate:設(shè)備OP狀態(tài)

  Node_profile:設(shè)備Profile設(shè)置

  Bindaxis:映射到控制器的軸號,-1表示未映射

  Drive_profile:設(shè)備收發(fā)PDO配置

  Controlword:控制字

  Drive_status:設(shè)備當(dāng)前狀態(tài),參考DRIVE_STATUS

  Drive_mode:設(shè)備控制模式

  Target:電機(jī)位置

  Encode:編碼器位置

  

   9、EtherCAT擴(kuò)展模塊參考配置

  

  控制模塊接線完成,使用ZDevelop軟件連接上控制器,運(yùn)行總線初始化程序,打開“控制器”-“控制器狀態(tài)”窗口,查看槽位0節(jié)點(diǎn)信息,可以看到EtherCAT總線連接的全部設(shè)備的信息。

   1)EIO擴(kuò)展模塊

  控制模塊配置:

  1個ZMC432+1個EIO1616MT。

  EIO1616MT的節(jié)點(diǎn)號為0,擴(kuò)展的數(shù)字量輸入IO編號為1024-1039共16個,擴(kuò)展的數(shù)字量輸出IO編號為1024-1039共16個。

  NODE_IO(0,0)=1024

  

  11.png

  

  2)ZMIO300-ECAT擴(kuò)展模塊

  控制模塊配置:

  1個ZMC432+1個ZMIO300-ECAT通訊模塊+4個ZMIO300-16DI輸入+2個ZMIO300-16DO輸出+1個ZMIO300-4AD+1個ZMIO300-4DA。

  NODE_IO(0,0)=32 'IO映射,起始編號從32開始,擴(kuò)展了64個輸入和32個輸出

  NODE_AIO(0,0,0)=4 'AIO映射,起始編號從4開始,擴(kuò)展4個輸入和4個輸出

  

  12.png

  

   10、EtherCAT總線參考配置1

  

  控制模塊配置:

  1個ZMC432+2個總線驅(qū)動器。

  使用ZDevelop軟件連接上控制器,執(zhí)行完總線初始化程序后,打開“控制器”-“控制器狀態(tài)”窗口,可查看槽位0節(jié)點(diǎn)信息,或在線命令欄輸入?*EtherCAT打印出每個NODE節(jié)點(diǎn)的狀態(tài)。

  

  13.png

  

  此時總線上可以掃描到兩個節(jié)點(diǎn),這兩個節(jié)點(diǎn)均為總線驅(qū)動器,每個驅(qū)動器各帶一個電機(jī),將節(jié)點(diǎn)0的軸映射到軸6,將節(jié)點(diǎn)1的軸映射到軸7。

  AXIS_ADDRESS(6)= (0<<16)+0+1 '映射軸號

  AXIS_ADDRESS(7)=(0<<16)+1+1

  ATYPE(6)=65'設(shè)置控制模式,65-位置 66-速度 67-轉(zhuǎn)矩

  ATYPE(7)=65

  在線命令欄輸入?*EtherCAT打印信息如下:

  

  14.png

  

   11、EtherCAT總線參考配置2

  

  控制模塊配置:

  1個ZMC432+1個EIO1616MT+2個總線驅(qū)動器。

  使用ZDevelop軟件連接上控制器,執(zhí)行完總線初始化程序后,打開“控制器”-“控制器狀態(tài)”窗口,可查看槽位0節(jié)點(diǎn)信息,或在線命令欄輸入?*EtherCAT打印出每個NODE節(jié)點(diǎn)的狀態(tài)。

  

  15.png

  

  此時總線上可以掃描到3個節(jié)點(diǎn),0節(jié)點(diǎn)為EIO1616MT數(shù)字量IO擴(kuò)展模塊,帶16進(jìn)16出,IO映射編號范圍為32-47,NODE_IO(0,0)=32

  節(jié)點(diǎn)1和2均為總線驅(qū)動器,每個驅(qū)動器各帶一個電機(jī),將這兩個軸的軸號分別映射為軸6、軸7。

  在線命令欄輸入?*EtherCAT打印信息如下:

  

  16.png

  

   12、EtherCAT總線初始化程序

  

  此初始化程序為通用版本,以上幾種配置均適用,使用時只需更改個別全局定義的參數(shù)即可。

  運(yùn)動控制模塊根據(jù)實(shí)際使用情況編寫。

  '**********ECAT總線初始化主程序***********

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

  global ConST PUL_AxisNum = 0             '本地脈沖軸軸數(shù)量

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

  global ConST Bus_NodeNum = 1             '總線配置節(jié)點(diǎn)數(shù)量,用于判斷實(shí)際檢測到的從站數(shù)量是否一致

  global MAX_AXISNUM                             '最大軸數(shù)

  MAX_AXISNUM = SYS_ZFEATURE(0)         '自動獲取控制器支持的軸數(shù)

  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總線

  while (Bus_InitStatus = 0)

          Ecat_Init()

  wend

  if Bus_InitStatus = 1 then '            總線初始化是否完成

          main()             '運(yùn)動控制模塊

  endif

  END

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

  '初始流程: slot_scan(掃描總線) -> 從站節(jié)點(diǎn)映射軸/io -> SLOT_START(啟動總線) -> 初始化成功

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

  global sub Ecat_Init()

      LOCAL Node_Num '節(jié)點(diǎn)設(shè)備編號

      LOCAL Temp_Axis '當(dāng)前總線軸的軸號

      LOCAL Drive_Vender '當(dāng)前設(shè)備廠商編號

      LOCAL Drive_Device '設(shè)備編號

      LOCAL Drive_Alias '設(shè)備撥碼ID

      RAPIDSTOP(2)

      for i=0 to MAX_AXISNUM - 1 '初始化還原軸類型

          AXIS_ENABLE(i) = 0 '關(guān)軸使能

          atype(i)=0 '設(shè)置為虛擬軸

          AXIS_ADDRESS(i) =0

          DELAY(10) '防止所有驅(qū)動器全部同時切換使能導(dǎo)致瞬間電流過大

      next

      Bus_InitStatus = -1

      Bus_TotalAxisnum = 0 '將掃描的總線總軸數(shù)置0

      SLOT_STOP(0)

      delay(200)

      slot_scan(0) '掃描總線

      if return then

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

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

              ?""

              ?"掃描節(jié)點(diǎn)數(shù)量與程序配置數(shù)量不一致!" ,"配置數(shù)量:"Bus_NodeNum,"檢測數(shù)量:"NODE_COUNT(0)

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

              'return

  endif

  '"開始映射軸號"

  for Node_Num=0 to NODE_COUNT(0)-1 '遍歷掃描到的所有從站節(jié)點(diǎn)

      Drive_Vender = NODE_INFO(0,Node_Num,0) '讀取設(shè)備廠商

      Drive_Device = NODE_INFO(0,Node_Num,1) '讀取設(shè)備編號

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

      if NODE_AXIS_COUNT(0,Node_Num) <> 0 then '判斷當(dāng)前節(jié)點(diǎn)是否有電機(jī)

          for j=0 to NODE_AXIS_COUNT(0,Node_Num)-1 '根據(jù)節(jié)點(diǎn)帶的電機(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)= (0<<16)+ Bus_TotalAxisnum + 1 '映射軸號

              ATYPE=65 '設(shè)置控制模式 65-位置 66-速度 67-轉(zhuǎn)矩

              disable_group(Temp_Axis) '每軸單獨(dú)分組

              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

          ?"擴(kuò)展IO映射完成"

      endif

  next

  ?"軸號映射完成","連接總軸數(shù):"Bus_TotalAxisnum

  wa 200

  SLOT_START(0) '啟動總線

  if return then

      wdog=1 '使能總開關(guān)

      '?"開始清除驅(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

          '"軸使能"

          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

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

  '通過NODE_IO(0,Node_Num)分配模塊IO起始地址,不使用擴(kuò)展模塊的時候刪掉此段

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

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

      if iVender = $41B then '正運(yùn)動IO擴(kuò)展模塊

          NODE_IO(0,iNode) = i_IoNum

          'NODE_AIO(0,iNode) = 4*(iNode+1)

          ?"IO映射成功"

      endif

  end sub

  '**********運(yùn)動控制模塊********

  '初始化完成后,使用運(yùn)動控制指令控制ECAT總線軸運(yùn)動

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

  global sub main()

      RAPIDSTOP(2)

      WAIT IDLE

      base(6,7) '選擇總線軸軸號

      ATYPE=65,65

      UNITS=100,100 '脈沖當(dāng)量設(shè)置

      SPEED=100,100

      ACCEL=1000,1000

      DECEL=1000,1000

      DPOS=0,0

      MPOS=0,0

      TRIGGER '自動觸發(fā)示波器

      MOVE(100,100) '先運(yùn)動100,100位置

      MOVECIRC(200,0,100,0,1) '半徑100順時針畫半圓,終點(diǎn)坐標(biāo)(300,100)

  end sub


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

上一篇: 機(jī)器視覺運(yùn)動控制一體

主站蜘蛛池模板: 午夜性激福利免费观看 | 麻豆麻豆必出精品入口 | 国产精品亚洲第一区焦香 | 国产高清免费在线观看 | 国产美女免费视频 | 青木玲中文字幕一区二区 | 欧美黄色大片 | 黄色大片网站在线观看 | 欧美日韩在线精品一区二区三区 | 成人黄色免费 | 一区卡二区卡三区卡视频 | 精品一区二区在线观看 1080p | 日本一区二区不卡视频 | 国产香蕉网| 在线欧美视频免费观看国产 | 成人亚洲欧美日韩在线观看 | 九九热在线视频免费观看 | 大片免费观看入口 | 99久久伊人一区二区yy5o99 | 一级特黄网站 | 小明永久视频 | 亚洲欧美成人中文日韩电影 | 在线观看成人 | 亚洲精品国产成人一区二区 | 国内成人精品视频 | 国产精品天天看 | 黄色片aa | 91短视频在线观看免费 | 亚洲欧美日韩中文高清一 | 你懂的www | 色综合合久久天天给综看 | 激情毛片 | 一级毛片在线完整免费观看 | 国产色产综合色产在线观看视频 | 久久久高清国产999尤物 | 麻豆精品在线视频 | 亚洲一区二区三区日本久久九 | 国产精品福利无圣光在线一区 | 国产原创在线视频 | 日韩中文字幕高清在线专区 | 91摄影师与白嫩模特观看 |