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