趙東升,黃耀,袁孝松
(中廣核研究院有限公司,廣東 深圳 518124)
某電廠TCS側(cè)有專門用于汽機(jī)控制的子組SGC、SLC等,子組由操縱員在DCS側(cè)畫面中進(jìn)行相應(yīng)的投入與退出操作,以實(shí)現(xiàn)對(duì)汽機(jī)的控制。目前,在1號(hào)機(jī)65號(hào)站DCS與TCS通訊中,DCS送TCS的指令脈沖寬度為2秒,但DCS與TCS的最長通訊周期約為3秒,如此可能導(dǎo)致DCS側(cè)發(fā)出的脈沖指令丟失,致使TCS側(cè)無法準(zhǔn)確接收到DCS側(cè)發(fā)出的脈沖指令。指令丟失嚴(yán)重影響通訊的可靠性和準(zhǔn)確性,有可能導(dǎo)致TCS側(cè)接收不到DCS側(cè)的命令而使汽機(jī)的運(yùn)行不受控,影響機(jī)組的穩(wěn)定運(yùn)行。
電廠DCS與TCS通訊采用MODBUS通訊協(xié)議,其為請(qǐng)求應(yīng)答機(jī)制,雙方中需要一方作為MODBUS通信主站,另一方作為從站,主站向從站讀數(shù)據(jù)和寫數(shù)據(jù)的過程為:主站向從站請(qǐng)求讀寫需求,從站響應(yīng)主站請(qǐng)求[1]。
如圖1所示:TCS與DCS之間的通訊互為冗余,TCS側(cè)有兩對(duì)CM104通訊網(wǎng)關(guān);DCS側(cè)也有兩對(duì)COM網(wǎng)關(guān)。冗余功能由雙方共同管理,為并行冗余模式,即在兩條通信鏈路上,數(shù)據(jù)的收發(fā)同時(shí)進(jìn)行,DCS-A網(wǎng)關(guān)COM65A到TCS-A網(wǎng)關(guān)CM6A,DCS-B網(wǎng)關(guān)COM65B到TCS-B網(wǎng)關(guān)CM6B同時(shí)進(jìn)行數(shù)據(jù)收發(fā)。DCS側(cè)網(wǎng)關(guān)為主站,TCS側(cè)網(wǎng)關(guān)為從站。DCS與TCS系統(tǒng)的通訊站各自兼顧各自冗余情況,冗余主站故障時(shí)從站自動(dòng)切換成為主站。
圖1 冗余通訊機(jī)制
電廠 DCS 與 TCS 之間的通訊總共使用了 1、3、5、15、16等功能碼,功能碼1用于DCS讀取TCS送過來的開關(guān)量,一條報(bào)文可以同時(shí)讀取多個(gè)開關(guān)量;功能碼3用于DCS讀取TCS送過來的多個(gè)模擬量,也就是一條報(bào)文可以包含多個(gè)模擬量;功能碼5用于DCS向TCS發(fā)送指令,一條指令一條報(bào)文,并且沒有發(fā)指令的時(shí)候,功能碼5的報(bào)文不循環(huán)發(fā)送的;功能碼15用于DCS向TCS發(fā)送指令,可以一條報(bào)文同時(shí)發(fā)送多個(gè)指令,并且不斷的循環(huán)發(fā)送;功能碼16用于DCS向TCS發(fā)送模擬量指令,可以一條報(bào)文同時(shí)發(fā)送多個(gè)指令,并且不斷的循環(huán)發(fā)送。
通過對(duì)3號(hào)機(jī)組通訊進(jìn)行抓包分析,得到各報(bào)文傳輸時(shí)間:A列通訊周期為2.648秒,B列通訊周期為1.307秒。TCS側(cè)西門子CM模塊默認(rèn)以A列為主,B列為輔。CM6A有延遲,但是不直接影響通訊,也不是鏈路等直接影響通訊的故障,所以通訊仍將以A列為主,即通訊周期為2.648秒。由于1號(hào)機(jī)組與3號(hào)機(jī)組的通訊機(jī)制、通訊設(shè)備均相同,3號(hào)機(jī)組的分析結(jié)果可以作為1號(hào)機(jī)組通訊周期約為3秒的依據(jù)。
DCS與TCS之間每一個(gè)通信點(diǎn)都有一個(gè)固定地址,DCS對(duì)TCS發(fā)送指令脈沖的過程即為DCS中將相應(yīng)地址存儲(chǔ)器中的數(shù)據(jù)寫入TCS中對(duì)應(yīng)地址存儲(chǔ)器的過程。
目前指令脈沖的寬度設(shè)置為2秒,以最長通訊周期為3秒計(jì),指令脈沖丟失過程如圖2所示:
圖2 指令丟失示意圖
假設(shè)T1為最長通訊周期,即T1為3秒,在通訊周期T1中,DCS側(cè)在t0點(diǎn)發(fā)送網(wǎng)絡(luò)報(bào)文,在滯后時(shí)間△t內(nèi)DCS發(fā)出了對(duì)TCS的指令脈沖,即DCS中將相應(yīng)的地址存儲(chǔ)器置“1”并維持2秒。在T1周期內(nèi)指令脈沖是在發(fā)出請(qǐng)求報(bào)文△t之后才到達(dá),所以在T1周期內(nèi)TCS中并不能接收到指令脈沖。當(dāng)0s<△t<1s時(shí),由于脈沖寬度為2秒加滯后時(shí)間△t小于通訊周期3秒,而T1周期從DCS中發(fā)出報(bào)文到接收到TCS側(cè)的應(yīng)答時(shí)間需要3秒,所以當(dāng)T1通訊周期結(jié)束T2開始時(shí),脈沖指令已經(jīng)消失,即相應(yīng)地址存儲(chǔ)器內(nèi)的值已置“0”,如此導(dǎo)致在T2周期內(nèi)TCS側(cè)依然接收不到DCS側(cè)的指令脈沖,致使指令丟失。
目前通訊周期延遲問題還在分析論證階段,短期無法解決,所以將DCS側(cè)指令脈沖寬度設(shè)置為2秒有可能造成指令丟失,將DCS側(cè)的指令脈沖寬度修改為4秒,如此讓脈沖寬度大于MODBUS的通訊周期,這樣不論指令脈沖在何時(shí)出現(xiàn),都可以保證在兩個(gè)通訊周期內(nèi)TCS側(cè)接收到DCS側(cè)指令。修改前后的指令脈沖通訊如圖3和圖4所示:
以上圖4所示,將指令脈沖寬度修改為4秒可以確保DCS側(cè)指令通訊到TCS側(cè),避免了指令的丟失,提高了通訊可靠性。同時(shí),由于只是修改脈沖寬度,對(duì)系統(tǒng)不會(huì)造成其他負(fù)面影響,需要修改指令脈沖寬度的通訊點(diǎn)如表2所示。
圖3 修改前指令脈沖寬度2S通訊示意圖
圖4 修改后指令脈沖寬度4S通訊示意圖
表1 修改指令脈沖寬度通訊點(diǎn)