CN105468444B - 一种事件信息的调度方法 - Google Patents

一种事件信息的调度方法 Download PDF

Info

Publication number
CN105468444B
CN105468444B CN201510801318.4A CN201510801318A CN105468444B CN 105468444 B CN105468444 B CN 105468444B CN 201510801318 A CN201510801318 A CN 201510801318A CN 105468444 B CN105468444 B CN 105468444B
Authority
CN
China
Prior art keywords
port
event information
uplink
downlink
event
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.)
Active
Application number
CN201510801318.4A
Other languages
English (en)
Other versions
CN105468444A (zh
Inventor
刘亮亮
严涛松
李康明
李永国
柏嵩
张建周
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NARI Nanjing Control System Co Ltd
Original Assignee
NARI Nanjing Control System Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NARI Nanjing Control System Co Ltd filed Critical NARI Nanjing Control System Co Ltd
Priority to CN201510801318.4A priority Critical patent/CN105468444B/zh
Publication of CN105468444A publication Critical patent/CN105468444A/zh
Application granted granted Critical
Publication of CN105468444B publication Critical patent/CN105468444B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种事件信息的调度方法,包括步骤有,创建事件信息的结构体二维数组、定向端口的二维整型数组、以及实际端口号与端口序号的对应整型数组;下行处理程序调度事件信息;上行处理程序调度事件信息;其中结构体二维数组和定向端口二维整型数组中的不同维度代表了不同的分组,通过下标之间相互关联实现事件信息的调度。本发明通过在进程内创建全局的结构体数组,运用进程内资源,可避免各个处理单元之间的数据传输,从而简化程序本身,提高运行可靠性,提高各个处理单元的存取事件信息的效率,读写的速度快,能够实时地传送所需的事件信息;而且,算法简单、易于实现,可提高单位时间的数据吞吐量,提高抗数据风暴的能力。

Description

一种事件信息的调度方法
技术领域
本发明涉及一种调度方法,特别是涉及电力系统中应用于通讯管理设备的一种事件信息的调度方法。
背景技术
在现有的通讯管理机的事件信息调度设计中,大多采用的是事件信息存储在各自的处理单元中,然后各个处理单元通过相互通讯来传输所需的事件信息。这样的传统的设计结构需要处理单元之间频繁地进行通讯,其降低了通讯过程中事件信息传输的时效性。
另外,传统的事件信息调度方法中一般采用的是单线程的模式,所有的通信端口都是串行处理,当遇到事件信息数据风暴的时候,很有可能造成程序的异常。
发明内容
本发明的主要目的在于,克服现有技术中的不足,提供一种简单高效、传输可靠、时效性高的事件信息的调度方法,不仅简化了程序本身,提供运行可靠性,避免处理单元之间频繁地通讯,大幅提高事件信息的读写或存取效率;而且充分利用通讯管理设备资源,提高单位时间的数据吞吐量,以及提高抗数据风暴的能力。
为了达到上述目的,本发明所采用的技术方案是:
一种事件信息的调度方法,包括以下步骤:
1)创建事件信息的结构体二维数组、定向端口的二维整型数组、以及实际端口号与端口序号的对应整型数组;
1-1)创建一个公用的事件信息的结构体二维数组、用Event[上行端口数目][事件信息可存储个数设定值]表示,用于作为上行通讯模块在事件信息可存储个数设定值范围内存储下行通讯模块中采集到的事件信息的存储媒介,并要求同一时间仅有一个线程对事件信息的结构体二维数组进行读写操作;
其中,第一维度的上行端口数目表示用于上行通讯的端口数目,第二维度的事件信息可存储个数设定值表示设定的上行通讯端口可以接受来自下行通讯端口所传递来的事件信息个数的限制值;
1-2)创建一个定向端口的二维整型数组、用SendToPortArray[下行端口数目][上行端口数目]表示,程序初始化时用于存储从端口定向传输配置文件中读取的配置数据,当端口定向传输配置文件的配置数据发生改变时,程序通过读取改变后的配置数据更新定向端口的二维整型数组;
其中,端口定向传输配置文件是指下行通讯中一个端口采集的事件信息需要上行通讯中至少一个端口传输出去的配置信息,下行端口数目表示用于下行通讯的端口数目;
1-3)创建实际端口号与上、下行端口序号的对应整型数组,包括两个对应整型数组、分别为上行通讯对应整型数组和下行通讯对应整型数组,分别用PortMapU[上行端口数目]和PortMapD[下行端口数目]表示;其中,实际端口号包括对上行端口进行实际标号的上行实际端口号和对下行端口进行实际标号的下行实际端口号;
所述PortMapU[上行端口数目]用于记录上行端口序号对应的上行实际端口号,构成以上行端口序号作为下标和上行实际端口号作为值的数组元素,即PortMapU[上行端口序号]=上行实际端口号;
所述PortMapD[下行端口数目]用于记录下行端口序号对应的下行实际端口号,构成以下行端口序号作为下标和下行实际端口号作为值的数组元素,即PortMapD[下行端口序号]=下行实际端口号;
2)下行处理程序调度事件信息;
2-1)下行处理程序根据轮询到的下行实际端口号通过下行通讯对应整型数组PortMapD[下行端口序号]=下行实际端口号,查询出对应的下行端口序号;
若查询不到下行端口序号,表明该下行实际端口号没有配置数据,则跳过该下行实际端口的处理;
若查询到下行端口序号,则以该下行端口序号作为定向端口的二维整型数组SendToPortArray[下行端口数目][上行端口数目]中第一维度[下行端口数目]的值;然后根据配置数据判断SendToPortArray[下行端口数目=下行端口序号][上行端口数目]的数组值是否为0或1进而判断是否进行事件信息传递,若数组值为0、能表示无定向传递端口而不需传递事件信息,若数组值为1、则确定需传递事件信息并获取对应的上行端口序号;
2-2)将上行端口序号标识为事件信息的结构体二维数组Event[上行端口数目][事件信息可存储个数设定值]中第一维度[上行端口数目]的值,下行处理程序将发生的事件信息添加到Event[上行端口数目=上行端口序号][事件信息可存储个数设定值]中可存储的至少一个数据存储位置中;
3)上行处理程序调度事件信息;
上行处理程序根据轮询到的上行实际端口号通过上行通讯对应整型数组PortMapU[上行端口序号]=上行实际端口号,查询出对应的上行端口序号;
若查询不到上行端口序号,表明该上行实际端口号没有配置数据,则跳过该上行实际端口的处理;
若查询到上行端口序号,则将上行端口序号作为事件信息的结构体二维数组Event[上行端口数目][事件信息可存储个数设定值]中第一维度[上行端口数目]的值;判断Event[上行端口数目=上行端口序号][事件信息可存储个数设定值]中是否存储有事件信息,若无、则返回重新查询上行端口序号,若有、则取出事件信息后清空该数据存储位置中事件信息,上行处理程序将取出的事件信息数据根据规定的数据传输格式发送给远方通讯单元。
本发明进一步设置为:所述步骤2-2)还包括当下行处理程序解析到事件信息时,下行处理程序将事件信息的结构体二维数组进行加锁;并在完成事件信息添加后,对事件信息的结构体二维数组进行解锁;所述步骤3)还包括获取事件信息之前,上行处理程序将存储有事件信息的结构体二维数组进行加锁;并在完成事件信息取出后,对事件信息的结构体二维数组进行解锁。
本发明进一步设置为:所述事件信息包括变化遥信信息和遥控信息。
本发明进一步设置为:所述事件信息的结构体二维数组的数组元素包括事件类型、事件内容和发生时间。
本发明进一步设置为:所述事件信息的结构体二维数组采用事件信息的结构体指针数组,用*EventSrtuctArray [上行端口数目]表示。
本发明进一步设置为:所述事件信息的结构体二维数组采用事件信息的结构体链表数组。
与现有技术相比,本发明具有的有益效果是:
在进程内创建全局的结构体二维数组变量,运用的是进程内资源,可避免各个处理单元之间的数据传输,而且可简化程序本身,提高程序运行可靠性,更有利于提高各个处理单元的存取事件信息的效率,读写的速度均快,能够实时地传送所需的事件信息。同时,事件信息的结构体二维数组Event[上行端口数目][事件信息可存储个数设定值]和定向端口整型数组SendToPortArray[下行端口数目][上行端口数]中的不同维度代表了不同的分组,通过下标之间相互关联实现事件信息的调度前寻找,所以算法简单而易于实现,可靠性高,可通过很小的编程代码量即可实现事件信息的调度;其中,将事件信息的读和写区分开来,不仅提高单位时间的数据吞吐量,还提高抗数据风暴的能力。
上述内容仅是本发明技术方案的概述,为了更清楚的了解本发明的技术手段,下面结合附图对本发明作进一步的描述。
附图说明
图1为本发明实施例的结构框图;
图2为本发明实施例中的下行处理程序调度事件信息的流程图;
图3为本发明实施例中的上行处理程序调度事件信息的流程图。
具体实施方式
下面结合说明书附图,对本发明作进一步的说明。
本发明提供一种事件信息的调度方法,包括以下步骤:
1)创建事件信息的结构体二维数组、定向端口的二维整型数组、以及实际端口号与端口序号的对应整型数组;
1-1)创建一个公用的事件信息的结构体二维数组、用Event[上行端口数目][事件信息可存储个数设定值]表示,用于作为上行通讯模块在事件信息可存储个数设定值范围内存储下行通讯模块中采集到的事件信息的存储媒介,并要求同一时间仅有一个线程对事件信息的结构体二维数组进行读写操作;
其中,第一维度的上行端口数目表示用于上行通讯的端口数目,第二维度的事件信息可存储个数设定值表示设定的上行通讯端口可以接受来自下行通讯端口所传递来的事件信息个数的限制值;事件信息包括变化遥信信息和遥控信息,而事件信息的结构体数组的数组元素包括事件类型、事件内容和发生时间;
1-2)创建一个定向端口的二维整型数组、用SendToPortArray[下行端口数目][上行端口数目]表示,程序初始化时用于存储从端口定向传输配置文件中读取的配置数据,当端口定向传输配置文件的配置数据发生改变时,程序通过读取改变后的配置数据更新定向端口的二维整型数组;其中,端口定向传输配置文件是指下行通讯中一个端口采集的事件信息需要上行通讯中至少一个端口传输出去的配置信息,下行端口数目表示用于下行通讯的端口数目;
1-3)创建实际端口号与上、下行端口序号的对应整型数组,包括两个对应整型数组、分别为上行通讯对应整型数组和下行通讯对应整型数组,分别用PortMapU[上行端口数目]和PortMapD[下行端口数目]表示;其中,实际端口号包括对上行端口进行实际标号的上行实际端口号和对下行端口进行实际标号的下行实际端口号;
其中,所述PortMapU[上行端口数目]用于记录上行端口序号对应的上行实际端口号,构成以上行端口序号作为下标和上行实际端口号作为值的数组元素,即PortMapU[上行端口序号]=上行实际端口号;所述PortMapD[下行端口数目]用于记录下行端口序号对应的下行实际端口号,构成以下行端口序号作为下标和下行实际端口号作为值的数组元素,即PortMapD[下行端口序号]=下行实际端口号。
2)下行处理程序调度事件信息,如图2所示;
2-1)下行处理程序根据轮询到的下行实际端口号通过下行通讯对应整型数组PortMapD[下行端口序号]=下行实际端口号,查询出对应的下行端口序号;
若查询不到下行端口序号,表明该下行实际端口号没有配置数据,则跳过该下行实际端口的处理;
若查询到下行端口序号,则以该下行端口序号作为定向端口的二维整型数组SendToPortArray[下行端口数目][上行端口数目]中第一维度[下行端口数目]的值;然后根据配置数据判断SendToPortArray[下行端口数目=下行端口序号][上行端口数目]的数组值是否为0或1进而判断是否进行事件信息传递,若数组值为0、能表示无定向传递端口而不需传递事件信息,若数组值为1、则确定需传递事件信息并获取对应的上行端口序号;
2-2)将上行端口序号标识为事件信息的结构体二维数组Event[上行端口数目][事件信息可存储个数设定值]中第一维度[上行端口数目]的值,下行处理程序将发生的事件信息添加到Event[上行端口数目=上行端口序号][事件信息可存储个数设定值]中可存储的至少一个数据存储位置中。
如图2所示,若查询到下行端口序号为N,则取SendToPortArray[N]单元中所有元素,将数组值为非零元素的定向端口二维整型数组的第二维度下标值取出,获取并得出上行端口序号为M;进一步的,加锁Event数组,将事件信息写入Event[M]单元中,再解锁Event数组。下行处理程序将发生的事件信息具体可添加到Event [M][i]中去,i用于表征当前数组存储位置,如果只有1个事件信息,则数组的存储位置加1、即i+1,如果是j个事件信息,则存储位置加j、即i+j,但是最终要进行数组的边界控制,i+j<事件信息可存储个数设定值S。
3)上行处理程序调度事件信息,如图3所示;
上行处理程序根据轮询到的上行实际端口号通过上行通讯对应整型数组PortMapU[上行端口序号]=上行实际端口号,查询出对应的上行端口序号;
将上行端口序号作为事件信息的结构体二维数组Event[上行端口数目][事件信息可存储个数设定值]中第一维度[上行端口数目]的值,取出Event[上行端口数目=上行端口序号][事件信息可存储个数设定值]中存储的事件信息,然后清空该数据存储位置中事件信息,上行处理程序将取出的事件信息数据根据规定的数据传输格式发送给远方通讯单元。
如图3所示,在定位上行端口序号为M后,查询Event[M]单元中的事件信息元素;若单元无事件信息,则返回重新查询上行端口序号;若单元有事件信息,则加锁Event数组,将Event[M]单元中所有事件信息元素取出,并清空Event[M],然后再解锁Event数组,将取出的事件信息根据特定格式发送给远方通讯单元后移到下一个上行端口进行处理。
将本发明的事件信息的调度方法进行实际应用,如图1所示的具体结构,创建一个公用的事件信息的结构体二维数组、用Event [上行端口数目] [事件信息可存储个数设定值]表示,用于存储下行通讯模块D中采集到的事件信息,其中,上行端口数目表示用于上行通讯的端口数目,图中所示即与上行通讯模块U进行通讯的通讯端口T1和通讯端口T2共2个端口;创建一个定向端口的二维整型数组、用SendToPortArray[下行端口数目][上行端口数目]表示,下行端口数目表示用于下行通讯的端口数目,图中所示即与下行通讯模块D进行通讯的通讯端口T3、通讯端口T4和通讯端口T5共3个端口。
另外,图1中所示的单向箭头表示需要从该存储容器读取数据、即读取数据的源地址;双向箭头表示信息的通讯,包括相互读取和写入操作。
具体应用要求为:要求从通信端口T3采集的本地设备1的事件信息可以通过通信端口T2发送到远方通讯单元2,并要求从通信端口T4采集的本地设备2的事件信息可以通过通信端口T1和通信端口T2分别发送到远方通讯单元1和远方通讯单元2。其中,端口定向传输配置文件在组态界面中完成设置而生成,事件信息可存储个数设定值设定为1024。
具体应用包括以下步骤:
1、首先,通过图1结构框图可以统计上行通讯的端口数目为2,下行通讯的端口数目为3,根据要求创建事件信息的结构体二维数组Event[2][1024]、定向端口的二维整型数组SendToPortArray[3][2]、上行通讯对应整型数组PortMapU[2] 和下行通讯对应整型数组PortMapD[3]。
其中,数组Event是2行、1024列的二维数组,对事件信息的结构体数组和定向端口的二维整型数组的划分都是以行来划分的,就是以第一维度值来划分成各个单元,本实施例中数组Event包括2个单元,分别为Event[0]和Event[1],每个单元中有1024个元素,第一个单元中的元素为从Event[0][0]到Event[0][1023],第二个单元中的元素为从Event[1][0]到Event[1][1023]。
从图1可知,上行实际端口号分别是通信端口T1和通信端口T2,下行实际端口号分别是通信端口T3、通信端口T4和通信端口T5。创建的每个二维数组都是以第一维度来进行划分单元的,每个单元中元素的个数等于第二维度的最大值+1,因为所有的维度值都是从0开始。需要说明的是,上行端口序号、下行端口序号和实际端口号的关系,在程序中每个端口不管是上行还是下行,都是统一编号的,这种统一编号就是指实际端口号。本实施例中有5个通信端口,实际端口号为T1、T2、T3、T4和T5;而在这5个端口中,T2和T4表示上行端口,T1、T3和T5表示下行端口,则5个端口中有2个上行端口和3个下行端口,上行端口T2和T4对应的端口序号分别是0和1,而下行端口T1、T3和T5对应的端口序号分别为0、1和2;其中,上行端口T2和T4的顺序号在实施例中就称为上行端口序号(0、1),而下行端口T1、T3和T5的顺序号就是下行端口序号(0、1、2),所以,端口T1对应的就是下行端口序号0,端口T2对应的上行端口序号0,端口T3对应的下行端口序号1,端口T4对应的上行端口序号为1,端口T5对应的下行端口序号为2。从而得出PortMapU[0]=T1、PortMapU[1]=T2,PortMapD[0]=T3、PortMapD[1]=T4、PortMapD[2]=T5。
根据应用要求进行前端界面的组态,生成端口定向传输配置文件,从端口定向传输配置文件中取数据为SendToPortArray [3][2]赋值,得到SendToPortArray[3][2]={{0,1},{1,1},{0,0}}。在程序中所创建的SendToPortArray[3][2],该数组的第一维度值为3,对应的下行端口序号为0、1、2,第二维度值为2,对应的上行端口序号为0、1。从数组角度来看,第一维度把数组分成3个单元,每个单元有2个元素,第一个单元对应的是下行端口序号为0的端口、也就是端口T1,第二个单元对应的是下行端口序号为1的端口、也就是端口T3,第三个单元对应的就是端口T5;那么每个单元第二维度中的2个整型元素就是对应上行端口,因为总共的上行端口数目是2,如果上行端口的数目是5,那么每个单元应该有5个元素。其中,第二维度第一个单元的端口1对应的2个元素,分别代表上行端口序号为0和1的上行端口,即端口T2和端口T4,决定端口1是否需要向2个上行端口传递事件信息,是这2个元素的值是0还是1,假设第一个元素SendToPortArray[0][0]=1,则表示下行端口序号为0的端口(端口T1)需要向上行端口序号为0的端口(端口T2)传送事件信息,而第二个元素SendToPortArray[0][1]=0,则表示下行端口序号为0的端口(端口T1)不需要向上行端口序号为1的端口(端口T4)传送事件信息。同样的,如果第二个单元中的第一个元素SendToPortArray[1][0]=1,则表示表示下行端口序号为1的端口(端口T3)需要向上行端口序号为0的端口(端口T2)传送事件信息,如果第三个单元中的第二个元素SendToPortArray[2][1]=0,则表示表示下行端口序号为2的端口(端口T5)不需要向上行端口序号为1的端口(端口T4)传送事件信息。
2、下行通讯模块D通过通信端口T3与本地设备1按照某种通讯方式进行通讯,下行通讯模块D将会根据通信端口T3来查询PortMapD的数组中值等于T3的下行端口序号这一元素的下标值,如果取不到下标,说明该端口中的事件信息不需要上传;此例中取到下标为0,将这个数作为定向端口的二维整型数组SendToPortArray[下行端口数目][上行端口数目]中的第一维度[下行端口数目]的下标数值,即得SendToPortArray[0][上行端口数目]。
3、取SendToPortArray[0]中的所有数据元素,此实施例中包括SendToPortArray[0][0]和SendToPortArray[0][1];其中,SendToPortArray[0][0]=0表示无定向端口,即说明下行端口序号为0的下行实际端口号T3不需要向上行端口序号为0的上行实际端口号T1传递事件信息;而SendToPortArray[0][1]=1表示从下行端口序号为0的下行实际端口号T3需要向上行端口序号为1的上行实际端口号T2传递事件信息,从而得到上行端口序号为1。
4、根据得出的上行端口序号为1这一下标结果,将其用于定位事件信息的结构体二维数组Event[上行端口数目][1024]中的第一维度[上行端口数目]的值,即获得Event[1][1024]。所以对于通信端口T3接收的事件信息,下行通讯模块D将Event数组加锁;再将该事件信息添加入Event[1][1024]中的至少一个Event[1][X]中,其中X表示当前的数据存储位置、该位置具体由Event[1]数组中的元素的个数决定,从尾部加入最新的事件信息;最后将Event数组解锁。
5、根据轮询,本实施例下行通讯模块D通过通信端口T4与本地设备2按照某种通讯方式进行通讯,重复步骤2和步骤3,可以得出的下标结果是0和1,即第一个数组单元Event[0]和第二个数组单元Event[1],对于通信端口T4接收的事件信息,下行通讯模块D将Event数组加锁、再将该事件信息添加入Event[0]和Event[1]中、最后将Event数组解锁。
6、上行通讯模块U通过查询PortMapU数组,得出T1对应的下标值是0,T2对应的下标值是1。
首先上行通讯模块U需要将Event数组加锁,然后上行通讯模块U根据通信实际端口号T1的对应下标值来确定读取Event[0],如果不为空,则取出Event[0]中所有的事件信息数据同时清空该Event[0],并根据通信端口T1的事件信息具体数据格式要求进行发送数据给远方通讯单元1,实现从通信端口T4采集的本地设备2的事件信息可以通过通信端口T1发送到远方通讯单元1。
上行通讯模块U对轮询到的通信端口T2进行一样的处理,即上行通讯模块U将Event数组加锁,根据通信实际端口号T2的对应下标值来确定读取Event[1],如果不为空,则取出Event[1]中所有的事件信息数据同时清空该Event[1],并根据通信端口T2的事件信息具体数据格式要求进行发送数据给远方通讯单元2,实现从通信端口T3采集的本地设备1的事件信息可以通过通信端口T2发送到远方通讯单元2、以及从通信端口T4采集的本地设备2的事件信息可以通过通信端口T2发送到远方通讯单元2。
以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (6)

1.一种事件信息的调度方法,其特征在于,包括以下步骤:
1)创建事件信息的结构体二维数组、定向端口的二维整型数组、以及实际端口号与端口序号的对应整型数组;
1-1)创建一个公用的事件信息的结构体二维数组、用Event[上行端口数目][事件信息可存储个数设定值]表示,用于作为上行通讯模块在事件信息可存储个数设定值范围内存储下行通讯模块中采集到的事件信息的存储媒介,并要求同一时间仅有一个线程对事件信息的结构体二维数组进行读写操作;
其中,第一维度的上行端口数目表示用于上行通讯的端口数目,第二维度的事件信息可存储个数设定值表示设定的上行通讯端口可以接受来自下行通讯端口所传递来的事件信息个数的限制值;
1-2)创建一个定向端口的二维整型数组、用SendToPortArray[下行端口数目][上行端口数目]表示,程序初始化时用于存储从端口定向传输配置文件中读取的配置数据,当端口定向传输配置文件的配置数据发生改变时,程序通过读取改变后的配置数据更新定向端口的二维整型数组;
其中,端口定向传输配置文件是指下行通讯中一个端口采集的事件信息需要上行通讯中至少一个端口传输出去的配置信息,下行端口数目表示用于下行通讯的端口数目;
1-3)创建实际端口号与上、下行端口序号的对应整型数组,包括两个对应整型数组、分别为上行通讯对应整型数组和下行通讯对应整型数组,分别用PortMapU[上行端口数目]和PortMapD[下行端口数目]表示;其中,实际端口号包括对上行端口进行实际标号的上行实际端口号和对下行端口进行实际标号的下行实际端口号;
所述PortMapU[上行端口数目]用于记录上行端口序号对应的上行实际端口号,构成以上行端口序号作为下标和上行实际端口号作为值的数组元素,即PortMapU[上行端口序号]=上行实际端口号;
所述PortMapD[下行端口数目]用于记录下行端口序号对应的下行实际端口号,构成以下行端口序号作为下标和下行实际端口号作为值的数组元素,即PortMapD[下行端口序号]=下行实际端口号;
2)下行处理程序调度事件信息;
2-1)下行处理程序根据轮询到的下行实际端口号通过下行通讯对应整型数组PortMapD[下行端口序号]=下行实际端口号,查询出对应的下行端口序号;
若查询不到下行端口序号,表明该下行实际端口号没有配置数据,则跳过该下行实际端口的处理;
若查询到下行端口序号,则以该下行端口序号作为定向端口的二维整型数组SendToPortArray[下行端口数目][上行端口数目]中第一维度[下行端口数目]的值;然后根据配置数据判断SendToPortArray[下行端口数目=下行端口序号][上行端口数目]的数组值是否为0或1进而判断是否进行事件信息传递,若数组值为0、能表示无定向传递端口而不需传递事件信息,若数组值为1、则确定需传递事件信息并获取对应的上行端口序号;
2-2)将上行端口序号标识为事件信息的结构体二维数组Event[上行端口数目][事件信息可存储个数设定值]中第一维度[上行端口数目]的值,下行处理程序将发生的事件信息添加到Event[上行端口数目=上行端口序号][事件信息可存储个数设定值]中可存储的至少一个数据存储位置中;
3)上行处理程序调度事件信息;
上行处理程序根据轮询到的上行实际端口号通过上行通讯对应整型数组PortMapU[上行端口序号]=上行实际端口号,查询出对应的上行端口序号;
若查询不到上行端口序号,表明该上行实际端口号没有配置数据,则跳过该上行实际端口的处理;
若查询到上行端口序号,则将上行端口序号作为事件信息的结构体二维数组Event[上行端口数目][事件信息可存储个数设定值]中第一维度[上行端口数目]的值;判断Event[上行端口数目=上行端口序号][事件信息可存储个数设定值]中是否存储有事件信息,若无、则返回重新查询上行端口序号,若有、则取出事件信息后清空该数据存储位置中事件信息,上行处理程序将取出的事件信息数据根据规定的数据传输格式发送给远方通讯单元。
2.根据权利要求1所述的一种事件信息的调度方法,其特征在于:所述步骤2-2)还包括当下行处理程序解析到事件信息时,下行处理程序将事件信息的结构体二维数组进行加锁;并在完成事件信息添加后,对事件信息的结构体二维数组进行解锁;
所述步骤3)还包括获取事件信息之前,上行处理程序将存储有事件信息的结构体二维数组进行加锁;并在完成事件信息取出后,对事件信息的结构体二维数组进行解锁。
3.根据权利要求1所述的一种事件信息的调度方法,其特征在于:所述事件信息包括变化遥信信息和遥控信息。
4.根据权利要求1所述的一种事件信息的调度方法,其特征在于:所述事件信息的结构体二维数组的数组元素包括事件类型、事件内容和发生时间。
5.根据权利要求1所述的一种事件信息的调度方法,其特征在于:所述事件信息的结构体二维数组采用事件信息的结构体指针数组,用*EventSrtuctArray [上行端口数目]表示。
6.根据权利要求1所述的一种事件信息的调度方法,其特征在于:所述事件信息的结构体二维数组采用事件信息的结构体链表数组。
CN201510801318.4A 2015-11-18 2015-11-18 一种事件信息的调度方法 Active CN105468444B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510801318.4A CN105468444B (zh) 2015-11-18 2015-11-18 一种事件信息的调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510801318.4A CN105468444B (zh) 2015-11-18 2015-11-18 一种事件信息的调度方法

Publications (2)

Publication Number Publication Date
CN105468444A CN105468444A (zh) 2016-04-06
CN105468444B true CN105468444B (zh) 2019-01-04

Family

ID=55606179

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510801318.4A Active CN105468444B (zh) 2015-11-18 2015-11-18 一种事件信息的调度方法

Country Status (1)

Country Link
CN (1) CN105468444B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071945A (zh) * 2007-03-23 2007-11-14 国电南京自动化股份有限公司 电力调度自动化系统计算量数据的计算方法
CN102508900A (zh) * 2011-11-04 2012-06-20 国电南京自动化股份有限公司 一种基于变化量排序统计分析整定ftu门限值的方法
CN103197948A (zh) * 2013-04-03 2013-07-10 国电南瑞南京控制系统有限公司 一种电力智能设备通信规约脚本解析方法
US20130191846A1 (en) * 2010-10-12 2013-07-25 Nec Corporation Data processing method, data processing device, and non-transitory computer readable medium storing data processing program
CN103353977A (zh) * 2013-03-14 2013-10-16 国电南瑞南京控制系统有限公司 一种基于发电厂机组调节中优先选择重要遥测进行传输的方法
CN104601395A (zh) * 2014-12-05 2015-05-06 国家电网公司 基于变电站数字化通信的智能记录分析系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071945A (zh) * 2007-03-23 2007-11-14 国电南京自动化股份有限公司 电力调度自动化系统计算量数据的计算方法
US20130191846A1 (en) * 2010-10-12 2013-07-25 Nec Corporation Data processing method, data processing device, and non-transitory computer readable medium storing data processing program
CN102508900A (zh) * 2011-11-04 2012-06-20 国电南京自动化股份有限公司 一种基于变化量排序统计分析整定ftu门限值的方法
CN103353977A (zh) * 2013-03-14 2013-10-16 国电南瑞南京控制系统有限公司 一种基于发电厂机组调节中优先选择重要遥测进行传输的方法
CN103197948A (zh) * 2013-04-03 2013-07-10 国电南瑞南京控制系统有限公司 一种电力智能设备通信规约脚本解析方法
CN104601395A (zh) * 2014-12-05 2015-05-06 国家电网公司 基于变电站数字化通信的智能记录分析系统

Also Published As

Publication number Publication date
CN105468444A (zh) 2016-04-06

Similar Documents

Publication Publication Date Title
CN103838859B (zh) 一种减少linux下多进程间数据拷贝的方法
CN101197812B (zh) 一种实现页面调用的系统及方法
CN110134534B (zh) 基于nio针对大数据分布式系统进行消息处理优化的系统及方法
CN1997987A (zh) 用于在互连网络路由器内进行分组合并的方法和设备
CN106060176A (zh) 一种基于混合云的云计算应用架构及云计算服务方法
CN103207920A (zh) 一种元数据并行采集系统
CN109241514A (zh) 数据自动导入方法、装置、计算机设备及存储介质
CN108369562A (zh) 具有增强型访问调度器的智能编码存储器架构
CN101839997A (zh) 一种地震数据并行存储系统
CN209103515U (zh) 基于LoRa主节点模块的集中器及抄表系统
CN103793273A (zh) 一种基于Redis的分布式队列调度方法及装置
CN104579600B (zh) 选择性使用内部和外部存储器处理harq数据的装置和方法
CN109921986A (zh) 一种多协议数据接入方法、装置、智能网关及存储介质
CN110351780A (zh) 一种基于编码缓存的通信方法、系统及存储介质
CN102567278A (zh) 一种片上多核数据传输方法和装置
CN107959695A (zh) 一种数据传输方法及装置
CN104184687A (zh) 一种通信基带处理的流程控制方法和硬件加速器电路
CN104615684A (zh) 一种海量数据通信并发处理方法及系统
CN104247544B (zh) 控制信道的发送方法、接收方法,以及用户设备和基站
CN105468444B (zh) 一种事件信息的调度方法
CN104461966B (zh) 一种基于Nand Flash芯片的数据缓存传输方法及其控制器
CN106789978A (zh) 一种数据汇聚系统和方法
CN101188429B (zh) 一种比特交织器和进行比特交织的方法
CN102946443A (zh) 一种实现大规模数据传输的多任务调度方法
CN101420233A (zh) 一种比特交织器及交织方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant