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

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

    隨著計算機控制技術的不斷發(fā)展,,可編程控制器PLC(Programmable Logic Controller)的功能越來越強大,不僅具有各種各樣的控制功能,,還具有與其他計算機通信聯(lián)網(wǎng)的功能,。與之相應,PLC的應用也日益普及,,不僅被廣泛應用于傳統(tǒng)的邏輯控制[1],、PID控制[2]和變頻調(diào)速[3]等領域,還逐漸被用于數(shù)據(jù)采集,、環(huán)境監(jiān)控等領域。
 本文介紹的分布式遠程污水監(jiān)控系統(tǒng)采用分布式的構建方案,,利用基于西門子PLC的實時測量技術對各污水排放點的排污流量,、管道壓力等參數(shù)進行采集、監(jiān)測,,以達到分散連接,、集中監(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)送給本地機上層應用軟件進行顯示。整個下層測量單元相當于一個結構靈活可變,、功能多樣的智能儀表子系統(tǒng),,PLC相當于這個子系統(tǒng)的通信接口??梢愿鶕?jù)不同的測量需要對下層測量單元的硬件結構和測量功能進行適當改變,,使整個系統(tǒng)具有很大的靈活性,稍作修改即可用于其他監(jiān)控系統(tǒng),。
1 分布式系統(tǒng)結構
    系統(tǒng)的分布式結構示意圖如圖1所示,。當系統(tǒng)啟動或復位后,各排污點的下層測量單元開始定時采樣,、上傳數(shù)據(jù),;嵌入式模塊接收到PLC傳來數(shù)據(jù)后,存入自身的數(shù)據(jù)庫中并判斷是否要觸發(fā)報警設備,,同時將數(shù)據(jù)定時傳給上位機,。這些實時監(jiān)控數(shù)據(jù)最后均匯總到網(wǎng)絡服務器上,從而使整個系統(tǒng)構成了分布式的監(jiān)控結構體系,,主管部門只要通過應用軟件的人機交互界面就可在各自辦公位置對排污點的各項指標數(shù)據(jù)有一個準確的了解,,進而達到對分布區(qū)域廣泛的各個排污點運行情況進行集中監(jiān)控的目的。


    嵌入式數(shù)據(jù)采集模塊上的每個串口可連接多達253個不同速率和協(xié)議的設備,,因此為了降低成本,,將距離較近的排污點測量單元通過一個串口集中管理器后接在同一個嵌入式數(shù)據(jù)采集模塊上。在PLC程序中設置好與上位機通信時所需的PLC站號后,,嵌入式數(shù)據(jù)采集模塊就可通過輪巡的檢測方式接收各測量單元傳來的數(shù)據(jù),。但是實際中同一嵌入式數(shù)據(jù)采集模塊上所接的下層測量單元不應過多,因為這會造成輪巡一次的時間過長,,影響報警的實時性,。
2 PLC下層測量單元硬件設計
    根據(jù)實際情況只需對各排污點的管道壓力、污水瞬時流量,、污水總流量,、紅外線人體探頭的開關狀態(tài)和供電的開關狀態(tài)進行監(jiān)測。其中管道壓力由水壓傳感器測量,,其測量數(shù)據(jù)為4~20 mA的模擬量,;紅外線人體探頭的開關狀態(tài)和供電的開關狀態(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所示,,紅外線人體探頭和供電開關分別接到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轉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)控制端上,。當PLC輸出高電平時,,處于調(diào)制工作狀態(tài);當輸出低電平時,,處于解調(diào)工作狀態(tài),。
3 PLC下層測量單元軟件設計
 根據(jù)PLC在系統(tǒng)中的作用,PLC程序應具有定時采集數(shù)據(jù)并通過自由口通信方式發(fā)送到上位機,、自動報警,、自動向上位機發(fā)送保持連接信號等功能。另外還要能響應上位機的數(shù)據(jù)補調(diào)命令,,返回相應數(shù)值,;響應上位機的參數(shù)修改命令,修正PLC的系統(tǒng)時間等,。
 整個PLC程序采用模塊化設計,將完成某一功能的代碼段編寫為子程序,,設置入口參數(shù)和出口參數(shù),,當需要完成這項功能時,只需設置合適的參數(shù)并在程序中直接調(diào)用即可,。這樣可縮短程序的長度,,便于程序的修改和移植。整個PLC程序是由主程序,、子程序和中斷程序3部分組成,,每個功能模塊程序包含若干子程序和中斷程序,下面分別介紹,。
3.1 PLC主程序
 主程序主要是對自由口通信參數(shù)進行設置以及對程序中用到的各計數(shù)器和標志位寄存器進行復位,,以免PLC斷電重啟之后產(chǎn)生未知錯誤,。電磁流量計采用HART協(xié)議長幀結構命令,因此要先發(fā)送0#命令獲得生產(chǎn)廠家的代碼,、設備型號碼和設備識別碼等總共38 bit的信息[4],,用于填寫其他長幀命令的地址。PLC每次重啟后,,在主程序中調(diào)用一次0#命令子程序,,并將流量計返回的地址存儲在固定的寄存器中。另外,,PLC采集的壓力模擬量是一個緩慢變化的過程量,,為了避免測量誤差,還需對壓力采集量進行濾波,;本文采用了平均值濾波法,,每隔0.1 s觸發(fā)平均值濾波中斷程序對壓力測量數(shù)據(jù)進行處理。主程序流程圖如圖3所示,。


3.2 PLC數(shù)據(jù)采樣和報警部分程序
 該部分程序由3個子程序組成:CheckRealTimeData子程序,、Ana_Alarm子程序和Dig_Alarm子程序。其中CheckRealTimeData子程序負責定時對數(shù)據(jù)進行采樣,、存儲,;Ana_Alarm和Dig_Alarm子程序在CheckRealTimeData子程序中調(diào)用,負責判斷采集到的數(shù)據(jù)是否超過報警閾值,。如果連續(xù)超過閾值的時間大于設定值,,則置位報警標志位,使PLC自發(fā)地向嵌入式數(shù)據(jù)采集模塊發(fā)送報警信息,,觸發(fā)報警設備,;如果采樣值恢復正常則將報警計時器清零,重新計時,。Ana_Alarm子程序設定Adata,、Uplevel和Lowlevel 3個入口參數(shù),分別表示所測模擬量數(shù)據(jù),、數(shù)據(jù)上限和數(shù)據(jù)下限,;Dig_Alarm子程序設定Ddata、Status 2個入口參數(shù),,分別表示所測數(shù)字量數(shù)據(jù)和報警狀態(tài)值,。調(diào)用子程序時設置好正確的參數(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)時間進行設置,。
3.4 PLC通信部分程序
 通信部分程序是整個PLC程序的核心。它包含4個中斷程序(串行通信口0發(fā)送,、接收完成中斷和串行通信口1發(fā)送,、接收完成中斷)及6個子程序:(1)Precheck子程序,負責按照HART協(xié)議格式向電磁流量計發(fā)送0#命令,獲得流量計地址,;(2)PackandSend子程序,,負責按照通信協(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ā)送保持連接信號,,確保嵌入式模塊和PLC通信正常,,它有一個入口參數(shù)Time,表示定時時間,;(4)CheckFlow子程序,,負責按照HART協(xié)議命令格式向電磁流量計發(fā)送返回測量數(shù)據(jù)請求;(5)Port1CS子程序,,在串行通信口1接收完成中斷程序中調(diào)用,,負責對流量計返回的數(shù)據(jù)進行異或檢校,如果檢校錯誤,,則丟棄數(shù)據(jù)包,,如果檢校正確則進行解包分析,將返回的流量計地址或測量數(shù)據(jù)分別存儲在不同的寄存器中,,以便其他子程序也可調(diào)用;(6)Port0CS子程序,,在串行通信口0接收完成中斷程序中調(diào)用,,負責對串口0接收的數(shù)據(jù)進行異或檢校。
 因為HART協(xié)議是主/從式協(xié)議,故PLC與流量計進行通信時需先向流量計發(fā)送命令,才能獲得相應的返回數(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ù),。當接收完成后觸發(fā)端口1接收完成中斷,,調(diào)用Port1CS子程序對接收到的數(shù)據(jù)包進行分析。串口1的通信程序流程圖如圖5所示,。

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

    本文以一種分布式污水遠程監(jiān)控系統(tǒng)為例,,提出了一種以西門子PLC為核心的測量方法,。實驗證明,文中所述方案可以準確,、可靠地測量惡劣環(huán)境下的現(xiàn)場數(shù)據(jù),。PLC的采用不僅增大了系統(tǒng)的穩(wěn)定性,而且還可以很方便地根據(jù)實際需要適當?shù)卦黾踊蚋淖儽O(jiān)控對象,對系統(tǒng)功能進行擴展,。由于PLC程序采用模塊化設計,,所以對系統(tǒng)進行簡單修改后即可用于其他工業(yè)監(jiān)控應用中。文中詳細給出了下層基本測量模塊的硬件和軟件設計,,以期為PLC用于測量,、監(jiān)控領域提供一些參考。
參考文獻
[1]     洪承煜,,洪志全. 基于S7-200PLC 自動架撤系統(tǒ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)授權禁止轉載,。