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