999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Linux平臺的EtherCAT主站設計與研究

2023-12-18 10:42:15楊亮亮錢家豪魯文其潘曉銘
計算機時代 2023年11期

楊亮亮 錢家豪 魯文其 潘曉銘

關鍵詞:EtherCAT;Linux;工業以太網;SOEM

中圖分類號:TP273 文獻標識碼:A 文章編號:1006-8228(2023)11-12-04

0 引言

在工業自動化控制領域,控制系統需不斷滿足通信速度、控制精度、抗干擾能力和實時性的要求[1]。傳統總線控制方式已不能滿足要求,工業以太網技術因其高實時性和穩定性成為工業技術發展的重要推動力,如廣泛應用的有EtherCAT、EtherNet/IP、SERCOS等[2]。

EtherCAT 協議使用了一種名為“處理數據”的方式,使得數據可以在網絡上以非常高的速度傳輸,從而獲得實時性能好的控制,在測控領域、工業機器人等領域都有著重要的應用價值。

目前市面上使用EtherCAT 來控制高端數控系統的主站,主要是倍福公司基于傳統的PC 研發的TwinCAT 商業主站,其價格高昂、不開源、靈活性差,正在被嵌入式主站逐步替代[3-4],但傳統的嵌入式主站因其芯片價格一直居高不下,故使用成本高。針對上述問題,本文設計了一種Linux+RT-PREEMPT+SOME 的框架下搭建EtherCAT 主站的方案,采用國產T3 芯片作為主站控制芯片,實現了對二臺伺服電機周期性控制,并對其周期性和實時性進行了測試。此方案即滿足了EtherCAT 主站強實時性和高穩定性的要求,又解決了傳統EtherCAT 主站成本高、便攜性差的缺點。

1 EtherCAT系統架構

EtherCAT 是一種實時以太網協議,其核心是一個分布式控制系統,其中多個設備通過一個物理總線連接[5-6]。其系統總體架構及運行原理如圖1 所示,搭載Linux 實時系統的全志T3 系列芯片與PHY 芯片連接,然后PHY 芯片連接帶有網絡隔離變壓器的RJ45 接口,組成了EtherCAT 主站,從站由多臺伺服驅動器和伺服電機構成,主站通過網線將EtherCAT 報文發送至全部從站。

2 Linux 系統實時性優化

EtherCAT 主站對其搭載的操作系統的實時性提出了要求[7],本文選用的Linux 操作系統內核版本為Linux-3.10.65,其具有豐富軟件資料,穩定性和重構性強的優勢,但本身作為一個通用操作系統內核而設計的,存在實時性能差的缺點,因此選用RT-Preempt 實時補丁優化Linux 系統[8-9]。優化Linux 系統的實時性步驟如圖2 所示,通過SecureCRT 軟件,在其終端上輸入uname -a 來查看當前開發板的Linux 內核的相關信息,用來判斷Linux 操作系統實時性優化是否成功。

3 EtherCAT 主站設計

3.1 應用程序設計

EtherCAT 主站和從站建立通信主要由EtherCAT總線配置和周期實時任務兩個階段組成。如圖3 所示。通過在終端使用ifconfig 命令查看所用的網絡設備并對網口進行配置。其中ec_config_init()函數負責從站的配置信息:包含從站的數量、產品的ID。以便于主站可以和特定的從站進行PDO 數據交換。

EtherCAT 狀態機的通信機制是用來實現主站和從站之間的通信,并且定義了主站和從站在通信過程中可以采取的狀態[10]。EtherCAT 主站要控制從站運行,需要經過四個狀態,分別是Init( 初始化),Pre-Operational( 預運行),Safe-Operational( 安全運行),Operational(運行),必須按照“初始化→預運行→預運行→安全運行”順序進行狀態的轉化,不能越級轉化,從運行狀態返回時可以越級轉化[11]。

EtherCAT 主站控制伺服電機周期同步位置模式模式(Cyclic synchronous position mode, CSP)運行,需要在Pre-Operational 狀態轉向Safe-Operational 狀態期間,需要配置從站的信息,主站按照CiA402 標準協議進行PDO 映射,PDO 可以分為RxPDO(信息寫入從站)和TxPDO(從站發出信息),其配置信息如圖4所示。

伺服電機csp 模式運行之前,需要設置伺服驅動器的模式并且控制其使能,根據CiA402 協議,csp 模式對應的控制模式為8,因此需要將地址60600008h 寫入8,地址60400010h 寫入任意數→6→7→15 的順序使能伺服驅動器。

3.2 周期性實時任務

周期性實時任務的作用是實現主站與從站之間過程數據的交換,其包含了主站周期性實時生成控制指令(邏輯運算指令和運動控制算法)并發送給從站,從站接收完主站指令執行周期性任務以及反饋運行狀態。在SOEM 中實現的代碼如下所示:

ec_send_processdata();

ec_receive_processdata(EC_TIMEOUTRET);

周期時間的控制精度影響著EtherCAT 實時性的精度,因此時鐘函數選用的是擁有納秒級精度的clock_gettime()和clock_nanosleep()。其周期實時任務設計模塊如圖5 所示。其中clock_gettime()和clock_nanosleep()函數的第一參數為CLOCK_MONOTONIC,將以絕對時間為準,獲取的時間為系統重啟到現在的時間,系統時間的更改對其沒有影響,t1 和t2為絕對時間。

4 實驗平臺搭建及測試

本文提出的基于Linux 嵌入式的EtherCAT 主站實驗平臺如圖6所示,其中主要由EtherCAT主站和從站組成,全志T3系列開發板上使用Linux+RT-PREEMPT+SOEM 的開源架構作為EtherCAT 主站,從站選用了兩臺禾川公司開發的X3E 伺服驅動器和伺服電機。

4.1 Linux 內核實時性測試

RT-PREEMPT 移植完成后,需要對其進行實時性測試,以此來用對在實際應用場合中處理多任務高負載的場景,因此使用壓力測試工具模擬系統處于高負載的場景,并且同時運行EtherCAT 主站應用程序,然后使用Cyclictest 工具測量系統的實時性。

使用由圖7 可知,沒有實時內核的Linux 系統的實時線程最大延遲達到了2ms,已經超出了EtherCAT 對實時性的要求。而由圖8 表明,經過實時性優化的Linux 內核的實時線程的性能得到了極大的提升,最大的延遲在60us 左右,平均延遲在18us 左右,最小延遲在11us 左右,其結果表明實時內核的性能更加優于非實現內核,達到了EtherCAT 主站對實時性us 精度的要求。

4.2 EtherCAT 通信測試

周期時間需要實際工程的需求來設定,其中EtherCAT 數據幀收發的時間是一個重要的影響因素,周期時間設定的值必須要大于EtherCAT 一幀數據幀的收發時間,選用clock_gettime() 函數來測量EtherCAT 收發幀的時間,經過長時間的測量,最大時間為420us。考慮到伺服運動控制也需要花費時間,因此將周期時間設為2ms。

啟動EtherCAT 主站應用程序,主站與從站進行周期數據交換后,使用交換機分別與PC 和T3 開發板的網口相連,使用Wireshark 軟件抓取EtherCAT 數據幀并進行統計與分析,EtherCAT 報文如圖9 所示。

EtherCAT通過檢擦字報文中的WKC(Working Cnt)的值并和預期的值進行對比,以此來判斷從站是否有正確的處理報文,當字報文經過一個從站時,進行讀或寫操作成功時,WKC 會加1,在進行讀/寫操作時,讀成功時WKC 加1,寫成功時WKC 加2,讀寫都成功時,WKC 的時便會加3[12]。由圖9 可知,主站連接著兩個伺服從站,執行LRW 和FRMW 的命令后,WKC 的數值從0 分別變為了6 和2,說明了從站正確處理了報文。

4.3 主站實時性測試

在SOEM 中,ecx_context.DCtime 是一個用來表示當前DC 時鐘值的變量,可以通過檢查ecx_context.DCtime 的值來確定從站的同步狀態,因此使用ns 級別精度的clock_gettime()函數來獲取當前以及上一個ecx_context.DCtime 的值,通過當前的DC 值減去上一次的DC 值,便可以計算出當前的數據傳輸時間,經過長時間的測試,其結果如表1 所示,EtherCAT 數據幀傳輸平均周期為2000005ns 左右,符合設定了2ms 周期,并且最大的周期為2139840ns,與設定的2ms 周期相差了130us 左右,符合EtherCAT 對實時性的要求,而且在測試期間伺服電機通信穩定無報錯。

由表1 的結果表明,該方案能穩定運行EtherCAT通信,為了進一步分析其主站的性能,利用tshark 工具將Wireshark 抓取的EtherCAT 數據包中的時間戳提取出來并進行分析,其測試結果如下所示:

由圖10 可知,在Linux+RT-PREEMPT+SOEM 的架構中,EtherCAT 主站和從站能正常的周期性通信,該方案的抖動量在80us 左右,最大的抖動量在160us左右。與系統設置的2ms 周期相比,其延遲是符合預期要求的,并且在保證正常通信的情況下,該方案可以輕松地進行跨平臺移植,從而減少了大量不必要的安裝和部署工作,降低了學習難度。此外,隨著硬件性能的提高,抖動量也會逐漸減少。

5 結束語

本文介紹了基于Linux+RT-PREEMPT+SOEM 的開源框架搭建EtherCAT 主站的主要流程,著重介紹了應用程序設計流程和Linux 內核實時性優化方法,對搭建好的主站進行性能測試,其結果表明,使用優化后的Linux 內核,以本文方案搭建的EtherCAT 主站能順利運行,主站抖動量穩定在80us 左右,具有較高的實時性和穩定性,較好地解決了傳統EtherCAT 成本高昂、便攜性差的問題,為EtherCAT 主站在Linux 平臺搭建提供了一種切實可行的方案。

主站蜘蛛池模板: 最新加勒比隔壁人妻| 找国产毛片看| 国产区在线看| 91成人在线观看| 国产aⅴ无码专区亚洲av综合网| 四虎国产精品永久一区| 亚洲人成网站18禁动漫无码| 四虎成人精品在永久免费| 91精品啪在线观看国产91| 永久免费精品视频| 97在线碰| 亚洲va视频| 国产视频入口| 91福利在线看| 亚洲av色吊丝无码| 日本人妻丰满熟妇区| 国产亚洲精| 另类综合视频| 天天视频在线91频| 这里只有精品国产| 青青草一区二区免费精品| 91色在线观看| 国产黄网永久免费| 国产超薄肉色丝袜网站| 在线亚洲小视频| 国产麻豆精品手机在线观看| 国产99视频精品免费观看9e| 亚洲欧美日韩中文字幕在线| 国产自在线拍| 2018日日摸夜夜添狠狠躁| 秋霞午夜国产精品成人片| 538精品在线观看| 日韩在线观看网站| 制服丝袜一区| 亚洲综合二区| 免费国产在线精品一区| 高清久久精品亚洲日韩Av| 日韩国产高清无码| 激情综合五月网| 欧美日韩精品一区二区视频| 中文字幕无码中文字幕有码在线| 亚洲国产第一区二区香蕉| 国产精品不卡永久免费| 福利视频一区| 2048国产精品原创综合在线| 亚洲第一视频免费在线| 国产精品免费露脸视频| 午夜国产大片免费观看| 日本人又色又爽的视频| 国产成人三级| 欧美三級片黃色三級片黃色1| 亚洲无线视频| 亚洲另类国产欧美一区二区| 欧美日韩国产系列在线观看| 国产精品999在线| 成人国产一区二区三区| 亚洲成人播放| 欧美在线黄| 欧美精品高清| 99视频在线免费| 国产精品亚洲天堂| 97综合久久| 亚洲欧美另类久久久精品播放的| 国产白浆在线观看| 91国内外精品自在线播放| 亚洲视频色图| 一级片免费网站| 人人看人人鲁狠狠高清| 亚洲经典在线中文字幕| 中文字幕 欧美日韩| 亚洲浓毛av| 一区二区三区四区在线| 国产h视频免费观看| 2020精品极品国产色在线观看| 在线观看热码亚洲av每日更新| 久久精品国产亚洲麻豆| 亚洲自偷自拍另类小说| 亚洲人成色在线观看| 欧美成一级| 免费在线a视频| 四虎永久免费地址在线网站| 无码一区中文字幕|