《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 基于PLC的實時測量技術(shù)在遠(yuǎn)程污水監(jiān)控系統(tǒng)中的應(yīng)用
基于PLC的實時測量技術(shù)在遠(yuǎn)程污水監(jiān)控系統(tǒng)中的應(yīng)用
陳 果, 陳忠仁, 梅 妮
(中山職業(yè)技術(shù)學(xué)院 電子信息工程系,廣東 中山 528040)
摘要: 提出了一種以西門子S7-200 PLC為核心的分布式遠(yuǎn)程污水監(jiān)控系統(tǒng),重點敘述了該方案的PLC硬件和軟件實現(xiàn)。
Abstract:
Key words :

 摘  要: 提出了一種以西門子S7-200 PLC為核心的分布式遠(yuǎn)程污水監(jiān)控系統(tǒng),重點敘述了該方案的PLC硬件和軟件實現(xiàn)。
 關(guān)鍵詞: 分布式系統(tǒng); 遠(yuǎn)程監(jiān)控西門子PLC; 智能儀表子系統(tǒng)

    隨著計算機控制技術(shù)的不斷發(fā)展,可編程控制器PLC(Programmable Logic Controller)的功能越來越強大,不僅具有各種各樣的控制功能,還具有與其他計算機通信聯(lián)網(wǎng)的功能。與之相應(yīng),PLC的應(yīng)用也日益普及,不僅被廣泛應(yīng)用于傳統(tǒng)的邏輯控制[1]、PID控制[2]和變頻調(diào)速[3]等領(lǐng)域,還逐漸被用于數(shù)據(jù)采集、環(huán)境監(jiān)控等領(lǐng)域。
 本文介紹的分布式遠(yuǎn)程污水監(jiān)控系統(tǒng)采用分布式的構(gòu)建方案,利用基于西門子PLC的實時測量技術(shù)對各污水排放點的排污流量、管道壓力等參數(shù)進行采集、監(jiān)測,以達(dá)到分散連接、集中監(jiān)控的目的。西門子PLC的I/O接口多,兼具模擬量、數(shù)字量和串行通信這幾類接口,擴展模塊豐富;能工作于惡劣環(huán)境,故障率低、壽命長,非常適合在工業(yè)環(huán)境下使用。所以系統(tǒng)以西門子S7-200 PLC、傳感器和智能檢測儀表作為下層基本測量單元,將各個污水監(jiān)控點的測量數(shù)據(jù)經(jīng)過PLC初步處理后,按照自由口通信方式打包傳送給基于ARM9的嵌入式數(shù)據(jù)采集模塊進行匯總和存儲,然后再通過以太網(wǎng)送給本地機上層應(yīng)用軟件進行顯示。整個下層測量單元相當(dāng)于一個結(jié)構(gòu)靈活可變、功能多樣的智能儀表子系統(tǒng),PLC相當(dāng)于這個子系統(tǒng)的通信接口。可以根據(jù)不同的測量需要對下層測量單元的硬件結(jié)構(gòu)和測量功能進行適當(dāng)改變,使整個系統(tǒng)具有很大的靈活性,稍作修改即可用于其他監(jiān)控系統(tǒng)。
1 分布式系統(tǒng)結(jié)構(gòu)
    系統(tǒng)的分布式結(jié)構(gòu)示意圖如圖1所示。當(dāng)系統(tǒng)啟動或復(fù)位后,各排污點的下層測量單元開始定時采樣、上傳數(shù)據(jù);嵌入式模塊接收到PLC傳來數(shù)據(jù)后,存入自身的數(shù)據(jù)庫中并判斷是否要觸發(fā)報警設(shè)備,同時將數(shù)據(jù)定時傳給上位機。這些實時監(jiān)控數(shù)據(jù)最后均匯總到網(wǎng)絡(luò)服務(wù)器上,從而使整個系統(tǒng)構(gòu)成了分布式的監(jiān)控結(jié)構(gòu)體系,主管部門只要通過應(yīng)用軟件的人機交互界面就可在各自辦公位置對排污點的各項指標(biāo)數(shù)據(jù)有一個準(zhǔn)確的了解,進而達(dá)到對分布區(qū)域廣泛的各個排污點運行情況進行集中監(jiān)控的目的。


    嵌入式數(shù)據(jù)采集模塊上的每個串口可連接多達(dá)253個不同速率和協(xié)議的設(shè)備,因此為了降低成本,將距離較近的排污點測量單元通過一個串口集中管理器后接在同一個嵌入式數(shù)據(jù)采集模塊上。在PLC程序中設(shè)置好與上位機通信時所需的PLC站號后,嵌入式數(shù)據(jù)采集模塊就可通過輪巡的檢測方式接收各測量單元傳來的數(shù)據(jù)。但是實際中同一嵌入式數(shù)據(jù)采集模塊上所接的下層測量單元不應(yīng)過多,因為這會造成輪巡一次的時間過長,影響報警的實時性。
2 PLC下層測量單元硬件設(shè)計
    根據(jù)實際情況只需對各排污點的管道壓力、污水瞬時流量、污水總流量、紅外線人體探頭的開關(guān)狀態(tài)和供電的開關(guān)狀態(tài)進行監(jiān)測。其中管道壓力由水壓傳感器測量,其測量數(shù)據(jù)為4~20 mA的模擬量;紅外線人體探頭的開關(guān)狀態(tài)和供電的開關(guān)狀態(tài)由PLC測量,其測量數(shù)據(jù)為數(shù)字量;污水瞬時流量和總流量由基于HART協(xié)議的智能電磁流量計測量,其測量數(shù)據(jù)通過串行通信傳送給PLC。由于PLC還要將處理后的數(shù)據(jù)傳送給嵌入式數(shù)據(jù)采集模塊,這需要占用一個串行通信口,所以系統(tǒng)選用帶有2個RS-485串行通信口的西門子S7-200 224XP型PLC。根據(jù)西門子224XP PLC的硬件資源,基于PLC的下層基本測量單元硬件連接圖如圖2所示。


    如圖2所示,紅外線人體探頭和供電開關(guān)分別接到PLC的數(shù)字量輸入口I0.0和I0.1上;水壓傳感器接在PLC上的模擬量輸入口0(AIW0)上;PLC的通信口0通過屏蔽雙絞線與嵌入式數(shù)據(jù)采集模塊的RS-485接口相連;電磁流量計需要經(jīng)過基于HART協(xié)議的調(diào)制解調(diào)器后才能接到PLC的串口上。系統(tǒng)中采用的調(diào)制解調(diào)器一端帶有4~20 mA的模擬傳輸線路(如電話線)接口,一端帶有RS-232接口,因此還需在調(diào)制解調(diào)器串口端再接一個RS-232轉(zhuǎn)RS-485模塊后才能接到PLC的通信口1上。HART協(xié)議是半雙工協(xié)議,同一時間內(nèi)調(diào)制解調(diào)器只能處于調(diào)制或解調(diào)的工作狀態(tài),所以需要通過PLC產(chǎn)生高低電平來進行控制,故將PLC的Q0.1口接到調(diào)制解調(diào)器的工作狀態(tài)控制端上。當(dāng)PLC輸出高電平時,處于調(diào)制工作狀態(tài);當(dāng)輸出低電平時,處于解調(diào)工作狀態(tài)。
3 PLC下層測量單元軟件設(shè)計
 根據(jù)PLC在系統(tǒng)中的作用,PLC程序應(yīng)具有定時采集數(shù)據(jù)并通過自由口通信方式發(fā)送到上位機、自動報警、自動向上位機發(fā)送保持連接信號等功能。另外還要能響應(yīng)上位機的數(shù)據(jù)補調(diào)命令,返回相應(yīng)數(shù)值;響應(yīng)上位機的參數(shù)修改命令,修正PLC的系統(tǒng)時間等。
 整個PLC程序采用模塊化設(shè)計,將完成某一功能的代碼段編寫為子程序,設(shè)置入口參數(shù)和出口參數(shù),當(dāng)需要完成這項功能時,只需設(shè)置合適的參數(shù)并在程序中直接調(diào)用即可。這樣可縮短程序的長度,便于程序的修改和移植。整個PLC程序是由主程序、子程序和中斷程序3部分組成,每個功能模塊程序包含若干子程序和中斷程序,下面分別介紹。
3.1 PLC主程序
 主程序主要是對自由口通信參數(shù)進行設(shè)置以及對程序中用到的各計數(shù)器和標(biāo)志位寄存器進行復(fù)位,以免PLC斷電重啟之后產(chǎn)生未知錯誤。電磁流量計采用HART協(xié)議長幀結(jié)構(gòu)命令,因此要先發(fā)送0#命令獲得生產(chǎn)廠家的代碼、設(shè)備型號碼和設(shè)備識別碼等總共38 bit的信息[4],用于填寫其他長幀命令的地址。PLC每次重啟后,在主程序中調(diào)用一次0#命令子程序,并將流量計返回的地址存儲在固定的寄存器中。另外,PLC采集的壓力模擬量是一個緩慢變化的過程量,為了避免測量誤差,還需對壓力采集量進行濾波;本文采用了平均值濾波法,每隔0.1 s觸發(fā)平均值濾波中斷程序?qū)毫y量數(shù)據(jù)進行處理。主程序流程圖如圖3所示。


3.2 PLC數(shù)據(jù)采樣和報警部分程序
 該部分程序由3個子程序組成:CheckRealTimeData子程序、Ana_Alarm子程序和Dig_Alarm子程序。其中CheckRealTimeData子程序負(fù)責(zé)定時對數(shù)據(jù)進行采樣、存儲;Ana_Alarm和Dig_Alarm子程序在CheckRealTimeData子程序中調(diào)用,負(fù)責(zé)判斷采集到的數(shù)據(jù)是否超過報警閾值。如果連續(xù)超過閾值的時間大于設(shè)定值,則置位報警標(biāo)志位,使PLC自發(fā)地向嵌入式數(shù)據(jù)采集模塊發(fā)送報警信息,觸發(fā)報警設(shè)備;如果采樣值恢復(fù)正常則將報警計時器清零,重新計時。Ana_Alarm子程序設(shè)定Adata、Uplevel和Lowlevel 3個入口參數(shù),分別表示所測模擬量數(shù)據(jù)、數(shù)據(jù)上限和數(shù)據(jù)下限;Dig_Alarm子程序設(shè)定Ddata、Status 2個入口參數(shù),分別表示所測數(shù)字量數(shù)據(jù)和報警狀態(tài)值。調(diào)用子程序時設(shè)置好正確的參數(shù)就可完成PLC的報警功能,模擬量報警子程序和數(shù)字量報警子程序的流程圖如圖4所示。

3.3 PLC數(shù)據(jù)存儲部分程序
    PLC程序要有一定的數(shù)據(jù)存儲功能,防止因通信錯誤而出現(xiàn)數(shù)據(jù)丟失的情況。因為224XP PLC的數(shù)據(jù)存儲區(qū)僅為10 240 B,所以僅使PLC在每小時內(nèi)的15 min、30 min、45 min和60 min時各保存一次數(shù)據(jù),連續(xù)保存最近3天的數(shù)據(jù)。另外在電源掉電或內(nèi)存丟失后,PLC的系統(tǒng)時間會被初始化,這會使數(shù)據(jù)保存時間與實際時間不符,因此在建立了嵌入式通信采集模塊和PLC的通信聯(lián)系后,需發(fā)送命令對PLC的系統(tǒng)時間進行設(shè)置。
3.4 PLC通信部分程序
 通信部分程序是整個PLC程序的核心。它包含4個中斷程序(串行通信口0發(fā)送、接收完成中斷和串行通信口1發(fā)送、接收完成中斷)及6個子程序:(1)Precheck子程序,負(fù)責(zé)按照HART協(xié)議格式向電磁流量計發(fā)送0#命令,獲得流量計地址;(2)PackandSend子程序,負(fù)責(zé)按照通信協(xié)議格式向嵌入式數(shù)據(jù)采集模塊發(fā)送報警數(shù)據(jù)、巡檢數(shù)據(jù)和補調(diào)數(shù)據(jù)3種不同的數(shù)據(jù)包,它有6個入口參數(shù),分別為CW、Data1Address~Data5Address,表示返回數(shù)據(jù)的命令字和5個測量數(shù)據(jù)的寄存器地址;(3)KeepConnect子程序,負(fù)責(zé)定時發(fā)送保持連接信號,確保嵌入式模塊和PLC通信正常,它有一個入口參數(shù)Time,表示定時時間;(4)CheckFlow子程序,負(fù)責(zé)按照HART協(xié)議命令格式向電磁流量計發(fā)送返回測量數(shù)據(jù)請求;(5)Port1CS子程序,在串行通信口1接收完成中斷程序中調(diào)用,負(fù)責(zé)對流量計返回的數(shù)據(jù)進行異或檢校,如果檢校錯誤,則丟棄數(shù)據(jù)包,如果檢校正確則進行解包分析,將返回的流量計地址或測量數(shù)據(jù)分別存儲在不同的寄存器中,以便其他子程序也可調(diào)用;(6)Port0CS子程序,在串行通信口0接收完成中斷程序中調(diào)用,負(fù)責(zé)對串口0接收的數(shù)據(jù)進行異或檢校。
 因為HART協(xié)議是主/從式協(xié)議,故PLC與流量計進行通信時需先向流量計發(fā)送命令,才能獲得相應(yīng)的返回數(shù)據(jù)。系統(tǒng)中PLC向流量計發(fā)送的命令有兩種:一種是要求流量計返回地址的0#命令,另一種是要求流量計返回測量數(shù)據(jù)的33#命令。0#命令在每次PLC重啟時發(fā)送一次,33#命令定時成每隔6 s發(fā)送一次。發(fā)送前要先拉高Q0.1的電平,使調(diào)制解調(diào)器處于調(diào)制工作狀態(tài);發(fā)送完成后,觸發(fā)端口1發(fā)送完成中斷使Q0.1輸出低電平,調(diào)制解調(diào)器工作在解調(diào)狀態(tài),接收來自流量計的數(shù)據(jù)。當(dāng)接收完成后觸發(fā)端口1接收完成中斷,調(diào)用Port1CS子程序?qū)邮盏降臄?shù)據(jù)包進行分析。串口1的通信程序流程圖如圖5所示。

    PLC和嵌入式模塊進行通信時,PLC相當(dāng)于從站,嵌入式模塊相當(dāng)于主站。除了自發(fā)向嵌入式模塊發(fā)送報警信息和連接保持信息外,一般都是接收到數(shù)據(jù)返回請求后,再向嵌入式模塊發(fā)送數(shù)據(jù)。PLC接收完嵌入式模塊發(fā)送來的數(shù)據(jù)后,觸發(fā)端口0接收完成中斷對數(shù)據(jù)包進行分析。如果是系統(tǒng)時間設(shè)置命令,則按照數(shù)據(jù)包里的時間設(shè)置值修改PLC的系統(tǒng)時間。如果是補調(diào)命令,則按照查詢時間讀取歷史數(shù)據(jù)并存儲到補調(diào)數(shù)據(jù)寄存器中,如果是巡檢命令,則將實時采樣數(shù)據(jù)存儲到巡檢數(shù)據(jù)寄存器中,然后調(diào)用PackandSend子程序,設(shè)置好寄存器地址即可按照上位機命令返回相應(yīng)數(shù)據(jù)。PLC發(fā)送完成后觸發(fā)端口0發(fā)送完成中斷,將各標(biāo)志位寄存器復(fù)位,為下一次通信做準(zhǔn)備。串口0的通信程序流程圖如圖6所示。

    本文以一種分布式污水遠(yuǎn)程監(jiān)控系統(tǒng)為例,提出了一種以西門子PLC為核心的測量方法。實驗證明,文中所述方案可以準(zhǔn)確、可靠地測量惡劣環(huán)境下的現(xiàn)場數(shù)據(jù)。PLC的采用不僅增大了系統(tǒng)的穩(wěn)定性,而且還可以很方便地根據(jù)實際需要適當(dāng)?shù)卦黾踊蚋淖儽O(jiān)控對象,對系統(tǒng)功能進行擴展。由于PLC程序采用模塊化設(shè)計,所以對系統(tǒng)進行簡單修改后即可用于其他工業(yè)監(jiān)控應(yīng)用中。文中詳細(xì)給出了下層基本測量模塊的硬件和軟件設(shè)計,以期為PLC用于測量、監(jiān)控領(lǐng)域提供一些參考。
參考文獻
[1]     洪承煜,洪志全. 基于S7-200PLC 自動架撤系統(tǒng)的應(yīng)用[J]. 微計算機信息,2008,24(8):52-54.
[2]     羅偉平, 張成文.基于PLC的PID控制恒壓供水系統(tǒng)[J].控制工程,2008(S1):77-78.
[3]     何鳳有,鮑衛(wèi)寧,劉良,等. 基于PLC與變頻器的空壓機恒壓供氣系統(tǒng)[J]. 變頻器世界,2009(2):77-79.
[4]     王娜. HART協(xié)議介紹及HART幀舉例[J]. 科技信息,2008(24):386-387.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。