基于PLC的實(shí)時(shí)測量技術(shù)在遠程污水監控系統中的應用
該部分程序由3個(gè)子程序組成:CheckRealTimeData子程序、Ana_Alarm子程序和Dig_Alarm子程序。其中CheckRealTimeData子程序負責定時(shí)對數據進(jìn)行采樣、存儲;Ana_Alarm和Dig_Alarm子程序在CheckRealTimeData子程序中調用,負責判斷采集到的數據是否超過(guò)報警閾值。如果連續超過(guò)閾值的時(shí)間大于設定值,則置位報警標志位,使PLC自發(fā)地向嵌入式數據采集模塊發(fā)送報警信息,觸發(fā)報警設備;如果采樣值恢復正常則將報警計時(shí)器清零,重新計時(shí)。Ana_Alarm子程序設定Adata、Uplevel和Lowlevel 3個(gè)入口參數,分別表示所測模擬量數據、數據上限和數據下限;Dig_Alarm子程序設定Ddata、Status 2個(gè)入口參數,分別表示所測數字量數據和報警狀態(tài)值。調用子程序時(shí)設置好正確的參數就可完成PLC的報警功能,模擬量報警子程序和數字量報警子程序的流程圖如圖4所示。本文引用地址:http://dyxdggzs.com/article/195459.htm
3.3 PLC數據存儲部分程序
PLC程序要有一定的數據存儲功能,防止因通信錯誤而出現數據丟失的情況。因為224XP PLC的數據存儲區僅為10 240 B,所以?xún)H使PLC在每小時(shí)內的15 min、30 min、45 min和60 min時(shí)各保存一次數據,連續保存最近3天的數據。另外在電源掉電或內存丟失后,PLC的系統時(shí)間會(huì )被初始化,這會(huì )使數據保存時(shí)間與實(shí)際時(shí)間不符,因此在建立了嵌入式通信采集模塊和PLC的通信聯(lián)系后,需發(fā)送命令對PLC的系統時(shí)間進(jìn)行設置。
3.4 PLC通信部分程序
通信部分程序是整個(gè)PLC程序的核心。它包含4個(gè)中斷程序(串行通信口0發(fā)送、接收完成中斷和串行通信口1發(fā)送、接收完成中斷)及6個(gè)子程序:(1)Precheck子程序,負責按照HART協(xié)議格式向電磁流量計發(fā)送0#命令,獲得流量計地址;(2)PackandSend子程序,負責按照通信協(xié)議格式向嵌入式數據采集模塊發(fā)送報警數據、巡檢數據和補調數據3種不同的數據包,它有6個(gè)入口參數,分別為CW、Data1Address~Data5Address,表示返回數據的命令字和5個(gè)測量數據的寄存器地址;(3)KeepConnect子程序,負責定時(shí)發(fā)送保持連接信號,確保嵌入式模塊和PLC通信正常,它有一個(gè)入口參數Time,表示定時(shí)時(shí)間;(4)CheckFlow子程序,負責按照HART協(xié)議命令格式向電磁流量計發(fā)送返回測量數據請求;(5)Port1CS子程序,在串行通信口1接收完成中斷程序中調用,負責對流量計返回的數據進(jìn)行異或檢校,如果檢校錯誤,則丟棄數據包,如果檢校正確則進(jìn)行解包分析,將返回的流量計地址或測量數據分別存儲在不同的寄存器中,以便其他子程序也可調用;(6)Port0CS子程序,在串行通信口0接收完成中斷程序中調用,負責對串口0接收的數據進(jìn)行異或檢校。
因為HART協(xié)議是主/從式協(xié)議,故PLC與流量計進(jìn)行通信時(shí)需先向流量計發(fā)送命令,才能獲得相應的返回數據。系統中PLC向流量計發(fā)送的命令有兩種:一種是要求流量計返回地址的0#命令,另一種是要求流量計返回測量數據的33#命令。0#命令在每次PLC重啟時(shí)發(fā)送一次,33#命令定時(shí)成每隔6 s發(fā)送一次。發(fā)送前要先拉高Q0.1的電平,使調制解調器處于調制工作狀態(tài);發(fā)送完成后,觸發(fā)端口1發(fā)送完成中斷使Q0.1輸出低電平,調制解調器工作在解調狀態(tài),接收來(lái)自流量計的數據。當接收完成后觸發(fā)端口1接收完成中斷,調用Port1CS子程序對接收到的數據包進(jìn)行分析。串口1的通信程序流程圖如圖5所示。
PLC和嵌入式模塊進(jìn)行通信時(shí),PLC相當于從站,嵌入式模塊相當于主站。除了自發(fā)向嵌入式模塊發(fā)送報警信息和連接保持信息外,一般都是接收到數據返回請求后,再向嵌入式模塊發(fā)送數據。PLC接收完嵌入式模塊發(fā)送來(lái)的數據后,觸發(fā)端口0接收完成中斷對數據包進(jìn)行分析。如果是系統時(shí)間設置命令,則按照數據包里的時(shí)間設置值修改PLC的系統時(shí)間。如果是補調命令,則按照查詢(xún)時(shí)間讀取歷史數據并存儲到補調數據寄存器中,如果是巡檢命令,則將實(shí)時(shí)采樣數據存儲到巡檢數據寄存器中,然后調用PackandSend子程序,設置好寄存器地址即可按照上位機命令返回相應數據。PLC發(fā)送完成后觸發(fā)端口0發(fā)送完成中斷,將各標志位寄存器復位,為下一次通信做準備。串口0的通信程序流程圖如圖6所示。
本文以一種分布式污水遠程監控系統為例,提出了一種以西門(mén)子PLC為核心的測量方法。實(shí)驗證明,文中所述方案可以準確、可靠地測量惡劣環(huán)境下的現場(chǎng)數據。PLC的采用不僅增大了系統的穩定性,而且還可以很方便地根據實(shí)際需要適當地增加或改變監控對象,對系統功能進(jìn)行擴展。由于PLC程序采用模塊化設計,所以對系統進(jìn)行簡(jiǎn)單修改后即可用于其他工業(yè)監控應用中。文中詳細給出了下層基本測量模塊的硬件和軟件設計,以期為PLC用于測量、監控領(lǐng)域提供一些參考。
評論