1 引言
現場總線技術是當今自動化領域發展的熱點之一,是實現工業控制網絡化的重要技術。許多自動化公司都開發了多種現場總線技術標準,例如Profibus,LonWorks,Modbus等,Profibus,LonWorks總線功能強,可靠性高,但同時價格也比較昂貴,比較適用于大中型控制系統。而基于RS485接口的Modbus通訊協議較適用于小型控制系統或單機控制系統,為實現低成本,高性能的主從式計算機網絡監控提供了可能。
Modbus協議是MODICON公司開發的開放式現場總線通信協議,它符合OSI標準協議集中數據鏈路層規定的高級數據鏈路控制協議,但做了簡化處理。由于其功能比較完善而且使用簡單,數據易于處理,協議開放,因而在各種智能設備中被廣泛采用。
2 應用背景
圖1 控制系統結構圖
在紙張抄造的過程中,成紙的均勻度取決于纖維在流漿箱中的分散程度和流漿箱唇板開口的均勻度。在車速超過250米/分的紙機上,必須配備氣墊式流漿箱,其主要控制參數是總壓、漿位和漿速/網速比。控制總壓的目的是為了使從流漿箱流送到網上的紙漿流量和流速均勻穩定,控制漿位的目的是為了獲得適當的紙漿流域,以減少橫流和濃度的變化。產生和保持可控的喘流以限制纖維的絮聚。由于流漿箱控制系統為強耦合系統,在總壓調節時會影響漿位,而在漿位調節時又會影響總壓,若處理不當會引起振蕩,或持續性的波動,會嚴重影響抄紙質量,故需要解耦控制。
流漿箱控制系統結構如圖1所示,其中控制器選用ABB AC31 50系列PLC,由于解耦控制算法在上位機中實現,而且對流漿箱控制系統調節的快速性有一定要求,這樣就需要高性能,低成本的通訊總線來完成上位機與PLC的快速數據交換。
ABB AC31 50系列PLC具有兩個串行通訊端口COM1和COM2。COM1具有Modbus、ASCII和Programming三種模式,通常診斷和下載程序用COM1;COM2具有CS31和Modbus兩種模式,現場上位機與PLC通訊時使用COM2的Modbus模式,其最高通訊速度可達187.5K,實際使用時采用了57.6K的通訊速度。
3 Modbus通訊協議介紹
作為現代自控系統中常用的協議之一,Modbus采用主從應答方式,即只有一個設備作為主機能主動發送詢問信息,其它設備都是作為從機響應主機的命令或將所需的信息返回至主機。該協議支持在串行總線上有一個主機和247個從機,每個從機具有唯一的地址。讀取或寫入信息除要求從機地址外,還需要數據寄存器的地址。Modbus協議可使用兩種模式進行通訊:ASCII和RTU,這兩種模式在報文結構、功能命令上是相同的,僅幀信息的表示方法不同而已。它們的區別是:采用RTU模式通訊時,信息是以8位二進制方式傳輸的,而采用ASCII時,信息是以字符為基本單位傳輸的,每個字符都用ASCII碼表示。ASCII的優點是通用性好,讀取容易。但在相同傳輸速率下,RTU 模式比ASCII模式傳輸效率提高一倍。本文將介紹RTU模式通訊的實現方法。
Modbus幀格式由地址、功能碼、數據段、校驗碼組成,數據段內容根據主-從或從-主關系可包括寄存器起始地址、寄存器數、數據位,格式如下:
每一幀數據以至少3.5個字符的間隔時間(T1-T2-T3-T4)標志開始和結束,整個信息幀必須以連續的信息流進行傳輸,從而保證CRC校驗的正確。其中:
地址為8位,從機的有效地址范圍是0-247,其中0是廣播地址。
功能碼為8位,有效編碼為1-255。
數據段可由多組數據組成,主要包括從機要完成功能碼功能所需的附加信息。
CRC為此幀數據的循環冗余校驗碼,用于保證整幀數據傳輸的正確性。
4 上位機與PLC通訊的具體實現
圖2 定時器程序流程
作為Modbus主機的上位機通過Modbus通信協議可以訪問從機ABB AC31 50系列PLC里所有類型的輸入、輸出、內部及常量數據。但是為使上位機更高效地讀取PLC中的數據,需要將要讀取的數據合理安排,這里我們將上位機需要訪問的所有輸入、輸出、內部字或位數據經轉換都在PLC中以一定順序按地址連續地存放在內部字存儲區中,以便上位機每次只用一條讀請求命令讀取此塊內部字存儲區,即可獲取所需的全部PLC數據。這樣可以顯著的提高通訊效率,同時簡化上位機程序。我們將讀請求命令存在 QueryData數組中,如下:
Dim QueryData(1 to 8)As Byte
QueryData(1) = (&H1) ‘PLC地址為1
QueryData(2) = (&H3) ‘功能碼為3,讀取n個數據
QueryData(3) = (&H2E) ‘數據地址為2E60
QueryData(4) = (&H60)
QueryData(5) = (&H0) ‘數據個數為81個
QueryData(6) = (&H51)
QueryData(7) = (&H8D) ‘校驗碼
QueryData(8) = (&H0)
將QueryData數組通過MSComm控件發送給PLC,這樣PLC就會將其所需的全部數據(從PLC地址2E60開始到2EB0結束的81個地址連續的數據)一次返回給上位機。
由于Modbus協議采用主從應答方式,即上位機程序中需要定時或循環發送讀取PLC數據的讀寫請求命令,而PLC對收到的每一條請求命令按協議規則進行回應。如此一應一答循環往復實現數據采集和控制命令的發送。同時為了避免讀寫沖突,要控制每兩條請求命令發送的時間間隔。下面這段程序簡單的說明了讀、寫命令發送是如何控制的:
While (1)
DoEvents
If bNeedToWriteNewData Then
‘寫命令
MSComm1.Output =SetData
TimeDelay (100) ‘延時100毫秒
ReceiveData = MSComm1.Input
bNeedSendNewData = False
Else
‘讀命令
MSComm1.Output = QueryData
TimeDelay (100) ‘延時100毫秒
ReceiveData = MSComm1.Input
buf = ReceiveData
‘處理、轉換
Call PrecessPLCData(buf)
End If
Wend
實際應用中采用定時讀寫的方式,流程如圖2所示。上位機將處理、轉換過的數據存入數據庫,并以動態趨勢和歷史趨勢的形式顯示出來,同時提供報警指示。所有關鍵參數都要獲得相應權限后方可從上位機寫入PLC。
上位機使用Windows2000操作系統,監控程序用VB6.0編寫,這樣可以保證上位機穩定的運行,監控程序通過串口從 ABB AC31 PLC可獲得各現場過程值和參數,也可隨時根據工藝要求對PLC中的參數進行更改設置,從而對生產過程實施有效控制,在更改車速時,系統會自動更改總壓設定值,使漿網速比滿足條件。同時對各種可能出現的故障給出了在線幫助和排查方法,極大的方便了操作工的使用和維護。
5 總結
本控制系統在某紙廠五萬噸生產線中已成功使用,現場運行穩定,壓力、液位曲線非常平穩,控制效果和通訊速度方面令人滿意,已順利通過驗收,也為抄造高品質的紙張提供了有力的保障。Modbus通訊協議以其格式簡單、編程容易、傳輸距離遠、通訊可靠、通訊速率高、設備間連接成本低等優點使得它將能得到更廣泛的應用。