基于AT89C52網(wǎng)絡監(jiān)控系統(tǒng)的設計與實現(xiàn)
(2)下位機狀態(tài)字:
本文引用地址:http://m.butianyuan.cn/article/173783.htm
b0:登陸請求1,無登陸請求0;
b1:已登陸狀態(tài)標志1,未登陸狀態(tài)標志0;
b2:已收卷狀態(tài)標志1,未收卷狀態(tài)標志0;
b3:開始答題狀態(tài)標志1,未開始答題狀態(tài)標志O;
b4:交卷請求標志1,無交卷請求標志0;
b5:已交卷標志1,未交卷標志O;
b6:答題中止標志l,答題恢復標志O。
4 通信過程
上位機開機啟動程序,上位機進入輪詢過程。此時,下位機開機登陸,在輪詢到自己時,發(fā)出登陸信息,上位機收到后,進行必要的登陸處理。在所有下位機登陸完畢后或監(jiān)考老師認為收到所有考生的登陸信息后,按下發(fā)卷按鈕,對每一個登陸下位機依次發(fā)卷。發(fā)卷完畢后,由監(jiān)考老師按下開考按鈕,以廣播方式發(fā)出考試開始指令,下位機顯示考試題目,系統(tǒng)開始計時。在考試進行過程中,監(jiān)考老師可查詢?nèi)我粋€下位機的狀態(tài)(包括考生考試情況);甚至可以啟動自動巡考指令,自動巡視每個考生的答題情況??荚囘^程中考生答題完畢可交卷,在考生按下交卷按鈕后交卷,發(fā)出交卷信息,上位機接收,并發(fā)出正確接收的回復信息。考試過程中,監(jiān)考老師發(fā)現(xiàn)有學生作弊,可隨時按下中止考試按鈕,中止此下位機的運行,考試記零分??荚嚂r間到,系統(tǒng)自動判斷是否仍有考生沒有交卷,中止考生答卷,并取回相應下位機的答題信息。上下位機基本輪詢及通信動作示意圖如圖3所示。
上下位機通信動作過程如下:
①上位機作為網(wǎng)絡主控端,以一定時間間隔dtl進行輪詢。輪詢過程是這樣的:首先上位機查詢上位機狀態(tài)字,判斷是否存在通訊請求,如果沒有,就對輪詢到的下位機發(fā)出通訊授權標志,若在延遲短暫時間后下位機無應答,置此地址下位機不在線標志,并中止此次輪詢;若有應答則置與此下位機通訊的通道標志。
②下位機發(fā)出指令:表明下位機回復查詢指令,根據(jù)狀態(tài)字判斷下位機狀態(tài)。
③上位機發(fā)出指令:表明上位機根據(jù)下位機的狀態(tài)字及上位機狀態(tài)字,按上位機有優(yōu)先原則,發(fā)出上位機準備接收信息。
④下位機發(fā)出指令:上位機根據(jù)功能指令解析數(shù)據(jù),完成相應的顯示及確認回復。
⑤上位機發(fā)出指令:在從下位機向上位機傳輸信息過程中出現(xiàn)錯誤時,上位機將向下位機發(fā)出重發(fā)功能指令,重發(fā)次數(shù)確定根據(jù)調(diào)試過程確定。
在設計RS 485通信軟件時,要注意對RS 485控制端的軟件編程。為了保證數(shù)據(jù)收發(fā)可靠,在RS 485總線狀態(tài)切換時需要加適當?shù)难訒r,延時一般控制在1 ms左右,再進行數(shù)據(jù)的收發(fā)。經(jīng)過這樣處理后,使總線在狀態(tài)切換時有一個穩(wěn)定的工作過程。
5 上位機通信軟件的設計
上位機通信是采用一個專門針對串行通信的CSerial類進行程序設計的,該方法功能較強,只要理解這種類的幾個成員函數(shù),就能方便使用。以下是幾個常用的成員函數(shù):
評論