殷蘇民,徐啟祥,鄭昌俊
(江蘇大學(xué) 機械工程學(xué)院,鎮(zhèn)江 212013)
隨著社會的發(fā)展,工廠車間的結(jié)構(gòu)越來越復(fù)雜,由于工廠車間設(shè)備的控制和運行狀況不便于人工現(xiàn)場操作,因此,工廠車間設(shè)備的監(jiān)控系統(tǒng)具有十分重要的意義。本文以退火爐車間為例設(shè)計了一套新型的車間設(shè)備運行狀況監(jiān)控系統(tǒng)。采用RS485總線進行數(shù)據(jù)傳輸,PLC作為信號采集與數(shù)據(jù)存儲的核心,使用Delphi開發(fā)的軟件結(jié)合ACCESS數(shù)據(jù)庫對PLC中的數(shù)據(jù)進行處理。該系統(tǒng)可以隨時打開上位機軟件對退火爐車間設(shè)備的數(shù)據(jù)進行處理、查詢、統(tǒng)計分析等操作,該設(shè)計對于企業(yè)生產(chǎn)車間設(shè)備的實際運行狀況有著準(zhǔn)確的把握,具有實用性、高效性和準(zhǔn)確性的特點。
該監(jiān)控系統(tǒng)能夠同時監(jiān)控13臺退火爐設(shè)備的運行狀況,可以對用電時段和溫度階段進行參數(shù)設(shè)定。進行監(jiān)控時,可選擇任意的單臺退火爐設(shè)備進行單獨監(jiān)控或組合監(jiān)控,并能夠?qū)崟r顯示參數(shù)和保存數(shù)據(jù)。可以對單臺設(shè)備的監(jiān)控狀況進行相應(yīng)的操作,如人工填寫產(chǎn)品工序名稱和輸入操作員編號,選擇查詢數(shù)據(jù)的起始時間和結(jié)束時間查詢相對應(yīng)設(shè)備的數(shù)據(jù)。退火爐設(shè)備的數(shù)據(jù)通過ADO控件實現(xiàn)Delphi 7開發(fā)軟件與ACCESS數(shù)據(jù)庫的互連和保存,數(shù)據(jù)庫包括單臺設(shè)備的基本信息、監(jiān)控狀態(tài)的統(tǒng)計信息和監(jiān)控數(shù)據(jù),計算機作為人機交互平臺完成整個系統(tǒng)的操控。
該監(jiān)控系統(tǒng)硬件環(huán)境如圖1所示,主要由上位機(計算機)和下位機兩部分組成。
圖1 監(jiān)控系統(tǒng)硬件組成
數(shù)據(jù)采集部分包括溫控器、電能表、PLC等,基于監(jiān)控系統(tǒng)組網(wǎng)的要求。溫控器選用宇電AI-516型溫控器,能夠保持RS485通訊支持MODBUS-RTU協(xié)議。電能表選用德力西DTS607型三相電子式電能表,能夠保持RS485通訊支持DL/T645-1997《多功能電能表通信協(xié)議》。PLC選用電源模塊CJ1W-PA202,CPU模塊為CJ2M-CPU11,該型CPU模塊的數(shù)據(jù)容量為32k,并且?guī)в蠷S232串行通信端口,能夠?qū)崿F(xiàn)監(jiān)控數(shù)據(jù)的存儲功能和上位機與PLC的通信,搭配CJ系列485通訊模塊CJ1W-SCU31-V1,此模塊帶有兩個485通訊端口可以實現(xiàn)對整個系統(tǒng)監(jiān)控數(shù)據(jù)的采集。
上位機是監(jiān)控系統(tǒng)的重要部分,是監(jiān)控軟件系統(tǒng)的運行平臺。它不僅可以完成實時監(jiān)控功能,而且具有數(shù)據(jù)存儲和運算分析能力。計算機配備串行接口用于實現(xiàn)與PLC之間的通信。
上位機軟件選用Delphi作為開發(fā)平臺,結(jié)合數(shù)據(jù)庫技術(shù)編寫而成,主要實現(xiàn)一些具體的控制命令和監(jiān)控。上位機軟件由多個界面組成,可分為實時監(jiān)控界面,單臺設(shè)備監(jiān)控界面以及參數(shù)設(shè)定界面三類。
實時監(jiān)控界面包括13臺設(shè)備的實時溫度和電量參數(shù)顯示,監(jiān)控畫面按鈕可以隨時切換到單臺設(shè)備的監(jiān)控界面,參數(shù)設(shè)定按鈕可以對用電時段和每臺設(shè)備的溫度參數(shù)進行設(shè)定,實時監(jiān)控界面如圖2所示。單臺設(shè)備監(jiān)控界面包括人工填寫產(chǎn)品工序名稱、工作日期時段、操作員等基本信息,通過Delphi建立與外部Access數(shù)據(jù)庫的連接將這些信息存入數(shù)據(jù)庫。單臺退火爐數(shù)據(jù)查詢界面,包括根據(jù)退火爐的基本信息選項查詢出設(shè)備的各項監(jiān)控數(shù)據(jù)以及對監(jiān)控數(shù)據(jù)進行平均值、最大值、最小值等的統(tǒng)計得出不同時段的用電利用率和輸出固定格式的報表。其中,報表是通過Delphi中的Excel控件,調(diào)用事先做好的Excel報表模版,再將查詢得到的數(shù)據(jù)動態(tài)填入Excel模版中實現(xiàn)。單臺設(shè)備歷史曲線界面,包括曲線繪制啟停的選擇、理想時間-溫度曲線取點設(shè)置等,通過實際曲線和設(shè)定曲線的對比反應(yīng)出該設(shè)備不同時段處在不同的溫度階段。
圖2 實時監(jiān)控界面
該系統(tǒng)工作時,上位機通過串口與PLC通信,PLC通過485總線與多儀表通信,實現(xiàn)對整個系統(tǒng)的監(jiān)控,因此,通信程序的開發(fā)是監(jiān)控系統(tǒng)開發(fā)中的重點。
該系統(tǒng)在Windows7操作系統(tǒng)下用Delphi 7開發(fā)的監(jiān)控系統(tǒng),利用第三方套件ComPort Library中的TcomPort、TcomDataPacket組件設(shè)計了上位機與歐姆龍PLC的串行通信程序,對車間設(shè)備的運行狀態(tài)進行監(jiān)控。
3.1.1 通信協(xié)議
HostLink協(xié)議是歐姆龍PLC專用串行通信協(xié)議,有兩種通信命令格式:C-MODE指令和FINS指令,這兩種指令能夠讓計算機讀寫CJ2M內(nèi)存區(qū)的數(shù)據(jù)、運行狀態(tài)和強迫置位等。該系統(tǒng)串行通信時,選用FINS指令,可以對CJ2M實現(xiàn)直接讀寫。在該系統(tǒng)無論上位機發(fā)出的控制指令還是PLC的響應(yīng)數(shù)據(jù),它們都是通過數(shù)據(jù)幀進行傳送,而且都遵從一定的格式,數(shù)據(jù)從上位機發(fā)出的是命令幀,從PLC接收的是響應(yīng)幀,在FINS指令下命令幀和響應(yīng)幀格式如圖3所示,具體含義如表1所示。校驗碼是FCS校驗碼,即一幀數(shù)據(jù)的第一個字符到該幀命令數(shù)據(jù)的最后一個字符作“異或”運算的結(jié)果,用兩個ASCII碼表示,它在通信中是必不可少,它保證傳輸數(shù)據(jù)的可靠性,經(jīng)過上位機編程計算得到,并設(shè)置在命令幀中。
圖3 通信協(xié)議的命令幀和響應(yīng)幀格式
表1 幀格式的具體含義
3.1.2 上位機通訊實現(xiàn)
該系統(tǒng)中只需和CJ2M通信,因此選用一個TComport和TcomDataPacket控件。CJ2M的通信參數(shù)為端口COM1、波特率9600、數(shù)據(jù)位7位、停止位2位、校驗位偶校驗,在編寫通信程序時,按照PLC的通信參數(shù)對計算機的串口初始化,只有通信參數(shù)是一致,雙方才進行通信,可以通過設(shè)定TComPort、TComDataPacket組件的屬性來實現(xiàn)串口通信參數(shù)的初始化。由于計算機與PLC之間的數(shù)據(jù)幀都是以@開始,以回車符chr(13)結(jié)束,因此串口初始化程序中還可以設(shè)定數(shù)據(jù)幀的起止字符,PLC的串口初始化程序如下:
procedure TForm1.FormCreate(Sender: TObject);
begin
Comport1.Port:='COM1'; //設(shè)定端口號
Comport1.BaudRate:=br9600; //設(shè)定波特率
Comport1.DataBits:=dbSeven; //設(shè)定數(shù)據(jù)位
Comport1.StopBits:=sbTwoStopBit; //設(shè)定停止位
Comport1.Parity.Bits:=prEven; //設(shè)定校驗位
ComDataPacket1.ComPort:= Comport1; //設(shè)定TComDataPacket對應(yīng)的
ComDataPacket1.CaseInsensitive:=true; TComPort
ComDataPacket1.StartString:=’@’; //設(shè)定數(shù)據(jù)包的起始字符
ComDataPacket1.StopString:=chr(13); //設(shè)定數(shù)據(jù)包的結(jié)束字符
end;
該系統(tǒng)中PLC485通訊模塊CJ1WSCU31-V1帶有兩個485通訊端口。通訊模塊與溫控器和電表間采用RS485標(biāo)準(zhǔn)串行電氣接口,使多點連接成為可能,在傳輸速率不大于100kbps條件下,有效傳輸距離不小于1200m,溫控器和電表連接到RS485總線中,PLC為主站對需要采集的數(shù)據(jù)發(fā)送請求消息,溫控器和電表以應(yīng)答的方式將數(shù)據(jù)送至PLC。
3.2.1 PLC與溫控器間的通訊
該系統(tǒng)中溫控器保持RS485通訊支持Modbus-RTU協(xié)議,PLC選擇端口1,波特率設(shè)為9600bps,校驗方式為無校驗,通訊方式為串口網(wǎng)關(guān)。對于Modbus-RTU傳輸模式,消息發(fā)送要以4個字符時間的停頓間隔開始,從站地址是被第一個傳輸?shù)?位二進制,十六進制數(shù)0...9,A...F,溫控器不斷對通訊網(wǎng)絡(luò)進行偵測。當(dāng)接收到地址域,每個設(shè)備都對下一個域進行解碼以判斷是否發(fā)送給自己。當(dāng)最后一個字符傳輸完畢,需要4個字符時間的停頓時間來標(biāo)志消息的結(jié)束。在前一個消息結(jié)束后,下一個消息可在此停頓后開始。
圖4 通訊程序時序圖
該系統(tǒng)中PLC作為采集主站,發(fā)送的請求指令為對溫度的讀取指令。以讀取01號溫控器當(dāng)前溫度值為例,需要發(fā)送的數(shù)據(jù)幀為“01030000000453”。運用MOV指令將從站地址01H傳送到D32200,功能代碼03H傳送到D32201,通信數(shù)據(jù)字節(jié)數(shù)04H傳送到D32202,通訊數(shù)據(jù)校驗碼53H傳送到D32203,運用PLC的485模塊將請求幀由PLC發(fā)送至溫控器網(wǎng)絡(luò)。Modbus-RTU簡易主站功能執(zhí)行開關(guān)A641.00從OFF變?yōu)镺N后,應(yīng)答數(shù)則被保存到D32254和D32255,運用MOVD指令將溫度參數(shù)傳到PLC分配的寄存器中。
3.2.2 PLC與電表間的通訊
三相電子式電能表能夠保持RS485通訊支持DL/T645-1997《多功能電能表通信協(xié)議》,PLC選擇端口2,波特率設(shè)為1200bps,數(shù)據(jù)位為8位,一個停止位,校驗方式為偶校驗,通訊方式為RS232C。
依據(jù)DL/T645對消息幀的要求,設(shè)置消息幀中字節(jié)允許的最長間隔時間為500ms,結(jié)束符為16H。該系統(tǒng)中PLC作為采集主站,發(fā)送的請求指令為對各種電量的查詢指令。以讀取331520000368號電表瞬時有功功率為例,在發(fā)送數(shù)據(jù)幀信息之前,先發(fā)送1~4個字節(jié)FEH,以喚醒接收對方。因此,需要發(fā)送的數(shù)據(jù)幀為“FEFE FEFE6868030020153368010263E9F216”。用MOV指令建立18個字節(jié)的地址區(qū)D100~D108,將請求幀由TXD指令發(fā)送至電表網(wǎng)絡(luò)。PLC正確發(fā)送請求幀后A392.05返回值為1,當(dāng)網(wǎng)絡(luò)上電表接收到發(fā)送的請求幀后,電表表號與請求幀中吻合的電表做出相應(yīng),發(fā)送應(yīng)答幀“FEFEFE6868030020153368C101359A16”至網(wǎng)絡(luò),此時PLC A392.06返回值為1,調(diào)用RXD指令接收數(shù)據(jù)并運用MOV指令傳送給PLC中由用戶指定的數(shù)據(jù)區(qū)中。
在車間設(shè)備監(jiān)控系統(tǒng)的RS485總線上通常掛有多個溫控器和電表,由于485模塊的通訊時間與PLC的處理周期并不一致,所以多儀表通訊的過程中分配資源,合理安排通訊時是編程人員需要著重考慮的問題。通訊程序時序如圖3所示。
通過PLC和多臺儀表通訊,數(shù)據(jù)采集到PLC中將數(shù)據(jù)存儲在DM區(qū)。使用Delphi開發(fā)的軟件與PLC進行通訊,上位機能夠讀寫PLC數(shù)據(jù)區(qū)DM里的數(shù)據(jù)。當(dāng)上位機需要讀取PLC中數(shù)據(jù)時,在監(jiān)控界面給它一個指令,上位機軟件將PLC中DM區(qū)的數(shù)據(jù)讀取存放ACCESS數(shù)據(jù)庫,從而對采集到的數(shù)據(jù)進行處理分析。
設(shè)計的退火爐車間設(shè)備運行狀況監(jiān)控系統(tǒng)實現(xiàn)了基于Delphi開發(fā)軟件、RS485總線和PLC協(xié)同工作下退火爐車間設(shè)備運行狀況的自動監(jiān)控與數(shù)據(jù)保存,克服了車間設(shè)備分布距離較遠的數(shù)據(jù)傳輸問題,以及保證了系統(tǒng)長時間運行的可靠性。經(jīng)過測試和試用,已在實際中應(yīng)用,極大的提高了工廠車間設(shè)備的運行效率和增強了監(jiān)控系統(tǒng)的穩(wěn)定性。
[1] DL/T 645-2007.多功能電能表通信協(xié)[S].2007.
[2] 殷蘇民,萬翔,等.鋅錳電池多參數(shù)自動測試系統(tǒng)的設(shè)計與實現(xiàn) [J].制造業(yè)自動化,2015.(05):19-21.
[3] 北京亞控科技發(fā)展有限公司組態(tài)王6.55使用手冊[Z].2014.
[4] 宋蕊辰,龐之洋,李雁飛.基于PLC和組態(tài)王的空壓機監(jiān)控系統(tǒng)設(shè)計[J].機電工程技術(shù)術(shù),2012.(14):13-15.
[5] 趙蘭濤,蘇彥華.Delphi串口通信技術(shù)與工程實踐[M].北京:人民郵電出版社,2004.