CN115827336A - 一种cpu中冗余plc的校验方法、装置及介质 - Google Patents
一种cpu中冗余plc的校验方法、装置及介质 Download PDFInfo
- Publication number
- CN115827336A CN115827336A CN202211501969.8A CN202211501969A CN115827336A CN 115827336 A CN115827336 A CN 115827336A CN 202211501969 A CN202211501969 A CN 202211501969A CN 115827336 A CN115827336 A CN 115827336A
- Authority
- CN
- China
- Prior art keywords
- plc program
- standby
- program
- main
- code
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Programmable Controllers (AREA)
Abstract
一种CPU中冗余PLC的校验方法、装置及介质,其特征在于,所述方法包括:步骤1,在CPU中构建主PLC程序和备PLC程序,并分别为主PLC程序和备PLC程序构建代码区、逻辑表和分配内存区;步骤2,分别对主PLC程序、备PLC程序的代码区、逻辑表和常量区进行比较校验,若所有校验过程均通过,则正常运行主PLC程序和备PLC程序,否则对主PLC程序和备PLC程序实施闭锁;步骤3,在正常运行主PLC程序和备PLC程序后,分别采用正反码对主PLC程序、备PLC程序的变量进行存储和校验,若校验过程通过,则正常执行变量出口报文,否则对PLC程序和备PLC程序的报文出口实施闭锁。
Description
技术领域
本发明涉及计算机应用领域,更具体的,涉及一种CPU中冗余PLC的校验方法、装置及介质。
背景技术
随着半导体技术的发展,芯片集成度提高、电磁环境越来越复杂,基础电路所导致的单粒子翻转的概率大幅增加,这导致电路的输出结果存在难以容忍的误码。另一方面,随着软件规模越来越庞大,单粒子翻转的影响也会导致软件逻辑错误概率的相应增加。
为了降低软件逻辑错误的影响,提高设备逻辑和设备出口报文的可靠性,现有技术中,通常采用ECC(ErrorCheckingandCorrecting,错误检查和纠正)校验,以及出口报文CRC(CyclicRedundancyCheck,循环冗余校验)校验、正反码校验等方式避免电路底层逻辑中单粒子翻转所导致的上层软件逻辑错误。
在测量控制装置中,通常采用单CPU设计,虽然通过ECC校验、报文CRC校验、报文正反码校验等手段可以降低软错误引起误出口的概率,但当单粒子翻转的概率升高时,风险仍然存在。为了继续降低因软件逻辑错误造成误出口的概率,现有技术中也采用双CPU冗余的设计方案,每个CPU具备各自独立的PLC,当两个CPU中的PLC(ProgrammableLogicController,可编程逻辑控制器)行为不一致时,可闭锁出口。而该方案带来的问题是设备制造成本的增加。
另一方面,智能变电站二次设备作为电力系统中一种常用的测量控制装置,该装置的出口报文会用于电力系统的整体控制,其准确性要求较高,当出口报文存在错误时会导致较大的电网损失和较为严重的风险、故障。另外,这种设备的使用场景广泛,在同一区域电网中的使用数量较多,单一设备的成本对于电网整体的成本控制存在着较大的影响,因此,也难以采用双CPU的容易设计实现对智能变电站二次设备改造升级。
针对上述问题,亟需一种CPU中冗余PLC的校验方法、装置和介质。
发明内容
为解决现有技术中存在的不足,本发明提供一种CPU中冗余PLC的校验方法、装置及介质,该方法在一个CPU中分别构建主PLC程序和备PLC程序,并在启动两个程序的过程中,对于程序的代码区、逻辑表、常量区和变量区分别进行校验,以在程序运行错误或程序输出变量错误的情况下及时对程序或报文出口执行闭锁。
本发明采用如下的技术方案。
本发明第一方面,涉及一种CPU中冗余PLC的校验方法,方法包括以下步骤:步骤1,在CPU中构建主PLC程序和备PLC程序,并分别为主PLC程序和备PLC程序构建代码区、逻辑表和分配内存区;步骤2,分别对主PLC程序、备PLC程序的代码区、逻辑表和常量区进行比较校验,若所有校验过程均通过,则正常运行主PLC程序和备PLC程序,否则对主PLC程序和备PLC程序实施闭锁;步骤3,在正常运行所述主PLC程序和备PLC程序后,分别采用正反码对主PLC程序、备PLC程序的变量进行存储和校验,若校验过程通过,则正常执行变量出口报文,否则对PLC程序和备PLC程序的报文出口实施闭锁。
优选的,主PLC程序和备PLC程序分别具备代码区、逻辑表和内存区;并且,主PLC程序的逻辑表与备PLC程序的逻辑表完全相同。
优选的,对主PLC程序、备PLC程序的代码区进行比较校验过程为:步骤2.1.1,在CPU上电启动时,分别针对主PLC程序和备PLC程序的代码区生成第一CRC校验码;步骤2.1.2,在程序启动时,分别针对主PLC程序和备PLC程序再次生成第二CRC校验码;步骤2.1.3,分别针对主PLC程序和备PLC程序比较其第一CRC校验码和第二CRC校验码以获得比较结果;步骤2.1.4,若比较结果中的第一CRC校验码与第二CRC校验码相同则正常运行主PLC程序和备PLC程序,否则对主PLC程序和备PLC程序实施闭锁。
优选的,对主PLC程序、备PLC程序的逻辑表进行比较校验过程为:步骤2.2.1,在CPU接收到PLC逻辑表、CPU上电启动时和程序启动时分别针对主PLC程序、备PLC程序生成第三CRC校验码;步骤2.2.2,将第三CRC校验码与CPU接收PLC逻辑表的同时接收到的原始CRC校验码进行比较,若校验码相同则执行步骤2.2.3,否则对主PLC程序和备PLC程序实施闭锁;步骤2.2.3,将主PLC程序和备PLC程序同时运行时生成的第三CRC校验码进行比较,若校验码相同则正常运行主PLC程序和备PLC程序,否则对主PLC程序和备PLC程序实施闭锁。
优选的,对主PLC程序、备PLC程序的常量区进行比较校验过程为:步骤2.3.1,在CPU上电启动时,分别针对主PLC程序和备PLC程序的常量区生成第五CRC校验码,比较二者的校验码是否相同,若相同则执行步骤2.3.2,否则实施闭锁;步骤2.3.2,在程序启动时,分别针对主PLC程序和备PLC程序再次生成第六CRC校验码;步骤2.3.3,分别针对主PLC程序和备PLC程序比较其第五CRC校验码和第六CRC校验码以获得比较结果;步骤2.3.4,若比较结果中的第五CRC校验码与第六CRC校验码相同则正常运行主PLC程序和备PLC程序,否则对主PLC程序和备PLC程序实施闭锁。
优选的,采用正码方式对主PLC程序生成的变量进行存储,采用反码方式对备PLC程序生成的变量进行存储;对主PLC程序生成的变量和备PLC程序生成的变量按对应的字节进行异或运算,当异或运算的结果为0xFF时正常执行变量出口报文,否则对报文出口实施闭锁。
优选的,CPU用于智能变电站二次设备中;并且,变量包括遥控变量和出口变量。
优选的,正常执行变量出口报文时,将出口变量的正码和反码同时填入出口报文,并计算出口变量正反码的CRC校验码,以及将CRC校验码填入至出口报文中。
本发明第二方面,涉及一种CPU中冗余PLC的校验装置,装置包括处理器及存储介质;其特征在于:存储介质用于存储指令;处理器用于根据指令进行操作以执行本发明第一方面中方法的步骤。
本发明第三方面,涉及计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明第一方面中方法的步骤。
本发明的有益效果在于,与现有技术相比,本发明中的一种CPU中冗余PLC的校验方法、装置及介质,该方法在一个CPU中分别构建主PLC程序和备PLC程序,并在启动两个程序的过程中,对于程序的代码区、逻辑表、常量区和变量区分别进行校验,以在程序运行错误或程序输出变量错误的情况下及时对程序或报文出口执行闭锁。本发明思路清晰,准确可靠,充分利用了冗余PLC程序的执行过程实现了多步骤安全可靠的变量报文输出。
附图说明
图1为本发明一种CPU中冗余PLC的校验方法的步骤示意图;
图2为本发明一种CPU中冗余PLC的校验方法中主PLC程序和备PLC程序的构建逻辑示意图;
图3为本发明一种CPU中冗余PLC的校验方法中代码区校验的示意图;
图4为本发明一种CPU中冗余PLC的校验方法中逻辑表校验的示意图;
图5为本发明一种CPU中冗余PLC的校验方法中常量区校验的示意图;
图6为本发明一种CPU中冗余PLC的校验方法中变量区校验的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清晰,下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述。本发明所描述的实施例仅仅是本发明一部分的实施例,而不是全部实施例。基于本发明精神,本领域普通技术人员在没有做出创造性劳动的前提下,根据本发明中记载的实施例而获得的所有其它本发明中未记载的实施例,都应当属于本发明的保护范围。
本发明第一方面,涉及一种CPU中冗余PLC的校验方法,方法包括步骤1至3。
步骤1,在CPU中构建主PLC程序和备PLC程序,并分别为主PLC程序和备PLC程序构建代码区、逻辑表和分配内存区。
可以理解的是,本发明中的主PLC程序和备PLC程序可以为两个完全独立的程序,这两个程序具备完全独立的两套PLC代码区、逻辑表以及内存区。换言之,两个程序会以完全独立的方式实现运行,并分别输出相互对应的出口变量。
图2为本发明一种CPU中冗余PLC的校验方法中主PLC程序和备PLC程序的构建逻辑示意图。如图2所示,优选的,主PLC程序和备PLC程序分别具备代码区、逻辑表和内存区;并且,主PLC程序的逻辑表与备PLC程序的逻辑表完全相同。
需要说明的是,两个独立的程序会分别从程序的代码区中读取代码,并分别获取代码后进行程序执行。另外,在程序执行的过程中还会从设备的EEPROM(ErasableProgrammableROM,可擦除可编程ROM)中获取到主PLC程序和备PLC程序的逻辑表。由此,程序执行过程中会分别采用其对应的逻辑表实现相应的逻辑,以根据设备接收到的输入或常量区的相应数据内容实现变量的生成和输出。
另外,PLC程序运行过程中生成的变量、以及运行过程中需要采用的常量均会被合理的存储在预先分配的设备内存中。而设备的输出接口会调用设备内存从而实现出口报文的生成和输出。
由于本发明中备PLC程序的用途主要是用于对主PLC程序进行冗余校验的,因此本发明方法中不需要对其逻辑表进行任何修改。其逻辑表可以完全采用与主PLC程序相同的逻辑表即可。另外,为了更为准确的实施冗余校验,本发明中两个程序生成的变量则会在变量存储和输出的阶段分别以正反码的方式实现,从而确保了校验的准确。这部分内容将在后文中具体描述。
步骤2,分别对主PLC程序、备PLC程序的代码区、逻辑表和常量区进行比较校验,若所有校验过程均通过,则正常运行主PLC程序和备PLC程序,否则对主PLC程序和备PLC程序实施闭锁。
具体来说,在分别构建了主PLC程序和备PLC程序后,本发明的方法就可以在不同的阶段,通过不同的程序多次生成程序不同阶段中数据的校验码,而通过对比校验码是否相同,则可以判断出程序运行过程、内存数据读取过程中是否存在软件逻辑错误,或者是单粒子翻转的问题。
可以理解的是,本发明中,在PLC程序执行前,会对主备PLC代码区、逻辑表、常量区分别进行校验。
图3为本发明一种CPU中冗余PLC的校验方法中代码区校验的示意图。如图3所示,优选的,对主PLC程序、备PLC程序的代码区进行比较校验过程为:步骤2.1.1,在CPU上电启动时,分别针对主PLC程序和备PLC程序的代码区生成第一CRC校验码;步骤2.1.2,在程序启动时,分别针对主PLC程序和备PLC程序再次生成第二CRC校验码;步骤2.1.3,分别针对主PLC程序和备PLC程序比较其第一CRC校验码和第二CRC校验码以获得比较结果;步骤2.1.4,若比较结果中的第一CRC校验码与第二CRC校验码相同则正常运行主PLC程序和备PLC程序,否则对主PLC程序和所述备PLC程序实施闭锁。
如图3所示,本发明中PLC代码区校验,是通过每次执行PLC程序前生成的CRC,与上电启动时生成的CRC进行比较来实现的。在装置上电启动时,分别计算主备PLC代码区的CRC,并保存,以便装置正常运行过程中使用此CRC进行校验。在每次执行PLC程序前,重新计算主备PLC代码区的CRC,并与上电初始化时生成的主备PLC代码区CRC进行比较。若CRC一致,则表示装置正常,可正常执行PLC程序。若CRC不一致,则出发相应告警,并闭锁PLC程序。
图4为本发明一种CPU中冗余PLC的校验方法中逻辑表校验的示意图。如图4所示,对主PLC程序、备PLC程序的逻辑表进行比较校验过程为:步骤2.2.1,在CPU接收到PLC逻辑表、CPU上电启动时和程序启动时分别针对主PLC程序、备PLC程序生成第三CRC校验码;步骤2.2.2,将第三CRC校验码与CPU接收PLC逻辑表的同时接收到的原始CRC校验码进行比较,若校验码相同则执行步骤2.2.3,否则对主PLC程序和所述备PLC程序实施闭锁;步骤2.2.3,将主PLC程序和备PLC程序同时运行时生成的第三CRC校验码进行比较,若校验码相同则正常运行主PLC程序和备PLC程序,否则对主PLC程序和备PLC程序实施闭锁。
可以理解的是,PLC逻辑表是PLC运行的基础配置,对PLC稳定运行至关重要,PLC逻辑表数据结构包含自身的CRC校验码。并且由于主备PLC逻辑表的数据一致,都使用正码存储,因此PLC逻辑表的校验手段可以分别使用CRC校验和内存比较校验。这里的内存比较校验,也就是本发明中的两个原始CRC校验码,换言之,本发明的方法会在接收到逻辑表后,就判定存储在两个程序内存区中的逻辑表的CRC校验字段内容是否完全一致,如果完全一致,才会进行下一步的CRC校验。
关于CRC校验,本发明中,在接收PLC逻辑表配置时、装置启动中、PLC程序执行前都会进行校验。在接收到PLC逻辑表时,本发明会闭锁PLC程序,并将接收到PLC逻辑表保存至PLC逻辑表临时缓存区,同时将主备PLC逻辑表写入内存,以计算和校验内存中的PLC逻辑表所生成的CRC校验码是否一致。当CRC校验通过后,再对逻辑表的内存数据进行比较验证,两片内存区数据应一致。当CRC校验、内存比较校验通过后会解锁PLC,并重新运行PLC程序。
在装置上电和程序启动运行的过程中,也会进行类似的CRC码的生成,同时将不同过程中生成的CRC校验码与接收到的原始校验码进行比较检验,从而判断程序的运行过程是否准确。
图5为本发明一种CPU中冗余PLC的校验方法中常量区校验的示意图。如图5所示,优选的,对主PLC程序、备PLC程序的常量区进行比较校验过程为:步骤2.3.1,在CPU上电启动时,分别针对主PLC程序和备PLC程序的常量区生成第五CRC校验码,比较二者的校验码是否相同,若相同则执行步骤2.3.2,否则实施闭锁;步骤2.3.2,在程序启动时,分别针对主PLC程序和备PLC程序再次生成第六CRC校验码;步骤2.3.3,分别针对主PLC程序和备PLC程序比较其第五CRC校验码和第六CRC校验码以获得比较结果;步骤2.3.4,若比较结果中的第五CRC校验码与第六CRC校验码相同则正常运行主PLC程序和备PLC程序,否则对主PLC程序和备PLC程序实施闭锁。
可以理解的是,本发明中的方法能够实现对主、备PLC程序中内存区中存储的常量的校验,其校验方式与代码区的校验方式类似。在装置上电时,常量区数据已自动初始化,且主备PLC常量区数据一致。计算各自CRC后,比较主备常量区内存。若内存区数据一致,则正常启动,否则闭锁PLC。
另外,在PLC程序每次执行前,本发明还会计算主备PLC常量区各自的CRC,并与上电启动时生成的CRC进行比较。校验通过后进行主备PLC常量区内存的比较。若主备PLC常量区内存一致,则执行下一步工作,若上述任意环节中出错,则闭锁装置。
步骤3,在正常运行主PLC程序和备PLC程序后,分别采用正反码对主PLC程序、备PLC程序的变量进行存储和校验,若校验过程通过,则正常执行变量出口报文,否则对PLC程序和备PLC程序的报文出口实施闭锁。
图6为本发明一种CPU中冗余PLC的校验方法中变量区校验的示意图。如图6所示,本发明中,在PLC执行后,会对主备PLC变量区进行正反码校验。
优选的,采用正码方式对主PLC程序生成的变量进行存储,采用反码方式对备PLC程序生成的变量进行存储;对主PLC程序生成的变量和备PLC程序生成的变量按对应的字节进行异或运算,当异或运算的结果为0xFF时正常执行变量出口报文,否则对报文出口实施闭锁。
在校验是对PLC变量区进行异或运算,运算结果全部应为0xFF。一旦出现问题,则说明正反码的变量之间有一者或两者出现误码,因此本发明的校验过程失败,会对出口报文实施闭锁。
优选的,CPU用于智能变电站二次设备中;并且,变量包括遥控变量和出口变量。
本发明中的装置可以为智能变电站的二次设备,这些设备需要实时的向电网中发出遥信控制指令,以及一些出口数据形成的报文。通过这些指令和报文,电网能够获取到二次设备所在位置上电网的运行状态,从而及时的对电网进行动态的调节。
因此,根据二次设备所发出的数据内容的不同,本发明中将输出的变量分为遥控变量和出口变量两种。同时,在执行PLC程序完成后,出口执行程序会分别从主、备PLC程序的变量区中获取到不同种类的变量,并通过不同的出口实现数据的输出。
具体来说,本发明中不仅会对变量的内容进行CRC校验,还会对出口数量是否合规,遥控指令与出口是否对应等方面进行进一步的校验。
具体来说,出口数量合规性是指,当多个出口同时动作时,检查这些出口中的唯一性出口数量,当有1个以上的唯一性出口时,闭锁出口。唯一性出口是指,同一时刻只允许有一个动作的出口。由于电网二次设备的特征,部分保护指令的操作方法是矛盾的,因此,唯一性出口确保了最高优先级的保护方式得以具体实现,避免因前端软件异常、互锁机构故障,导致多个开关或刀闸控制出口误动作的情况。同时也为考虑到五防联闭锁、辅助节点等出口允许多个同时动作,因此唯一性出口是可以配置的。当检测到多个出口同时动作时,出口报文生成程序会校验出口数量合规性。
另外,为了确保出口与遥控的一致性,避免因前端软件异常造成误触发。当开关刀闸出口唯一校验通过后,仍须要与遥控命令进行验证。当检测到唯一性出口动作,并且相应的遥控命令正处于有效期内,则继续运行,否则闭锁出口。
优选的,正常执行变量出口报文时,将出口变量的正码和反码同时填入出口报文,并计算出口变量正反码的CRC校验码,以及将CRC校验码填入至出口报文中。
为了确保报文在填写过程和传输过程中不被篡改,当PLC校验及出口校验全部通过后,将主备PLC变量区的出口变量正反码,填进报文中。报文内容填写完毕后,将计算整帧报文的CRC,并添加到报文中,使整帧报文可校验。接收方在收到出口报文时,首先校验出口报文的CRC,然后校验出口数据正反码,以确保接收报文的正确性。
本发明第二方面,涉及一种CPU中冗余PLC的校验装置,装置包括处理器及存储介质;存储介质用于存储指令;处理器用于根据指令进行操作以执行本发明第一方面中方法的步骤。
可以理解的是,CPU中冗余PLC的校验装置为了实现上述本申请实施例提供的方法中的各功能,CPU中冗余PLC的校验装置包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对CPU中冗余PLC的校验装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
装置包括至少一个处理器,总线系统以及至少一个通信接口。处理器可以是中央处理器(CentralProcessingUnit,CPU),还可以由现场可编程逻辑门阵列(FieldProgrammableGateArray,FPGA)、专用集成电路(Application-specificintegratedcircuit,ASIC)或其他硬件代替,或者,FPGA或其他硬件与CPU共同作为处理器。
存储器可以是只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,EEPROM)、只读光盘(compactdiscread-onlymemory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
硬盘可以为机械盘或固态硬盘(SolidStateDrive,SSD)等。接口卡可以是主机总线适配器(HostBusAdapter,HBA)、独立硬盘冗余阵列卡(RedundantArrayofIndependentDisks,RID)、扩展器卡(Expander)或网络接口控制器(NetworkInterfaceController,NIC)等,本发明实施例对此不作限定。硬盘模组中的接口卡与硬盘通信。存储节点与硬盘模组的接口卡通信,从而访问硬盘模组中的硬盘。
硬盘的接口可以为串行连接小型计算机系统接口(SerialAttachedSmallComputerSystemInterface,SAS)、串行高级技术附件(SerialAdvancedTechnologyAttachment,SATA)或高速串行计算机扩展总线标准(PeripheralComponentInterconnectexpress,PCIe)等。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,简称DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solidstatedisk,简称SSD))等。
本发明第三方面,涉及一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明第一方面中方法的步骤。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本发明的有益效果在于,与现有技术相比,本发明中的一种CPU中冗余PLC的校验方法、装置及介质,该方法在一个CPU中分别构建主PLC程序和备PLC程序,并在启动两个程序的过程中,对于程序的代码区、逻辑表、常量区和变量区分别进行校验,以在程序运行错误或程序输出变量错误的情况下及时对程序或报文出口执行闭锁。本发明思路清晰,准确可靠,充分利用了冗余PLC程序的执行过程实现了多步骤安全可靠的变量报文输出。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (10)
1.一种CPU中冗余PLC的校验方法,其特征在于,所述方法包括以下步骤:
步骤1,在CPU中构建主PLC程序和备PLC程序,并分别为所述主PLC程序和备PLC程序构建代码区、逻辑表和分配内存区;
步骤2,分别对所述主PLC程序、备PLC程序的代码区、逻辑表和常量区进行比较校验,若所有校验过程均通过,则正常运行所述主PLC程序和备PLC程序,否则对所述主PLC程序和所述备PLC程序实施闭锁;
步骤3,在正常运行所述主PLC程序和备PLC程序后,分别采用正反码对所述主PLC程序、备PLC程序的变量进行存储和校验,若所述校验过程通过,则正常执行变量出口报文,否则对所述PLC程序和所述备PLC程序的报文出口实施闭锁。
2.根据权利要求1中所述的一种CPU中冗余PLC的校验方法,其特征在于:
所述主PLC程序和备PLC程序分别具备代码区、逻辑表和内存区;
并且,所述主PLC程序的逻辑表与所述备PLC程序的逻辑表完全相同。
3.根据权利要求2中所述的一种CPU中冗余PLC的校验方法,其特征在于:
对所述主PLC程序、备PLC程序的代码区进行比较校验过程为:
步骤2.1.1,在CPU上电启动时,分别针对主PLC程序和备PLC程序的代码区生成第一CRC校验码;
步骤2.1.2,在程序启动时,分别针对主PLC程序和备PLC程序再次生成第二CRC校验码;
步骤2.1.3,分别针对所述主PLC程序和所述备PLC程序比较其第一CRC校验码和第二CRC校验码以获得比较结果;
步骤2.1.4,若所述比较结果中的所述第一CRC校验码与所述第二CRC校验码相同则正常运行所述主PLC程序和备PLC程序,否则对所述主PLC程序和所述备PLC程序实施闭锁。
4.根据权利要求3中所述的一种CPU中冗余PLC的校验方法,其特征在于:
对所述主PLC程序、备PLC程序的逻辑表进行比较校验过程为:
步骤2.2.1,在所述CPU接收到PLC逻辑表、CPU上电启动时和程序启动时分别针对所述主PLC程序、备PLC程序生成第三CRC校验码;
步骤2.2.2,将所述第三CRC校验码与所述CPU接收所述PLC逻辑表的同时接收到的原始CRC校验码进行比较,若校验码相同则执行步骤2.2.3,否则对所述主PLC程序和所述备PLC程序实施闭锁;
步骤2.2.3,将所述主PLC程序和所述备PLC程序同时运行时生成的第三CRC校验码进行比较,若校验码相同则正常运行所述主PLC程序和备PLC程序,否则对所述主PLC程序和所述备PLC程序实施闭锁。
5.根据权利要求4中所述的一种CPU中冗余PLC的校验方法,其特征在于:
对所述主PLC程序、备PLC程序的常量区进行比较校验过程为:
步骤2.3.1,在CPU上电启动时,分别针对主PLC程序和备PLC程序的常量区生成第五CRC校验码,比较二者的校验码是否相同,若相同则执行步骤2.3.2,否则实施闭锁;
步骤2.3.2,在程序启动时,分别针对主PLC程序和备PLC程序再次生成第六CRC校验码;
步骤2.3.3,分别针对所述主PLC程序和所述备PLC程序比较其第五CRC校验码和第六CRC校验码以获得比较结果;
步骤2.3.4,若所述比较结果中的所述第五CRC校验码与所述第六CRC校验码相同则正常运行所述主PLC程序和备PLC程序,否则对所述主PLC程序和所述备PLC程序实施闭锁。
6.根据权利要求5中所述的一种CPU中冗余PLC的校验方法,其特征在于:
采用正码方式对主PLC程序生成的变量进行存储,采用反码方式对备PLC程序生成的变量进行存储;
对所述主PLC程序生成的变量和所述备PLC程序生成的变量按对应的字节进行异或运算,当异或运算的结果为0xFF时正常执行变量出口报文,否则对报文出口实施闭锁。
7.根据权利要求6中所述的一种CPU中冗余PLC的校验方法,其特征在于:
所述CPU用于智能变电站二次设备中;并且,
所述变量包括遥控变量和出口变量。
8.根据权利要求7中所述的一种CPU中冗余PLC的校验方法,其特征在于:
正常执行变量出口报文时,将所述出口变量的正码和反码同时填入出口报文,并计算所述出口变量正反码的CRC校验码,以及将所述CRC校验码填入至出口报文中。
9.一种CPU中冗余PLC的校验装置,其特征在于:
所述装置包括处理器及存储介质;其特征在于:
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行根据权利要求1-8任一项所述方法的步骤。
10.计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211501969.8A CN115827336A (zh) | 2022-11-28 | 2022-11-28 | 一种cpu中冗余plc的校验方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211501969.8A CN115827336A (zh) | 2022-11-28 | 2022-11-28 | 一种cpu中冗余plc的校验方法、装置及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115827336A true CN115827336A (zh) | 2023-03-21 |
Family
ID=85532202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211501969.8A Pending CN115827336A (zh) | 2022-11-28 | 2022-11-28 | 一种cpu中冗余plc的校验方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827336A (zh) |
-
2022
- 2022-11-28 CN CN202211501969.8A patent/CN115827336A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740186B2 (en) | High data integrity processing system | |
US10891181B2 (en) | Smart system dump | |
US8433950B2 (en) | System to determine fault tolerance in an integrated circuit and associated methods | |
US20170351573A1 (en) | Controller | |
US20220107866A1 (en) | Fast memory ecc error correction | |
JP2013175118A (ja) | 制御装置、及びそのメモリ故障検出方法、その自己診断方法 | |
US20240176693A1 (en) | Security control method and apparatus for integrated circuit, storage medium, and electronic device | |
CN115827336A (zh) | 一种cpu中冗余plc的校验方法、装置及介质 | |
US20090132866A1 (en) | Storage apparatus | |
JP2005049967A (ja) | フェイルセーフプロセッサ及び鉄道用保安制御装置 | |
EP3955112A1 (en) | Method and apparatus for memory error detection | |
JP2010086120A (ja) | メモリの誤り訂正方法,誤り検出方法、及びそれを用いたコントローラ | |
CN115220923A (zh) | 信号校验方法、介质、电子设备和程序产品 | |
CN111880961A (zh) | 用于透明寄存器数据错误检测和纠正的系统和方法 | |
CN112925546B (zh) | 一种防止车载ecu刷新出错的多级校验方法及系统 | |
CN112596813B (zh) | 一种基于安全编码的atp软件自动配置方法 | |
US8516336B2 (en) | Latch arrangement for an electronic digital system, method, data processing program, and computer program product for implementing a latch arrangement | |
JP2000105675A (ja) | ディスクアレイ装置 | |
CN115001963B (zh) | 基于多元配置存储通信设备的信息配置方法及装置 | |
CN116010148A (zh) | 针对不同cpu上的数据进行交叉校验方法、设备及介质 | |
CN112817805B (zh) | 基于自适应平台汽车开放系统架构的内存数据安全验证系统及方法 | |
US11228320B2 (en) | Information processing device, information processing method, and computer readable medium | |
CN111857664B (zh) | 一种应用开发的方法、装置、设备及存储介质 | |
CN117932702A (zh) | 一种寄存器译码保护系统及方法 | |
CN115543336A (zh) | 一种离线安全数据工具的开发方法 |
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 |