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

實(shí)時(shí)操作系統(tǒng)μC/OS-II在井場(chǎng)RTU中的應(yīng)用

2020-06-11 09:26:38王先鵬王開(kāi)明
電子技術(shù)與軟件工程 2020年1期
關(guān)鍵詞:抽油機(jī)系統(tǒng)

文/王先鵬 王開(kāi)明

(貴州航天凱山石油儀器有限公司 貴州省貴陽(yáng)市 550009)

井場(chǎng)RTU 是油氣井生產(chǎn)物聯(lián)網(wǎng)系統(tǒng)的控制核心,對(duì)整個(gè)數(shù)據(jù)采集系統(tǒng)進(jìn)行協(xié)調(diào)和管理,把各智能傳感器采集到的數(shù)據(jù)傳輸?shù)秸尽S,并根據(jù)站、廠的要求對(duì)各個(gè)智能傳感器以無(wú)線通訊方式發(fā)送控制命令,從而實(shí)現(xiàn)抽油機(jī)井?dāng)?shù)據(jù)采集和控制管理功能。

井場(chǎng)RTU 以ATMEL 公司8 位AVR 單片機(jī)ATmega128L 為核心設(shè)計(jì)的嵌入式系統(tǒng),移植有μC/OS-II 實(shí)時(shí)操作系統(tǒng),預(yù)留有豐富的接口,可通過(guò)通信接口擴(kuò)展連接其它測(cè)試設(shè)備,具備較強(qiáng)的可擴(kuò)展性。

1 井場(chǎng)RTU硬件設(shè)計(jì)

在油氣井生產(chǎn)物聯(lián)網(wǎng)系統(tǒng)中,遵循一套井場(chǎng)RTU 管理一個(gè)叢式井場(chǎng)(長(zhǎng)慶油田井場(chǎng)有抽油機(jī)井1 至10 幾口井?dāng)?shù)量不等)的設(shè)計(jì)原則:即每個(gè)井場(chǎng)安裝井場(chǎng)RTU 一套,單井各安裝示功圖傳感器、電機(jī)智能參數(shù)傳感器一套,還可以擴(kuò)展注水閥組單元、溫度和壓力采集傳感器等。

井場(chǎng)RTU 與各類(lèi)傳感器在系統(tǒng)設(shè)計(jì)上遵循“分散采集、集中控制”設(shè)計(jì)理念,示功圖傳感器、電機(jī)智能參數(shù)傳感器、無(wú)線壓力變送器和無(wú)線溫度變送器等智能數(shù)據(jù)采集監(jiān)控設(shè)備傳感節(jié)點(diǎn)為系統(tǒng)設(shè)計(jì)的“分散采集”部分,采集油水井各種物理參數(shù);井場(chǎng)RTU為系統(tǒng)設(shè)計(jì)的“集中控制”部分,集中管理各種分散采集部分的傳感器節(jié)點(diǎn)。

井場(chǎng)RTU 以8 位AVR 單片機(jī)為核心設(shè)計(jì)的最小嵌入式系統(tǒng),移植有μC/OS-II 實(shí)時(shí)操作系統(tǒng),預(yù)留了豐富的接口,具備較強(qiáng)的可擴(kuò)展性。

井場(chǎng)RTU 通過(guò)AD 轉(zhuǎn)換器完成模擬量的數(shù)據(jù)采集,通過(guò)IO 接口判斷開(kāi)關(guān)量的輸入輸出。井場(chǎng)RTU 與各類(lèi)傳感器之間通過(guò)無(wú)線通信模塊(或采集接口)實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)或一點(diǎn)對(duì)多點(diǎn)的無(wú)線方式通訊;與服務(wù)器通過(guò)RJ45 接口,實(shí)現(xiàn)數(shù)據(jù)的交互。在工作過(guò)程中,井場(chǎng)RTU 起到橋梁紐帶的作用,它實(shí)時(shí)將各類(lèi)傳感器采集到的數(shù)據(jù)傳輸?shù)秸究豍C 機(jī)或服務(wù)器端;井場(chǎng)RTU 與各類(lèi)傳感器通訊時(shí),RTU 相當(dāng)于RS485 總線的主站,各類(lèi)傳感器是RS485 總線的從站,RTU 與各類(lèi)傳感器之間采用主從通信方式,通訊協(xié)議采用Modbus RTU 傳輸協(xié)議。

在井場(chǎng)RTU 的嵌入式系統(tǒng)設(shè)計(jì)過(guò)程中硬件的驅(qū)動(dòng)程序使井場(chǎng)RTU 的硬件的發(fā)揮了最優(yōu)的狀態(tài),應(yīng)用程序通過(guò)調(diào)用驅(qū)動(dòng)程序完成與硬件相關(guān)的所有操作。驅(qū)動(dòng)程序的編制與所使用的CPU 類(lèi)型、外圍的硬件相關(guān),在這里不是本論文討論的重點(diǎn)。

2 井場(chǎng)RTU的嵌入式軟件設(shè)計(jì)

2.1 實(shí)現(xiàn)功能

2.1.1 功圖測(cè)試

定時(shí)測(cè)試井場(chǎng)中每口油井的示功圖。定時(shí)向示功圖傳感器發(fā)送功圖測(cè)試命令,然后與功圖傳感器通信,獲取測(cè)試后的實(shí)測(cè)功圖數(shù)據(jù)保存于RTU 中,同時(shí)將測(cè)試結(jié)果發(fā)給服務(wù)器。

2.1.2 電參數(shù)測(cè)試

定時(shí)測(cè)試井場(chǎng)中每口油井的電機(jī)運(yùn)行參數(shù)。定時(shí)向電機(jī)智能參數(shù)傳感器發(fā)送電參數(shù)測(cè)試命令,然后與電機(jī)智能參數(shù)傳感器通信,獲取測(cè)試后的實(shí)測(cè)電機(jī)運(yùn)行參數(shù)數(shù)據(jù)保存于RTU 中,同時(shí)將測(cè)試結(jié)果發(fā)給服務(wù)器。

2.1.3 注水井?dāng)?shù)測(cè)試定時(shí)測(cè)試井場(chǎng)中注水井的注水壓力、流量、配注等參數(shù),并將測(cè)試結(jié)果保存在RTU 中,并同時(shí)將結(jié)果上傳至服務(wù)器。

2.1.4 井場(chǎng)匯管壓力測(cè)試實(shí)時(shí)采集井場(chǎng)匯管壓力參數(shù),并將測(cè)試結(jié)果保存在RTU 中,并同時(shí)將結(jié)果上傳至服務(wù)器。

2.1.5 實(shí)時(shí)命令功能實(shí)時(shí)接收上位機(jī)發(fā)來(lái)的采集、控制等命令,進(jìn)行相應(yīng)的參數(shù)測(cè)試及設(shè)備控制等功能。

2.2 設(shè)計(jì)思路

以往的程序編制方式是采用前后臺(tái)面向過(guò)程的編程方式,采用μC/OS-Ⅱ嵌入式實(shí)時(shí)操作系統(tǒng)后,編程方式變成了基于事件驅(qū)動(dòng)的編程方式。怎樣將RTU 復(fù)雜的功能一一簡(jiǎn)化成簡(jiǎn)單的事件就是井場(chǎng)RTU 儀器軟件的設(shè)計(jì)思想。

何為事件驅(qū)動(dòng),顧名思義,當(dāng)一個(gè)事件發(fā)生了,任務(wù)再作相應(yīng)處理,處理結(jié)束后又開(kāi)始等待下一個(gè)事件的發(fā)生。如此周而復(fù)始的任務(wù)處理模型就是“事件驅(qū)動(dòng)的編程模型”。μC/OS-Ⅱ嵌入式應(yīng)用程序是由任務(wù)組成的,任務(wù)都必須符合事件驅(qū)動(dòng)的編程模型,即μC/OS-Ⅱ的應(yīng)用程序都必須是“事件驅(qū)動(dòng)的編程模型”。一個(gè)任務(wù)首先等待一個(gè)事件的發(fā)生,事件可以是系統(tǒng)中斷發(fā)出的,也可以是其它任務(wù)發(fā)出的,又可以是任務(wù)自身等待的時(shí)間片結(jié)束。事件驅(qū)動(dòng)模型也涵蓋了中斷驅(qū)動(dòng)模型,μC/OS-Ⅱ事件歸根結(jié)底來(lái)自三個(gè)方面:

(1)中斷服務(wù)函數(shù)發(fā)送的事件;

(2)系統(tǒng)延時(shí)時(shí)間到所引起的;

(3)其它任務(wù)發(fā)送的事件。

其中“中斷服務(wù)函數(shù)發(fā)送的事件”就是指每當(dāng)有硬件中斷發(fā)生,那么中斷服務(wù)程序就會(huì)以事件的形式告訴任務(wù),而等待該事件的最高優(yōu)先級(jí)任務(wù)就會(huì)馬上得以運(yùn)行;“系統(tǒng)延時(shí)時(shí)間到所引起的”事件其實(shí)也是硬件中斷導(dǎo)致的,那就是系統(tǒng)定時(shí)器中斷。而“其它任務(wù)發(fā)送的事件”則是由任務(wù)代碼自身決定的,這是完全的“軟事件”。不管“軟事件”還是“硬事件”,引起μC/OS-Ⅱ任務(wù)切換的原因就是“事件”,所以編寫(xiě)應(yīng)用程序的時(shí)候一定要體現(xiàn)出“事件驅(qū)動(dòng)的編程模型”。

2.3 任務(wù)概念

如果想了解多任務(wù)操作系統(tǒng),首先必須了解任務(wù)概念。所謂任務(wù),也稱作線程,是一個(gè)簡(jiǎn)單的、無(wú)限循環(huán)的程序,該程序可以認(rèn)為CPU 完全只屬該程序自己。實(shí)時(shí)應(yīng)用程序的設(shè)計(jì)過(guò)程,也就是如何把問(wèn)題分割成多個(gè)任務(wù)的過(guò)程,每個(gè)任務(wù)都是整個(gè)應(yīng)用程序的某一部分,每個(gè)任務(wù)被賦予一定的優(yōu)先級(jí),有它自己的一套CPU寄存器和自己的棧空間。

2.4 任務(wù)劃分

任務(wù)劃分存在這樣一對(duì)矛盾:如果任務(wù)太多,必然增加系統(tǒng)任務(wù)切換的開(kāi)銷(xiāo);如果任務(wù)太少,系統(tǒng)的并行度就降低了,實(shí)時(shí)性就比較差。在任務(wù)劃分時(shí)要遵循H.Gomma 原則:

(1)I/O 原則:不同的外設(shè)任務(wù)不同。CPU 的操作快于I/O 操作,如果將I/O 操作歸為一個(gè)任務(wù)順序執(zhí)行則會(huì)很浪費(fèi)時(shí)間。

(2)優(yōu)先級(jí)原則:對(duì)于突發(fā)事件的優(yōu)先級(jí)等價(jià)于事件的時(shí)間耗盡線,不同優(yōu)先級(jí)處理不同任務(wù)。

(3)大量運(yùn)算:歸為一個(gè)任務(wù)。

(4)功能耦合:歸為一個(gè)任務(wù),舉例:f(),g(f()),h(g(f()))。

(5)偶然耦合:歸為一個(gè)任務(wù),舉例:f1(),f2(),f3()。即事件之間并沒(méi)有必然的先后順序,但由于習(xí)慣一直是按這個(gè)順序做的。

2.5 軟件結(jié)構(gòu)

井場(chǎng)RTU 在油氣井生產(chǎn)物聯(lián)網(wǎng)系統(tǒng)中所實(shí)現(xiàn)的功能,將井場(chǎng)RTU 儀器軟件劃分成7 個(gè)任務(wù),分別詳述如下:

(1)命令解析任務(wù)(CMD_Explain_Task):負(fù)責(zé)解析串口0 發(fā)送來(lái)的數(shù)據(jù),將解析出的完整一幀命令放入命令緩沖隊(duì)列,并向命令執(zhí)行任務(wù)發(fā)送命令事件觸發(fā)信號(hào)量COMMAND_COM0_SEM,通知命令執(zhí)行任務(wù)有事件需要處理。

(2)命令執(zhí)行任務(wù)(CMD_Execute_Task):上位機(jī)(服務(wù)器端軟件)通過(guò)RJ45 網(wǎng)絡(luò)接口,發(fā)送給RTU 的所有控制命令(手動(dòng)功圖測(cè)試命令除外),都是通過(guò)此任務(wù)來(lái)完成的。此任務(wù)平時(shí)處于掛起態(tài)即等待命令事件觸發(fā)信號(hào)量COMMAND_COM0_SEM 事件發(fā)生,當(dāng)?shù)玫矫钍录|發(fā)信號(hào)量時(shí)命令執(zhí)行任務(wù)處于就緒態(tài)準(zhǔn)備開(kāi)始執(zhí)行。

(3)手動(dòng)功圖測(cè)試任務(wù)(Manual_GT_Test):功圖測(cè)試所需要的時(shí)間較長(zhǎng)而且與抽油機(jī)的運(yùn)行快慢有關(guān),沖次較快的抽油機(jī)井測(cè)試時(shí)間較短,沖次慢的所需時(shí)間較長(zhǎng)。如果將此功能放入命令執(zhí)行任務(wù)中來(lái)完成,會(huì)因此功能長(zhǎng)時(shí)間的占用CPU 的使用權(quán)而其它功能得不到實(shí)時(shí)的執(zhí)行而影響整個(gè)RTU 工作的實(shí)時(shí)性。將手動(dòng)功圖測(cè)試功能獨(dú)立劃分成任務(wù)后賦予較低的優(yōu)先級(jí),這樣優(yōu)先級(jí)較高的任務(wù)可以剝奪優(yōu)先級(jí)較低的任務(wù)對(duì)CPU 的使用權(quán),可以立即執(zhí)行,因此不會(huì)由于功圖測(cè)試時(shí)間較長(zhǎng)而影響整個(gè)系統(tǒng)的實(shí)時(shí)性。

(4)功圖巡檢任務(wù)(GT_Test_Task):即定時(shí)測(cè)試功圖任務(wù)。井場(chǎng)RTU 的時(shí)鐘節(jié)拍中斷(OSTickISR)每10ms 產(chǎn)生一次,時(shí)鐘節(jié)拍是特定的周期性中斷。這個(gè)中斷是μC/OS-Ⅱ系統(tǒng)心臟的脈動(dòng)。功圖巡檢任務(wù)利用時(shí)鐘節(jié)拍的10ms 時(shí)間基,根據(jù)EEPROM 定時(shí)測(cè)試時(shí)間常數(shù),每隔一定時(shí)間產(chǎn)生一次功圖測(cè)試事件即功圖測(cè)試信號(hào)量(GTTEST_SEM)。功圖巡檢任務(wù)由于得到功圖測(cè)試事件(功圖測(cè)試信號(hào)量GTTEST_SEM)發(fā)生進(jìn)入就緒態(tài)準(zhǔn)備開(kāi)始執(zhí)行。此任務(wù)不同于手動(dòng)功圖測(cè)試任務(wù)中進(jìn)行的功圖測(cè)試,它是針對(duì)一個(gè)井場(chǎng)所有抽油機(jī)井的功圖測(cè)試,而手動(dòng)功圖測(cè)試任務(wù)是針對(duì)某一口抽油機(jī)井的。

(5)電參巡檢任務(wù)(DC_Test_Task):和功圖巡檢任務(wù)一樣電參巡檢任務(wù)也是利用時(shí)鐘節(jié)拍中斷(OSTickISR)產(chǎn)生的10ms時(shí)間基,根據(jù)EEPROM 定時(shí)測(cè)試時(shí)間常數(shù),每隔一定時(shí)間產(chǎn)生一次電參測(cè)試事件即電參測(cè)試信號(hào)量(DCTEST_SEM)來(lái)完成一次井場(chǎng)中所有的抽油機(jī)井的電參數(shù)測(cè)試。

圖1:井場(chǎng)RTU 儀器軟件的工作框圖

(6)數(shù)據(jù)發(fā)送任務(wù)(SendDataToPC_Task):井場(chǎng)RTU 通過(guò)串口轉(zhuǎn)以太網(wǎng)向上位機(jī)發(fā)送數(shù)據(jù),如果有任務(wù)需要向上位機(jī)發(fā)送數(shù)據(jù),必須先向數(shù)據(jù)發(fā)送任務(wù)申請(qǐng)對(duì)串口0 的使用權(quán)。數(shù)據(jù)發(fā)送任務(wù)(SendDataToPC_Task)負(fù)責(zé)將系統(tǒng)中各任務(wù)打好的數(shù)據(jù)包發(fā)送給上位機(jī)。因串口0 為共享資源,且屬于外設(shè),與CPU 的處理速度相比串口0 的通訊速度較慢。

(7)主從通訊服務(wù)任務(wù)(OSTaskModbusServe):該任務(wù)負(fù)責(zé)處理主從通訊方面的主站與從站之間事務(wù)處理。主從通訊服務(wù)任務(wù)(OSTaskModbusServe)是RS485 通訊主站的核心組成部分,它負(fù)責(zé)Modbus RTU 協(xié)議中的ADU 報(bào)文幀的調(diào)度和Modbus 主從通訊方面的事務(wù)處理。該任務(wù)主要處理的事件:發(fā)送請(qǐng)求幀、等待應(yīng)答幀、處理應(yīng)答、處理差錯(cuò)和等待轉(zhuǎn)換延時(shí)。該任務(wù)通過(guò)API 函數(shù)ModbusPoll 為μC/OS-Ⅱ系統(tǒng)中各任務(wù)的Modubs 請(qǐng)求提供服務(wù)。

井場(chǎng)RTU 儀器軟件中的7 個(gè)任務(wù)分別由7 種不同的事件驅(qū)動(dòng)的,如圖1 所示。正是由于這些不同的事件組成了事件驅(qū)動(dòng)模型的編程方式。此種編程方式結(jié)構(gòu)清晰、層次分明,非常適合復(fù)雜的嵌入式系統(tǒng)開(kāi)發(fā)。

3 總結(jié)

8 位CPU 系統(tǒng)的井場(chǎng)RTU 引入了μC/OS-Ⅱ?qū)崟r(shí)嵌入式操作系統(tǒng)開(kāi)發(fā)嵌入式軟件,并在任務(wù)劃分上采用了事件驅(qū)動(dòng)的編程思想,它以多任務(wù)模塊化編程,設(shè)計(jì)出了滿足嵌入式實(shí)時(shí)操作系統(tǒng)性能要求的事件驅(qū)動(dòng)機(jī)制。通過(guò)對(duì)這種機(jī)制的分析,讓我們可以更深入地理解實(shí)時(shí)操作系統(tǒng)設(shè)計(jì)的獨(dú)到之處。在油氣井生產(chǎn)物聯(lián)網(wǎng)系統(tǒng)中,井場(chǎng)RTU 引入了實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ的設(shè)計(jì)理念使其嵌入式軟件可靠性、穩(wěn)定性和可擴(kuò)展性得到了很大的提升,并且在長(zhǎng)慶油田的數(shù)字化項(xiàng)目應(yīng)用中得到了較好的驗(yàn)證。

猜你喜歡
抽油機(jī)系統(tǒng)
抽油機(jī)井泵效影響因素的確定方法*
油田抽油機(jī)組節(jié)能技術(shù)分析研究
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
21油田叢式抽油機(jī)井群集中控制系統(tǒng)的設(shè)計(jì)
沁水盆地南部煤層氣井抽油機(jī)偏磨防治分析
主站蜘蛛池模板: 亚洲国产中文欧美在线人成大黄瓜 | 亚洲视频在线观看免费视频| 丁香婷婷在线视频| 亚洲一区二区在线无码| 在线免费a视频| 永久免费av网站可以直接看的| 五月激情综合网| 国产成人亚洲精品蜜芽影院| 亚洲男人天堂2020| 国产 在线视频无码| 欧美视频在线观看第一页| 8090成人午夜精品| 亚洲精品福利网站| 大学生久久香蕉国产线观看| 久久亚洲黄色视频| 视频二区亚洲精品| 成人综合在线观看| 福利在线免费视频| 国产熟睡乱子伦视频网站| 波多野结衣无码AV在线| 亚洲综合婷婷激情| 欧美一区二区啪啪| 熟女视频91| 欧美一区二区自偷自拍视频| 中文字幕欧美日韩| 一级一毛片a级毛片| 全部无卡免费的毛片在线看| 亚洲精品波多野结衣| 麻豆精选在线| 日韩精品毛片人妻AV不卡| 黄色a一级视频| 波多野结衣一二三| 最新国产高清在线| 91久久夜色精品国产网站| 天堂亚洲网| 国产精品色婷婷在线观看| 国产杨幂丝袜av在线播放| 日本伊人色综合网| 国产一区二区三区精品久久呦| 亚洲综合精品第一页| 999精品免费视频| 日韩欧美综合在线制服| 久99久热只有精品国产15| 久久频这里精品99香蕉久网址| 亚洲天堂2014| 中文字幕久久亚洲一区| 久久天天躁夜夜躁狠狠| aa级毛片毛片免费观看久| 91偷拍一区| 18禁不卡免费网站| 亚洲 欧美 偷自乱 图片| 欧美亚洲欧美| 狂欢视频在线观看不卡| 亚洲精品日产AⅤ| 国产AV毛片| 美女免费黄网站| 免费又黄又爽又猛大片午夜| 亚洲福利视频网址| 久久精品人人做人人爽电影蜜月 | 国产一区自拍视频| 都市激情亚洲综合久久| a毛片免费在线观看| 免费国产高清精品一区在线| www.91在线播放| 国产在线精品香蕉麻豆| 亚洲妓女综合网995久久| 国产网站一区二区三区| 久久综合一个色综合网| 强乱中文字幕在线播放不卡| 国产原创自拍不卡第一页| a在线亚洲男人的天堂试看| av无码久久精品| 成人伊人色一区二区三区| 99久久精品免费看国产免费软件 | 日韩中文精品亚洲第三区| 免费视频在线2021入口| 欧美成人免费一区在线播放| 亚洲综合激情另类专区| 国产91高跟丝袜| 亚洲婷婷丁香| 视频国产精品丝袜第一页| 国产哺乳奶水91在线播放|