具有电源故障补偿功能的plc及电源故障补偿方法

文档序号:6411931阅读:371来源:国知局
专利名称:具有电源故障补偿功能的plc及电源故障补偿方法
技术领域
本发明涉及一种具有电源故障补偿功能的PLC(可编程逻辑控制器)以及一种电源故障补偿方法,特别涉及一种改进的具有电源故障补偿功能的PLC及一种电源故障补偿方法,当出现电源故障时,能够实现程序操作的连续性。
PLC(可编程逻辑控制器)是一种控制电开关(输入和输出接点)如制造自动化系统等的装置,所述的制造自动化系统等装置与以用户所设定程序为基础的PLC相连。
PLC系统采用一种能够进行实时数据通信的LAN(局部区域网络),和一种多个通信站与一个网络相连的多点网络(1N通信)。
因此,在工厂自动化系统中,安装在每条线路上的PLCs从PLC接收及向PLC发送每条线路上的数据,如组件数、故障数以及输出产品数等,使得系统根据接收到的数据进行的操作。


图1所示,传统的PLC包括一个为系统元件提供电源的电源单元10,一个根据用户设定的程序进行操作的CPU(中心处理单元)11,一个提供经控制目标14处理的数据的输入单元12,一个将控制信号从CPU11输出到控制目标14的输出单元13。
下面参考相关的附图描述传统PLC的操作。
电源单元10将一个AC输入电源转换成一个DC电源,供给CPU11及输入和输出单元12和13,CPU11通过输入单元12读取控制目标14的状态,执行用户编写的程序,并通过输出单元13来进行输出。PLC通过上述方法来控制控制目标14。
此外,PLC重复执行用户编写的程序,并更新进入PLC的数据存储器中的该结果。数据存储器在电源故障期间利用电池来保存存储器的内容。因此,在PLC操作方式时,用户根据被控的控制目标14的特性,来决定操作PLC的数据值是否保存在存储器数据中。
当用户设定存储数据值的方式、并操作PLC时,如果出现电源故障,程序的执行由于电源故障而停止时,则最初设定要存储的数据与正常执行程序所得到的数据将会不同。
作为操作结果,程序由于电源故障而停止,停止的位置不同,将会产生不同的操作结果。另外,当重新操作PLC时,由于CPU11利用程序停止时所得到的操作结果,从用户程序的第一步开始重新执行程序,所以无法获得电源故障前后程序执行的连续性。
图2给出了PLC执行的用户程序。
用户程序包括步骤1到步骤12。也就是说,程序设计成当接点A闭合时,相应地分别将1、2和3加到接点B、C和D上。此时,A表示一个逻辑值(bool value),B、C和D是设定为将被存储的整数值。
首先,用户程序由步骤1到步骤12正常进行,整数值B、C和D分别变为5、10和15,根据上述数值可以得到下面的表达式C=2*B,D=3*B。
如果用户程序由步骤1到步骤12正常执行了四次,接着,在第五次操作期间,刚好在执行步骤8之前出现了电源故障,在步骤7所获得到的操作值5、8和12以整数值5、8和12被存储到了数据存储器中。
如果电源故障恢复,则CPU11读取存储在数据存储器中的B、C和D值,程序由步骤1开始执行,而不从出现电源故障而停止的步骤处开始执行。因此,程序执行五次后得到的B、C和D值分别变成了6、10和15,操作值不能满足等式C=2*B,D=3*B,因此PLC的操作可能错误地被执行。
换句话说,在传统的PLC中,由于无法保持电源故障前后用户程序的连续性,所以PLC会发生错误动作。
因此,本发明的一个目的是提供一种具有电源故障补偿功能的PLC以及一种电源故障补偿方法,其能够克服前述的在背景技术中遇到的问题。
本发明的另一个目的是提供一种具有电源故障补偿功能的PLC以及一种电源故障补偿方法,当出现电源故障时,其能够实现程序操作的连续性。
为了达到上述目的,提供了一种具有电源故障补偿功能的PLC,它包括一个第一存储单元,用于存储一程序执行数据及一由CPU执行的用户程序;一个电源故障检测器,用于检测交流电源的状态,并输出一个电源故障发生信号;一个程序计数器,用于对CPU执行的程序的每一步进行计数;一个第二存储单元,用于存储程序计数器的计数值,即电源故障前CPU最后执行的程序步骤值;一个第三存储单元,用于存储电源故障前在CPU最后执行的程序步骤中所得到的程序执行结果值;一个电池,可分别向第二和第三存储单元提供一直流电源;以及一个CPU,可从程序计数器中读取电源故障前执行的程序步骤值,并将读取的数值存储到第二存储单元中,将电源故障前最后执行的程序执行结果值存储到第三存储单元中,读取存储在第一存储单元中的用户程序及存储在第二和第三存储单元中的数据,从最后执行的程序步骤的下一步开始执行用户程序。
为了达到上述目的,提供了一种电源故障补偿方法,其包括以下步骤从电源故障检测器中检测出一个电源故障发生信号,并判断电源故障;根据判断的结果,从程序计数器中读取电源故障发生前最后的执行的程序步骤值,将所读取的步骤值存储到第二执行单元中,并将电源故障前最后执行的程序执行结果值存储到第三存储单元中;当电源故障恢复时,判断在PLC操作期间是否出现电源故障;当判断结果是出现了电源故障时,则从第一存储单元中读取用户程序,从第二和第三存储单元中读取数据,并从最后执行的程序步骤的下一步开始执行用户程序。
本发明的其他优点、目的和特点通过下面的描述将会变得更加清楚。
通过下文给出的详细说明以及仅作为说明而不是作为本发明的限制的相关附图,将会更加充分地理解本发明,其中图1是一个传统PLC(可编程逻辑控制器)的方框图;图2是一个PLC执行的用户程序视图;图3是根据本发明的一个PLC电源故障补偿装置的方框图;图4是图3中电源故障检测单元的详细电路图。
图5A到图5C是来自图4中电源故障检测单元的操作定时信号的波形图。
图6是图3中PLC电源故障补偿装置的操作流程图。
如图3所示,根据本发明的具有电源故障补偿功能的PLC(可编程逻辑控制器)包括一个电源故障检测器15,用来检测一交流电压的状态;一个第一存储单元16,用来存储CPU11执行的用户程序的程序执行数据以及用户程序;一个程序计数器17,用来对CPU11执行的程序步骤进行计数;一个第二存储单元18,用来存储程序计数器17的计数值、也就是电源故障前CPU11最后执行的步骤数;一个第三存储单元19,用来存储电源故障前从CPU11最后执行的程序步骤中得到的程序执行结果值;一个电池20,用来为第二及第三存储单元18和19分别提供一直流电压。
电源故障检测器15包括一个具有电阻器R1和R2及一个电容器C1的阻抗单元1,一个具有两个光电二极管PD1和PD2及一个光电三极管的光电耦合器2,一个具有电阻器R3和R4及一个电容器C2、用于从光电耦合器2充/放电5V电压的充/放电单元3,一个对充/放电单元3的充/放电电压起缓冲作用的缓冲单元4。
下面参考相关附图来说明本发明具有电源故障补偿功能的PLC的操作。
电源故障检测器15对施加到输入端的交流电压进行检测,并输出一个电源故障发生信号AC-FAIL。
当输入AC电源时,光电耦合器2由输入的AC电源导通,5V电压通过电阻器R4充进电容器C2,从而通过缓冲单元4输出了一个高电平电源故障发生信号AC-FAIL。
另外,当未输入AC电源时,光电耦合器2截止,使得电容器C2所充的电荷通过电阻器R4和R3释放,从而通过缓冲单元4输出一个低电平电源故障发生信号AC-FAIL。
如图5a中所示,当出现电源故障时,电源故障检测器15向CPU11输出一个低电平电源故障发生信号AC-FAIL,表示在CPU11复位之前发生了电源故障。
首先,当电源单元10上施加了电源时,CPU11在步骤S2中判断PLC方式是否是运行方式。根据判断结果,如果PLC方式是运行方式,则在步骤S4中判断,操作期间是否出现了电源故障,根据判断结果,如果在操作期间未出现电源故障,则根据由第一存储单元16中所读取的用户程序,对数据进行初始化,并在步骤S5和S6中设定将要执行的程序步骤1到12。
此外,通过输入单元12自控制目标14的输入模块(未示出)读取数据,从设定的步骤处开始执行用户程序,将操作结果传送到位于另一线路上的PLC,并存储在第一存储单元16中,在步骤S7到S10中,将一控制数据通过输出单元13输出到控制目标的输出模块。当操作方式发生了变化时,PLC利用已改变的操作方式进行操作,而如果操作方式未发生变化,则重复执行步骤S6之后的操作。此时,程序计数器17对CPU11执行的程序步骤进行计数。
此外,如果出现电源故障,从电源故障检测器15输入一个低电平电源故障发生信号AC-FAIL时,CPU11接收到的电源故障发生信号AC-FAIL是一个中断信号,使用户程序停止。在电源故障前最后执行的程序步骤中所得到的程序执行结果值,存储在第三存储单元19中,而后如图5C所示进行复位。
此外,CPU11控制程序计数器17,并将电源故障前最后处理的程序步骤值存储到第二存储单元18中。通过控制电池20,将一应急电源施加到第二和第三存储单元18和19上。此时,第二和第三存储单元18和19是由具有电池的RAM或与备用电池相连的RAM组成的。
因此,当施加了电源时,CPU11在步骤S1到S4中判断,在操作期间是否出现了电源故障。根据判断的结果,如果在PLC操作期间出现了电源故障,则从第三存储单元19中恢复一个预定数据。从第二存储单元18中读取电源故障前最后执行的程序步骤值,在步骤S4和S13中指定该程序步骤为电源故障时的步骤。接着,CPU11利用从第二存储单元18中恢复的数据,从电源故障时的步骤处执行用户程序,然后重复进行步骤S8以后的操作。
现在参考图2中所示的用户程序来对操作进行说明。
首先,当利用从第一存储单元16中读取的用户程序以及数据,从步骤1到步骤12正常执行用户程序五次,则整数值B、C和D分别变为5、10和15,可以得到等式C=2*B,D=3*B。
当从步骤1到步骤12正常重复执行了用户程序四次,第五次操作时,在步骤8之前出现了电源故障,则至步骤7时所得到的操作值5、8和12,作为整数值B、C和D,存储到了第三存储单元19中。程序计数器17的计数值8存储到了第二存储单元18中。
接着,当电源恢复时,CPU11读取存储在第三存储单元19中的数值B、C和D,以及存储在第二存储单元18中的计数值8。程序从步骤8开始执行到步骤12,其中在步骤8时操作由于电源故障而停止。因此,整数值B、C和D变为5、10和15,从而满足了等式C=2*B,D=3*B。
因此,在本发明中,当发生了电源故障之后,电源又恢复时,可以恢复电源故障之前正处理的数据,以由于电源故障而停止的用户程序为基础,重新执行PLC操作,因此能够确保用户程序的连续性。
如上所述,在本发明中,用户程序操作期间所得到的数据以及由于电源故障而停止的用户程序的预定步骤,在存储单元复位之前存储到存储单元中。当电源故障恢复正常时,从存储单元中读取数据及用户程序,用户程序自操作停止的步骤处开始执行。于是可以实现用户程序的连续性,并能保证PLC操作的稳定性。
尽管为了说明的目的已经公开了本发明的优选实施例,但本领域的技术人员可以知道,不背离权利要求所述的本发明的范围和精神的各种不同的变形、增加以及替换都是可能的。
权利要求
1.一种PLC(可编程逻辑控制器),包括一个利用用户程序控制控制目标的CPU,一个将控制信号从CPU输出到控制目标的输出单元,一个从控制目标将数据信号提供给CPU的输入单元,一个将交流电源转换成驱动PLC的直流电源并将转换电源提供给每个电路元件的直流电压供给单元,其改进包含第一存储装置,用于存储程序执行数据及CPU执行的用户程序;一个电源故障检测装置,用于检测交流电源状态并输出电源故障发生信号;一个电源故障检测装置,用于检测交流电源状态并输出电源故障发生信号。一个程序计数器,用于对CPU执行的程序的每一步进行计数;第二存储装置,用于存储程序计数器的计数值,即电源故障前CPU最后执行的程序步骤值;第三存储装置,用于存储由电源故障前CPU最后执行的程序步骤处所得到的程序执行结果值;一个电池,用于向第二及第三存储装置分别提供一直流电源;以及一个CPU,由程序计数器中读取电源故障前执行的程序步骤值,并将所读到的数值存储到第二存储装置中,将电源故障前最后执行的程序执行结果值存储到第三存储装置中,读取存储在第一存储装置中的用户程序以及存储在第二及第三存储装置中的数据,并从最后执行的程序步骤的下一步开始执行用户程序。
2.根据权利要求1所述的PLC,其中所述的电源故障检测器包括一个提供交流电源的阻抗;一个由所述交流电源导通和截止的光电耦合器;一个当光电耦合器导通、截止充电操作时,进行放电操作的充电和放电单元;一个与充电和放单元相连的,用于当充电和放电单元进行放电操作时,输出电源故障发生信号的缓冲单元。
3.根据权利要求1所述的PLC,其中所述的第二和第三存储装置是内部具有电池的RAM(随机存取存储器)。
4.根据权利要求1所述的PLC,其中所述的第二和第三存储装置是与备用电池相连的RAM。
5.一种用于PLC的电源故障补偿方法,其中PLC包括一个第一存储装置,用于存储当CPU执行用程序时所得到的数据及用户程序;一个电源故障检测装置,用于检测交流电源的状态、并输出一个电源故障发生信号;一个程序计数器,用于对CPU执行的程序的每一步进行计数;一个第二存储装置,用于存储程序计数器的计数值,即电源故障前CPU最后执行的程序步骤值;一个第三存储装置,用于存储电源故障前在CPU最后执行的程序步骤中所得到的程序执行结果值;一个电池,用于向第二及第三存储装置分别提供一直流电源;以及一个CPU,用于由程序计数器中读取电源故障前执行的程序步骤值,并将所读到的数值存储到第二存储装置中,将电源故障前最后执行的程序执行结果值存储到第三存储装置中,读取存储在第一存储装置中的用户程序以及存储在第二及第三存储装置中的数据,并从最后执行的程序步骤的下一步开始执行用户程序,该方法包括以下步骤从电源故障检测器检测出电源故障发生信号,并判断电源故障;根据判断的结果,从程序计数器中读取电源故障发生前最后执行的程序步骤值,将所读取的步骤值存储到第二执行装置中,并将电源故障发生前最后执行的程序执行结果值存储到第三存储装置中;当电源故障恢复时,判断在PLC操作期间是否出现电源故障;以及当判断结果是出现了电源故障时,则从第一存储装置中读取用户程序,从第二和第三存储装置中读取数据,并从最后执行的程序步骤的下一步开始执行用户程序。
全文摘要
一种具有电源故障补偿功能的PLC及一种电源故障补偿方法。PLC包括第一存储单元,存储程序执行数据及CPU执行的用户程序;电源故障检测器,检测交流电源的状态、输出电源故障发生信号;程序计数器,对CPU执行的程序的每步进行计数;第二存储单元,存储程序计数器的计数值;第三存储单元,存储电源故障前CPU最后执行程序步骤中的程序执行结果值;电池,向第二及第三存储单元分别提供一直流电源CPU。
文档编号G06F1/30GK1193773SQ9710726
公开日1998年9月23日 申请日期1997年12月17日 优先权日1996年12月17日
发明者梁成云 申请人:Lg产电株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1