CN110134632A - 一种校时处理的方法、装置及计算机存储介质 - Google Patents
一种校时处理的方法、装置及计算机存储介质 Download PDFInfo
- Publication number
- CN110134632A CN110134632A CN201910388552.7A CN201910388552A CN110134632A CN 110134632 A CN110134632 A CN 110134632A CN 201910388552 A CN201910388552 A CN 201910388552A CN 110134632 A CN110134632 A CN 110134632A
- Authority
- CN
- China
- Prior art keywords
- duration
- sleep
- main website
- school
- sleep function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000007958 sleep Effects 0.000 claims abstract description 162
- 230000006870 function Effects 0.000 claims description 107
- 238000012545 processing Methods 0.000 claims description 32
- VIKNJXKGJWUCNN-XGXHKTLJSA-N norethisterone Chemical compound O=C1CC[C@@H]2[C@H]3CC[C@](C)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1 VIKNJXKGJWUCNN-XGXHKTLJSA-N 0.000 claims description 6
- 230000005059 dormancy Effects 0.000 claims description 3
- 238000012937 correction Methods 0.000 abstract description 18
- 238000004891 communication Methods 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 15
- 230000002123 temporal effect Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 102100037060 Forkhead box protein D3 Human genes 0.000 description 2
- 101001029308 Homo sapiens Forkhead box protein D3 Proteins 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
Abstract
一种校时处理的方法、装置及计算机存储介质,包括:校验处理开始时,确定当前随机毫秒数时刻到下一个整秒或在后的第二个整秒的时长作为间隔时长;在主站发送完校时处理的校时报文前,控制主站进行间隔时长的睡眠。本发明实施例降低了校时处理的校时误差,提升了自动化系统的运行质量。
Description
技术领域
本文涉及但不限于自动化技术,尤指一种校时处理的方法、装置及计算机存储介质。
背景技术
Modbus协议是工业自动化领域广泛应用的平衡型应答通信协议,已经成为通用工业标准。Modbus协议支持传统的串口(RS-232、RS-422、RS-485)和以太网设备。Modbus通信使用主(Master,也称主站)—从(Slave,也称从站)技术,即在同一时刻,仅一个主设备能初始化查询(也叫请求,依次查询称为轮询),从设备根据主设备查询提供的报文内容作出相应反应。主设备可单独和从设备通信,也能以广播方式和所有从设备通信;单独通信时,从设备返回一消息作为回应;以广播方式通信时,从设备不作回应。
主站在进行新一轮的请求时,会优先检查是否有控制类报文需要发送;其中,校时报文就属于控制类报文。当主站需要对从站进行校时处理时,需要按主从双方事先约定的格式生成含主站时间信息的校时报文,在发送最后一条校时报文时启动接收超时定时器,根据在超时定时器设定的超时时间内是否收到从站设备应答,确定校时处理是否完成(超时定时器设定的超时时间内成功收到从站设备应答(广播方式时从站不应答),表明从设备成功接收了校时报文。)。在自动化控制过程中,从设备的本地时钟起着非常关键的作用,很多自动化信息(例如遥控、报警、事件顺序记录(SOE)、日志等)都需要携带时间信息,且往往都需要根据精确到毫秒甚至微妙的时间信息确定信息的先后次序;如果本地时钟不正确或者发生抖动,则可能会导致排序错乱、信息错误,进而可能影响运营甚至引起事故。因此,本地时钟的准确性高低决定了从设备所提供的自动化信息的准确性,而一系列互联的从设备的自动化信息的准确度决定了自动化系统整体运行的准确性。即各从设备本地时钟的准确性与自动化系统的自动化水平的高低存在直接关联。
由于从设备(物理设备)难以避免地会出现时钟漂移,因此需要对本地时钟进行定期修正(自动或人工),如果从设备本身有可靠的时钟源(例如,外接全球定位系统(GPS)或者北斗系统),则该从设备可以完成本地时钟的自我校正。一般的,本地时钟需要借助外部系统进行时间校正,即外部系统按照双方事先约定的校时格式,对从设备进行周期授时,以对本地时钟的时间信息进行校准。当前,很多从设备所提供的校时格式只含到秒数即截至,即校时格式中不含毫秒信息;校时处理的时间信息的表述形式包括但不限于以下三种:1)UNIX时间(格林威治标准时间1970年1月1日0点至今的秒数);2)年、月、日、时、分和秒;3)年、月、日、星期、时、分和秒。数据格式包括但不限于:1、十六进制;2、二-十进制代码(BCD码);3、美国信息交换标准代码(ASCII码);4、任意字节序(如年月日时分秒,秒分时日月年)。校时精度与表述形式和数据格式无关。需要说明的是,本文的校时处理暂不考虑网络延迟和从站内部延迟(网络延迟是指主站正式发送校时报文开始到设备成功收到报文截至所得到的时间差,如果一轮校时需要顺序发送n条报文,则这n次发送的每次时间差所得累积代数和构成总的网络延迟。记网络延迟为Ts,以一条报文为例,一般地,以太网的Ts在10毫秒以内,而串口的Ts与传输波特率成反比,波特率越大,Ts越小,在9600波特率下,Ts一般在30毫秒以内。从站内部延迟是指从站成功识别出主站的完整校时时间信息到从站真正执行本地时钟修正所间隔的延迟时间,一般地,从站内部延迟在0~20毫秒之间。),本文对本地时钟的校时处理可以与网络延迟和从站内部延迟的处理相结合。
当前,相关技术中的校时处理的方法包括以下三种:1、主站在随机毫秒数时刻(随机毫秒数的时刻包括两种情形:1)发起时刻点不确定,但校时处理的间隔周期固定不变,如:每隔60分钟对从站校时;2)发起时刻点确定,且校时处理的间隔周期固定不变,例如:每天临晨3点30分对从站校时,但毫秒数不约定即随机),取主站当前时间,不考虑毫秒数,把包含秒及秒以上时间信息,按双方实现约定的协议格式打包成校时报文发送给从设备,从设备获得主站提供的时间信息后,校正从设备的本地时钟;因为发起校时处理的时刻的毫秒数随机,校时误差为0~999毫秒。2、主站在随机毫秒数时刻,取主站当前时间,对毫秒数进行四舍五入(五入是指秒数加一),把包含秒及秒以上的时间信息,按双方实现约定的协议格式打包成校时报文发送给从设备,从设备获得主站提供的时间信息后,校正从设备的本地时钟;因为发起校时处理的时刻的毫秒数随机,但进行简单的四舍五入后,校时误差为-500~499毫秒。3、主站专门设计精准的校时定时器,这个定时器预期在系统时间为0毫秒时刻时准时触发,以完成一次对从设备的校时;该方法预期0毫秒时刻准时触发的定时器,并不是每个操作系统、每个硬件平台都可以实现,且在多线程的环境下,也无法确保0毫秒时刻中央处理器(CPU)能准时触发该校时定时器;此外,即便准时触发了校时定时器,因为Modbus是应答协议,主站对从设备的所有请求都必须依次排队进行,此时若主站的某次问答未完成,则校时操作就必须排队等待。因此,在0毫秒时刻准时向从设备发送校时报文较为困难。简而言之,该方法处理复杂且依赖操作系统及软硬件环境,校时误差最终往往无法达到预期。鉴于校时定时器准时触发的毫秒误差:0~10毫秒;定时器触发后排队发送校时报文的等待时间:0~500毫秒(500是指一次应答的超时时间);二者叠加,第三种方法的校时误差为0~510毫秒。
综上,相关技术中已有的校时方法校时精度有待进一步提高。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供一种校时处理的方法、装置及计算机存储介质,能够降低校时处理的校时误差,提升自动化系统的运行质量。
本发明实施例提供了一种校时处理的方法,包括:
校验处理开始时,确定当前随机毫秒数时刻到下一个整秒或在后的第二个整秒的时长作为间隔时长;
在主站发送完校时处理的校时报文前,控制主站进行间隔时长的睡眠。
在一种示例性实施例中,所述控制主站进行间隔时长的睡眠包括:
加载预设的一个以上睡眠Sleep函数,以使能主站进入睡眠状态;
其中,所有所述睡眠函数的使能主站进入睡眠状态的总时长等于所述间隔时长;所述睡眠函数的个数小于或等于所述进行校时处理的所述校时报文的个数。
在一种示例性实施例中,所述控制主站进行间隔时长的睡眠包括:
确定与睡眠函数个数相同的校时报文;
在发送确定的各所述校时报文前,分别加载一个睡眠函数,以通过加载的睡眠函数使能主站进入睡眠状态。
在一种示例性实施例中,确定当前随机毫秒数时刻到下一个整秒或在后的第二个整秒的时长作为间隔时长包括:
所述当前随机毫秒数时刻到下一个整秒的时长大于预设时长阈值时,确定当前随机毫秒数时刻到下一个整秒的时长为所述间隔时长;
所述当前随机毫秒数时刻到下一个整秒的时长小于或等于所述预设时长阈值时,确定当前随机毫秒数时刻到在后的第二个整秒的时长为所述间隔时长。
在一种示例性实施例中,所有所述睡眠函数使能主站进入睡眠状态的时长满足以下任一条件:
所有所述睡眠函数使能主站进入睡眠状态的时长相等;
所有所述睡眠函数使能主站进入睡眠状态的时长均不相等;
部分所述睡眠函数使能主站进入睡眠状态的时长相等。
在一种示例性实施例中,各所述睡眠函数使能主站进入睡眠状态的时长通过以下方式确定:
确定加载的所述睡眠函数的个数;
将所述间隔时长与加载的睡眠函数的个数进行整数除法,获得商数和余数;
获得的所述余数为0时,将所述商数作为各所述睡眠函数使能主站进入睡眠状态的时长;
获得的所述余数非零时,将所述商数与所述余数的和,作为其中任一睡眠函数使能主站进入睡眠状态的时长;设置其余睡眠函数,使能主站进入睡眠状态的时长为所述商数。
在一种示例性实施例中,所述睡眠函数使能主站进入睡眠状态的时长小于或等于预设时长。
另一方面,本发明实施例还提供一种校时处理的装置,包括:确定单元和控制单元;其中,
确定单元配置为:校验处理开始时,确定当前随机毫秒数时刻到下一个整秒或在后的第二个整秒的时长作为间隔时长;
控制单元配置为:在主站发送完校时处理的校时报文前,控制主站进行间隔时长的睡眠。
在一种示例性实施例中,所述控制单元是配置为:
在主站发送完校时处理的校时报文前,加载预设的一个以上睡眠Sleep函数,以使能主站进入睡眠状态;
其中,所有所述睡眠函数的使能主站进入睡眠状态的总时长等于所述间隔时长;所述睡眠函数的个数小于或等于所述进行校时处理的所述校时报文的个数。
在一种示例性实施例中,所述控制单元是配置为:
确定与睡眠函数个数相同的校时报文;
在发送确定的各所述校时报文前,分别加载一个睡眠函数,以通过加载的睡眠函数使能主站进入睡眠状态。
在一种示例性实施例中,所述确定单元具体用于:
所述当前随机毫秒数时刻到下一个整秒的时长大于预设时长阈值时,确定当前随机毫秒数时刻到下一个整秒的时长为所述间隔时长;
所述当前随机毫秒数时刻到下一个整秒的时长小于或等于所述预设时长阈值时,确定当前随机毫秒数时刻到在后的第二个整秒的时长为所述间隔时长。
在一种示例性实施例中,所有所述睡眠函数使能主站进入睡眠状态的时长满足以下任一条件:
所有所述睡眠函数使能主站进入睡眠状态的时长相等;
所有所述睡眠函数使能主站进入睡眠状态的时长均不相等;
部分所述睡眠函数使能主站进入睡眠状态的时长相等。
在一种示例性实施例中,各所述睡眠函数使能主站进入睡眠状态的时长通过以下方式确定:
确定加载的所述睡眠函数的个数;
将所述间隔时长与加载的睡眠函数的个数进行整数除法,获得商数和余数;
获得的所述余数为0时,将所述商数作为各所述睡眠函数使能主站进入睡眠状态的时长;
获得的所述余数非零时,将所述商数与所述余数的和,作为其中任一睡眠函数使能主站进入睡眠状态的时长;设置其余睡眠函数,使能主站进入睡眠状态的时长为所述商数。
再一方面,本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行上述校时处理的方法。
与相关技术相比,本申请技术方案包括:校验处理开始时,确定当前随机毫秒数时刻到下一个整秒的间隔时长;在主站发送完校时处理的校时报文前,控制主站进行间隔时长的睡眠。本发明实施例降低了校时处理的校时误差,提升了自动化系统的运行质量。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例校时处理的方法的流程图;
图2为本发明实施例校时处理的装置的结构框图;
图3为相关技术中未进行校时处理时的轮询处理流程图;
图4为相关技术中包含校时处理的轮询处理流程图;
图5为本发明应用示例包含校时处理的轮询处理流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明实施例校时处理的方法的流程图,如图1所示,包括:
步骤101、校验处理开始时,确定当前随机毫秒数时刻到下一个整秒或在后的第二个整秒的时长作为间隔时长;
需要说明的是,间隔时长可以通过校验处理开始时的时间信息进行计算分析获得。此外,以当前随机毫秒数时刻为0点0分0秒X微秒为例,则当前随机毫秒数时刻到下一个整秒为0点0分1秒;当前随机毫秒数时刻到在后的第二个整秒为0点0分2秒。
在一种示例性的实施例中,所述确定当前随机毫秒数时刻到下一个整秒或在后的第二个整秒的时长作为间隔时长包括:
所述当前随机毫秒数时刻到下一个整秒的时长大于预设时长阈值时,确定当前随机毫秒数时刻到下一个整秒的时长为所述间隔时长;
所述当前随机毫秒数时刻到下一个整秒的时长小于或等于所述预设时长阈值时,确定当前随机毫秒数时刻到在后的第二个整秒的时长为所述间隔时长。
需要说明的是,所述确定当前随机毫秒数时刻到下一个整秒或在后的第二个整秒的时长作为间隔时长包括:确定当前随机毫秒数时刻到下一个整秒的时长作为间隔时长;或确定当前随机毫秒数时刻到在后的第二个整秒的时长作为间隔时长;此外,预设时长阈值可以由本领域技术人员根据数据包的粘连情况进行分析,数据包粘连会造成丢包,最终导致校时失败。在一种示例性实施例中预设时长阈值可以设置为小于或等于100毫秒;也可以由本领域技术人员根据数据包粘连情况及校时场景进行增大调整。
步骤102、在主站发送完校时处理的校时报文前,控制主站进行间隔时长的睡眠。
在一种示例性实施例中,控制主站进行间隔时长的睡眠包括:
加载预设的一个以上睡眠(Sleep)函数,以使能主站进入睡眠状态;这里,一个以上包括大于或等于一个。
其中,所有所述睡眠函数的使能主站进入睡眠状态的总时长等于所述间隔时长;所述睡眠函数的个数小于或等于所述进行校时处理的所述校时报文的个数。
需要说明的是,本发明实施例Sleep函数可以包括任意的可以是毫秒、微秒、或其他可以实现使能主站进行小于间隔时长睡眠的函数。
另外,本发明实施例可以在每一个校时报文前均加载睡眠函数;也可以选择其中部分校时报文,在校时报文前加载睡眠函数,只要加载的所有睡眠函数的使能主站进入睡眠状态的总时长等于间隔时长即可。
在一种示例性实施例中,控制主站进行间隔时长的睡眠包括:
确定与睡眠函数个数相同的校时报文;
在发送确定的各所述校时报文前,分别加载一个睡眠函数,以通过加载的睡眠函数使能主站进入睡眠状态。
在一种示例性实施例中,所有所述睡眠函数使能主站进入睡眠状态的时长满足以下任一条件:
所有所述睡眠函数使能主站进入睡眠状态的时长相等;
所有所述睡眠函数使能主站进入睡眠状态的时长均不相等;
部分所述睡眠函数使能主站进入睡眠状态的时长相等。
在一种示例性实施例中,各所述睡眠函数使能主站进入睡眠状态的时长通过以下方式确定:
确定加载的所述睡眠函数的个数;
将所述间隔时长与加载的睡眠函数的个数进行整数除法,获得商数和余数;
获得的所述余数为0时,将所述商数作为各所述睡眠函数使能主站进入睡眠状态的时长;获得的所述余数非零时,将所述商数与所述余数的和,作为其中任一睡眠函数使能主站进入睡眠状态的时长;设置其余睡眠函数,使能主站进入睡眠状态的时长为所述商数。
需要说明的是,本发明实施例余数也可以拆分为几份后,与商数相加,将相加获得的和作为睡眠函数使能主站进入睡眠状态的时长。
在一种示例性实施例中,所述睡眠函数使能主站进入睡眠状态的时长小于或等于预设时长。
需要说明的是,预设时长可以由本领域技术根据经验进行分析确定。
与相关技术相比,本申请技术方案包括:校验处理开始时,确定当前随机毫秒数时刻到下一个整秒或在后的第二个整秒的时长作为间隔时长;在主站发送完校时处理的校时报文前,控制主站进行间隔时长的睡眠。本发明实施例降低了校时处理的校时误差,提升了自动化系统的运行质量。
图2为本发明实施例校时处理的装置的结构框图,如图2所示,包括:确定单元和控制单元;其中,
确定单元配置为:校验处理开始时,确定当前随机毫秒数时刻到下一个整秒或在后的第二个整秒的时长作为间隔时长;
在一种示例性实施例中,所述确定单元具体用于:
所述当前随机毫秒数时刻到下一个整秒的时长大于预设时长阈值时,确定当前随机毫秒数时刻到下一个整秒的时长为所述间隔时长;
所述当前随机毫秒数时刻到下一个整秒的时长小于或等于所述预设时长阈值时,确定当前随机毫秒数时刻到在后的第二个整秒的时长为所述间隔时长。
控制单元配置为:在主站发送完校时处理的校时报文前,控制主站进行间隔时长的睡眠。
需要说明的是,本发明实施例装置可以与主站连接,也可以设置于主站内。
在一种示例性实施例中,控制单元是配置为:
在主站发送完校时处理的校时报文前,加载预设的一个以上睡眠Sleep函数,以使能主站进入睡眠状态;
其中,所有所述睡眠函数的使能主站进入睡眠状态的总时长等于所述间隔时长;所述睡眠函数的个数小于或等于所述进行校时处理的所述校时报文的个数。
在一种示例性实施例中,控制单元是配置为:
确定与睡眠函数个数相同的校时报文;
在发送确定的各所述校时报文前,分别加载一个睡眠函数,以通过加载的睡眠函数使能主站进入睡眠状态。
在一种示例性实施例中,所有所述睡眠函数使能主站进入睡眠状态的时长满足以下任一条件:
所有所述睡眠函数使能主站进入睡眠状态的时长相等;
所有所述睡眠函数使能主站进入睡眠状态的时长均不相等;
部分所述睡眠函数使能主站进入睡眠状态的时长相等。
在一种示例性实施例中,各所述睡眠函数使能主站进入睡眠状态的时长通过以下方式确定:
确定加载的所述睡眠函数的个数;
将所述间隔时长与加载的睡眠函数的个数进行整数除法,获得商数和余数;
获得的所述余数为0时,将所述商数作为各所述睡眠函数使能主站进入睡眠状态的时长;
获得的所述余数非零时,将所述商数与所述余数的和,作为其中任一睡眠函数使能主站进入睡眠状态的时长;设置其余睡眠函数,使能主站进入睡眠状态的时长为所述商数。
在一种示例性实施例中,睡眠函数使能主站进入睡眠状态的时长小于或等于预设时长。
需要说明的是,预设时长可以由本领域技术根据经验进行分析确定。
与相关技术相比,本申请技术方案包括:校验处理开始时,确定当前随机毫秒数时刻到下一个整秒或在后的第二个整秒的时长作为间隔时长;在主站发送完校时处理的校时报文前,控制主站进行间隔时长的睡眠。本发明实施例降低了校时处理的校时误差,提升了自动化系统的运行质量。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行上述校时处理的方法。
以下通过应用示例对本发明实施例方法进行清楚详细的说明,应用示例仅用于陈述本发明,并不用于限定本发明的保护范围。
应用示例
针对相关技术中校时格式只支持到秒数即截止所带来的校时误差,或校时处理的方法复杂且依赖操作系统及软硬件环境,本发明应用示例设计实现了校时处理的方法,可以降低校时误差。为了便于对本发明应用示例方法进行对比,本应用示例暂时忽略网络延迟及从站内部延迟对校时误差的影响;本发明应用示例对本地时钟的校时处理,可以与相关技术中已有的网络延迟及从站内部延迟的处理相融合,以降低校时误差。
在自动化信息处理过程中,主站在上一次通信报文收发完成会进入新一轮应答,假设这一轮应答过程中需要对从设备进行校时处理,此时主站获得本轮通信报文的发送权,可以自主决定何时开始发送通信报文。图3为相关技术中未进行校时处理时的轮询处理流程图,如图3所示,包括:
步骤301、从轮询表中依次读取查询请求;
步骤302、根据读取的查询请求生成通信报文;
步骤303、发送通信报文并启动超时定时器;
步骤304、判断从设备是否接收通信报文;判断从设备成功接收通信报文时,执行步骤3051;判断从设备未成功接收通信报文时,执行步骤3052;
步骤3051、根据通信报文进行数据处理;数据处理后,执行步骤306;
步骤3052、进行超时处理;超时处理后,执行步骤306;
步骤306、执行在后一条通信报文的发送。
图4为相关技术中包含校时处理的轮询处理流程图,如图4所示,包括:
步骤401、判断是否进行校时处理;进行校时处理时,执行步骤4021;不进行校时处理时,执行步骤4022;
步骤4021、获取本机的时间信息;执行步骤4021之后,转入步骤403;
步骤4022、从轮询表中依次读取查询请求;执行步骤4022之后,转入步骤403;
步骤403、生成顺序校时报文;
步骤404、顺序发送校时报文并启动超时定时器;
步骤405、判断从设备是否接收校时报文;判断从设备成功接收校时报文时,执行步骤4061;判断从设备未成功接收校时报文时,执行步骤4062;
步骤4061、根据校时报文进行数据处理;数据处理后,执行步骤407;
步骤4062、进行超时处理;超时处理后,执行步骤407;
步骤407、执行再后一条通信报文的发送。这里,通信报文包括但不限于:业务报文、控制报文及校时报文等。
为使上述内容足够清楚,通过表1对轮询表进行示例:
表1
本发明应用示例,主站决定开始发送通信报文的时刻是一个随机毫秒数时刻,本发明应用示例获取主站的当前随机毫秒数时刻记为T0,T0由整秒数T0’和毫秒数Tm0组成,即T0=T0’+Tm0;其中,0≤Tm0≤999。假设下一个整秒时间为T1,则T1=T0’+1000毫秒(ms)=T0+(1000ms-Tm0);则要在整秒时发送校时报文,需要进行毫秒补偿,毫秒补偿为随机毫秒数时刻到下一个整秒的间隔时长Tm1,间隔时长Tm1=1000ms-Tm0;这里,由于0≤Tm0≤999,所以1≤Tm1≤1000。
为了使主站每次校时都是系统时间为0毫秒(整秒)的时刻准时触发,本发明应用示例可以设置主站进行Tm1毫秒睡眠(由主站所在平台系统提供毫秒级的Sleep函数,以实现主站睡眠)。睡眠的起始时间可以为主站获得T0时起,至发送本轮校时处理的最后一条校时报文(最后一条校时报文包括:当校时处理只需发送一条校时报文即可完成时,最后一条校时报文指这唯一的一条校时报文;当校时处理需要顺序发送n条校时报文(n条校时报文依次被标记为M1、M2、…、Mn-1及Mn)时,最后一条校时报文指报文Mn)。综上,本发明应用示例可以定义一次校时处理过程包括:主站顺序发送M1、M2、…、Mn-1及Mn,其中n≥1。在一种示例性应用示例中,可以在主站发送报文M1、M2、…、Mn-1前分别睡眠Tm1/n毫秒;当Tm1/n=0时,不执行Sleep函数,因为Sleep(0)意味着把CPU占用权释放,然后CPU调用权限很可能会被其他线程占用,即Sleep(0)实际产生的调用时间会是一个大于0毫秒的不确定数值,这就会导致额外的不确定延迟从而造成校时误差;在发送校时报文Mn前,再睡眠(Tm1/n+Tm1%n)毫秒,其中%表示模(mod)运算。通过上述处理,在发送Mn时,主站刚好睡眠Tm1毫秒,即主站每次校时都是系统时间为0毫秒时刻准时进行。这里,使用应答协议的校时时,一般只需发送一条校时报文即可,即大都数情况下,n=1。综上,本发明应用示例降低了校时误差,可以实现校时误差为0毫秒。
图5为本发明应用示例包含校时处理的轮询处理流程图,如图5所示,包括:
步骤501、判断是否进行校时处理;进行校时处理时,执行步骤5021;不进行校时处理时,执行步骤5022;
步骤5021、获取本机的时间信息;执行步骤5021之后,转入步骤503;
步骤5022、从轮询表中依次读取查询请求;执行步骤5022之后,转入步骤503;
步骤503、根据获得的本地时间,计算当前随机毫秒数时刻到下一个整秒的间隔时长,并生成顺序校时报文;
步骤504、顺序发送校时报文并完成间隔时长的延时补偿后,启动超时定时器;
步骤505、判断从设备是否接收校时报文;判断从设备成功接收校时报文时,执行步骤5061;判断从设备未成功接收校时报文时,执行步骤5062;
步骤5061、根据校时报文进行数据处理;数据处理后,执行步骤507;
步骤5062、进行超时处理;超时处理后,执行步骤507;
步骤507、执行再后一条通信报文的发送。这里,通信报文包括但不限于:业务报文、控制报文及校时报文等。
需要说明的是,当前一般的操作系统或者软件平台,均可以实现毫秒级的Sleep函数的提供。由于校时处理的精度与具体的表述形式和数据格式无关,因此任何表述形式或数据格式的差异均可以包括于本发明应用示例。本发明应用示例,主站每次校时处理的发起时机为系统任意时间,但通过使能主站休眠间隔时长,主站每次校时发生都是系统时间为0毫秒的时刻,因此,降低了校时误差。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的每个模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明不限制于任何特定形式的硬件和软件的结合。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (14)
1.一种校时处理的方法,其特征在于,包括:
校验处理开始时,确定当前随机毫秒数时刻到下一个整秒或在后的第二个整秒的时长作为间隔时长;
在主站发送完校时处理的校时报文前,控制主站进行间隔时长的睡眠。
2.根据权利要求1所述的方法,其特征在于,所述控制主站进行间隔时长的睡眠包括:
加载预设的一个以上睡眠Sleep函数,以使能主站进入睡眠状态;
其中,所有所述睡眠函数的使能主站进入睡眠状态的总时长等于所述间隔时长;所述睡眠函数的个数小于或等于所述进行校时处理的所述校时报文的个数。
3.根据权利要求2所述的方法,其特征在于,所述控制主站进行间隔时长的睡眠包括:
确定与睡眠函数个数相同的校时报文;
在发送确定的各所述校时报文前,分别加载一个睡眠函数,以通过加载的睡眠函数使能主站进入睡眠状态。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述确定当前随机毫秒数时刻到下一个整秒或在后的第二个整秒的时长作为间隔时长包括:
所述当前随机毫秒数时刻到下一个整秒的时长大于预设时长阈值时,确定当前随机毫秒数时刻到下一个整秒的时长为所述间隔时长;
所述当前随机毫秒数时刻到下一个整秒的时长小于或等于所述预设时长阈值时,确定当前随机毫秒数时刻到在后的第二个整秒的时长为所述间隔时长。
5.根据权利要求2或3所述的方法,其特征在于,所有所述睡眠函数使能主站进入睡眠状态的时长满足以下任一条件:
所有所述睡眠函数使能主站进入睡眠状态的时长相等;
所有所述睡眠函数使能主站进入睡眠状态的时长均不相等;
部分所述睡眠函数使能主站进入睡眠状态的时长相等。
6.根据权利要求2或3所述的方法,其特征在于,各所述睡眠函数使能主站进入睡眠状态的时长通过以下方式确定:
确定加载的所述睡眠函数的个数;
将所述间隔时长与加载的睡眠函数的个数进行整数除法,获得商数和余数;
获得的所述余数为0时,将所述商数作为各所述睡眠函数使能主站进入睡眠状态的时长;
获得的所述余数非零时,将所述商数与所述余数的和,作为其中任一睡眠函数使能主站进入睡眠状态的时长;设置其余睡眠函数,使能主站进入睡眠状态的时长为所述商数。
7.根据权利要求2或3所述的方法,其特征在于,每一个所述睡眠函数使能主站进入睡眠状态的时长小于或等于预设时长。
8.一种校时处理的装置,其特征在于,包括:确定单元和控制单元;其中,
确定单元配置为:校验处理开始时,确定当前随机毫秒数时刻到下一个整秒或在后的第二个整秒的时长作为间隔时长;
控制单元配置为:在主站发送完校时处理的校时报文前,控制主站进行间隔时长的睡眠。
9.根据权利要求8所述的装置,其特征在于,所述控制单元是配置为:
在主站发送完校时处理的校时报文前,加载预设的一个以上睡眠Sleep函数,以使能主站进入睡眠状态;
其中,所有所述睡眠函数的使能主站进入睡眠状态的总时长等于所述间隔时长;所述睡眠函数的个数小于或等于所述进行校时处理的所述校时报文的个数。
10.根据权利要求9所述的装置,其特征在于,所述控制单元是配置为:
确定与睡眠函数个数相同的校时报文;
在发送确定的各所述校时报文前,分别加载一个睡眠函数,以通过加载的睡眠函数使能主站进入睡眠状态。
11.根据权利要求8~10任一项所述的装置,其特征在于,所述确定单元具体用于:
所述当前随机毫秒数时刻到下一个整秒的时长大于预设时长阈值时,确定当前随机毫秒数时刻到下一个整秒的时长为所述间隔时长;
所述当前随机毫秒数时刻到下一个整秒的时长小于或等于所述预设时长阈值时,确定当前随机毫秒数时刻到在后的第二个整秒的时长为所述间隔时长。
12.根据权利要求9或10所述的装置,其特征在于,所有所述睡眠函数使能主站进入睡眠状态的时长满足以下任一条件:
所有所述睡眠函数使能主站进入睡眠状态的时长相等;
所有所述睡眠函数使能主站进入睡眠状态的时长均不相等;
部分所述睡眠函数使能主站进入睡眠状态的时长相等。
13.根据权利要求9或10所述的装置,其特征在于,各所述睡眠函数使能主站进入睡眠状态的时长通过以下方式确定:
确定加载的所述睡眠函数的个数;
将间隔时长与加载的睡眠函数的个数进行整数除法,获得商数和余数;
获得的所述余数为0时,将所述商数作为各所述睡眠函数使能主站进入睡眠状态的时长;
获得的所述余数非零时,将所述商数与所述余数的和,作为其中任一睡眠函数使能主站进入睡眠状态的时长;设置其余睡眠函数,使能主站进入睡眠状态的时长为所述商数。
14.一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~7中任一项所述的校时处理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910388552.7A CN110134632B (zh) | 2019-05-10 | 2019-05-10 | 一种校时处理的方法、装置及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910388552.7A CN110134632B (zh) | 2019-05-10 | 2019-05-10 | 一种校时处理的方法、装置及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110134632A true CN110134632A (zh) | 2019-08-16 |
CN110134632B CN110134632B (zh) | 2021-06-18 |
Family
ID=67573184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910388552.7A Active CN110134632B (zh) | 2019-05-10 | 2019-05-10 | 一种校时处理的方法、装置及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110134632B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116388919A (zh) * | 2023-04-18 | 2023-07-04 | 广东高云半导体科技股份有限公司 | 一种基于工业以太网实现从站同步的方法和从站 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801023A (zh) * | 2005-11-14 | 2006-07-12 | 杨卫民 | 一种多事件顺序记录与测试系统 |
CN102096400A (zh) * | 2010-12-17 | 2011-06-15 | 东莞元创自控科技有限公司 | 一种远程测控终端 |
CN102361356A (zh) * | 2011-10-28 | 2012-02-22 | 安徽省电力公司芜湖供电公司 | 一种变电所测控装置遥信量测试系统及其测试方法 |
CN103561032A (zh) * | 2013-11-08 | 2014-02-05 | 山东大学 | TCP/IP协议下Modbus设备网络通信的方法 |
CN104580507A (zh) * | 2015-01-26 | 2015-04-29 | 华东师范大学 | 野外台站数据传输整合方法 |
CN105530697A (zh) * | 2015-12-15 | 2016-04-27 | 重庆大学 | 一种支持工业物联网业务时间同步方法 |
-
2019
- 2019-05-10 CN CN201910388552.7A patent/CN110134632B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801023A (zh) * | 2005-11-14 | 2006-07-12 | 杨卫民 | 一种多事件顺序记录与测试系统 |
CN102096400A (zh) * | 2010-12-17 | 2011-06-15 | 东莞元创自控科技有限公司 | 一种远程测控终端 |
CN102361356A (zh) * | 2011-10-28 | 2012-02-22 | 安徽省电力公司芜湖供电公司 | 一种变电所测控装置遥信量测试系统及其测试方法 |
CN103561032A (zh) * | 2013-11-08 | 2014-02-05 | 山东大学 | TCP/IP协议下Modbus设备网络通信的方法 |
CN104580507A (zh) * | 2015-01-26 | 2015-04-29 | 华东师范大学 | 野外台站数据传输整合方法 |
CN105530697A (zh) * | 2015-12-15 | 2016-04-27 | 重庆大学 | 一种支持工业物联网业务时间同步方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116388919A (zh) * | 2023-04-18 | 2023-07-04 | 广东高云半导体科技股份有限公司 | 一种基于工业以太网实现从站同步的方法和从站 |
Also Published As
Publication number | Publication date |
---|---|
CN110134632B (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DK2517132T5 (en) | METHODS AND SYSTEMS FOR ADJUSTING AN INSULIN DELIVERY PROFILE OF AN INSULIN PUMP | |
US20200021443A1 (en) | Method and timer for providing security-protected time information | |
JP6523497B1 (ja) | マスタ制御装置およびこれを用いた同期通信システム | |
CN105680973A (zh) | 航空电子设备网络中的自由运转节点的时间同步方法 | |
CN110061797A (zh) | 时间同步方法、装置、存储介质及计算机设备 | |
WO2018227830A1 (zh) | 主从机tdma时隙同步校准方法及装置 | |
CN110134632A (zh) | 一种校时处理的方法、装置及计算机存储介质 | |
EP2677434A1 (en) | Information processing device, time setting method, and time setting program | |
CN109471588B (zh) | 一种同步方法及设备 | |
US7330488B2 (en) | System, method, and article of manufacture for synchronizing time of day clocks on first and second computers | |
JP4650146B2 (ja) | 印刷装置及び印刷プログラム | |
CA1222572A (en) | Methods and apparatus for correcting a software clock from an accurate clock | |
CN113037417A (zh) | 实现精确时间协议报文一步模式的方法、装置及存储介质 | |
CN113037418B (zh) | 一种网络授时的误差校正方法及相关装置 | |
US20150006877A1 (en) | Dynamic time zone definition update manager | |
JP2002196991A (ja) | ネットワークの時刻合わせ方法 | |
CN114257469A (zh) | 一种EtherCAT主站的通讯方法、装置以及介质 | |
CN112487004A (zh) | 基于数据血缘自动控制任务的方法、装置、介质及系统 | |
CN107608832A (zh) | 信息处理方法及电子设备 | |
KR102213797B1 (ko) | 똑똑한 금연 시스템 | |
JP6523103B2 (ja) | 通信装置、通信装置の制御方法、制御プログラム | |
JPWO2003105036A1 (ja) | 発注管理システム | |
US20160217059A1 (en) | Debug device, debug method, and debug program | |
JP5342124B2 (ja) | 通信装置及び通信制御プログラム | |
CN112769961B (zh) | 网络系统的节点处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211129 Address after: 100176 room 3412, floor 4, building 3, yard 2, Desheng Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing Patentee after: Beijing Helishi system integration Co.,Ltd. Address before: 100176 No.2, Disheng Middle Road, Yizhuang Economic and Technological Development Zone, Daxing District, Beijing Patentee before: BEIJING HOLLYSYS Co.,Ltd. |