李文宏 張修華
(山東科技大學(xué)信息與電氣工程學(xué)院,山東 青島 266510)
由于煤礦的特殊工作環(huán)境,它對(duì)供電系統(tǒng)的要求較為嚴(yán)格,因此可靠、高效的電力故障監(jiān)控系統(tǒng)對(duì)煤礦的安全生產(chǎn)極其重要。本文所述的監(jiān)控系統(tǒng)以支持TCP/IP協(xié)議和現(xiàn)場(chǎng)總線(xiàn)接口的工控機(jī)為核心部件。作為總線(xiàn)上的主控器和煤礦局域網(wǎng)上的節(jié)點(diǎn),監(jiān)控系統(tǒng)通過(guò)總線(xiàn)與故障檢測(cè)模塊交換信息,通過(guò)以太網(wǎng)與上位機(jī)監(jiān)控軟件交換信息,使總線(xiàn)通信局限于單個(gè)變電所;主體通信通過(guò)以太網(wǎng)完成,從而減少外界干擾,擴(kuò)大檢測(cè)系統(tǒng)的覆蓋面,提高系統(tǒng)的工作效率。
IEC 60870-5-104之前的規(guī)約大多在具有永久連接電路的站間傳輸基本遠(yuǎn)動(dòng)信息,而104規(guī)約是“采用標(biāo)準(zhǔn)傳輸文件集的 IEC60870-5-101 的網(wǎng)絡(luò)訪(fǎng)問(wèn)”[1-5],運(yùn)行于TCP協(xié)議之上,可以在TCP/IP框架內(nèi)運(yùn)行在不同結(jié)構(gòu)的網(wǎng)絡(luò)上[6-9]。本文主要分析了104規(guī)約的數(shù)據(jù)格式、傳輸規(guī)則和機(jī)制,并在TCP/IP協(xié)議基礎(chǔ)上實(shí)現(xiàn)了104規(guī)約的主要功能。
前期煤礦的供電監(jiān)控系統(tǒng)大多采用現(xiàn)場(chǎng)總線(xiàn)技術(shù),各個(gè)變電所相互獨(dú)立,信息傳輸距離較短,易受現(xiàn)場(chǎng)環(huán)境的干擾;組成的網(wǎng)絡(luò)規(guī)模小,不能實(shí)現(xiàn)真正意義上的遠(yuǎn)程監(jiān)控,必須進(jìn)行現(xiàn)場(chǎng)操作才能獲得變電所的供電參數(shù)。這使得井下操作效率低下、安全性低。早期監(jiān)控系統(tǒng)框架如圖1所示。
圖1 早期監(jiān)控系統(tǒng)示意圖Fig.1 Schematic diagram of the monitoring system of early stage
基于網(wǎng)絡(luò)技術(shù)的檢測(cè)系統(tǒng)能克服總線(xiàn)型系統(tǒng)的缺點(diǎn),上位機(jī)和所有變電所都掛接到網(wǎng)絡(luò)上,所有信息參數(shù)通過(guò)TCP/IP網(wǎng)絡(luò)傳輸,可以真正實(shí)現(xiàn)遠(yuǎn)程監(jiān)控和數(shù)據(jù)統(tǒng)計(jì)。這樣的監(jiān)控系統(tǒng)覆蓋面廣、組網(wǎng)簡(jiǎn)單靈活、易于擴(kuò)展,其系統(tǒng)框圖如圖2所示。
圖2 基于網(wǎng)絡(luò)的監(jiān)控系統(tǒng)示意圖Fig.2 Schematic diagram of the monitoring system based on network
在基于網(wǎng)絡(luò)技術(shù)的檢測(cè)系統(tǒng)中,工控機(jī)系統(tǒng)支持TCP/IP協(xié)議和總線(xiàn)接口,104規(guī)約也在工控機(jī)上實(shí)現(xiàn)。工控機(jī)通過(guò)總線(xiàn)接口讀取各個(gè)檢測(cè)模塊采集到的故障信息,并根據(jù)信息的類(lèi)型打包成相應(yīng)格式的104規(guī)約數(shù)據(jù)包,再通過(guò)網(wǎng)絡(luò)套接口發(fā)送到網(wǎng)絡(luò)上;上位機(jī)接收此數(shù)據(jù)報(bào),在解析出現(xiàn)場(chǎng)信息之后,再進(jìn)行下一步的用戶(hù)交互操作。
IEC60870-5-104規(guī)約的數(shù)據(jù)格式[4]定義具體如表1所示。
表1 遠(yuǎn)動(dòng)配套標(biāo)準(zhǔn)的APDU定義Tab.1 Definition of APDU for telecontrol supporting standard
表1中,啟動(dòng)字符為68 H,定義了數(shù)據(jù)流的起點(diǎn)。應(yīng)用協(xié)議數(shù)據(jù)單元(application protocol data unit,APDU)的長(zhǎng)度是指控制域字節(jié)到APDU最后一個(gè)字節(jié)之間的所有字節(jié)數(shù)。
IEC 60870-5-104規(guī)約規(guī)定了I格式幀、S格式幀和U格式幀3種幀類(lèi)型,幀類(lèi)型由4個(gè)控制域字節(jié)決定。類(lèi)型標(biāo)志用來(lái)標(biāo)志APDU中數(shù)據(jù)的類(lèi)型,主要包括遙測(cè)、遙信/變化遙信、順序事件記錄SOE、遙控等,每種類(lèi)型各有1 B的常量值與之對(duì)應(yīng)。
可變結(jié)構(gòu)限定詞的各位段取值如表2所示。
表2 結(jié)構(gòu)限定詞Tab.2 Structure qualifiers
表2中,SQ和N均表示可變幀長(zhǎng)。
傳送原因字段用來(lái)標(biāo)志數(shù)據(jù)傳輸?shù)脑颍饕ㄖ芷凇⒀h(huán)、突發(fā)、初始化、請(qǐng)求/被請(qǐng)求、激活、激活確認(rèn)、激活結(jié)束、響應(yīng)總召喚等,每個(gè)傳送原因都對(duì)應(yīng)1 B的常量值。公共地址一般與鏈路地址相同。信息體地址分為兩類(lèi):若是響應(yīng)總召喚類(lèi)變長(zhǎng)幀,信息體地址為0000;若為轉(zhuǎn)發(fā)YC/YX/YM值,則信息體地址為YC/YX/YM。品質(zhì)描述主要用于命令數(shù)據(jù)傳送,主要包括召喚全數(shù)據(jù)、召喚組數(shù)據(jù)、召喚全電度、召喚組電度或YC/YX/YM值。遙控命令限定詞的位定義如表3所示。
表3 遙控命令限定詞Tab.3 Telecontrol command qualifiers
表3中,S/E為0表示遙控執(zhí)行,為1表示遙控預(yù)置;DCS為0表示不允許,為1表示遙控分閘,為2表示遙控合閘,為3表示不允許。
IEC 60870-5-104規(guī)約使用TCP/IP提供的服務(wù)在網(wǎng)絡(luò)上傳輸。現(xiàn)在的操作系統(tǒng)大都支持TCP/IP協(xié)議棧,在無(wú)操作系統(tǒng)的情況下,也有許多功能比較完善的TCP/IP 協(xié)議模塊可以直接使用[10],如 BSD TCP/IP、LwIP、uIP、TinyTcp等,它們提供了充分的用戶(hù)接口,可以開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用程序而不必關(guān)心協(xié)議的具體實(shí)現(xiàn)細(xì)節(jié)。本文設(shè)計(jì)的系統(tǒng)目前運(yùn)行于Windows系統(tǒng)下,提供了大量Socket API和2個(gè)Socket類(lèi)。這些接口和類(lèi)封裝了網(wǎng)絡(luò)協(xié)議的細(xì)節(jié),可以使用戶(hù)專(zhuān)注于應(yīng)用層程序(104規(guī)約)的開(kāi)發(fā),提高開(kāi)發(fā)效率,縮短開(kāi)發(fā)周期。
IEC 60870-5-104規(guī)約中定義了一些變量,這些變量的狀態(tài)在數(shù)據(jù)傳輸過(guò)程中是不斷變化的,是數(shù)據(jù)準(zhǔn)確傳輸?shù)那疤帷R虼?,在?yīng)用程序開(kāi)發(fā)中要對(duì)這些變量特別關(guān)注,必須通過(guò)相應(yīng)的編程技術(shù)對(duì)它們加以保護(hù),避免訪(fǎng)問(wèn)沖突。這些變量主要有:APDU總長(zhǎng)度、端口號(hào)、發(fā)送序列號(hào)NS、接收序列號(hào)NR等,具體定義如下。
①APDU總長(zhǎng)度:IEC 60870-5-104規(guī)約規(guī)定APDU的總長(zhǎng)度限制為255 B,故應(yīng)用服務(wù)數(shù)據(jù)單元(application service data unit,ASDU)最多包含249 B 的數(shù)據(jù)。
②端口號(hào):在傳輸層固定為2404,這已經(jīng)得到互聯(lián)網(wǎng)數(shù)字分配授權(quán)(Internet assigned number authority,IANA)的認(rèn)可[5]。
③發(fā)送序列號(hào)NS:發(fā)送方每發(fā)送一幀數(shù)據(jù),發(fā)送序列號(hào)就自動(dòng)加1,并記錄發(fā)送幀的個(gè)數(shù),此值在初創(chuàng)建或重新創(chuàng)建TCP連接時(shí)初始化為0。
④接收序列號(hào)NR:接收方每接收一幀數(shù)據(jù),接收序列號(hào)就自動(dòng)加1,當(dāng)此值被返回給發(fā)送站時(shí),表示所有發(fā)送序列號(hào)小于此值的APDU被認(rèn)可。
⑤t0:連接建立應(yīng)在此時(shí)間范圍內(nèi)完成,否則連接建立超時(shí),默認(rèn)值為30 s。
⑥t1:發(fā)送方發(fā)送一個(gè)I格式或U格式報(bào)文后,應(yīng)在此時(shí)間范圍內(nèi)得到對(duì)方的確認(rèn)信息,否則將重新建立TCP連接,默認(rèn)值為15 s。
⑦t2:接收方在接收到I格式報(bào)文后,若經(jīng)此時(shí)間后沒(méi)有新I格式報(bào)文送來(lái),則接收方要發(fā)送S格式幀對(duì)已收到的I格式幀進(jìn)行確認(rèn),默認(rèn)值為10 s。
⑧t3:在此時(shí)間內(nèi)若沒(méi)有收到任何格式的數(shù)據(jù),則應(yīng)向?qū)Ψ桨l(fā)送測(cè)試鏈路幀。在接收到任一種格式的數(shù)據(jù)后,復(fù)位此時(shí)間值,默認(rèn)值為20 s。
⑨k:在某一特定時(shí)間內(nèi),若未被確認(rèn)的連續(xù)編號(hào)的I格式幀的個(gè)數(shù)達(dá)到此數(shù)值時(shí),發(fā)送方停止發(fā)送,默認(rèn)值為12個(gè)APDU,取值范圍為1~32767個(gè)APDU。
⑩w:接收方在收到I格式后應(yīng)盡快進(jìn)行確認(rèn),104規(guī)約規(guī)定最晚在接收到w個(gè)I格式幀后必須進(jìn)行確認(rèn),默認(rèn)值為8個(gè)APDU,取值范圍為1~32767個(gè)APDU。
IEC 60870-5-104規(guī)約既規(guī)定了數(shù)據(jù)格式,又規(guī)定了數(shù)據(jù)收發(fā)規(guī)則,保證數(shù)據(jù)的可靠傳輸,這些規(guī)則和要求是104規(guī)約實(shí)現(xiàn)的依據(jù)。104規(guī)約是建立在TCP協(xié)議基礎(chǔ)上的。TCP協(xié)議是面向連接的可靠傳輸協(xié)議,具有完備的編號(hào)系統(tǒng)、差錯(cuò)控制、流量控制和擁塞控制等機(jī)制,以保證數(shù)據(jù)傳輸?shù)目煽啃裕?]。因此,在規(guī)約實(shí)現(xiàn)時(shí),可以充分利用這些控制機(jī)制來(lái)提高信息的傳輸效率和準(zhǔn)確性。104規(guī)約定義的功能較多,可根據(jù)實(shí)際需要在實(shí)現(xiàn)時(shí)予以裁減。規(guī)約的主體功能實(shí)現(xiàn)主要包括以下幾個(gè)方面的內(nèi)容。
3.2.1 連接初始化
連接初始化步驟如下。
①連接建立。104規(guī)約規(guī)定發(fā)送數(shù)據(jù)前必須先建立連接,連接由控制站建立。若所有站都是控制站,則選擇其中的一個(gè)建立??刂普鞠蚓W(wǎng)絡(luò)發(fā)送主動(dòng)連接請(qǐng)求,若被控站監(jiān)聽(tīng)到此請(qǐng)求,則連接建立;否則控制站將反復(fù)發(fā)送此連接請(qǐng)求,直到被控站返回,被動(dòng)打開(kāi)連接請(qǐng)求。監(jiān)聽(tīng)到控制站連接請(qǐng)求后,建立連接。
②連接重置。在連接建立后,如果出現(xiàn)連接故障,控制站可以重置連接??刂普臼紫劝l(fā)出重置命令,被控站確認(rèn)并發(fā)出主動(dòng)關(guān)閉連接請(qǐng)求,主控站確認(rèn)并發(fā)送被動(dòng)關(guān)閉連接請(qǐng)求,兩站之間連接被釋放。經(jīng)過(guò)一段時(shí)間(即t0)后,開(kāi)始建立新連接操作。
③連接關(guān)閉??刂普竞捅豢卣径伎梢蕴岢鲠尫胚B接的請(qǐng)求。控制/被控站發(fā)出主動(dòng)關(guān)閉連接請(qǐng)求,被控/控制站確認(rèn)并發(fā)送被動(dòng)關(guān)閉連接請(qǐng)求,控制/被控站對(duì)這個(gè)被動(dòng)關(guān)閉請(qǐng)求作出確認(rèn)后,連接被釋放。
④傳輸控制。TCP邏輯鏈路成功建立后,控制站必須利用U格式幀中的STARTDT和STOPDT位來(lái)控制被控站的數(shù)據(jù)傳輸,否則被控站不會(huì)發(fā)送任何數(shù)據(jù)(未編號(hào)的控制功能除外);同時(shí),通信雙方要一直監(jiān)視鏈路,使得當(dāng)鏈路故障時(shí),能夠再次發(fā)送連接請(qǐng)求重新建立連接。主站發(fā)送開(kāi)始或結(jié)束控制報(bào)文,當(dāng)子站正確應(yīng)答此報(bào)文后,即可以開(kāi)始或結(jié)束數(shù)據(jù)傳輸過(guò)程。
3.2.2 數(shù)據(jù)上傳
數(shù)據(jù)上傳主要包括以下幾個(gè)方面。
①事件主動(dòng)上傳。104規(guī)約采用的是平衡傳輸方式,當(dāng)子站檢測(cè)到突發(fā)事件后,應(yīng)主動(dòng)上傳事件信息,如變位遙信、帶時(shí)標(biāo)的變位遙信等。子站主動(dòng)上傳,主站要予以確認(rèn)。
②循環(huán)上傳。對(duì)于電壓、電流等模擬量數(shù)據(jù),其值是連續(xù)變化的,要在一定的時(shí)限內(nèi)以遙測(cè)幀的形式循環(huán)上傳。子站上傳,主站確認(rèn)。
③召喚上傳。當(dāng)主站需要某類(lèi)信息時(shí),發(fā)送相應(yīng)的召喚命令,子站根據(jù)主站的要求發(fā)送相應(yīng)的數(shù)據(jù)包。一般在連接建立、時(shí)鐘同步之后,主站會(huì)發(fā)送總召喚命令;子站根據(jù)總召喚命令發(fā)送相應(yīng)的全部信息。上傳完一種類(lèi)型的數(shù)據(jù)后,主站要進(jìn)行確認(rèn)。
④傳輸確認(rèn)。如果數(shù)據(jù)只在一個(gè)方向傳輸,就要在另一個(gè)方向發(fā)送S格式幀,認(rèn)可已經(jīng)發(fā)送的APDU,否則已經(jīng)傳送的數(shù)據(jù)無(wú)效。
3.2.3 主站遙控
遙控命令用于遠(yuǎn)程控制子站的執(zhí)行機(jī)構(gòu),以完成相應(yīng)操作。主站發(fā)出遙控預(yù)置命令,由子站進(jìn)行返校確認(rèn);主站在接收到返校幀后,發(fā)送遙控執(zhí)行命令,由子站執(zhí)行并返回執(zhí)行確認(rèn)幀;執(zhí)行完成后再發(fā)送執(zhí)行完成幀,從而完成一個(gè)遙控過(guò)程。
3.2.4 時(shí)鐘同步和鏈路測(cè)試
①時(shí)鐘同步。在最大網(wǎng)絡(luò)延遲小于規(guī)約要求的時(shí)鐘精度的情況下,應(yīng)該進(jìn)行時(shí)鐘同步,如果不進(jìn)行同步,帶時(shí)鐘信息的數(shù)據(jù)中,時(shí)間信息就變得沒(méi)有意義。首先主站發(fā)送時(shí)間同步命令,子站在接收后更新時(shí)鐘,并生成時(shí)鐘報(bào)文發(fā)送給主站,用以確認(rèn);主站確認(rèn)后即完成同步。系統(tǒng)初始化時(shí)要進(jìn)行同步,且以后每隔一定的時(shí)間要再進(jìn)行同步操作。
②鏈路測(cè)試。如果連接建立但沒(méi)有使用,或在規(guī)定時(shí)間間隔內(nèi)沒(méi)有數(shù)據(jù)傳輸,就要發(fā)送測(cè)試幀,并在兩個(gè)方向上進(jìn)行周期性測(cè)試。
除以上所述功能外,用戶(hù)還可根據(jù)需要,添加文件傳輸、參數(shù)裝載、累積量傳輸?shù)裙δ?,具體細(xì)節(jié)參考文獻(xiàn)[5]。
采用工控機(jī)作為104規(guī)約網(wǎng)絡(luò)傳輸系統(tǒng)中的被控站和現(xiàn)場(chǎng)總線(xiàn)系統(tǒng)中的主控制器。下位機(jī)的具體任務(wù)流程與104規(guī)約的應(yīng)用場(chǎng)合有關(guān),不同場(chǎng)合有不同的信息關(guān)注點(diǎn),因此其任務(wù)內(nèi)容也會(huì)有差異。但總體說(shuō)來(lái),104規(guī)約的實(shí)施內(nèi)容主要包含以下幾個(gè)步驟。
①建立TCP連接。
②請(qǐng)求數(shù)據(jù)通信。TCP連接建立后,要啟動(dòng)鏈路才能夠開(kāi)始I格式的數(shù)據(jù)傳輸,否則鏈路上只能傳輸U(kuò)格式的數(shù)據(jù)。
③對(duì)時(shí)。若將要傳輸?shù)臄?shù)據(jù)需時(shí)間信息,則應(yīng)先同步各個(gè)站點(diǎn)之間的時(shí)鐘,否則數(shù)據(jù)包中的時(shí)標(biāo)信息對(duì)控制站來(lái)說(shuō)是無(wú)意義的。
④總召喚。一般系統(tǒng)啟動(dòng)后要先收集子站上所有的信息,如各線(xiàn)路的開(kāi)合狀態(tài)、電流電壓值等,這時(shí)控制站就需要進(jìn)行一次總召喚操作,將子站的全部狀態(tài)信息收集一次。
⑤一般數(shù)據(jù)傳送。完成以上幾步后,控制站開(kāi)始調(diào)度各個(gè)被控站點(diǎn)的事件主動(dòng)上傳、一般遙信/遙測(cè)數(shù)據(jù)上傳以及遙控?cái)?shù)據(jù)傳輸?shù)炔僮鳌?/p>
需要注意的是:鏈路測(cè)試、計(jì)時(shí)程序、故障診斷等輔助程序是與以上過(guò)程并行執(zhí)行的,無(wú)論哪個(gè)環(huán)節(jié)出現(xiàn)鏈路中斷、計(jì)時(shí)超時(shí)等問(wèn)題,系統(tǒng)都會(huì)調(diào)用相應(yīng)的關(guān)閉連接、重置連接、鏈路測(cè)試、單向確認(rèn)等子程序,以及時(shí)處理這些問(wèn)題,確保系統(tǒng)的正常運(yùn)行。
⑥斷開(kāi)或重置連接。TCP鏈路使用完畢后要斷開(kāi)連接,若通信過(guò)程中TCP鏈路出現(xiàn)故障,則要根據(jù)實(shí)際要求關(guān)閉或重置鏈路。
試驗(yàn)和應(yīng)用證明,本文所述的基于工業(yè)以太網(wǎng)技術(shù)、采用IEC 60870-5-104規(guī)約的電力監(jiān)控系統(tǒng)[10-14]靈活高效,能夠很好地完成煤礦電力監(jiān)控系統(tǒng)所要求的全部功能。與傳統(tǒng)的采用現(xiàn)場(chǎng)總線(xiàn)技術(shù)、Modbus協(xié)議[15-16]、CDT規(guī)約等半雙工或不平衡傳輸協(xié)議的監(jiān)控系統(tǒng)相比,該監(jiān)控系統(tǒng)具有很大的效率優(yōu)勢(shì)。在當(dāng)前一定時(shí)期內(nèi),系統(tǒng)還可與IEC 61850規(guī)約系統(tǒng)配合使用,共同構(gòu)建大型電力監(jiān)控系統(tǒng)。
[1]張勝,王健,賀春,等.IEC 60870-5系列配套標(biāo)準(zhǔn)應(yīng)用探討[J].電力系統(tǒng)保護(hù)與控制,2009,37(11):99-105.
[2]馮煥霞,楊俊華,鄭儉華,等.IEC 60870-5-104協(xié)議的實(shí)時(shí)性能分析[J].華東電力,2009,37(4):577 -581.
[3]黃金民.IEC60870-5-104協(xié)議及其模擬器的研究與實(shí)現(xiàn)[D].廣州:華南理工大學(xué),2010.
[4]中華人民共和國(guó)國(guó)家經(jīng)濟(jì)貿(mào)易委員會(huì).DL/T634·5101-2002/IEC 60870-5-101[S].北京:中國(guó)電力出版社,2003.
[5]中華人民共和國(guó)國(guó)家能源局.DL/T634·5104-2009/IEC 60870-5-104[S].北京:中國(guó)電力出版社,2009.
[6]趙淵,沈智鍵.基于TCP/IP的IEC 60870-5-104遠(yuǎn)動(dòng)規(guī)約在電力系統(tǒng)中的應(yīng)用[J].電網(wǎng)技術(shù),2003,27(10):56 -71.
[7]路偉逢,吳峰.礦井電力監(jiān)控管理系統(tǒng)[J].煤炭技術(shù),2009,28(2):188 -189.
[8]Forouzan B A.TCP/IP協(xié)議族[M].王海,張娟,朱曉陽(yáng),譯.北京:清華大學(xué)出版社,2011:368-430.
[9]Scaglia S.嵌入式 Internet TCP/IP基礎(chǔ)、實(shí)現(xiàn)及應(yīng)用[M].潘琢金,徐蕾,拱長(zhǎng)青,等,譯.北京:北京航空航天大學(xué)出版社,2008:20-415.
[10]焦海波,劉健康.嵌入式網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)—基于Atmel ARM7系列[M].北京:北京航空航天大學(xué)出版社,2008:132-285,355-425.
[11]任泰明.TCP/IP網(wǎng)絡(luò)編程[M].北京:人民郵電出版社,2009:22-314.
[12]王久鵬,尚春陽(yáng).ZigBee和GPRS技術(shù)在無(wú)線(xiàn)監(jiān)控系統(tǒng)中的應(yīng)用[J].電訊技術(shù),2008,48(4):331 -332.
[13]張勇,侯立剛,肖炎良,等.工控組態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì)[J].自動(dòng)化儀表,2011,32(12):28-31.
[14]李冰.地鐵綜合監(jiān)控系統(tǒng)中的數(shù)據(jù)轉(zhuǎn)發(fā)研究[J].自動(dòng)化與儀表,2011(6):35-37.
[15]王成多,方祥,武素蓮.基于Modbus-RTU協(xié)議的現(xiàn)場(chǎng)總線(xiàn)局域網(wǎng)在智能電器中的應(yīng)用[J].電氣制造,2007(12):72-75.
[16]董立君,劉書(shū)偉,侯逸青.VB基于Modbus規(guī)約的串口通信[J].工業(yè)控制計(jì)算機(jī),2006,19(8):8 -10.