发明内容
本发明的目的在于提供一种通信***和一种通信方法,所述通信***中的控制柜可以可靠地与上位机和***设备进行通信,且不会增加通信***的成本和硬件体积。
为了实现上述目的,作为本发明的一个方面,提供一种通信***,所述通信***包括上位机、控制柜和***设备,所述控制柜包括用于所述***设备与所述上位机之间通信的串口,其中,当所述通信***处于工作阶段时,所述通信***的***周期包括轮询阶段和自由通信阶段,所述上位机能够在所述轮询阶段向所述控制柜发送查询指令,所述控制柜能够在所述自由通信阶段与所述***设备通信。
优选地,所述上位机包括上位机处理器和与所述上位机处理器电连接的上位机数传电台,所述上位机数传电台与所述控制柜进行通信,所述上位机处理器通过所述上位机数传电台获取所述控制柜中的数据实现对所述***设备和所述控制柜的监控。
优选地,所述控制柜包括控制装置、能够与所述上位机通信的控制柜数传电台和能够与所述***设备通信的无线收发器,所述控制柜数传电台和所述无线收发器通过同一个串口与所述控制装置通信,所述上位机能够在所述轮询阶段向所述控制柜数传电台发送所述查询指令,所述控制装置能够在所述自由通信阶段通过所述无线收发器与所述***设备通信。
优选地,所述上位机中设置有上级计时器,所述控制柜中设置有下级计时器,在所述轮询阶段,所述上位机向所述控制柜发送目的报文,所述目的报文中包括所述上级计时器的时钟值,所述控制柜能够将所述上级计时器的时钟值与所述下级计时器的时钟值比较,并将所述下级计时器与所述上级计时器同步。
优选地,在所述通信***的同步阶段内,所述上位机能够向所述控制柜发送握手报文,所述握手报文中包括所述上级计时器的时钟值,接收到所述握手报文的控制柜能够将所述上级计时器的时钟值与所述下级计时器的时钟值比较,以使所述上级计时器和所述下级计时器同步。
优选地,在一个***周期内,所述轮询阶段占1个时间片,所述自由通信阶段占至少一个时间片。
优选地,所述上位机中设置有与所述上位机处理器电连接的第一运算单元,所述控制柜中设置有与所述控制装置电连接的第二运算单元,所述第一运算单元用于计算所述上级计时器的时钟值除以所述***周期所得的第一余数,所述上位机处理器根据所述第一余数判断所述上位机是否处于所述轮询阶段,所述第二运算单元用于计算所述下级计时器的时钟值除以所述***周期所得的第二余数,所述控制装置根据所述第二余数判断所述控制柜是否处于所述自由通信阶段。
作为本发明的另一个方面,提供一种利用本发明所提供的上述的通信***的通信方法,其中,所述通信方法包括在工作阶段内进行的查询步骤,该查询步骤包括:
S2、判断所述通信***的时间状态;
当所述通信***处于轮询阶段时,则执行步骤S32:上位机向控制柜发送查询指令;
当所述通信***处于自由通信阶段时,则执行步骤S33:控制柜与***设备通信。
优选地,所述步骤S32之前还包括:
S31、所述上位机向所述控制柜发送空闲监测指令,当监测到所述控制柜空闲时,则执行步骤S32;当监测到所述控制柜繁忙时,重复所述步骤S31,直至监测到所述控制柜空闲为止。
优选地,当所述通信***处于所述轮询阶段时,所述步骤S32包括:
S32a、所述上位机向所述控制柜发送目的报文,所述控制柜接收到所述目的报文后,根据所述目的报文中的上级计时器的时钟值更新下级计时器,以使所述上级计时器与所述下级计时器同步;和
S32b、所述控制柜向所述上位机发送目标数据。
优选地,所述步骤S2包括:
S21、所述上位机获取上级计时器中的时钟值,所述控制柜获取下级计时器中的时钟值;
S22、第一运算单元计算所述上级计时器中的时钟值除以***周期所得的第一余数,当该第一余数小于所述轮询阶段所需的时间时,则判定所述上位机处于所述轮询阶段,当所述第一余数大于所述轮询阶段所需的时间时,则判定所述上位机处于所述自由通信阶段;第二运算单元计算所述下级计时器中的时钟值除以***周期所得的第二余数,当所述第二余数小于所述轮询阶段所需的时间时,则判定所述控制柜处于所述轮询阶段,当所述第二余数大于所述轮询阶段所需的时间时,则判定所述控制柜处于所述自由通信阶段。
优选地,所述通信***还包括辅助设备,所述辅助设备与所述控制柜的所述控制装置相连,向所述控制装置提供辅助的参数。
优选地,所述通信方法还包括在所述查询步骤之前进行的同步步骤,该同步步骤在同步阶段进行,并且所述同步步骤包括:
S11、所述上位机向所述控制柜发送握手报文;
S12、所述控制柜根据所述握手报文中的时钟值更新所述控制柜中的下级计时器的时钟值,使得所述控制柜中的所述下级计时器与上级计时器一致。
优选地,所述同步步骤还包括:
S10、所述上位机启动后,在第一预定时间内监测所述控制柜是否空闲;当监测到所述控制柜空闲时,执行所述步骤S11。
优选地,所述同步步骤所需的时间为***周期的1至5倍。
优选地,当所述控制柜未能在所述同步阶段接收到所述握手报文时,所述控制柜执行所述步骤S33。
本发明提供的通信***和通信方法,在所述轮询阶段内,上位机向控制柜发送查询指令,以向控制柜索取所需的数据;在自由通信阶段内,控制柜与***设备组成对等通讯链路,这个自由通信阶段,控制柜与***设备都会主动发起通信。由此可知,在同一时间,只有一种数据通过所述控制柜的串口。例如,在所述轮询阶段,只有上位机发送的查询指令通过所述串口传递至控制柜,在所述自由通信阶段,只有***设备和控制柜之间的通信数据通过所述串口,因而,在同一时间,通过所述串口的数据不会受到干扰。所以,控制柜可以利用同一个串口与***设备和上位机进行通信,从而在不增加通信***的成本和硬件体积的情况下,可靠地实现控制***中的控制柜与上位
机和***设备之间的通信。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
如图1所示,作为本发明的一个方面,提供一种通信***,该通信***包括上位机100、控制柜200和***设备300,控制柜200包括用于***设备300与上位机100之间通信的串口(未示出),其中,当所述通信***处于工作阶段时,所述通信***的***周期包括轮询阶段和自由通信阶段,上位机100可以在所述轮询阶段向控制柜200发送查询指令,控制柜200可以在所述自由通信阶段与***设备300通信。
该通信***,在所述轮询阶段内,上位机向控制柜发送查询指令,以向控制柜索取所需的数据;在自由通信阶段内,控制柜与***设备组成对等通讯链路,这个自由通信阶段,控制柜与***设备都会主动发起通信。由此可知,在同一时间,只有一种数据通过所述控制柜的串口。例如,在所述轮询阶段,只有上位机发送的查询指令通过所述串口传递至控制柜,在所述自由通信阶段,只有***设备和控制柜之间的通信数据通过所述串口,因而,在同一时间,通过所述串口的数据不会受到干扰。所以,控制柜可以利用同一个串口与***设备和上位机进行通信,从而在不增加通信***的成本和硬件体积的情况下,可靠地实现控制***中的控制柜与上位机和***设备之间的通信。
作为本发明的一种具体实施方式,上位机100包括上位机处理器120和与该上位机处理器120电连接的上位机数传电台110,上位机数传电台110与控制柜200进行通信。上位机处理器120通过上位机数传电台110获取控制柜200中的数据,以实现对***设备300和控制柜200的监控。
如上文中所述,在所述通信***的工作阶段(即,***设备进行正常作业,上位机通过控制柜对***设备的作业情况进行监控的阶段)内,所述通信***的***周期包括轮询阶段和自由通信阶段。在所述轮询阶段内,上位机处理器120通过上位机数传电台110向控制柜200发送查询指令,以向控制柜200索取所需的数据。在自由通信阶段内,控制柜200与***设备300组成对等通讯链路,这个自由通信阶段,控制柜200与***设备300都会主动发起通信。由此可知,在同一时间,只有一种数据通过所述串口。例如,在所述轮询阶段,只有上位机100发送的查询指令通过所述串口传递至控制柜200,在所述自由通信阶段,只有***设备300的参数或控制柜200的数据通过所述串口,因而,在同一时间,通过所述串口的数据不会受到干扰。所以,控制柜200可以利用同一个串口与***设备300和上位机100进行通信,从而减小了所述通信***的物理体积。
应当理解的是,在所述通信***的工作阶段内,上位机100通过控制柜200获取***设备300的数据以及控制柜200本身的数据,并且控制柜200获取***设备300的数据。一个上位机100可以对应于多个控制柜200(图1中仅示出了其中的两个控制柜),每个控制柜200都与相应的***设备相对应。在所述通信***的运行的过程中,各个控制柜200中所存储的数据是不同的,在不同的时间段,上位机100需要不同控制柜200中的数据,因此,上位机100周期性地轮询不同控制柜200。上位机处理器120中设置有监测程序,当监测程序需要预定的控制柜中的数据时,则在所述轮询阶段通过上位机数传电台110与该预定的控制柜通信,以获取所需的数据。
在所述通信***进行通信时,上位机100的上位机数传电台110仅在所述轮询阶段向控制柜200发送查询指令,并且控制柜200仅在所述自由通信阶段与***设备300通信,避免了控制柜200与上位机100和***设备300同时通信的情况,从而可以避免产生的解析错误的风险。因此,利用本发明所提供的通信***可以确保控制柜200与上位机100和***设备300通信时的可靠性。而且,本发明所提供的通信***并没有增加控制柜200中的串口的数量,从而避免了通信***的物理体积增加以及避免了通信***的成本增加。
在本发明中,***设备300为执行具体生产工艺的设备,***设备300与控制柜200之间进行通信,以将***设备300的数据(例如,工艺参数、***设备300自身的运行参数等)传输给控制柜200,在所述轮询阶段,控制柜200将***设备300的数据发送给上位机100。
容易理解的是,在自由通信阶段,上位机100不发送指令,但可以接收数据。
在轮询阶段,控制柜200的串口与上位机数传电台110通信,在自由通信阶段,控制柜200的串口与***设备300通信。为了实现上述功能,优选地,控制柜200可以包括控制装置210、可以与上位机100通信的控制柜数传电台220和可以与***设备300通信的无线收发器230,控制柜数传电台220和无线收发器230通过同一个串口与控制装置210通信,在所述轮询阶段,控制装置210通过控制柜数传电台220与上位机通信,在所述自由通信阶段,控制装置210通过无线收发器230与***设备300通信。容易理解的是,***设备300可以包括用于发送数据的遥控器,通过遥控器将***设备300中的数据发送给控制柜200的无线收发器230。
在所述通信***的工作阶段,上位机100的时间与控制柜200的时间应当是同步的,从而可以确保控制柜200和上位机100同时处在所述轮询阶段,并且还可以确保轮询阶段过后,控制柜200可以进入自由通信阶段,以及上位机100在自由通信阶段不会向控制柜200发送命令。可以通过多种实施方式来实现上述目的,例如,可以在上位机100和控制柜200中分别设置精确的时钟,以确保上位机100和控制柜200的时间精确。应当理解的是,虽然在自由通信阶段,上位机100不向控制柜200发送命令,但是上位机100可以接收到控制柜200与***设备300的通信过程数据,并对该通信过程数据做记录。
为了降低成本,优选地,上位机100中可以设置有上级计时器130,每个控制柜200中均可以设置有下级计时器240。
在所述轮询阶段,上位机100的上位机处理器120通过上位机数传电台110向控制柜200发送目的报文,该目的报文中包括上级计时器130的时钟值,控制柜200可以将所述上级计时器的时钟值与下级计时器240的时钟值比较,并根据比较结果将下级计时器240与上级计时器130同步。
应当理解的是,只有在控制柜200空闲时(即,未与***设备300进行通信时),方可接收上位机数传电台110发送的目的报文。
所述目的报文的目的在于查询所述控制柜200中的数据。具体地,所述控制柜200中的数据可以包括控制柜200自身的运行参数以及该控制柜200对应的***设备300的运行参数以及相应的工艺参数。
通常,控制柜200的串口为小端模式,为了数据处理方便,所有的数值类型都采用小端格式数据。目的报文的定义如表1所示:
表1
同步码 |
目的地址 |
命令码 |
参数长度 |
命令参数 |
校验码 |
1Btye |
1Btye |
1Btye |
2Btye |
N*1Btye |
1Btye |
(1)同步码(1Btye):其值为常量0×3A(即,字符“:”),便于解析命令时判断命令起始位置;
(2)目的地址(1Btye):设备通讯地址2-16,保留地址0作为广播地址,1为主站地址;
(3)命令码(1Btye):功能编号;
(4)参数长度(2Btye):表示报文中数据的字节数目,假设为N;
(5)命令参数:执行命令码时必须的参数,长度为N*1Byte;当N等于0时,报文中将没有该数据项;
(6)校验码(1Btye):用于对从Address到Data之间的所有数据验证。
校验算法是将所有目的地址到命令参数之间的数据按字节求和,然后除以256所得余数即为校验码。校验码的计算公式如下:
校验码=(目的地址+命令码+参数长度+Data[0]+…+Data[N-1])MOD256。
在所述通信***的整个运行过程中可以包括同步阶段和工作阶段。所述通信***启动(包括上位机100刚刚启动和控制柜200以及***设备300刚刚启动)后的一段时间为所述通信***的同步阶段。在所述同步阶段内,控制柜200和***设备300初次上电,控制柜200中的下级计时器240开始计时,通常下级计时器240以1ms步进计时。在所述同步阶段内,上位机100通过上位机数传电台110向控制柜200发送握手报文,该握手报文中也包括上级计时器130的时钟值,接收到所述握手报文的控制柜200可以将上级计时器130的时钟值与下级计时器240的时钟值进行比较,以使上级计时器130与下级计时器240同步。如上文中所述,每个上位机100对应有多个控制柜200,因此,优选地,在所述同步阶段内,所有控制柜200都可以完成与上位机100的同步,从而可以进入查询阶段。
如果在所述同步阶段内,并非所有的控制柜200都接收到了上位机100的握手报文,则未接收到握手报文的控制柜200进入直接自由通信阶段,与***设备300进行通信。当进入自由通信阶段的控制柜200接收到上位机100发出的目的报文时,该控制柜200根据目的报文中的上级计时器130中的时钟值更新自身的下级计时器240,使上位机100与控制柜200同步。
经过上述同步阶段之后,所述通信***进入查询阶段,上位机100的上位机处理器120判断此时处于通信***的轮询阶段还是自由通信阶段。如果上位机处理器120判断此时处于所述通信***的轮询阶段,则向预定的控制柜200发送目的报文,并接受相应的目标数据。如果上位机处理器120判断此时处于所述通信***的自由通信阶段,则等待下一个轮询阶段。等待期间,上位机100仅接收数据,但不发出指令。
在本发明中,对每个***周期内轮询阶段与自由通信阶段各自所占的时间并不做限定。通常,所述轮询阶段可以占1个时间片T,而所述自由通信阶段可以占n个时间片T,其中n为不小于1的整数。当***设备300向控制柜200中传输的数据达到一定值之后,上位机100与控制柜200进行通信,从而获取***设备300和控制柜200的数据。例如,在图2中所示的具体实施方式中,每个周期的长度为5T。轮询阶段的时间为1T,而自由通信阶段的时间为4T。
可以根据具体的串口通信确定每个时间片T的具体时间。假设通信设置波特率为9600bps,起始位1位、数据位8位、奇偶校验位1位、停止位2位,传送一个字符需要12位,因此每秒理论传送800字节,每个字符所需的传送时间为1000ms/800=1.25ms。假定协议报文最大长度为100字节,理论时间片即为T=1.25ms×100=125ms。考虑通信延迟,还需预留一定余量。实际时间片可以为理论时间片的2至4倍,假定时间片选为T=125ms×4=500ms,则***周期为2500ms,轮询阶段为500ms,自由通信阶段为2000ms。
如上文中所述,在本发明中,控制柜200可以包括通过串口相连的控制装置210、控制柜数传电台220和无线收发器230,***设备300可以包括遥控器,控制柜数传电台220与上位机100的上位机数传电台110通信,无线收发器230与***设备300的遥控器通信。
在本发明中,对所述串口的类型并不做具体限定,例如,所述串口可以为RS-485总线。
容易理解的是,控制柜200的下级计时器240与控制装置210电连接。
上位机100中设置有第一运算单元140,该第一运算单元140与所述上位机处理器120电连接,控制柜200中设置有第二运算单元250,该第二运算单元250与控制装置210电连接。
第一运算单元140用于计算上级计时器130的时钟值除以***周期所得的第一余数t1,上位机处理器120根据第一余数t1判断所述上位机100是否处于所述轮询阶段。具体地,当第一余数t1小于所述轮询阶段所占用的时间时,则说明所述上位机100处于所述轮询阶段,上位机处理器120通过上位机数传电台110与控制柜200进行通信。
第二运算单元250用于计算下级计时器240的时钟值除以所述***周期所得的第二余数t2,控制装置210根据所述第二余数判断所述控制柜200是否处于所述自由通信阶段。当t2大于所述轮询阶段所占的时间时,则说明所述控制柜200处于所述自由通信阶段,控制柜200可以与***设备300之间进行通信,当t2小于所述轮询阶段所占的时间时,则说明所述控制柜200处于轮询阶段,所述控制柜200可以接收上位机100的查询指令。
在上位机100与控制柜200同步的情况下,第一运算单元140计算得出的第一余数t1与第二运算单元250计算得出的第二余数t2是相等的。
所述通信***还可以包括辅助设备400,该辅助设备400与控制柜200的控制装置210相连,可以向控制装置210提供辅助的参数(例如,环境温度等)。辅助设备400可以与控制柜200通信,并且控制柜200可以根据需求将辅助设备400提供的数据发送至上位机100。
辅助设备400可以通过其他串口与控制柜200通信,即,辅助设备400不与上位机100以及***设备300共用串口。
作为本发明的另一个方面,如图4所示,提供上述通信***的通信方法,其中,该通信方法包括在工作阶段内进行的查询步骤,该查询步骤包括:
S2、判断所述通信***的时间状态。
如上文中所述,在所述通信***处于工作阶段时,所述***周期包括轮询阶段和自由通信阶段。因此,在工作阶段内,所述的通信***的时间状态包括所述通信***处于所述轮询阶段以及所述通信***处于所述自由通信阶段两种时间状态。
当所述通信***处于所述轮询阶段时,则执行步骤S32:所述上位机向所述控制柜发送查询指令;
当所述通信***处于所述自由通信阶段时,则执行步骤S33:所述控制柜与所述***设备通信。
通过步骤S32,上位机可以向所述控制柜索取数据(包括所述控制柜自身的数据以及该控制柜采集的***设备的数据);通过步骤S33,控制柜可以获取***设备的数据。
在所述通信方法中,所述上位机仅可以在***周期的轮询阶段向所述控制柜发送查询指令(步骤S32),并且所述控制柜仅在所述***周期的自由通信阶段与***设备通信(步骤S33),避免了上位机和***设备同时与控制柜通信时所产生的解析错误的风险,从而确保了控制柜通过同一个串口与上位机和***设备通信时的可靠性。而且,本发明所提供的通信***中,所述控制柜中并没有增加串口的数量,从而避免了通信***的物理体积增加,因此避免了通信***的成本增加。
只有当所述控制柜空闲时,即,所述控制柜并未与对应的***设备通信时,方可与所述上位机进行通信。由于上位机仅能判断该上位机本身是否处于轮询阶段,而控制柜也只能判断该控制柜本身是否处于轮询阶段。上位机与控制柜有可能不同步,当上位机进入轮询阶段时,而控制柜尚未进入轮询阶段。在这种情况中,为了避免控制柜中发生数据混合的情况,优选地,可以在步骤S32之前进行判断控制柜是否空闲的步骤,具体地,所述步骤S32之前还可以包括:
S31、所述上位机向所述控制柜发送空闲监测指令,当监测到所述控制柜空闲时,则执行步骤S32;当监测到所述控制柜繁忙时(即,正与所述***设备通信),则重复所述步骤S31,直至监测到所述控制柜空闲为止。
当进行所述通信方法时,上位机的时间与控制柜的时间应当是一致的。可以通过多种方法确保上位机的时间与控制柜的时间一致,例如,可以在同一时刻同时启动上位机和所述控制柜以及与该控制柜对应的***设备。
为了降低对操作者的要求,优选地,可以通过如下方法使得上位机的时间与所述控制柜的时间保持一致:
当所述通信***处于所述轮询阶段时,所述步骤S32可以包括:
S32a、所述上位机向所述控制柜发送目的报文,所述控制柜接收到所述目的报文后,根据所述目的报文中的所述上级计时器的时钟值更新所述下级计时器,以使所述上级计时器与所述下级计时器同步;和
S32b、所述控制柜向所述上位机发送目标数据。该目标数据为所述目的报文中所要求的数据。
进行步骤S32a的优点在于,可以随着通信的进行,不断的对控制柜的下级计时器进行更新,确保在整个通信过程中控制柜与上位机都是同步的。
下面介绍如何判断所述通信***的时间状态,所述步骤S2具体包括:
S21、所述上位机获取所述上级计时器中的时钟值,所述控制柜获取所述下级计时器中的时钟值;
S22、所述上位机的第一运算单元计算所述上级计时器中的时钟值除以***周期所得的第一余数t1,当该第一余数t1小于所述轮询阶段所需的时间时,则判定所述上位机处于所述轮询阶段,当所述第一余数大于所述轮询阶段所需的时间时,则判定所述上位机处于所述自由通信阶段;所述第二运算单元计算所述下级计时器中的时钟值除以***周期所得的第二余数,当所述第二余数小于所述轮询阶段所需的时间时,则判定所述控制柜处于所述轮询阶段,当所述第二余数大于所述轮询阶段所需的时间时,则判定所述控制柜处于所述自由通信阶段。
由于上位机和控制柜通常是同步的,因此,上位机和控制柜中的任意一者的时间状态均可以表示所述通信***的工作状态。
为了降低对操作者的操作精度的要求,优选地,如图3所示,所述通信方法还可以包括在所述查询步骤之前进行的同步步骤,该同步步骤在所述同步阶段进行,并且该同步步骤包括:
S11、所述上位机向所述控制柜发送握手报文;
S12、所述控制柜根据所述握手报文中的时钟值更新所述控制柜中的下级计时器的时钟值,使得所述控制柜中的所述下级计时器与所述上级计时器一致。
经过同步步骤之后,控制柜与上位机的时间同步,从而可以使通信过程更加可靠。
如上文中所述,每个上位机可以对应有多个控制柜,因此,作为本发明的一种实施方式,所述同步步骤还可以包括:
S10、所述上位机启动后,在第一预定时间内监测所述控制柜是否空闲;当监测到所述控制柜空闲时,则执行所述步骤S11。第一预定时间可以为1个***周期(5T)或者3个***周期(15T)。
经过同步阶段后,至少大部分控制柜的时间与上位机的时间同步。
当所述上位机和所述控制柜上电时,即,所述通信***刚刚启动时,进行上述同步步骤,从而可以确保在进行第一次进行所述查询步骤时,所述上位机的时间和所述控制柜的时间是同步的。
在本发明中,对同步步骤所需的时间并没有特殊的限制,可以从启动上位机和控制柜开始,直至所述控制柜与所述上位机时间同步为止,例如,所述同步步骤所需的时间可以为***周期的1至5倍。
在所述步骤S11中,所述控制柜中的上级计时器以1ms步进(即,启动1ms时钟中断)。在下级计时器的步进计时阶段内,控制柜等待上位机发送的握手报文,如果接收到了所述握手报文,则根据所述握手报文中所述上位机的时钟值更新所述控制柜中的下级计时器,使该下级计时器与所述上级计时器同步。
每个上位机可以对应有多个控制柜,当控制柜数量较多时,可能会出现所述同步阶段已经结束,但仍有控制柜没有接收到握手报文。如果控制柜未能在所述同步阶段接收到所述握手报文,则该未接收到握手报文的控制柜进入所述自由通信阶段,执行所述步骤S33,与***设备进行通信。当所述控制柜在所述查询阶段接收到所述上位机发送的目的报文时,再与所述上位机进行同步。
下面结合图5和图6介绍在进行本发明所提供的优选实施方式时,上位机和控制柜的操作流程。
在同步阶段内,当上位机启动时,上位机等待第一预定时间,在第一预定时间内,上位机监测控制柜是否空闲,当监测到空闲的控制柜时,则向该空闲的控制柜发送握手报文。当控制柜和***设备上电后(如图6中的虚线框内所示),以1ms步进(即,启动1ms时钟中断),并等待上位机发送的握手报文。在所述同步阶段内,当空闲的控制柜接收到所述握手报文之后,更新该控制柜中的下级计时器,使得该控制柜与所述上位机同步,进入查询阶段。如果在同步阶段内,控制柜未能接受到所述握手报文,则直接进入查询阶段的自由通信阶段,与***设备进行通信。
当所述通信***进入查询阶段时,执行所述查询步骤。如图5所示,首先,第一运算单元计算上级计时器中的时钟值T1除以***周期5T之后的第一余数t1,如果第一余数t1小于轮询阶段所占的时间T,则说明此时上位机处于轮询阶段,上位机监测预定的控制柜是否空闲,当预定的控制柜空闲时,上位机向该空闲的控制柜发送目的报文。如果第一余数t1大于轮询阶段所站的时间T,则说明此时上位机处于自由通信阶段,上位机重复监测预定控制柜是否空闲,在此时间内,上位机只接收数据,不发送数据。当预定的控制柜繁忙时,上位机重复监测预定控制柜是否空闲,在此时间内,上位机只接收数据,不发送数据。
如图6所示,第二运算单元计算下级计时器中的时钟值T2除以***周期5T之后的余数t2,如果第二余数t2小于轮询阶段所占的时间T,则说明所述控制柜处于轮询阶段,不与***设备通信,而是接收所述目的报文。如果第二余数t2大于轮询阶段所占的时间T,则说明所述控制柜处于自由通信阶段,则与***设备发送信息,并接收***设备的数据。
随后,当所述控制柜接收到所述目的报文之后,如图6所示,处理所述目的报文,确定所述上位机所需的数据,并判断所述目的报文是否是所述上位机发出的,如果为所述上位机发出的,则更新所述下级计时器,并向上位机发出目标数据;如果不是所述上位机发出的,则重新计算t2;同时,如图5所示,当所述上位机接收到目标数据之后对该目标数据进行处理,处理完毕后重新检测另一预定的控制柜(不同于上文中的预定的控制柜)是否空闲,并且重新开始计算t1。
容易理解的是,在图6中的“接收信息”中接收的信息可以是在自由通信阶段***设备300发送给控制柜200的信息,也可以是轮询阶段上位机100发送给控制柜200的信息。在对信息进行处理之后,还可以判断所述信息是否是上位机报文,如果是上位机报文,则控制柜更新自身的下级计时器,如果不是上位机报文,则返回计算t2的步骤。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。