CN103970119B - 可编程逻辑控制器的错误处理方法 - Google Patents
可编程逻辑控制器的错误处理方法 Download PDFInfo
- Publication number
- CN103970119B CN103970119B CN201310048288.5A CN201310048288A CN103970119B CN 103970119 B CN103970119 B CN 103970119B CN 201310048288 A CN201310048288 A CN 201310048288A CN 103970119 B CN103970119 B CN 103970119B
- Authority
- CN
- China
- Prior art keywords
- run
- error
- control program
- plc
- subsystem
- 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
Links
Abstract
提供了一种可编程逻辑控制器PLC中的错误处理方法,该PLC控制彼此之间没有关联性的多个子系统,并且每个子系统与至少一个控制程序相关联,该错误处理方法包括:对于所述多个子系统中的每个子系统,将与该子系统相关联的至少一个控制程序编为一组;检测PLC中控制程序的运行错误;在该运行错误不是可忽略的运行错误的情况下,确定对于该运行错误的处理方式,以及按照所确定的处理方式对发生该运行错误的控制程序所属的组执行错误处理。通过将PLC中运行的控制程序按照其所属子系统进行编组并对不同子系统执行与其适应的错误处理方式,并保持其他非相关子系统继续运行而不执行错误处理,可以满足多个子系统的不同控制需求并且能够增强PLC的错误处理能力。
Description
技术领域
本发明涉及可编程逻辑控制器领域,更具体地涉及一种可编程逻辑控制器的错误处理方法。
背景技术
在可编程控制器(PLC)中出现程序运行错误时,PLC可以根据实际情况确定该程序运行错误是否是可忽略的。在PLC确定该程序运行错误不可忽略的情况下,根据现有的PLC错误处理机制,大多数的PLC会采用停止所有运行程序并保持输出或者输出预置值的方式来进行错误处理。
然而,一个PLC有时可能会控制多个非相关性子系统,每个子系统希望保持运行状态而不受到其他非相关子系统错误的影响。
如果仍采用现有的PLC错误处理机制,一旦PLC中任意子系统出现不可忽略的运行错误,PLC将停止运行所有子系统的程序,并对所有子系统的输出采取相应的错误处理例如保持输出或者输出预置值。然而,如前所述,其他非相关性的子系统可能希望继续保持运行状态而不采用任何错误处理。显然,现有的PLC错误处理机制已经不能满足实际需要。
因此,需要一种PLC错误处理方法,其可以在PLC中任意子系统出现运行错误时保持其他非相关子系统继续运行而不受影响。
发明内容
考虑到上述问题而提出了本发明。本发明提供了一种PLC错误处理方法,该PLC控制彼此之间没有关联性的多个子系统,该PLC错误处理方法通过将在PLC中运行的控制程序按照其所属子系统进行编组并通过基于编组对PLC中运行的控制程序进行相应的错误处理,从而提高PLC的处理能力并满足用户的多样性要求。
根据本发明一方面,提供了一种可编程逻辑控制器PLC中的错误处理方法,该PLC控制彼此之间没有关联性的多个子系统,并且每个子系统与至少一个控制程序相关联,该错误处理方法包括:对于所述多个子系统中的每个子系统,将与该子系统相关联的至少一个控制程序编为一组;检测PLC中控制程序的运行错误;在该运行错误不是可忽略的运行错误的情况下,确定对于该运行错误的处理方式,以及按照所确定的处理方式对发生该运行错误的控制程序所属的组执行错误处理,并保持其他组的控制程序正常运行。
优选地,在所述错误处理方法中,将与该子系统相关联的至少一个控制程序编为一组包括:为所述至少一个控制程序中的各控制程序定义相同的属性值,该属性值用于指示控制程序的编组情况,其中,属于不同组的控制程序具有不同的属性值。
优选地,在所述错误处理方法中,在确定对于该运行错误的处理方式包括:确定发生该运行错误的控制程序的属性值;以及根据该属性值确定对于该运行错误的处理方式。
优选地,在所述错误处理方法中,按照所确定的处理方式对发生该运行错误的控制程序所属的组执行错误处理包括:在该属性值指示该控制程序不属于特定子系统时,对于在该PLC中运行的具有该属性值的所有控制程序,按照所确定的处理方式执行错误处理;以及对于在该PLC中运行的具有与该属性值不同的属性值的所有控制程序,按照与相应属性值对应的预先配置的处理方式执行错误处理。
优选地,在所述错误处理方法中,按照所确定的处理方式对发生该运行错误的控制程序所属的组执行错误处理包括:在该属性值指示该控制程序属于特定子系统时,对于在该PLC中运行的具有该属性值的所有控制程序,按照所确定的处理方式执行错误处理;以及对于在该PLC中运行的具有与该属性值不同的属性值的所有控制程序,继续运行而不执行错误处理。
优选地,在所述错误处理方法中,对于该运行错误的处理方式是根据发生该运行错误的控制程序的控制对象而配置的,并且该运行错误可以是PLC本身的控制程序运行错误,或者可以是由该控制程序所控制的子系统中的硬件模块故障所引起的运行错误。
优选地,在所述错误处理方法中,按照所确定的处理方式对发生该运行错误的控制程序所属的组执行错误处理包括:将该组中的控制程序全部停止运行并复位输出、保持当前输出、或者输出预置值,以及重启该组中的控制程序。
根据本发明实施例的PLC错误处理方法,通过将PLC中运行的控制程序按照其所属子系统进行编组并对不同子系统执行与其适应的错误处理方式,可以满足多个子系统的不同控制需求并且能够增强PLC的错误处理能力。
附图说明
通过结合附图对本发明的实施例进行详细描述,本发明的上述和其它目的、特征、优点将会变得更加清楚,其中:
图1是示出根据本发明实施例的PLC中的错误处理方法的流程图;
图2是示出根据本发明实施例的按照属性值确定各控制程序的错误处理方法的流程图;
图3是示出根据本发明实施例的一个应用示例的示意图;
图4是示出根据本发明实施例的另一应用示例的示意图;以及
图5是示出根据本发明实施例的又一应用示例的示意图。
具体实施方式
下面,将参考附图来描述根据本发明实施例的PLC错误处理方法。这里描述的本发明实施例还可以以其它方式体现,因此本发明范围不限于这里描述的具体实施例。
首先,将参考图1来描述根据本发明实施例的一种可编程逻辑控制器PLC中的错误处理方法100。该PLC控制彼此之间没有关联性的多个子系统,并且每个子系统与至少一个控制程序相关联。
如图1所示,该PLC错误处理方法100在步骤S101开始。
在步骤S110,对于所述多个子系统中的每个子系统,将与该子系统相关联的至少一个控制程序编为一组。
在步骤S120,检测PLC中控制程序的运行错误。PLC中控制程序可能在该控制程序所控制的子系统中的硬件模块出现故障时发生运行错误,例如在电流或电压传感器故障的情况下利用错误的检测结果(例如,零)进行进一步运算或控制时,可能发生运行错误。另一方面,PLC中控制程序还可能由于PLC本身的寄存器故障或者数据读取错误等等而发生运行错误,例如可能发生除零溢出或者寄存器满等运行错误。
在步骤S130,判断该运行错误是否可忽略。如前所述,在PLC中控制程序的运行过程中可能出现很多种运行错误,并非每一种运行错误都需要重启系统,有一些运行错误对PLC的正确运行或PLC的正确控制而言是可以忽略,例如,在有些情况下发生的除零溢出可以被忽略,并且可以忽略本次的除法计算结果而继续使用前次的计算结果;或者在寄存器中进行简单信息记录的情况下,寄存器满也可以被忽略。
具体地,对于运行错误的处理方式是根据发生该运行错误的控制程序的控制对象而配置的,并且所述处理方式可以包括停止运行并复位输出、保持当前输出、或者输出预置值等等。
例如,当控制对象为小车时,发生错误的控制程序控制小车的运动,在此情况下,可以配置在发生错误时停止控制程序的运行,以便保证系统的安全。
再例如,当控制对象为压力舱时,发生错误的控制程序控制压力阀的开度,在此情况下,可以配置在发生错误时将压力阀的开度保持为当前控制开度或者将其设置为预置值,以便保证系统的安全。
在步骤S130中判断该运行错误是可忽略的运行错误的情况下,该PLC错误处理方法返回步骤S120,以便继续检查PLC中控制程序的其它运行错误。
另一方面,在步骤S130中判断该运行错误是不可忽略的运行错误的情况下,该PLC错误处理方法前进到步骤S140。在步骤S140,确定对于该运行错误的处理方式。然后,在步骤S150,按照所确定的处理方式对发生该运行错误的控制程序所属的组执行错误处理。
最后,根据本发明实施例的PLC错误控制方法在步骤S199结束。
可以通过许多方法将与一个子系统相关联的至少一个控制程序编为一组。例如,可以设置与子系统的数量相对应数量的寄存器组,一个寄存器组与一个子系统相对应并且存储了属于该子系统的控制程序的标识,当在PLC中出现程序运行错误时,在各寄存器组中查找该控制程序的标识并相应地确定其所属子系统。替代地,可以存储一个查找表,在该查找表中定义了每个子系统及其相关联的控制程序,当在PLC中出现程序运行错误时,可以在该查找表中查找该控制程序的标识并相应地确定其所属子系统。替代地,可以为每个控制程序设置一个属性值,当在PLC中出现程序运行错误时,可以先查看出现运行错误的控制程序的属性值。然而,根据本发明实施例的PLC错误处理方法中的编组实现方式不限于以上方式,本领域技术人员可以根据需要选择其它的方式来将一个子系统内的控制程序编组。
下面,将以为每个控制程序设置一个属性值为例来进行描述。
在此情况下,对于每个子系统,为与该子系统相关联的至少一个控制程序中的各控制程序定义相同的属性值,该属性值用于指示控制程序的编组情况,即用于指示控制程序属于该子系统、或者与该子系统相关联,或者用于指示对于该控制程序的错误处理方式。针对不同的子系统,设置不同的属性值。换言之,属于不同组的控制程序具有不同的属性值。
此外,在步骤S140中确定对于PLC中所出现的运行错误的处理方式时,具体地,可以首先确定发生该运行错误的控制程序的属性值,并且根据该属性值确定对于该运行错误的处理方式。
例如,在属性值直接指示对于运行错误的错误处理方式时,可以直接根据该属性值来确定对于该运行错误的处理方式。替代地,在属性值指示控制程序与子系统之间的关联关系时,可以首先根据该属性值确定与该控制程序相关联的子系统,并且然后再根据为该子系统预先配置的错误处理方式来确定相应的错误处理方式。替代地,该属性值还可以直接指示控制程序与子系统之间的关联关系并且还直接指示对该控制程序的错误处理方式。
如图3所示,示出了根据本发明实施例的为每个控制程序设置一个属性值且该属性值指示与该控制程序相关联的子系统的示意图。
在PLC中运行了12个控制程序,这12个控制程序分别属于三个子系统,其中,a、b、c控制程序的属性值为1,这指示它们属于子系统1;d、e、f、g、h控制程序的属性值为2,这指示它们属于子系统2;i、j、k、l控制程序的属性值为3,这指示它们属于子系统3。已经预先为这三个子系统分别配置了相应的错误处理方式,例如为子系统1配置的错误处理方式为第一错误处理方式,即该组中的控制程序全部停止运行并复位输出;为子系统2配置的错误处理方式为第二错误处理方式,即该组中的控制程序停止运行并保持当前输出;为子系统3配置的错误处理方式也为第二错误处理方式。相应地,在各种错误处理方式下重新启动相应子系统的各控制程序。
如图4所示,示出了根据本发明实施例的为控制程序设置属性值且该属性值指示与该控制程序相关联的子系统的另一示意图。
在PLC中运行了14个控制程序,其中,2个控制程序(X、Y)不属于任何子系统而与PLC的整体运行相关,其余的12个控制程序分别属于三个子系统,其中,a、b、c控制程序的属性值为1,这指示它们属于子系统1;d、e、f、g、h控制程序的属性值为2,这指示它们属于子系统2;i、j、k、l控制程序的属性值为3,这指示它们属于子系统3。在此情况下,为控制程序X和Y设置的属性值可以为不指示任何子系统的其它属性值,例如,0、9等等,替代地也可以不给控制程序X和Y设置属性值。
同样,已经预先为这三个子系统分别配置了相应的错误处理方式,例如为子系统1配置的错误处理方式为第一错误处理方式,即该组中的控制程序全部停止运行并复位输出;为子系统2配置的错误处理方式为第二错误处理方式,即该组中的控制程序停止运行并保持当前输出;为子系统3配置的错误处理方式也为第二错误处理方式。
接下来,将参考图2对如何执行错误处理进行具体介绍。
首先,在步骤S210,根据所读取的发生运行错误的控制程序的属性值确定该控制程序是否属于特定子系统。
在步骤S210中确定该控制程序属于特定子系统的情况下,进行到步骤S220并读取下一个控制程序的属性值,然后在步骤S230,判断所读取的属性值与发生运行错误的控制系统的属性值是否相同。在步骤S230判断相同的情况下,在步骤S240按照针对该运行错误所确定的错误处理方式执行错误处理。反之,在步骤S230判断不相同的情况下,不执行错误处理。
在步骤S210中确定该控制程序不属于特定子系统的情况下,进行到步骤S260并读取下一个控制程序的属性值,然后在步骤S270,判断所读取的属性值与发生运行错误的控制系统的属性值是否相同。在步骤S270判断相同的情况下,在步骤S280按照针对该运行错误所确定的错误处理方式执行错误处理。反之,在步骤S270判断不相同的情况下,在步骤S290按照与所读取的属性值对应的预先配置的处理方式执行错误处理。
例如,在检测到PLC中的控制程序a运行错误时,首先读出其属性值为1,并且读取其它控制程序的属性值,对于在该PLC中运行的具有该属性值的所有控制程序(即,b、c),按照所确定的处理方式执行错误处理;另一方面,对于在该PLC中运行的具有与该属性值不同的属性值的所有控制程序(即,X、Y、d、e、f、g、h、i、j、k、l),不执行错误处理。
再例如,在检测到PLC中的控制程序X运行错误时,首先读出其属性值为0(或者为空),并且读取其它控制程序的属性值,对于在该PLC中运行的具有该属性值的所有控制程序(即,Y),按照所确定的处理方式执行错误处理。另一方面,对于在该PLC中运行的具有与该属性值不同的属性值的所有控制程序,按照与所读取的属性值对应的预先配置的处理方式执行错误处理。例如,对于控制程序a、b、c,按照与子系统1对应的预先配置的处理方式(即第一错误处理方式)执行错误处理;对于控制程序d、e、f、g、h,按照与子系统2对应的预先配置的处理方式(即第二错误处理方式)执行错误处理;对于控制程序i、j、k、l,按照与子系统3对应的预先配置的处理方式(即第三错误处理方式)执行错误处理。
如图5所示,示出了根据本发明实施例的为每个控制程序设置一个属性值且该属性值指示与该控制程序相关联的子系统及其错误处理方式的示意图。
属性值“01”可以(通过“0”)指示程序X和Y不属于任何子系统并且(通过“1”)指示其错误处理方式为第一错误处理方式,属性值“11”可以(通过第一个“1”)指示程序a、b和c属于子系统1并且(通过第二个“1”)指示其错误处理方式为第一错误处理方式,属性值“22”可以(通过第一个“2”)指示程序d、e、f、g和h属于子系统2并且(通过第二个“2”)指示其错误处理方式为第二错误处理方式,属性值“32”可以(通过“3”)指示程序i、j、k和l属于子系统3并且(通过“2”)指示其错误处理方式为第二错误处理方式。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
Claims (9)
1.一种可编程逻辑控制器PLC中的错误处理方法,该PLC控制彼此之间没有关联性的多个子系统,并且每个子系统与至少一个控制程序相关联,其特征在于,该错误处理方法包括:
对于所述多个子系统中的每个子系统,将与该子系统相关联的至少一个控制程序编为一组;
检测PLC中控制程序的运行错误;
在该运行错误不是可忽略的运行错误的情况下,
确定对于该运行错误的处理方式,以及
按照所确定的处理方式对发生该运行错误的控制程序所属的组执行错误处理,并保持所属于其他组的控制程序继续运行而不执行错误处理。
2.如权利要求1所述的错误处理方法,其中,将与该子系统相关联的至少一个控制程序编为一组包括:
为所述至少一个控制程序中的各控制程序定义相同的属性值,该属性值用于指示控制程序的编组情况,
其中,属于不同组的控制程序具有不同的属性值。
3.如权利要求2所述的错误处理方法,其中,在确定对于该运行错误的处理方式包括:
确定发生该运行错误的控制程序的属性值;以及
根据该属性值确定对于该运行错误的处理方式。
4.如权利要求2所述的错误处理方法,其中,按照所确定的处理方式对发生该运行错误的控制程序所属的组执行错误处理包括:在该属性值指示该控制程序不属于特定子系统时,
对于在该PLC中运行的具有该属性值的所有控制程序,按照所确定的处理方式执行错误处理;以及
对于在该PLC中运行的具有与该属性值不同的属性值的所有控制程序,按照与相应属性值对应的预先配置的处理方式执行错误处理。
5.如权利要求2所述的错误处理方法,其中,按照所确定的处理方式对发生该运行错误的控制程序所属的组执行错误处理包括:在该属性值指示该控制程序属于特定子系统时,
对于在该PLC中运行的具有该属性值的所有控制程序,按照所确定的处理方式执行错误处理;以及
对于在该PLC中运行的具有与该属性值不同的属性值的所有控制程序,继续运行而不执行错误处理。
6.如权利要求1所述的错误处理方法,其中,对于该运行错误的处理方式是根据发生该运行错误的控制程序的控制对象而配置的。
7.如权利要求6所述的错误处理方法,其中,所述处理方式包括停止运行并复位输出、保持当前输出、或者输出预置值。
8.如权利要求7所述的错误处理方法,其中,按照所确定的处理方式对发生该运行错误的控制程序所属的组执行错误处理包括:
将该组中的控制程序全部停止运行并复位输出、保持当前输出、或者输出预置值,以及
重启该组中的控制程序。
9.如权利要求1所述的错误处理方法,其中,该运行错误是PLC本身的控制程序运行错误,或者是由该控制程序所控制的子系统中的硬件模块故障所引起的运行错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310048288.5A CN103970119B (zh) | 2013-02-06 | 2013-02-06 | 可编程逻辑控制器的错误处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310048288.5A CN103970119B (zh) | 2013-02-06 | 2013-02-06 | 可编程逻辑控制器的错误处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103970119A CN103970119A (zh) | 2014-08-06 |
CN103970119B true CN103970119B (zh) | 2016-12-28 |
Family
ID=51239745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310048288.5A Active CN103970119B (zh) | 2013-02-06 | 2013-02-06 | 可编程逻辑控制器的错误处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103970119B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541682A (zh) * | 2010-12-31 | 2012-07-04 | 上海讯垒网络科技有限公司 | 嵌入式系统中程序异常快速自行恢复方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4484074B2 (ja) * | 2002-12-27 | 2010-06-16 | オムロン株式会社 | プログラマブルコントローラ用ユニット及びメモリ自動復旧方法 |
KR20090100472A (ko) * | 2008-03-20 | 2009-09-24 | 현대로템 주식회사 | Plc의 안전 프로그램 검증 장치 |
-
2013
- 2013-02-06 CN CN201310048288.5A patent/CN103970119B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541682A (zh) * | 2010-12-31 | 2012-07-04 | 上海讯垒网络科技有限公司 | 嵌入式系统中程序异常快速自行恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103970119A (zh) | 2014-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109858019B (zh) | 对话状态跟踪方法及装置、存储介质及语义识别系统 | |
CN102636704B (zh) | 一种电子产品的测试方法、装置及系统 | |
CN107918382A (zh) | 一种汽车故障诊断方法、汽车故障诊断装置及电子设备 | |
US20050223295A1 (en) | Method for the creation of sequences for testing software | |
CN108376221A (zh) | 一种基于aadl模型扩展的软件系统安全性验证与评估方法 | |
CN102801552A (zh) | 基于网络建模的用于错误隔离和错误减轻的系统和方法 | |
CN107870948A (zh) | 任务调度方法和装置 | |
CN105373476A (zh) | 汽车控制器中自动测试用例的生成方法和系统 | |
CN109462699A (zh) | 移动终端的Doze模式的控制方法 | |
CN106815100A (zh) | 接口测试方法及装置 | |
CN106951321A (zh) | 虚拟机cpu资源的管理方法及装置 | |
CN106933696A (zh) | Ecc功能验证方法 | |
CN102828383A (zh) | 洗衣机及其控制方法和执行洗涤程序的洗净判断方法 | |
CN109726068A (zh) | 一种数据检测方法及装置 | |
CN109522296B (zh) | 一种发动机ecu数据匹配标定方法及装置 | |
CN103970119B (zh) | 可编程逻辑控制器的错误处理方法 | |
CN110347976A (zh) | 快速导出设备数据模型的方法、系统、装置和存储介质 | |
US8661293B2 (en) | Test architecture based on intelligent test sequence | |
CN109697117A (zh) | 终端控制方法、装置以及计算机可读存储介质 | |
CN106681837A (zh) | 基于数据表的数据淘汰方法及装置 | |
CN105204818A (zh) | 用于管理机动车辆的故障消息的方法 | |
US11494654B2 (en) | Method for machine failure prediction using memory depth values | |
SE536092C2 (sv) | Fjärrdiagnostisering av fordon | |
CN106104494B (zh) | 电子控制装置 | |
CN104764455B (zh) | 一种导航电子地图数据处理方法及装置 |
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 |