本发明属于星务软件设计领域,具体地,涉及卫星指令程控方法和系统。更为具体地,涉及到地面上注程控和星上任务程控的方案。
背景技术:
1、专利文献cn112147924a公开了一种高精度程控任务管理系统,包括程控任务管理模块、程控任务执行机构、高精度时间管理模块,利用程控任务管理模块接收上注任务数据块,通过星上数据总线进行程控任务分解表发送,并通过控制执行机构实现任务指令执行,实现了高精度时统条件下的指令触发执行,使所有程控指令在同一个时间系统下触发执行。
2、但是,现有卫星程控均由星务软件师设计完成,不同卫星程控设计多样,在轨运行的卫星,如果需要更改业务程控的指令时序和指令内容,往往需要星务软件设计人员对卫星星务软件进行在轨编程,整个流程耗时、耗力。
3、因此,伴随着卫星平台研制逐步小型化,研制周期短等特点,研发一套灵活的,自由组合的,适应性强的星上业务程控方法就变得极为迫切。
技术实现思路
1、针对现有技术中的缺陷,本发明的目的是提供一种卫星指令程控方法和系统。
2、根据本发明提供的一种卫星指令程控方法,包括:地面上注程控步骤、星上任务程控步骤;
3、所述地面上注程控步骤采用绝对时间延时指令包、相对时间延时指令包,在指令解析符合时间条件时触发延时指令执行;
4、所述星上任务程控步骤采用任务作业程控包、任务指令缓存表,统一管理。
5、优选地,所述的绝对时间延时指令包,当指令解析时,当前星上时间tnow≥指令的时间码t0,触发延时指令执行;
6、所述的相对时间延时指令包,当指令解析时,当前星上时间tnow≥指令的时间码△t、入列时间tf之和时,触发延时指令执行。
7、优选地,绝对时间延时指令包、相对时间延时指令包,组合嵌套使用;相对时间延时指令包内嵌在绝对时间延时指令包形成组合指令包;绝对时间延时指令包和相对时间延时指令包,内含时间码和指令内容;其中,所述指令内容,是预存指令包缓存的索引,或者是具体的指令包内容,通过内部的指令类型标志进行区分;所述预存指令包缓存,即星务软件的指令池,通过指令池的指令索引,寻找到对应的指令码,该指令池支持地面上注修改。
8、优选地,所述的任务作业程控包,包含作业编号、作业类型、任务解析时间、任务结束时间、任务执行时间、程控参数;
9、作业编号,用于不同任务作业的区分;
10、作业类型,用于使用不同的任务指令缓存表;
11、任务解析时间,当当前星上时间tnow≥任务解析时间ts,触发该任务作业程控包解析;
12、任务结束时间,当当前星上时间tnow≥tend任务结束时间,才能解析下一个任务作业程控包;
13、任务执行时间,包含了任务开始时间和任务持续时间,配合任务指令缓存表的基准时间和相对时间,形成每条指令需要触发的绝对时间;
14、程控参数,配合任务指令缓存表的配置函数,配置参数,形成指令是否发送以及具体指令码的生成;
15、所述任务指令缓存表,包含配置函数、配置参数、基准时间、相对时间、指令内容、指令指针;
16、配置函数、配置参数,分别采用函数指针、函数形参的形式实现对每个指令内容进行自由化定制;
17、基准时间,用于匹配任务作业程控包的任务执行时间;
18、相对时间,用于当前基准时间上增加或减少对应时间;
19、指令内容,用于存放固定指令内容的内存空间或者指令索引;
20、指令指针,用于指向最后指令内容的地址;
21、任务指令缓存表,当任务解析后,最后产生的指令和执行时间进入指令队列进行管理。
22、优选地,所述星上任务程控步骤中,最后由队列管理方法统一管理;
23、所述的队列管理办法,均采用空闲链表和工作链表配合的形式,指令队列采用进行将指令码和指令执行时间进行内存管理,任务队列采用任务块和任务解析时间进行内存管理;
24、指令队列和任务队列均采用空闲链表和工作链表的组合,链表的数据块包含携带指令码和指令执行时间或者任务块和任务解析时间,当需要申请内存空间时,从空闲链表释放数据块,并将数据块按时间前后插入到工作链表;当第一块的时间码≥tnow时,由工作链表释放数据块,使用完数据块之后,再将数据块插入到空闲链表;
25、指令队列和任务队列,支持对特定的时间范围,特定的指令码,特定的任务作业进行删除以及队列格式化操作;空闲链表和工作链表,在程序初始化过程中,通过全局变量申请内存资源。
26、根据本发明提供的一种卫星指令程控系统,包括:地面上注程控模块、星上任务程控模块;
27、所述地面上注程控模块采用绝对时间延时指令包、相对时间延时指令包,在指令解析符合时间条件时触发延时指令执行;
28、所述星上任务程控模块采用任务作业程控包、任务指令缓存表,统一管理。
29、优选地,所述的绝对时间延时指令包,当指令解析时,当前星上时间tnow≥指令的时间码t0,触发延时指令执行;
30、所述的相对时间延时指令包,当指令解析时,当前星上时间tnow≥指令的时间码△t、入列时间tf之和时,触发延时指令执行。
31、优选地,绝对时间延时指令包、相对时间延时指令包,组合嵌套使用;相对时间延时指令包内嵌在绝对时间延时指令包形成组合指令包;绝对时间延时指令包和相对时间延时指令包,内含时间码和指令内容;其中,所述指令内容,是预存指令包缓存的索引,或者是具体的指令包内容,通过内部的指令类型标志进行区分;所述预存指令包缓存,即星务软件的指令池,通过指令池的指令索引,寻找到对应的指令码,该指令池支持地面上注修改。
32、优选地,所述的任务作业程控包,包含作业编号、作业类型、任务解析时间、任务结束时间、任务执行时间、程控参数;
33、作业编号,用于不同任务作业的区分;
34、作业类型,用于使用不同的任务指令缓存表;
35、任务解析时间,当当前星上时间tnow≥任务解析时间ts,触发该任务作业程控包解析;
36、任务结束时间,当当前星上时间tnow≥tend任务结束时间,才能解析下一个任务作业程控包;
37、任务执行时间,包含了任务开始时间和任务持续时间,配合任务指令缓存表的基准时间和相对时间,形成每条指令需要触发的绝对时间;
38、程控参数,配合任务指令缓存表的配置函数,配置参数,形成指令是否发送以及具体指令码的生成;
39、所述任务指令缓存表,包含配置函数、配置参数、基准时间、相对时间、指令内容、指令指针;
40、配置函数、配置参数,分别采用函数指针、函数形参的形式实现对每个指令内容进行自由化定制;
41、基准时间,用于匹配任务作业程控包的任务执行时间;
42、相对时间,用于当前基准时间上增加或减少对应时间;
43、指令内容,用于存放固定指令内容的内存空间或者指令索引;
44、指令指针,用于指向最后指令内容的地址;
45、任务指令缓存表,当任务解析后,最后产生的指令和执行时间进入指令队列进行管理。
46、优选地,所述星上任务程控模块中,最后由队列管理方法统一管理;
47、所述的队列管理办法,均采用空闲链表和工作链表配合的形式,指令队列采用进行将指令码和指令执行时间进行内存管理,任务队列采用任务块和任务解析时间进行内存管理;
48、指令队列和任务队列均采用空闲链表和工作链表的组合,链表的数据块包含携带指令码和指令执行时间或者任务块和任务解析时间,当需要申请内存空间时,从空闲链表释放数据块,并将数据块按时间前后插入到工作链表;当第一块的时间码≥tnow时,由工作链表释放数据块,使用完数据块之后,再将数据块插入到空闲链表;
49、指令队列和任务队列,支持对特定的时间范围,特定的指令码,特定的任务作业进行删除以及队列格式化操作;空闲链表和工作链表,在程序初始化过程中,通过全局变量申请内存资源。
50、与现有技术相比,本发明具有如下的有益效果:
51、1、本发明中采用绝对时间延时指令包和相对时间延时指令包,保证了卫星能够基于t0(绝对时间)和△t(相对时间)进行指令触发,并且采用指令内嵌的组合形式,实现了t0(绝对时间)和△t(相对时间)的延时指令的自由组合,提高了地面上注程控的灵活性和适应性;
52、2、本发明采用任务作业程控包和任务指令缓存表的配合使用,形成了卫星程控设计模板,程控包中的任务执行时间和任务指令缓存表的基准时间和相对时间,实现了卫星任务中不同时间应用场景的指令需求;
53、3、本发明通过任务作业程控包中的程控参数和任务指令缓存表的配置函数和配置参数,实现对每个指令内容进行自由化定制需求,可以产生卫星任务中各式各样的指令内容,或为固定的指令码,或由程控参数选发的指令码,或由当前卫星状态选发的指令码,或由程控参数重新组成的指令码等等;任务指令缓存表中的指令指针,实现了规范和统一任务解析后产生指令码实际地址空间;
54、4、本发明采用工作链表和空闲链表的组合形式,保证了指令块和任务块在输入、删除时的便捷、高效,而静态申请工作链表和空闲链表,则很大程度上避免了内存碎片的产生,保证了卫星软件的可靠性。