CN109254763A - 一种基于有限状态机的核电厂控制软件设计方法 - Google Patents
一种基于有限状态机的核电厂控制软件设计方法 Download PDFInfo
- Publication number
- CN109254763A CN109254763A CN201811069320.7A CN201811069320A CN109254763A CN 109254763 A CN109254763 A CN 109254763A CN 201811069320 A CN201811069320 A CN 201811069320A CN 109254763 A CN109254763 A CN 109254763A
- Authority
- CN
- China
- Prior art keywords
- state
- power plant
- nuclear power
- state machine
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本发明公开了一种基于有限状态机的核电厂控制软件设计方法,本发明针对反应堆保护装置的系统需求,设计一个有限状态机逻辑,将模块软件的工作模式限定在有限的状态内,通过有限迁移方式进行状态切换。该装置的特点是通过状态矩阵管理内部各种状态信息。可同时覆盖数据采集、功能自诊断、数据上报、错误处理等操作。将原来冗长的代码缩减为状态矩阵,只需要修改矩阵就可改变状态迁移功能。提高了CPU的利用率。本发明具有良好的扩展性和可维护性。
Description
技术领域
本发明涉及核电站仪控技术领域,具体涉及一种基于有限状态机的核电厂控制软件设计方法。
背景技术
在核电厂中,反应堆保护系统通过信号采集与信号控制运算来对堆芯的正常运行进行保护动作,这一过程中涉及到的信号采集、信号处理、功能自诊断、错误处理等等操作均是基于控制软件实现的,而现有的控制软件在结构上常采用过程式流程,逻辑代码冗长、语句嵌套复杂,增加了代码维护工作难度;且CPU没有并行执行任务的功能,计算机通过对多个程序依次交替执行,给人以程序同时进行的效果,实质上各个程序在什么时候开始执行,执行多长时间后切换到下一个程序,由操作系统绝对;单片机执行多任务也是类似的过程,但由于其资源有限,为了节省对CPU和存储空间的占用,在很多情况下没有使用操作系统,这时,单片机中运行的各个任务必须在一定时间内主动执行完毕,才能保证下一个任务能够及时执行;而对于一些需要长时间执行的任务,例如信号去除抖动、控制输出、执行诊断等,就只能通过函数进行软件延时,这些延时函数,一般通过间给某个变量循环递加或递减,到达一定值后跳出循环,从而通过消耗CPU时间实现了延时,这种方法在延时函数执行的过程中,其他程序无法运行,占用较大时间,消耗了大量CPU资源。
有限状态机(FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型;状态存储关于过去的信息,就是说:它反映从系统开始到现在时刻的输入变化,转移至少状态变更,并且用必须满足来确使转移发生的条件来描述它,动作是在给定时刻要进行的活动的描述。有限状态机已经在软件设计领域广泛发展及应用,具备多任务处理功能、提高CPU利用率等特点,如图1和2所示。然而,在核电厂控制领域采用有限状态机的进行控制软件设计还是空白。
发明内容
为了解决现有基于过程式流程来实现核电厂控制软件设计存在不能多任务并行处理、占用较多时间,消耗了大量CPU资源,且逻辑代码冗长,语句嵌套复杂等技术问题,以及为了解决现有的在核电厂控制领域采用有限状态机的控制软件设计还是空白的技术问题;本发明提出了一种基于有限状态机的核电厂控制软件设计方法,该方法通过有限状态机,将一个复杂任务划分为多个状态,将原来冗长的代码缩减为状态矩阵,只需要修改矩阵就可改变状态变迁功能,提高了CPU利用率,且本发明具有良好的可扩展性和可维护性。
本发明通过下述技术方案实现:
一种基于有限状态机的核电厂控制软件设计方法,包括以下步骤:
步骤一、根据核电厂控制功能定义状态,为每个状态分配一个函数名称;
步骤二、定义状态间的迁移事件;
步骤三、将状态和迁移事件转换为状态矩阵;
步骤四、使用宏函数方式进行状态迁移。
优选的,所述步骤一种具体根据功能定义了四种可切换状态,包括:系统初始化:ST_INT,系统运行:ST_RUN,故障处理:ST_FAIL,通道校准:ST_CLIB。
优选的,所述步骤二中定义了所述四种可切换状态间的九种迁移事件,包括:初始化成功:EV_INT_OK,初始化失败:EV_INT_NG,主功能运行正常:EV_RUN_OK,主功能运行失败:EV_RUN_NG,故障处理成功:EV_FAIL_OK,故障处理失败、严重故障不可恢复:EV_FAIL_NG,软件复位:EV_RESET,校准:EV_CLIBRATE,空事件:EV_NULL;其中,通道校准状态以及校准状态迁移事件只属于模拟量输入输出模块所具备。
优选的,所述步骤三中将状态和迁移事件转换为状态矩阵具体为:每个状态对应二维数组的一列,每个迁移事件对应数组的一行,某个状态在某个迁移事件发生后的状态对应设置在数组中,从而形成状态机转换的二维数组表,不能迁移的状态空置。
优选的,还包括步骤五、增加功能时只需要新增一个状态和迁移事件,更新状态矩阵。
本发明具有如下的优点和有益效果:
本发明提出的一种基于有限状态机的核电厂控制软件设计方法,弥补了在核电厂仪控领域采用有限状态机来实现控制软件设计的空白;且本发明针对反应堆保护装置的系统需求,设计一个有限状态机逻辑,将模块软件的工作模式限定在有限的状态内,通过有限迁移方式进行状态切换。该装置的特点是通过状态矩阵管理内部各种状态信息。可同时覆盖数据采集、功能自诊断、数据上报、错误处理等操作。将原来冗长的代码缩减为状态矩阵,只需要修改矩阵就可改变状态迁移功能。提高了CPU的利用率。本发明具有良好的可扩展性和可维护性。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为现有过程式设计和采用有限状态机设计的CPU利用率对比图。
其中,图1左图为采用过程式设计软件占用时间长,图1右图为使用状态机CPU利用率高。
图2为现有过程式设计和采用有限状态机设计的逻辑对比图。
其中,图2左图为采用过程式设计软件程序逻辑不清晰,图2右图为使用状态机设计软件程序逻辑清晰。
图3为本发明的软件运行状态迁移图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
本实施例提出了一种基于有限状态机的核电厂控制软件设计方法,具体包括以下步骤:
一、有限状态机用于安全级DCS的IO模块时,系统定义了四种可切换状态,以及九种状态事件。四种可切换状态:
不同状态之间切换是根据每个状态输出事件进行,各个状态事件分为以下九种状态事件:
其中通道校准状态,以及校准状态事件只属于模拟量输入输出模块所具备。
二、在安全级DCS平台中有限状态机的状态转换关系是使用C语言数组矩阵进行管理的,每个状态对应数组的一列,每个事件对应数组的一行。某个状态在某个事件发生后的状态填入矩阵。从而实现状态机转换的自动化控制。不能迁移的状态置空。
得到的状态矩阵表如下表1所示。
表1状态与迁移事件二维数组表
如上表所示假如软件运行于ST_INIT状态时,随着状态事件的产生软件的状态会迁移至ST_RUN、ST_FAIL、ST_CLIB。例如软件在ST_INIT状态运行时,当EN_INIT_NG事件发生时,则软件状态变为ST_FAIL,软件将会去执行该状态的模块代码。软件在其它状态发生状态迁移也与之相同。由于软件在ST_CLIB状态下不会有状态事件的发生,所以软件在该状态下不会迁移到其它状态。
三、软件编码过程中为实现有限状态机并维持状态矩阵表,要求系统使用一个全局变量来标识当前系统运行的状态。同时需要对有限状态机的状态函数的调用进行封装,提供一致的调用接口。图1给出了软件运行状态迁移,模块上电运行会将状态机的状态设置为系统初始化状态,模块软件在运行过程会根据状态事件的发生而设置软件下一步的运行状态。如图1所示软件随着状态的迁移执行不同的功能代码,各个状态的迁移是随着状态事件的产生而变换的。
本实施例的控制软件设计方法针对反应堆保护装置的系统需求,设计一个有限状态机逻辑,将模块软件的工作模式限定在有限的状态内,通过有限迁移方式进行状态切换。该装置的特点是通过状态矩阵管理内部各种状态信息。可同时覆盖数据采集、功能自诊断、数据上报、错误处理等操作。将原来冗长的代码缩减为状态矩阵,只需要修改矩阵就可改变状态迁移功能。提高了CPU的利用率。本实施例的控制软件设计方法具有良好的扩展性和可维护性。
实施例2
基于上述实施例1。本实例2提出若软件增加了一个ST_NEW状态,触发该事件的状态事件为EN_NEW,假设软件运行于ST_RUN状态时,EN_NEW事件可能会产生并引发软件状态迁移至ST_NEW,在该状态软件状态又可能迁移至ST_FAIL。则应更新软件状态矩阵表如下表2所示:
表2更新后的状态与迁移事件二维数组表
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于有限状态机的核电厂控制软件设计方法,其特征在于,包括以下步骤:
步骤一、根据核电厂控制功能定义状态,为每个状态分配一个函数名称;
步骤二、定义状态间的迁移事件;
步骤三、将状态和迁移事件转换为状态矩阵;
步骤四、使用宏函数方式进行状态迁移。
2.根据权利要求1所述的一种基于有限状态机的核电厂控制软件设计方法,其特征在于,
所述步骤一种具体根据功能定义了四种可切换状态,包括:系统初始化:ST_INT,系统运行:ST_RUN,故障处理:ST_FAIL,通道校准:ST_CLIB。
3.根据权利要求2所述的一种基于有限状态机的核电厂控制软件设计方法,其特征在于,所述步骤二中定义了所述四种可切换状态间的九种迁移事件,包括:初始化成功:EV_INT_OK,初始化失败:EV_INT_NG,主功能运行正常:EV_RUN_OK,主功能运行失败:EV_RUN_NG,故障处理成功:EV_FAIL_OK,故障处理失败、严重故障不可恢复:EV_FAIL_NG,软件复位:EV_RESET,校准:EV_CLIBRATE,空事件:EV_NULL;其中,通道校准状态以及校准状态迁移事件只属于模拟量输入输出模块所具备。
4.根据权利要求3所述的一种基于有限状态机的核电厂控制软件设计方法,其特征在于,所述步骤三中将状态和迁移事件转换为状态矩阵具体为:每个状态对应二维数组的一列,每个迁移事件对应数组的一行,某个状态在某个迁移事件发生后的状态对应设置在数组中,从而形成状态机转换的二维数组表,不能迁移的状态空置。
5.根据权利要求1所述的一种基于有限状态机的核电厂控制软件设计方法,其特征在于,还包括步骤五、增加功能时只需要新增一个状态和迁移事件,更新状态矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811069320.7A CN109254763B (zh) | 2018-09-13 | 2018-09-13 | 一种基于有限状态机的核电厂控制软件设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811069320.7A CN109254763B (zh) | 2018-09-13 | 2018-09-13 | 一种基于有限状态机的核电厂控制软件设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109254763A true CN109254763A (zh) | 2019-01-22 |
CN109254763B CN109254763B (zh) | 2022-02-18 |
Family
ID=65047390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811069320.7A Active CN109254763B (zh) | 2018-09-13 | 2018-09-13 | 一种基于有限状态机的核电厂控制软件设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109254763B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110673843A (zh) * | 2019-09-16 | 2020-01-10 | 上海交通大学 | 一种基于数据的软件模块行为状态机还原方法 |
CN111443898A (zh) * | 2019-11-14 | 2020-07-24 | 天津津航计算技术研究所 | 基于优先级队列与有限状态机的流程式控制软件设计方法 |
CN112256311A (zh) * | 2020-09-27 | 2021-01-22 | 北京控制工程研究所 | 一种基于有限状态机的火星车主从软件自动更新方法 |
CN113986814A (zh) * | 2021-10-15 | 2022-01-28 | 浙江大学 | 一种基于微处理器的状态机通用表示及执行方法 |
CN116450101A (zh) * | 2023-04-27 | 2023-07-18 | 睿珀智能科技有限公司 | 软件架构设计方法、系统及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341290A (en) * | 1992-09-15 | 1994-08-23 | James Lu | Modular system for printing and processing financial documents |
CN101206687A (zh) * | 2007-12-18 | 2008-06-25 | 同济大学 | 一种提高分布式机电装备的动态安全性的方法 |
CN103629524A (zh) * | 2013-12-04 | 2014-03-12 | 重庆耐德燃气设备有限公司 | 一种液压式cng加气子站撬体控制方法及系统 |
CN103733154A (zh) * | 2011-08-16 | 2014-04-16 | Abb研究有限公司 | 用于控制工业系统的方法和控制系统 |
CN106502770A (zh) * | 2015-09-07 | 2017-03-15 | 上海畅星软件有限公司 | 一种基于有限状态机的hmi状态迁移方法 |
-
2018
- 2018-09-13 CN CN201811069320.7A patent/CN109254763B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341290A (en) * | 1992-09-15 | 1994-08-23 | James Lu | Modular system for printing and processing financial documents |
CN101206687A (zh) * | 2007-12-18 | 2008-06-25 | 同济大学 | 一种提高分布式机电装备的动态安全性的方法 |
CN103733154A (zh) * | 2011-08-16 | 2014-04-16 | Abb研究有限公司 | 用于控制工业系统的方法和控制系统 |
CN103629524A (zh) * | 2013-12-04 | 2014-03-12 | 重庆耐德燃气设备有限公司 | 一种液压式cng加气子站撬体控制方法及系统 |
CN106502770A (zh) * | 2015-09-07 | 2017-03-15 | 上海畅星软件有限公司 | 一种基于有限状态机的hmi状态迁移方法 |
Non-Patent Citations (5)
Title |
---|
JIE XU等: ""Design and Implementation of HL-2A Host Centralized Control System FSM Model Based on EPICS"", 《IEEE TRANSACTIONS ON PLASMA SCIENCE》 * |
MIN LI等: ""Communicating FSM partitioning for front end embedded software synthesis"", 《FIFTH WORLD CONGRESS ON INTELLIGENT CONTROL AND AUTOMATION (IEEE CAT. NO.04EX788)》 * |
刘朝晖: ""基于系统论模型的核电厂数字化仪控系统安全性分析方法研究"", 《中国博士学位论文全文数据库•工程科技Ⅱ辑》 * |
吴礼银等: ""基于马尔可夫计算核电厂安全级DCS可用性的研究"", 《仪器仪表用户》 * |
朱夕辉: ""核电厂仪控系统中FPGA的形式验证方法及V&V技术"", 《工业控制计算机》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110673843A (zh) * | 2019-09-16 | 2020-01-10 | 上海交通大学 | 一种基于数据的软件模块行为状态机还原方法 |
CN110673843B (zh) * | 2019-09-16 | 2021-07-16 | 上海交通大学 | 一种基于数据的软件模块行为状态机还原方法 |
CN111443898A (zh) * | 2019-11-14 | 2020-07-24 | 天津津航计算技术研究所 | 基于优先级队列与有限状态机的流程式控制软件设计方法 |
CN112256311A (zh) * | 2020-09-27 | 2021-01-22 | 北京控制工程研究所 | 一种基于有限状态机的火星车主从软件自动更新方法 |
CN112256311B (zh) * | 2020-09-27 | 2023-06-06 | 北京控制工程研究所 | 一种基于有限状态机的火星车主从软件自动更新方法 |
CN113986814A (zh) * | 2021-10-15 | 2022-01-28 | 浙江大学 | 一种基于微处理器的状态机通用表示及执行方法 |
CN113986814B (zh) * | 2021-10-15 | 2023-12-01 | 浙江大学 | 一种基于微处理器的状态机通用表示及执行方法 |
CN116450101A (zh) * | 2023-04-27 | 2023-07-18 | 睿珀智能科技有限公司 | 软件架构设计方法、系统及设备 |
CN116450101B (zh) * | 2023-04-27 | 2024-04-09 | 睿珀智能科技有限公司 | 软件架构设计方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109254763B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254763A (zh) | 一种基于有限状态机的核电厂控制软件设计方法 | |
Sehr et al. | Programmable logic controllers in the context of industry 4.0 | |
GB2601643A (en) | Spiking neural network computing system and method for brain-like intelligence and cognitive computing | |
CN101957751B (zh) | 一种状态机的实现方法及装置 | |
CN103441900A (zh) | 集中式跨平台自动化测试系统及其控制方法 | |
CN110532072A (zh) | 基于微内核操作系统的分布式流式数据处理方法及系统 | |
Feldmann et al. | Specification, design, and implementation of logic controllers based on colored Petri net models and the standard IEC 1131. I. Specification and design | |
Lomow et al. | A tutorial introduction to object-oriented simulation and Sim++ | |
CN109213105A (zh) | 一种可重构装置、实现可重构的方法及分布式控制系统 | |
Wu et al. | Computer Architecture and Chip Design for DIKWP Artificial Consciousness | |
CN102183952B (zh) | 一种在plc中嵌入非致命故障诊断的方法 | |
CN105335135A (zh) | 数据处理方法和中心节点 | |
CN110007597A (zh) | 状态轮询和事件驱动软件状态机设计模式的优化方法 | |
Kleinberg et al. | Resource bounds and combinations of consensus objects | |
CN113504966A (zh) | Gpu集群调度策略模拟方法及gpu集群模拟器 | |
Kim et al. | A supervisory control approach for execution control of an FMC | |
EP2781977B1 (en) | Method and system for managing distributed computing in automation systems | |
Fant et al. | A comparison of executable model based approaches for embedded systems | |
Delestrac et al. | Demystifying the TensorFlow eager execution of deep learning inference on a CPU-GPU tandem | |
Saeki et al. | Reflective specification: Applying a reflective language to formal specification | |
Moreno et al. | Petri nets and Java. Real-Time Control of a flexible manufacturing cell | |
Gao | Design and application of wind power algorithm library | |
Nketsa et al. | A Petri net based single chip programmable controller for distributed local controls | |
Wexler et al. | Solving problems with transputers: background and experience | |
Gruau et al. | A Programming Language for Artificial Development. |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201228 Address after: No.3, Hongda South Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing Applicant after: CHINA NUCLEAR CONTROL SYSTEM ENGINEERING Co.,Ltd. Address before: 610000, No. three, 28 south section of Ring Road, Chengdu, Sichuan Applicant before: NUCLEAR POWER INSTITUTE OF CHINA |
|
GR01 | Patent grant | ||
GR01 | Patent grant |