引言
在很多情況下,遠程監(jiān)控和工業(yè)自動化領(lǐng)域常見的通信編程多為串口通信編程。對于小型項目,若能將串行接口和編程簡單化,則會大大縮短項
目的開發(fā)周期。本文以單片機控制的分布式注塑機系統(tǒng)為對象,介紹PC機在windows環(huán)境下對整個分布式注塑機系統(tǒng)實現(xiàn)監(jiān)控的方法。其中包括VB的串行通信,操作界面的方式,數(shù)據(jù)庫的運用以及監(jiān)控系統(tǒng)的運行。
1 串口通信
在Windows下實現(xiàn)串口通信主要有2種方法:
a. 直接調(diào)用Windows API(Application Program Interface);
b. 利用微軟提供的ActiveX控件MSComm(Microsoft Comm Control)。
第一種方法不僅要聲明和調(diào)用大量的API函數(shù),還涉及到進程調(diào)度問題,十分繁瑣,僅適用于VC開發(fā)環(huán)境。第2種方法實際上是通過MSComm控件間接調(diào)用了API,而用控件使程序?qū)崿F(xiàn)簡便,并能滿足多數(shù)情況下的工控要求。充分利用已有的ActiveX控件實現(xiàn)快速開發(fā)正是VB的優(yōu)點之一。
2 用VB實現(xiàn)的分布式監(jiān)控系統(tǒng)
本系統(tǒng)是由32臺注塑機和單片機,以及一臺PC機組成的小型集散控制系統(tǒng),利用RS485作為現(xiàn)場通訊總線,完成一臺上位機對多臺注塑機設(shè)備的監(jiān)測控制。監(jiān)控系統(tǒng)上位PC機的主要功能是
(1) 設(shè)置各注塑機的生產(chǎn)計劃。
(2) 采集每臺注塑機的實際生產(chǎn)量,不良品量和累計差額等,進行工藝過程監(jiān)測和報警。
(3) 利用數(shù)據(jù)庫實現(xiàn)多臺注塑機生產(chǎn)情況的實時存儲、分析報表及打印輸出。
(4) 可以監(jiān)測到下位機的故障信息,通知維修人員進行維修,并將此信息
存入數(shù)據(jù)庫中。
上位機系統(tǒng)控制和數(shù)據(jù)采集使用VB編寫,將整個工作狀態(tài)動態(tài)顯示出來,數(shù)據(jù)的存儲和管理采用Access數(shù)據(jù)庫。為實現(xiàn)PC機對整個分布式系統(tǒng)的監(jiān)控,在下位機的控制中,運用了89C51單片機參與控制。在裝置內(nèi)部,單片機通過A\D變換器采集注塑機中的各項參數(shù),并顯示在外部接口的數(shù)碼管上。在裝置外部,下位機在接收到上位機發(fā)來的發(fā)送指令之后,開始向上位機發(fā)送數(shù)據(jù)。VB為串行通信提供了串行通信控件MSComm,包含使用RS232協(xié)議來進行數(shù)據(jù)通信的所有功能。從上位機向下位機傳送的代碼以二進制形式發(fā)送,發(fā)送和接收均以字節(jié)形式,高字節(jié)在前,低字節(jié)在后。單片機與上位機的數(shù)據(jù)通訊以“幀”為單位進行,“F0”為起始位。上位機向下位機發(fā)送命令有兩種發(fā)送方式,即手動方式和自動方式,自動方式是由定時器來完成的。整個系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。
圖1
發(fā)送時,先要將發(fā)送的字符串(傳送文本格式時)或單字節(jié)數(shù)組(傳送二進制格式時)賦