freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

儲油罐實(shí)時監(jiān)測系統(tǒng)的設(shè)計與實(shí)現(xiàn)-文庫吧資料

2025-07-13 19:37本頁面
  

【正文】 是一個簡單的監(jiān)測界面,出于實(shí)驗(yàn)和整體界面布局美觀的考慮,暫時只設(shè)計了對四個儲油罐監(jiān)測的位置,若用于工業(yè)監(jiān)測時,在程序中很容易增加幾十個監(jiān)測位置。 connect(readTimer,SIGNAL(timeout()),this,SLOT(readMyCom()))。 readTimer = new QTimer(this)。 myComsetFlowControl(FLOW_OFF)。 myComsetParity(PAR_NONE)。 myComsetBaudRate(BAUD9600)。 對串口的設(shè)置代碼如下: myCom = new Posix_QextSerialPort(/dev/ttyS0,QextSerialBase::Polling)。 長治學(xué)院學(xué)士學(xué)位論文 19 圖 文件組織 其中 images 目錄內(nèi)是軟件內(nèi)的一些圖片, ;; ; 這四個文件是第三方為 Qt封裝的一個串口通訊的類, 。作為工業(yè)監(jiān)測的設(shè)備,穩(wěn)定性是相當(dāng)重要的,通常情況下 linux操作系統(tǒng)開機(jī)一年都不會出現(xiàn)任何問題,完全能滿足連續(xù)監(jiān)測的任務(wù)。因?yàn)?Qt是跨平臺程序開發(fā)軟件,所以將源代碼做極小量的修改,就可以在 Windows 平臺下運(yùn)行了。 PC 端軟件 軟件運(yùn)行平臺: Linux for x86 32 位 軟件開發(fā)平臺: Red Hat Enterprise Linux 5 Qt for linux 上位機(jī) PC 端軟件是在 linux 操作系統(tǒng)下編譯開發(fā)的,也是要運(yùn)行在 linux 32 位平臺上。但是用嵌入式設(shè)備制作一個專門 針對儲油罐 的 監(jiān)測系統(tǒng),功耗一般不會超過 10W,同樣能完成 PC 所能實(shí)現(xiàn)的 監(jiān)測 功能, 但 功耗比 PC 低的多。一般對幾十個儲油罐進(jìn)行監(jiān)測,系統(tǒng)的資源消耗不會很大,也可以說是輕而易舉一件事兒。 顯示的方法是動態(tài)掃描顯示,即每次只能在數(shù)碼管的某一位上顯示一 個數(shù)字,顯示完當(dāng)前數(shù)字之后立即顯示下一位數(shù)字,當(dāng)中間間隔小于 20m時,由于人體視覺有一定的滯留時間,所以無法察覺閃爍感,視覺效果與多位同時顯示一致。 其中 d 是段選參數(shù),作用是顯示什么數(shù)字; w 是位選信號,作用是在那一位上顯示。 /*給 P2 口賦位選值前,先將 p2 與( 1111 1000) 邏輯與,將 P2^0,P2^1,P2^2 清零,從而不影 響其他位原來的電平 */ P2 |= weitable[w]。 但這種賦值方式在這三個端口值不斷變化的情況下,較為繁瑣,所以利用 C 語言按位與,按位或,左右位移等方法較為簡便,例如: P2 amp。這樣雖然可以改變這三個端口的值,達(dá)到操作38 譯碼器的效果,但同時也改變了 P2 口其他五個端口的值,這就意味著對顯示模塊的操作可能會導(dǎo)致其他與 P2 口相連模塊的功能產(chǎn)生錯誤。位選的電平邏輯可參考 38 譯碼器的真值表,在此不再贅述。輸出端接數(shù)碼顯示管的段選信號。相對而言,顯示模塊在本系統(tǒng)中是一個比較簡單的模塊,硬件上由一個八位的八段數(shù)碼管、一個 38 譯碼器( 74H138)和一個鎖存器( 74H373)構(gòu)成 ,如圖 所示。 圖 串口調(diào)試工具 用串口調(diào)試工具查看串口數(shù)據(jù)時,這些數(shù)據(jù)是以十六進(jìn)制顯示的,而且是一連串的數(shù)據(jù),不知道它們代表的是什么意思。 長治學(xué)院學(xué)士學(xué)位論文 15 向上位機(jī)發(fā)送的數(shù)據(jù)是源源不斷的發(fā)送上去,每秒鐘能發(fā)好幾次,上位機(jī)再選擇性的 接收數(shù)據(jù)并做出相應(yīng)的處理。主要的操作步驟: 選擇好工作方式,設(shè)置好串口的相應(yīng)的寄存器,設(shè)置好定時器的寄存器,將要發(fā)送的數(shù)據(jù)放入串口緩存區(qū)。在一個大型的煉油廠,儲油罐與上位機(jī)的距離不可能在 20m之內(nèi), RS232 電平無法滿足長距離傳輸數(shù)據(jù)的功能。 PC 機(jī)一般接收的 RS232 電平,不識別 RS485 的電平信號,所以在接收端需要將 RS485 電平轉(zhuǎn)換為 RS232 電平。 串口數(shù) 據(jù)發(fā)送模塊 串口數(shù)據(jù)發(fā)送模塊的主要功能是將溫度,壓力等數(shù)據(jù)用串口發(fā)送給上位機(jī),實(shí)現(xiàn)對儲油罐的遠(yuǎn)端檢測功能。如過多芯片掛載使用此指令將會出現(xiàn)數(shù)據(jù)沖突,出現(xiàn)錯誤。 對于 DS18B20 寫 0 時序和寫 1 時序的要求不同,當(dāng)要寫 0 時序時,單總線要被拉低至少 60us,保證 DS18B20 能夠在 15us 到 45us 之間能夠正確地采樣 IO 總線上的 “0”電平,當(dāng)要寫 1 時序時,單總線被拉低之后,在 15us 之內(nèi)就得釋放單總線 。 DS18B20 在完成一個讀時序過程,至少需要 60us才能完成。 圖 DS18B20 的復(fù)位時序 長治學(xué)院學(xué)士學(xué)位論文 13 圖 DS18B20 的讀時序 DS18B20 的讀時序分為讀 0 時序和讀 1 時序兩個過程。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動讀時序完成數(shù)據(jù)接收。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序,如圖 所示。 DS18B20 是在一根 I/O 線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時序要求。 通常情況下我們采用的是 TO- 92 封裝的 DS18B20, 如 圖 。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線上可以掛很多這樣的數(shù)字溫度計,十分方便。在本系統(tǒng)中,這種策略體現(xiàn)在對 A/D 轉(zhuǎn)換芯片PCF8591 的操作上,詳細(xì)內(nèi)容在上文中介紹到了。這種方法的實(shí)現(xiàn)步驟在互聯(lián)網(wǎng)和相關(guān)書籍中有大量詳細(xì)的介紹,在此不做更詳細(xì)的說明,具體的實(shí)現(xiàn)方法也可以參考附錄的程序代碼部分。如果一段時間內(nèi)沒有收到從機(jī)的應(yīng)答信號,則自動認(rèn)為從機(jī)已正確接收到數(shù)據(jù),如圖 。 長治學(xué)院學(xué)士學(xué)位論文 11 如圖 起始信號與終止信號 在傳送數(shù)據(jù)時,要求 每一個字節(jié)必須保證是 8 位長度??墒怯?I2C 總線傳輸數(shù)據(jù)只需占用主控器件的兩個引腳 ,就能傳輸 8 個外圍器件的數(shù)據(jù) ,相當(dāng)節(jié)省硬件資源 .所以綜合利弊 ,本系統(tǒng)采用 I2C總線設(shè)備來傳輸壓力值數(shù)據(jù) . 它的工作原理如下: I2C 總線設(shè)備由一條數(shù)據(jù)總線 SDA 和一條時鐘總線 SCL與中控器件相連 , I2C 總線進(jìn)行數(shù)據(jù)傳送時,時鐘信號為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時鐘線上的信號為低電平期間,且高電平狀態(tài)維持一定的時間(一般為 5 微秒)以后,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變化(如圖 ) 。 (3) I2C 總線驅(qū)動部分 I2C 總線設(shè)備是飛利浦公司推出的串行總線設(shè)備,它與傳統(tǒng)的并行總線設(shè)備相比較,具有結(jié)構(gòu)簡單、可維護(hù)性好,易于實(shí)現(xiàn)擴(kuò)展、易于模塊化標(biāo)準(zhǔn)設(shè)計,可靠性高等優(yōu)點(diǎn)。 //AD0 模數(shù)轉(zhuǎn)換 0,將值賦給 p1 這個函數(shù)的作用是發(fā)送器件地址 0x90和控制字 0x00(A/D通道 0)讀取 A/D通道 0的值 ,具體的實(shí)現(xiàn)過程參照附錄中的源代碼部分。操作的 C 程序代碼: ISendByte(0x90,0x00)。 將這個過程結(jié)合到本系統(tǒng)中, PCF8591 的器件地址為 1001,引腳地址為 000,寫操作時方向位為 0,即 0x90,讀操作時方向位為 1,即 0x91。 D6 是 A/D D/A 選擇位, A/D 轉(zhuǎn)換時選擇 0, D/A 轉(zhuǎn)換是選擇 1 。 D4 D5 是模擬量輸入選擇: 00 四路單獨(dú)輸入, 01 三路差分輸入, 10 為單端與差分配合輸入, 11 為模擬輸出允許有效。當(dāng)這一位置位時, A/D 通道 0 轉(zhuǎn)換完成后,芯片自動會去轉(zhuǎn)換 A/D 通道 1 的值,依次循環(huán)類推??刂谱止?jié)存放于控制寄存器中的格式如圖 所示: 長治學(xué)院學(xué)士學(xué)位論文 9 圖 控制寄存器格式 其中: D0 D1 兩位是 A/D 通道編號: 00 通道 0, 01 通道 1, 10 通道 2, 11 通道 3;在本系統(tǒng)中利用 A/D 通道 0 和 A/D 通道 1。若收到的地址和自己的地址和自己的地址相匹配,就要做好接收數(shù)據(jù)的準(zhǔn)備了。 總線操作時,由器件地址、引腳地址、方向位組成的從地址為主控器發(fā)送的一個字節(jié)。所以在 I2C 系統(tǒng)中最多 可以接 23=8 個 A/D 器件。 PCF8591 采用典型的 I2C 總線接口尋址方法,即總線地址由器件地址、引腳地址和方向位共同組成。C 總線的最大速率決定。 PCF8591 的功能包括多路模擬輸入、內(nèi)置跟蹤保持、 8bit 模數(shù)轉(zhuǎn)換和 8bit 數(shù)模轉(zhuǎn)換。在 PCF8591 器件上輸入輸出的地址、控制和數(shù)據(jù)信號都是通過雙線雙向 I178。 PCF8591 的 3 個地址引腳A0, A1 和 A2 可用于硬件地址編程,允許在同個 I178。 PCF8591具有 4 個模擬輸入、 1 個模擬輸出和 1 個串行 I178。所以我在設(shè)計過程中選擇了同樣能實(shí)現(xiàn)兩路模擬量檢測,且對硬件資源開銷極小的 PCF8591。在下位機(jī)端需要建立另一套數(shù)學(xué)模型,將底端壓力乘某個常量,得到一個大概的液位高度值,顯示到下位機(jī)的數(shù)碼管上。 但是在下位機(jī)端,單片機(jī)計算乘除運(yùn)算比較吃力,而且精確度相當(dāng)差。再將當(dāng)前液位高度除以儲油罐滿載時的高度 hmax,就可以得到當(dāng)前儲油量與滿載時 的百分比。兩傳感器之間的距離 h0 我們設(shè)置 1000mm,這個值的大小可以根據(jù)兩個傳感器的實(shí)際距離,在程序中手動更改。在本系統(tǒng)中就采用的是 8 位的轉(zhuǎn)換器。 需要說的一點(diǎn) , P1 和 P2 是兩個模擬壓力量 , 經(jīng) 8 位的 A/D 轉(zhuǎn)化器轉(zhuǎn)換后得到的數(shù)字值。 無論是常壓儲油罐還是受壓儲油罐,底部是承壓最大的區(qū)域 ,監(jiān)測儲油罐的壓力值時,就應(yīng)該以底部作為監(jiān)測部位。 1 ρghP? (1) 20ρg(hh )P ? (2) 聯(lián)立 (1),(2)式 ,可以消除 ρ, h的計算公式 : 11 2 0 hPPPh? (3) 壓力不是基準(zhǔn)量,而是力和面積的導(dǎo)出量,故測量壓力的方法很多,在本系統(tǒng)中我們要 測量液體的壓力,所以選擇液體式壓力計。由液體壓力計算公式 P=ρgH 可知 ,液體在某一位置的壓力與深度 H 有關(guān) .液面最頂端的深度是 0,故液面最頂端的壓力值也是 0。 壓差法的 計算的思路是 : 壓差比 = 液面高度比 圖 儲油罐數(shù) 學(xué)模型 兩個傳感器之間的相對高度 h0是事先設(shè)定且固定的 ,也就是說底端的壓力值 P1減去上端的壓力值 P2,就是這段液位的壓差 。這樣適應(yīng)性就更廣闊。 成品油是一種混合物,各種規(guī)格的成品油密度不一致。 (1) 數(shù)學(xué)模型部分 利用壓差法計算儲油罐液面高度,可以消除密度對計算的影響。其中涉及到的內(nèi)容有 I2C 總線驅(qū)動, A/D 轉(zhuǎn)換,數(shù)學(xué)建模等內(nèi)容。 長治學(xué)院學(xué)士學(xué)位論文 6 3 系統(tǒng)設(shè)計之下位機(jī)部分 液面測量模塊 液面測量模塊功能是測量液位的高度 , 并計算出液位高度比。 長治學(xué)院學(xué)士學(xué)位論文 5 : Qt是 面向?qū)ο?語言,易于擴(kuò)展,允許組件編程,對日后軟件的維護(hù),功能的擴(kuò)充提供了極大的方便,而且是一款完全開源免費(fèi)的軟件。 Qt 提供了一種稱為 signals/slots 的安全類型來替代 callback,這使得各個元件之間的協(xié)同工作變得十分簡單 。編程語言是 C++,是面向?qū)ο蟮恼Z言,功能強(qiáng)大。 方案二: 使用 Qt設(shè)計計量管理系統(tǒng)。 Delphi 的優(yōu)點(diǎn)是:不能隱式定義、結(jié)構(gòu)嚴(yán)格、方便快捷、運(yùn)行速度快、使用方便、可讀性高等。特點(diǎn)是易讀性強(qiáng),可維護(hù)性高,開發(fā)簡單,代碼量低。特點(diǎn)是執(zhí) 行效率高。 2. 2 軟件方案 使用儲油罐計量監(jiān)測管理系統(tǒng),能夠?qū)崟r采集和處理儲油罐中所儲油品的各項(xiàng)數(shù)據(jù),通過軟件顯示并打印油品的儲量、溫度及相關(guān)的各項(xiàng)數(shù)據(jù) , 使管理人員了解各個油長治學(xué)院學(xué)士學(xué)位論文 4 罐 的 情況。再者系統(tǒng)調(diào)試比較困難,無形中延長了開發(fā)周期,而且系統(tǒng)的穩(wěn)定性不高。其硬件的組成是:單片機(jī), A/D轉(zhuǎn)換部分,液位顯示部分,將采集到 的 數(shù)據(jù)經(jīng)過單片機(jī)處理,顯示到數(shù)碼管上,管理人員可以定時查看各個儲油罐的信息。 整個系統(tǒng)的工作流程大致如下:壓力傳感器從儲油罐終端采集到數(shù)據(jù) , 經(jīng)單片機(jī)處理( A/D 轉(zhuǎn)換) 后 顯示到現(xiàn)場端的數(shù)碼管上,同時通過串口傳輸給上位機(jī),實(shí)現(xiàn)遠(yuǎn)端監(jiān)測,連入計算機(jī),計算機(jī)顯示并保存上傳的液位數(shù)據(jù),并可以通過管理軟件對數(shù)據(jù)來進(jìn)行后續(xù)處理。 長治學(xué)院學(xué)士學(xué)位論文 3 2 方案論證 硬件方案 硬件方案 1 硬件方案 1的 系統(tǒng)主要由現(xiàn)場儀表和儲油罐實(shí)時監(jiān)測與計量的管理主機(jī)或服務(wù)器等組。 儲油罐實(shí)時計量:依據(jù)壓力值,計算出液位的高度和剩余百分比。 儲油罐參數(shù)設(shè)定與修改:儲油罐的安全高度、液位的高低報警值等設(shè)定和修改。在軟件方面,要
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1