楊 濤,徐 方,賈 凱
(1.中國(guó)科學(xué)院沈陽(yáng)自動(dòng)化研究所 機(jī)器人學(xué)國(guó)家重點(diǎn)實(shí)驗(yàn)室,沈陽(yáng) 110016;2.中國(guó)科學(xué)院大學(xué),北京 100049;3.沈陽(yáng)新松機(jī)器人自動(dòng)化股份有限公司,沈陽(yáng) 110168)
計(jì)算機(jī)技術(shù)、控制技術(shù)尤其是現(xiàn)場(chǎng)總線技術(shù)的發(fā)展促使網(wǎng)絡(luò)化運(yùn)動(dòng)控制系統(tǒng)逐漸取代集中式運(yùn)動(dòng)控制系統(tǒng)。Ethercat作為一種高速高效的實(shí)時(shí)以太網(wǎng)標(biāo)準(zhǔn)機(jī)器人、數(shù)控機(jī)床等分布式運(yùn)動(dòng)控制系統(tǒng)中得到了廣泛關(guān)注。Ethercat是主從式控制網(wǎng)絡(luò),主站負(fù)責(zé)網(wǎng)絡(luò)的管理,從站負(fù)責(zé)完成電機(jī)閉環(huán)控制等底層實(shí)時(shí)控制任務(wù)。從站各個(gè)任務(wù)都具有較強(qiáng)的實(shí)時(shí)性要求,并且從站本身也必須具有很強(qiáng)的穩(wěn)定性,所以有必要對(duì)從站需要完成的各種任務(wù)進(jìn)行合理的規(guī)劃來(lái)提高其實(shí)時(shí)性、保證系統(tǒng)的穩(wěn)定性。
傳統(tǒng)的基于前后臺(tái)模式的任務(wù)設(shè)計(jì),除中斷服務(wù)程序外,各個(gè)任務(wù)具有相同的優(yōu)先級(jí)循環(huán)執(zhí)行。這樣的程序不但實(shí)時(shí)性差而且一旦其中任何一個(gè)任務(wù)的錯(cuò)誤執(zhí)行都將影響整個(gè)系統(tǒng)的穩(wěn)定性。而嵌入式實(shí)時(shí)操作系統(tǒng)可以管理系統(tǒng)軟硬件資源并對(duì)對(duì)系統(tǒng)和用戶任務(wù)的實(shí)時(shí)調(diào)度,對(duì)提高通信系統(tǒng)等實(shí)時(shí)多任務(wù)系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性有較好作用。本文研究了一種基于通用實(shí)時(shí)操作系統(tǒng)的Ethercat從站實(shí)時(shí)多任務(wù)規(guī)劃策略,并據(jù)此指導(dǎo)從站的設(shè)計(jì)。
Ethercat是IEC推薦的10種國(guó)際通用實(shí)時(shí)以太網(wǎng)標(biāo)準(zhǔn)之一。Ethercat具有高速高效的實(shí)時(shí)控制網(wǎng)絡(luò),通訊速率達(dá)100Mb/s,每幀最多可容納1486字節(jié)。Ethercat網(wǎng)絡(luò)符合OSI/ISO七層網(wǎng)絡(luò)架構(gòu),其結(jié)構(gòu)如圖1所示。Ethercat物理層采用標(biāo)準(zhǔn)的以太網(wǎng)物理器件、數(shù)據(jù)鏈路層采用專用的芯片完成,數(shù)據(jù)鏈路層提供了郵箱數(shù)據(jù)交換和緩沖數(shù)據(jù)交換兩種數(shù)據(jù)交換方式分別適用于實(shí)時(shí)數(shù)據(jù)傳輸和非實(shí)時(shí)數(shù)據(jù)傳輸,為應(yīng)用層數(shù)據(jù)傳輸協(xié)議設(shè)計(jì)提供了有力保證,所以其應(yīng)用層支持CANpoen、SERCOS、Ethernet等多軸開(kāi)放的國(guó)際標(biāo)準(zhǔn)協(xié)議,為用戶應(yīng)用程序設(shè)計(jì)提供了很大的方便。本文設(shè)計(jì)的分布式控制系統(tǒng)應(yīng)用層采用標(biāo)準(zhǔn)的CANopen協(xié)議。
Ethercat應(yīng)用于分布式控制系統(tǒng)中主要負(fù)責(zé)實(shí)時(shí)數(shù)據(jù)通訊和非實(shí)時(shí)數(shù)據(jù)通訊。在基于Ethercat的控制系統(tǒng)中實(shí)時(shí)數(shù)據(jù)通訊采用的是周期性數(shù)據(jù)交換方式,數(shù)據(jù)以固定的周期在主控制器和從站控制器之間交換實(shí)時(shí)控制信息與設(shè)備信息的實(shí)時(shí)交換。非實(shí)時(shí)數(shù)據(jù)通訊應(yīng)用于系統(tǒng)的配置,一般只在系統(tǒng)啟動(dòng)階段進(jìn)行。下面詳細(xì)介紹Ethercat的實(shí)時(shí)數(shù)據(jù)和非實(shí)時(shí)數(shù)據(jù)通訊機(jī)制。
Ethercat實(shí)時(shí)數(shù)據(jù)幀到達(dá)從站之后,從站控制器ESC對(duì)比邏輯內(nèi)存管理單元FMMU的地址與數(shù)據(jù)幀的地址,如果一致,則將數(shù)據(jù)放入相應(yīng)的ESC內(nèi)存區(qū)域,此時(shí)內(nèi)存同步管理器SM2產(chǎn)生相應(yīng)的中斷通知應(yīng)用層控制器YLMCU產(chǎn)生實(shí)時(shí)數(shù)據(jù)處理事件等待處理,YLMCU查詢SM2對(duì)應(yīng)的同步管理器分配對(duì)象(索引為0X1C32)中包含的RPDO對(duì)象信息,接收相應(yīng)的數(shù)據(jù)到RPDO對(duì)象指示的PDO應(yīng)用對(duì)象中。
圖1 Ethercat實(shí)時(shí)數(shù)據(jù)傳輸原理
Ethercat數(shù)據(jù)幀到達(dá)從站后,從站對(duì)比自身的站點(diǎn)地址和數(shù)據(jù)幀中的站點(diǎn)地址,如果一致,從站控制器ESC則將數(shù)據(jù)幀中數(shù)據(jù)載入ESC內(nèi)部RAM區(qū)域,并產(chǎn)生相應(yīng)的標(biāo)志位等待應(yīng)用層控制器YLMCU處理。YLMCU查詢到相應(yīng)的中斷標(biāo)志后,將RAM區(qū)域中的數(shù)據(jù)通過(guò)PDI接口讀入到Y(jié)LMCU中,并依此按照郵箱協(xié)議、CANopen協(xié)議等逐層解析,最終實(shí)現(xiàn)非實(shí)時(shí)數(shù)據(jù)的處理。
圖2 Ethercat非實(shí)時(shí)數(shù)據(jù)傳輸原理
基于Ethercat的控制系統(tǒng)一般具有多個(gè)從站,各個(gè)從站分別在主站的控制下獨(dú)立運(yùn)行,這樣各個(gè)從站之間存在時(shí)間不同步的問(wèn)題,時(shí)間不同步最終將造成控制不同。特別對(duì)于多軸聯(lián)動(dòng)的運(yùn)動(dòng)控制系統(tǒng),各個(gè)軸之間必須保證一定的同步運(yùn)行精度,Ethercat提供了以下三種同步機(jī)制完成從站之間的時(shí)間和控制同步運(yùn)算。
1.4.1 自由運(yùn)行模式
從站的自由運(yùn)行模式是指各個(gè)從站采用自身定時(shí)器,定時(shí)從自身的網(wǎng)絡(luò)數(shù)據(jù)緩沖區(qū)獲取目標(biāo)位置指令并執(zhí)行。該方法特點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,但是各個(gè)驅(qū)動(dòng)器上電時(shí)間不一致將導(dǎo)致各個(gè)時(shí)鐘的起點(diǎn)不同,所以該方法將造成如圖3所示的粗大同步誤差。
圖3 自由運(yùn)行模式時(shí)間同步誤差分析
1.4.2 主站輸出同步模式
主站輸出同步是指各個(gè)從站的運(yùn)行周期不是由自身定時(shí)器決定的,而是在收到主站發(fā)送的實(shí)時(shí)通訊數(shù)據(jù)后產(chǎn)生中斷,依靠中斷信號(hào)完成一次通訊。這樣各個(gè)伺服軸進(jìn)行位置采樣的時(shí)間差是由數(shù)據(jù)在網(wǎng)絡(luò)上的傳輸延時(shí)引起的,而對(duì)于高速實(shí)時(shí)以太網(wǎng)Ethercat而言,該延時(shí)是微妙級(jí)別的,所以理論上該方法可以達(dá)到微妙級(jí)別的時(shí)間同步。
圖4 主站輸出同步模式時(shí)間誤差分析
網(wǎng)絡(luò)分布時(shí)鐘模式是指Ethercat網(wǎng)絡(luò)中從站使用自身定時(shí)器產(chǎn)生的脈沖信號(hào)作為時(shí)間基準(zhǔn),與網(wǎng)絡(luò)中的其余從站沒(méi)有關(guān)聯(lián)。分布時(shí)鐘機(jī)制將Ethercat網(wǎng)絡(luò)中第一個(gè)從站的時(shí)鐘作為網(wǎng)絡(luò)系統(tǒng)的參考時(shí)鐘。通過(guò)補(bǔ)償網(wǎng)絡(luò)傳輸延時(shí)、系統(tǒng)各個(gè)從站的初始化時(shí)間偏差、從站時(shí)鐘漂移等影響系統(tǒng)中各從站時(shí)鐘不一致的因素,使得 Ethercat網(wǎng)絡(luò)中主站和各個(gè)從站的時(shí)鐘同步于參考時(shí)鐘,該模式下各個(gè)從站時(shí)鐘可以達(dá)到納秒級(jí)別的同步。這樣網(wǎng)絡(luò)中的從站按照統(tǒng)一的時(shí)間進(jìn)行數(shù)據(jù)的采樣和控制,可以達(dá)到高精度的同步控制效果。
圖5 分布時(shí)鐘模式同步時(shí)間誤差分析
基于操作系統(tǒng)的程序是將大的應(yīng)用程序劃分為多個(gè)小任務(wù),操作系統(tǒng)負(fù)責(zé)調(diào)度各個(gè)任務(wù)保證系統(tǒng)穩(wěn)定運(yùn)行。實(shí)時(shí)操作系統(tǒng)除了具有普通操作系統(tǒng)軟硬件資源管理的功能外還特別強(qiáng)化了任務(wù)、中斷的實(shí)時(shí)處理能力,使之在規(guī)定的時(shí)間窗口內(nèi)得到運(yùn)行。實(shí)時(shí)操作系統(tǒng)中按照任務(wù)執(zhí)行的特點(diǎn)將操作系統(tǒng)任務(wù)分為設(shè)備依賴型任務(wù)、關(guān)鍵任務(wù)、緊迫任務(wù)和數(shù)據(jù)處理任務(wù)四種類型。
設(shè)備依賴型任務(wù)是嵌入式系統(tǒng)中最為常見(jiàn)的任務(wù)類型。它的特點(diǎn)是其運(yùn)行依賴于具體的外部設(shè)備,比如AD采樣和濾波任務(wù)在AD轉(zhuǎn)換器開(kāi)始運(yùn)行之后啟動(dòng),但必須在采樣量化之后再次運(yùn)行才能完成任務(wù),中間需要一定時(shí)間等待AD轉(zhuǎn)換結(jié)束。通常外設(shè)處理速度比CPU處理速度慢很多,所以該類任務(wù)需要等待。此時(shí)為了提高CPU的利用率操作系統(tǒng)將CPU占用權(quán)轉(zhuǎn)交給其它任務(wù)進(jìn),等待該類任務(wù)的外設(shè)準(zhǔn)備完畢后,再由操作系統(tǒng)采用一定的調(diào)度機(jī)制使之再次得到運(yùn)行。該類任務(wù)可以為普通任務(wù)對(duì)待,其的規(guī)劃運(yùn)行原理如圖6所示。
圖6 設(shè)備依賴型任務(wù)調(diào)度原理圖
關(guān)鍵型任務(wù)的特點(diǎn)是如果它得不到運(yùn)行會(huì)對(duì)系統(tǒng)造成毀滅性的沖擊,但該類任務(wù)允許一定時(shí)間的等待或者延時(shí)。該類任務(wù)作為周期性任務(wù)交由操作系統(tǒng)定時(shí)調(diào)度。該類任務(wù)應(yīng)盡量簡(jiǎn)單,通常任務(wù)僅負(fù)責(zé)發(fā)送信號(hào)量,具體的數(shù)據(jù)處理則交由等待信號(hào)量的普通任務(wù)執(zhí)行。
緊迫型任務(wù)的特點(diǎn)是必須在規(guī)定的時(shí)間內(nèi)得到運(yùn)行,否則沒(méi)有意義甚至導(dǎo)致整個(gè)系統(tǒng)的崩潰。緊迫任務(wù)一般通過(guò)硬件中斷觸發(fā),如果處理該任務(wù)所耗機(jī)時(shí)較少則該任務(wù)直接在中斷服務(wù)程序中完成,否則將該部分封裝為一個(gè)優(yōu)先級(jí)較高的任務(wù),由中斷服務(wù)函數(shù)通過(guò)信號(hào)量觸發(fā)。
數(shù)據(jù)處理任務(wù)的特點(diǎn)是消耗機(jī)時(shí)較長(zhǎng)但不緊迫。處理該類任務(wù)最好的辦法是采用時(shí)間片輪轉(zhuǎn)的方式,但是大部分實(shí)時(shí)操作系統(tǒng)不允許多個(gè)任務(wù)共享同一個(gè)優(yōu)先級(jí)不支持時(shí)間片輪轉(zhuǎn)算法,可以采取如圖7所示的模擬時(shí)間片算法進(jìn)行任務(wù)調(diào)度。該算法將復(fù)雜數(shù)據(jù)處理任務(wù)劃分為優(yōu)先級(jí)相近的多個(gè)簡(jiǎn)單數(shù)據(jù)處理任務(wù),這樣在操作系統(tǒng)將CPU使用權(quán)交給輸出處理任務(wù)時(shí),各個(gè)優(yōu)先級(jí)相近的數(shù)據(jù)處理任務(wù)按照先后順序交替運(yùn)行。從CPU運(yùn)行機(jī)時(shí)的角度看,各個(gè)復(fù)雜的數(shù)據(jù)任務(wù)按照時(shí)間片輪流占有CPU使用權(quán)。
圖7 模擬時(shí)間片輪轉(zhuǎn)算法示意圖
基于實(shí)時(shí)操作系統(tǒng)的程序,完成任務(wù)劃分后需要進(jìn)行任務(wù)的可調(diào)性分析,以確定每個(gè)任務(wù)是否可以被操作系統(tǒng)及時(shí)調(diào)度。目前對(duì)于實(shí)時(shí)操作系統(tǒng)的任務(wù)可調(diào)度性分析普遍采用的分析方法是速率單調(diào)分析(RMA),該方法基于以下假設(shè):
所有任務(wù)都是周期性運(yùn)行的;
任務(wù)獨(dú)立,互不交叉;
每個(gè)任務(wù)執(zhí)行的時(shí)間是固定的;
每個(gè)任務(wù)都可以在下個(gè)周期到來(lái)前完成規(guī)定的任務(wù);
RMA的測(cè)試公式為:
式中n為任務(wù)總個(gè)數(shù),Ci為任務(wù)i執(zhí)行一次的最長(zhǎng)時(shí)間。Ti為任務(wù)i的周期;U(n)為CPU利用系數(shù)的上限。任務(wù)總個(gè)數(shù)與最大可利用系數(shù)的關(guān)系如表1所示。
表1 任務(wù)總個(gè)數(shù)與最大可利用系數(shù)表
如果完成操作系統(tǒng)任務(wù)規(guī)劃之后計(jì)算出的RMA值小于上表所計(jì)算出的利用系數(shù)上限并留有一定的裕量,則操作系統(tǒng)可以正常調(diào)度各個(gè)任務(wù),實(shí)時(shí)性和穩(wěn)定性可得到保障,否則需要重新規(guī)劃。
Ethercat從站負(fù)責(zé)主要周期性數(shù)據(jù)鏈路/應(yīng)用層狀態(tài)機(jī)切換、輸入輸出、非周期性數(shù)據(jù)輸入輸出、用戶數(shù)據(jù)處理與設(shè)備控制等任務(wù)。
Ethercat狀態(tài)機(jī)和應(yīng)用層狀態(tài)機(jī)的控制著數(shù)據(jù)鏈路層和應(yīng)用層的功能,必須定時(shí)得到刷新。但是此類任務(wù)的執(zhí)行時(shí)間窗口一般比較寬,所以將該類任務(wù)作為關(guān)鍵任務(wù),通過(guò)操作系統(tǒng)提供的定時(shí)器軟中斷方式觸發(fā),中斷服務(wù)程序通過(guò)信號(hào)量機(jī)制啟動(dòng)相應(yīng)的狀態(tài)切換任務(wù),此類任務(wù)的優(yōu)先級(jí)設(shè)計(jì)比周期性處理任務(wù)優(yōu)先級(jí)低。
從站的非實(shí)時(shí)數(shù)據(jù)通訊主要用于完成系統(tǒng)配置工作,一般在系統(tǒng)正常運(yùn)行之前完成,不存在多任務(wù)搶占CPU的問(wèn)題。所以可以將非周期性數(shù)據(jù)傳輸任務(wù)劃分為低優(yōu)先級(jí)的普通任務(wù)。
Ethercat控制網(wǎng)絡(luò)通過(guò)實(shí)時(shí)數(shù)據(jù)通訊任務(wù)必須周期性運(yùn)行,不允許超時(shí)或者丟包,否則將對(duì)系統(tǒng)造成較大沖擊。該任務(wù)為緊迫任務(wù)。Ethercat標(biāo)準(zhǔn)為了滿足控制系統(tǒng)多個(gè)從站高精度同步運(yùn)行的需求,采用中斷方式響應(yīng)同步信號(hào)(時(shí)間同步信號(hào)、IO同步信號(hào)、分布時(shí)鐘同步信號(hào))。由于實(shí)時(shí)通訊任務(wù)需要做的運(yùn)算占用機(jī)器較多,不能在中斷服務(wù)程序中完成,所以在中斷服務(wù)程序中通過(guò)啟動(dòng)相應(yīng)的信號(hào)量分配機(jī)制。通過(guò)信號(hào)量分配任務(wù)分發(fā)相應(yīng)信號(hào)量啟動(dòng)數(shù)據(jù)處理任務(wù)。同時(shí)為了使數(shù)據(jù)處理任務(wù)及時(shí)運(yùn)行,將數(shù)據(jù)處理任務(wù)劃分為幾個(gè)比較小的任務(wù),并賦予比較高的優(yōu)先級(jí)。
圖8 實(shí)時(shí)數(shù)據(jù)通訊任務(wù)調(diào)度原理
Ethercat從站一般需要完成特定的控制功能。完成這些功能需要與進(jìn)行信號(hào)采樣和數(shù)據(jù)處理,所以該類任務(wù)屬于數(shù)據(jù)處理類任務(wù),可采用模擬時(shí)間片輪轉(zhuǎn)的方式進(jìn)行規(guī)劃,并且使各個(gè)任務(wù)的優(yōu)先級(jí)均低于狀態(tài)轉(zhuǎn)換任務(wù)。
機(jī)器人控制系統(tǒng)的IO控制系統(tǒng)負(fù)責(zé)機(jī)器人上下電控制、運(yùn)行狀態(tài)指示、安全保護(hù)、外設(shè)擴(kuò)展等功能,所以IO系統(tǒng)是機(jī)器人安全運(yùn)行的保證,必須能長(zhǎng)時(shí)間穩(wěn)定運(yùn)行,并具有足夠高的實(shí)時(shí)性能。基于Ethercat的機(jī)器人控制系統(tǒng)中的IO控制系統(tǒng)是Ethercat 從站之一IO從站。本文設(shè)計(jì)的IO從站應(yīng)用層支持標(biāo)準(zhǔn)CANopen DS401 IO行規(guī),支持多種格式輸入輸出的64路可配置IO信號(hào)。
Ethercat從站是特殊的網(wǎng)絡(luò)設(shè)備,采用網(wǎng)絡(luò)設(shè)備常用的分層方法完成物理層、數(shù)據(jù)鏈路層、應(yīng)用層和外部設(shè)備硬件設(shè)計(jì),從站整體結(jié)構(gòu)如圖9所示。
圖9 IO從站硬件結(jié)構(gòu)圖
Ethercat IO從站物理層采用普通網(wǎng)絡(luò)設(shè)備的物理層,使用工業(yè)加固型RJ45接口,普通網(wǎng)絡(luò)變壓器、不帶數(shù)據(jù)緩沖區(qū)的PHY設(shè)備(為了提高系統(tǒng)的實(shí)時(shí)性,不需要數(shù)據(jù)緩沖區(qū)),物理層PHY通過(guò)標(biāo)準(zhǔn)接口MII與數(shù)據(jù)鏈路層設(shè)備相連。
Ethercat數(shù)據(jù)鏈路層需要使用的專業(yè)的電路芯片,這里數(shù)據(jù)鏈路層采用是BECKHOFF公司生產(chǎn)的Ethercat從站控制器ESC ET1100,它通過(guò)I2C接口與外部EEROM連接,在EEROM中存儲(chǔ)ESC基本配置信息和啟動(dòng)信息。ESC還可以配置它與應(yīng)用層設(shè)備連接方式,這里選用通用的SPI串行接口與高層設(shè)備進(jìn)行數(shù)據(jù)交換。
Etheract應(yīng)用層設(shè)備不僅是應(yīng)用層協(xié)議實(shí)現(xiàn)的載體,也是用戶控制程序的載體。為了減小實(shí)時(shí)操作系統(tǒng)移植開(kāi)發(fā)的時(shí)間、提高操作系統(tǒng)的穩(wěn)定性,采用TI公司開(kāi)發(fā)的支持實(shí)時(shí)操作系統(tǒng)TI/BIOS的TMS320F2812 DSP芯片作為從站的應(yīng)用層硬件設(shè)備。DSP和從站控制器ESC之間采用SPI接口連接,IO從站的外部設(shè)備IO模塊對(duì)驅(qū)動(dòng)能力沒(méi)有過(guò)高要求,它僅作為信號(hào)模塊所用,所以IO設(shè)備可以直接采用DSP芯片的GPIO接口配合高速光耦完成。
IO從站軟件在DSP/BIOS操作系統(tǒng)上開(kāi)發(fā)。DSP/BIOS是TI公司特別為其TMS320C5000TM和TMS320C28xTM等DSP平臺(tái)設(shè)計(jì)開(kāi)發(fā)的尺寸可裁剪的實(shí)時(shí)多任務(wù)操作系統(tǒng)內(nèi)核。DSP/BIOS以模塊化方式提供給用戶對(duì)線程、中斷、定時(shí)器、內(nèi)存資源、所有外設(shè)資源的管理能力都可以根據(jù)需要剪裁。實(shí)際應(yīng)用中需要的定制算法作為一個(gè)線程插入DSP/BIOS的調(diào)度隊(duì)列,由DSP/BIOS進(jìn)行調(diào)度。
IO從站的任務(wù)是按照主站發(fā)送的命令正確的讀寫(xiě)IO信息,所以IO從站除了完成必須通訊任務(wù)之外還需要完成IO的定時(shí)刷新功能。按照前文所述的任務(wù)劃分原理對(duì)IO從站任務(wù)進(jìn)行劃分,結(jié)果如表2所示。
表2 IO從站任務(wù)規(guī)劃列表
根據(jù)上表所述的任務(wù)劃分方法,結(jié)合TI/BIOS操作系統(tǒng)任務(wù)調(diào)度的特點(diǎn),設(shè)計(jì)IO從站的軟件結(jié)構(gòu)如圖10所示。
圖10 Ethercta從站軟件結(jié)構(gòu)圖
利用TI/BIOS單次可執(zhí)行的任務(wù)main函數(shù)完成DSP時(shí)鐘、中斷、外設(shè)的初始化工作和Ethercat協(xié)議變量的初始化。利用周期性執(zhí)行PRD任務(wù)完成Ethercat狀態(tài)機(jī)刷新(周期為0.5ms,任務(wù)優(yōu)先級(jí)為6)、CANopen狀態(tài)機(jī)刷新(周期為1ms任務(wù)優(yōu)先級(jí)為5)、IO外設(shè)刷新(周期為2ms,任務(wù)優(yōu)先級(jí)為4)。將Ethercat實(shí)時(shí)數(shù)據(jù)通訊任務(wù)作為優(yōu)先級(jí)為2的普通任務(wù)并處于堵塞狀態(tài),等待Ethercat同步信號(hào),不同的同步模式下同步信號(hào)也不相同。將Ethercat的非實(shí)時(shí)數(shù)據(jù)通訊任務(wù)設(shè)計(jì)為優(yōu)先級(jí)為1的普通任務(wù),并處于阻塞狀態(tài)等待相應(yīng)信號(hào)量觸發(fā)。
通過(guò)TI/BISO計(jì)算和統(tǒng)計(jì)得知各個(gè)任務(wù)的RMA測(cè)試參數(shù)如表3所示。
表3 IO從站RMA參數(shù)測(cè)試實(shí)驗(yàn)數(shù)據(jù)表
7個(gè)任務(wù)總共占用28.1%的CPU機(jī)時(shí),遠(yuǎn)小于U(5)(74.3%),滿足RMA測(cè)試公式的要求,所以操作系統(tǒng)可以穩(wěn)定的調(diào)度這些任務(wù),證明本文提出的基于實(shí)時(shí)操作系統(tǒng)的Ethercat從站實(shí)時(shí)多任務(wù)規(guī)劃策略可以滿足從站設(shè)計(jì)需求,并且簡(jiǎn)化了從站設(shè)計(jì)的難度。
[1] 德國(guó)BECKHOFF公司.實(shí)時(shí)以太網(wǎng).IO層超高速以太網(wǎng).工業(yè)以太網(wǎng)與現(xiàn)場(chǎng)總線[Z].
[2] 陳積明,王智,孫優(yōu)賢.工業(yè)以太網(wǎng)的研究現(xiàn)狀及展望[J].化工自動(dòng)化及儀表,2001,28.
[3] 周航慈.基于嵌入式實(shí)時(shí)操作系統(tǒng)的程序設(shè)計(jì)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2000.
[4] 德國(guó)BECKHOFF公司.Ethercat specification part3 data link layer service definition.ETG[Z].
[5] 德國(guó)BECKHOFF公司.Ethercat specification part4 data link layer protocols .ETG[Z].
[6] 德國(guó)BECKHOFF公司.Ethercat specification part5 application layer service definition . ETG[Z].
[7] 德國(guó)BECKHOFF公司.EtherCAT Specification – Part 6 Application Layer protocol.ETG[Z].
[8] 馬軍賢,周侗,楊志家.Ethercat 從站的設(shè)計(jì)與實(shí)現(xiàn)[J].總線與網(wǎng)絡(luò).2011,8.