《一種混凝土攪拌站控制系統(tǒng)設(shè)計(jì)方案》由會員分享,可在線閱讀,更多相關(guān)《一種混凝土攪拌站控制系統(tǒng)設(shè)計(jì)方案(4頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、一種混凝土攪拌站控制系統(tǒng)設(shè)計(jì)方案
摘要:介紹了一種適合水泥制品行業(yè)使用的混凝土攪拌站自動控制系統(tǒng)的設(shè)計(jì)方案。本攪拌站采用工控電腦+PLC+數(shù)字化智能儀表的集散控制方式,工控電腦負(fù)責(zé)自動邏輯控制、生產(chǎn)過程動畫顯示、數(shù)據(jù)采集、數(shù)據(jù)存儲和數(shù)據(jù)管理,PLC負(fù)責(zé)IO數(shù)據(jù)輸入輸出轉(zhuǎn)換,數(shù)字化儀表負(fù)責(zé)稱重傳感器數(shù)據(jù)的采集、轉(zhuǎn)換和傳輸。所有的控制邏輯用工控軟件實(shí)現(xiàn),系統(tǒng)功能模塊分區(qū)清晰,外圍無復(fù)雜的邏輯電路,故障少且故障點(diǎn)查找十分簡單。工控機(jī)程序采用VC++編程,配比數(shù)據(jù)和生產(chǎn)過程實(shí)時采集的稱量數(shù)據(jù)存儲在ACCESS數(shù)據(jù)庫中,供查詢、分析和管理用。
關(guān)鍵
2、詞:工控機(jī),PLC,VC++,多線程,串口通信,數(shù)據(jù)庫
中圖分類號:G250文獻(xiàn)標(biāo)識碼: A
在水泥制品行業(yè)中,混凝土攪拌站是關(guān)鍵設(shè)備,性能好壞關(guān)系到產(chǎn)品生產(chǎn)效率和產(chǎn)品質(zhì)量,這里介紹一種適合水泥制品行業(yè)使用的攪拌站控制系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)方法。水泥制品行業(yè)對攪拌站要求是多方面的,用在商品混凝土攪拌控制方面,要求攪拌站要以很高的效率連續(xù)進(jìn)行攪拌控制,不一定每斗料都控制得很精確,只要在一個可接受的誤差范圍內(nèi)就可以,但是一車料總的配比量必須很精確,這樣經(jīng)過攪拌運(yùn)輸車一路的攪拌,還可以使不同次攪拌出來的混凝土料繼續(xù)攪拌均勻,因此每一車不同盤次攪拌的料可以通過根據(jù)前盤的誤差,在一定范圍內(nèi)調(diào)整后盤
3、的配比的方式,使前面各盤誤差為零,達(dá)到控制整車誤差的目的。在水泥管道、建筑管樁、地鐵管片等的工廠預(yù)制生產(chǎn)方面,則要求每一盤攪拌好的混凝土料都要很精確,因?yàn)檫@些攪拌好的混凝土料會被立即輸送到設(shè)備或模具里生產(chǎn)成產(chǎn)品。在生產(chǎn)過程中,對混凝土配比的調(diào)用和管理,對實(shí)際攪拌數(shù)據(jù)的存儲和利用,對實(shí)際砂、石、水泥等物料的實(shí)時用量和庫存量掌握和管理,都需要功能強(qiáng)大和易于使用的管理控制系統(tǒng)。因?yàn)樾枰た仉娔X直接進(jìn)行實(shí)時配料控制,本系統(tǒng)電腦控制軟件采用VC++6.0進(jìn)行編程,保證控制程序運(yùn)行快速、穩(wěn)定,滿足現(xiàn)場實(shí)時控制的需要??刂栖浖\(yùn)行在win2000操作系統(tǒng)下,采用標(biāo)準(zhǔn)windows窗口操作方式,采用圖形界面和
4、動畫控件技術(shù),使得運(yùn)行狀態(tài)顯示直觀,操作和掌握非常容易,通過不同的菜單,可以打開不同的設(shè)置和管理窗口,很方便的實(shí)現(xiàn)自動控制模式的切換、各種控制參數(shù)的設(shè)置、配方的編輯和調(diào)用、生產(chǎn)數(shù)據(jù)的查詢和管理等工作。
一、系統(tǒng)結(jié)構(gòu)描述
系統(tǒng)以工控電腦為中心,自動控制軟件是系統(tǒng)的核心。所有的秤重傳感器輸出電壓通過數(shù)字化秤重儀表進(jìn)行采集和處理,然后通過串口連續(xù)高速的傳給工控電腦,工控電腦通過多串口卡連接不同的秤重儀表,通過連續(xù)高速讀串口數(shù)據(jù)的方式實(shí)時獲得各秤的重量數(shù)據(jù)用于按一定的控制方式進(jìn)行秤量控制。工控機(jī)的控制指令經(jīng)過編碼,連續(xù)發(fā)送給PLC,PLC接收到工控機(jī)發(fā)來的數(shù)據(jù)幀后進(jìn)行解碼,然后根據(jù)
5、指令打開和關(guān)閉相應(yīng)的輸出點(diǎn)進(jìn)行控制。同時PLC每接收到一幀工控機(jī)的數(shù)據(jù),即刻將PLC輸入端子的狀態(tài)信號進(jìn)行編碼回傳給工控機(jī),讓工控機(jī)獲得PLC輸入端子的狀態(tài)。這些端子狀態(tài)根據(jù)接入點(diǎn)的不同,分別反映了斗門的開關(guān)狀態(tài)和電機(jī)的運(yùn)行狀態(tài)等。通過和秤重儀表、PLC的通信,工控機(jī)獲得了進(jìn)行自動控制需要的各種數(shù)據(jù),經(jīng)過各種運(yùn)算和邏輯判斷,又以通信的方式通過PLC進(jìn)行各種控制,并將控制狀態(tài)以動畫的方式在電腦控制界面里顯示出來。系統(tǒng)軟件設(shè)計(jì)涉及到VC++界面編程、通信編程、數(shù)據(jù)庫編程、多線程編程和PLC軟件編程等,電腦程序編制采用了模塊化技術(shù),利用C++特性,將各種功能模塊編制成不同的類,通過實(shí)例化類進(jìn)行調(diào)用和
6、重復(fù)使用。
二、工控機(jī)程序開發(fā)
2.1界面編程 系統(tǒng)顯示主界面是一個FormView類窗口,窗口背景是攪拌控制系統(tǒng)模擬圖做成的位圖,在窗口相應(yīng)位置疊加上數(shù)碼顯示控件、輸入控件、按鈕控件、動畫控件。系統(tǒng)菜單分三級,主菜單為系統(tǒng)管理,控制參數(shù),生產(chǎn)管理和系統(tǒng)幫助,系統(tǒng)管理二級子菜單包含人員管理、運(yùn)行管理、配方管理、計(jì)劃管理、數(shù)據(jù)庫管理等??刂茀?shù)二級子菜單,包含時序設(shè)置、抖動時間設(shè)置、稱量提前量設(shè)置、扣秤提前量設(shè)置、自動/手動切換等。生產(chǎn)管理二級子菜單包含生產(chǎn)調(diào)度、送貨單打印、當(dāng)天生產(chǎn)數(shù)據(jù)、生產(chǎn)數(shù)據(jù)管理等。系統(tǒng)幫助二級子菜單包含系統(tǒng)使用說明,系統(tǒng)注冊等。為方便菜單調(diào)用,設(shè)計(jì)了右鍵下拉菜
7、單,常用功能菜單放在下拉菜單中,每一個菜單鍵對應(yīng)打開一個對話框,完成配方管理和調(diào)用、生產(chǎn)計(jì)劃制定、生產(chǎn)控制參數(shù)的設(shè)置等工作。主界面如圖1
圖1
2.2主控模塊編程程序主執(zhí)行循環(huán)放在CFrameWnd類中進(jìn)行,程序的稱量控制、時序邏輯控制和各種對話框的調(diào)用等均放在類中進(jìn)行。在該類的 OnCreate中初始化了一個基本定時器SetTimer(TIME_SEQUENCE,50,AutoCycle);時間設(shè)定為50ms,每50ms都會調(diào)用一次循環(huán)控制模塊,所有需要循環(huán)反復(fù)觸發(fā)的事件都放在這個函數(shù)內(nèi)進(jìn)行,如和PLC之間的串口通信、刷新顯示LED控件、稱量控制和其它的邏輯時序
8、控制等。各事件不同的觸發(fā)間隔時間可以通過計(jì)數(shù)的方法在該函數(shù)內(nèi)實(shí)現(xiàn),如:需要一秒鐘刷新顯示一次LED控件,就可以通過設(shè)置一個計(jì)數(shù)變量,每循環(huán)一次計(jì)數(shù)值加50,當(dāng)計(jì)數(shù)值等于1000時,執(zhí)行一次刷新顯示操作,然后將計(jì)數(shù)變量值清零重新進(jìn)行計(jì)數(shù)累加。讀秤重儀表串口的操作放在一個單獨(dú)創(chuàng)建的輔助線程內(nèi)進(jìn)行,線程函數(shù)為DWORD WINAPI ThreadProc(HWND hSendWnd),線程函數(shù)里面是一個do{。。。}while()無限循環(huán)結(jié)構(gòu),每次循環(huán)讀各儀表串口一次,然后休眠15ms以后重復(fù)循環(huán)(休眠是為了避免輔助線程獨(dú)占了CPU時間)。圖2是建立輔助線程和主循環(huán)函數(shù)定時設(shè)置的部分代碼。
9、
圖2 主循環(huán)定時和建立輔助線程部分代碼
2.3 秤量控制邏輯編程稱量控制功能代碼放在專門的類中,并在CFrameWnd的循環(huán)控制函數(shù)中進(jìn)行實(shí)例化調(diào)用。該類包含了全部的配料控制函數(shù),有上料提前量控制、卸料提前量控制、抖動上料控制、抖動卸料控制、提前量參數(shù)自動修正等功能函數(shù)模塊。本控制系統(tǒng)對秤量控制分為上料控制過程和卸料控制過程,秤量重量以實(shí)際卸料量為準(zhǔn)。上料配料時,打開配料門,物流開始進(jìn)入秤量斗,當(dāng)秤斗實(shí)時重量 + 提前量 >= 配方重量時,關(guān)閉配料門,當(dāng)門完全關(guān)閉后延時一定時間,儀表傳回的穩(wěn)定的稱量重量值就是落入秤斗的實(shí)際物料量,每次上料、卸料配料結(jié)束,調(diào)用提前量參數(shù)自
10、動修正模塊,根據(jù)實(shí)際物料量和配方要求量之間的誤差對配料提前量參數(shù)運(yùn)用逐次逼近的方式進(jìn)行加減修正,以備下次控制使用(提前量每次的修正量可在界面中設(shè)置)。卸料配料時,根據(jù)秤斗里的物料重量和配方要求量的比較結(jié)果選擇控制方式,秤斗物料重量 配方重量時,不能將秤斗的物料全部卸出放入攪拌機(jī),此時就要考慮將多出的物料留著秤斗內(nèi),控制過程是:打開卸料門卸料,當(dāng)秤斗實(shí)時重量 - 卸料提前量 <= 留料量時,關(guān)閉秤斗門。此時實(shí)際進(jìn)入攪拌機(jī)的物料量就是此次完整的配料過程實(shí)際秤量量,這個實(shí)際秤量量是計(jì)算得到的值,作為實(shí)際稱量量存入數(shù)據(jù)庫??刂葡到y(tǒng)還設(shè)有抖動補(bǔ)料和抖動卸料功能供用戶選用,當(dāng)被選中使用時,如果上料配料時
11、落入秤斗的物料量小于配方量或卸料配料時秤斗內(nèi)留料量偏多時,系統(tǒng)會控制上料或卸料斗門進(jìn)行脈動式的開關(guān)門操作,模仿人工點(diǎn)動控制,讓秤量斗內(nèi)的物料一點(diǎn)一點(diǎn)的添加或減少(每次點(diǎn)動執(zhí)行上料或卸料的時間的長短可以控制每次進(jìn)入或卸出秤量斗的物料量,抖動時間可以在界面中設(shè)置),直到達(dá)到誤差允許范圍,保證實(shí)際配料的精準(zhǔn)。
2.4 串口編程本系統(tǒng)工作的時候通過多串口卡上Com3到Com15的13個串口同時讀13個稱重儀表傳來的重量數(shù)據(jù),并通過工控電腦上的Com1口對PLC進(jìn)行高速讀寫操作。在這個工程中,選擇了利用windows 通信API進(jìn)行串口通信編程。該方式是windows2000下效率較高的一
12、種方式。采用多線程和消息機(jī)制,使用異步(重疊)I/O操作,在創(chuàng)建端口時,CreatFile()函數(shù)的dwFlagesAndAttributes參數(shù)必須設(shè)為FILE_FLAG_OVERLAPPED標(biāo)示,讀寫串口函數(shù)必需制定OVERLAPPEN結(jié)構(gòu)。異步讀串口函數(shù)部分代碼如圖3
圖3 異步讀串口函數(shù)代碼
2.5 數(shù)據(jù)庫編程本系統(tǒng)配料數(shù)據(jù)存儲采用ACCESS數(shù)據(jù)庫,ACCESS是小型數(shù)據(jù)庫,在數(shù)據(jù)量逐漸增多的情況下,其處理速度會越來越慢,但數(shù)據(jù)庫有不需要建服務(wù)器、使用維護(hù)簡單、對使用人員要求低等優(yōu)點(diǎn),數(shù)據(jù)庫設(shè)計(jì)過程中可以揚(yáng)長避短,本系統(tǒng)ACCESS數(shù)據(jù)庫每月
13、自動生成新的數(shù)據(jù)庫文件,使用過程中不需要定期清里數(shù)據(jù)庫,并通過生成合并數(shù)據(jù)庫的方式滿足跨月跨年查詢的要求。這種設(shè)計(jì)對攪拌配料數(shù)據(jù)查詢會比較慢,但是綜合使用性能很好,完全滿足水泥制品行業(yè)攪拌站生產(chǎn)使用。每月生成新數(shù)據(jù)庫的方法是:建立一個只有數(shù)據(jù)庫結(jié)構(gòu)的空數(shù)據(jù)庫文件作為自動生成數(shù)據(jù)庫的模版文件,如:MixData.mdb。使用數(shù)據(jù)庫前,先取得當(dāng)前時間,然后以當(dāng)前時間的年和月組合為新數(shù)據(jù)庫的文件名,比如:201403.mdb,如果同名的數(shù)據(jù)庫已經(jīng)存在就什么都不做,否則就用標(biāo)準(zhǔn)數(shù)據(jù)庫為模板建一個以年月為名稱的新數(shù)據(jù)庫文件,然后再打開數(shù)據(jù)庫進(jìn)行各項(xiàng)操作。建庫代碼如圖4
圖4生成數(shù)據(jù)
14、庫代碼
對數(shù)據(jù)庫的操作采用ADO方法,ADO是最新的數(shù)據(jù)庫訪問技術(shù),它使用更加簡單、更加靈活的對象模型,使用ADO作為數(shù)據(jù)訪問接口是目前比較推崇的方法。使用ADO對象前,需要使用 圖5 的語句
圖5導(dǎo)入ADO庫代碼
將ADO庫文件導(dǎo)入到工程中。然后使用ADO庫里的三個基本接口_ConnectionPtr接口、_RecordsetPtr接口和_CommandPtr接口指針對數(shù)據(jù)庫進(jìn)行讀、寫和查詢等操作。
三、PLC程序開發(fā)
PLC使用的是S7-200的CPU,程序在西門子的編程軟件上進(jìn)行編制,采用梯形圖方式,程序功能主要是和工控電腦通信,
15、接收工控電腦傳來的指令信息,解碼后控制相應(yīng)的輸出端子打開或關(guān)閉實(shí)現(xiàn)操作控制功能。每接收到一幀工控機(jī)的指令碼,就將輸入端子的狀態(tài)信號進(jìn)行編碼打包后回傳給工控電腦。程序采用自由口模式進(jìn)行串口通信編程,使用自由口通信時首先要把通信口定義為自由口模式,通過設(shè)置特殊標(biāo)志字節(jié)smb130,對端口1的通信協(xié)議、波特率、字符位數(shù)、校驗(yàn)選擇等參數(shù)進(jìn)行設(shè)置,通過SMB186、SMB187、SMB188、SMB189、SMW190、SMW192、SMW194等特殊標(biāo)志字或字節(jié)可以設(shè)置接收控制信息,如:設(shè)置信息開始符、結(jié)束符、空閑時間、要接收的字符數(shù)等,然后利用指定的中斷服務(wù)程序調(diào)用RCV指令將數(shù)據(jù)接收存放到指定的接
16、收緩沖區(qū)內(nèi),通過XMT指令將含有編碼打包好的輸入端口狀態(tài)字符的緩沖區(qū)的內(nèi)容發(fā)送出去。
四、實(shí)際運(yùn)行
經(jīng)過多年的使用和不斷改進(jìn),該系統(tǒng)操作簡單、功能完善、生產(chǎn)效率高,符合水泥制品行業(yè)的特殊要求。實(shí)現(xiàn)了從配料、計(jì)量、誤差修正、投料、數(shù)據(jù)記錄、攪拌計(jì)時直到出砼的全過程的自動控制,具有可靠的安全連鎖和人工干預(yù)功能。軟件的秤量控制部分是特別設(shè)計(jì)的,除了具有普通控制系統(tǒng)的配料提前量控制功能外,還有超秤自動扣秤功能和模擬手工操作的抖動補(bǔ)料和抖動卸料功能,更采用了獨(dú)特的扣秤提前量雙參數(shù)自動選擇功能,做到了小扣秤量和大扣秤量時都能確保秤量精度??刂葡到y(tǒng)的配料控制功能保證無論秤斗內(nèi)有無余料都可進(jìn)行配料
17、操作,可以在配料過程中隨時停止配料操作,可中途修改配比后重新啟動自動配料操作,使得絕大多數(shù)情況下無需手動操作,保證配料數(shù)據(jù)的完整準(zhǔn)確。配料數(shù)據(jù)的存儲采用微軟ACCESS數(shù)據(jù)庫,便于在廣泛使用的OFFICE軟件中進(jìn)行數(shù)據(jù)處理和管理。具有完備的數(shù)據(jù)查詢、統(tǒng)計(jì)和導(dǎo)出功能 ,能方便的進(jìn)行配料記錄的管理應(yīng)用,數(shù)據(jù)庫不需要專人定期維護(hù),系統(tǒng)運(yùn)行穩(wěn)定可靠。
參考文獻(xiàn)
Visual C++ 串口通信技術(shù)與工程實(shí)踐 李現(xiàn)勇
Visual C++6.0 數(shù)據(jù)庫開發(fā)技術(shù)與工程實(shí)踐 求是科技 編著 責(zé)任編輯 張力科
可編程控制器入門教程 編著鐘肇新 王灝