廣東某鉛鋅礦運轉(zhuǎn)工區(qū)的空氣壓縮機組是采礦生產(chǎn)中的關(guān)鍵設(shè)備,,共有六臺進口的英格索蘭CENTAC空氣壓縮機,它的運行穩(wěn)定與否直接關(guān)系到整個礦區(qū)的安全生產(chǎn)和經(jīng)濟效益,。
原上位機監(jiān)控軟件為英格索蘭公司的CEM2.52,,由于其數(shù)據(jù)處理量大,數(shù)據(jù)更新速度慢,;并且軟件必須運行在Windows95英文版操作平臺上,,操作人員很難看懂英文數(shù)據(jù),軟件版本也無法升級,;另外,,上位機的報警功能失效,遠程操作與管理功能無法實現(xiàn),,造成操作人員無法及時發(fā)現(xiàn)問題,,處理突發(fā)事件。為了解決上述存在的問題,,提高生產(chǎn)自動化程度,,決定對空氣壓縮機組原有的監(jiān)控系統(tǒng)進行改造??刂葡到y(tǒng)間的通訊是改造過程中的難點,,本文介紹了采用 Modbus通訊協(xié)議實現(xiàn)上述通訊的方法,采用力控組態(tài)軟件開發(fā)了空氣壓縮機監(jiān)控系統(tǒng),,實現(xiàn)了空氣壓縮機組的智能化控制,,使得空氣壓縮機運轉(zhuǎn)穩(wěn)定、可靠,、精度高,、維護方便,而且保證了礦區(qū)的安全生產(chǎn),,具有直接的經(jīng)濟效益,。
Modbus通訊協(xié)議
1.1協(xié)議
Modbus協(xié)議是由MODICON公司為其控制器設(shè)計的一種可靠而有效的工業(yè)控制系統(tǒng)通信協(xié)議。從功能上看,,可以認(rèn)為是一種現(xiàn)場總線[1],。 Modbus協(xié)議定義了消息域格式和內(nèi)容的公共格式,使控制器能認(rèn)識和使用消息結(jié)構(gòu),,而無需考慮通信網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),,它描述了一個控制器訪問其它設(shè)備的過程。當(dāng)采用Modbus協(xié)議通信時,此協(xié)議規(guī)定每個控制器需要知道自己的設(shè)備地址,,識別按地址發(fā)來的消息,,如何響應(yīng)來自其它設(shè)備的請求,,如何偵測錯誤并記錄,。其數(shù)據(jù)通訊采用主—從方式,主機只能有1臺,,每個從機都有指定的地址,,地址范圍在0~247之間(其中0為廣播地址),只有主機具有主動權(quán),,從機只能對主機發(fā)送的命令作出響應(yīng),。當(dāng)主機端發(fā)出數(shù)據(jù)請求消息(查詢)時,從機端接收到正確消息后就可以發(fā)送數(shù)據(jù)到主機端以響應(yīng)請求,;主機端也可以直接發(fā)消息修改從機端的數(shù)據(jù),,實現(xiàn)讀和寫。查詢—回應(yīng)周期如圖1,。如果采用廣播方式(地址為0)查詢,,從機不作任何回應(yīng)。
1.2信息塊格式
Modbus通訊時主機發(fā)出的指令字符串的通常格式如表1,。
從機地址:主機指明的接收命令的從機地址,。
功能碼:功能碼決定本次通訊要求從機執(zhí)行的動作,功能碼占1個字節(jié),,MODBUS可能的功能代碼范圍是十進制的1~255,。其中有些代碼適用于所有的控制器,有些是針對某種MODICON控制器,,有些是為用戶保留或備用,。表2為Modbus協(xié)議規(guī)定的標(biāo)準(zhǔn)功能碼,某些設(shè)備的Modbus協(xié)議只兼容其中的一部分功能碼,,表中的功能碼為16進制數(shù),。
數(shù)據(jù)起始地址:通訊時讀出、寫入數(shù)據(jù)的起始地址,。Modbus有多種批量數(shù)據(jù)操作功能碼,,可同時讀出或?qū)懭攵鄠€具有連續(xù)地址的數(shù)據(jù)。數(shù)據(jù)起始地址占用2個字節(jié),。
數(shù)據(jù)量:命令中進行讀出或?qū)懭氲臄?shù)據(jù)數(shù)量,,這些數(shù)據(jù)從起始地址開始連續(xù)地址排列,在對模擬量進行操作時,,每個數(shù)據(jù)具有2字節(jié),;在對數(shù)字量進行操作時每8個數(shù)據(jù)為1個字節(jié)。數(shù)據(jù)量占用2個字節(jié),。
1.3數(shù)據(jù)格式
Modbus通訊協(xié)議規(guī)定了2種通訊方式,。RTU(REMOTE?TERMINAL?UNIT)方式通訊采用8位字節(jié)的二進制數(shù)據(jù)通訊,,數(shù)據(jù)校驗采用 CRC循環(huán)冗余校驗,通訊速度較快,;ASCII方式采用7位ASCII碼進行通訊,,數(shù)據(jù)校驗采用LRC邏輯冗余校驗,通訊速率較慢,。在一個通訊系統(tǒng)中,,只能選用一種通訊方式,兩種方式不能并用,。為了減少網(wǎng)絡(luò)數(shù)據(jù)傳輸量,,在我們的應(yīng)用系統(tǒng)中一般使用RTU通訊方式。
2 系統(tǒng)的硬件組成
下位監(jiān)控站采用六個英格索蘭單片機對六臺空氣壓縮機進行控制,,包括對壓力,、振動、溫度,,油溫,、油壓等參數(shù)的監(jiān)控,每個單片機外接一個通用通訊模塊,,上位監(jiān)控站采用工控機,,由于現(xiàn)場控制站與工控機相距60m左右,使用RS485/RS232?轉(zhuǎn)換器,,轉(zhuǎn)換器與現(xiàn)場控制站采用RS485總線,,工控機與轉(zhuǎn)換器之間采用RS232總線,這樣既解決了傳輸距離過遠而無法連接問題,,也提高了系統(tǒng)的抗干擾能力,。其硬件組成Modbus通訊網(wǎng)絡(luò)如圖2所示。軟件平臺采用WindowsXP,,選用三維科技有限公司的力控組態(tài)軟件,。
3 力控的I/O驅(qū)動配置
在使用力控軟件進行組態(tài)時,I/O設(shè)備驅(qū)動配置為:采用標(biāo)準(zhǔn)的Modbus,,選RTU串行口通訊方式,,按設(shè)備地址從01—06匹配六臺現(xiàn)場控制機,數(shù)據(jù)更新周期為500毫秒,,超時時間為8秒,,使用串口(RS232/422/485)通訊,COM1端口設(shè)置與現(xiàn)場控制機的端口參數(shù)設(shè)置一樣為 9600.8.無.1
4 通訊過程
Modbus協(xié)議通訊時主機首先向從機發(fā)送通訊請求命令字符串,,從機接收到命令字符串后,,根據(jù)命令字符串中的命令碼向主機作出相應(yīng)的回答,完成一次通訊,整個的網(wǎng)絡(luò)通訊都是由主機進行調(diào)度,。下面舉例說明04和05功能碼實現(xiàn)模擬量數(shù)據(jù)讀取和遠程操作功能的通訊過程[2],。
例1:假定主機要求讀取01從機的系統(tǒng)壓力數(shù)值時,主機將發(fā)送如表3所示的通訊請求命令字符串,,在英格索蘭單片機中系統(tǒng)壓力數(shù)據(jù)起始地址為十六進制代碼0BBE(Modbus協(xié)議規(guī)定通訊字符串中的地址比實際地址小“1”),,正常情況下從機回信字符串如表4。
從機地址即01號機的設(shè)備地址,,數(shù)據(jù)量0002表示存放系統(tǒng)壓力數(shù)值有兩個寄存器,,該位占兩個字節(jié),。
英格索蘭單片機是一個32位浮點數(shù)處理器,,數(shù)據(jù)“42DCD4C6”經(jīng)過IEEE32位浮點數(shù)轉(zhuǎn)換后得出系統(tǒng)壓力為110.4156psi。
例2:假定主機要求遠程啟動01從機,,主機將發(fā)送如表5所示的通訊請求命令字符串,,在英格索蘭單片機中遠程啟動數(shù)據(jù)起始地址為十六進制代碼00E0,正常情況下從機回信字符串如表6,。
從機回信的字符串與主機發(fā)送的通訊請求命令字符串應(yīng)該是同樣的,,數(shù)據(jù)“FF00”迫使01從機的遠程啟動繼電器線圈打開,數(shù)據(jù)“0000”迫使01從機的遠程啟動繼電器線圈關(guān)閉,。
5 結(jié)束語
利用Modbus協(xié)議實現(xiàn)了礦區(qū)空氣壓縮機監(jiān)控系統(tǒng)中的上位工控機與下位英格索蘭通用通訊模塊的數(shù)據(jù)通訊,,開發(fā)了空氣壓縮機監(jiān)控系統(tǒng)。運轉(zhuǎn)兩個多月來的情況表明,,該系統(tǒng)運行可靠,,維護方便,監(jiān)控過程顯示形象直觀,,為礦區(qū)運轉(zhuǎn)工區(qū)最終實現(xiàn)“無人值班,,少人值守”的目標(biāo)奠定了基礎(chǔ)。