前 言
創(chuàng)龍科技已基于IMX8、ZYNQ、AM5728、AM5708、AM437x、AM335x、T3/A40i等平臺(tái)提供了開源EtherCAT主站IgH案例。本文主要演示TLZ7x-EasyEVM-S評(píng)估板基于IgH EtherCAT控制伺服電機(jī)方法。
案例適用開發(fā)環(huán)境:
Windows開發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit
Linux開發(fā)環(huán)境:Ubuntu 14.04.3 64bit
虛擬機(jī):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
伺服驅(qū)動(dòng)器:臺(tái)達(dá)ASD-A2-0121-E
伺服電機(jī):臺(tái)達(dá)ECMA-C10401GS
硬件平臺(tái):TLZ7x-EasyEVM-S評(píng)估板(Xilinx Zynq-7010/7020)
圖 1 TLZ7x-EasyEVM評(píng)估板
圖 2 SOM-TLZ7x-S核心板
IgH EtherCAT簡(jiǎn)介
IgH EtherCAT為運(yùn)行于Linux系統(tǒng)的免費(fèi)開源EtherCAT主站程序,框架如下所示。
圖 3
IgH EtherCAT主站通過構(gòu)建Linux字符設(shè)備,應(yīng)用程序通過對(duì)字符設(shè)備的訪問實(shí)現(xiàn)與EtherCAT主站模塊的通信。
IgH EtherCAT開發(fā)包提供EtherCAT工具,該工具提供各種可在Linux用戶層運(yùn)行的命令,可直接實(shí)現(xiàn)對(duì)從站的訪問和設(shè)置,如設(shè)置從站地址、顯示總線配置、顯示PDO數(shù)據(jù)、讀寫SDO參數(shù)等。
案例說明
案例功能:控制伺服電機(jī)正轉(zhuǎn)和反轉(zhuǎn)。
- 正轉(zhuǎn):伺服電機(jī)目標(biāo)速度從0加速到10000,當(dāng)達(dá)到10000速度后,控制伺服電機(jī)減速至0,循環(huán)運(yùn)行。
- 反轉(zhuǎn):伺服電機(jī)目標(biāo)速度從0加速到-10000,當(dāng)達(dá)到-10000速度后,控制伺服電機(jī)減速至0,循環(huán)運(yùn)行。
圖 4
案例測(cè)試
請(qǐng)按下圖所示使用網(wǎng)線連接評(píng)估板RGMII ETH網(wǎng)口和伺服驅(qū)動(dòng)器A的IN網(wǎng)口,將伺服驅(qū)動(dòng)器A的OUT網(wǎng)口使用網(wǎng)線連接至伺服驅(qū)動(dòng)器B的IN網(wǎng)口。
圖 5
圖 6
為便于測(cè)試,我司提供已驗(yàn)證的基于Xenomai編譯生成的內(nèi)核鏡像文件和設(shè)備樹鏡像文件,位于案例"igh_ethercat_dc_motor\kernel-xenomai\images\linux-xlnx-xenomai-g7645980-v1.0"目錄下,請(qǐng)?zhí)鎿Q至Linux系統(tǒng)啟動(dòng)卡rootfs分區(qū)boot目錄下。同時(shí)將linux-xlnx-xenomai-g7645980-v1.0目錄下的module驅(qū)動(dòng)壓縮包4.9.0-xilinx-g7645980.tar.gz,解壓至Linux系統(tǒng)啟動(dòng)卡rootfs分區(qū)"lib/modules/"目錄下。
備注:如需使用由內(nèi)核源碼重新編譯生成的內(nèi)核鏡像文件和設(shè)備樹文件,請(qǐng)參考Linux系統(tǒng)使用手冊(cè)將編譯的module驅(qū)動(dòng)安裝至Linux系統(tǒng)啟動(dòng)卡中,默認(rèn)安裝后module驅(qū)動(dòng)目錄為4.9.0-xilinx。
圖 7
將IgH EtherCAT主站程序文件夾整個(gè)拷貝至評(píng)估板文件系統(tǒng),執(zhí)行如下命令查詢?cè)u(píng)估板網(wǎng)卡物理地址。
圖 9
執(zhí)行如下命令加載驅(qū)動(dòng)模塊。
Target# insmod /home/root/_install/modules/ec_master.ko main_devices=00:0a:35:00:01:22
圖 10
執(zhí)行如下命令拷貝EtherCAT主站相關(guān)文件至評(píng)估板文件系統(tǒng)。
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/ //模塊驅(qū)動(dòng)名稱可通過"uname -r"查看
Target# depmod //同步模塊依賴關(guān)系
圖 11
執(zhí)行如下命令啟動(dòng)EtherCAT主站。
Target# /home/root/_install/etc/init.d/ethercat start
圖 12
執(zhí)行如下命令加載ec_generic.ko驅(qū)動(dòng)文件。
Target# insmod _install/modules/ec_generic.ko
圖 13
執(zhí)行如下命令添加IgH動(dòng)態(tài)鏈接庫路徑。
Target# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/root/_install/lib
圖 14
將案例igh_ethercat_dc_motor可執(zhí)行文件拷貝至評(píng)估板文件系統(tǒng),執(zhí)行如下命令查看參數(shù)信息。
Target# ./igh_ethercat_dc_motor --help
圖 15
執(zhí)行如下命令控制兩臺(tái)伺服電機(jī)同時(shí)正轉(zhuǎn)。
Target# ./igh_ethercat_dc_motor -d 0
圖 16
圖 17
按下"Ctrl+C"停止運(yùn)行程序。
圖 18
執(zhí)行如下命令控制兩臺(tái)伺服電機(jī)同時(shí)反轉(zhuǎn)。
Target# ./igh_ethercat_dc_motor -d 1
圖 19
圖 20
圖 21
按下"Ctrl+C"停止運(yùn)行程序。
圖 22
備注:案例設(shè)置EtherCAT周期為1ms,同時(shí)串口循環(huán)打印EtherCAT周期的最小值和最大值。
參數(shù)解析:
- latency:等待喚醒時(shí)間。
- period:EtherCAT通訊周期時(shí)間。
- exec:接收和發(fā)送EtherCAT數(shù)據(jù)時(shí)間。
-
FPGA
+關(guān)注
關(guān)注
1630文章
21798瀏覽量
606048 -
嵌入式
+關(guān)注
關(guān)注
5093文章
19178瀏覽量
307713 -
工業(yè)控制
+關(guān)注
關(guān)注
38文章
1468瀏覽量
86030 -
Zynq
+關(guān)注
關(guān)注
10文章
610瀏覽量
47298 -
硬件開發(fā)
+關(guān)注
關(guān)注
3文章
159瀏覽量
24278
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論