前 言
創龍科技已基于IMX8、ZYNQ、AM5728、AM5708、AM437x、AM335x、T3/A40i等平臺提供了開源EtherCAT主站IgH案例。本文主要演示TLZ7x-EasyEVM-S評估板基于IgH EtherCAT控制伺服電機方法。
案例適用開發環境:
Windows開發環境:Windows 7 64bit、Windows 10 64bit
Linux開發環境:Ubuntu 14.04.3 64bit
虛擬機:VMware15.1.0
PetaLinux:2017.4
Kernel:linux-xlnx-xenomai-g7645980-v1.0
IgH EtherCAT:ethercat-stable-1.5-gcd0d17d-20210723
Xenomai:xenomai-v3.0.11-g4f49146
伺服驅動器:臺達ASD-A2-0121-E
伺服電機:臺達ECMA-C10401GS
硬件平臺:TLZ7x-EasyEVM-S評估板(Xilinx Zynq-7010/7020)
![pYYBAGF7bSeAa4S1AAQVdO4fheU244.jpg](https://file.elecfans.com/web2/M00/1A/6D/pYYBAGF7bSeAa4S1AAQVdO4fheU244.jpg)
圖 1 TLZ7x-EasyEVM評估板
![poYBAGF7bSeADoNCAAM3RLjUUpk946.jpg](https://file.elecfans.com/web2/M00/1A/64/poYBAGF7bSeADoNCAAM3RLjUUpk946.jpg)
圖 2 SOM-TLZ7x-S核心板
IgH EtherCAT簡介
IgH EtherCAT為運行于Linux系統的免費開源EtherCAT主站程序,框架如下所示。
![pYYBAGF7bSeAfRnuAADaUq2cNGE469.jpg](https://file.elecfans.com/web2/M00/1A/6D/pYYBAGF7bSeAfRnuAADaUq2cNGE469.jpg)
圖 3
IgH EtherCAT主站通過構建Linux字符設備,應用程序通過對字符設備的訪問實現與EtherCAT主站模塊的通信。
IgH EtherCAT開發包提供EtherCAT工具,該工具提供各種可在Linux用戶層運行的命令,可直接實現對從站的訪問和設置,如設置從站地址、顯示總線配置、顯示PDO數據、讀寫SDO參數等。
案例說明
案例功能:控制伺服電機正轉和反轉。
- 正轉:伺服電機目標速度從0加速到10000,當達到10000速度后,控制伺服電機減速至0,循環運行。
- 反轉:伺服電機目標速度從0加速到-10000,當達到-10000速度后,控制伺服電機減速至0,循環運行。
![poYBAGF7bSeANKd_AAH72s9Ywlw130.jpg](https://file.elecfans.com/web2/M00/1A/64/poYBAGF7bSeANKd_AAH72s9Ywlw130.jpg)
圖 4
案例測試
請按下圖所示使用網線連接評估板RGMII ETH網口和伺服驅動器A的IN網口,將伺服驅動器A的OUT網口使用網線連接至伺服驅動器B的IN網口。
![poYBAGF7bSeASK0TAAGJOj4kcqE735.jpg](https://file.elecfans.com/web2/M00/1A/64/poYBAGF7bSeASK0TAAGJOj4kcqE735.jpg)
圖 5
![pYYBAGF7bSeADaitAAFXJfP9Tvs626.jpg](https://file.elecfans.com/web2/M00/1A/6D/pYYBAGF7bSeADaitAAFXJfP9Tvs626.jpg)
圖 6
為便于測試,我司提供已驗證的基于Xenomai編譯生成的內核鏡像文件和設備樹鏡像文件,位于案例"igh_ethercat_dc_motor\kernel-xenomai\images\linux-xlnx-xenomai-g7645980-v1.0"目錄下,請替換至Linux系統啟動卡rootfs分區boot目錄下。同時將linux-xlnx-xenomai-g7645980-v1.0目錄下的module驅動壓縮包4.9.0-xilinx-g7645980.tar.gz,解壓至Linux系統啟動卡rootfs分區"lib/modules/"目錄下。
備注:如需使用由內核源碼重新編譯生成的內核鏡像文件和設備樹文件,請參考Linux系統使用手冊將編譯的module驅動安裝至Linux系統啟動卡中,默認安裝后module驅動目錄為4.9.0-xilinx。
![pYYBAGF7bSeAOl7xAABBspwHCfY263.jpg](https://file.elecfans.com/web2/M00/1A/6D/pYYBAGF7bSeAOl7xAABBspwHCfY263.jpg)
圖 7
將IgH EtherCAT主站程序文件夾整個拷貝至評估板文件系統,執行如下命令查詢評估板網卡物理地址。
![pYYBAGF7bSeABiq4AAOyfb_uQj4777.jpg](https://file.elecfans.com/web2/M00/1A/6D/pYYBAGF7bSeABiq4AAOyfb_uQj4777.jpg)
圖 9
執行如下命令加載驅動模塊。
Target# insmod /home/root/_install/modules/ec_master.ko main_devices=00:0a:35:00:01:22
![pYYBAGF7bSeAJXgaAABJNHsKd0k589.jpg](https://file.elecfans.com/web2/M00/1A/6D/pYYBAGF7bSeAJXgaAABJNHsKd0k589.jpg)
圖 10
執行如下命令拷貝EtherCAT主站相關文件至評估板文件系統。
Target# mkdir /etc/sysconfig
Target# cp _install/etc/sysconfig/ethercat /etc/sysconfig
Target# cp _install/modules/ec_master.ko /lib/modules/4.9.0-xilinx-g7645980/ //模塊驅動名稱可通過"uname -r"查看
Target# depmod //同步模塊依賴關系
![pYYBAGF7bSiARx42AABBuXleYb0397.jpg](https://file.elecfans.com/web2/M00/1A/6D/pYYBAGF7bSiARx42AABBuXleYb0397.jpg)
圖 11
執行如下命令啟動EtherCAT主站。
Target# /home/root/_install/etc/init.d/ethercat start
![pYYBAGF7bSiAAiGAAAAhS4t7FTg217.jpg](https://file.elecfans.com/web2/M00/1A/6D/pYYBAGF7bSiAAiGAAAAhS4t7FTg217.jpg)
圖 12
執行如下命令加載ec_generic.ko驅動文件。
Target# insmod _install/modules/ec_generic.ko
![poYBAGF7bSeAGy4jAAC-I4AoOw8046.jpg](https://file.elecfans.com/web2/M00/1A/64/poYBAGF7bSeAGy4jAAC-I4AoOw8046.jpg)
圖 13
執行如下命令添加IgH動態鏈接庫路徑。
Target# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/root/_install/lib
![pYYBAGF7bSeAQPE4AAAhDV3OBYo980.jpg](https://file.elecfans.com/web2/M00/1A/6D/pYYBAGF7bSeAQPE4AAAhDV3OBYo980.jpg)
圖 14
將案例igh_ethercat_dc_motor可執行文件拷貝至評估板文件系統,執行如下命令查看參數信息。
Target# ./igh_ethercat_dc_motor --help
![poYBAGF7bSiAQz8VAAE7CiajIJw321.jpg](https://file.elecfans.com/web2/M00/1A/64/poYBAGF7bSiAQz8VAAE7CiajIJw321.jpg)
圖 15
執行如下命令控制兩臺伺服電機同時正轉。
Target# ./igh_ethercat_dc_motor -d 0
![poYBAGF7bSiAF5rPAAGfsD65gvA438.jpg](https://file.elecfans.com/web2/M00/1A/64/poYBAGF7bSiAF5rPAAGfsD65gvA438.jpg)
圖 16
![poYBAGF7bSiAGXY_AAFzTKuUbWk268.jpg](https://file.elecfans.com/web2/M00/1A/64/poYBAGF7bSiAGXY_AAFzTKuUbWk268.jpg)
圖 17
按下"Ctrl+C"停止運行程序。
![pYYBAGF7bSiAQj-fAAFhWZer1nw272.jpg](https://file.elecfans.com/web2/M00/1A/6D/pYYBAGF7bSiAQj-fAAFhWZer1nw272.jpg)
圖 18
執行如下命令控制兩臺伺服電機同時反轉。
Target# ./igh_ethercat_dc_motor -d 1
![poYBAGF7bSiAK-EvAAGbt_suJ3s644.jpg](https://file.elecfans.com/web2/M00/1A/64/poYBAGF7bSiAK-EvAAGbt_suJ3s644.jpg)
圖 19
![poYBAGF7bSiAVVgVAAFsnoci_lE474.jpg](https://file.elecfans.com/web2/M00/1A/64/poYBAGF7bSiAVVgVAAFsnoci_lE474.jpg)
圖 20
![pYYBAGF7bSiAU7JPAAFyd8Bo5T4033.jpg](https://file.elecfans.com/web2/M00/1A/6D/pYYBAGF7bSiAU7JPAAFyd8Bo5T4033.jpg)
圖 21
按下"Ctrl+C"停止運行程序。
![pYYBAGF7bSiAQ0O7AAGHg11qmok288.jpg](https://file.elecfans.com/web2/M00/1A/6D/pYYBAGF7bSiAQ0O7AAGHg11qmok288.jpg)
圖 22
備注:案例設置EtherCAT周期為1ms,同時串口循環打印EtherCAT周期的最小值和最大值。
參數解析:
- latency:等待喚醒時間。
- period:EtherCAT通訊周期時間。
- exec:接收和發送EtherCAT數據時間。
-
FPGA
+關注
關注
1630文章
21799瀏覽量
606119 -
嵌入式
+關注
關注
5094文章
19183瀏覽量
307793 -
工業控制
+關注
關注
38文章
1469瀏覽量
86037 -
Zynq
+關注
關注
10文章
610瀏覽量
47301 -
硬件開發
+關注
關注
3文章
159瀏覽量
24278
發布評論請先 登錄
相關推薦
EtherCAT主站轉Modbus-RTU總線協議網關
![<b class='flag-5'>EtherCAT</b><b class='flag-5'>主</b><b class='flag-5'>站</b>轉Modbus-RTU總線協議網關](https://file1.elecfans.com/web2/M00/04/8A/wKgaombFUlSAGgRZAAKh3tAvK04112.png)
EtherCAT轉Profinet主站協議網關(YC-PNM-ECT)
![<b class='flag-5'>EtherCAT</b>轉Profinet<b class='flag-5'>主</b><b class='flag-5'>站</b>協議網關(YC-PNM-ECT)](https://file1.elecfans.com//web2/M00/04/0F/wKgZombJltGAN87LAAB_wIMcKys114.jpg)
DeviceNet主站轉EtherCAT從站協議網關(JM-ECT-DNTM)
![DeviceNet<b class='flag-5'>主</b><b class='flag-5'>站</b>轉<b class='flag-5'>EtherCAT</b>從<b class='flag-5'>站</b>協議網關(JM-ECT-DNTM)](https://file1.elecfans.com/web2/M00/04/8A/wKgaombFVFKAU2zHAAK3Yso8y6c415.png)
EtherCAT主站轉Modbus TCP從站協議網關(JM-ECTM-TCP)
![<b class='flag-5'>EtherCAT</b><b class='flag-5'>主</b><b class='flag-5'>站</b>轉Modbus TCP從<b class='flag-5'>站</b>協議網關(JM-ECTM-TCP)](https://file1.elecfans.com/web2/M00/04/8A/wKgaombFUlSAGgRZAAKh3tAvK04112.png)
EtherCAT從站轉CANopen主站協議網關(JM-ECT-COP)
![<b class='flag-5'>EtherCAT</b>從<b class='flag-5'>站</b>轉CANopen<b class='flag-5'>主</b><b class='flag-5'>站</b>協議網關(JM-ECT-COP)](https://file1.elecfans.com/web2/M00/02/C8/wKgZoma9yoyABunTAAaz3E2enmI577.png)
基于全志T507-H的Linux-RT + Igh EtherCAT主站案例分享
EtherCAT主站轉Profinet從總線協議轉換網關
![<b class='flag-5'>EtherCAT</b><b class='flag-5'>主</b><b class='flag-5'>站</b>轉Profinet從總線協議轉換網關](https://file1.elecfans.com/web2/M00/FC/CA/wKgZomaWGk-AYyGKAAXOAv30u0o496.png)
【昉·星光 2 高性能RISC-V單板計算機體驗】EtherCAT主站
基于全志T507-H的Igh EtherCAT主站案例分享
可能是最簡單最高效的EtherCAT主站芯片:[ECM-XF]介紹
![可能是最簡單最高效的<b class='flag-5'>EtherCAT</b><b class='flag-5'>主</b><b class='flag-5'>站</b>芯片:[ECM-XF]介紹](https://file1.elecfans.com/web2/M00/EB/E6/wKgaomZcEJWAFRNcAAArv7CeriA409.png)
【米爾-瑞薩RZ/G2UL開發板】6.基于SOEM的EtherCat主站
基于全志T507-H的Linux-RT + Igh EtherCAT主站案例分享
![基于全志T507-H的Linux-RT + <b class='flag-5'>Igh</b> <b class='flag-5'>EtherCAT</b><b class='flag-5'>主</b><b class='flag-5'>站</b>案例分享](https://file1.elecfans.com/web2/M00/C6/05/wKgZomYEx1SASuBHAACZwAaDNaQ181.png)
ZMC900E 國產EtherCAT主站控制器 — 電源口傳導騷擾整改
![ZMC900E 國產<b class='flag-5'>EtherCAT</b><b class='flag-5'>主</b><b class='flag-5'>站</b>控制器 — 電源口傳導騷擾整改](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
EtherCAT主站轉Ethernet/IP網關
![<b class='flag-5'>EtherCAT</b><b class='flag-5'>主</b><b class='flag-5'>站</b>轉Ethernet/IP網關](https://file1.elecfans.com//web2/M00/C1/5E/wKgZomXdl82AFs43AACA2t3r1tE26.webp)
評論