基于PLC的實時測量技術在遠程污水監(jiān)控系統(tǒng)中的應用
該部分程序由3個子程序組成:CheckRealTimeData子程序、Ana_Alarm子程序和Dig_Alarm子程序。其中CheckRealTimeData子程序負責定時對數(shù)據(jù)進行采樣、存儲;Ana_Alarm和Dig_Alarm子程序在CheckRealTimeData子程序中調用,負責判斷采集到的數(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)值。調用子程序時設置好正確的參數(shù)就可完成PLC的報警功能,模擬量報警子程序和數(shù)字量報警子程序的流程圖如圖4所示。本文引用地址:http://butianyuan.cn/article/195459.htm
3.3 PLC數(shù)據(jù)存儲部分程序
PLC程序要有一定的數(shù)據(jù)存儲功能,防止因通信錯誤而出現(xiàn)數(shù)據(jù)丟失的情況。因為224XP PLC的數(shù)據(jù)存儲區(qū)僅為10 240 B,所以僅使PLC在每小時內的15 min、30 min、45 min和60 min時各保存一次數(shù)據(jù),連續(xù)保存最近3天的數(shù)據(jù)。另外在電源掉電或內存丟失后,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ù)和補調數(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接收完成中斷程序中調用,負責對流量計返回的數(shù)據(jù)進行異或檢校,如果檢校錯誤,則丟棄數(shù)據(jù)包,如果檢校正確則進行解包分析,將返回的流量計地址或測量數(shù)據(jù)分別存儲在不同的寄存器中,以便其他子程序也可調用;(6)Port0CS子程序,在串行通信口0接收完成中斷程序中調用,負責對串口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的電平,使調制解調器處于調制工作狀態(tài);發(fā)送完成后,觸發(fā)端口1發(fā)送完成中斷使Q0.1輸出低電平,調制解調器工作在解調狀態(tài),接收來自流量計的數(shù)據(jù)。當接收完成后觸發(fā)端口1接收完成中斷,調用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)時間。如果是補調命令,則按照查詢時間讀取歷史數(shù)據(jù)并存儲到補調數(shù)據(jù)寄存器中,如果是巡檢命令,則將實時采樣數(shù)據(jù)存儲到巡檢數(shù)據(jù)寄存器中,然后調用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)控領域提供一些參考。
評論