摘 要:液位的測量與控制是制藥廠儲液塔罐控制的重要組成環(huán)節(jié)。本文介紹了開發(fā)PLC液位測控系統(tǒng)的實現(xiàn)方法,闡述了運用VB應(yīng)用程序開發(fā)本系統(tǒng)與其它控制環(huán)節(jié)交互的軟件接口的方法。
關(guān)鍵詞:液位測控,PLC,VB
Abstract: Measurement and Control of Liquid Level is an important link on controlling of pharmaceutical tank. This paper introduces an implement method of developing a PLC‘s Liquid Level measuring and controlling system, expatiates a method of developing a software interface between this system and the other control links.
Key words: Measurement Control Liquid Level,PLC,VB
1. 概述
為了滿足藥品制藥生產(chǎn)工藝過程的要求,工廠需要大容量的密封拱頂塔罐混合并存儲藥物原液。根據(jù)整個生產(chǎn)工藝的要求,需要能夠?qū)崟r測量密封拱頂塔罐內(nèi)的藥液的高度,從而準確了解罐內(nèi)藥液的體積,并可以通過現(xiàn)場或遠程操作控制液位的高度。同時,遠程計算機的監(jiān)控管理軟件聯(lián)系現(xiàn)場控制過程,并與工廠中其他過程控制系統(tǒng)交換數(shù)據(jù)來實現(xiàn)整個藥品生產(chǎn)過程的統(tǒng)一控制。
由于原先是人員職守的方式,該方式不僅費人力,而且不能與整個生產(chǎn)過程形成有機整體,安全性和可靠性低。所以,為了達到系統(tǒng)控制任務(wù)書的要求,本文電氣控制系統(tǒng)的方案為:采用遠程PC機作為系統(tǒng)主機,與現(xiàn)場的PLC(從機)通訊,PLC實現(xiàn)通訊、現(xiàn)場顯示界面的顯示、液位模擬量數(shù)據(jù)的采集、邏輯控制以及聲光報警。
本文介紹的電氣控制系統(tǒng)的設(shè)計主要包括以下幾個方面:
?。?)PLC、顯示面板、連續(xù)液位采集傳感器的選型。
?。?)系統(tǒng)控制功能的實現(xiàn)。
?。?)上位機與下位機的軟件編制。
2.控制的內(nèi)容和要求
如圖1所示,本控制設(shè)計任務(wù)需要實現(xiàn)以下目標:
?。?)可以實時監(jiān)測記錄液位的變化,可以人工設(shè)定并自動控制液位的高度值。
?。?)可以通過自動方式和手動方式控制該系統(tǒng)。
(3)現(xiàn)場顯示界面顯示的內(nèi)容主要包括:當前液位值、當前罐內(nèi)容量值、設(shè)定液位高度、進液口與出液口電磁閥狀態(tài)、實時故障報警和歷史故障報警等。
?。?)通訊采用RS-485總線通訊方式,使PLC與遠程PC機聯(lián)系,實現(xiàn)通過PC機控制液位高度,監(jiān)測液位變化的目的。PC機同時與其他系統(tǒng)發(fā)生聯(lián)系,進而使工廠整個藥品生產(chǎn)過程構(gòu)成了一個有機的整體。
[align=center]

圖1 液位自動控制系統(tǒng)[/align]
3. 硬件配置及實現(xiàn)方法
為了提高控制系統(tǒng)的可靠性與靈活性,系統(tǒng)采用PLC可編程邏輯控制器。PLC選型為SIEMENS公司的S7-200系列PLC,中央處理單元為西門子公司新推出的CPU 224XP AC/DC/Relay ,該CPU在本機體中集成了2個RS-485通訊口,2個模擬量輸入口,1個模擬量輸出口,14個數(shù)字輸入和10個繼電器輸出,其性價比高,滿足本系統(tǒng)的所有要求。
為了連續(xù)測量塔罐內(nèi)的液位,液位傳感器選用衛(wèi)生型雷達液位計,其測量量程范圍為20米,其輸出為標準的二線制4-20mA電流輸出。傳感器輸出電流信號通過電流/電壓變送器將4-20mA電流信號變換成0-10V電壓信號接到CPU本體的模擬量輸入口。
現(xiàn)場顯示界面選擇西門子的文本顯示界面:TD200,它可以方便地顯示和設(shè)定參數(shù),并可以顯示當前報警信息或者查詢歷史報警信息。TD200與PLC 連接只需要通過TD/CPU電纜連接至PLC的通訊口PORT0。使用485總線的一端連接PLC的通訊口PORT1,另一端通過RS-485/232電平轉(zhuǎn)換器連接至PC機的RS-232串口,實現(xiàn)PC機向PLC發(fā)送命令幀、并接收PLC響應(yīng)幀。
4. 系統(tǒng)的軟件編程及實現(xiàn)方法
由于現(xiàn)場PLC需要與遠程PC機監(jiān)控管理軟件傳遞控制參數(shù)和實時信息。所以,本系統(tǒng)軟件包括了PLC程序和PC機的監(jiān)控管理軟件。
4.1 PLC的程序編寫
編寫224XP CPU的程序,支持的編程環(huán)境為STEP 7-Micro/WIN V4.0版。
傳感器采集的液位模擬量信號送入PLC模擬量輸入口,經(jīng)A/D轉(zhuǎn)換送入CPU,從AIW0 中取輸入值,為了增加穩(wěn)定性,而取一定范圍內(nèi)采樣值,并求多次采樣值的平均值,再依據(jù)計算出的某時間段液位平均值,求當前實際容量,用于生產(chǎn)過程控制,現(xiàn)場顯示和上位機記錄分析。
PLC根據(jù)現(xiàn)場或遠程PC機命令,通過一系列邏輯操作,控制塔罐輸入/輸出電磁閥、出料泵等,完成系統(tǒng)預(yù)定的命令,實現(xiàn)控制要求。
TD200文本顯示器組態(tài)也在STEP 7-Micro/WIN V4.0軟件環(huán)境中進行,編程環(huán)境提供了易于使用的組態(tài)向?qū)?,使文本顯示界面組態(tài)和使用非常方便。
4.2 PC機的監(jiān)控管理軟件的編制
微軟的 Visual Basic 6.0 提供了高效的可視化編程環(huán)境,具有良好的圖形用戶接口,少量的界面控制代碼即可設(shè)計出本系統(tǒng)的標準Windows風格的圖形窗口用戶界面,支持面向?qū)ο蟮某绦蛟O(shè)計,可以方便快速地編制出系統(tǒng)的分析和控制程序。為了使用戶能方便快捷地創(chuàng)建串口通信程序和數(shù)據(jù)庫系統(tǒng)管理,Visual Basic 6.0 為用戶提供了MSComm 通信控件和數(shù)據(jù)庫訪問對象庫ADO技術(shù)。
4.2.1 PC機串口與PLC 自由口的通訊實現(xiàn)
本系統(tǒng)的監(jiān)控管理軟件(上位機)和S7-200 PLC (下位機)的連接采用RS-485總線半雙工通訊方式,在MSComm事件的中斷程序中接收數(shù)據(jù),在時間定時器控件(Timer)中斷程序中發(fā)送控制命令。本文介紹的系統(tǒng)上位機和下位機之間的的通信是互發(fā)報文的形式來實現(xiàn)的,下位機PLC只有在接收到上位機查詢命令時才上送數(shù)據(jù),下位機PLC在接收到上位機修改控制參數(shù)命令時,必須上送確認報文后方才執(zhí)行命令。
?。?) OnComm 事件中斷服務(wù)程序
……
Private Sub MSComm1_OnComm()
Dim GetByte() As Byte
Select Case MSComm1.CommEvent
Case comEvReceive ‘收到1個字符數(shù)據(jù)
GetByte = MSComm1.Input
Receive_Data = Receive_Data & GetByte(0)
……
End Select
End Sub
……
(2) Timer 事件中斷服務(wù)程序
……
Private Sub Timer1_Timer()
Dim SendByte() As Byte
Send_Data = SendByte()
MSComm1.Output = Send_Data
……
End Sub
……
4.2.2 數(shù)據(jù)庫管理程序的編制
本系統(tǒng)的PC機監(jiān)控管理軟件的數(shù)據(jù)庫格式采用本地的Microsoft Access數(shù)據(jù)庫,它記錄當前液位值和保存歷史液位值,同時它還記錄所有的控制參數(shù),該數(shù)據(jù)庫也可以讓其它程序共享,以改變控制參數(shù),實現(xiàn)整個藥品生產(chǎn)過程控制與本子控制系統(tǒng)的接口。所以,本文介紹的系統(tǒng)不僅可以作為一個獨立的系統(tǒng),也可以作為工廠自動化有機整體的一個環(huán)節(jié)。
ADO(ActiveX Data Object)技術(shù)是如今應(yīng)用最廣泛的數(shù)據(jù)訪問技術(shù)之一。系統(tǒng)的監(jiān)測管理軟件運用VB中的ADO對象,引用ADO組件開發(fā)出操作數(shù)據(jù)庫記錄的應(yīng)用程序,只需在窗體上添加部件“Microsoft ADO Data Control 6.0”,并編寫連接和操作數(shù)據(jù)庫的VB程序代碼。
下面為連接本地數(shù)據(jù)庫的程序代碼:
On Error GoTo LoginError
Dim strConnection As String
Set ConnData = New ADODB.Connection
With ConnData
.CommandTimeout = 15
.CommandTimeout = 30
End With
strConnection = "UID=Admin;PWD=;" & _
"Driver={Microsoft Access Driver (*.mdb)};" & _
"DBQ=" & App.Path & "\db1.Mdb;"
ConnData.Open strConnection
ConnData.CursorLocation = adUseClient
Adodc1.ConnectionString = ConnData.ConnectionString
Adodc1.RecordSource = "select * from tbl1"
Adodc1.Refresh
Set AdoRs = New ADODB.Recordset
AdoRs.Open "select * from tbl1", _
ConnData, adOpenForwardOnly, adLockReadOnly
Exit Sub
LoginError:
MsgBox "無法與數(shù)據(jù)庫建立連接!"
4.2.3 數(shù)據(jù)庫瀏覽器的開發(fā)
不僅僅是友好美觀的圖形窗口用戶界面和可靠的數(shù)據(jù)庫記錄存取過程代碼。還需要方便的數(shù)據(jù)庫記錄瀏覽、分析的方法和接口界面。為此,需要使用一些數(shù)據(jù)庫綁定的控件等來實現(xiàn)數(shù)據(jù)庫瀏覽器的功能,利用畫圖命令line實現(xiàn)簡單的當前、歷史原液容量變化趨勢圖。使操作變得更簡單、更方便,日常維護更加人性化。
5. 結(jié)束語
本文介紹的液位監(jiān)控系統(tǒng)電氣設(shè)計方案和PC機監(jiān)控管理軟件,經(jīng)過實踐證明是可行的,不僅解決了改造之前的缺陷,而且性能穩(wěn)定可靠。
實現(xiàn)了:
(1)即使在沒有PC(上位機)的情況下,PLC系統(tǒng)仍可以獨立可靠地運行。
?。?)PC機監(jiān)控管理軟件通過共享數(shù)據(jù)庫與藥品整個生產(chǎn)過程其它環(huán)節(jié)協(xié)調(diào)。
該控制方案采用PLC作為現(xiàn)場控制核心,保證了控制的高可靠性;采用PC機管理該系統(tǒng)或融合其它子系統(tǒng),減少了成本,方便了集中管理,提高了自動化程度。作者認為本方案不僅適用于工業(yè)生產(chǎn)老設(shè)備改造升級,對于中小型過程控制集中管理也具有參考價值。
參考文獻:
[1] SIMATIC.S7-200 Programmable Controller System Manual.6ES7298-8FA22-8BH0
[2] 郝成.基于PC的DCS研究與應(yīng)用.微計算機信息.2005.5
[3] 郭琦.Visual Basic 數(shù)據(jù)庫系統(tǒng)開發(fā)技術(shù).人民郵電出版社,2003
[4] 范逸之,陳立元.Visual Basic與RS-232串行通信控制.清華大學(xué)出版社,2002