国产欧美日韩精品a在线观看-国产欧美日韩精品一区二区三区-国产欧美日韩精品综合-国产欧美中文字幕-一区二区三区精品国产-一区二区三区精品国产欧美

ACS880-07C
關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
CAIAC 2025
2024
工業(yè)智能邊緣計算2024年會
2023年工業(yè)安全大會
OICT公益講堂
當(dāng)前位置:首頁 >> 案例 >> 案例首頁

案例頻道

基于嵌入式操作系統(tǒng)uC/OS-II實(shí)現(xiàn)焊縫軌跡智能跟蹤系統(tǒng)
  • 企業(yè):控制網(wǎng)     領(lǐng)域:機(jī)器視覺     行業(yè):輸配電    
  • 點(diǎn)擊數(shù):1242     發(fā)布時間:2005-11-07 09:52:39
  • 分享到:
傳統(tǒng)嵌入式系統(tǒng)軟件設(shè)計中廣泛采用單任務(wù)順序機(jī)制,它常帶來的重要問題是系統(tǒng)安全性差,這將導(dǎo)致系統(tǒng)頻繁復(fù)位以致無法達(dá)到設(shè)計目標(biāo)。為此本系統(tǒng)在軟件設(shè)計中引入嵌入式操作系統(tǒng)uC/OS-II并設(shè)計監(jiān)視任務(wù)實(shí)時監(jiān)視系統(tǒng)運(yùn)行,使該問題得到了較好的解決。



  在傳統(tǒng)的嵌入式系統(tǒng)軟件設(shè)計中,多采用單任務(wù)順序機(jī)制。此機(jī)制的優(yōu)勢在于流程直觀,但它常帶來一個重要的問題--系統(tǒng)安全性差,即程序運(yùn)行中任一環(huán)節(jié)出錯都會導(dǎo)致系統(tǒng)混亂,只能依靠看門狗復(fù)位重新運(yùn)行。在焊縫跟蹤系統(tǒng)中,弧光干擾嚴(yán)重,若存在單任務(wù)順序機(jī)制,雖存在多種硬件高層干擾措施,系統(tǒng)有時仍需頻繁復(fù)位以致無法達(dá)到系統(tǒng)。為此在焊縫軌跡智能跟蹤系統(tǒng)中,作者將實(shí)時嵌放式操作系統(tǒng)uC/OS-II用于單片機(jī)80c196的軟件設(shè)計中,并設(shè)計監(jiān)視任務(wù),較好地解決了該問題。uC/OS-II是一種免費(fèi)的操作系統(tǒng)且源代碼公開,其可靠性已在許多應(yīng)用中得到了證明。

  1 系統(tǒng)概述

  系統(tǒng)設(shè)計目標(biāo)為:在TIG焊條件下,焊接速度為24cm/min時,焊頭與焊縫偏差小于1mm。
系統(tǒng)的設(shè)計思路為:采用電弧傳感器采集焊頭相對焊縫不同位置時的焊接電流信號,將此信號經(jīng)信號處理得焊頭相對于焊縫的偏差置,此偏差量經(jīng)控制運(yùn)算后得相應(yīng)的控制信號。將此控制信號輸出到電機(jī),從而改變焊頭與焊縫的偏差。

  系統(tǒng)的功能塊有信號采集、信號處理、控制運(yùn)算、輸出等。另外由于本系統(tǒng)的弧光干擾嚴(yán)重,為防止程序運(yùn)行中因一個環(huán)節(jié)出錯而導(dǎo)致系統(tǒng)混亂以致無法控制焊頭與焊縫的偏差,本系統(tǒng)設(shè)計了監(jiān)視模塊用來及時糾錯。

  系統(tǒng)結(jié)構(gòu)圖如圖1所示,由外而內(nèi)可分三層,分別為硬件電路層、任務(wù)層及操作系統(tǒng)層。

  2 硬件電路層設(shè)計

  本系統(tǒng)的硬件電路層包括一塊信號采集板和一塊驅(qū)動板。前者的用途在于從電弧傳感器獲取電流信號并將其轉(zhuǎn)換成電壓信號。此電流信號能有效表征焊頭與焊縫的位置關(guān)系,此電壓信號將被任務(wù)層的信號采集任務(wù)獲取。后者的用途在于制任務(wù)層中輸出任務(wù)產(chǎn)生的命令(此命令作用于單片機(jī)輸出口)傳輸?shù)诫姍C(jī),從而改變焊頭和焊縫的偏差。

  3 任務(wù)層設(shè)計

  3.1 系統(tǒng)任務(wù)層組成及其優(yōu)先權(quán)設(shè)置

  系統(tǒng)任務(wù)層并行存在的幾個任務(wù)依其優(yōu)先權(quán)從高到低依次為:監(jiān)視任務(wù)、輸出任務(wù)、控制運(yùn)算任務(wù)、信號處理任務(wù)、信號采集任務(wù)。優(yōu)先權(quán)的設(shè)置由各任務(wù)的執(zhí)行順序以及對系統(tǒng)安全性影響的大小決定。本系統(tǒng)采用靜態(tài)優(yōu)先權(quán),即運(yùn)行過程中任務(wù)優(yōu)先權(quán)不變。

  3.2 任務(wù)的狀態(tài)

  本系統(tǒng)中各任務(wù)的狀態(tài)有4種:等待態(tài)、就緒態(tài)、運(yùn)行態(tài)以及中斷態(tài)。狀態(tài)的轉(zhuǎn)換關(guān)系如圖2所示。

  當(dāng)一個任務(wù)點(diǎn)用CPU時該任務(wù)處于運(yùn)行態(tài),其優(yōu)先權(quán)必較所有就緒態(tài)任務(wù)優(yōu)先權(quán)高。若系統(tǒng)運(yùn)行導(dǎo)致就緒態(tài)某一任務(wù)的優(yōu)行權(quán)高于運(yùn)行態(tài)任務(wù)優(yōu)先僅,則調(diào)用調(diào)度函數(shù),運(yùn)行態(tài)任務(wù)將喪失對CPU的占用權(quán)而轉(zhuǎn)為就緒態(tài),優(yōu)先權(quán)最高的就緒態(tài)任務(wù)轉(zhuǎn)為運(yùn)行態(tài)。某一時刻只能有一個任務(wù)處于運(yùn)行態(tài)。任務(wù)在就緒態(tài)和運(yùn)行態(tài)間的轉(zhuǎn)化被稱為任務(wù)切換。

  當(dāng)運(yùn)行態(tài)的任務(wù)期待某一消息時(即別的任務(wù)和該任務(wù)的數(shù)據(jù)傳遞,本設(shè)計中任務(wù)間的數(shù)據(jù)傳遞被稱為消息),該任務(wù)將喪失對CPU的占用權(quán)而轉(zhuǎn)為等待態(tài),等待時間可由系統(tǒng)設(shè)定。若等待時間內(nèi)該任務(wù)收到消息,任務(wù)將轉(zhuǎn)為就緒態(tài),否則將被時間管理函數(shù)強(qiáng)行轉(zhuǎn)為就緒態(tài)。

  中斷發(fā)生時運(yùn)行態(tài)的任務(wù)將轉(zhuǎn)入中斷態(tài),喪失對CPU的占用權(quán)。因?yàn)閿嘀锌赡苡邢l(fā)送使等待態(tài)的任務(wù)轉(zhuǎn)入就緒態(tài),故中斷返回后將首先運(yùn)行調(diào)度函數(shù),決定任務(wù)狀態(tài)。

  3.3 任務(wù)的構(gòu)成

  系統(tǒng)中每個任務(wù)均有以下三部分組成:應(yīng)用程序、任務(wù)堆棧以及任務(wù)控制塊。其中只有應(yīng)用程序被燒入ROM,而任務(wù)本身則置于ROM,待系統(tǒng)運(yùn)行時再予于建立。

  任務(wù)堆棧以存儲CPU寄存器內(nèi)容。當(dāng)某任務(wù)由運(yùn)行態(tài)變?yōu)槠渌鼱顟B(tài)時,CPU寄存器內(nèi)容壓入相應(yīng)任務(wù)堆棧,反之則將相應(yīng)任務(wù)堆棧內(nèi)容置入CPU寄存器。

  作為系統(tǒng)中定義中一個數(shù)據(jù)結(jié)構(gòu),任務(wù)控制塊的內(nèi)容包括任務(wù)堆棧的地址、任務(wù)當(dāng)前狀態(tài)、任務(wù)優(yōu)先權(quán)等。操作系統(tǒng)通過查詢?nèi)蝿?wù)控制塊內(nèi)容實(shí)現(xiàn)對任務(wù)的管理。

  3.4監(jiān)視任務(wù)的設(shè)計

  因系統(tǒng)工作環(huán)境干擾強(qiáng)烈,雖已采取多種軟硬件抗干擾措施如光電隔離、軟件陷阱等,仍有可能因瞬間擾動使系統(tǒng)陷入混亂,導(dǎo)致 系統(tǒng)只能依靠看門狗復(fù)位重新運(yùn)行,以致無法實(shí)現(xiàn)設(shè)計目標(biāo)。為此本系統(tǒng)采用監(jiān)視任務(wù)監(jiān)督其它任務(wù)是否正常運(yùn)行,若未能正常運(yùn)行則采取相應(yīng)措施以盡量減少看門狗復(fù)位次數(shù)。

  監(jiān)視任務(wù)設(shè)計思路為:被監(jiān)視任務(wù)正常運(yùn)行時其執(zhí)行時間是可預(yù)估的,被監(jiān)視任務(wù)在其即將運(yùn)行完畢時向監(jiān)視任務(wù)發(fā)送消息說明自身運(yùn)行正常。被監(jiān)視任務(wù)運(yùn)行時,監(jiān)視任務(wù)處于等待態(tài),等待被監(jiān)視任務(wù)給它發(fā)送消息,等待時間被設(shè)定為預(yù)計的任務(wù)正常運(yùn)行所需的最大時間。若等待時間內(nèi)監(jiān)視任務(wù)收到消息,則認(rèn)為發(fā)送消息的任務(wù)運(yùn)行正常,依照各任務(wù)執(zhí)行順序的先后下一任務(wù)開始運(yùn)行,監(jiān)視任務(wù)等待下一任務(wù)發(fā)送的消息。若等待時間已過,監(jiān)視任務(wù)仍未收到消息,則系統(tǒng)的時間管理函數(shù)將強(qiáng)行把監(jiān)視任務(wù)為就緒態(tài)。因監(jiān)視任務(wù)的優(yōu)先權(quán)是最高的,它將搶占對CPU的控制權(quán)并采取相應(yīng)的糾錯方案。本系統(tǒng)中針對常見故障建立對策庫,并將之置于ROM,以便實(shí)現(xiàn)應(yīng)用中根據(jù)故障的具體情況采取相應(yīng)措施。

  現(xiàn)以信號采集任務(wù)中常出現(xiàn)的一個擾動為例加以介紹。信號采集任務(wù)進(jìn)行信號采集前者先查詢一個標(biāo)志位,該標(biāo)志位顯示焊接是否開始。若該標(biāo)志位置1表明焊接已經(jīng)開始,任務(wù)開始信號采集,否則任務(wù)一直查詢直至該標(biāo)志位置1。若該位在位置時由于瞬間振動導(dǎo)致未能置位成功以致信號采集任務(wù)不斷查詢該標(biāo)志位,將導(dǎo)致系統(tǒng)混亂。若未采用監(jiān)視任務(wù),則系統(tǒng)只能依靠看門狗復(fù)位。在本設(shè)計中由于操作系統(tǒng)的采用,使各任務(wù)的關(guān)系由傳統(tǒng)的順序機(jī)制變成并行機(jī)制。監(jiān)視任務(wù)在預(yù)定的等待時間仍未收到信號采集任務(wù)發(fā)送的消息,被時間管理函數(shù)置為就緒態(tài),且由于其優(yōu)先權(quán)較信號采集任務(wù)高,將獲得CPU的使用權(quán),使信號采集任務(wù)重新運(yùn)行以消除擾動的影響,即刷新看門狗寄存器的值,將信號采集任務(wù)置為就緒態(tài),并將信號采集任務(wù)的任務(wù)堆棧的斷點(diǎn)地址值改為采集任務(wù)起始地址后重新將自身置為等待態(tài)。

  4 操作系統(tǒng)層設(shè)計
  
  4.1 任務(wù)建立

  因任務(wù)并未常駐ROM,操作系統(tǒng)的首要功能為建立所有任務(wù),將其初始化并置剛建立的任務(wù)為就緒態(tài)。

  4.2 消息隊列

  4.2.1 消息隊列的結(jié)構(gòu)

  本設(shè)計中將任務(wù)間傳送的數(shù)據(jù)稱為消息。因系統(tǒng)中任務(wù)間有多個數(shù)據(jù)傳送,故采用消息隊列。消息隊列實(shí)質(zhì)是一個由指針組成的循環(huán)緩沖區(qū),如圖3所示。

  其中osqstart為指向消息隊列起始地址的指針,osqend為消息隊列結(jié)束單元的下一地址的指針,osqstart、osqend使消息隊列構(gòu)成一個循環(huán)的緩沖區(qū)。osqsize為消息隊列的總單元數(shù),該值的大小視任務(wù)的需要而定。osqentry為消息隊列中消息數(shù),其值隨數(shù)據(jù)存取而改變。

  osqin為指向消息隊列存入下一條消息的指針。osqout為指向消息隊列取出下一條消息的指針。系統(tǒng)初始化及osqin、osqout到達(dá)osqend時將被調(diào)整指向消息隊列起始地址。系統(tǒng)完成消息隊列創(chuàng)建后即開始對其進(jìn)行初始化,將osqentry置為0,osqin、osqout指向消息隊列起始地址。消息隊列的存取采取先進(jìn)先出的原則,osqin、osqout隨數(shù)據(jù)的存取相應(yīng)改變。
 
  4.2.2 系統(tǒng)中的消息隊列

  本系統(tǒng)中共有4個消息隊列,各消息隊列用途分別為:

  消息隊列1被信號采集任務(wù)用于發(fā)送消息給信號處理,監(jiān)視任務(wù);消息隊列2被信號處理任務(wù)用于發(fā)送消息給控制運(yùn)算,監(jiān)視任務(wù);消息隊列3被控制運(yùn)行任務(wù)用于發(fā)送消息給輸出任務(wù),監(jiān)視任務(wù);消息隊列4被輸出任務(wù)用于發(fā)送消息給監(jiān)視任務(wù)。

  本系統(tǒng)定義數(shù)據(jù)結(jié)構(gòu)--隊列控制塊業(yè)實(shí)現(xiàn)對多個消息隊列的管理,每個消息隊列對應(yīng)一個隊列控制塊。隊列控制埠的內(nèi)容包括指向消息隊列的指針以及該消息隊列對應(yīng)的等任務(wù)。消息存取采取優(yōu)先權(quán)原則,即消息隊列非空時,該消息隊列對應(yīng)的隊列中等待任務(wù)列表內(nèi)優(yōu)先權(quán)最高的任務(wù)先從消息隊列中取消息。因消息發(fā)送可能會導(dǎo)致任務(wù)狀態(tài)的變化,為維護(hù)消息的完整,消息發(fā)送中禁止任務(wù)切換。

  因本系統(tǒng)中對消息的存取采取先入先出以及優(yōu)先權(quán)的原則,故各任務(wù)發(fā)送消息至消息隊列的順序?yàn)椋合劝l(fā)送給監(jiān)視任務(wù)的消息,后發(fā)送給其它任務(wù)的消息。各任務(wù)從消息隊列讀取的順序?yàn)椋罕O(jiān)視任務(wù)先讀,其它任務(wù)后讀。

  4.3 系統(tǒng)調(diào)度

  為保證系統(tǒng)的實(shí)時性,系統(tǒng)采用搶占式內(nèi)核,即優(yōu)先權(quán)高的就緒態(tài)任務(wù)獲得CPU的占有權(quán),優(yōu)先權(quán)低的就緒態(tài)任務(wù)對CPU的控制權(quán)被搶占,從運(yùn)行態(tài)轉(zhuǎn)入就緒態(tài)。此過程由調(diào)度函數(shù)完成。調(diào)度函數(shù)找到就緒態(tài)擁有最高優(yōu)先權(quán)的任務(wù),并將其與運(yùn)行態(tài)任務(wù)的優(yōu)先權(quán)比較,若就緒態(tài)任務(wù)的優(yōu)先權(quán)較高則模擬一次中斷,將當(dāng)前CPU寄存器內(nèi)容壓入運(yùn)行態(tài)任務(wù)堆棧,將就緒態(tài)任務(wù)堆棧內(nèi)容置于CPU寄存器。

  本系統(tǒng)采用靜態(tài)優(yōu)先權(quán),若就緒態(tài)中任務(wù)的最高優(yōu)先權(quán)變化,則必有任務(wù)從等待態(tài)轉(zhuǎn)化成就緒態(tài)。而任務(wù)從等待態(tài)轉(zhuǎn)化成就緒態(tài)的前提為有消息產(chǎn)生,故調(diào)用調(diào)度函數(shù)時機(jī)為任務(wù)為消息發(fā)送完成以及中斷返回。

  4.4 時間管理函數(shù)

  時間管理函數(shù)功能為將等待時間已過的等待態(tài)任務(wù)置位為就緒態(tài),其實(shí)質(zhì)為時鐘中斷的中斷服務(wù)程序。系統(tǒng)運(yùn)行時將監(jiān)視任務(wù)等待時間置為定時器的延時時間,若被監(jiān)視任務(wù)正常運(yùn)行,則等待時間內(nèi)監(jiān)視任務(wù)將從消息隊列收到消息,恢復(fù)運(yùn)行態(tài),將則應(yīng)下一個任務(wù)的等待時間(即監(jiān)視任務(wù)收到下一任務(wù)給它發(fā)送的消息所需時間)置為定時器延時時間。若被監(jiān)視任務(wù)運(yùn)行異常,將產(chǎn)生時鐘中斷,強(qiáng)行將監(jiān)視任務(wù)置就緒態(tài),以便它采取相應(yīng)的糾錯措施。

  5 系統(tǒng)運(yùn)行過程分析

  系統(tǒng)運(yùn)行首要環(huán)節(jié)為初始化,包括兩部分:第一部分為建立任務(wù),為之分配優(yōu)先權(quán),將其置為就緒態(tài);第二部分為實(shí)現(xiàn)任務(wù)間的數(shù)據(jù)傳遞、建立消息隊列及對應(yīng)的隊列控制塊初始化消息隊列。

  系統(tǒng)初始傾聽各任務(wù)即可開始調(diào)度運(yùn)行。剛開始時各任務(wù)均處就緒態(tài),此時監(jiān)視任務(wù)優(yōu)先權(quán)最高,最先運(yùn)行,查詢消息隊列1即信號采集任務(wù)有無給它發(fā)送消息,因消息隊列1為空,監(jiān)視任務(wù)變?yōu)榈却龖B(tài)并確定等待時間。此時輸出任務(wù)在所有就緒態(tài)任務(wù)中優(yōu)先權(quán)最高,可以運(yùn)行,但也因消息隊列2空變?yōu)榈却龖B(tài),依此類推。雖信號采集任務(wù)優(yōu)先權(quán)最低,但其無需等待別的任務(wù)給它發(fā)送消息,故信號采集任務(wù)得到CPU控制權(quán)。若信號采集任務(wù)未能正常運(yùn)行則等待時間過后消息隊列仍這人。時間管理函數(shù)將強(qiáng)行置監(jiān)視任務(wù)為就緒態(tài),因監(jiān)視任務(wù)的優(yōu)先權(quán)高將獲得CPU控制權(quán)并根據(jù)故障情況從對策庫中找出相應(yīng)解決方案。若信號采集任務(wù)正常運(yùn)行則在等待時間內(nèi)發(fā)送消息至消息隊列1,信號處理任務(wù)及監(jiān)視任務(wù)轉(zhuǎn)為就緒態(tài)。因監(jiān)視任務(wù)優(yōu)先權(quán)較高,先從消息隊列1獲取消息以確認(rèn)信號采集任務(wù)運(yùn)行無誤。查詢消息隊列2即信號處理任務(wù)有無給它發(fā)送消息,因信號處理任務(wù)尚未運(yùn)行,消息隊列2為空,監(jiān)視任務(wù)退出運(yùn)行態(tài)轉(zhuǎn)入等待態(tài)并確定等待時間,信號處理任務(wù)獲得對CPU控制權(quán),讀消息并開始運(yùn)行。其余任務(wù)的運(yùn)行依此類似。當(dāng)所有任務(wù)均運(yùn)行一次后所有任務(wù)狀態(tài)為就緒態(tài),開始下一周期的運(yùn)行。

  經(jīng)系統(tǒng)實(shí)際運(yùn)行證明,因?qū)崟r嵌入式操作系統(tǒng)uC/OS-II以及監(jiān)視任務(wù)的采用,較好地提高了系統(tǒng)安全性能,有效地減少了復(fù)位次數(shù),達(dá)到了系統(tǒng)設(shè)計目標(biāo)。 

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 精品视频 九九九 | 中文久草 | 国产精品无打码在线播放9久 | 免费一级毛片视频 | 性感美女香蕉视频 | 日韩毛片免费视频一级特黄 | 理论视频在线观看 | 欧美日韩另类国产 | 国产一区二区免费不卡在线播放 | 亚洲一区中文字幕在线 | 91麻精品国产91久久久久 | 久久免费在线观看 | 国产精品一区二区手机在线观看 | 性盈盈影院67194 | 大片在线播放日本一级毛片 | 欧美高清日本三级人妇 | 欧美韩国日本在线 | 国产一进一出视频网站 | 久久爽久久爽久久免费观看 | 91原创视频在线观看 | 国产激情视频在线 | 亚洲精品字幕一区二区三区 | 欧美日韩一区二区三区视视频 | av国产精品 | 91久久国产综合精品女同我 | 97视频在线观看免费播放 | 日韩一区二区三区在线播放 | 免费a级毛片大学生免费观看 | 国产综合精品久久亚洲 | 中文字幕在亚洲第一在线 | 国产成人mv在线观看入口视频 | 手机看片神马午夜片 | 毛片一级做a爰片性色 | xoxoxoxo欧美性护士 | 国产精品视频免费播放 | 九九香蕉 | 亚洲小视频在线 | 亚洲haose在线观看 | 香港经典a毛片免费观看爽爽影院 | 亚洲国产成人麻豆精品 | 日韩欧美在线观看一区 |