CN109558167B - 管理电气切换设备的电子计算机的嵌入式软件模块的方法 - Google Patents

管理电气切换设备的电子计算机的嵌入式软件模块的方法 Download PDF

Info

Publication number
CN109558167B
CN109558167B CN201811093526.3A CN201811093526A CN109558167B CN 109558167 B CN109558167 B CN 109558167B CN 201811093526 A CN201811093526 A CN 201811093526A CN 109558167 B CN109558167 B CN 109558167B
Authority
CN
China
Prior art keywords
execution
software module
tasks
electronic computer
service contract
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
CN201811093526.3A
Other languages
English (en)
Other versions
CN109558167A (zh
Inventor
V.布弗内
V.波波维克
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.)
Schneider Electric Industries SAS
Original Assignee
Schneider Electric Industries SAS
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 Schneider Electric Industries SAS filed Critical Schneider Electric Industries SAS
Publication of CN109558167A publication Critical patent/CN109558167A/zh
Application granted granted Critical
Publication of CN109558167B publication Critical patent/CN109558167B/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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种管理用于嵌入在用于切换电流的电气切换设备中的电子计算机的嵌入式软件模块的方法包括步骤:a)获取软件模块,该软件模块包括可运行代码和声明当可运行代码被计算机运行时所需的硬件资源的服务合同;b)将软件模块安装(1004)在托管插口内,托管插口旨在形成用于运行该软件模块的环境,并且包括在计算机的存储器内静态地定义并与计算机的硬件资源的子集相关联的存储器位置;c)运行(1010)该软件模块,包括包括验证(1012)该软件模块的运行操作是否遵守服务合同的步骤,如果遵守服务合同,则允许继续运行操作,否则实施恢复步骤(1016)以便中断运行操作。

Description

管理电气切换设备的电子计算机的嵌入式软件模块的方法
技术领域
本发明涉及用于管理由电气切换设备的嵌入式电子计算机运行的嵌入式软件模块的方法。本发明还涉及包括被编程用于实现这种管理方法的嵌入式电子计算机的电气切换设备。
本发明具体地涉及配备有用于运行嵌入式软件程序的嵌入式电子计算机、用于中断电流的设备(诸如低压断路器)的领域。
背景技术
目前,这种软件程序允许实现改进这些设备的操作的先进的功能,诸如控制、监督和远程管理功能。
期望能够随着时间的推移并根据用户的需要开发这些软件程序。例如,用户可以取决于设备旨在用于的用途来选择仅使用他们感兴趣的功能。如果他们的需要随着时间的推移而改变,那么他们也可能希望添加或移除某些功能。这也允许制造商在设备的整个生命周期内开发设备,或者甚至为用户提供根据其特定需要而定制设计的具体功能。实际上,在设计产品时并不总是能够知道用户在整个产品生命周期中将其用于什么用途。
这种可升级的行为必须能够由用户容易且快速地实现。
但是,由这些软件程序实现的功能可以涉及电气设备的基本功能,诸如保护和电气测量功能,例如用于在电气故障的情况下触发断路器。因此,这些软件程序在运行时必须遵从实时操作的约束。如果不是这种情况,则会损害设备操作的安保性和安全性,这是不期望的。
以已知的方式,一些切换设备包括实时嵌入式软件程序,其中可以以模块化方式安装多个功能。但是,在各种功能由组合在一起的任务提供的意义上,这种模块化仍然是有限的,并且具有“整体(monolithic)”方面。换句话说,从其安装到其执行,这些功能是相互依赖的。用户无法安装或卸载单个功能,而是只能固定(fix)预定义的功能集。因此,这种系统的操作对于用户来说仍然是复杂的。当制造商希望在向用户提供各种功能之前测试和证实各种功能时,这种体系架构也会产生问题。实际上,由于任务不能在同一集合中分离的事实,因此需要测试整个任务集。如果制造商希望测试或证实所有可能的功能组合以便为用户提供更广泛的选择,则要测试和证实的集合的数量呈指数增长,因此这样的任务在实践中是不可行的。
当然存在具有模块化体系架构的其它软件系统,因此允许更灵活的使用。但是,它们不允许保证实时行为。因此它们的使用是不期望的。
发明内容
本发明旨在通过提供一种包括嵌入式电子计算机、用于中断电流的设备以及相关的操作方法来更具体地克服这些缺点,其中嵌入式软件程序具有由用户容易且快速地实现的模块化设计,而不损害设备操作的安保性或安全性。
为此目的,本发明涉及一种管理用于电流的电气切换设备的嵌入式电子计算机的嵌入式软件模块的方法,该方法包括步骤:
a)由用于管理切换设备的电子计算机的软件模块的系统获取软件模块,该软件模块包括可运行代码和声明当可运行代码由电子计算机运行时所需的硬件资源的服务合同;
b)由管理系统在托管插口内安装软件模块,所述托管插口属于托管插口的组件,每个托管插口旨在形成用于软件模块的运行时环境,为此目的,每个插口包括在电子计算机的存储器内静态地定义并与电子计算机的硬件资源的子组件相关联的存储器位置;
c)由电子计算机执行软件模块;其中步骤c)包括当软件模块被执行时包括借助于管理系统验证(verify)软件模块的执行是否遵从该软件模块的服务合同的步骤,其中,如果执行遵从服务合同,则被授权继续进行,并且如果软件模块的执行被识别为不遵从服务合同,则实施恢复步骤,其目的是中断由电子计算机对软件模块的运行。
因此,本发明允许协调嵌入式软件的模块化方面和该软件对实时执行约束的遵从性。
如前面所解释的,软件模块的模块化结构部分地凭借插口而被允许。这种模块化结构也被服务合同所允许,并且还被允许验证是否遵守服务合同的机制所允许。服务合同还允许确保软件模块的实时操作。
由于软件模块具有模块化结构,因此可以动态安装或卸载它们。为用户促进了设备的软件管理。这种模块化结构还为随着时间的推移升级设备的操作提供了更多可能性。而且,通过保持嵌入式软件程序的实时操作,避免了对设备的操作安保性和安全性的不利影响。
根据本发明的有利但非强制性的方面,这种方法可以单独地或根据任何技术上可接受的组合结合以下特征中的一个或多个:
-在步骤b)之前,该方法包括先前步骤,用于验证软件模块的服务合同,如果服务合同所需的硬件资源与由可用插口提供的硬件资源不兼容,则拒绝软件模块的安装。
-与步骤c)并行地,还运行安装在另一个分离插口中的至少一个分离的第二软件模块,还实施包括验证该第二软件模块的运行是否遵从该第二软件模块的服务合同的第二步骤。
-在步骤c)期间,代码的运行包括:由电子计算机的逻辑处理单元实时地执行多个任务,每个任务与预定义执行频率相关联,并且逻辑处理单元对任务的执行由管理系统实现的第一定序器调节,然后由电子计算机的操作系统实时实现的第二定序器调节,第一定序器根据等待执行的任务的执行频率选择性地授权执行等待执行的任务,并且针对第二定序器为它们指派执行优先级级别,所述执行优先级级别取决于针对所述任务定义的执行频率。
-第一任务组集合与第一预定义执行频率相关联的任务,第二任务组集合与低于第一执行频率的第二预定义执行频率相关联的任务,并且当软件模块被运行时,当接收到每个周期的定时信号时,定序器触发属于第一组的任务的执行,并且由第一定序器周期性地触发属于第二组的任务的执行,属于第二组的任务具有比属于第一组的任务低的优先级。
-切换设备连接到电气设施,用于中断该电气设施内的AC电流,根据AC电流的频率来选择执行频率。
-在违反软件模块的服务合同的情况下在恢复步骤期间实施的恢复策略包括中断软件模块的运行。
-在违反软件模块的服务合同的情况下在恢复步骤期间实施的恢复策略是根据该软件模块的服务合同中所声明的可运行代码的关键性值来选择的。
根据另一方面,本发明涉及一种用于切换电流的设备,该设备包括嵌入式电子计算机,该嵌入式电子计算机被设计为控制切换设备的操作并且旨在接收嵌入式软件模块,
电子计算机包括托管插口的组件,每个托管插口旨在形成软件模块的运行时环境,为此目的,每个插口包括在电子计算机的存储器内静态地定义并与电子计算机的硬件资源的子组件相关联的存储器位置,
这个电子计算机还实现为被编程以用于实施以下步骤的管理系统:
a)获取包括可运行代码和声明当可运行代码由电子计算机运行时所需的硬件资源的服务合同的软件模块;
b)将软件模块安装在其中一个插口内;
c)由电子计算机运行软件模块,步骤c)包括当软件模块被执行时包括验证软件模块的执行是否遵从该软件模块的服务合同的步骤,其中,如果运行遵从服务合同,则运行被授权继续进行,并且如果软件模块的运行被识别为不遵从服务合同,则实施恢复步骤,其目的是中断由电子计算机对软件模块的运行。
根据本发明的有利但非强制性的方面,这种切换设备可以包括以下特征:电子计算机还被编程用于在步骤b)之前实施先前步骤,用于验证软件模块的服务合同,如果服务合同所需的硬件资源与可用插口提供的硬件资源不兼容,则拒绝安装软件模块。
附图说明
根据下面的描述并参考附图,本发明将被更好地理解并且本发明的其它优点将变得更加明显,关于管理用于电流的切换设备内的软件模块的方法的一个实施例,仅作为示例呈现,其中:
-图1是根据本发明的配备有嵌入式电子计算机的切换设备的示意图;
-图2是用于管理由图1中的电子计算机实现的软件模块的系统的框图;
-图3是软件模块和用于接收该软件模块并由图2中的管理系统实现的插口的简化图;
-图4是与图3中的软件模块相关联的状态机的框图;
-图5和6是图示出图2中的管理系统的定序器(sequencer)的操作方法的流程图;
-图7是图2中的系统的操作方法的流程图;
-图8是当安装软件模块时用于验证与在图7中的方法期间实现的软件模块相关联的服务合同的方法的流程图;
-图9是当运行软件模块时用于验证与在图7中的方法期间实现的软件模块相关联的服务合同的方法的流程图;
-图10至13是当软件模块在系统2内部运行时由该软件模块实现的任务的执行时间的测量方法的流程图;
-图14是当软件模块在系统2内部运行时违反该软件模块的服务合同之后实施软件模块的恢复策略的方法的流程图。
具体实施方式
图1示出了用于电流的切换设备2,包括电流中断单元4以及用于电流的输入/输出端子6和8。设备2被设计为借助于端子6和8电连接到电气设施(诸如配电电路)。
电流中断单元4被设计为以可逆的方式中断端子6和8之间的电流流动,例如借助于可分离的电触点,该电触点的移动由可控致动器控制。
这里示意性地示出了端子6和8。它们的确切数量可以变化,具体地是取决于电流是单相还是多相电流。例如,设备2是单极设备或四极设备。
在该示例中,设备2是低压断路器,被设计为以DC或AC电流操作。作为变体,其可以是高压断路器、或功率继电器、或开关、或任何其它等同的切换设备。
设备2还包括板上电子计算机10,其具体地被设计为借助于嵌入式软件程序来控制设备2的操作。
例如,计算机10被设计为通过作用于先前提到的可控致动器来控制电流中断单元4。
计算机10包括经由未示出的内部数据总线连接在一起的逻辑处理单元12、计算机存储器14和用户接口16。
这里的逻辑单元12是微处理器或可编程微控制器。
在该示例中,存储器14包括非易失性存储器141和工作存储器142。例如,存储器141包括闪存类型或任何其它等同技术的非易失性存储器模块。这里,工作存储器142是RAM(指“随机存取存储器”)类型。
用户接口16被设计为允许用户与计算机10交互,并且具体地,允许用户添加和移除软件模块。
例如,接口16包括可控显示屏(这里是液晶类型)以及用于输入数据的装置(诸如按钮或触摸屏)。
接口16还可以包括数据连接装置,其允许在计算机10和外部数据处理装备之间建立有线或无线数据链路,以便提供用于下载软件模块的设施。例如,接口16包括USB或串行端口类型的有线连接器。接口16还可以包括NFC(指“近场通信”)类型或UNB(指“超窄带”)类型的无线电接口,或者使用任何适当的技术。
接口16还可以包括能够读取便携式记录介质(诸如存储卡或光盘)的内容的读取器,这里再次允许软件模块被下载。
这里,计算机10与单元4一起容纳在设备2的同一壳体内。接口16优选地被安置成使得用户可以从该壳体的外部接近。
当用于计算机10和设备2的操作的可运行软件指令由逻辑单元12运行时,存储器14存储这些指令。这些指令例如采用一个或多个嵌入式软件程序的形式。
在其操作期间,计算机10因此被设计为凭借可运行软件指令执行实时操作系统18和用于软件模块的管理系统20。更确切地说,在该示例中,管理系统20在操作系统18内运行。
以已知的方式,操作系统18具有管理计算机程序对计算机10的硬件资源的访问的功能,同时确保这些计算机程序的实时执行。
在本描述的意义上,当计算机系统包括允许以小于预定义持续时间的执行时间来保证执行任务的装置时,该计算机系统被说成是“实时的”。
这里,操作系统18包括空间分离功能。
图2至4示出了管理系统20的一个示例。
管理系统20具有允许计算机10实时地执行一个或多个软件模块、同时允许动态地安装和卸载这些软件模块的功能,如下面所解释的。因此,这些软件模块可以被“现场”加载或卸载,并且被说成是“可插拔的”。
在下文中,软件模块带有标号“40”。为了简单起见,以通用的方式仅描述一个模块40,尽管在实践中,可以在系统20中同时使用多个不同的模块40。
例如,每个软件模块40是能够被存储在存储器14中的数据文件。
这里,每个软件模块40包括可执行指令42或可运行代码,其被设计为当它们由逻辑单元12运行时提供设备2的预定义功能的实现。具体地,这里,这些功能基于一个或多个预定义的基本任务或例程。
每个软件模块40还包括服务合同44,服务合同44描述当模块40被运行时模块40的动态行为,并且具体地,定义在可运行代码42的执行期间模块40所需的资源。优选地,这些所需资源与极端情况下(称为“最坏情况场景”)所需资源的最大值相对应。
具体地,服务合同44包含逻辑单元12的处理资源的最大使用级别的声明。该信息允许确定由单元12执行对应任务所需的最大运行时间。
服务合同44还包含指示模块40与计算机10和/或系统20和/或设备2的其它类型的硬件资源相关的要求的声明,具体地是当涉及在设备2内受限并且必须对其进行监督以避免各种模块40之间的冲突的硬件资源时。
例如,服务合同44包含与模块使用的RAM存储器的最大大小或者由模块40管理的配置参数的最大数量相关的声明。
有利地,服务合同44还包含与由模块40实现的功能的关键性级别相关的声明。
例如,如果模块40实现与设备2的安全性相关的功能,具体是与电气保护相关的功能,则其关键性级别高于实现重要性较低的功能(诸如测量功能)的模块40的关键级别。
优选地,服务合同44以机器可读的串行数据格式被记录为数据文件的形式。
作为说明性示例,这里,服务合同44包括JSON(指“JavaScript对象表示法”)格式的数据文件。但是,其它格式也是可以的,具体地是XML(指“扩展标记语言”)格式。这里,声明以数据变量(诸如数值、布尔值和/或字母数字字符串)的形式被记录在服务合同44中。作为变体,服务合同44还可以采用二进制形式或具有特定编码。
例如,当编写和开发可运行代码42时,服务合同44被生成。
在系统20内,凭借托管(host)插口(receptacle)50的组件提供嵌入式软件的模块化,每个托管插口50旨在接收软件模块40中的一个。这些插口50也被称为“插槽(slot)”。
插口50是数据结构,其被设计为接收软件模块40并形成用于该软件模块40的运行环境(run-time environment)。
例如,每个插口50包括在存储器14的区域54内静态地定义的存储器位置,也称为容器(container)。更确切地说,每个插口50定义具有区域54内保留的预定义存储器大小的预定义存储器分区。
每个插口50还定义预定义任务的组件、允许与由操作系统18实现的其它系统软件模块交互的软件对象的组件以及由在该插口50中托管(host)的软件模块40可使用的功能库。
因此,每个插口50与计算机10的硬件资源的子组件52相关联。例如,子组件52的资源仅可由托管在该插口50中的模块40访问。
因此,插口50允许建立空间分区,以便将软件模块40彼此隔离。这里,这种分区由管理系统20凭借由操作系统18提供的底层机制来执行,具体是凭借空间分离功能。因此,模块40可以被现场安装或卸载,而不影响其它模块40的操作。
这些分区机制的确切性质取决于所使用的操作系统18的类型以及单元12的体系架构。这里,存在由操作系统18实时提供的“分区”类型的机制。例如,作为变体,分区机制基于称为“虚拟地址空间”的虚拟寻址技术。
因此,在系统20中,模块40不能访问属于其它模块40或者属于在计算机10上运行的其它软件程序的数据或代码。模块40不能使用比在插口50中静态分配的更多的存储器资源。因此,插口50参与系统20的模块化方面。
每个插口50可以具有多个不同的状态,具体地是模块40托管在插口50中的状态以及其不托管任何模块40的另一状态。
在该示例中,如图4中所示,每个插口50可以具有五种不同的状态。标号“60”表示插口50为空的状态。标号“62”表示“保留”状态,其中没有托管模块40,但是保留插口50以便将来添加新模块40。因此,不能用于容纳除为其保留的模块以外的其它模块40。标号“64”表示“加载”状态,其中模块40在这个插口50中托管但是并未启动,例如,因为这个模块40已经停止或者因为该模块还没有能够获得有效许可,或者该模块的初始化失败了。标号“66”表示“初始化”状态,其中模块40被托管并且已经启动,但是没有被运行。例如,模块40处于暂停状态,或者其执行在故障之后已被中断。最后,标号“68”表示模块40正在被运行的状态。
这里,插口50的这些状态之间的过渡由预定义功能提供。在该示例中,状态66和68之间的过渡在启动时发生,或者可替代地,在停止执行模块40时发生。状态66和64之间的过渡通过给出关闭由模块40实现的过程的命令,或相反地,通过授予许可并通过初始化该过程来执行。状态62和64之间的过渡通过加载,或相反地,通过卸载模块40(例如从存储器14的一个区域)来执行。状态60和62之间的过渡通过确认(validate)和接受模块40的服务合同并且通过分配插口50的硬件资源以执行该模块40来执行。相反,状态62和60之间的过渡通过释放插口50的资源并通过使插口50可再次用于另一个模块来实现。从其它状态到状态62的过渡也可以通过发送复位插口50的命令来实现。
凭借一定数量的软件部件来提供系统20的操作。如图2中所示,系统20具体地包括用于监督模块40的部件22以及定序器(sequencer)26。这里,标号“24”表示在模块40的操作期间实现的软件部件。
例如,定序器26被实现为由操作系统18执行的任务。该执行例如以固定的执行频率被周期性地执行。
系统20还包括提供辅助功能的软件部件。
举例来说,这里,系统20包括多个辅助软件部件,其中包括用于管理许可的部件28、用于验证和用于管理数字签名的部件30、提供对文件服务器的访问的部件32、用于管理事件和警报的部件34、提供对计算机10的外围硬件设备(诸如集成到设备2中的测量传感器)的访问的部件36以及用于管理配置参数的部件38。作为变体,可以省略这些辅助部件中的一些。
部件22具体地被编程以提供模块40到插口50的加载,并用于经由定序器26控制对应代码42的运行,定序器26的操作如下所述。例如,部件22被编程为从接口16或从文件系统32获取模块40,然后将对应的代码添加到存储器14。
在该示例中,部件22包括:
-接口221,连接到定序器26并且能够请求定序器26启动或停止执行安装在插口50中的模块40的代码42;
-接口222,用于管理插口50,具体是能够提供用于加载和卸载模块40的功能、用于登记和用于取消引用(de-reference)模块40的功能以及用于启动和停止插口50的执行的功能;
-接口223,具体是被设计为管理对服务合同44的获取和访问、管理从文件服务器32获取模块40以及在相关的时候对数字签名的验证;
-接口224,用于访问许可管理器28;
-接口225,用于访问文件服务器32。
定序器26包括用于管理任务的排序的部件261,以及用于监测和控制要被实时执行的任务的部件262。
这里,部件24包括用于管理任务以允许实时同步任务的部件241、设计用于管理模块40对存储器14的访问的存储器管理部件243、用于访问辅助部件34、36和38的接口244。部件24还包括任务管理器242,任务管理器242包括用于访问定序器26的接口2421和用于管理插口50的接口2422。
上文描述的接口例如凭借应用编程接口功能的组件来提供,也被称为“API”。上文描述的接口和/或软件部件之间的连接例如凭借用于进程间通信的软件装置来提供。
图5和6图示了定序器26的操作的一方面。这里,定序器26不同于特定于操作系统18的定序器。
定序器26的作用是当模块40操作时周期性地触发由这些模块实施的任务的执行。为此,定序器26使用定时信号(诸如时钟信号)。这里,该定时信号由特定于系统20的时钟提供。作为变体,该信号可以从系统20的外部获取。
在下文中,除非另有说明,否则应理解的是,由模块40实施的任务是实时任务。
在该示例中,定序器26被编程为取决于等待执行的任务的执行定时而不同地处理等待执行的任务。
例如,每个任务与执行的预定义频率(也称为执行速率)相关联。定序器26被编程为用于根据等待执行的任务的执行频率选择性地授权其执行,并为它们指派执行优先级级别,该执行优先级级别取决于为该任务定义的执行频率。随后,操作系统18的定序器根据该执行优先级级别来组织所述任务的执行。
例如,定义第一任务组,其将旨在以第一执行频率执行的任务分组。这里,与该频率相对应的执行的周期被称为基本周期,并表示为σ1
以类似的方式,定义一个或多个其它任务组,称为次要组,每个次要组集合其执行旨在以不同于第一频率的相应执行频率开始的任务。这些次要组的执行周期的相应值在这里一般由标号σn表示,其中“n”表示大于或等于2的整数。
例如,属于第n个次要组或次序为n的组的任务旨在以比次序为n-1的组的任务的执行频率更低的频率执行。因此,周期σn严格大于周期σn-1
在该示例中,作为说明,第一组与等于10ms的第一周期σ1相关联地被定义,连同四个次要组,这些次要组具有表示为σ2、σ3、σ4和σ5并且分别等于20ms、100ms、200ms和1秒的相应执行周期。
作为变体,次要组的数量连同与其相关联的周期的值可以与所描述的那些不同,并且参考这些图5和6中的实施例给出的定序器26及其操作的描述可以以与这些其它情况类似的方式应用。
例如,为每个组生成特定的定时信号,以促进定序器26的同步。当次要周期σn是基本周期σ1的倍数时,与次要周期σn相关联的次要定时信号可以从与基本周期σ1相关联的定时信号开始生成。
以特别有利的方式,当流过设备2的端子6和8的电流是AC电流时,根据该电流的频率,选择执行频率的值,并且因此选择上文所描述的基本周期和/或次要周期的值。例如,设备2用在电气设施中,其AC电流的振荡频率等于50Hz。然后,在该示例中,等于10ms的基本周期σ1与AC电流的振荡周期的一半相对应。
有利地,属于与高执行频率相关联的组的任务的执行优先级高于属于与较低执行频率相关联的组的任务的执行优先级。例如,次序为n的组的任务具有比次序为n-1的组的任务更低的执行优先级。主要组的任务具有比属于(一个或多个)次要组的任务的执行优先级更高的执行优先级。
在实践中,这里,该优先级被定序器26指派给每个任务。该优先级定义将由操作系统18的定序器处理任务的优先级。
换句话说,定序器26向所述任务指派执行优先级级别,该执行优先级级别取决于为该任务定义的执行频率,这里,该优先级越高,执行频率越高。
如图5中所示,定序器26优先处理属于第一组的任务。
因此,在步骤900期间,定序器26等待接收与基本周期σ1相关联的定时信号。实际上,优选地,调整定时信号以与周期σ1相对应。在该示例中,定时信号每10ms生成一次。
一旦接收到该第一定时信号,然后,在步骤902期间,定序器26就授权执行等待执行的第一组的所有实时任务。
然后该方法返回到步骤900,并且定序器26再次在能够授权执行与该第一组相关联的新任务之前等待接收定时信号,该新任务同时被置于备用,以供系统20的其余部分执行。
在实践中,在该阶段,考虑到对单元12的访问取决于由操作系统18管理的主要定序器的行为,定序器26授权执行多个任务这一事实并不一定意味着这些任务将由单元12立即执行。但是,由于操作系统18是实时系统,因此保证了这些任务的执行将在预定义的时间段内被执行。因此保证了这些任务的实时执行。
在本描述的意义上,由于定序器26和特定于上文描述的操作系统18的定序器的操作机制,术语“执行”或“运行”在应用于模块40本身时并不一定暗示由该模块40的可运行代码42定义的任务或处理正在由逻辑单元12执行。例如,这里,“运行模块40”被理解为意味着系统20考虑到任务由单元12执行而接受对对应任务负责,但是单元12实际执行对应任务的精确时间最终取决于(具体地)定序器26的操作。
图6图示了定序器26处理与次要组(诸如次序为n的组)之一相关联的任务的方式的一个示例。
该方法在初始步骤910期间开始。
在步骤912期间,定序器26验证其是否可以授权执行所考虑的组的任务。例如,定序器26等待与周期σn相对应的定时信号。
如果是这种情况,则在步骤914期间,定序器26授权执行所考虑的组的任务。
在实践中,在该阶段,属于不同组的多个任务已经通过定序器26接收到执行的授权。操作系统18的定序器负责根据这些任务的优先级设置这些任务在单元12上的执行次序,同时试图保证这些任务的实时执行。
一旦开始了这个组的所有任务的执行,该方法就返回到步骤910,以便授权执行与该组相关联的新任务,同时该新任务已被置于备用以由系统20的其余部分执行。
因此,该方法的步骤910至914在循环中重复,并且例如以联合方式为每个次要组实施。
利用上文所描述的设计,定序器26允许根据顺序方法运行模块40,这确保更好地控制这些任务的执行。因此,由软件模块的可运行代码42实施的程序不必基于事件驱动方法。
在实践中,由于次序为n-1的组的任务具有比次序为n的组的任务更高的执行优先级这一事实,操作系统18的定序器保证,只要n-1组的任务没有完成执行,次序为n的组的任务就不会被执行。
但是,可选地,还可以在授权执行次序为n的组的任务的执行之前等待直到次序为n-1的组的任务都完成其执行。
因此,有利地修改上文的方法,使得在步骤910期间,定序器26在进入步骤912之前等待直到单元12已经完成执行前一组的所有任务。换句话说,只有在前一组的任务的执行结束时,才授权执行属于次序为n的组的任务。
因此,当针对第n组运行该方法时,定序器26等待直到次序为n-1的组的所有任务(换句话说,与周期σn-1相关联的任务)已经完成执行。具体地,当针对与周期σ2相关联的次要组运行该方法时,定序器26等待直到第一组的所有任务都已经完成执行。
图7示出了用于安装和运行模块40的系统20的操作方法的一个示例。
最初,该模块40不由任何插口50托管。
首先,在步骤1000期间,由系统20接收安装模块40的请求。
例如,用户经由接口16将该请求发送到系统20。如果模块40尚未存在于存储器内,则由用户将模块40下载到存储器中。然后,系统20可以与该模块40交互,具体地,用于获取对应的服务合同44。
随后,在步骤1002期间,系统20验证对应的服务合同44是否可接受,具体地,依据仍然处于空闲状态的插口50提供的可用硬件资源。
如果对应的服务合同44被认为是可接受的,例如因为存在至少一个其资源52足以满足模块40的需要的空闲插口50,诸如在其服务合同44中所声明的那样,则模块40的安装在后续步骤1004期间被接受并被实施,以将模块40安装在空闲插口50中。
在相反的情况下,拒绝模块40的安装,并且该方法在步骤1006期间结束。
一旦模块40已经被正确地安装在插口50中,其就在步骤1008期间被运行。
在步骤1010期间,凭借定序器的干预,例如以循环的(cyclical)方式执行模块40的指令42。
贯穿该步骤1010,在模块40的执行期间,这里,在步骤1012中,系统20确保模块40遵从其服务合同44。换句话说,系统20验证模块40不请求也不消耗大于其服务合同44中所声明的需要的计算机10的硬件资源。
如果模块遵从服务合同,则在步骤1014期间,授权模块40的执行以正常方式继续进行。然后,只要步骤1010继续,就例如周期性地再次执行步骤1012。
相反,如果步骤1012突出显示模块40不遵从服务合同,则系统20在步骤1016期间实施恢复策略。
步骤1016允许系统20以这样一种方式尽可能快地复位到稳定状态,使得其它模块40的操作不会受到不遵从其服务合同的模块40的缺陷行为的负面影响。
如参考图14所解释的,该恢复策略可以伴随有缺陷的模块40的强制终止。
最后,模块40的运行正常结束,例如因为模块40已经正常完成其使命或者因为其已经接收到停止的命令。然后,步骤1010终止,并且该方法在步骤1018期间结束。
这里先前描述的步骤1000至1018是针对正在运行的每个模块40并行实施的。
图8示出了步骤1002、1004和1008的实施的一个示例,用于在已经请求其安装时验证模块40的服务合同44。
最初,在步骤1020期间,模块40的服务合同44的内容由部件30加载,然后由部件22的管理器223自动读取。
在步骤1022期间,系统20获取记录在服务合同44中的声明,具体地,与模块40所需的处理资源相关的那些声明。
在步骤1024期间,将这些声明与由系统20的、被声明为可用(换句话说,处于空状态)的插口50提供的可用资源进行比较。
如果没有找到合适的插口50,例如由于没有一个空闲模块50能够提供服务合同44所请求的资源,则验证方法在步骤1026期间通过拒绝服务合同而结束。例如,然后实施用于拒绝安装模块40的步骤1006。
相反,如果有合适的插口50可用,则在步骤1028期间,保留该插口50。例如,管理器223自动更新系统20内可用的插口50的列表。
随后,在步骤1030期间,将模块40加载到对应的插口50中。有利地,可以在该阶段验证模块40的兼容性。
如果模块40被识别为不兼容,则该方法在步骤1032期间通过拒绝模块而继续进行。例如,然后实施用于拒绝安装模块40的步骤1006。
可选地,如果模块40被接受,则在步骤1036期间自动验证其许可,这里是借助于接口224和部件28。这允许验证模块40的使用权限。
如果在步骤1038期间模块40的许可被识别为无效或者如果其不存在,则该方法在步骤1040期间通过拒绝模块40而结束。例如,再次实施用于拒绝安装模块40的步骤1006。
相反,如果许可被接受,则该方法继续。
随后,在步骤1042期间,模块40被自动复位,换句话说,被设置成允许稍后运行与代码42相关联的程序的状态。例如,管理器222发送让插口50复位的命令。
如果复位命令由于某种原因而失败,则在步骤1046期间通过拒绝模块40而终止该方法。例如,这里再次实施用于拒绝安装模块40的步骤1006。
如果复位正常进行,则插口50将在步骤1044结束时处于状态66,并且代码42的反复(recurrent)任务准备好被执行。
在该示例中,该方法包括步骤1048和1050,用于更新例如由部件22提供的关于系统20的状态的监测信息,以便考虑状态的这种改变。
该方法在最终步骤1052期间正常结束。
图9示出了用于在该模块40的运行期间验证模块40与服务合同44的遵从性的步骤1012的实施的一个示例。
该示例更精确地涉及验证对属于任务组之一的任务的执行时间的遵从性的实施,这里,通过说明性示例,该任务组属于与等于20ms的持续时间σ2相关联的次要组。
在步骤1060期间,系统20等待直到与该组的任务相关联的运行周期(cycle)结束。该运行周期的结束例如由对应的定时信号的接收给出。
一旦系统20已经检测到该运行周期的结束,就对其执行应当已经结束的组的每个任务实施步骤1062。
该步骤1062包括子步骤1064,在该子步骤1064期间,系统20自动确定在运行周期期间执行该任务的有效时间。该确定是基于来自操作系统18的核心的信息来执行的。该确定的一个示例在下面参考图11至13进行描述。
一旦获取有效执行时间,在子步骤1066期间,就自动将该有效执行时间与服务合同44中所声明的最大执行时间进行比较。
如果有效执行时间大于服务合同44中所声明的最大执行时间,则认为模块40已经违反了其服务合同44。因此,在步骤1068期间,实施恢复策略以便防止模块40再次违反其服务合同40,以避免不利地影响其它模块40的操作。例如,实施先前描述的步骤1016。
有利地,在步骤1070期间,将违规记录在日志文件中。
然后,在步骤1072期间,步骤1062结束,然后将其迭代以便处理该任务组内的下一个任务。
当在对应的组内没有剩余的任务要执行时,步骤1062结束。该方法随后在步骤1060再次启动,以便等待下一个周期的结束。
另一方面,如果步骤1066在该处理周期期间从处理资源的角度证明模块40已遵从其服务合同44,则直接实施步骤1072。当在对应的组内没有更多任务被执行时,则步骤1062终止。
作为变体,该步骤1012可以以不同方式执行,具体地,用于验证对与除了执行时间之外的其它硬件资源相关的服务合同的遵从性。例如,步骤1012一般表示联合运行的多个验证方法,用于验证对同一模块40的服务合同的各个方面的遵从性。
这里,先前描述的步骤1080至1090是针对每个模块40彼此独立地实施的。具体地,可以理解的是,可以在系统20内实施与图9中类似的多个方法,以通过属于不同组的任务来验证对服务合同的遵从性。
图10至13示出了例如在先前描述的步骤1064期间,用于测量由加载到系统20中的模块40执行的任务的执行时间的方法的一个示例。
这里,依次描述在图10至13中的方法中实施的步骤,以促进理解。但是,在实践中,与图10至13中的流程图相对应的方法相对于彼此并行实施。
如图10中所示,该方法包括步骤的第一子组件。在步骤1080期间,系统监测操作系统18的定序器,以便检测潜在的上下文切换并等待直到发生这种上下文切换。
当发生这种上下文切换时,在步骤1082期间,系统20验证这种上下文切换中涉及的任务之一(或者作为传入任务或者作为传出任务)是否是属于上文描述的任务组之一的实时任务。如果不是这种情况,则该方法返回到步骤1080。
另一方面,如果是这种情况,则在步骤1084期间,系统20自动确定这个实时任务是传入(incoming)的(换句话说,其正在获得对逻辑单元12的访问)还是传出(outgoing)的(换句话说,它已经完成了被逻辑单元12执行)。
如果确定实时任务是传入的,则在步骤1086期间,系统20自动记录任务进入发生的时刻,换句话说,访问逻辑单元12已经发生的时刻。例如,这个访问时间被记录在存储器14内的专用数据结构中。该方法在步骤1088期间结束这个任务,然后返回到步骤1080,以便再次实施。
相反,如果确定实时任务是传出的,则在步骤1090期间,系统20自动计算自上次进入以来所经过的时间。这里,该时间被表示为T1。在该步骤1090期间,系统20确定在中断服务例程之后任务是否已被先占。如果是这种情况,则系统获得该任务已被先占的持续时间Tisr。下面参考图13描述该持续时间Tisr的计算。一旦持续时间Tisr已知,系统20就计算差值“T1-Tisr”,然后将该差值加到该任务的执行时间的值。执行时间的值例如被存储在与逻辑单元12相关联的累加器中,该累加器可由系统20访问。
并行地,如图11中所示,系统20在步骤1110期间等待接收与对应于该任务组的执行持续时间阈值相关联的同步信号。随后,一旦接收到这个信号,系统20就针对该组的所有任务自动复位累加器。步骤1110和1112在循环中重复。
图11描述了用于第n组任务的方法。在实践中,对于为系统20定义的n个任务系列中的每一个,分开实施这些步骤1110和1112。
如图12中所示,并行地,在步骤1120期间,系统20等待直到接收到与单元12相关联的异常情况已发生的信息。该信息是例如由中断例程供给的信号。
随后,在步骤1122期间,系统20例如在存储器14内记录关于接收该异常条件的日期以及关于已经发生这种异常情况的事实的时间戳信息。
作为响应,在步骤1124期间,定序器26命令操作系统18的定序器执行表示为T0的特定任务。该任务T0与具有最高执行优先级的空任务相对应。例如,该优先级以这种方式被静态地定义以成为所有情况下最高。
随后再次执行步骤1120,以等待未来的异常情况。
并行地,如图13中所示,在步骤1130期间,系统20监测由操作系统18的定序器管理的任务,具体地,用于检测由单元12执行的任务。
一旦系统20检测到操作系统18的定序器已经触发任务的执行,在步骤1132期间,系统20就自动验证传入的任务是否是具体任务T0。如果是这种情况,则在步骤1134期间,系统20计算并记录自从检测到上一个异常情况以来已经过去的时间Tisr。该计算例如凭借在步骤1122期间记录的时间戳信息来执行。该方法然后返回到步骤1100。
另一方面,如果传入的任务未被识别为具体任务T0,则该方法返回到步骤1130。
因此,累加器中包含的执行时间的值与任务的有效执行时间相对应。这个值例如在复位步骤1112之前由系统20获取,以便实施上面提到的步骤1066。
当系统20不能直接访问操作系统18的核心时,有利地实施图10至13中的方法。其允许使用从操作系统18的用户空间收集到的信息来获得关于由单元12执行任务的时间的可靠信息。
图14示出了当模块40在其执行期间未遵从其服务合同时用于实施恢复策略的步骤1016的实施的一个示例。针对违反服务合同涉及执行时间的情况描述恢复步骤1016的这个示例。
首先,在步骤1150期间,例如通过发送“kill”类型的停止信号,中断并消除执行模块40的过程中的所有任务。
然后,在步骤1152期间,将重启模块40的尝试次数与预定义的最大阈值进行比较。
如果尝试次数小于最大阈值,则在步骤1154期间,进行重启模块40的尝试。例如,创建并初始化与在步骤1150期间消除的任务相对应的新任务。指示重启尝试次数的计数器增加一个单位。
然后,在步骤1156期间,如此初始化的任务在定序器的控制下被取出,从而允许执行它们的执行。
该方法在步骤1158结束。
另一方面,如果在步骤1152期间尝试次数高于最大阈值,则在步骤1160期间,停止模块40的执行。
该恢复步骤1016允许确保在违反模块40的服务合同的情况下,由该模块40导致硬件资源的过度消耗,其它模块40不会在执行时间的多于一个周期期间受到不利影响。换句话说,恢复步骤1016允许保证多个模块40的共存,同时保持实时行为。
作为变体,步骤1016可以以不同方式被执行。
例如,步骤1016可以包括,在检测到模块40违反服务合同之后,触发警报以警告用户操作故障,然后停止有缺陷的模块40。
根据另一个变体,模块40的停止之后可以跟着使用下一个时隙来运行由于违规而无法正确运行的其它模块40。一旦这个周期完成,就可以尝试重启有缺陷的模块40,例如参考图14所描述的。
此外,当违反服务合同涉及除执行时间之外的硬件资源时,也可以以不同方式执行步骤1016。
根据更多变体,策略取决于有缺陷的模块的关键性值而不同,诸如在服务合同中所声明的。实际上,与设备2的保护相关联的功能具有比其它功能(诸如测量功能)更高的关键性。取决于设备2的全局操作策略,在违规的情况下,尽可能多地延迟实现这些功能的模块40的停止会是优选的,例如考虑到确保设备2的服务的连续性。在这种情况下,如果检测到多个违规,则具有最低关键性的模块40将首先被停止,例如借助于上面提到的步骤。
在其它情况下,安全性可以是迫使设备2切换到安全位置的主要问题,例如通过迫使打开电流中断单元4的可分离触点。
凭借本发明,可以协调嵌入在计算机10中的软件的模块化方面和针对这种软件的实时运行的约束的遵从性。
由于软件模块40具有模块化结构并且它们可以被动态地安装或卸载,因此促进用户使用设备2的计算机10的管理软件。这种模块化结构还为随着时间的推移升级设备2的操作提供了更多可能性。而且,通过保持嵌入式软件应用的实时操作,避免了对设备2的操作安全性的任何损害。
如前面所解释的,模块40的模块化结构部分地凭借容器50被允许。这种模块化结构也被服务合同44所允许,并且还被在安装时或者在运行期间或两者兼有时允许验证服务合同是否被遵守的机制所允许,并且还在违反服务合同的情况下恢复策略的建立所允许。服务合同44与定序器26的操作一起还允许确保模块40的实时操作。
上文设想的实施例和变体可以组合在一起,以便生成新的实施例。

Claims (9)

1.管理用于嵌入在用于电流的电气切换设备(2)中的电子计算机(10)的嵌入式软件模块(40)的方法,其特征在于,所述方法包括步骤:
a)由用于电气切换设备(2)的电子计算机(10)的软件模块的管理系统(20)获取(1020)包括可运行代码(42)和声明在可运行代码(42)由电子计算机执行期间所需的硬件资源的服务合同(44)的软件模块(40);
b)由所述管理系统(20)在托管插口(50)内安装(1004)所述软件模块(40),所述托管插口属于托管插口(50)的组件,每个托管插口(50)旨在形成用于软件模块(40)的运行时环境,为此目的,每个托管插口(50)包括在电子计算机(10)的存储器(14)内静态地定义并与电子计算机(10)的硬件资源的子组件(52)相关联的存储器位置;
c)由电子计算机(10)运行(1010)软件模块(40);其特征在于,步骤c)包括当软件模块(40)被运行时包括借助于管理系统(20)验证(1012)软件模块(40)的执行是否遵从所述软件模块(40)的服务合同(44)的步骤,其特征在于,如果执行遵从服务合同,则被授权继续进行,并且其特征在于,如果软件模块(40)的执行被识别为不遵从服务合同,则实施恢复步骤(1016),其目的是中断由电子计算机(10)对软件模块(40)的运行,
并且在步骤c)期间,代码(42)的运行包括:由电子计算机(10)的逻辑处理单元(12)实时地执行多个任务,每个任务与预定义执行频率相关联,并且其特征在于,所述逻辑处理单元(12)对任务的执行由管理系统(20)实现的第一定序器(26)调节,然后由电子计算机(10)的操作系统(18)实时实现的第二定序器调节,所述第一定序器(26)根据等待执行的任务的执行频率选择性地授权执行等待执行的任务,并且针对第二定序器为它们指派执行优先级级别,所述执行优先级级别取决于针对所述任务定义的执行频率。
2.根据权利要求1所述的方法,其特征在于,在步骤b)之前,所述方法包括先前步骤(1002),用于验证软件模块(40)的服务合同(44),如果服务合同(44)所需的硬件资源与由可用托管插口(50)提供的硬件资源不兼容,则拒绝软件模块(40)的安装。
3.根据权利要求1和2中任一项所述的方法,其特征在于,与步骤c)并行地,还运行安装在另一个分离的托管插口(50)中的至少第二分离的软件模块,还实施包括验证(1012)所述第二分离的软件模块的运行是否遵从所述第二分离的软件模块的服务合同(44)的第二步骤。
4.根据权利要求1所述的方法,其特征在于,第一任务组集合与第一预定义执行频率相关联的任务,其特征在于,第二任务组集合与低于第一执行频率的第二预定义执行频率相关联的任务,
其特征在于,当软件模块(40)被运行时,当接收(900)到每个周期定时信号时,由第一定序器(26)触发(902)属于第一组的任务的执行,
并且其特征在于,由第一定序器(26)周期性地触发(914)属于第二组的任务的执行,属于第二组的任务具有比属于第一组的任务低的优先级。
5.根据权利要求4所述的方法,其特征在于,电气切换设备(2)连接到电气设施,用于中断所述电气设施内的AC电流,根据AC电流的频率来选择执行频率。
6.根据权利要求1或2所述的方法,其特征在于,在违反软件模块(40)的服务合同(44)的情况下在恢复步骤(1016)期间实施的恢复策略包括中断软件模块(40)的运行。
7.根据权利要求1或2所述的方法,其特征在于,在违反软件模块(40)的服务合同(44)的情况下在恢复步骤(1016)期间实施的恢复策略是根据所述软件模块(40)的服务合同(44)中所声明的可运行代码(42)的关键性值来选择的。
8.用于切换电流的电气切换设备(2),包括电子计算机(10),所述电子计算机被设计为控制电气切换设备(2)的操作并且旨在接收嵌入式软件模块(40),
电子计算机(10)的特征在于其包括托管插口(50)的组件,每个托管插口旨在形成用于运行软件模块(40)的环境,为此目的,每个托管插口(50)包括在电子计算机(10)的存储器(14)内静态地定义并与电子计算机(10)的硬件资源的子组件(52)相关联的存储器位置,
所述电子计算机(10)还实现为被编程以用于实施以下步骤的管理系统(20):
a)获取软件模块(40),所述软件模块(40)包括可运行代码(42)和声明当可运行代码(42)由电子计算机执行时所需的硬件资源的服务合同(44);
b)将软件模块(40)安装(1004)在其中一个托管插口(50)内;
c)由电子计算机(10)运行(1010)软件模块(40),其中步骤c)包括当软件模块(40)被运行时包括验证(1012)软件模块(40)的执行是否遵从用于所述软件模块(40)的服务合同(44)的步骤,如果执行遵从服务合同,则被授权继续进行,并且如果软件模块(40)的执行被识别为不遵从服务合同,则实施恢复步骤(1016),其目的是中断由电子计算机(10)对软件模块(40)的运行,
并且在步骤c)期间,代码(42)的运行包括:由电子计算机(10)的逻辑处理单元(12)实时地执行多个任务,每个任务与预定义执行频率相关联,并且其特征在于,所述逻辑处理单元(12)对任务的执行由管理系统(20)实现的第一定序器(26)调节,然后由电子计算机(10)的操作系统(18)实时实现的第二定序器调节,所述第一定序器(26)根据等待执行的任务的执行频率选择性地授权执行等待执行的任务,并且针对第二定序器为它们指派执行优先级级别,所述执行优先级级别取决于针对所述任务定义的执行频率。
9.根据权利要求8所述的电气切换设备(2),其特征在于,电子计算机(10)还被编程为用于在步骤b)之前实施先前步骤(1002),用于验证软件模块(40)的服务合同(44),如果服务合同(44)所需的硬件资源与可用托管插口(50)提供的硬件资源不兼容,则拒绝软件模块(40)的安装。
CN201811093526.3A 2017-09-25 2018-09-19 管理电气切换设备的电子计算机的嵌入式软件模块的方法 Active CN109558167B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1758826 2017-09-25
FR1758826A FR3071630B1 (fr) 2017-09-25 2017-09-25 Procede de gestion de modules logiciels embarques pour un calculateur electronique d'un appareil electrique de coupure

Publications (2)

Publication Number Publication Date
CN109558167A CN109558167A (zh) 2019-04-02
CN109558167B true CN109558167B (zh) 2023-10-27

Family

ID=60182777

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811093526.3A Active CN109558167B (zh) 2017-09-25 2018-09-19 管理电气切换设备的电子计算机的嵌入式软件模块的方法

Country Status (5)

Country Link
US (1) US10839088B2 (zh)
EP (1) EP3460664B1 (zh)
CN (1) CN109558167B (zh)
ES (1) ES2805460T3 (zh)
FR (1) FR3071630B1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831348B1 (en) * 2013-12-13 2020-11-10 Google Llc Ranking and selecting task components based on frequency of completions
US11314558B2 (en) * 2019-07-23 2022-04-26 Netapp, Inc. Methods for dynamic throttling to satisfy minimum throughput service level objectives and devices thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1441933A (zh) * 2000-07-17 2003-09-10 星河科技有限公司 用于提供动态托管服务管理的方法和系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050257199A1 (en) * 2004-05-13 2005-11-17 Enrico Johansson Method of and system for performance analysis and software component installation
US8152628B2 (en) * 2005-08-01 2012-04-10 Igt Methods and devices for authentication and licensing in a gaming network
US8813063B2 (en) * 2006-12-06 2014-08-19 International Business Machines Corporation Verification of successful installation of computer software
DE102006059107A1 (de) * 2006-12-08 2008-06-12 Siemens Ag Verfahren zum softwaremäßigen Aktualisieren einer elektronischen Einrichtung, insbesondere des Auslösers von Niederspannungs-Leistungsschaltern
US7859811B2 (en) * 2007-09-19 2010-12-28 General Electric Company Modular communication plug-in module for an electronic trip unit
US8370959B2 (en) * 2009-07-23 2013-02-05 Cisco Technology, Inc. Connection device authentication
FR2951840B1 (fr) * 2009-10-22 2011-12-23 Sagem Defense Securite Unite electronique de commande a noyau temps reel gerant un partitionnement
US8639923B2 (en) * 2010-05-28 2014-01-28 Dell Products, Lp System and method for component authentication of a secure client hosted virtualization in an information handling system
US8140733B2 (en) * 2010-08-12 2012-03-20 Emcon Emanation Control Ltd. Secure external computer hub
US9767318B1 (en) * 2015-08-28 2017-09-19 Frank Dropps Secure controller systems and associated methods thereof
US10482265B2 (en) * 2015-12-30 2019-11-19 International Business Machines Corporation Data-centric monitoring of compliance of distributed applications
US10523675B2 (en) * 2017-11-08 2019-12-31 Ca, Inc. Remote direct memory access authorization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1441933A (zh) * 2000-07-17 2003-09-10 星河科技有限公司 用于提供动态托管服务管理的方法和系统

Also Published As

Publication number Publication date
FR3071630B1 (fr) 2021-02-19
EP3460664B1 (fr) 2020-06-17
EP3460664A1 (fr) 2019-03-27
US20190095633A1 (en) 2019-03-28
CN109558167A (zh) 2019-04-02
ES2805460T3 (es) 2021-02-12
US10839088B2 (en) 2020-11-17
FR3071630A1 (fr) 2019-03-29

Similar Documents

Publication Publication Date Title
US10216509B2 (en) Continuous and automatic application development and deployment
CN110597531B (zh) 分布式的模块升级方法、装置及存储介质
US9766876B2 (en) Methods of updating software components, computer systems and memory apparatus
CA2904253C (en) Computer system using in-service software upgrade
CN109558167B (zh) 管理电气切换设备的电子计算机的嵌入式软件模块的方法
US10884818B2 (en) Increasing processing capacity of virtual machines
EP3321808B1 (en) Verification system and verification method
CN106909382B (zh) 输出不同类型系统启动信息的方法及装置
CN109062660A (zh) 一种Docker环境安全下线应用服务的方法
US10235161B2 (en) Techniques of adding security patches to embedded systems
Li et al. Applicability of real-time schedulability analysis on a software radio protocol
Rufino Towards integration of adaptability and non-intrusive runtime verification in avionic systems
Mundhenk et al. Dynamic platforms for uncertainty management in future automotive E/E architectures
Oliveira Gomes Formal specification of the ARINC 653 architecture using circus
US20230229480A1 (en) Provisioning dpu management operating systems using firmware capsules
CN115688092A (zh) 终端弱管控方法、装置、电子设备及存储介质
US10176142B2 (en) Techniques of accessing BMC terminals through serial port
Zimmer et al. A systematic approach for software interference analysis
Martorell et al. Partial Updates of AUTOSAR Embedded Applications--To What Extent?
CN115186270A (zh) 一种漏洞修复方法、装置、存储介质及电子设备
CN115380261A (zh) 用于控制技术系统的设备和方法
Di Natale Design and development of component-based embedded systems for automotive applications
Larrucea et al. Temporal independence validation of an IEC-61508 compliant mixed-criticality system based on multicore partitioning
US20240241728A1 (en) Host and dpu coordination for dpu maintenance events
Obermaisser et al. Temporal and spatial partitioning of a time-triggered operating system based on real-time Linux

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