MODBUS 通訊協議在600MW 火電機組DCS 中的應用
摘要:
詳細介紹MODBUS 通訊協議的主要過程,通過DCS 系統與幾種PLC 通訊的實例,介紹了MODBUS通訊接口在內蒙古岱海電廠DCS 中的應用?! ?BR> 關鍵詞:
MODBUS;DCS;通訊
隨著國內600MW發電機組自動化項目的實施,集散控制系統(DCS)在火電廠熱工自動化領域已廣泛使用,在眾多的使用場合,普遍存在DCS與其他專用控制系統混合使用的情況,這些專用控制系統包括PLC、數據采集器和各種智能儀表。這種使用不僅由于DCS設備價格昂貴,更由于數據采集器,PLC等有比DCS更優的分散性、性價比和控制速度等性能,從而構成規模更大、性價比更優的控制系統,若將該混合系統融合成一個整體,使所有監視、控制都在DCS上進行,就涉及DCS與其他專用控制系統的通訊。本文著重介紹內蒙古岱海電廠#1機組使用MODBUS通訊接口實現上述通訊的方法。
控制系統之間的通訊歷來讓人望而生畏,如今值得欣慰的是幾乎所有控制系統都具有MODBUS 通訊接口,使得系統間變得相對簡單。MODBUS是GOULD INC注冊的通訊協議商標,因為它有許多優點而被羅克韋爾(ROCKWELL)、通用電氣(GE) 、西門子(SIEMENS)等國內外公司的產品廣泛采用,作為與主系統(DCS)通訊的主要途徑?! ?BR> 1.串行接口及MODBUS 通訊協議概述
MODBUS 通訊協議規定了2 種通訊方式。RTU(REMOTE TERMINAL UNIT)方式通訊采用8 位字節的二進制數據通訊,數據校驗采用CRC 循環冗余校驗,通訊速度較快;ASCII 方式采用7 位ASCII 碼進行通訊,數據校驗采用LRC 邏輯冗余校驗,通訊速率較慢。在一個通訊系統中,只能選用一種通訊方式,兩種方式不能并用。在我們的應用系統中一般使用RTU 的通訊方式,后面的敘述都是以RTU通訊方式為基礎。MODBUS 通訊協議將通訊的雙方規定為“主站”(MASTER)和“從站”(SLAVE)。每臺從站都有自己的唯一編號,這個編號被稱作從站地址,地址范圍為1-255,通訊時先由主站發出通訊申請指令字符串,指令字符串由從站地址開頭,從站只接受與自己地址相同的指令字符串,然后根據功能碼類型,做出相應的回答,對發送給其他從站的指令字符串則不予理會。
MOSBUS 通訊時主站發出的指令字符串(報文)的通常格式如表1。
從站地址:主站指明的接收命令的從站地址。
功能碼:功能碼決定本次通訊要求從站執行的動作,功能碼占1 個字節,表2 為MODBUS 協議規定的標準功能碼,某些設備的MODBUS 協議只兼容其中的一部分功能碼。
數據起始地址:通訊時讀出、寫入數據的起始地址。MODBUS 有多種批量數據操作功能碼,可同時讀出或寫入多個具有連續地址的數據。數據起始地址占用2 個字節。
數據量:命令中進行讀出或寫入的數據數量,這些數據從起始地址開始連續地址排列,在對模擬量進行操作時,每個數據具有2 字節;在對數字量進行操作時每8 個數據為1 個字節。數據量占用2 字節。
CRC 冗余校驗:MODBUS 通訊協議采用CRC-16 冗余校驗進行通訊錯誤校驗,其校驗方法是將整個通訊字符串(不包括最后兩個校驗字節)的所有字節進行移位并進行異或計算,接收方按同樣的方法對收到的所有字符串進行校驗,并將結果與收到的冗余校驗結果進行比較,若一致則表明收到的字符串正確,否則接收到的字符串有錯誤,所傳輸的數據不會被采用。
MODBUS 通訊雙方以寄存器地址將雙方的數據對應起來,數據類型有數字量、模擬量兩種,寄存器地址分下面四類。
1)內部數字量保持線圈,寄存器地址以1 開頭,地址表示為1XXXX,內部數字量保持線圈(寄存器)可理解為設備的內部數字量中間寄存器,用于存放邏輯運算的中間結果,可讀可寫,與設備的I/O通道無關。
2)外部輸入數字量線圈、繼電器,寄存器地址以2 開頭,寄存器地址表示為2XXXX,外部輸入數字量線圈、繼電器(寄存器),可理解為設備的數字量I/O 通道,每個寄存器和一個固定I/O 通道相對應,寄存器的狀態代表數字量的狀態,可讀可寫。
3)外部輸入模擬量存儲器,寄存器地址以3 開頭,地址表示為3XXXX,外部輸入模擬量存儲器(寄存器) ,可理解為設備的模擬量I/O 通道,每個寄存器和一個固定I/O 通道相對應,寄存器的數值代表模擬量通道的數值,可讀可寫。
4)內部模擬量保持存儲器,寄存器地址以4 開頭,地址表示為4XXXX,內部模擬量保持存儲器(寄存器) 可理解為設備的內部模擬量中間寄存器,用于存放數值運算的中間結果,可讀可寫,與設備的I/O 通道無關?! ?BR> 2. MODBUS的通訊過程
MODBUS是典型的主從式通訊協議,每個通訊網絡中只能有一個主站,從站的數量不能超過255個,通訊時主站首先向從站發送通訊請求命令字符串,從站接收到命令字符串后,根據命令字符串中的命令碼向主站做出相應的回答,完成一次通訊。整個的網絡通訊都是由主站進行調度。下面舉例說明幾種常用功能碼的通訊過程。
例1:假定主站要求17從站返回地址為0020~0056的內部數字量保持線圈的狀態,主站發出的通訊請求命令字符串如表3。
從站地址:標明被讀設備的地址,此例為地址為11。
功能碼:此例為01。
數據起始地址:從站內部數字量保持線圈設定范圍內的任何值,起始地址占2個字節,高位在前。此例為中為0013(MODBUS協議規定通訊字符串中的地址比實際地址小“1”)。
數據量:從起始數據地址開始,欲讀取的連續地址的內部數字量的數量,該位占用2個字節。假定17從站制0020~0056地址的內部保持線圈狀態如表4所示,則正常情況下從站回信字符串如表5。
從站地址和功能碼與主站命令字符串相同。
字節量:所傳數據字節的數量,每個數據字節包含8個數字量保持線圈狀態。字節數量在1~250之間。本例中為5個字節。
數據狀態:0020~0056地址的保持線圈狀態,注意:每個字節中,高地址位在前。
例2:假定主站要求17從站傳回地址為40108-40109的內部模擬量保持存儲器的數值時,主站將發送如表6所示的通訊請求命令字符串,正常情況下從站回信字符串如表7。
數據狀態1:地址為40108的內部模擬量保持存儲器的內容為022B。
數據狀態2:地址為40109的內部模擬量保持存儲器的內容為0000。
例3:假定主站欲將17從站的173地址單元的內部數字量保持寄存器設置成“1”(ON),主站發送通訊請求命令碼字符串如表8,正常情況下從站應答字符串如表9。
數據位(高位):開關狀態值ON=FF/OFF=00。
數據位(低位):一直為00。
DCS與PLC之間通常采用支持MODBUS通訊協議的串行接口通訊方式。RS-232C是一種應用最廣泛的串行通訊接口,在不使用調制解調器(MODEM) 時的通訊距離最遠不超過15m。RS-422/485串行通訊接口在不使用MODEM時的通訊距離為1.2km,同RS-232C的區別只是在接口的電氣規格方面。作為DCS工程師應該了解RS-232C的機械規格,通常規定數據終端設備DTE(Data Terminal Equipment)方的接口為25/9腳針式插座,數據電路終端設備DCE(Data Circuit terminating Equipment)方的接口為25/9腳孔式插頭。RS-232C串行接口最常用的9針的信號定義如表10所示。通訊參數包括通訊波特率、起始位位數、字節位數、停止位位數、奇偶校驗方式等,只有通訊雙方的通訊參數設置相同,才能保證正常通訊。
2.系統簡介
內蒙古岱海發電有限責任公司位于內蒙古自治區烏蘭察布盟涼城縣境內的岱海湖南岸,廠址東距北京市370km,西距呼和浩特市110km,東南距豐鎮市55km,在涼城縣的西南方28km。岱海發電有限公司一期建設工程#1、#2 機組為兩臺600MW 亞臨界參數燃煤發電機組,鍋爐由北京巴布科克· 威爾科克斯有限公司供貨,汽輪機由上海汽輪機廠供貨,發電機由上海電機股份有限公司供貨。
機組主要控制設備采用了西門子公司TELEPERM XP 分散控制系統。每臺機組包括3 個電源柜、15 個系統柜(包括2 個APF 柜,1個擴展柜,1 個CM 通訊柜)、20 個端子接線柜、7 個繼電器柜、1個ETS 機柜、2 個MEH 機柜,3 對冗余的過程站(PU)、1 對冗余的歷史站(SU)、1 個工程師站(ES)、6個操作員站(OT)、1 臺值長站及5 臺打印機等組成。另有公用系統5 個機柜,其中包括1 個電源柜。
機組的其他控制系統較多且控制分散獨立,如數字電液控制系統(DEH)采用西屋公司OVATION 系統,電氣控制系統(FCS)采用國產南京東大金智DCAP-4000M 主控單元,遠程I/O 采用無錫貝爾IDAS-2000 分散式智能數據采集網絡,汽輪機安全控制系統(TSI)所配置的監視檢測儀表是采用美國本特利·內華達公司的3500 系列,其他如鍋爐吹灰,等離子點火,汽輪機旁路系統等PLC 的型號廠家繁多,因此將各系統進行集中監視和控制就成為必然,本工程設計采用了西門子公司的CM104 通訊模件作為DCS 與第三方PLC 或DCS 通訊,接口采用MODBUS 通訊協議。
如圖2所示:鍋爐吹灰(MODICON PLC,組態軟件CONCEPT)、旁路系統(MODICON PLC,組態軟件CONCEPT)、DEH 系統(西屋OVATION,組態軟件OVATION)、FCS(國產通訊管理機)設計中按照廠方要求采用了雙路通訊連接。盡管其他系統控制柜與DCS 控制柜在同一電子間內,但通訊距離均超過15m,也就采用RS-485 遠程通訊方式。DCS 系統通訊模件CM104 作為主站,第三方設備作為從站。每個CM 可以提供6 個9 針RS-232C 串行接口即可同時與6 套PLC 通訊,RS-232C 到RS-485 接口之間的轉換使用PHOENIX 公司的產品。
3.應用實例介紹與分析
TELEPERM XP 與外圍系統(這里統稱為PLC)通訊用的模件處理器CM104,支持MODBUS 協議,工程中按照連接分為4 組共使用了6 個。岱海電廠使用的多種獨立的PLC 及成套的PLC 監控系統需要與DCS 通訊的,如表12 所列。CM104 的控制組態包括硬件及各類輸入輸出組態,在此不作介紹。
DCS 與PLC 的通訊大致可分為兩種情況: 1)當PLC 與DCS 距離在15m 之內時,可將DCS 的CM104與PLC 的CPU 或者通訊模件采用RS-232C 直接連接方式。2)當PLC 與DCS 距離為數十米至1.2km 時,為了保證PLC 與DCS 的通訊效果,CM104 與PLC 之間將采用RS-232C 接口轉化成RS-485/RS-422 接口。我們采用PHOENIX 公司的PSM-EG-RS-232C/RS-485-P/2D 模塊作為RS-232C 轉為RS-485 接口的適配器,其內部跳線設置:RS-485 BUS-END 為ON 即需要終端電阻,DTE/DCE 跳線設置為DCE 即數據電路終端設備方。CTS RTS / 和CTS RTS / 跳線設置為CTS RTS / 即硬件流控制模式。TELEPERM XP系統與PLC、FCS、IDAS 等第三方設備通訊連接概貌如圖1 所示。在岱海電廠設計中所有通訊方式都是采用RS-485 遠程方式。
3.1 鍋爐吹灰及汽機旁路系統
設計中CM104 的MODBUS RS-232C 接口采用標準的9 芯RS-232C 串行接口,經過PHOENIX 公司的PSM-EG-RS-232C/RS-485-P/2D 接口適配器轉為RS-485 接口,鍋爐吹灰廠家自帶ADAM-4520 模塊也是RS-232C 轉為RS-485/RS-422 接口的適配器。將PLC CPU11303 的MODBUS RS-232C 接口轉為RS-485與DCS 通訊。實際使用中通訊經過兩次的接口轉換后連接不上。通過實驗發現兩個廠商接口轉換適配器兼容性差。解決方法為使用同一廠商的適配器(ADAM-4520)后通訊連接正常。PLC 的通訊參數設置:Modbus Slave Address =1,Baud Rate = 9600 ,Data Bit = 8 (RTU 方式),Stop BIT = 1,Parity = Even Parity。由于其PLC 設計未使用冗余配置且理論上也不能實現雙路的通訊連接。
汽機旁路系統采用的PLC 也是MODICON QUANTUM 系列,CPU 434 為冗余配置,每個CPU 有2 個MODBUS RS-232C 接口,可以實現通訊連接的冗余,即每個PLC 各送一路信號進同一個CM104,但由于冗余的CPU 之間并不能根據通訊的中斷故障進行切換,所以實際應用中也不能實現雙路的通訊連接。其接口同樣需要從RS-232C 到RS-485 的轉換, 接口適配器選用了PHOENIX 廠商的PSM-ME-RS-232C/RS-485-P,接口經過兩次轉換但不存在兼容性問題。這再次證明了DCS 與吹灰系統通訊故障的原因。PLC 的通訊參數設置:Modbus SlaveAddress =1 ,Baud Rate = 9600 ,Data Bit= 8 (RTU 方式),Stop BIT = 1 ,Parity = Even Parity。CM104與MODICON PLC通訊連接如圖3。
3.2 數字電液控制系統(DEH)
數字電液控制系統(DEH)采用西屋公司OVATION控制系統。其通訊模件Link Controller Modules(LC:1C31169G02)提供了2個接口:J1口RS-232C為編程接口,J2口RS-485/422為通訊應用接口,設計中同樣采用了RS-485遠程通訊方式,正常施工接線后通訊卻連接不上。經過與OVATION廠家的探討,西屋公司對RS-485和RS-422的接線標準是相同的,即要采用4線制全雙工串行連接。解決方法為選用RS-232C到RS-422的接口轉換適配器,采用4線制全雙工連接后通訊正常。LC模件通訊參數設置:Modbus Slave Address =1 ,Baud Rate =9600 ,Data Bit = 8 (RTU方式) ,Stop BIT = 1 ,Parity= Even Parity。由于其系統沒有配置兩塊LC模件故實際沒有實現雙路的通訊連接。要注意的是OVATION系統不僅要在工程師站做通訊測點的相關組態。其LC模件也需要通過J1編程接口寫入相應的通訊配置文件。CM104通過LC模塊與OVATION系統進行RS-422通訊連接如圖4.
3.3 BENTLY 3500 汽機安全監視系統(TSI)
Bently 3500汽機安全監視系統2套,其MODBUS通訊模塊為通訊網關MODBUS RS-485輸入/輸出模塊(卡件),同DCS的通訊采用一主二從(主方在終端位置)的4線制全雙工接口方式。通訊電纜連接方式如圖5所示。
在此TELEPERM XP的CM104下掛2套Bently 3500 ,故下列參數設置必須相同。Bently 3500系統:Modbus Slave Address 分別為1 ,2。Baud Rate = 19200 ,Data Bit = 8(RTU方式) ,Stop Bit =1 ,Parity = None。其MODBUS RS-485輸入輸出模件內置了終端撥碼開關,因此把RACK2的通訊模塊MODBUS 1接口下撥碼開關RX-TERM為ENABLE即需要終端電阻?!?BR> 3.4 鍋爐等離子點火系統
等離子點火系統采用了西門子S7-300 系列PLC,用CP341 卡作為MODBUS 通訊模塊。CP341 卡有1 個15 針串行接口,支持MODBUS 協議。PLC 通訊參數設置為Modbus Slave Address = 1 ,Baud Rate= 19200 ,Data Bit = 8(RTU 方式) ,Stop Bit = 1 ,Parity = None。主站DCS 的CM104 串口經過RS-232C 到RS-485 接口的轉換后與CP341 通訊不正常, 檢查PHOENIX 的PSM-EG-RS-232C/RS-485-P/ZD 接口轉換適配器,只有數據發送請求指示燈RTS 正常顯示。而從站的CP431 模件的通訊狀態指示只有接收指示燈RxD 正常。通訊線路斷開后,CM104 和CP341 分別連接筆記本電腦,使用MODSIM32 和MODSCAN32 軟件分別模擬仿真通訊的“從站”和“主站”進行診斷,發現數據經過接口適配器轉換后報文格式不正確,導致從站沒有響應而不能給主站返回數據。解決方法:更換其他廠家的RS-232C/RS-485 接口適配器后通訊正常。通訊連接如圖6。
4.實施過程中的注意事項
當連接和組態工作正確無誤后,PLC和DCS會進入正常的數據通訊狀態。這可以從卡件的狀態燈上反應出來。一般卡件上都會有表示錯誤狀態、數據傳送和數據接收的相應指示作為判斷通訊狀態和進行故障診斷的依據。
當通訊不正常時,卡件的狀態指示燈會立即顯示錯誤狀態。此時應先檢查硬件錯誤再檢查軟件錯誤,如通過軟件組態功能塊的診斷信息來查找故障原因。在軟件編程方面,要注意以下兩點:
1)要確保PLC和DCS的通訊速率一致,建議使用9600或19200常用的通訊速率,而且最好不要增加奇偶校驗。
2)要保證通訊數據地址的有效性,如果有“地址錯位”的情況,偏置可以在主站CM104中設置,而部分通訊第三方廠家也具有該功能,這也需要雙方事先協調好。
在硬件方面,要注意以下方面:確保使用屏蔽的ITP電纜,同時注意在接線時一定要正端連接正端,避免接反。在接口適配器的選型上,由于各廠商設計規范不盡相同,盡量使用認可度高、實用效果好的產品;如果通訊經過兩次接口轉換,最好選用同廠商的同型號產品,避免存在兼容性問題?! ?BR> 5.結束語
通訊實施后,在傳輸信號的質量上以及維護上都有了比較明顯的改善,岱海電廠#1機組目前已經投入使用,PLC上所有監視、控制都可以在DCS上進行。通訊的實時性很好,但部分控制信號如發短脈沖指令時(<1秒)在精度上略顯不足。對于DCS項目工程師在控制方面的設計與組態也許不會感到有什么困難,但對于把不同廠家的PLC與DCS連接起來則可能會感到很困難。以上是筆者在內蒙古岱海電廠一期2×600MW機組調試PLC與DCS通訊時的一點總結并具有一定的代表性,希望能給同行提供一些幫助。
文章版權歸西部工控xbgk所有,未經許可不得轉載。