專利名稱:數(shù)據(jù)采集監(jiān)控系統(tǒng)的問答式規(guī)約報(bào)文處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信技術(shù),特別是涉及一種數(shù)據(jù)采集監(jiān)控系統(tǒng)的問答式規(guī)約報(bào)文處理方法的技術(shù)。
背景技術(shù):
在電力自動(dòng)化行業(yè),數(shù)據(jù)采集裝置或者各類傳感器都通過通訊規(guī)約(communication protocol)把采集的數(shù)據(jù)傳輸?shù)絊CADA (數(shù)據(jù)采集監(jiān)控)系統(tǒng),由SCADA系統(tǒng)對采集的數(shù)據(jù)進(jìn)行數(shù)據(jù)分析處理、顯示以及告警。因而,在此過程當(dāng)中,通訊規(guī)約能否穩(wěn)定、準(zhǔn)確、快速的把各個(gè)采集終端數(shù)據(jù)送達(dá)SCADA系統(tǒng),對于安全生產(chǎn),顯得尤為重要。目前在電力行業(yè)中的通訊規(guī)約按傳輸模式大體可以分為以下這幾類· O循環(huán)傳輸規(guī)約,這種規(guī)約由RTU (遠(yuǎn)程終端單元)以固定速率循環(huán)地向SCADA系統(tǒng)端上位機(jī)上傳數(shù)據(jù),數(shù)據(jù)依規(guī)定的幀格式連續(xù)循環(huán),周而復(fù)始地傳送,這種規(guī)約的優(yōu)點(diǎn)是簡單,適合投資成本比較低的通信線路,其缺點(diǎn)是傳輸容量小,占用帶寬大,比較典型的循環(huán)傳輸規(guī)約有CDT規(guī)約;
2)問答式傳輸規(guī)約,這種規(guī)約由SCADA系統(tǒng)端上位機(jī)主動(dòng)向RTU (遠(yuǎn)程終端單元)發(fā)送查詢命令報(bào)文,RTU響應(yīng)后才上傳信息,SCADA系統(tǒng)端上位機(jī)收到所需信息后,才開始新一輪查詢,否則會(huì)繼續(xù)向RTU詢問召喚此類信息,這種規(guī)約的優(yōu)點(diǎn)是SCADA系統(tǒng)端上位機(jī)可以控制數(shù)據(jù)傳輸過程,允許多臺(tái)RTU以共線的方式共用一個(gè)通道,這樣有助于節(jié)省通道,提高通道占用率,其缺點(diǎn)是不允許主動(dòng)上報(bào),對事故的響應(yīng)速度稍慢,比較典型的問答式傳輸規(guī)約有 IEC10U IEC102、IEC103 等。問答式規(guī)約傳輸由于具有諸多優(yōu)點(diǎn),在電力系統(tǒng)中得到了廣泛應(yīng)用?,F(xiàn)有電力系統(tǒng)中的問答式規(guī)約傳輸都采用單線程設(shè)計(jì),當(dāng)SCADA系統(tǒng)端上位機(jī)發(fā)送命令后開始計(jì)時(shí),在設(shè)定的時(shí)間內(nèi)等待RTU端的響應(yīng),如果響應(yīng)時(shí)間超時(shí)后SCADA系統(tǒng)端上位機(jī)還沒有收到數(shù)據(jù),SCADA系統(tǒng)端上位機(jī)會(huì)重新發(fā)送命令(通常三次),這種常規(guī)設(shè)計(jì)的缺陷在于如果SCADA系統(tǒng)端上位機(jī)在重新發(fā)送命令的時(shí)候,RTU回送的數(shù)據(jù)到達(dá),使得RTU再次回送數(shù)據(jù),從而導(dǎo)致接收緩沖區(qū)中會(huì)有兩條由RTU回送上來的同樣報(bào)文,而SCADA系統(tǒng)端上位機(jī)一般只會(huì)處理一條報(bào)文,長此下去接收緩沖區(qū)中的數(shù)據(jù)堆積會(huì)越來越多。如果一個(gè)通道只連接一個(gè)RTU,那么上述缺陷會(huì)導(dǎo)致計(jì)算機(jī)的內(nèi)存耗費(fèi)越來越大,最終會(huì)導(dǎo)致計(jì)算機(jī)因內(nèi)存不足而崩潰;如果一個(gè)通道連接多個(gè)RTU,那么上述缺陷還會(huì)導(dǎo)致RTU已上送報(bào)文,但SCADA系統(tǒng)端上位機(jī)查看到的報(bào)文卻不是本廠站地址所對應(yīng)的報(bào)文,會(huì)造成張冠李戴的現(xiàn)象,從而使數(shù)據(jù)沒有及時(shí)準(zhǔn)確的到達(dá)SCADA系統(tǒng)端上位機(jī),從而給安全生產(chǎn)帶來影響。當(dāng)然,可以通過使SCADA系統(tǒng)端上位機(jī)以遍歷方式掃描緩沖區(qū)數(shù)據(jù)來解決上述缺陷,但是這會(huì)消耗大量的計(jì)算機(jī)資源,降低系統(tǒng)資源利用率,更大的問題是不能快速的處理數(shù)據(jù),不能滿足SCADA系統(tǒng)對數(shù)據(jù)實(shí)時(shí)性、穩(wěn)定性的要求
發(fā)明內(nèi)容
針對上述現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明所要解決的技術(shù)問題是提供一種能快速、準(zhǔn)確的處理報(bào)文,能有效避免接收緩沖區(qū)數(shù)據(jù)堆積的數(shù)據(jù)采集監(jiān)控系統(tǒng)的問答式規(guī)約報(bào)文處理方法。為了解決上述技術(shù)問題,本發(fā)明所提供的一種數(shù)據(jù)采集監(jiān)控系統(tǒng)的問答式規(guī)約報(bào)文處理方法,其特征在于
在SCADA系統(tǒng)端上位機(jī)中建立一個(gè)狀態(tài)機(jī),并將狀態(tài)機(jī)初始化為初始狀態(tài);
在SCADA系統(tǒng)端上位機(jī)中建立兩個(gè)相互獨(dú)立的線程,其中一個(gè)為命令發(fā)送線程,另一個(gè)為遠(yuǎn)程數(shù)據(jù)接收線程;
SCADA系統(tǒng)端上位機(jī)利用命令發(fā)送線程向RTU發(fā)送命令,利用遠(yuǎn)程數(shù)據(jù)接收線程接收RTU上送的數(shù)據(jù)報(bào)文; 命令發(fā)送線程向RTU發(fā)送命令的步驟如下
Al)命令發(fā)送線程向RTU發(fā)送命令,并將狀態(tài)機(jī)的狀態(tài)設(shè)置為發(fā)送狀態(tài);
A2)在設(shè)定時(shí)間段內(nèi)檢測狀態(tài)機(jī)的狀態(tài);
如果在設(shè)定時(shí)間段內(nèi)檢測到狀態(tài)機(jī)的狀態(tài)一直保持在發(fā)送狀態(tài),即表明遠(yuǎn)程數(shù)據(jù)接收線程未接收到RTU回送的數(shù)據(jù)報(bào)文,則轉(zhuǎn)至步驟A3 ;
如果在設(shè)定時(shí)間段內(nèi)檢測到狀態(tài)機(jī)的狀態(tài)從發(fā)送狀態(tài)翻轉(zhuǎn)為接收狀態(tài),即表明遠(yuǎn)程數(shù)據(jù)接收線程已接收到RTU回送的數(shù)據(jù)報(bào)文,則轉(zhuǎn)至步驟A4 ;
A3)如果命令發(fā)送線程向RTU重新發(fā)送命令的次數(shù)未超過設(shè)定次數(shù),命令發(fā)送線程即向RTU重新發(fā)送命令,再轉(zhuǎn)至步驟A2 ;
如果命令發(fā)送線程向RTU重新發(fā)送命令的次數(shù)超過設(shè)定次數(shù),即表明RTU沒有響應(yīng),命令發(fā)送線程即向SCADA系統(tǒng)端上位機(jī)返回命令發(fā)送失敗信息,命令發(fā)送線程單次向RTU發(fā)送命令完畢;
A4)將狀態(tài)機(jī)的狀態(tài)初始化為初始狀態(tài),命令發(fā)送線程單次向RTU發(fā)送命令完畢,命令發(fā)送線程即可進(jìn)入下一輪命令發(fā)送;
遠(yuǎn)程數(shù)據(jù)接收線程不斷檢測數(shù)據(jù)緩沖區(qū),如果檢測到數(shù)據(jù)緩沖區(qū)有RTU上送的完整數(shù)據(jù)報(bào)文,即讀取該數(shù)據(jù)報(bào)文,并檢測該數(shù)據(jù)報(bào)文與命令發(fā)送線程發(fā)送給RTU的命令是否匹配,如果檢測結(jié)果為匹配,即將狀態(tài)機(jī)的狀態(tài)設(shè)置為接收狀態(tài),反之則將該數(shù)據(jù)報(bào)文丟棄,然后繼續(xù)檢測數(shù)據(jù)緩沖區(qū)。本發(fā)明提供的數(shù)據(jù)采集監(jiān)控系統(tǒng)的問答式規(guī)約報(bào)文處理方法,將發(fā)送數(shù)據(jù)和接收數(shù)據(jù)解耦,降低處理問題的復(fù)雜度,能穩(wěn)定、準(zhǔn)確、快速的處理報(bào)文,有效避免接收緩沖區(qū)數(shù)據(jù)堆積,而且在多個(gè)RTU共用通道的情況下,也不會(huì)產(chǎn)生有報(bào)文上送,但SCADA系統(tǒng)端上位機(jī)無法收到正確數(shù)據(jù)的情況,其結(jié)構(gòu)設(shè)計(jì)清晰明確,能滿足SCADA系統(tǒng)對數(shù)據(jù)實(shí)時(shí)性、穩(wěn)定性的要求。
圖I是本發(fā)明實(shí)施例的數(shù)據(jù)采集監(jiān)控系統(tǒng)的問答式規(guī)約報(bào)文處理方法的原理圖。
具體實(shí)施例方式以下結(jié)合
對本發(fā)明的實(shí)施例作進(jìn)一步詳細(xì)描述,但本實(shí)施例并不用于限制本發(fā)明,凡是采用本發(fā)明的相似結(jié)構(gòu)及其相似變化,均應(yīng)列入本發(fā)明的保護(hù)范圍。如圖I所示,本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)采集監(jiān)控系統(tǒng)的問答式規(guī)約報(bào)文處理方法,其特征在于
在SCADA系統(tǒng)端上位機(jī)中建立一個(gè)狀態(tài)機(jī),并將狀態(tài)機(jī)初始化為初始狀態(tài);
在SCADA系統(tǒng)端上位機(jī)中建立兩個(gè)相互獨(dú)立的線程,其中一個(gè)為命令發(fā)送線程,另一個(gè)為遠(yuǎn)程數(shù)據(jù)接收線程;
SCADA系統(tǒng)端上位機(jī)利用命令發(fā)送線程向RTU (遠(yuǎn)程終端單元)發(fā)送命令,利用遠(yuǎn)程數(shù)據(jù)接收線程接收RTU (遠(yuǎn)程終端單元)上送的數(shù)據(jù)報(bào)文;
命令發(fā)送線程向RTU發(fā)送命令的步驟如下 Al)命令發(fā)送線程向RTU發(fā)送命令,并將狀態(tài)機(jī)的狀態(tài)設(shè)置為發(fā)送狀態(tài);
A2)在設(shè)定時(shí)間段內(nèi)檢測狀態(tài)機(jī)的狀態(tài);
如果在設(shè)定時(shí)間段內(nèi)檢測到狀態(tài)機(jī)的狀態(tài)一直保持在發(fā)送狀態(tài),即表明遠(yuǎn)程數(shù)據(jù)接收線程未接收到RTU回送的數(shù)據(jù)報(bào)文,則轉(zhuǎn)至步驟A3 ;
如果在設(shè)定時(shí)間段內(nèi)檢測到狀態(tài)機(jī)的狀態(tài)從發(fā)送狀態(tài)翻轉(zhuǎn)為接收狀態(tài),即表明遠(yuǎn)程數(shù)據(jù)接收線程已接收到RTU回送的數(shù)據(jù)報(bào)文,則轉(zhuǎn)至步驟A4 ;
A3)如果命令發(fā)送線程向RTU重新發(fā)送命令的次數(shù)未超過設(shè)定次數(shù),命令發(fā)送線程即向RTU重新發(fā)送命令,再轉(zhuǎn)至步驟A2 ;
如果命令發(fā)送線程向RTU重新發(fā)送命令的次數(shù)超過設(shè)定次數(shù),即表明RTU沒有響應(yīng),命令發(fā)送線程即向SCADA系統(tǒng)端上位機(jī)返回命令發(fā)送失敗信息,命令發(fā)送線程單次向RTU發(fā)送命令完畢;
A4)將狀態(tài)機(jī)的狀態(tài)初始化為初始狀態(tài),命令發(fā)送線程單次向RTU發(fā)送命令完畢,命令發(fā)送線程即可進(jìn)入下一輪命令發(fā)送;
遠(yuǎn)程數(shù)據(jù)接收線程不斷檢測數(shù)據(jù)緩沖區(qū),如果檢測到數(shù)據(jù)緩沖區(qū)有RTU (遠(yuǎn)程終端單元)上送的完整數(shù)據(jù)報(bào)文,即讀取該數(shù)據(jù)報(bào)文,并檢測該數(shù)據(jù)報(bào)文與命令發(fā)送線程發(fā)送給RTU的命令是否匹配,如果檢測結(jié)果為匹配,即將狀態(tài)機(jī)的狀態(tài)設(shè)置為接收狀態(tài),反之則將該數(shù)據(jù)報(bào)文丟棄,然后繼續(xù)檢測數(shù)據(jù)緩沖區(qū)。
權(quán)利要求
1.一種數(shù)據(jù)采集監(jiān)控系統(tǒng)的問答式規(guī)約報(bào)文處理方法,其特征在于 在SCADA系統(tǒng)端上位機(jī)中建立一個(gè)狀態(tài)機(jī),并將狀態(tài)機(jī)初始化為初始狀態(tài); 在SCADA系統(tǒng)端上位機(jī)中建立兩個(gè)相互獨(dú)立的線程,其中一個(gè)為命令發(fā)送線程,另一個(gè)為遠(yuǎn)程數(shù)據(jù)接收線程; SCADA系統(tǒng)端上位機(jī)利用命令發(fā)送線程向RTU發(fā)送命令,利用遠(yuǎn)程數(shù)據(jù)接收線程接收RTU上送的數(shù)據(jù)報(bào)文; 命令發(fā)送線程向RTU發(fā)送命令的步驟如下 Al)命令發(fā)送線程向RTU發(fā)送命令,并將狀態(tài)機(jī)的狀態(tài)設(shè)置為發(fā)送狀態(tài); A2)在設(shè)定時(shí)間段內(nèi)檢測狀態(tài)機(jī)的狀態(tài); 如果在設(shè)定時(shí)間段內(nèi)檢測到狀態(tài)機(jī)的狀態(tài)一直保持在發(fā)送狀態(tài),即表明遠(yuǎn)程數(shù)據(jù)接收線程未接收到RTU回送的數(shù)據(jù)報(bào)文,則轉(zhuǎn)至步驟A3 ; 如果在設(shè)定時(shí)間段內(nèi)檢測到狀態(tài)機(jī)的狀態(tài)從發(fā)送狀態(tài)翻轉(zhuǎn)為接收狀態(tài),即表明遠(yuǎn)程數(shù)據(jù)接收線程已接收到RTU回送的數(shù)據(jù)報(bào)文,則轉(zhuǎn)至步驟A4 ; A3)如果命令發(fā)送線程向RTU重新發(fā)送命令的次數(shù)未超過設(shè)定次數(shù),命令發(fā)送線程即向RTU重新發(fā)送命令,再轉(zhuǎn)至步驟A2 ; 如果命令發(fā)送線程向RTU重新發(fā)送命令的次數(shù)超過設(shè)定次數(shù),即表明RTU沒有響應(yīng),命令發(fā)送線程即向SCADA系統(tǒng)端上位機(jī)返回命令發(fā)送失敗信息,命令發(fā)送線程單次向RTU發(fā)送命令完畢; A4)將狀態(tài)機(jī)的狀態(tài)初始化為初始狀態(tài),命令發(fā)送線程單次向RTU發(fā)送命令完畢,命令發(fā)送線程即可進(jìn)入下一輪命令發(fā)送; 遠(yuǎn)程數(shù)據(jù)接收線程不斷檢測數(shù)據(jù)緩沖區(qū),如果檢測到數(shù)據(jù)緩沖區(qū)有RTU上送的完整數(shù)據(jù)報(bào)文,即讀取該數(shù)據(jù)報(bào)文,并檢測該數(shù)據(jù)報(bào)文與命令發(fā)送線程發(fā)送給RTU的命令是否匹配,如果檢測結(jié)果為匹配,即將狀態(tài)機(jī)的狀態(tài)設(shè)置為接收狀態(tài),反之則將該數(shù)據(jù)報(bào)文丟棄,然后繼續(xù)檢測數(shù)據(jù)緩沖區(qū)。
全文摘要
一種數(shù)據(jù)采集監(jiān)控系統(tǒng)的問答式規(guī)約報(bào)文處理方法,涉及數(shù)據(jù)通信技術(shù)領(lǐng)域,所解決的是穩(wěn)定、準(zhǔn)確、快速的處理報(bào)文,及避免數(shù)據(jù)堆積技術(shù)問題。該方法在SCADA系統(tǒng)端上位機(jī)中建立一個(gè)狀態(tài)機(jī),并建立一個(gè)命令發(fā)送線程,一個(gè)遠(yuǎn)程數(shù)據(jù)接收線程;SCADA系統(tǒng)端上位機(jī)利用命令發(fā)送線程向RTU發(fā)送命令,利用遠(yuǎn)程數(shù)據(jù)接收線程接收RTU上送的數(shù)據(jù)報(bào)文;命令發(fā)送線程向RTU發(fā)送命令后,通過狀態(tài)機(jī)檢測遠(yuǎn)程數(shù)據(jù)接收線程有否正確接收到RTU回送的報(bào)文;遠(yuǎn)程數(shù)據(jù)接收線程檢測到報(bào)文后,如果檢測到報(bào)文與發(fā)送的命令匹配,即將狀態(tài)機(jī)的狀態(tài)置位,反之則將報(bào)文丟棄。本發(fā)明提供的方法,能滿足SCADA系統(tǒng)對數(shù)據(jù)實(shí)時(shí)性、穩(wěn)定性的要求。
文檔編號(hào)G05B19/418GK102843290SQ20121028611
公開日2012年12月26日 申請日期2012年8月13日 優(yōu)先權(quán)日2012年8月13日
發(fā)明者夏湘洪 申請人:上海申瑞繼保電氣有限公司