前 言
創龍科技已基于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)
圖 1 TLZ7x-EasyEVM評估板
圖 2 SOM-TLZ7x-S核心板
IgH EtherCAT簡介
IgH EtherCAT為運行于Linux系統的免費開源EtherCAT主站程序,框架如下所示。
圖 3
IgH EtherCAT主站通過構建Linux字符設備,應用程序通過對字符設備的訪問實現與EtherCAT主站模塊的通信。
IgH EtherCAT開發包提供EtherCAT工具,該工具提供各種可在Linux用戶層運行的命令,可直接實現對從站的訪問和設置,如設置從站地址、顯示總線配置、顯示PDO數據、讀寫SDO參數等。
案例說明
案例功能:控制伺服電機正轉和反轉。
- 正轉:伺服電機目標速度從0加速到10000,當達到10000速度后,控制伺服電機減速至0,循環運行。
- 反轉:伺服電機目標速度從0加速到-10000,當達到-10000速度后,控制伺服電機減速至0,循環運行。
圖 4
案例測試
請按下圖所示使用網線連接評估板RGMII ETH網口和伺服驅動器A的IN網口,將伺服驅動器A的OUT網口使用網線連接至伺服驅動器B的IN網口。
圖 5
圖 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。
圖 7
將IgH EtherCAT主站程序文件夾整個拷貝至評估板文件系統,執行如下命令查詢評估板網卡物理地址。
圖 9
執行如下命令加載驅動模塊。
Target# insmod /home/root/_install/modules/ec_master.ko main_devices=00:0a:35:00:01:22
圖 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 //同步模塊依賴關系
圖 11
執行如下命令啟動EtherCAT主站。
Target# /home/root/_install/etc/init.d/ethercat start
圖 12
執行如下命令加載ec_generic.ko驅動文件。
Target# insmod _install/modules/ec_generic.ko
圖 13
執行如下命令添加IgH動態鏈接庫路徑。
Target# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/root/_install/lib
圖 14
將案例igh_ethercat_dc_motor可執行文件拷貝至評估板文件系統,執行如下命令查看參數信息。
Target# ./igh_ethercat_dc_motor --help
圖 15
執行如下命令控制兩臺伺服電機同時正轉。
Target# ./igh_ethercat_dc_motor -d 0
圖 16
圖 17
按下"Ctrl+C"停止運行程序。
圖 18
執行如下命令控制兩臺伺服電機同時反轉。
Target# ./igh_ethercat_dc_motor -d 1
圖 19
圖 20
圖 21
按下"Ctrl+C"停止運行程序。
圖 22
備注:案例設置EtherCAT周期為1ms,同時串口循環打印EtherCAT周期的最小值和最大值。
參數解析:
- latency:等待喚醒時間。
- period:EtherCAT通訊周期時間。
- exec:接收和發送EtherCAT數據時間。
-
FPGA
+關注
關注
1620文章
21511瀏覽量
599021 -
嵌入式
+關注
關注
5046文章
18821瀏覽量
298672 -
工業控制
+關注
關注
36文章
1386瀏覽量
85650 -
Zynq
+關注
關注
9文章
604瀏覽量
47019 -
硬件開發
+關注
關注
3文章
156瀏覽量
24045
發布評論請先 登錄
相關推薦
評論