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