b0:登陆请求1,无登陆请求0;
b1:已登陆状态标志1,未登陆状态标志0;
b2:已收卷状态标志1,未收卷状态标志0;
b3:开始答题状态标志1,未开始答题状态标志O;
b4:交卷请求标志1,无交卷请求标志0;
b5:已交卷标志1,未交卷标志O;
b6:答题中止标志l,答题恢复标志O。
4 通信过程
上位机开机启动程序,上位机进入轮询过程。此时,下位机开机登陆,在轮询到自己时,发出登陆信息,上位机收到后,进行必要的登陆处理。在所有下位机登陆完毕后或监考老师认为收到所有考生的登陆信息后,按下发卷按钮,对每一个登陆下位机依次发卷。发卷完毕后,由监考老师按下开考按钮,以广播方式发出考试开始指令,下位机显示考试题目,系统开始计时。在考试进行过程中,监考老师可查询任一个下位机的状态(包括考生考试情况);甚至可以启动自动巡考指令,自动巡视每个考生的答题情况。考试过程中考生答题完毕可交卷,在考生按下交卷按钮后交卷,发出交卷信息,上位机接收,并发出正确接收的回复信息。考试过程中,监考老师发现有学生作弊,可随时按下中止考试按钮,中止此下位机的运行,考试记零分。考试时间到,系统自动判断是否仍有考生没有交卷,中止考生答卷,并取回相应下位机的答题信息。上下位机基本轮询及通信动作示意图如图3所示。
上下位机通信动作过程如下:
①上位机作为网络主控端,以一定时间间隔dtl进行轮询。轮询过程是这样的:首先上位机查询上位机状态字,判断是否存在通讯请求,如果没有,就对轮询到的下位机发出通讯授权标志,若在延迟短暂时间后下位机无应答,置此地址下位机不在线标志,并中止此次轮询;若有应答则置与此下位机通讯的通道标志。
②下位机发出指令:表明下位机回复查询指令,根据状态字判断下位机状态。
③上位机发出指令:表明上位机根据下位机的状态字及上位机状态字,按上位机有优先原则,发出上位机准备接收信息。
④下位机发出指令:上位机根据功能指令解析数据,完成相应的显示及确认回复。
⑤上位机发出指令:在从下位机向上位机传输信息过程中出现错误时,上位机将向下位机发出重发功能指令,重发次数确定根据调试过程确定。
在设计RS 485通信软件时,要注意对RS 485控制端的软件编程。为了保证数据收发可靠,在RS 485总线状态切换时需要加适当的延时,延时一般控制在1 ms左右,再进行数据的收发。经过这样处理后,使总线在状态切换时有一个稳定的工作过程。
5 上位机通信软件的设计
上位机通信是采用一个专门针对串行通信的CSerial类进行程序设计的,该方法功能较强,只要理解这种类的几个成员函数,就能方便使用。以下是几个常用的成员函数: