【摘要】利用MCGS工業(yè)觸摸屏實(shí)現(xiàn)遠(yuǎn)程電話(huà)控制家用電器、報(bào)警服務(wù)。界面友好,通訊穩(wěn)定,可以實(shí)時(shí)查看本地家用電器控制情況。并且與PC機(jī)進(jìn)行通訊,MCGS中的控制過(guò)程,控制結(jié)果,報(bào)警信息同時(shí)實(shí)時(shí)傳送到電腦PC端。整個(gè)系統(tǒng)通用性好,可以依據(jù)實(shí)際情況實(shí)現(xiàn)控制其他電氣設(shè)施。
【關(guān)鍵詞】MCGS組態(tài)軟件M51單片機(jī)
一、通訊系統(tǒng)軟件設(shè)計(jì)
1.前言。電話(huà)遠(yuǎn)程智能控制系統(tǒng)實(shí)現(xiàn)當(dāng)用戶(hù)離開(kāi)用電設(shè)備時(shí),依然可以遠(yuǎn)程通過(guò)電話(huà)手機(jī)遙控家里的用電設(shè)備。對(duì)被控對(duì)象進(jìn)行實(shí)時(shí)監(jiān)控,對(duì)家電進(jìn)行全方位實(shí)時(shí)管理。同時(shí)通過(guò)雙上位機(jī)人性化的監(jiān)控界面。上位機(jī)通過(guò)MCGS組態(tài)軟件編程對(duì)下位機(jī)進(jìn)行監(jiān)控,在本設(shè)計(jì)中它與下位機(jī)的通信端口為COM1。
2.MCGS與單片機(jī)的通訊。MCGS是目前較常見(jiàn)的一種工業(yè)控制通用組態(tài)軟件,可以利用它十分方便地構(gòu)成了分布式系統(tǒng)的監(jiān)控畫(huà)面,動(dòng)態(tài)顯示控制設(shè)備的運(yùn)行狀態(tài)、實(shí)時(shí)、歷時(shí)曲線(xiàn)和報(bào)表、上下限報(bào)警等。他是一套基于Windows平臺(tái)的,為工業(yè)過(guò)程控制和實(shí)時(shí)監(jiān)控服務(wù)的32位全中文界面組態(tài)軟件系統(tǒng)。為了與現(xiàn)場(chǎng)設(shè)備進(jìn)行交互,它提供了國(guó)內(nèi)外各種常用的工控設(shè)備的驅(qū)動(dòng)程序,但基本上是與PLC,DSP等設(shè)備的數(shù)據(jù)交互通訊。如果用MCGS與單片機(jī)實(shí)現(xiàn)實(shí)時(shí)通訊,則需要利用MCGS驅(qū)動(dòng)開(kāi)發(fā)工具對(duì)某一具體的通訊協(xié)議進(jìn)行單獨(dú)的開(kāi)發(fā)。設(shè)計(jì)者只需要經(jīng)過(guò)簡(jiǎn)單的參數(shù)設(shè)定,輸入,就可以編程出為自己項(xiàng)目所用的獨(dú)立的dll構(gòu)件。
MCGS用Active DLL構(gòu)件的方式來(lái)實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)程序,通過(guò)規(guī)范的OLE接口掛接到MCGS中,使其構(gòu)成一個(gè)整體,所以MCGS把設(shè)備驅(qū)動(dòng)程序叫做設(shè)備驅(qū)動(dòng)構(gòu)件。MCGS設(shè)備構(gòu)件的實(shí)現(xiàn)方法和原理與標(biāo)準(zhǔn)VB的ActiveDLL完全一致,但MCGS規(guī)定了一套接口規(guī)范,只有遵守這些接口規(guī)范的ActiveDLL才能用作MCGS的設(shè)備驅(qū)動(dòng)構(gòu)件。它必須具有如下5個(gè)屬性和8個(gè)方法:
用戶(hù)根據(jù)自己的協(xié)議要求編寫(xiě)成功dll構(gòu)件之后,在MCGS開(kāi)發(fā)環(huán)境中打開(kāi)串口父設(shè)備,添加做好的電話(huà)遠(yuǎn)程控制的dll構(gòu)件。
二、硬件電路設(shè)計(jì)
本設(shè)計(jì)硬件部分主要是由兩部分組成。外線(xiàn)DTMF雙音頻碼譯碼電路和家用電器控制電路。其中主要部分是DTMF譯碼電路。該電路由MT8880作為DTMF譯碼芯片,由AT89C52接收MT8880的D0~D3引腳采集的16進(jìn)制碼,將所得到的碼反映到相對(duì)應(yīng)的引腳上,從而控制不同的用電設(shè)備。
三、程序設(shè)計(jì)
程序設(shè)計(jì)是本系統(tǒng)的重要部分,主要包括兩部分。一是單片機(jī)分析8880數(shù)據(jù)進(jìn)而反映到IO口,控制不同的家用電器(繼電器);二是MCGS在PC端的軟件開(kāi)發(fā)。
1.單片機(jī)程序設(shè)計(jì)。本系統(tǒng)選用AT89C51單片機(jī)作為主要控制芯片,當(dāng)INT1引腳接收到電平變化信息后,利用單片機(jī)中斷接口填寫(xiě)接收外部電話(huà)控制碼的程序內(nèi)容,即MT8880的D0~D3的并口數(shù)據(jù)。如果接收完整,則在單片機(jī)的P0相應(yīng)引腳上進(jìn)行反向操作,進(jìn)而控制相應(yīng)的家用電器??刂仆瓿珊?,單片機(jī)利用串口通信向MCGS發(fā)送控制完成數(shù)據(jù)。2.MCGS程序設(shè)計(jì)。MCGS作為雙上位機(jī)其中一個(gè),當(dāng)接收到單片機(jī)發(fā)送過(guò)來(lái)的控制家電完成的數(shù)據(jù)后,運(yùn)用動(dòng)畫(huà)直觀(guān)的顯示哪一臺(tái)用電設(shè)備已經(jīng)開(kāi)啟,并儲(chǔ)存控制過(guò)程及控制發(fā)生時(shí)間。用于以后隨時(shí)查詢(xún)。MCGS在程序編寫(xiě)的時(shí)候注意添加串口父設(shè)備時(shí)每一個(gè)參數(shù)必須和單片機(jī)發(fā)送的參數(shù)格式內(nèi)容保持一致,起始位結(jié)束位完全相同。接收的每一幀數(shù)據(jù)保存到實(shí)時(shí)數(shù)據(jù)庫(kù)中。