国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

DR1M90 開源 IgH EtherCAT 主站案例:伺服電機正反轉實時控制方案

Tronlong創龍科技 ? 來源:Tronlong創龍科技 ? 作者:Tronlong創龍科技 ? 2026-01-04 15:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前 言

本文檔主要基于評估板演示IgH EtherCAT主站的伺服電機實時控制,方案基于Linux-RT實時內核與開源IgH EtherCAT協議棧。本文檔適用開發環境:

開發環境

Windows開發環境:Windows10 64bit

Linux開發環境:VMware16.2.5、Ubuntu22.04.4 64bit

LinuxSDK開發包:LinuxSDK-[版本號](基于SDK_2025.1)

交叉編譯工具鏈:

應用開發:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu

U-Boot、內核開發:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu

評估板系統版本:U-Boot-2021.01、Linux-6.1.111、Buildroot-2022.02

備注:本文基于8GByteeMMC、1GByteDDR配置核心板進行演示。

伺服驅動器:臺達ASD-A2-0121-E

伺服電機:臺達ECMA-C10401GS

術語表

為便于閱讀,下表對文檔出現的關鍵術語進行解釋;對于廣泛認同釋義的術語,在此不做注釋。

wKgZPGlaFkaAYLS3AAAS6kqkB9U866.png

注意事項

我司提供的IgH EtherCAT主站開發案例igh_ethercat_dc_motor位于產品資料“4-軟件資料Demobase-demos”目錄下,具體說明如下。

wKgZPGlaFkyAKhe2AAAxH67Poao174.png

IgHEtherCAT簡介

EtherCAT(以太網控制自動化技術)是一個開放架構,以以太網為基礎的現場總線系統,其名稱的CAT為控制自動化技術(Control Automation Technology)字首的縮寫。EtherCAT是確定性的工業以太網。自動化對通訊一般會要求較短的資料更新時間(或稱為周期時間)、資料同步時的通訊抖動量低,而且硬件的成本要低,EtherCAT開發的目的就是讓以太網可以運用在自動化應用中。

本文檔主要介紹運行于Linux系統的免費開源EtherCAT主站程序——IgH EtherCAT。IgH EtherCAT是EtherCAT協議主站協議棧的開源實現,它為用戶提供了免費使用、修改和定制源代碼的便利,使得用戶能夠根據實際需求靈活調整和優化EtherCAT主站的功能。其框架如下所示。

wKgZPGiQYZ2AJujzAAFLASU3li4860.png圖 1

IgHEtherCAT主站通過構建Linux字符設備,應用程序通過對字符設備的訪問實現與EtherCAT主站模塊的通信

IgH EtherCAT開發包提供EtherCAT工具,該工具提供各種可在Linux用戶層運行的命令,可直接實現對從站的訪問和設置,如設置從站地址、顯示總線配置、顯示PDO數據、讀寫SDO參數等。

IgH EtherCAT官網:https://www.etherlab.org/en/ethercat。

案例說明

案例功能:EtherCAT通訊周期時間為1ms,控制伺服電機正轉和反轉,并通過串口循環打印EtherCAT通訊周期時間的最大值和最小值。

(1)正轉:伺服電機目標速度從0加速到10000,當達到10000速度后,控制伺服電機減速至0,循環運行。

(2)反轉:伺服電機目標速度從0加速到-10000,當達到-10000速度后,控制伺服電機減速至0,循環運行。

wKgZO2iQYaaAawCqAACJBUuhKHM771.png圖 2

案例測試

本案例需基于Linux-RT內核運行。請先參考《Linux系統開發手冊》的“替換Kernel”章節修改系統內核鏡像。

本案例程序均設置為SCHED_FIFO進程調度策略,進程優先級設置為最高,采用隔離CPU核心狀態,分別在空載狀態、滿負荷狀態持續運行程序12小時。

請使用網線將評估板ETH1 RGMII網口連接至伺服驅動器A的IN網口,再使用另一根網線將伺服驅動器A的OUT網口連接至伺服驅動器B的IN網口。

wKgZO2laFmqAA59wAGJ09Hn2vFE083.png圖 3

wKgZPGiQYcSABLr2AAkJCTEqOy0981.png圖 4

隔離CPU核心

本次操作以隔離CPU1核心為例進行演示。將評估板斷電,長按"Ctrl + C"按鍵并上電啟動評估板,進入U-Boot命令行模式后松開按鍵,執行如下命令修改環境變量,隔離CPU1核心。

U-Boot# setenv mmc_boot 'if mmc dev ${devnum}; then devtype=mmc; if test ${devnum} -eq 0; then setenv bootargs '"'"'console=ttyS1,115200n8 earlycon=uart,mmio32,0xf8401000 loglevel=8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait isolcpus=1'"'"'; fi; if test ${devnum} -eq 1; then setenv bootargs '"'"'console=ttyS1,115200n8 earlycon=uart,mmio32,0xf8401000 loglevel=8 root=/dev/mmcblk1p2 rw rootfstype=ext4 rootwait isolcpus=1'"'"'; fi; ext4load mmc ${devnum}:2 ${kernel_addr_r} ${bootdir}/${kernel_image}; ext4load mmc ${devnum}:2 ${fdt_addr_r} ${bootdir}/${devicetree_image}; bootm ${kernel_addr_r} - ${fdt_addr_r}; run scan_dev_for_boot_part2; fi'

U-Boot# saveenv

U-Boot# reset

wKgZPGkuVBqADK-EAAAw0r20zm0586.png圖 5

進入評估板文件系統,執行如下命令,確認已正確隔離CPU。

Target# cat /proc/cmdline

wKgZO2kuVamAB_hwAAASx8BkVns687.png圖 6

測試完成,如需恢復U-Boot環境變量,在U-Boot命令行模式執行以下命令。

U-Boot# env default -a

U-Boot# saveenv

U-Boot# reset

wKgZPGlaFveARN0wAAAIcTw4lLM029.png圖 7

安裝IgHEtherCAT驅動

請將案例"igh_ethercatimages"目錄下的ethercat-stable-[版本號]-[Git序列號].tar.gz壓縮包拷貝至評估板文件系統任意目錄下。版本號、Git序列號請以實際情況為準。將案例bin目錄下的igh_ethercat_dc_motor可執行文件拷貝至評估板文件系統。

執行如下命令,解壓IgH EtherCAT開發包源碼,得到_install文件夾。

Target# tar -xvf ethercat-stable-1.6.2-g285cdf0.tar.gz

wKgZPGlaF0-AHmipAAA8AN3iFjQ609.png圖 8

執行如下命令,并查詢評估板網卡物理地址。

Target# ifconfig

wKgZPGlaF1qATz_3AAA_ujWBFCU478.png圖 9

執行如下命令,加載驅動模塊,命令中"6A:71:14:3D:61:75"為評估板網卡物理地址,請根據實際情況修改。

Target# insmod -f _install/modules/ec_master.ko main_devices=6A:71:14:3D:61:75

wKgZPGlaF2GAZ3WAAAASnVenq4o761.png圖 10

執行如下命令,拷貝EtherCAT主站相關文件至評估板文件系統。

Target# mkdir -p /etc/sysconfig

Target# cp _install/etc/sysconfig/ethercat /etc/sysconfig

Target# mkdir -p /lib/modules/$(uname -r)

Target# cp _install/modules/ec_master.ko /lib/modules/$(uname -r)

Target# depmod -a

備注:此處的警告信息不影響測試結果,忽略即可。

wKgZPGlaF2mAeDpJAAA3VpDfv-0293.png圖 11

執行如下命令,啟動EtherCAT主站。

Target# ./_install/etc/init.d/ethercat start

wKgZPGlaF3CAbtf6AAAKpcq68Lw919.png圖 12

執行如下命令,加載ec_generic.ko驅動文件。

Target# insmod -f _install/modules/ec_generic.ko

wKgZPGlaF3eAAuqxAAA1OHzh7iA651.png圖 13

執行如下命令,添加動態鏈接庫路徑。

Target# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/_install/lib

Target# sync

wKgZO2laF36AcljbAAAJOJrPoTg253.png圖 14

基于CPU空載狀態測試

執行如下命令修改內核printk日志等級,避免內核打印信息影響實時測試。

Target# echo 1 > /proc/sys/kernel/printk

wKgZO2kuUy2AIoSCAAAGrpsS3xA053.png圖?15

調整內存分配策略為"2",禁用內存過度使用。避免出現OOM(Out-of-Memory) Killer攻擊某些進程而產生延遲,影響測試結果。

Target# echo 2> /proc/sys/vm/overcommit_memory

wKgZO2kuU2CAbGDdAAAHNSIe2lw825.png圖?16

執行如下命令,可查看igh_ethercat_dc_motor程序相關參數信息。

Target# ./igh_ethercat_dc_motor --help

wKgZO2laF5KAbAKSAAAifdMUJAI931.png圖 17

參數解釋

-d:指定電機轉向,0:正轉,1:反轉。

-v:程序版本信息。

-s:選擇進程調度策略模式。"-s 0"表示進程調度策略為SCHED_FIFO;"-s 1"表示進程調度策略為SCHED_DEADLINE,若不帶可選參數值[]則使用默認參數值,其中sched_runtime表示運行時間,sched_deadline表示相對期限,sched_period表示周期,單位均為納秒。

--help:查看程序運行參數。

執行以下命令,設置進程調度策略為SCHED_FIFO,控制兩臺伺服電機同時正轉,并將程序運行輸出的打印信息保存至log.txt文件。

Target# taskset -c 1 ./igh_ethercat_dc_motor -d 0 -s 0 > log.txt &

wKgZO2laF5qAFJScAAAIuA9z0MI314.png圖 18

基于CPU滿負荷狀態測試

執行如下命令修改內核printk日志等級,避免內核打印信息影響實時測試。

Target# echo 1 > /proc/sys/kernel/printk

wKgZO2kuUy2AIoSCAAAGrpsS3xA053.png圖 19

調整內存分配策略為"2",禁用內存過度使用。避免出現OOM(Out-of-Memory) Killer攻擊某些進程而產生延遲,影響測試結果。

Target# echo 2> /proc/sys/vm/overcommit_memory

wKgZO2kuU2CAbGDdAAAHNSIe2lw825.png圖?20

執行如下命令,運行stress壓力測試工具,使得CPU處于滿負荷狀態。

Target# stress-ng --cpu 2 --cpu-method=all --io 2 --vm 2 --vm-bytes 32M --timeout 43200s &

wKgZO2kuVAyAXULTAAAee-bzhbg370.png圖?21

設置進程調度策略為SCHED_FIFO,控制兩臺伺服電機同時正轉,并將程序運行輸出的打印信息保存至log.txt文件。

Target# taskset -c 1 ./igh_ethercat_dc_motor -d 0 -s 0 > log.txt &

wKgZPGlaF7yAabKXAAAIUJqTzzw953.png圖 22

統計結果分析

可執行如下命令,查看程序運行輸出的log.txt內容。

Target# head -n100 log.txt

wKgZPGlaF8WATeTKAABe5ViA2P8461.png圖 23

參數解析:

latency:等待喚醒時間(ns)。

period:EtherCAT通訊周期時間(ns),本案例設置為1000000ns,即1ms。

exec:接收和發送EtherCAT數據時間(ns)。

對log.txt文件內容進行分析后,得到的實時性能測試結果如下。

wKgZPGlaF8yAZfU7AAANsgdVEDY632.png

備注:

(1)以上數據為本次測試結果,測試數據僅供參考。

(2)如需測試電機反轉,請參考上述電機正轉測試方法,將運行igh_ethercat_dc_motor可執行程序命令中的"-d 0"參數修改為"-d 1"。

?由于篇幅過長等原因,部分內容均不逐一展示,如需獲取完整版詳細資料,請關注創龍科技微信公眾號或官網,或者評論區留言,感謝您的支持!

審核編輯 黃宇

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

    關注

    88

    文章

    2184

    瀏覽量

    61270
  • 開源
    +關注

    關注

    3

    文章

    4203

    瀏覽量

    46120
  • 實時控制
    +關注

    關注

    0

    文章

    56

    瀏覽量

    9853
  • ethercat
    +關注

    關注

    19

    文章

    1507

    瀏覽量

    45160
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于 DR1M90 的 Linux-RT 內核開發:從編譯配置到 GPIO / 按鍵應用實現(1

    本手冊由創龍科技研發,針對 DR1M90,詳述 Linux-RT 實時內核開發:含實時性測試(Linux 與 Linux-RT 對比、CPU 空載 / 滿負荷 / 隔離狀態測試)、內核配置編譯
    的頭像 發表于 12-02 10:38 ?1173次閱讀
    基于 <b class='flag-5'>DR1M90</b> 的 Linux-RT 內核開發:從編譯配置到 GPIO / 按鍵應用實現(<b class='flag-5'>1</b>)

    基于安路DR1M90 FPSoC的Linux系統全流程開發指南(4)

    ,以及 CPU/DDR 管理,附帶 TFTP+NFS 快速調試方案。含實操命令與配置步驟,適配特定硬件與開發環境,幫助開發者完成系統鏡像生成、替換與調試,支撐 DR1M90 FPSoC 產品的 Linux 系統開發工作。
    的頭像 發表于 11-30 15:46 ?2181次閱讀
    基于安路<b class='flag-5'>DR1M90</b> FPSoC的Linux系統全流程開發指南(4)

    基于BL350與IGH?EtherCAT的硬實時控制解決方案

    現代高性能應用的需求。本文將詳細介紹一種基于鋇錸技術ARMxy?BL350系列嵌入式工業計算機,結合IGH?EtherCAT與Linux-RT
    的頭像 發表于 11-27 14:08 ?343次閱讀

    基于安路DR1M90 FPSoC 的Linux 系統全流程開發指南(3)

    ,以及 CPU/DDR 管理,附帶 TFTP+NFS 快速調試方案。含實操命令與配置步驟,適配特定硬件與開發環境,幫助開發者完成系統鏡像生成、替換與調試,支撐 DR1M90 FPSoC 產品的 Linux 系統開發工作。
    的頭像 發表于 11-26 17:01 ?318次閱讀
    基于安路<b class='flag-5'>DR1M90</b> FPSoC 的Linux 系統全流程開發指南(3)

    基于安路DR1M90 FPSoC 的Linux 系統全流程開發指南(1

    ,以及 CPU/DDR 管理,附帶 TFTP+NFS 快速調試方案。含實操命令與配置步驟,適配特定硬件與開發環境,幫助開發者完成系統鏡像生成、替換與調試,支撐 DR1M90 FPSoC 產品的 Linux 系統開發工作。
    的頭像 發表于 11-25 14:09 ?383次閱讀
    基于安路<b class='flag-5'>DR1M90</b> FPSoC 的Linux 系統全流程開發指南(<b class='flag-5'>1</b>)

    盟通科技基于瑞薩RZ MPU的EtherCAT應用方案

    瑞薩電子攜手盟通科技推出基于瑞薩RZ MPU的EtherCAT應用方案,為工業機器人、伺服驅動、PLC和自動化
    的頭像 發表于 11-21 10:31 ?1157次閱讀
    盟通科技基于瑞薩RZ MPU的<b class='flag-5'>EtherCAT</b><b class='flag-5'>主</b><b class='flag-5'>站</b>應用<b class='flag-5'>方案</b>

    安路DR1M90評估板:從基礎外設到通信模塊測試指南

    本手冊由創龍科技研發,針對安路飛龍 DR1M90 評估板,詳述 Linux 系統下功能測試流程。含系統啟動驗證,LED、按鍵、DDR 等基礎外設測試,ETH、WiFi、4G、GPS 等通信功能測試
    的頭像 發表于 11-20 15:26 ?1409次閱讀
    安路<b class='flag-5'>DR1M90</b>評估板:從基礎外設到通信模塊測試指南

    【米爾RK3506國產開發板評測】3、實時補丁以及EtherCAT IGH移植

    EtherCAT IgH需要保證高實時性,Preempt-RT是一種針對實時性能進行了優化的Linux內核。與普通的Linux內核相比,Preempt-RT具有以下優勢:
    發表于 10-27 10:09

    創龍 瑞芯微 RK3588 國產2.4GHz八核 工業開發板—IgH?EtherCAT站開發案例(下)

    /SCHED_DEADLINE 模式在空載 / 滿負荷狀態測試)、編譯(程序與 igh_ethercat_dc_motor 案例編譯)及關鍵代碼。案例以 1ms
    的頭像 發表于 10-15 15:06 ?619次閱讀
    創龍 瑞芯微 RK3588 國產2.4GHz八核 工業開發板—<b class='flag-5'>IgH</b>?<b class='flag-5'>EtherCAT</b><b class='flag-5'>主</b>站開發案例(下)

    創龍 瑞芯微 RK3588 國產2.4GHz八核 工業開發板—IgH?EtherCAT站開發案例(上)

    /SCHED_DEADLINE 模式在空載 / 滿負荷狀態測試)、編譯(程序與 igh_ethercat_dc_motor 案例編譯)及關鍵代碼。案例以 1ms
    的頭像 發表于 10-14 11:55 ?633次閱讀
    創龍 瑞芯微 RK3588 國產2.4GHz八核 工業開發板—<b class='flag-5'>IgH</b>?<b class='flag-5'>EtherCAT</b><b class='flag-5'>主</b>站開發案例(上)

    【米爾NXP i.MX 91開發板評測】移植運行IGH EtherCAT

    通信應用(EtherCAT),EtherCAT在半導體設備、自動化產線、機器人等領域應用廣泛,是基于通用以太網協議的變種 移植 拉取開源IGH Et
    發表于 09-01 16:32

    創龍科技DR1M90工業評估板的關鍵優勢

    安路科技生態合作伙伴創龍科技正式推出了基于安路科技產品DR1M90工業核心板,共同助力國產FPGA技術的推廣和創新應用。
    的頭像 發表于 08-18 16:20 ?1484次閱讀

    國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—IgH EtherCAT站開發案例

    本文檔主要演示TLT113-EVM評估板基于IgH EtherCAT控制伺服電機
    的頭像 發表于 08-04 15:48 ?817次閱讀
    國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—<b class='flag-5'>IgH</b> <b class='flag-5'>EtherCAT</b><b class='flag-5'>主</b>站開發案例

    基于米爾安路飛龍派FPGA FPSoC+移植SOEM實現EtherCAT控制功能

    X開發板上移植SOEM,可以實現對EtherCAT的IO控制,安路的DR190M芯片可以作為EtherCAT
    發表于 07-11 19:49

    EtherCAT轉Profinet網關接匯川伺服操作模式的控制解析

    與設備間搭建了標準化橋梁。當需要將采用EtherCAT協議的從設備(如伺服驅動器等)與Profinet設備(如西門子
    的頭像 發表于 07-09 14:45 ?595次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>主</b><b class='flag-5'>站</b>轉Profinet網關接匯川<b class='flag-5'>伺服</b>操作模式的<b class='flag-5'>控制</b>解析