CN102968089A - 可编程逻辑控制器及实现方法 - Google Patents

可编程逻辑控制器及实现方法 Download PDF

Info

Publication number
CN102968089A
CN102968089A CN2012104075421A CN201210407542A CN102968089A CN 102968089 A CN102968089 A CN 102968089A CN 2012104075421 A CN2012104075421 A CN 2012104075421A CN 201210407542 A CN201210407542 A CN 201210407542A CN 102968089 A CN102968089 A CN 102968089A
Authority
CN
China
Prior art keywords
user data
zone bit
program
bit
memory block
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
Application number
CN2012104075421A
Other languages
English (en)
Other versions
CN102968089B (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.)
Suzhou Inovance Technology Co Ltd
Shenzhen Inovance Technology Co Ltd
Original Assignee
Suzhou Inovance Technology Co Ltd
Shenzhen Inovance Technology Co Ltd
Shenzhen Inovance Control Technology 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 Suzhou Inovance Technology Co Ltd, Shenzhen Inovance Technology Co Ltd, Shenzhen Inovance Control Technology Co Ltd filed Critical Suzhou Inovance Technology Co Ltd
Priority to CN201210407542.1A priority Critical patent/CN102968089B/zh
Publication of CN102968089A publication Critical patent/CN102968089A/zh
Application granted granted Critical
Publication of CN102968089B publication Critical patent/CN102968089B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

本发明提供了一种可编程逻辑控制器,包括用于存储系统程序的NOR闪存;所述系统程序包括第一级程序、第二级程序,其中第一级程序为无需更新的系统程序,第二级程序为需要更新的系统程序;所述NOR闪存包括用于存储第一级程序的第一存储区、用于存储第二级程序的第二存储区及用于存储第二级程序的备份文件的第三存储区。本发明还提供一种可编程逻辑控制器的实现方法。本发明通过将系统程序分级存储NOR闪存的不同存储区,提高了可编程逻辑控制器的可靠性。

Description

可编程逻辑控制器及实现方法
技术领域
本发明涉及可编程逻辑控制器,更具体地说,涉及一种具有高可靠性的可编程逻辑控制器及实现方法。
背景技术
中型PLC(Programmable Logic Controller,可编程逻辑控制器)的系统程序包括PLC的驱动代码、操作系统、文件系统及单板程序,用户数据包括用户配置的用户程序和数据。系统程序和用户数据的可靠性是工业产品的一个重要指标。现有工业设备中,中型PLC的系统程序和用户数据一般存储在可读写、掉电有保存功能的介质中。
现有的中型PLC中,通常将系统程序和用户数据存储于SD卡中,PLC的中央处理单元从SD卡中读取系统程序运行,并加载SD卡中的用户数据实现用户功能。系统程序和用户数据需要更新时,把更新的系统程序和数据存储在SD卡中。另一种常用的方法是用存储量大且便宜的NAND闪存存储系统程序和用户数据,系统程序和用户数据需要更新时,把更新的系统程序和数据存储在NAND闪存中。
然而NAND闪存及SD卡由于其构造原因容易出现位交换现象,即一个比特位上的数据发生了翻转,将导致存储在其上的系统程序或用户数据出现错误。因此,用SD卡或NAND闪存存储系统程序和用户数据的中型PLC设备在SD卡或NAND闪存中系统程序出现错误时会导致PLC不能启动运行,需由厂家更新SD卡或重新烧录NAND闪存;当用户数据出现错误时,需要用户重新下载用户数据,对一些实时保存的数据,若出现了错误,没有办法修复,将对用户造成很大的损失。
并且,系统程序和用户数据在SD卡或NAND闪存中一般只有一个存储区,没有备份,当对SD卡或NAND闪存进行擦写时,若此时断电或拔掉SD卡或NAND闪存,则造成程序被擦写更新不完整,导致PLC无法启动,只能原厂更新或更换。
目前还有一种PLC中常见的系统程序和用户数据存储方法是使用NOR闪存,即使用NOR闪存存储系统程序和用户数据。然而,虽然NOR闪存不易出现位交换现象,但其价格昂贵,对于用户数据需求日渐增大的设备将造成较大的成本压力。
发明内容
本发明要解决的技术问题在于,针对上述中型PLC可靠性不高及成本较高的问题,提供一种可编程逻辑控制器及实现方法。
本发明解决上述技术问题的技术方案是,提供一种可编程逻辑控制器,包括用于存储系统程序的NOR闪存;所述系统程序包括第一级程序、第二级程序,其中第一级程序为无需更新的系统程序,第二级程序为需要更新的系统程序;所述NOR闪存包括用于存储第一级程序的第一存储区、用于存储第二级程序的第二存储区及用于存储第二级程序的备份文件的第三存储区。
在本发明所述的可编程逻辑控制器中,所述可编程逻辑控制器包括第一校验单元、第二校验单元、第三校验单元及第四校验单元;所述NOR闪存包括第一标志位、第一校验位、第二标志位及第二校验位;所述第一校验单元,用于在第一级程序启动后读取第一标志位并在第一标志位被置位时启动第二校验单元、否则使用第三存储区中的第二级程序的备份文件更新第二存储区;所述第二校验单元,用于读取第二存储区中的第二级程序并在第二级程序的校验值等于第一校验位的值时启动第三校验单元、否则使用第三存储区中的第二级程序的备份文件更新第二存储区;所述第三校验单元,用于读取第二标志位并在所述第二标志位被置位时启动第四校验单元、否则使用第二存储区中的第二级程序更新第三存储区;所述第四校验单元,用于读取第三存储区中的第二级程序的备份文件并在所述第二级程序的备份文件的校验值与第二校验位相同且该备份文件与第二存储区中的第二级程序版本一致时启动第二级程序、否则使用第二存储区中的第二级程序更新第三存储区。
在本发明所述的可编程逻辑控制器中,所述可编程逻辑控制器包括用于更新第二存储区中的第二级程序的第一更新单元、第一更新校验单元以及用于更新第三存储区中的第二级程序的备份文件的第二更新单元;所述第一更新单元在第二级程序更新前将第一标志位及第一校验位清零并在第二级程序更新完成后将第一标志位置位、将第二级程序的校验值写入第一校验位及启动所述第一更新校验单元;所述第一更新校验单元,用于在第一标志位被置位且第二存储区中的第二级程序的校验值等于第一校验位的值时使第二更新单元更新第三存储区的备份文件、否则使第一更新单元重新更新第二存储区中的第二级程序;所述第二更新单元在第二级程序的备份文件更新前将第二标志位及第二校验位清零并在所述备份文件更新完成后将第二标志位置位、将备份文件的校验值写入第二校验位。
在本发明所述的可编程逻辑控制器中,所述可编程逻辑控制器还包括用于存储用户数据的NAND闪存,所述NAND闪存包括用于存储用户数据区、备份数据区、第三标志位、第三校验位、第四标志位及第四校验位,所述可编程逻辑控制器包括第五校验单元、第六校验单元、第七校验单元及第八校验单元;所述第五校验单元,用于在第二级程序启动后读取第三标志位并在所述第三标志位被置位时启动第六校验单元、否则使用备份数据区的数据更新用户数据区;所述第六校验单元,用于读取用户数据区并在所述用户数据区的校验值等于第三校验位的值时启动第七校验单元、否则使用备份数据区的数据更新用户数据区;所述第七校验单元,用于读取第四标志位并在所述第四标志位被置位时启动第八校验单元、否则使用用户数据区的数据更新备份数据区;所述第八校验单元,用于备份数据区并在备份数据区的校验值与第四校验位不同或该备份数据区中的数据版本与用户数据区中数据的版本不一致时使用用户数据区中的数据更新备份数据区、否则启动用户数据区的数据。
在本发明所述的可编程逻辑控制器中,所述可编程逻辑控制器包括用于更新用户数据区的第三更新单元、第二更新校验单元以及用于更新备份数据区的第四更新单元;所述第三更新单元在用户数据区更新前将第三标志位及第三校验位清零并在用户数据区更新完成后将第三标志位置位、将用户数据区的校验值写入第三校验位及启动所述第二更新校验单元;所述第二更新校验单元,用于在第三标志位被置位且用户数据区的校验值等于第三校验位的值时使第四更新单元更新备份数据区、否则使第三更新单元重新更新用户数据区;所述第四更新单元在备份数据区更新前将第四标志位及第四校验值清零并在所述备份数据区更新完成后将第四标志位置位并将备份数据区的校验值写入第四校验位。
本发明还提供一种可编程逻辑控制器的实现方法,包括以下步骤:
(a)将第一级程序存储到NOR闪存的第一存储区,其中所述第一级程序为无需更新的系统程序;
(b)将第二级程序存储到NOR闪存的第二存储区,所述第二级程序为需要更新的系统程序;
(c)将第二级程序的备份文件存储到NOR闪存的第三存储区。
在本发明所述的可编程逻辑控制器的实现方法中,所述步骤(b)包括:将所述NOR闪存中的第一标志位置位并将第二级程序的校验值写入第一校验位;所述步骤(c)包括:将所述NOR闪存中的第二标志位置位并将备份文件的校验值写入第二校验位;该方法还包括载入系统程序且载入系统程序包括以下步骤:
(d)在第一级程序启动后读取第一标志位并在第一标志位被置位时执行步骤(e),否则执行步骤(f);
(e)读取第二存储区中的第二级程序并计算该第二级程序的校验值,在所述第二级程序的校验值等于第一校验位的值时执行步骤(g),否则执行步骤(f);
(f)使用第三存储区中的第二级程序的备份文件更新第二存储区,并返回步骤(d);
(g)读取第二标志位并在所述第二标志位被置位时执行步骤(i);否则执行步骤(h);
(h)使用第二存储区中的第二级程序更新第三存储区,并执行步骤(i);
(i)读取并计算第三存储区中的备份文件的校验值并在所述备份文件的校验值与第二校验位相同且所述备份文件与第二存储区中的第二级程序版本一致时启动第二级程序,否则返回步骤(h)。
在本发明所述的可编程逻辑控制器的实现方法中,该方法还包括更新系统程序且更新系统程序包括以下步骤:
(j)将第一标志位及第一校验位清零并更新第二级程序,在第二级程序更新完成后将第一标志位置位并将第二级程序的校验值写入第一校验位;
(k)判断第一标志位是否被置位及第二存储区中的第二级程序的校验值是否等于第一校验位的值,并在第一标志位被置位且第二存储区中的第二级程序的校验值等于第一校验位的值时执行步骤(l),否则返回步骤(j);
(l)将第二标志位及第二校验位清零并更新第二级程序的备份文件,并在所述备份文件更新完成后将第二标志位置位并将备份文件的校验值写入第二校验位。
在本发明所述的可编程逻辑控制器的实现方法中,该方法还包括:
将用户数据存储到NAND闪存的用户数据区,同时将NAND闪存的第三标志位置位并将用户数据区的校验值写入NAND闪存的第三校验位;
将用户数据的备份文件存储到备份数据区,同时将NAND闪存的第四标志位置位并将备份数据区的校验值写入NAND闪存的第四校验位;
该方法还包括载入用户数据且载入用户数据包括以下步骤:
(m)在第二级程序启动后读取第三标志位并在所述第三标志位被置位时执行步骤(n),否则执行步骤(o);
(n)读取用户数据区并在所述用户数据区的校验值等于第三校验位的值时执行步骤(p),否则执行步骤(o);
(o)使用备份数据区的数据更新用户数据区,并执行步骤(n);
(p)读取第四标志位并在所述第四标志位被置位时执行步骤(q),否则执行步骤(r);
(q)读取备份数据区并计算备份数据区的校验值,在备份数据区的校验值与第四校验位相同且备份数据区中的用户数据版本与用户数据区的用户数据版本一致时启动用户数据区的用户数据,否则执行步骤(r);
(r)使用用户数据区的数据更新备份数据区,并返回步骤(q)。
在本发明所述的可编程逻辑控制器的实现方法中,该方法还包括更新用户数据且更新用户数据包括:
(s)将第三标志位及第三校验位清零并更新用户数据区,在用户数据区更新完成后将第三标志位置位并将用户数据区的校验值写入第三校验位;
(t)判断第三标志位是否被置位及用户数据区中数据的校验值是否等于第三校验位的值,并在第三标志位被置位且用户数据区的校验值等于第三校验位的值时执行步骤(u),否则执行步骤(s);
(u)将第四标志位及第四校验位清零并更新备份数据区,在所述备份数据区更新完成后将第四标志位置位并将备份数据区的校验值写入第四校验位。
本发明的可编程逻辑控制器及实现方法,通过将系统程序分级存储NOR闪存的不同存储区,提高了可编程逻辑控制器的可靠性。并且,本发明通过PLC系统程序加载及更新过程中的自动判断及自动修复,可进一步提高系统可靠性。此外,本发明将用户数据存储在NAND闪存,并提供用户数据载入及更新时的自动判断及自动修复,不仅降低了产品成本,而且提高了系统的可靠性。
附图说明
图1是本发明可编程逻辑控制器实施例的示意图。
图2是本发明可编程逻辑控制器系统程序加载及更新部分的示意图。
图3是本发明可编程逻辑控制器用户数据加载及更新部分的示意图。
图4是本发明可编程逻辑控制器实现方法实施例的流程示意图。
图5是本发明可编程逻辑控制器实现方法的系统程序加载的流程图。
图6是本发明可编程逻辑控制器实现方法的系统程序更新的流程图。
图7是本发明可编程逻辑控制器实现方法的用户数据加载的流程图。
图8是本发明可编程逻辑控制器实现方法的用户数据更新的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,是本发明可编程逻辑控制器实施例的示意图。本实施例中的可编程逻辑控制器(PLC)包括用于存储系统程序的NOR闪存。由于NOR闪存为非易失性存储设备,且在数据存储时不易出现位交换现象,因此可保证数据存储的可靠性。同时,在可编程逻辑控制器中,系统程序占有的数据量较小,且更新频度较低,因此采用NOR闪存存储系统程序不会过多增加系统成本。
上述NOR闪存包括第一存储区11、第二存储区12及第三存储区13;而系统程序则包括第一级程序、第二级程序,其中第一级程序为无需更新的系统程序(例如初始化基本硬件、下载接口以及根据第二级程序的完整性做相应处理的程序等),第二级程序为需要更新的系统程序(例如系统驱动程序和单板应用程序等)。上述NOR闪存的第一存储区11用于存储第一级程序;第二存储区12用于存储第二级程序;第三存储区13及用于存储第二级程序的备份文件。通过将需更新的系统程序进行备份,可进一步提高系统的可靠性。
上述NOR闪存中的系统程序可通过一个烧录模块完成,即通过该烧录模块将第一级程序写入NOR闪存的第一存储区、将第二级程序写入NOR闪存的第二存储区、将第二级程序的备份文件写入第三存储区。
如图2所示,本发明的可编程逻辑控制器还可包括加载模块,相应地,上述NOR闪存除了三个存储区,还包括第一标志位、第一校验位、第二标志位及第二校验位。上述第一标志位、第一校验位、第二标志位及第二校验位与系统程序同时写入到NOR闪存(例如通过烧录模块)。本实施例中的加载模块包括第一校验单元21、第二校验单元22、第三校验单元23及第四校验单元24。上述加载模块可由可编程逻辑控制器的中央处理单元执行第一级程序中的代码实现(由于第一级程序不会更新,因此可保证其执行时不会出现异常),也可通过单独的硬件和软件实现。
第一校验单元21用于在第一级程序启动后读取第一标志位并在第一标志位被置位时(表示第二存储区12中的第二级程序完整)启动第二校验单元22、否则使用第三存储区13中的第二级程序的备份文件更新第二存储区12(包括重新写入第一标志位及第一校验位的值,即自动修复第二级程序)并重新启动第一校验单元21。
第二校验单元22用于读取第二存储区12中的第二级程序并计算该第二级程序的校验值,在上述校验值等于第一校验位的值时启动第三校验单元23、否则使用第三存储区13中的第二级程序的备份文件更新第二存储区12(包括重新写入第一标志位及第一校验位的值)并重新启动第一校验单元21。
第三校验单元23用于读取第二标志位并在第二标志位被置位时(表示备份文件完整)启动第四校验单元24、否则使用第二存储区中的第二级程序更新第三存储区(包括重新写入第二标志位及第二校验位,实现备份文件校验)并重新启动第三校验单元23。
第四校验单元24用于读取第三存储区13中的第二级程序的备份文件并计算该备份文件的校验值,在上述校验值与第二校验位的值相同且该备份文件的版本与第二存储区中的第二级程序版本一致时启动第二级程序、否则使用第二存储区中的第二级程序更新第三存储区并重新启动第三校验单元23。
在上述的可编程逻辑控制器中,还可包括更新模块,且该更新模块第一更新单元31、第一更新校验单元32以及第二更新单元33。上述更新模块也可由可编程逻辑控制器的中央处理单元执行第一级程序中的代码实现,或通过单独的硬件和软件实现。
更新模块可先把更新的系统程序放置到内存中,然后通过第一更新单元31、第一更新校验单元32以及第二更新单元33将内存中的系统程序更新第二存储区12和第三存储区13,并把程序完整标志及校验值写入相应标志位和校验位。
第一更新单元31用于更新第二存储区12中的第二级程序。该第一更新单元31在第二级程序更新前将第一标志位及第一校验位清零并在第二级程序更新完成后将第一标志位置位、将第二级程序的校验值写入第一校验位。
第一更新校验单元32在第一更新单元31写入第一校验值完毕之后,检测第一标志位是否被置位并检测第二存储区中的第二级程序的校验值是否等于第一校验位的值。若第一标志位被置位且第二级程序的校验值准确,则使第二更新单元33更新第三存储区13,否则使第一更新单元31重新更新第二存储区。
第二更新单元33用于更新第三存储区中的第二级程序的备份文件。该第二更新单元33在第二级程序的备份文件更新前将第二标志位及第二校验位清零并在备份文件更新完成后将第二标志位置位、将备份文件的校验值写入第二校验位。在第二更新单元33更新完毕,也可再通过一个更新校验单元(与第一更新校验单元相同)对备份文件的更新进行相同的校验。
通过在系统程序更新时的可靠性设计,保证了第二存储区12和第三存储区13中必有一个分区的第二级程序是正确的(即在检验第二存储区12更新正确后才更新第三存储区13)。由于总是先更新第二存储区12的系统程序,因此第二存储区12中的系统程序版本号不会比第三存储区13中的系统程序低。
在上述可编程逻辑控制器中,还可包括用于存储用户数据(包括用户程序和数据)的NAND闪存,该NAND闪存包括用于存储用户数据区(用于存储PLC正常运行时的用户数据)、备份数据区(用作用户数据区的备份)。由于可编程逻辑控制器中用户数据容量较大,采用NAND闪存存储该部分数据可有效降低系统成本。该NAND闪存中包括第三标志位、第三校验位、第四标志位及第四校验位,用于标识用户数据区及备份数据区的完整性和准确性。
上述NAND闪存中的数据(包括用户数据、标志位、校验位)也可通过烧录模块写入。
为实现NAND闪存中用户数据的加载,上述加载模块还可包括第五校验单元25、第六校验单元26、第七校验单元27及第八校验单元28。
第五校验单元25用于在第二级程序启动后(即系统程序启动后)读取NAND闪存中的第三标志位并在该第三标志位被置位时(即用户数据区完整)启动第六校验单元26、否则使用备份数据区的数据更新用户数据区并重新启动第五校验单元25。
第六校验单元26用于读取用户数据区数据并计算该用户数据区的数据的校验值,在上述校验值等于第三校验位的值时启动第七校验单元27、否则使用备份数据区的数据更新用户数据区(即用户数据自动修复)并重新启动第五校验单元25。
第七校验单元27用于读取第四标志位并在第四标志位被置位时(即备份数据区完整)启动第八校验单元28、否则使用用户数据区的数据更新备份数据区(即备份数据区自动修复)并重新启动第七校验单元27。
第八校验单元28用于读取备份数据区的数据并计算该数据的校验值,在备份数据区的校验值与第四校验位相同且备份数据区中的用户数据版本与用户数据区的用户数据一致时启动用户数据、否则使用用户数据区中的数据更新备份数据区。
为更新NAND闪存中的用户数据,可编程逻辑控制器的更新模块可包括第三更新单元34、第二更新校验单元35以及第四更新单元36。
第三更新单元34用于更新用户数据区的用户数据。该第三更新单元34在用户数据区更新前将第三标志位及第三校验位清零并在用户数据区更新完成后将第三标志位置位、将用户数据区的校验值写入第三校验位。
第二更新校验单元35用于在第三校验值写入完成后,检测第三标志位是否被置位及用户数据区的校验值是否等于第三校验位的值,并在第三标志位被置位且用户数据区校验值准确时使第四更新单元更新备份数据区、否则使第三更新单元34重新更新用户数据区。
第四更新单元36用于更新备份数据区。该第四更新单元36在备份数据区更新前将第四标志位及第四校验值清零并在备份数据区更新完成后将第四标志位置位并将备份数据区的校验值写入第四校验位。在第四更新单元36更新备份数据区完成后,也可采用一个更新校验单元对备份数据区的用户数据进行校验。
用户数据更新时的可靠性设计保证了用户数据区和备份数据区必有一个分区的用户数据是正确的。
如图4所示,是本发明可编程逻辑控制器实现方法实施例的流程示意图,该方法包括以下步骤:
步骤S41:将第一级程序存储到NOR闪存的第一存储区,其中第一级程序为无需更新的系统程序(例如初始化基本硬件、下载接口以及根据第二级程序的完整性做相应处理的程序等)。
步骤S42:将第二级程序存储到NOR闪存的第二存储区,第二级程序为需要更新的系统程序(例如系统驱动程序和单板应用程序等)。该步骤中可包括将NOR闪存中的第一标志位置位并将第二级程序的校验值写入第一校验位,上述第一标志位及第一校验位分别用于标识第二存储区中的第二级程序是否完整及第二级程序的校验值。
步骤S43:将第二级程序的备份文件存储到NOR闪存的第三存储区。该步骤中可包括将NOR闪存中的第二标志位置位并将第二级程序的备份文件的校验值写入第二校验位,上述第二标志位及第二校验位分别用于标识第三存储区中的第二级程序的备份文件是否完整及备份文件的校验值。
上述步骤S41-43可在可编程逻辑控制器出厂之前执行。
如图5所示,是本发明可编程逻辑控制器实现方法的系统程序加载的流程图。该系统程序的加载过程包括以下步骤:
步骤S51:在第一级程序启动后读取第一标志位并在第一标志位被置位时执行步骤S52,否则执行步骤S53。
步骤S52:读取第二存储区中的第二级程序并计算该第二级程序的校验值,在第二级程序的校验值等于第一校验位的值时执行步骤S54,否则执行步骤S53。
步骤S53:使用第三存储区中的第二级程序的备份文件更新第二存储区,并返回步骤S51。
步骤S54:读取第二标志位并在第二标志位被置位时执行步骤S56;否则执行步骤S55。
步骤S55:使用第二存储区中的第二级程序更新第三存储区,并执行步骤S56。
步骤S56:读取并计算第三存储区中的备份文件的校验值并在所述备份文件的校验值与第二校验位相同且所述备份文件与第二存储区中的第二级程序版本一致时执行步骤S57,否则执行步骤S55。
步骤S57:启动第二级程序。
如图6所示,是本发明可编程逻辑控制器实现方法的系统程序更新的流程图。如图所示,更新系统程序包括以下步骤:
步骤S61:将第一标志位及第一校验位清零并更新第二级程序,在第二级程序更新完成后将第一标志位置位并将第二级程序的校验值写入第一校验位。
步骤S62:判断第以标志位是否被置位及第二存储区中的第二级程序的校验值是否等于第一校验位的值在第一标志位被置位且第二存储区中的第二级程序的校验值等于第一校验位的值时执行步骤S63,否则返回步骤S61。
步骤S63:将第二标志位及第二校验位清零并更新第二级程序的备份文件,并在备份文件更新完成后将第二标志位置位并将备份文件的校验值写入第二校验位。
在可编程逻辑控制器出厂前,可将用户数据存储到NAND闪存的用户数据区,同时将NAND闪存的第三标志位置位并将用户数据区的校验值写入NAND闪存的第三校验位;将用户数据的备份文件存储到备份数据区,同时将NAND闪存的第四标志位置位并将备份数据区的校验值写入NAND闪存的第四校验位。此时,如图7所示,加载用户数据包括以下步骤:
步骤S71:在第二级程序启动后读取第三标志位并在第三标志位被置位时执行步骤S72,否则执行步骤S73。
步骤S72:读取用户数据区并在用户数据区的校验值等于第三校验位的值时执行步骤S74,否则执行步骤S73。
步骤S73:使用备份数据区的数据更新用户数据区,并执行步骤S71。
步骤S74:读取第四标志位并在第四标志位被置位时执行步骤S75,否则执行步骤S76。
步骤S75:读取备份数据区并计算备份数据区的校验值,在备份数据区的校验值与第四校验位相同且备份数据区中的用户数据版本与用户数据区的用户数据版本一致时执行步骤S77,否则执行步骤S76。
步骤S76:使用用户数据区的数据更新备份数据区,并返回步骤S74。
步骤S77:启动用户数据区的用户数据。
如图8所示,是本发明可编程逻辑控制器实现方法的用户数据更新的流程图。更新用户数据具体包括:
步骤S81:将第三标志位及第三校验位清零并更新用户数据区,在用户数据区更新完成后将第三标志位置位并将用户数据区的校验值写入第三校验位。
步骤S82:判断第三标志位是否被置位及用户数据区的校验值是否等于第三校验位的值,并在第三标志位被置位且用户数据区的校验值等于第三校验位的值时执行步骤S83,否则执行步骤S81。
步骤S83:将第四标志位及第四校验位清零并更新备份数据区,在备份数据区更新完成后将第四标志位置位并将备份数据区的校验值写入第四校验位。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种可编程逻辑控制器,其特征在于:包括用于存储系统程序的NOR闪存;所述系统程序包括第一级程序、第二级程序,其中第一级程序为无需更新的系统程序,第二级程序为需要更新的系统程序;所述NOR闪存包括用于存储第一级程序的第一存储区、用于存储第二级程序的第二存储区及用于存储第二级程序的备份文件的第三存储区。 
2.根据权利要求1所述的可编程逻辑控制器,其特征在于:所述可编程逻辑控制器包括第一校验单元、第二校验单元、第三校验单元及第四校验单元;所述NOR闪存包括第一标志位、第一校验位、第二标志位及第二校验位;所述第一校验单元,用于在第一级程序启动后读取第一标志位并在第一标志位被置位时启动第二校验单元、否则使用第三存储区中的第二级程序的备份文件更新第二存储区;所述第二校验单元,用于读取第二存储区中的第二级程序并在第二级程序的校验值等于第一校验位的值时启动第三校验单元、否则使用第三存储区中的第二级程序的备份文件更新第二存储区;所述第三校验单元,用于读取第二标志位并在所述第二标志位被置位时启动第四校验单元、否则使用第二存储区中的第二级程序更新第三存储区;所述第四校验单元,用于读取第三存储区中的第二级程序的备份文件并在所述第二级程序的备份文件的校验值与第二校验位相同且该备份文件与第二存储区中的第二级程序版本一致时启动第二级程序、否则使用第二存储区中的第二级程序更新第三存储区。
3.根据权利要求2所述的可编程逻辑控制器,其特征在于:所述可编程逻辑控制器包括用于更新第二存储区中的第二级程序的第一更新单元、第一更新校验单元以及用于更新第三存储区中的第二级程序的备份文件的第二更新单元;所述第一更新单元在第二级程序更新前将第一标志位及第一校验位清零并在第二级程序更新完成后将第一标志位置位、将第二级程序的校验值写入第一校验位及启动所述第一更新校验单元;所述第一更新校验单元,用于在第一标志位被置位且第二存储区中的第二级程序的校验值等于第一校验位的值时使第二更新单元更新第三存储区的备份文件、否则使第一更新单元重新更新第二存储区中的第二级程序;所述第二更新单元在第二级程序的备份文件更新前将第二标志位及第二校验位清零并在所述备份文件更新完成后将第二标志位置位、将备份文件的校验值写入第二校验位。
4.根据权利要求1-3中任一项所述的可编程逻辑控制器,其特征在于:所述可编程逻辑控制器还包括用于存储用户数据的NAND闪存,所述NAND闪存包括用于存储用户数据区、备份数据区、第三标志位、第三校验位、第四标志位及第四校验位,所述可编程逻辑控制器包括第五校验单元、第六校验单元、第七校验单元及第八校验单元;所述第五校验单元,用于在第二级程序启动后读取第三标志位并在所述第三标志位被置位时启动第六校验单元、否则使用备份数据区的数据更新用户数据区;所述第六校验单元,用于读取用户数据区并在所述用户数据区的校验值等于第三校验位的值时启动第七校验单元、否则使用备份数据区的数据更新用户数据区;所述第七校验单元,用于读取第四标志位并在所述第四标志位被置位时启动第八校验单元、否则使用用户数据区的数据更新备份数据区;所述第八校验单元,用于备份数据区并在备份数据区的校验值与第四校验位不同或该备份数据区中的数据版本与用户数据区中数据的版本不一致时使用用户数据区中的数据更新备份数据区、否则启动用户数据区的数据。
5.根据权利要求4所述的可编程逻辑控制器,其特征在于:所述可编程逻辑控制器包括用于更新用户数据区的第三更新单元、第二更新校验单元以及用于更新备份数据区的第四更新单元;所述第三更新单元在用户数据区更新前将第三标志位及第三校验位清零并在用户数据区更新完成后将第三标志位置位、将用户数据区的校验值写入第三校验位及启动所述第二更新校验单元;所述第二更新校验单元,用于在第三标志位被置位且用户数据区的校验值等于第三校验位的值时使第四更新单元更新备份数据区、否则使第三更新单元重新更新用户数据区;所述第四更新单元在备份数据区更新前将第四标志位及第四校验值清零并在所述备份数据区更新完成后将第四标志位置位并将备份数据区的校验值写入第四校验位。
6.一种可编程逻辑控制器的实现方法,其特征在于:包括以下步骤:
(a)将第一级程序存储到NOR闪存的第一存储区,其中所述第一级程序为无需更新的系统程序;
(b)将第二级程序存储到NOR闪存的第二存储区,所述第二级程序为需要更新的系统程序;
(c)将第二级程序的备份文件存储到NOR闪存的第三存储区。
7.根据权利要求6所述的可编程逻辑控制器的实现方法,其特征在于:所述步骤(b)包括:将所述NOR闪存中的第一标志位置位并将第二级程序的校验值写入第一校验位;所述步骤(c)包括:将所述NOR闪存中的第二标志位置位并将备份文件的校验值写入第二校验位;该方法还包括载入系统程序且载入系统程序包括以下步骤:
(d)在第一级程序启动后读取第一标志位并在第一标志位被置位时执行步骤(e),否则执行步骤(f); 
(e)读取第二存储区中的第二级程序并计算该第二级程序的校验值,在所述第二级程序的校验值等于第一校验位的值时执行步骤(g),否则执行步骤(f);
(f)使用第三存储区中的第二级程序的备份文件更新第二存储区,并返回步骤(d);
(g)读取第二标志位并在所述第二标志位被置位时执行步骤(i);否则执行步骤(h);
(h)使用第二存储区中的第二级程序更新第三存储区,并执行步骤(i);
(i)读取并计算第三存储区中的备份文件的校验值并在所述备份文件的校验值与第二校验位相同且所述备份文件与第二存储区中的第二级程序版本一致时启动第二级程序,否则返回步骤(h)。
8.根据权利要求7所述的可编程逻辑控制器的实现方法,其特征在于:该方法还包括更新系统程序且更新系统程序包括以下步骤:
(j)将第一标志位及第一校验位清零并更新第二级程序,在第二级程序更新完成后将第一标志位置位并将第二级程序的校验值写入第一校验位;
(k)判断第一标志位是否被置位及第二存储区中的第二级程序的校验值是否等于第一校验位的值,并在第一标志位被置位且第二存储区中的第二级程序的校验值等于第一校验位的值时执行步骤(l),否则返回步骤(j);
(l)将第二标志位及第二校验位清零并更新第二级程序的备份文件,并在所述备份文件更新完成后将第二标志位置位并将备份文件的校验值写入第二校验位。
9.根据权利要求6-8中任一项所述的可编程逻辑控制器的实现方法,其特征在于:该方法还包括:
将用户数据存储到NAND闪存的用户数据区,同时将NAND闪存的第三标志位置位并将用户数据区的校验值写入NAND闪存的第三校验位;
将用户数据的备份文件存储到备份数据区,同时将NAND闪存的第四标志位置位并将备份数据区的校验值写入NAND闪存的第四校验位;
该方法还包括载入用户数据且载入用户数据包括以下步骤:
(m)在第二级程序启动后读取第三标志位并在所述第三标志位被置位时执行步骤(n),否则执行步骤(o);
(n)读取用户数据区并在所述用户数据区的校验值等于第三校验位的值时执行步骤(p),否则执行步骤(o);
(o)使用备份数据区的数据更新用户数据区,并执行步骤(n);
(p)读取第四标志位并在所述第四标志位被置位时执行步骤(q),否则执行步骤(r);
(q)读取备份数据区并计算备份数据区的校验值,在备份数据区的校验值与第四校验位相同且备份数据区中的用户数据版本与用户数据区的用户数据版本一致时启动用户数据区的用户数据,否则执行步骤(r);
(r)使用用户数据区的数据更新备份数据区,并返回步骤(q)。
10.根据权利要求9所述的可编程逻辑控制器的实现方法,其特征在于:该方法还包括更新用户数据且更新用户数据包括:
(s)将第三标志位及第三校验位清零并更新用户数据区,在用户数据区更新完成后将第三标志位置位并将用户数据区的校验值写入第三校验位;
(t)判断第三标志位是否被置位及用户数据区中数据的校验值是否等于第三校验位的值,并在第三标志位被置位且用户数据区的校验值等于第三校验位的值时执行步骤(u),否则执行步骤(s);
(u)将第四标志位及第四校验位清零并更新备份数据区,在所述备份数据区更新完成后将第四标志位置位并将备份数据区的校验值写入第四校验位。
CN201210407542.1A 2012-10-23 2012-10-23 可编程逻辑控制器及实现方法 Active CN102968089B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210407542.1A CN102968089B (zh) 2012-10-23 2012-10-23 可编程逻辑控制器及实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210407542.1A CN102968089B (zh) 2012-10-23 2012-10-23 可编程逻辑控制器及实现方法

Publications (2)

Publication Number Publication Date
CN102968089A true CN102968089A (zh) 2013-03-13
CN102968089B CN102968089B (zh) 2014-12-24

Family

ID=47798278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210407542.1A Active CN102968089B (zh) 2012-10-23 2012-10-23 可编程逻辑控制器及实现方法

Country Status (1)

Country Link
CN (1) CN102968089B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156279A (zh) * 2014-08-04 2014-11-19 上海斐讯数据通信技术有限公司 一种路由器配置数据的备份方法
CN104423310A (zh) * 2013-08-29 2015-03-18 Ls产电株式会社 用于更新可编程逻辑控制器中的操作系统的装置和方法
CN105653333A (zh) * 2015-12-31 2016-06-08 深圳市汇川控制技术有限公司 可编程逻辑控制器用户程序在线修改系统及方法
CN107209492A (zh) * 2015-01-22 2017-09-26 三菱电机株式会社 可编程逻辑控制器设定文件生成辅助装置
CN112597450A (zh) * 2020-12-22 2021-04-02 深圳市道通科技股份有限公司 可编程芯片程序检测、存储方法和可编程芯片

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989178A (en) * 1985-10-11 1991-01-29 Omron Tateisi Electronics Co. Programmable controller having forcibly set or reset I/O states controlled by stored flags in a flag memory
JPH08249016A (ja) * 1995-03-09 1996-09-27 Koyo Electron Ind Co Ltd プログラマブルコントローラ
CN1431570A (zh) * 2002-01-10 2003-07-23 欧姆龙株式会社 单元和可编程控制器以及用户程序的处理方法
CN1470991A (zh) * 2002-07-25 2004-01-28 联想(北京)有限公司 一种采用与非闪存作系统存储器的方法及装置
CN1991761A (zh) * 2005-12-30 2007-07-04 北京华旗资讯数码科技有限公司 一种固件程序在线升级的方法及硬件设备
CN101251826A (zh) * 2007-02-27 2008-08-27 深圳市同洲电子股份有限公司 闪速存储器、用于闪速存储器的数据管理方法及设备
US20080269918A1 (en) * 2007-04-24 2008-10-30 Schneider Electric Industries Sa System and method for managing the restarting of automatic control equipment
CN101894035A (zh) * 2010-07-12 2010-11-24 杭州开鼎科技有限公司 一种基于NOR Flash的EPON终端系统程序更新方法
CN101937205A (zh) * 2009-11-13 2011-01-05 广西工学院 新型便携式plc编程装置
CN102043640A (zh) * 2009-10-23 2011-05-04 富港电子(东莞)有限公司 快闪系统及其程序更新方法
JP4890545B2 (ja) * 2006-06-13 2012-03-07 三菱電機株式会社 プログラマブルロジックコントローラの周辺装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989178A (en) * 1985-10-11 1991-01-29 Omron Tateisi Electronics Co. Programmable controller having forcibly set or reset I/O states controlled by stored flags in a flag memory
JPH08249016A (ja) * 1995-03-09 1996-09-27 Koyo Electron Ind Co Ltd プログラマブルコントローラ
CN1431570A (zh) * 2002-01-10 2003-07-23 欧姆龙株式会社 单元和可编程控制器以及用户程序的处理方法
CN1470991A (zh) * 2002-07-25 2004-01-28 联想(北京)有限公司 一种采用与非闪存作系统存储器的方法及装置
CN1991761A (zh) * 2005-12-30 2007-07-04 北京华旗资讯数码科技有限公司 一种固件程序在线升级的方法及硬件设备
JP4890545B2 (ja) * 2006-06-13 2012-03-07 三菱電機株式会社 プログラマブルロジックコントローラの周辺装置
CN101251826A (zh) * 2007-02-27 2008-08-27 深圳市同洲电子股份有限公司 闪速存储器、用于闪速存储器的数据管理方法及设备
US20080269918A1 (en) * 2007-04-24 2008-10-30 Schneider Electric Industries Sa System and method for managing the restarting of automatic control equipment
CN102043640A (zh) * 2009-10-23 2011-05-04 富港电子(东莞)有限公司 快闪系统及其程序更新方法
CN101937205A (zh) * 2009-11-13 2011-01-05 广西工学院 新型便携式plc编程装置
CN101894035A (zh) * 2010-07-12 2010-11-24 杭州开鼎科技有限公司 一种基于NOR Flash的EPON终端系统程序更新方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104423310A (zh) * 2013-08-29 2015-03-18 Ls产电株式会社 用于更新可编程逻辑控制器中的操作系统的装置和方法
US10146200B2 (en) 2013-08-29 2018-12-04 Lsis Co., Ltd. Apparatus and method for updating operating system in programmable logic controller
CN104156279A (zh) * 2014-08-04 2014-11-19 上海斐讯数据通信技术有限公司 一种路由器配置数据的备份方法
CN104156279B (zh) * 2014-08-04 2018-10-12 上海斐讯数据通信技术有限公司 一种路由器配置数据的备份方法
CN107209492A (zh) * 2015-01-22 2017-09-26 三菱电机株式会社 可编程逻辑控制器设定文件生成辅助装置
CN107209492B (zh) * 2015-01-22 2019-03-26 三菱电机株式会社 可编程逻辑控制器设定文件生成辅助装置
CN105653333A (zh) * 2015-12-31 2016-06-08 深圳市汇川控制技术有限公司 可编程逻辑控制器用户程序在线修改系统及方法
CN105653333B (zh) * 2015-12-31 2020-04-14 深圳市汇川控制技术有限公司 可编程逻辑控制器用户程序在线修改系统及方法
CN112597450A (zh) * 2020-12-22 2021-04-02 深圳市道通科技股份有限公司 可编程芯片程序检测、存储方法和可编程芯片

Also Published As

Publication number Publication date
CN102968089B (zh) 2014-12-24

Similar Documents

Publication Publication Date Title
CN106528106B (zh) 一种自适应各种不同Flash芯片类型的嵌入式系统启动方法
CN103299276A (zh) 嵌入式装置的软件更新过程
CN102968089A (zh) 可编程逻辑控制器及实现方法
CN101373451B (zh) 保护双基本输出入系统程序的计算机系统及其控制方法
CN102629206B (zh) 一种嵌入式系统软件升级方法及系统
CN101216789A (zh) 数据更新方法、装置及系统
CN103186471B (zh) 存储设备中坏块的管理方法及系统
CN102385535A (zh) 处理从非易失性存储器进行设备引导期间的错误
CN102929665B (zh) 用于驱动安装的系统
CN103135941B (zh) 嵌入式存储器的管理方法、嵌入式存储器及电子设备
US9552287B2 (en) Data management method, memory controller and embedded memory storage apparatus using the same
CN103823642A (zh) 用于Flash均衡存储的方法及系统
CN103778964B (zh) 一种NAND Flash烧写数据的处理、使用方法及装置、系统
CN110955387B (zh) 自适应识别闪存类型方法及计算机可读取存储介质及装置
CN102955751A (zh) 存储器储存装置、存储器控制器与数据写入方法
CN104969181A (zh) 损坏的驱动器变量记录的替换
CN103425549A (zh) 嵌入式控制器的固件管理方法及系统
CN102750109A (zh) 资料同步系统及方法
CN104536841A (zh) 一种Android系统Data分区自修复方法及系统
CN102622190A (zh) 产品识别信息在线写入方法及电子产品
US20160034226A1 (en) Data storage device, method of storing data, and on-vehicle control apparatus
CN102207905A (zh) 系统恢复方法、存储媒体控制器及存储系统
CN102479124A (zh) 一种测试方法
CN103970616A (zh) 数据恢复系统及方法
JP5660521B2 (ja) 不揮発性半導体記憶装置およびメモリ管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20221125

Address after: 518000 Huichuan technology headquarters building, Guanlan high tech Industrial Park, Longhua New District, Shenzhen City, Guangdong Province

Patentee after: SHENZHEN INOVANCE TECHNOLOGY Co.,Ltd.

Patentee after: SUZHOU INOVANCE TECHNOLOGY Co.,Ltd.

Address before: 518000 room 306, 3rd floor, building 16, Shangsha innovation and Technology Park, Binhe Road, Futian District, Shenzhen City, Guangdong Province

Patentee before: Shenzhen Inovance Control Technology Co.,Ltd.

Patentee before: SHENZHEN INOVANCE TECHNOLOGY Co.,Ltd.

Patentee before: SUZHOU INOVANCE TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right