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