基于cos-實(shí)時(shí)操作系統(tǒng)的軟plc運(yùn)行系統(tǒng)研究_第1頁
基于cos-實(shí)時(shí)操作系統(tǒng)的軟plc運(yùn)行系統(tǒng)研究_第2頁
基于cos-實(shí)時(shí)操作系統(tǒng)的軟plc運(yùn)行系統(tǒng)研究_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于cos-實(shí)時(shí)操作系統(tǒng)的軟plc運(yùn)行系統(tǒng)研究

根據(jù)ppp在軟件中的實(shí)用程序操作的不同版本,實(shí)現(xiàn)控制功能的系統(tǒng)可分為三種類型:基于ipc(工業(yè)控制計(jì)算機(jī))或epc(嵌入式計(jì)算機(jī))的控制方案、基于傳統(tǒng)朱元璋的控制方案和基于嵌入式控制器或智能控制器的控制方案。本文采用第三種方案。1plc的控制模塊與傳統(tǒng)PLC系統(tǒng)相類似,軟PLC系統(tǒng)由開發(fā)系統(tǒng)和運(yùn)行系統(tǒng)組成。系統(tǒng)體系結(jié)構(gòu)如圖1所示。開發(fā)系統(tǒng)運(yùn)行在PC機(jī)上,完成PLC程序的編輯、編譯和目標(biāo)代碼轉(zhuǎn)化等工作。運(yùn)行系統(tǒng)使用嵌入式處理器作為硬件平臺(tái),嵌入式操作系統(tǒng)作為軟件平臺(tái),如VxWorks、μCLinux、μC/OS-Ⅱ等,實(shí)現(xiàn)目標(biāo)代碼的解釋執(zhí)行和PLC的控制功能。軟PLC開發(fā)系統(tǒng)主要包括編輯器、編譯器、和通信接口等模塊。用戶在編輯器中完成PLC程序的編輯;在編譯器中進(jìn)行編譯,對(duì)用戶程序進(jìn)行詞法、語法分析和語義分析,并對(duì)錯(cuò)誤做相應(yīng)處理。如果沒錯(cuò)誤,則進(jìn)行譯碼,即將PLC程序轉(zhuǎn)化成目標(biāo)代碼。通信接口完成與運(yùn)行環(huán)境的連接,實(shí)現(xiàn)目標(biāo)代碼的下載和與運(yùn)行系統(tǒng)的通信。軟PLC運(yùn)行系統(tǒng)是軟PLC的核心,完成程序的解釋執(zhí)行和輸入輸出處理,包括通信接口、運(yùn)行虛擬機(jī)和I/O驅(qū)動(dòng)層等模塊。通信接口接收開發(fā)系統(tǒng)的目標(biāo)代碼,并與開發(fā)系統(tǒng)進(jìn)行通信。運(yùn)行虛擬機(jī)實(shí)現(xiàn)PLC用戶程序的循環(huán)掃描、PLC指令的解釋執(zhí)行和輸入輸出映像區(qū)的數(shù)據(jù)刷新處理。I/O驅(qū)動(dòng)層實(shí)現(xiàn)軟PLC與硬件I/O的分離,使軟PLC能獨(dú)立于I/O設(shè)備,通過驅(qū)動(dòng)程序?qū)崿F(xiàn)軟PLC和I/O設(shè)備層的連接。2基于plc梯形圖的編輯程序軟PLC的運(yùn)行原理主要是指PLC指令運(yùn)行系統(tǒng)的工作原理,主要是對(duì)PLC指令進(jìn)行解釋執(zhí)行。而最常用的編程語言即為梯形圖(LD),通過對(duì)PLC梯形圖的研究可知,用梯形圖編輯程序的過程實(shí)際上就是用梯形圖圖符來表示操作指令,用圖符的串并聯(lián)關(guān)系以及位置順序來表示操作指令之間邏輯關(guān)系的過程。通過翻譯大量的梯形圖后發(fā)現(xiàn),梯形圖中每個(gè)梯級(jí)的圖符的邏輯關(guān)系是一種層次結(jié)構(gòu),而這種層次結(jié)構(gòu)容易用數(shù)據(jù)結(jié)構(gòu)中的樹來表達(dá),把每個(gè)梯級(jí)用二叉樹這種結(jié)構(gòu)表達(dá)出來后,那么整個(gè)梯形圖就是多個(gè)二叉樹的集合。2.1大節(jié)點(diǎn)的排列順序構(gòu)造二叉樹的主要步驟:1)從左至右,從上至下掃描梯級(jí),若未發(fā)現(xiàn)節(jié)點(diǎn)后面有向下線就一直向右掃描,直到發(fā)現(xiàn)向下線時(shí)停止,記下向下線的位置和掃描過的節(jié)點(diǎn),若掃描過的節(jié)點(diǎn)有多個(gè),每掃描到兩個(gè)就新建一個(gè)“*”節(jié)點(diǎn),它是這兩個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn),表示兩節(jié)點(diǎn)串聯(lián),新建的這個(gè)“*”節(jié)點(diǎn)繼續(xù)參與構(gòu)造二叉樹,作為后序“*”節(jié)點(diǎn)(如果有的話)的子節(jié)點(diǎn)。比如有三個(gè)節(jié)點(diǎn),解決方法是,前兩個(gè)節(jié)點(diǎn)新建一個(gè)“*”節(jié)點(diǎn),再建一個(gè)“*”節(jié)點(diǎn),它是剛才“*”節(jié)點(diǎn)和第三個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)。2)從當(dāng)前行的下一行,向下線的位置開始向左掃描,看是否有節(jié)點(diǎn)存在,若有則新建一個(gè)“+”節(jié)點(diǎn),表示兩節(jié)點(diǎn)并聯(lián),繼續(xù)向左掃描,直到發(fā)現(xiàn)節(jié)點(diǎn)之后有向上線存在,則這一層掃描結(jié)束,掃描過的節(jié)點(diǎn)如果有兩個(gè)或是多于兩個(gè),仍然按照第1步的方法建立“*”節(jié)點(diǎn),“+”節(jié)點(diǎn)是上一行已構(gòu)造好的子樹的根節(jié)點(diǎn)和新建立起來的“*”節(jié)點(diǎn)的父節(jié)點(diǎn)。3)若當(dāng)前行的下一行還有向下線,以當(dāng)前行的下一行作為當(dāng)前行,遞歸進(jìn)行第2)步。4)節(jié)點(diǎn)排列的順序需要注意,“*”為根節(jié)點(diǎn)時(shí),最先掃描到的節(jié)點(diǎn)作為“*”節(jié)點(diǎn)的左子節(jié)點(diǎn),后掃描到的節(jié)點(diǎn)作為“*”節(jié)點(diǎn)的右子節(jié)點(diǎn);“+”為根節(jié)點(diǎn)時(shí),上面的支路作為左子樹,下面的支路作為右子樹。這樣就建立起梯形圖的二叉樹結(jié)構(gòu)。所有圖符節(jié)點(diǎn)都是所構(gòu)成的二叉樹的葉子節(jié)點(diǎn),而“*”節(jié)點(diǎn)或“+”點(diǎn)都是非葉節(jié)點(diǎn),“*”節(jié)點(diǎn)和“+”節(jié)點(diǎn)分別表示左右子樹的串聯(lián)和并聯(lián)關(guān)系。2.2行遍歷轉(zhuǎn)換為邏輯關(guān)系式經(jīng)過掃描和錯(cuò)誤檢查,建立類似圖3所示梯級(jí)的二叉樹結(jié)構(gòu)后,對(duì)二叉樹進(jìn)行遍歷即可轉(zhuǎn)化為邏輯關(guān)系式。根據(jù)先前構(gòu)造二叉樹時(shí)所建立起來的順序可知,樹的遍歷順序是后序遍歷,也就是先訪問左子節(jié)點(diǎn),然后訪問右子節(jié)點(diǎn),最后是根節(jié)點(diǎn)。對(duì)圖3的二叉樹結(jié)構(gòu)進(jìn)行后序遍歷所得到的邏輯關(guān)系式如下所示:2.3u3000鋼盤棧頂出棧進(jìn)行或運(yùn)算這種邏輯關(guān)系式,借助棧容易解算,解算方法如下:首先定義一個(gè)棧結(jié)構(gòu),然后從左至右掃描邏輯關(guān)系式(后序表示法)。每碰到一個(gè)運(yùn)算對(duì)象,就將其推進(jìn)棧,碰到運(yùn)算符,則判定是幾目運(yùn)算符,若是單目運(yùn)算符,則對(duì)棧頂元素執(zhí)行該運(yùn)算,并以運(yùn)算結(jié)果代替該元素進(jìn)棧,最后的結(jié)果留在棧頂:若是雙目運(yùn)算符,則對(duì)棧頂?shù)膬蓚€(gè)元素實(shí)施該運(yùn)算,并將運(yùn)算結(jié)果代替這兩個(gè)元素進(jìn)棧。最后留在棧頂?shù)木褪沁壿嬤\(yùn)算的結(jié)果。對(duì)以上邏輯關(guān)系式的解釋過程如下:3單個(gè)任務(wù)的工作原理及實(shí)現(xiàn)本軟PLC針對(duì)工業(yè)控制對(duì)實(shí)時(shí)性要求較高的要求,將PLC用戶程序分為兩級(jí),一級(jí)程序僅負(fù)責(zé)對(duì)實(shí)時(shí)性要求高的信號(hào)處理,包括急停、超程、返回參考點(diǎn)減等,對(duì)實(shí)時(shí)性要求不是很高的一般信號(hào)則由二級(jí)程序處理。兩級(jí)程序的任務(wù)管理和調(diào)度由μC/OS-Ⅱ?qū)崟r(shí)系統(tǒng)內(nèi)核完成。由于一級(jí)程序和二級(jí)程序兩者的執(zhí)行周期不一致,而執(zhí)行過程又要保證軟PLC輸入輸出映像區(qū)的數(shù)據(jù)不變,因此需要分別為一級(jí)和二級(jí)程序建立單獨(dú)的輸入輸出映像區(qū)。兩級(jí)任務(wù)通過消息郵箱的方式進(jìn)行數(shù)據(jù)通信。運(yùn)行系統(tǒng)的任務(wù)調(diào)度和工作原理圖如圖4所示。軟PLC的單個(gè)任務(wù)的工作原理與傳統(tǒng)PLC基本相同,即對(duì)目標(biāo)代碼進(jìn)行周期性的順序掃描執(zhí)行。其單個(gè)任務(wù)執(zhí)行周期包括3個(gè)階段:(1)輸入采集:讀取外部I/O口的輸入端信號(hào),并寫入輸入映像區(qū)。保持輸入映像區(qū)的數(shù)據(jù)不變,直到下一周期的輸入采集。(2)執(zhí)行目標(biāo)代碼:根據(jù)輸入映像區(qū)信號(hào),順序解釋執(zhí)行目標(biāo)代碼,并將運(yùn)算結(jié)果寫入輸出映像區(qū)。(3)信號(hào)輸出:目標(biāo)代碼執(zhí)行結(jié)束后,將輸出映像區(qū)的數(shù)據(jù)輸出到I/O口輸出端。μC/OS-Ⅱ可以管理多達(dá)64個(gè)任務(wù),系統(tǒng)保留了優(yōu)先級(jí)為0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRIO-2、OS_LOWEST_PRIO-1以及OS_LOWEST_PRIO-0這8個(gè)任務(wù)(4個(gè)最高優(yōu)先級(jí)和4個(gè)最低優(yōu)先級(jí))并使用了其中的2個(gè)任務(wù)。因此用戶可以有多達(dá)56個(gè)應(yīng)用任務(wù)。必須給每個(gè)任務(wù)賦以不同的優(yōu)先級(jí)(μC/OS-Ⅱ不支持相同優(yōu)先級(jí)任務(wù)的調(diào)度),優(yōu)先級(jí)號(hào)越低,任務(wù)的優(yōu)先級(jí)越高。因此一級(jí)任務(wù)的優(yōu)先級(jí)號(hào)應(yīng)設(shè)定低于二級(jí)任務(wù)。μC/OS-Ⅱ中的任務(wù)調(diào)度由系統(tǒng)內(nèi)核來實(shí)現(xiàn)。它總是運(yùn)行進(jìn)入就緒態(tài)優(yōu)先級(jí)最高的任務(wù),μC/OS-Ⅱ任務(wù)調(diào)度所花的時(shí)間是常數(shù),與應(yīng)用程序中的任務(wù)數(shù)和負(fù)載無關(guān)。這也是其保證實(shí)時(shí)性的一個(gè)重要原因。本嵌入式軟PLC運(yùn)行系統(tǒng)的硬件實(shí)驗(yàn)平臺(tái)是優(yōu)龍科技YL-LPC2478開發(fā)板,外部有4個(gè)獨(dú)立按鍵和8個(gè)獨(dú)立的LED。將上位機(jī)編輯好的控制LED的梯形圖通過串口下載到軟PLC運(yùn)行系統(tǒng),運(yùn)行系統(tǒng)解釋執(zhí)行PLC指令,然后軟PLC的輸出端輸出相應(yīng)的結(jié)果。YL-LPC2478的按鍵輸入端K1~K4和LED輸出端口D2~D9映射到開發(fā)系統(tǒng)中定義的I0.0~I0.3變量和Q0.0~Q0.7變量,實(shí)現(xiàn)對(duì)I/O狀態(tài)點(diǎn)的讀取和輸出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論