童健
(浙江杭鋼動(dòng)力有限公司,浙江杭州310022)
基于S7-200的Modbus通訊過程容錯(cuò)性提高方法
童健
(浙江杭鋼動(dòng)力有限公司,浙江杭州310022)
采用西門子S7-200實(shí)現(xiàn)iFIX上位機(jī)同英格索蘭氮?dú)馔钙綑C(jī)的數(shù)據(jù)通訊,通過對(duì)數(shù)據(jù)包通訊狀態(tài)的監(jiān)控,判斷氮透是否正常運(yùn)行,跳過處于非工作狀態(tài)的氮透數(shù)據(jù)包請(qǐng)求,解決了因氮透停止運(yùn)行導(dǎo)致的數(shù)據(jù)讀取異常現(xiàn)象,提高了通訊過程容錯(cuò)性。
數(shù)據(jù)通訊;監(jiān)控;容錯(cuò)性
隨著工業(yè)通訊技術(shù)的不斷發(fā)展,在工控領(lǐng)域,儀器儀表之間以總線通訊的方式實(shí)現(xiàn)信息傳遞成為越來越普遍的做法。其原因在于現(xiàn)場(chǎng)總線通訊技術(shù)改變了傳統(tǒng)模擬信號(hào)采集中,一對(duì)一的采集方式,實(shí)現(xiàn)一對(duì)多、雙向的信號(hào)傳遞過程,在通訊效率、抗干擾能力上遠(yuǎn)強(qiáng)于傳統(tǒng)的模擬信號(hào)傳遞方式。然而,在實(shí)際的現(xiàn)場(chǎng)總線通訊過程中,總線上某通訊對(duì)象的異常狀況可能會(huì)影響總線上信號(hào)傳遞過程,降低通訊效率甚至造成通訊中斷。
本文針對(duì)iFIX上位機(jī)與英格索蘭氮?dú)馔钙綑C(jī)之間采用Modbus現(xiàn)場(chǎng)總線方式通訊過程中出現(xiàn)的通訊故障問題,提出了一種新的通訊模式,徹底解決了通訊過程中存在的故障,提高系統(tǒng)運(yùn)行的穩(wěn)定性。
iFIX組態(tài)軟件自帶Modbus驅(qū)動(dòng)接口。英格索蘭氮透支持基于RS485的Modbus通訊方式。在工控機(jī)上安裝一塊RS485通訊卡,即可實(shí)現(xiàn)iFIX組態(tài)軟件與英格索蘭氮透的數(shù)據(jù)通訊。通訊結(jié)構(gòu)圖如圖1所示。
圖1 通訊結(jié)構(gòu)圖
筆者所在單位原一期氮透項(xiàng)目只有1#、2#2臺(tái)氮壓機(jī),即采用以上通訊方式,實(shí)施方便,數(shù)據(jù)采集、通訊正常。二期又上了2臺(tái)氮透,還是采用該通訊模式進(jìn)行數(shù)據(jù)的采集監(jiān)控??呻S后,監(jiān)控計(jì)算機(jī)采集的數(shù)據(jù)經(jīng)常不更新,刷新時(shí)間很長,嚴(yán)重影響監(jiān)控系統(tǒng)的實(shí)時(shí)性。
通過對(duì)數(shù)據(jù)采集過程的分析,我們發(fā)現(xiàn)由于每個(gè)Modbus數(shù)據(jù)包只能讀取連續(xù)地址的數(shù)據(jù),而每個(gè)數(shù)據(jù)包最長只能讀取128個(gè)字節(jié)數(shù)據(jù)。因此,如果需要讀取地址40001、40130的數(shù)據(jù),需要分成兩個(gè)數(shù)據(jù)包讀取。本系統(tǒng)中,為了讀取一臺(tái)氮透中AI/ AO/DI/DO的數(shù)據(jù),需要12個(gè)數(shù)據(jù)包,四臺(tái)氮透共需要48個(gè)數(shù)據(jù)包。每個(gè)數(shù)據(jù)包的發(fā)送與接收時(shí)間約為0.1 s,故完成4臺(tái)氮透的所有數(shù)據(jù)的采集過程,約需要4.8 s時(shí)間。
然而,當(dāng)其中有一臺(tái)氮透斷電(處于備機(jī)狀態(tài))時(shí),iFIX所發(fā)出的請(qǐng)求包無法獲得回應(yīng),在iFIX的Modbus通訊機(jī)制中,數(shù)據(jù)包無法獲得回應(yīng)時(shí),每1秒重復(fù)發(fā)生5次,還沒有獲得回應(yīng),則跳轉(zhuǎn)至下一個(gè)數(shù)據(jù)包。因此,如果有一臺(tái)氮透斷電沒有工作,則該氮透的12個(gè)數(shù)據(jù)包均需要重復(fù)發(fā)送5次,耗時(shí)60 s,整個(gè)數(shù)據(jù)采集循環(huán)周期為63.6 s。兩臺(tái)氮透沒有工作,則循環(huán)周期為122.4 s。該情況導(dǎo)致正常運(yùn)行的氮透在上位機(jī)上長時(shí)間無法獲取數(shù)據(jù),影響上位機(jī)系統(tǒng)對(duì)氮透的監(jiān)控進(jìn)程,進(jìn)而影響正常的生產(chǎn)。
以上的分析與實(shí)際情況相符。因?yàn)橐黄跁r(shí)二臺(tái)氮透(一臺(tái)低壓、一臺(tái)中壓)均長期處于運(yùn)行狀態(tài),不存在備機(jī)的通訊等待問題。而二期后,有了備用機(jī)組,當(dāng)備用機(jī)組未通電時(shí),即發(fā)生了上述的數(shù)據(jù)長時(shí)間不刷新的現(xiàn)象,備用機(jī)組越多,該現(xiàn)象越明顯。
為了在氮透運(yùn)行臺(tái)數(shù)發(fā)生變化時(shí),均能夠保證iFIX上位機(jī)對(duì)氮透的數(shù)據(jù)采集速度,擬采用西門子S7-200系列PLC與氮透實(shí)現(xiàn)通訊,利用S7-200靈活的數(shù)據(jù)通訊功能,解決同氮透通訊中存在的問題,實(shí)現(xiàn)穩(wěn)定、快速通訊。
采用S7-200實(shí)現(xiàn)iFIX同氮透的通訊結(jié)構(gòu)圖如圖2所示。
圖2 利用S7-200通訊結(jié)構(gòu)圖
S7-200的CPU自帶1~2個(gè)RS485通訊端口,默認(rèn)支持PPI通訊協(xié)議。同時(shí),通過自由編程,可支持任何基于RS485主從通訊模式的通訊協(xié)議。利用該通訊口實(shí)現(xiàn)同氮透之間基于RS485的Modbus通訊,采集氮透的實(shí)時(shí)運(yùn)行數(shù)據(jù)。再通過以太網(wǎng),實(shí)現(xiàn)iFIX上位機(jī)同S7-200的通訊,從S7-200讀取所有氮透的運(yùn)行數(shù)據(jù),實(shí)現(xiàn)上位機(jī)對(duì)氮透系統(tǒng)的數(shù)據(jù)監(jiān)控功能。S7-200 Modbus通訊初始化程序如圖3。
圖3 S7-200 Modbus通訊初始化程序圖
針對(duì)于通訊過程由于某臺(tái)氮透斷電影響其他氮透的數(shù)據(jù)讀取速度的問題,S7-200的通訊過程采用以下方式解決:
(1)每個(gè)數(shù)據(jù)包分別設(shè)置標(biāo)示符。每組氮透數(shù)據(jù)包對(duì)應(yīng)的標(biāo)示符表如表1。
表1 氮透數(shù)據(jù)包對(duì)應(yīng)的標(biāo)示符
(2)程序?qū)崟r(shí)監(jiān)控?cái)?shù)據(jù)包發(fā)送與接收成功位“Done”。當(dāng)檢測(cè)到“101Done”位為1,表示101數(shù)據(jù)包發(fā)送與接收成功,繼續(xù)執(zhí)行102數(shù)據(jù)包的發(fā)送。按此順序執(zhí)行所有數(shù)據(jù)包的發(fā)送過程。
(3)程序試試監(jiān)控?cái)?shù)據(jù)包發(fā)送與接收失敗位“Error”。當(dāng)程序檢測(cè)到每臺(tái)氮透第一個(gè)數(shù)據(jù)包發(fā)送失敗時(shí),直接跳轉(zhuǎn)至發(fā)送下一臺(tái)氮透數(shù)據(jù)包。
程序運(yùn)行流程圖如圖4所示。
程序?qū)崿F(xiàn)部分代碼分?jǐn)?shù)據(jù)包順序發(fā)送代碼和通訊故障跳轉(zhuǎn)代碼兩部分。因篇幅所限,不在此詳列。
經(jīng)過測(cè)試,采用S7-200與英格索蘭氮透通訊,4臺(tái)氮透全部正常運(yùn)行時(shí),數(shù)據(jù)采集周期為4.8 s。3臺(tái)氮透運(yùn)行時(shí),數(shù)據(jù)采集周期為3.7 s。2臺(tái)氮透運(yùn)行時(shí),數(shù)據(jù)采集周期為2.6 s。實(shí)踐證明,在該模式下運(yùn)行,氮透的啟動(dòng)或者停止,對(duì)上位機(jī)的數(shù)據(jù)采集過程沒有任何影響,提高了數(shù)據(jù)通訊過程容錯(cuò)性。
Improvement Method of Modbus Communication Process Fault Tolerance Based on S7-200
TONG Jian
(Power Co.,Ltd.,Hangzhou Iron and Steel Group Co.,Hangzhou,Zhejiang 310022,China)
Siemens S7-200 is adopted to realize data communication of iFIX upper computer and Ingersoll Rand nitrogen turbine.By monitoring the state of the data packet communication it can determine whether the nitrogen turbine is in normal operation or not. The packet request of the nitrogen turbine in the non-working state can be ignored.It solves datareadabnormalphenomenonduetothenitrogenturbine’soutageandimproves communication process fault tolerance.
data communication;monitor;fault tolerance
TN919
B
1006-6764(2013)07-0081-03
2013-03-15
童?。?974-),男,1994年7月畢業(yè)于本溪冶金高等專科學(xué)校工業(yè)自動(dòng)化儀表,大專學(xué)歷,2013年2月畢業(yè)于浙江大學(xué)遠(yuǎn)程教育學(xué)院電氣工程,本科學(xué)歷,學(xué)士學(xué)位,工程師,現(xiàn)從事儀控自動(dòng)化專業(yè)的技術(shù)管理和氣體廠的設(shè)備管理工作。