CN104063266B - 一种通过pc模拟继电保护装置多cpu同步运行的方法 - Google Patents
一种通过pc模拟继电保护装置多cpu同步运行的方法 Download PDFInfo
- Publication number
- CN104063266B CN104063266B CN201410328513.5A CN201410328513A CN104063266B CN 104063266 B CN104063266 B CN 104063266B CN 201410328513 A CN201410328513 A CN 201410328513A CN 104063266 B CN104063266 B CN 104063266B
- Authority
- CN
- China
- Prior art keywords
- cpu
- management module
- virtual cpu
- emulation data
- cycle
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种通过PC模拟继电保护装置多CPU同步运行的方法,在PC机上仿真实现了继保装置中多个CPU插件保护任务的同步执行。本发明应用生产者消费者模型,构建了仿真数据输入与各虚拟CPU同步运行的机制:其中管理模块作为生产者负责为各虚拟CPU提供仿真运行数据、存储转发共享数据以及协调各CPU内部保护任务的同步执行;各虚拟CPU作为消费者负责读取仿真数据,执行保护任务。基于本方法实现的仿真系统,不仅保证了运行结果的正确性,同时还解决了保护逻辑的调试开发严重依赖硬件装置的问题,并提供了丰富的调试手段,可有效缩短保护装置的研发周期。
Description
技术领域
本发明属于继电保护装置研发领域,特别适用于继保应用开发人员编写保护逻辑和算法,并进行运行仿真调试。
背景技术
目前,基于新平台的继电保护装置配置较为灵活,可根据实际应用需求在一个机箱内安装多块CPU插件,以分别执行不同的保护任务;同时由于系统的采用频率固定不变,保护任务执行时,要求任务的执行周期必须小于规定的时间,以确保各任务能同步及时有效的处理采样数据。
保护逻辑开发是继电保护领域的核心工作之一,因而确保其功能代码和逻辑的正确性显得尤为重要。在实际开发中,使用硬件装置进行保护逻辑调试很不方便,而且多CPU插件同步调试对人员整体要求较高;另外,现有的调试方法严重依赖于装置硬件和测试设备,这使得保护逻辑开发和调试受限于实际测试设备和装置硬件的完成时间。
因而,有必要研发一套基于个人计算机即PC机的仿真实际装置的系统用于保护逻辑调试。仿真系统能够模拟实际装置的运行,提供丰富的调试手段,实时显示运行数据,这使得保护逻辑的调试摆脱了对硬件装置的依赖。但由于PC机与实际继保装置的软硬件环境存在较大差异,且实时性较差,因此在通过PC机模拟实际多CPU装置的运行及对其进行调试时,存在若干问题:
●实际装置中各CPU能保证在规定的时间内完成本周期任务,但在PC机上通过软件方式模拟出的多个虚拟CPU执行任务的时间难以确定。
●虚拟CPU执行任务时间的不确定性,造成了仿真数据输入时间的不确定,从而导致了输入数据更新与保护任务运行的不同步。
●虚拟CPU执行任务时间的不确定性,造成了各CPU保护任务运行的不同步。
本申请在PC机上模拟保护装置的运行,并基于采样值数据特点实现模拟多CPU插件的同步运行和数据传递,从而实现了保护逻辑的方便快捷调试,并促进了保护逻辑与装置硬件的同步开发。
发明内容
为解决现有技术中存在的上述问题,本申请提出了一种通过PC(即个人计算机)模拟继电保护装置多CPU同步运行的方法。PC模拟继电保护装置多CPU,就是基于PC机的软硬件资源,模拟出可独立运行保护任务的多个虚拟CPU。本申请具体采用以下技术方案:
一种通过PC模拟继电保护装置多CPU同步运行的方法,其特征在于:在PC机上模拟实际保护装置的运行环境,同步执行多个虚拟CPU的保护任务,通过生产者消费者模型,构建仿真数据与各虚拟CPU同步运行机制,各虚拟CPU作为消费者,由作为生产者的管理模块协调他们的同步运行。
本发明模拟继电保护装置多CPU同步运行的方法,包括以下步骤:
(1)在PC机上创建用户界面UI模块,UI模块为用户提供了集成开发环境,可在其上配置软硬件资源;
(2)为各虚拟CPU下的保护任务编写相应的控制算法,编译生成可运行于实际装置的CPU插件和各虚拟CPU的编码文件;
(3)仿真运行时,UI模块创建管理模块及多个虚拟CPU,其中管理模块负责协调各虚拟CPU的同步运行,并及时提供运行所需的仿真数据;各虚拟CPU作为仿真数据的消费者,读取仿真数据,执行相应的保护任务;
(4)管理模块作为仿真数据的生产者,获取仿真数据,向各虚拟CPU发送下一执行周期的仿真数据;
(5)各虚拟CPU加载步骤(2)所述相应的编码文件,执行各自的保护任务;保护任务循环周期执行,周期执行过程是,首先读取步骤(4)中所述的仿真数据、更新输入,然后执行保护逻辑,输出结果;其中,每个虚拟CPU下可以有一个或多个保护任务,各保护任务可并行或顺序执行,当该虚拟CPU下的所有保护任务本周期执行完成后,向管理模块发送“本周期执行完”的消息,以告知管理模块本虚拟CPU本周期执行完成,同时该虚拟CPU被置于阻塞状态,暂不执行下一周期的保护任务;
(6)管理模块定时检查是否收到了所有虚拟CPU返回的“本周期执行完”消息,若所有虚拟CPU均向管理模块发送了“本周期执行完”消息,则管理模块继续向各虚拟CPU发送下一周期运行所需的仿真数据,然后发送“继续运行”指令,从而唤醒处于阻塞状态的各虚拟CPU,进行下个周期保护任务的运行。
本发明提出的通过PC模拟继电保护装置多CPU同步运行的方法,解决了目前保护逻辑的调试开发严重依赖于装置硬件和测试设备的问题,实现了硬件装置与保护逻辑的同步开发。另外,PC机能够提供丰富且便捷的调试手段,进一步解决了在实际装置中调试手段有限、对测试人员素质要求高,尤其是多CPU的同步调试无法实现的问题。本发明可有效缩短继保装置的研发周期,并进一步提高了保护逻辑开发的正确率。
附图说明
图1为PC模拟继电保护装置的仿真系统结构框图;
图2为多个虚拟CPU同步执行的方法时序图;
图3为单个虚拟CPU内部执行流程图。
具体实施方式
下面结合附图对本发明作进一步说明。
通过PC模拟继电保护装置多CPU同步运行的仿真系统,可在PC机上实现保护逻辑的组态及仿真功能。如图1所示,整个仿真系统主要包括3部分:UI模块、管理模块和多个虚拟CPU。
用户界面UI模块的功能包括:
●资源配置。模拟实际装置,配置整装系统的软硬件资源,如配置虚拟CPU数目、模入量、开入量、灯光、报文等。
●逻辑组态。编写各CPU下的保护任务算法,实现对不同对象的保护。
●编译各CPU下的保护逻辑。生成相应的编码文件,该文件可在实际装置的CPU插件和各虚拟CPU上执行。
●在仿真状态下,可实时显示虚拟CPU中的运行数据及出口灯光等。
●提供多种调试方法,如设置断点、单步运行、仿真置数等,可有效跟踪代码的执行过程。
管理模块的功能包括:
●作为生产者,通过多种方式获取仿真数据,并及时发送给各虚拟CPU。
●发送仿真数据和同步命令,以协调仿真数据输入与CPU运行的同步,以及协调多CPU之间的同步运行。
●定义各模块间的通讯规则。作为消息路由,分派来自UI模块和各虚拟CPU之间的消息。(如UI界面将消息发给管理模块,管理模块按照预先定义的规则分派消息给具体的某虚拟CPU,各虚拟CPU之间的消息传送也是如此)。
虚拟CPU的主要功能包括:
●作为消费者,从生产者(管理模块)处接收仿真数据,并更新输入。
●执行本CPU分管的保护任务,若是包含多个保护任务,则各任务可并行执行或顺序执行。
●发送本CPU共享数据给其他CPU(实际发给管理模块,再由管理模块转发)。
●在本周期所有保护任务执行完成后,发“本周期执行完”消息通知管理模块。
●接收UI端发来的命令,并做出相应处理,如设置断点、返回执行结果等。
上述3部分在仿真时通过进程通讯实现消息的传递,使3部分协调工作,实现多CPU同步运行及仿真调试功能。
本申请公开了基于上述软件架构的多CPU同步运行方法,如图2所示,具体实施步骤如下:
1、在PC机上创建用户界面UI模块,用于组态与配置保护逻辑。配置一定数目的虚拟CPU,并将面向不同保护对象的保护逻辑指定给具体的某一虚拟CPU执行。
2、为各虚拟CPU下的保护任务编写相应的控制算法,编译保护逻辑,生成可在实际装置的CPU插件和各虚拟CPU上执行的保护逻辑代码文件。针对具体的保护应用,编写继电保护逻辑算法,如变压器、线路保护的算法逻辑。
3、仿真运行时,UI模块创建管理模块及多个虚拟CPU,其中管理模块负责协调各虚拟CPU的同步运行,并及时提供运行所需的仿真数据;各虚拟CPU作为仿真数据的消费者,读取仿真数据,执行相应的保护任务。
其中,在管理模块中定义消息通讯的规则;UI模块、管理模块及各虚拟CPU之间通讯时,都先发送消息给管理模块;管理模块解析消息发送者、消息ID等信息,并根据所定义的规则确定此消息的接收对象。
虚拟CPU内部包含2个并行的线程,1是消息处理线程,2是任务执行线程。其中消息处理线程用于接收和发送异步消息,任务执行线程用于执行各保护任务。
4、管理模块作为仿真数据的生产者,获取仿真数据,将各虚拟CPU下一执行周期的仿真数据发送给各虚拟CPU。
管理模块获取仿真数据的方式包括:(1)由用户在UI模块设置仿真数据;(2)连接测试仪,由测试仪将仿真数据发送给管理模块;(3)管理模块直接读取以文件形式保存的仿真数据,所述文件包括录波文件。
进一步可优选的是,各虚拟CPU在接收到仿真数据后,先将其写入到缓冲区中,在下一周期开始时,再读取缓冲区中的仿真数据更新输入,并执行此周期的保护任务。
5、各虚拟CPU加载所述相应的编码文件,执行各自的保护任务;保护任务循环周期执行,周期执行过程是,首先读取所述的仿真数据、更新输入,然后执行保护逻辑,输出结果;其中,每个虚拟CPU下可以有一个或多个保护任务,各保护任务可并行或顺序执行,当该虚拟CPU下的所有保护任务本周期执行完成后,向管理模块发送“本周期执行完”的消息,以告知管理模块本虚拟CPU本周期执行完成,同时该虚拟CPU被置于阻塞状态,暂不执行下一周期的保护任务。
其中,单个虚拟CPU保护任务具体的执行流程如图3所示。虚拟CPU根据接收到的仿真输入数据和保护逻辑文件,分别执行各自的保护任务;在执行完本周期所有保护任务后,发送“本周期执行完”消息给管理模块;同时,该CPU任务执行线程被置于阻塞状态,不再继续执行下周期任务。
6、管理模块定时检查是否收到了所有虚拟CPU返回的“本周期执行完”消息,若所有虚拟CPU均向管理模块发送了“本周期执行完”消息,则管理模块继续向各虚拟CPU发送再下一周期运行所需的仿真数据,然后发送“继续运行”指令,从而唤醒处于阻塞状态的各虚拟CPU,进行下个周期保护任务的运行。
在本申请中,各虚拟CPU间数据共享功能由管理模块和各虚拟CPU协调完成。首先在管理模块中定义各CPU之间的数据共享关系,即某CPU共享了其他哪些CPU的数据;在各虚拟CPU执行完本周期任务,发送“本周期执行完”消息前,将本CPU共享给其他CPU的数据发送给管理模块;管理模块根据注册信息,确定将这些数据转发给其他哪些CPU。在此过程中,管理模块类似于二层交换机对数据进行了存储转发。各CPU在其消息收发线程接收到其他CPU发送来的共享数据后,均用其更新当前值。
申请人结合说明书附图和具体实施例对本发明做了详细的说明与描述,但是本领域技术人员应该理解,以上实施例仅为本发明的优选实施方案,详尽的说明只是为了帮助读者更好地理解本发明精神,而并非对本发明保护范围的限制,相反,任何基于本发明的发明精神所作的任何改进或修饰都应当处于本发明的保护范围之内。
Claims (5)
1.一种通过PC模拟继电保护装置多CPU同步运行的方法,其特征在于,所述方法包括以下步骤:
(1)在PC机上创建用户界面UI模块,UI模块为用户提供了集成开发环境,可在其上配置软硬件资源;
(2)为各虚拟CPU下的保护任务编写相应的控制算法,编译生成可运行于实际装置的CPU插件和各虚拟CPU的编码文件;
(3)仿真运行时,UI模块创建管理模块及多个虚拟CPU,其中管理模块负责协调各虚拟CPU的同步运行,并及时为其提供运行所需的仿真数据;各虚拟CPU作为仿真数据的消费者,读取仿真数据,执行相应的保护任务;
(4)管理模块作为仿真数据的生产者,获取仿真数据,向各虚拟CPU发送下一执行周期的仿真数据;
(5)各虚拟CPU加载步骤(2)中相应的各虚拟CPU的编码文件,执行各自的保护任务;保护任务循环周期执行,周期执行过程是,首先读取步骤(4)中所述的仿真数据、更新输入,然后执行保护逻辑,输出结果;其中,每个虚拟CPU下可以有一个或多个保护任务,各保护任务可并行或顺序执行,当该虚拟CPU下的所有保护任务本周期执行完成后,向管理模块发送“本周期执行完”的消息,以告知管理模块本虚拟CPU本周期执行完成,同时该虚拟CPU被置于阻塞状态,暂不执行下一周期的保护任务;
(6)管理模块定时检查是否收到了所有虚拟CPU返回的“本周期执行完”消息,若所有虚拟CPU均向管理模块发送了“本周期执行完”消息,则管理模块继续向各虚拟CPU发送下一周期运行所需的仿真数据,然后发送“继续运行”指令,从而唤醒处于阻塞状态的各虚拟CPU,进行下个周期保护任务的运行。
2.根据权利要求1所述的通过PC模拟继电保护装置多CPU同步运行的方法,其特征在于:
在所述步骤(3)中,各虚拟CPU内部设置2个并行的线程,一个是消息处理线程,另一个是任务执行线程;其中消息处理线程用于接收和发送消息,任务执行线程用于执行各保护任务。
3.根据权利要求1所述的通过PC模拟继电保护装置多CPU同步运行的方法,其特征在于:
在所述步骤(4)中,管理模块获取仿真数据的方式包括:
由用户在UI模块设置仿真数据;
连接测试仪,由测试仪将仿真数据发送给管理模块;
管理模块直接读取以文件形式保存的仿真数据,所述文件包括录波文件。
4.根据权利要求1所述的通过PC模拟继电保护装置多CPU同步运行的方法,其特征在于:
在步骤(4)、(5)中,各虚拟CPU在接收到仿真数据后,先将其写入到缓冲区中,在下一周期开始时,再读取缓冲区中的仿真数据更新输入,并执行此周期的保护任务。
5.根据权利要求1所述的通过PC模拟继电保护装置多CPU同步运行的方法,其特征在于:
在管理模块中定义消息通讯的规则;UI模块、管理模块及各虚拟CPU之间通讯时,都先发送消息给管理模块;管理模块解析消息发送者、消息ID信息,并根据所定义的规则确定此消息的接收对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410328513.5A CN104063266B (zh) | 2014-07-11 | 2014-07-11 | 一种通过pc模拟继电保护装置多cpu同步运行的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410328513.5A CN104063266B (zh) | 2014-07-11 | 2014-07-11 | 一种通过pc模拟继电保护装置多cpu同步运行的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104063266A CN104063266A (zh) | 2014-09-24 |
CN104063266B true CN104063266B (zh) | 2017-08-22 |
Family
ID=51550990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410328513.5A Active CN104063266B (zh) | 2014-07-11 | 2014-07-11 | 一种通过pc模拟继电保护装置多cpu同步运行的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104063266B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3422218A1 (de) * | 2017-06-29 | 2019-01-02 | Siemens Aktiengesellschaft | Synchronisation mehrerer simulationen |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488098A (zh) * | 2009-02-13 | 2009-07-22 | 华中科技大学 | 基于虚拟计算技术的多核计算资源管理系统 |
CN103488095A (zh) * | 2013-09-05 | 2014-01-01 | 国家电网公司 | 一种电力系统便携式全数字实时仿真仪 |
CN103605293A (zh) * | 2013-11-27 | 2014-02-26 | 南京南瑞集团公司 | 一种变电站继电保护仿真测试系统及其仿真测试方法 |
-
2014
- 2014-07-11 CN CN201410328513.5A patent/CN104063266B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488098A (zh) * | 2009-02-13 | 2009-07-22 | 华中科技大学 | 基于虚拟计算技术的多核计算资源管理系统 |
CN103488095A (zh) * | 2013-09-05 | 2014-01-01 | 国家电网公司 | 一种电力系统便携式全数字实时仿真仪 |
CN103605293A (zh) * | 2013-11-27 | 2014-02-26 | 南京南瑞集团公司 | 一种变电站继电保护仿真测试系统及其仿真测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104063266A (zh) | 2014-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302950B (zh) | 一种软、硬件协同的可编程逻辑器件交联仿真测试方法 | |
CN104750603B (zh) | 一种多核dsp软件仿真器及其物理层软件测试方法 | |
CN102339343B (zh) | 产生系统模型的方法与在此系统模型中传输数据的方法 | |
CN102508753B (zh) | Ip核验证系统 | |
CN102522128B (zh) | 一种核电站dcs系统组态逻辑设计的测试方法和系统 | |
CN101529392B (zh) | 在非侵入性数字信号处理器调试期间用于指令填充操作的方法和系统 | |
CN102662835B (zh) | 一种针对嵌入式系统的程序调试方法及嵌入式系统 | |
CN105137807B (zh) | 通用全数字星务仿真平台 | |
CN101231589B (zh) | 用于原位开发嵌入式软件的系统和方法 | |
CN109937418B (zh) | 用于仿真的基于波形的重构 | |
CN103235756A (zh) | 一种面向嵌入式系统分区应用程序软件的仿真测试方法 | |
US8448172B2 (en) | Controlling parallel execution of plural simulation programs | |
CN109144515A (zh) | Dcs图形化算法组态的离线仿真方法和装置 | |
CN103150228A (zh) | 面向高速缓冲存储器的可综合伪随机验证方法及装置 | |
CN115686655B (zh) | 用于gpu ip验证的联合仿真系统 | |
CN102480467A (zh) | 一种基于网络通讯协议的soc软硬件协同仿真验证方法 | |
CN110502861A (zh) | 基于卫星信息流的全数字化仿真系统 | |
CN103942092A (zh) | 一种支持LabView图形化编程的HLA协同仿真方法 | |
CN110689238B (zh) | 智能变电站mms信息模拟及对点的实现方法及系统 | |
JP2008140405A (ja) | 電子回路と制御プログラムとのコバリデーション方法 | |
CN104063266B (zh) | 一种通过pc模拟继电保护装置多cpu同步运行的方法 | |
CN103812730B (zh) | 一种多小区ttcn协议一致性测试平台系统 | |
CN100481093C (zh) | 验证目标系统的验证系统及其验证方法 | |
CN109346028A (zh) | 一种基于tlm的三角形光栅化扫描结构 | |
Ozmen et al. | Simulation-based testing of control software |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190320 Address after: 100085 9, four street, Shang Di information industry base, Haidian District, Beijing. Co-patentee after: Beijing Sifang Jibao Engineering Technology Co., Ltd. Patentee after: Beijing Sifang Jibao Automation Co., Ltd. Address before: 100085 9, four street, Shang Di information industry base, Haidian District, Beijing. Patentee before: Beijing Sifang Jibao Automation Co., Ltd. |
|
TR01 | Transfer of patent right |