精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

EtherCAT總線快速入門

正運動技術 ? 來源:正運動技術 ? 作者:正運動技術 ? 2022-08-11 14:40 ? 次閱讀

本節主要介紹XPLC006E多軸經濟型EtherCAT總線運動控制器控制EtherCAT總線驅動器的方法,分別介紹硬件接線方法,控制器與EtherCAT總線驅動器如何通訊,EtherCAT總線驅動器相關參數的配置,EtherCAT總線初始化操作,以及初始化成功以后的運動控制。

一、XPLC006E功能簡介

XPLC006E是正運動運動控制器推出的一款多軸經濟型EtherCAT總線運動控制器,XPLC系列運動控制器可應用于各種需要脫機或聯機運行的場合。

poYBAGL0nUeAQAwUAAHNC3g-ZV4864.png

XPLC006E自帶6個電機軸,最多12軸運動控制(含虛擬軸數),支持12軸直線插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸設置等功能。

XPLC006E支持多任務同時運行,同時可以在PC上直接仿真運行,編程方式多種可選,支持ZDevelop軟件的Basic/PLC梯形圖/HMI組態和常用上位機軟件編程。

XPLC006E只支持EtherCAT總線軸,不支持脈沖軸和編碼器軸。采用EtherCAT總線與驅動器通訊,1ms的刷新周期。

XPLC006E支持PLC、Basic、HMI組態三種編程方式。PC上位機API編程支持C#C++LabVIEW、VB、matlab、Qt、Linux、.Net、iMACPythonROS接口

pYYBAGL0nWWADPiAAAL3UAUuyqc139.png

→此款產品有XPLC004E、XPLC006E、XPLC008E三個不同軸數的型號可選。

二、XPLC864E功能簡介

XPLC864E在XPLC006E的功能基礎上做了升級(即上節介紹的XPLC006E的功能都支持),部分資源空間優于XPLC006E,使用方法基本一致,不同之處在于XPLC864E,硬件支持32點輸入、32點輸出、2個ADC、2個DAC,支持脈沖軸和總線軸混合使用,總實軸軸數為8,除了帶EtherCAT接口之外,輸出口硬件上可配置為8個軸的脈沖方向信號輸出,另帶兩路編碼器輸入,可由輸入口配置。

XPLC864E支持PLC、Basic、HMI組態三種編程方式。PC上位機API編程支持C#、C++、LabVIEW、VB、matlab、Qt、Linux、.Net、iMAC、Python、 ROS等接口。

poYBAGL0naaAfs4-AAH2ZfrDSTM884.pngpoYBAGL0na6ALJbtAAMht--LnLY071.png

三、通訊接線

1.EtherCAT總線接線

使用一根網線將XPLC006E控制器的“EtherCAT總線端口“伺服驅動器的EtherCAT總線端口”相連即可。

注意:伺服驅動器的EtherCAT接口有兩個,有些驅動器這兩個口可以隨意接,有些分為“EtherCAT IN”和“EtherCAT OUT”,IN口接上一級設備,OUT口接下一級設備,二者不能混用,要注意連接順序。

多軸控制時伺服驅動器的EtherCAT OUT口再連接下一級驅動設備的EtherCAT IN口,依此類推。

pYYBAGL0nhKAcaEmAAKEI_sVH0s601.png

slot槽位編號、node節點編號和驅動器編號規則如上圖所示,EtherCAT總線接口的槽位號默認是0,節點編號按照與控制器的連接先后順序從0開始依次編號,驅動器編號則是只給帶電機設備編號,其他類型設備忽略,也是按連接順序從0開始編號,這些編號在總線指令中將會用到。

硬件接線完成還需運行總線初始化程序才能與驅動器通訊,初始化模板程序參見下文。

注意:使用EtherCAT總線擴展模塊時,也要執行總線初始化操作,再映射IO的編號后才可操作擴展IO。

2.控制器與電腦連接

控制器與電腦可以通過串口或網口連接,下面以網口連接例展開說明。

先將控制器與電腦用一根網線連接好,接通控制器的電源,再打開ZDevelop編程軟件,點擊菜單欄“控制器”→“連接”,打開“連接到控制器”窗口。

pYYBAGL0niSAd-BxAAB9zy-9dKg520.png

通過“連接到控制器”窗口,可以快速查看本機IP,對比控制器與電腦是否處于同一網段。

IP地址列表下拉選擇時,會自動查找當前局域網可用的控制器IP地址(控制器上電POWER燈和RUN燈亮的時候就能查找到該控制器的IP地址)

同一個網絡有多個控制器的時候,IP的下拉列表若沒有顯示目標控制器的IP地址,可以采取IP掃描來查看當前所有可用的控制器IP地址,掃描完成之后確定關閉此窗口,重新在IP下拉列表選擇。

pYYBAGL0njKAe2s7AADBlAdocBc447.png

選擇正確的IP地址,點擊連接之后,連接成功或失敗均有信息提示。

控制器出廠的缺省IP地址為192.168.0.11,“連接到控制器”窗口能顯示出本機IP地址,請注意設置有線網卡與無線網卡各自的IP。電腦需要設置IP地址與控制器IP處于同一網段才能連接,即四段的前三段要相同,最后一段不同才能通訊。

若控制器與電腦不處于同一網段,則需要修改控制器或電腦其中之一的IP地址,使二者處于同一網段。

若控制器IP地址遺忘,可通過網口連接控制器,再獲取控制器IP。

四、EtherCAT總線驅動器通訊說明

1.通訊周期

使用EtherCAT伺服驅動器時需要保證控制器與伺服周期一致才可正常通訊使用。

EtherCAT伺服驅動器一般支持不同周期,通訊周期主要有250us,500us,1ms,2ms,4ms,連接時自動匹配控制器周期,不需要設置,當通訊周期無法自動匹配時,通訊失敗,通過修改控制器周期解決(SERVO_PERIOD指令或升級固件修改)

控制器一般默認為1ms,使用SERVO_PERIOD指令讀取控制器周期。伺服周期越小,位置控制越精細,響應速度也更快。

2.驅動器PDO設置

驅動器的PDO是必要的配置,代表著當前驅動器包含的功能。

PDO全名為(Process Data Object),指在EtherCAT總線網絡中周期的進行主站與從站的數據交互的功能,可以看作一個數組空間,每個數組元素存放了不同的功能碼,PDO在一個周期中執行這些功能碼對應的操作,這些功能碼就叫做數據字典,數據字典用4位16進制數來表示。

poYBAGL0npyAI_wxAAFjEmPbizA326.png

RxPDO:主站傳送數據給從站。

TxPDO:從站傳送數據給主站。

EtherCAT總線上控制器為主站,伺服驅動器為從站。

如6040h控制字(用于控制伺服軸的使能、啟動、停止、報警、復位等運行狀態),每個數據字典Index可包含32個子字典Sub-Index。數據字典的功能和初始值查看驅動器手冊的描述。

數據字典的編號及功能是協議本身就確定好的,用戶只需按照數據字典的描述設置數據字典的bit位,所有的標準EtherCAT設備都使用一套數據字典。

松下A6B伺服驅動器的EtherCAT相關說明內容可查看松下文檔《技術資料-EtherCAT通訊規格篇》。

pYYBAGL0nrSADL0XAAIFp8fc1xA003.png

EtherCAT初始化過程中必須進行驅動器PDO配置,“DRIVE_PROFILE”指令配置驅動器的PDO列表,目前提供約20幾種配置選擇,每種配置包含哪些數據字典查看該指令說明確認,如下圖,具體內容可以在《ZBasic編程手冊》中查看。

poYBAGL0nryAYnLJAAHI79ma9SU902.png

DRIVE_PROFILE=-1表示驅動器的內置缺省PDO列表,驅動器內置PDO列表包含哪些數據字典需要查看驅動器手冊。

DRIVE_PROFILE已有的配置不能滿足需求就自定義PDO,采用SDO相關指令操作數據字典配置驅動器需要的PDO。

驅動器的相關參數修改,同樣使用SDO指令讀寫對應的數據字典進行配置或通過驅動器軟件修改。SDO指令包含數據字典讀取“SDO_READ”、“SDO_READ_AXIS”和數據字典寫入“SDO_WRITE”、“SDO_WRITE_AXIS”。

(1)數據字典讀取語法

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

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

(2)數據字典寫入語法

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

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

自定義PDO的配置方法請咨詢正運動的銷售工程師或者技術工程師。

3.驅動器參數設置

可使用驅動器軟件修改,或控制器端操作SDO指令修改。修改驅動器參數先連接驅動器,可選USB線或WLAN連接驅動器,使用USB線連接電腦與驅動器端的X1端口,給驅動器上電。

打開松下驅動器軟件PANATERM,彈出“選擇與驅動器通信”窗口,選擇與驅動器通過USB連接后,自動獲取到驅動器信息顯示在窗口內,點擊OK連接成功,就能對驅動器進行設置。

pYYBAGL0nuOACpLTAADUju8Afcw006.png

點擊菜單欄“顯示”→“對象編輯器”,打開如下窗口,找到需要設置的數據字典,在“Setting Value”一欄直接修改數據字典的內容。

修改完成將參數傳送給驅動器,并寫入驅動器的EEPROM,驅動器再次上電后參數生效。

poYBAGL0nu6AXY6UAAHgxXXACVE476.png

例:設置UNITS脈沖當量,即設置電機轉一圈需要發送多少個脈沖。

SPEED速度、ACCEL加速度、DECEL減速度和運動指令等都是以UNITS為基本單位。

如上圖,通過數字字典6091h設置電子齒輪比,6091h-01h設置電子齒輪比分子,6091h-02h設置電子齒輪比分母,此時,電子齒輪比=1/1,6092h-01h設為10000表示給電機發10000個脈沖能使電機旋轉一圈,對應的脈沖當量UNITS=10000,MOVE(2)表示給電機發送20000個脈沖,此時電機轉兩圈。

pYYBAGL0nvWAW_tyAADU09fr3nw468.png

或者使用SDO指令讀寫數據字典修改參數。修改完成使用驅動器軟件讀取6092h-01h的值為10000。

示例:

SDO_WRITE(Bus_Slot,iNode,$6091,1,7,1) '電子齒輪比分子
SDO_WRITE(Bus_Slot,iNode,$6091,2,7,1) '電子齒輪比分母
SDO_WRITE(Bus_Slot,iNode,$6092,1,7,10000) '電機一圈脈沖數

4.驅動器IO信號

若要使用驅動器的IO口,才會涉及到驅動器的IO映射操作,否則忽略。當驅動器產生IO報警時,可根據驅動器手冊的提示,修改IO的設定值。

驅動器自身有輸入信號,作用為保護信號,默認使能狀態,若不接入外部信號,驅動器就會保護報錯,調試階段可以關閉這些信號方便調試,將輸入值設置為0即可,需要使用驅動器IO時要對驅動器的IO編號映射后才能使用,后續根據實際需求接入實際信號。

點擊驅動器軟件PANATERM主界面的“參數”按鈕打開下方窗口,選中要修改的IO信號后,在“設定值”一欄修改。

pYYBAGL0n6SAU-d3AAHSpJ2xhMY976.png

驅動器IO映射需要PDO包含數據字典60FDh,然后使用DRIVE_IO指令設置驅動器IO地址,映射的編號范圍不要與總線上的其他設備的IO編號重復。

DRIVE_IO (軸號)=輸入輸出IO起始編號。

示例:

DRIVE_PROFILE(iAxis) = 5 '設定對應的帶IO映射的PDO模式
DRIVE_IO(iAxis) = i_IoNum '設定驅動器輸入/輸出IO起始編號

5.參數寫入驅動器

可使用驅動器軟件修改,或控制器端操作SDO指令修改。

驅動器的數據字典參數或其他的參數設置完成后,先點擊“傳送”將修改的全部參數傳入驅動器,再點擊EEP,將參數寫入驅動器的EEPROM,給驅動器重新上電后修改的參數生效,圖片上值修改了輸入參數,在上圖參數一覽中可參看多中類別的參數并修改。

poYBAGL0oBiAT2OjAACIC2atTEc313.png

6.驅動器軸號映射

EtherCAT總線驅動電機設備連上控制器之后,驅動器軸號需要使用指令映射綁定。

EtherCAT總線上連接的設備的設備號按照連接順序從0開始自動編號,驅動器編號也是按連接順序給驅動器設備自動從0開始編號的,只算總線上的驅動器設備,其他設備是沒有驅動器編號的。

EtherCAT總線上連接的驅動器需要使用指令映射驅動器的軸號,使用AXIS_ADDRESS 指令映射,映射完成之后才能使用BASE指令選擇驅動器軸號,發送脈沖,控制驅動器所連的電機運行。

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

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

EtherCAT總線的槽位號是0。軸號為驅動器映射的目標軸號,映射時每個驅動器的軸號不重復,指向空閑軸號即可。

示例:

AXIS_ADDRESS (6)=(0<<16)+0+1 '第一個ECAT驅動器,驅動器編號0,綁定為軸6
AXIS_ADDRESS (7)=(0<<16)+1+1 '第二個ECAT驅動器,驅動器編號1,綁定為軸7
AXIS_ADDRESS (8)=(0<<16)+2+1 '第三個ECAT驅動器,驅動器編號2,綁定為軸8
ATYPE(6)=65 '設置為ECAT軸類型,65-位置 66-速度 67-轉矩
ATYPE(7)=65
ATYPE(8)=65

7.驅動器控制模式

EtherCAT驅動器一般有三種控制模式,分別為CSP周期位置模式,CSV周期速度模式,CST周期力矩模式。提供ATYPE指令設置控制模式。

poYBAGL0oGmAJlExAAH2mr64R5M777.png

CSP,CSV,CST模式的設置需要預先設置PDO,PDO同時包含下方數據字典時,即可直接修改ATYPE數值進行模式切換。驅動器默認PDO列表內置有哪些數據字典需要查看驅動器手冊確定。

(1)當PDO包含607Ah時,ATYPE可設置為65,周期位置模式,此時使用運動指令控制電機運動。

(2)當PDO包含60FFh時,ATYPE可設置為66,周期速度模式,此時使用DAC指令控制電機以設置值的速度運行,速度單位有兩個,脈沖數/S和R/MIN,有驅動器確定,使用時先給較小的數值,觀察電機速度情況,再加大。

(3)當PDO包含6071h時,ATYPE可設置為67,周期力矩模式,此時使用DAC指令控制電機以設置值的力矩運行,DAC值范圍0-1000,對應0-100%的6071設置值,比如DAC=10,此時電機力矩=1%的6071h值。

注意:速度模式和力矩模式切換時,先將DAC=0后,再修改ATYPE,防止出現事故。

A.位置模式:ATYPE=65

將DRIVE_PROFILE配置為帶位置的模式1,ATYPE=66,執行總線初始化程序后,設置軸的UNITS、SPEED等運行參數,使用運動指令給電機發脈沖控制軸的運行,注意試運行時SPEED的值不要設置過大。

位置模式也是實際過程中用的較多的一種模式,運行效果參見后續章節。

poYBAGL0oHaAJyuCAAJY9FEEx_4418.png

B.速度模式:ATYPE=66

將DRIVE_PROFILE配置為帶速度的模式22,ATYPE=66,執行總線初始化程序后,在線命令欄發送DAC指令即可控制電機運行,如下圖,DAC=5000表示電機以每秒5000個脈沖的速度持續運行,DAC命令發送后電機一直運行,要提高運行速度將DAC的值加大,DAC的值太小電機會克服不了摩擦力無法轉動。

注意:出于安全因素考慮,DAC不要設置過大,先設置一個較小值,觀察電機運行情況后慢慢往上增加。此模式下停止電機在線命令發送DAC=0即可,或按下軟件的緊急停止按鈕。

pYYBAGL0oIWABGRWAAIs2bfGtF0920.png

C.力矩模式:ATYPE=67

將DRIVE_PROFILE配置為帶力矩的模式30,ATYPE=67,執行總線初始化程序后,在線命令欄發送DAC指令即可控制電機運行。如下圖,DAC=30,當前驅動器為0.03的力矩,DAC等于1000時表示100%力矩。要提高運行速度將DAC的值加大,DAC的值太小電機會克服不了摩擦力無法轉動。

注意:出于安全因素考慮,DAC不要設置過大,先設置一個較小值,觀察電機運行情況后慢慢往上增加。此模式下停止電機在線命令發送DAC=0即可,或按下軟件的緊急停止按鈕。

pYYBAGL0oI-AWd3OAAJFAXGs4Tk016.png

8.驅動器報警

觀察驅動器上LED面板上是否有報錯信息,報錯會顯示錯誤碼,根據驅動器手冊排查錯誤,修正后將報警清零。

pYYBAGL0oKuAVI0DAAFb-g8lXQY545.png

打開驅動器軟件的警報窗口,也能看當前驅動器是否有警報,或查詢歷史警報。

poYBAGL0oLOAeTMoAADfXIvksio227.png警報窗口poYBAGL0oMmAYE5OAAHM6siaMF4648.png歷史警報信息

初始化過程中按軸號清除驅動器的錯誤,重復調用DRIVE_CLEAR指令清除多個驅動器錯誤。

語法:DRIVE_CLEAR(模式值)

模式值0-清除當前告警,1-清除歷史告警,2-清除外部輸入告警。

示例:

BASE(i)
DRIVE_CLEAR(0) '清除驅動器錯誤
DELAY 50
DATUM(0) '清除控制器軸狀態錯誤"
DELAY 100

9.驅動器回零

EtherCAT總線可使用控制器提供的回零方式DATUM(mode),mode模式值選擇查看ZBasic編程手冊的DATUM指令。EtherCAT總線也可以使用驅動器本身的回零模式。

驅動器本身回零使用DATUM(21,mode2)指令,mode2模式值要查驅動器手冊數據字典6098h回零模式,如下圖所示,mode2填入對應Value值,mode2缺省值為0,也是驅動器回零模式,注意此時的原點限位等信號要接在驅動器上,所以要使用驅動器回零時需要對驅動器的IO進行映射。

poYBAGL0oRmAU2SVAAJGmNCRiAQ521.png

示例:初始化完成后再運行驅動器回零程序。

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

10.EtherCAT總線驅動器參數設置說明

https://live.csdn.net/v/231029

五、EtherCAT總線初始化

EtherCAT總線初始化操作是控制器與EtherCAT總線驅動器通訊的重要步驟,也是第一步,初始化成功表示著二者成功建立了通訊連接,之后才可順利進行運動控制和讀寫驅動的參數。

1.初始化基本流程

按照前面的步驟接好線,給EtherCAT伺服驅動器和控制器上電,使用ZDevelop軟件連接控制器,EtherCAT總線使用一段程序來初始化,將初始化程序下載到控制器運行之后,才能設置軸參數和執行運動指令控制伺服電機的運動。

poYBAGL0ocqAAnpbAAEor1MyJ6I348.png

初始化程序中包含WDOG=1開總使能,和AXIS_ENABLE(軸號) = 1開單軸使能,使能前用手可以轉動點擊,使能完成后便旋轉不動,需要給電機發送脈沖才能使其轉動。

2.初始化模板程序

(1)主要初始化程序

'用戶使用的時候只需要設置程序頭的四個常量的值即可。程序其他地方不用改動。分別設置起始的脈沖軸號,和使用的脈沖軸個數,總線軸的起始映射軸號,和總線軸的個數。
'****************ECAT總線初始化
global CONST PUL_AxisStart = 0 '本地脈沖軸起始軸號
global CONST PUL_AxisNum = 0 '本地脈沖軸軸數量
global CONST Bus_AxisStart = 0 '總線軸起始軸號
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總線
while (Bus_InitStatus = 0)
Ecat_Init()
wend
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
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=-1 '配置為驅動器內置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) '設置特殊總線參數
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

(2)驅動器IO映射(需要使用驅動器IO時才映射,否則不用映射)

' ************************總線驅動IO映射**************************************
'通過DRIVE_IO指令映射驅動器對象字典中60FD,60FE輸入輸出狀態,要設置正確的DRIVE_PROFILEE或者POD后才可以正常映射
'DRIVE_PROFILE模式包含60FD/60FE
'iAxis - 軸號 iVender - 驅動器類型 i_IoNum - 輸入輸出起始編號
' **************************************************************************
global sub Sub_SetDriverIo(iVender,Iaxis,i_IoNum)
if iVender = $66f then '松下驅動器
DRIVE_PROFILE(iAxis) = 5 '設定對應的帶IO映射的PDO模式
DRIVE_IO(iAxis) = i_IoNum
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)
endif
end sub

(3)擴展模塊IO映射(連接了擴展模塊才設置)

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

(4)特殊參數配置

' ********************************從站節點特殊參數配置********************************
'通過SDO方式修改對應對象字典的值修改從站參數(具體對象字典查看驅動器手冊)
' ******************************************************************************************************
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的起始映射地址
elseif iVender = $66f then '松下驅動器
SDO_WRITE(Bus_Slot,iNode,$3741,0,3,0) '以撥碼為ID
SDO_WRITE(Bus_Slot,iNode,$3401,0,4,$10101) '正限位電平 $818181
SDO_WRITE(Bus_Slot,iNode,$3402,0,4,$20202) '負限位電平 $828282
SDO_WRITE(Bus_Slot,iNode,$6091,1,7,1) '電子齒輪比分子
SDO_WRITE(Bus_Slot,iNode,$6091,2,7,1) '電子齒輪比分母
SDO_WRITE(Bus_Slot,iNode,$6092,1,7,10000) '電機一圈脈沖數
SDO_WRITE(Bus_Slot,iNode,$607E,0,5,0) '電機正轉0 反轉224
SDO_WRITE(Bus_Slot,iNode,$6085,0,7,4290000000) '異常減速度
'SDO_WRITE(Bus_Slot,iNode,$1010,1,7,$65766173) '寫EPPROM(寫EPPROM后驅動器需要重新上電)
'?"寫EPPR0M OK 請斷電重啟"
endif
end sub

EtherCAT初始化成功后會打印信息提示,如下。若初始化失敗也會打印信息提示。

poYBAGL0oqGAaEpwAABWIhjDuck786.png

3.總線節點狀態查看

EtherCAT總線上連接的設備信息有如下三種查看方法。查看總線狀態的前提是初始化操作成功,否則無法查看。

(1)在菜單欄“控制器”→“控制器狀態”窗口查看“槽位0節點”。

poYBAGL0orOAWjWkAABIgkQZl1I654.png

(2)在菜單欄“調試”→“總線狀態診斷”打開如下窗口查看控制器總線槽位接口的設備信息。

poYBAGL0osCAWtGGAABd52Z-ztE705.png

(3)還可以通過在線命令發送“?*EtherCAT”打印EtherCAT總線上的全部設備信息。

pYYBAGL0os2AB2DuAABRIMQKg48130.png

4.EtherCAT總線驅動器控制效果

初始化成功后,將各個總線軸依此回零,配置好軸參數之后,就可以使用指令讓總線軸按需求動作。

在程序中寫入運動指令、在線命令發送運動指令或使用“手動運動”窗口控制電機運行。

pYYBAGL0otqAIm8zAAJeh_bBGbw933.png

示波器采集軸參數波形:

pYYBAGL0ou6ACEpKAACnU0Vz7l8492.png

使用“手動運動”功能快速手動操作電機運動,運動前先設置左側軸參數。

poYBAGL0ovSAMPSSAACHAipw3qk569.png

5.EtherCAT總線初始化演示

本次,正運動技術經濟型EtherCAT運動控制器(十):EtherCAT總線快速入門,就分享到這里。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 運動控制器
    +關注

    關注

    2

    文章

    393

    瀏覽量

    24653
  • 總線
    +關注

    關注

    10

    文章

    2866

    瀏覽量

    87984
  • ethercat
    +關注

    關注

    18

    文章

    653

    瀏覽量

    38602
收藏 人收藏

    評論

    相關推薦

    ethercat總線伺服如何控制 EtherCAT運行原理

    需要正確安裝和連接EtherCAT總線適配器和伺服驅動器。適配器負責將你的控制系統連接到EtherCAT總線網絡,而伺服驅動器是用于控制伺服電機的設備。
    的頭像 發表于 01-24 18:12 ?6458次閱讀
    <b class='flag-5'>ethercat</b><b class='flag-5'>總線</b>伺服如何控制 <b class='flag-5'>EtherCAT</b>運行原理

    CAN總線快速入門

    CAN總線快速入門
    發表于 08-07 16:07

    CAN總線快速入門

    CAN總線快速入門
    發表于 08-20 19:20

    EtherCAT 技術

    本帖最后由 sinap_zhj 于 2016-1-20 07:58 編輯 EtherCAT(以太網控制自動化技術)是一個以以太網為基礎的開放架構的現場總線系統,EtherCAT名稱中的CAT為
    發表于 01-16 08:52

    請問EtherCAT總線伺服電機如何恢復為出廠參數?

    EtherCAT總線伺服電機/一體化伺服電機如何恢復為出廠參數?
    發表于 06-28 06:13

    EtherCAT總線運動控制器硬件是如何進行接線的?

    EtherCAT總線運動控制器硬件是如何進行接線的?EtherCAT總線運動控制器有哪些參數設置?
    發表于 07-15 13:02

    正運動技術運動控制器EtherCAT總線快速入門

    正運動技術運動控制器EtherCAT 總線快速入門。  視頻教程:《視頻教程:正運動控制器EtherCAT
    發表于 09-07 06:59

    在CODESYS中怎樣通過EtherCAT總線去驅動單個電機呢

    在CODESYS中怎樣通過EtherCAT總線去驅動單個電機呢?如何通過CODESYS添加EtherCAT的主站從站控制電機轉動?
    發表于 09-18 08:43

    正運動技術運動控制器EtherCAT總線的基礎使用

    EtherCAT總線擴展模塊包含哪些?怎樣去使用正運動技術運動控制器EtherCAT總線
    發表于 09-27 08:34

    EtherCAT從站開發板及源程序說明

    EtherCAT從站開發板及源程序說明:簡化XML生成,簡化編程,10分鐘快速入門
    發表于 02-18 12:03

    EtherCAT總線運動控制的優勢主要體現在哪?

    早期自動化行業的運動控制大多是:脈沖控制與模擬量控制,后來發展了CANopen,后來各種以太網總線百花齊放,例如:EtherCAT,PROFINET,POWERLINK, SercosIII
    發表于 02-20 10:20

    經濟型EtherCAT運動控制器:EtherCAT總線快速入門

    的相關參數修改,同樣使用SDO指令讀寫對應的數據字典進行配置或通過驅動器軟件修改。SDO指令包含數據字典讀取“SDO_READ”、“SDO_READ_AXIS”和數據字典寫入“SDO_WRITE”、“SDO_WRITE_AXIS”。 更多詳情點擊→經濟型EtherCAT運動控制器:
    發表于 05-11 09:49

    EtherCAT總線運動控制的優勢主要體現在哪?

    早期自動化行業的運動控制大多是:脈沖控制與模擬量控制,后來發展了CANopen,后來各種以太網總線百花齊放,例如:EtherCAT,PROFINET,POWERLINK, SercosIII
    發表于 12-13 11:37

    CAN總線快速入門

    CAN總線快速入門
    發表于 12-13 17:15 ?22次下載

    CAN總線教程之CAN總線快速入門資料免費下載

    本文檔額度主要內容詳細介紹的是CAN總線教程之CAN總線快速入門資料免費下載主要內容包括了:CAN總線概述,數據鏈路層,物理層
    發表于 12-07 17:20 ?213次下載