時間:2008-08-18 14:24:00來源:ronggang
圖2 監(jiān)控系統(tǒng)功能結(jié)構(gòu)圖[/align]
其中:監(jiān)控系統(tǒng)中的一些功能模塊所完成的具體工作如下所示。
(1)通信模塊 該模塊實現(xiàn)與下位機PLC之間的數(shù)據(jù)傳輸問題,在上、下位機之間起到橋梁作用。
?。?)參數(shù)設(shè)置 控制系統(tǒng)所需要的參數(shù)都是通過該模塊完成的,并且可以保存和讀取參數(shù)設(shè)置。
?。?)故障報警 當(dāng)現(xiàn)場產(chǎn)生故障時候,該模塊會給出報警信息提示并且及時反映出來,以供操作人員處理參考。
(4)實時信息顯示 把當(dāng)前系統(tǒng)中的實際值顯示出來,并與預(yù)先設(shè)定的值進(jìn)行比較,以此來判斷控制算法的好壞和系統(tǒng)是否正常工作。
?。?)調(diào)整操作 給用戶提供一些手動操作的面板,這樣可以使工作人員很方便地進(jìn)行調(diào)整和控制操作。
(6)報表 記錄歷史數(shù)據(jù),供以后分析使用,并且可以隨時打印數(shù)據(jù),供工作人員觀察系統(tǒng)的運行狀態(tài)。
?。?)變頻器控制 該模塊用來控制變頻器,以維持金剛石合成過程中的壓強基本不變,生產(chǎn)出高質(zhì)量金剛石。
?。?)信息管理系統(tǒng) 信息管理系統(tǒng)是采用數(shù)據(jù)庫開發(fā)技術(shù)開發(fā),用來登記操作人員工作、出勤、工作量等情況,提供查詢、匯總等管理功能。
由于通信模塊與變頻器控制模塊都要進(jìn)行串口通信,所以在軟件編制過程中設(shè)計了串口通信通用類CSerialPort,該類封裝了串口通信的基本數(shù)據(jù)和方法,以解決RS-232和RS-485等不同類型串口的通信問題。CSerialPort類頭文件中的主要成員變量和成員函數(shù)如下:
Class CSerialPort
{
Private:
HANDEL m_hPort;
DCB m_Dcb;
COMMTIMEOUTS m_TimeOuts;
DWORD m_Error;
Public:
CSerialPort( ); //構(gòu)造函數(shù)
virtual ~ CSerialPort( ); //析構(gòu)函數(shù)
//InitPort( )函數(shù)實現(xiàn)初始化串口
BOOL InitPort( );
DCB GetDCB( ); //獲得DCB參數(shù)
//SetDCB( )函數(shù)實現(xiàn)設(shè)置DCB參數(shù)
BOOL SetDCB ();
// GetTimeOuts( )函數(shù)獲得超時參數(shù)
COMMTIMEOUTS GetTimeOuts ();
// SetTimeOuts( )函數(shù)設(shè)置超時參數(shù)
BOOL SetTimeOuts ();
// WritePort( )函數(shù)實現(xiàn)寫串口操作
Void WritePort (CString port, CString);
CString ReadPort(CString port ); //讀串口操作
BOOL ClosePort(CString port ); //關(guān)閉串口
?。?
對該類的重要函數(shù)說明如下:
InitPort( )函數(shù)完成串口的初始化工作,包括打開串口、設(shè)置DCB參數(shù)、設(shè)置通信的超時時間等。打開串口使用CreateFile( )函數(shù)。
SetDCB( )函數(shù)用于設(shè)置DCB參數(shù),包括傳輸?shù)牟ㄌ芈省⑹欠襁M(jìn)行奇偶校驗、每字節(jié)長度以及停止位等。
WritePort( )函數(shù)用來完成向串口寫數(shù)據(jù),由于該系統(tǒng)中需要對多個串口進(jìn)行通信,所以把串口號作為參數(shù)傳遞給該函數(shù);該函數(shù)把要發(fā)送的數(shù)據(jù)先進(jìn)行編碼(加入校驗,以減少誤碼率),然后再調(diào)用Windows API函數(shù)WriteFile( )把數(shù)據(jù)發(fā)送到串口中。
ReadPort( )函數(shù)用來完成從串口讀數(shù)據(jù),它先調(diào)用API函數(shù)ReadFile( )把下位機發(fā)送的數(shù)據(jù)讀出來放到緩存里面,然后對數(shù)據(jù)進(jìn)行處理并變換成字符串(CString)類型返回。
2.3 控制系統(tǒng)軟件設(shè)計中幾個關(guān)鍵技術(shù)性問題的解決
2.3.1 上位機VC++程序設(shè)計中技術(shù)問題
?。?)由于上位機和下位機需要進(jìn)行實時通信并且上位機還要對系統(tǒng)進(jìn)行實時監(jiān)控顯示,所以上位機程序設(shè)計中采用了多線程技術(shù)。當(dāng)監(jiān)控系統(tǒng)開始工作時,用AfxBeginThread()函數(shù)[4]創(chuàng)建輔助線程來管理串口通信。這樣設(shè)計后,當(dāng)進(jìn)行串口通信時候,主線程能夠繼續(xù)完成監(jiān)控功能和處理其它事務(wù)。輔助線程函數(shù)的主要代碼如下:
UINT SerialPro(void* param)
?。?
Ccrystal* mdlg=( Ccrystal*)param;
CString str;
int flag=1;
… … //如果初始化串口失敗返回
//循環(huán)讀寫串口,直到結(jié)束
while(flag)
?。?
… … //這里把要發(fā)送的數(shù)據(jù)賦給變量str
//向串口寫數(shù)據(jù)
mdlg->serial.WritePort(hport,str );
_sleep(100); //讓輔助線程休眠100毫秒
//從串口讀數(shù)據(jù)并賦給變量str
str=mdlg->serial.ReadPort( );
… … //這里把從串口得到的數(shù)據(jù)進(jìn)行處理
?。?
}
?。?)由于在系統(tǒng)開發(fā)中加入了數(shù)據(jù)庫開發(fā),因此數(shù)據(jù)庫規(guī)劃也是一個工作重點。數(shù)據(jù)庫的開發(fā)采用SQL Server,上位機通過在Visual C++中用ADO進(jìn)行數(shù)據(jù)庫編程。
2.3.2下位機PLC程序設(shè)計中技術(shù)問題
下位機PLC主要是進(jìn)行實時控制,所以PLC程序運行的好壞直接影響著整個系統(tǒng)工作的好壞,其中控制算法是需要認(rèn)真進(jìn)行設(shè)計的。本文將PID控制算法獨立出來成為一個子模塊,這樣做的好處是以后維護和升級比較方便,如果有更好的控制方法,只需要更改該PID控制模塊即可,這樣系統(tǒng)的維護代價比較低。
2.3.3IPC與PLC之間通信程序的設(shè)計
IPC與PLC之間采用主從應(yīng)答方式,IPC具有傳送優(yōu)先權(quán),根據(jù)需要向PLC發(fā)出讀寫命令;下位機處于被動狀態(tài)響應(yīng)上位機的命令。上位機讀數(shù)據(jù)時向PLC發(fā)出讀數(shù)據(jù)命令,PLC響應(yīng)命令并將數(shù)據(jù)傳回上位機;寫數(shù)據(jù)時,上位機向PLC發(fā)出寫命令及數(shù)據(jù),PLC即可接收。當(dāng)PLC沒能正確響應(yīng)時,PLC返回沒能正確響應(yīng)標(biāo)志。
為了使IPC和PLC建立起正確的通信,必須進(jìn)行如下工作:首先,要定義好通信協(xié)議如指令格式等,且在PLC的特殊寄存器作相應(yīng)的設(shè)置;其次,要確定微機串行口且對進(jìn)行傳輸數(shù)據(jù)的端口參數(shù)進(jìn)行設(shè)置,如波特率、數(shù)據(jù)長度、校驗方式等;最后,由于數(shù)據(jù)傳輸過程中有誤碼率,所以需要進(jìn)行數(shù)據(jù)校驗,這里采用自己設(shè)計的數(shù)據(jù)校驗算法。
3 應(yīng)用
本控制系統(tǒng)應(yīng)用于山東某金剛石加工廠,經(jīng)過半年多的運行,本文所述的控制系統(tǒng)運行情況良好,與原來的單純PLC控制系統(tǒng)相比,大大提高了控制精度和金剛石產(chǎn)品的質(zhì)量,大大減輕了操作人員的勞動強度,基本上杜絕了誤操作?,F(xiàn)在,本控制系統(tǒng)能自動記錄操作人員的工作情況及其所生產(chǎn)的產(chǎn)品質(zhì)量,還能考察職工的出勤情況,這樣使公司的管理上了一個新臺階。在取得良好的經(jīng)濟效益的同時,也取得了良好的社會效益。
4 結(jié)論與建議
1、將IPC與PLC有機結(jié)合,發(fā)揮各自的優(yōu)勢,并利用現(xiàn)有的設(shè)備,有效地解決了目前金剛石合成機控制系統(tǒng)不能適應(yīng)生產(chǎn)需要的問題,提高了金剛石產(chǎn)品的控制精度和質(zhì)量,取得了良好的社會和經(jīng)濟效益,這無疑為傳統(tǒng)設(shè)備、傳統(tǒng)控制系統(tǒng)的改造走出了一條既經(jīng)濟又有效的方法。
2、計算機監(jiān)控操作人員的工作情況和產(chǎn)品質(zhì)量,提高了企業(yè)管理的科學(xué)化水平。
3、該控制系統(tǒng)軟件設(shè)計中應(yīng)用了面向?qū)ο蠹夹g(shù),使得軟件以后的維護和升級成本降低,很適合進(jìn)一步的推廣使用。
4、下位機PLC控制系統(tǒng)中采用的是參數(shù)自整定PID控制算法,可以根據(jù)實際情況采取其它的控制算法,比如模糊控制、自適應(yīng)控制和神經(jīng)網(wǎng)絡(luò)控制等。
5、根據(jù)需要,只需要將控制系統(tǒng)稍微改動,就可以由IPC控制多個PLC操作站。
參考文獻(xiàn):
[1] 何衍慶.集散控制系統(tǒng)原理及應(yīng)用[M]. 北京:化學(xué)工業(yè)出版社, 1999.
[2] 賴壽宏.微型計算機控制技術(shù)[M]. 北京:機械工業(yè)出版社,1998.
[3] 尹宏業(yè).PLC可編程控制器教程[M]. 北京:航空工業(yè)出版社, 1997.
[4] David J. Kruglinshi. Visual C++技術(shù)內(nèi)幕[M].潘愛民等譯. 北京:清華大學(xué)出版社,1999.
[5] 林俊杰. Visual C++6程序設(shè)計經(jīng)典[M]. 北京:科學(xué)出版社,1999.
標(biāo)簽:
傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動網(wǎng)(www.surachana.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
相關(guān)資訊
產(chǎn)品新聞
更多>2025-10-31
2025-10-22
2025-10-17
2025-10-11
2025-10-09
2025-09-23