首页> 中国专利> 可编程控制器、可编程控制器系统及执行错误信息生成方法

可编程控制器、可编程控制器系统及执行错误信息生成方法

摘要

控制程序执行部(104)在存在被调用控制程序的调用的情况下,将返回目的地址存储在栈(102)中,并且将针对被调用控制程序的输入数据存储在数据存储部(103)中,执行错误信息管理部(107)在发生执行错误时,取得执行错误信息,该执行错误信息包含在所述栈(102)中存储的所述返回目的地址、在所述数据存储部(103)中存储的所述输入数据、以及使用映射信息得到的与所述返回目的地址对应的程序名称,所述映射信息表示用户程序存储部(101)中的控制程序和所述被调用控制程序的储存位置。

著录项

  • 公开/公告号CN105009006A

    专利类型发明专利

  • 公开/公告日2015-10-28

    原文格式PDF

  • 申请/专利权人 三菱电机株式会社;

    申请/专利号CN201380074151.5

  • 发明设计人 中川哲志;

    申请日2013-03-06

  • 分类号G05B19/05(20060101);G06F11/32(20060101);

  • 代理机构11112 北京天昊联合知识产权代理有限公司;

  • 代理人何立波;张天舒

  • 地址 日本东京

  • 入库时间 2023-12-18 11:42:56

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-05

    授权

    授权

  • 2015-11-25

    实质审查的生效 IPC(主分类):G05B19/05 申请日:20130306

    实质审查的生效

  • 2015-10-28

    公开

    公开

说明书

技术领域

本发明涉及一种可编程控制器、可编程控制器系统及执行错误 信息生成方法。

背景技术

如已知所示,很多可编程控制器具有在控制程序中发生了执行 错误的情况下向用户提供执行错误的信息的功能。由此,用户能够基 于该信息,对执行错误的原因进行解析。

例如,专利文献1中提出了下述方法,即,CPU(Central  Processing Unit)单元生成子程序的返回目的地址而作为执行错误的 信息。在该方法中,在子程序的执行时,通过执行定序命令(sequence  command),从而在栈区域中存储子程序的返回目的地址,该定序命 令用于指示子程序的返回目的地址的存储。并且,在子程序中检测出 执行异常的情况下,参照栈区域中存储的子程序的返回目的地址。

另外,专利文献2中提出了向用户提供执行错误的信息的方法。 在该方法中,在构成用户程序的功能块中检测出异常的情况下,在可 编程控制器的存储器中,保存状态异常的标识符、以及确定异常内容 的状态代码。并且,通过从外部对可编程控制器的存储器进行访问, 从而能够确定状态异常的有无、产生异常的功能块及其异常原因。

专利文献1:日本特开平4-215106号公报

专利文献2:日本特开2007-304939号公报

发明内容

近年来,控制程序具有大规模化的倾向,正在推进控制程序的 部件化。通常进行了部件化的控制程序(下面称为部件化控制程序) 是针对每个功能而生成的、基于被提供的输入数据实现目标功能的控 制程序。因此,部件化控制程序由多个控制程序进行调用,并且输入 数据不定。

但是,在发生了上述这种从控制程序调用的被调用控制程序的 执行错误的情况下,在上述专利文献1、2所公开的方法中,难以对 执行错误的原因进行解析。

具体地说,在专利文献1公开的方法中,在部件化控制程序中 发生了执行错误的情况下,没有存储针对部件化控制程序的输入数 据。另外,在专利文献2公开的方法中,在部件化控制程序中发生了 执行错误的情况下,没有调用源的控制程序名称和调用时的输入数据 的显示。因此,对于从多个控制程序进行调用,并且输入数据不定的 部件化控制程序,存在难以进行原因的解析的问题。另外,在专利文 献1公开的方法中,对作为调用源的控制程序进行识别的信息是指向 控制程序的返回目的地址,因此还存在难以立即识别作为调用源的控 制程序的问题。

本发明就是鉴于上述情况而提出的,其目的在于得到一种可编 程控制器、可编程控制器系统及执行错误信息生成方法,在部件化控 制程序中的执行错误时,用户能够准确并且高效地掌握执行错误的原 因。

为了实现上述目的,本发明所涉及的可编程控制器按照控制程 序进行处理,其特征在于,具备:控制程序存储单元,其存储控制程 序、以及由所述控制程序调用的被调用控制程序;控制程序执行单元, 其按照所述控制程序存储单元中的所述控制程序执行处理;返回目的 地址存储单元,其存储由所述控制程序执行单元执行所述被调用控制 程序后所要返回的返回目的地址;输入数据存储单元,其存储针对所 述被调用控制程序的输入数据;映射信息存储单元,其存储映射信息, 该映射信息将所述控制程序存储单元中的所述控制程序和所述被调 用控制程序的储存位置,与所述控制程序和所述被调用控制程序的程 序名称相关联;以及执行错误信息管理单元,其在发生了由所述控制 程序执行单元执行的所述被调用控制程序的执行错误的情况下,取得 执行错误信息,所述控制程序执行单元在所述控制程序的执行过程中 存在所述被调用控制程序的调用的情况下,将所述被调用控制程序的 执行结束后所要返回的返回目的地址存储在所述返回目的地址存储 单元中,并且将针对所述被调用控制程序的输入数据存储在所述输入 数据存储单元中,所述执行错误信息管理单元在发生了所述被调用控 制程序的执行错误的情况下,取得所述执行错误信息,该执行错误信 息包含:在所述返回目的地址存储单元中存储的所述返回目的地址、 在所述输入数据存储单元中存储的所述输入数据、以及使用所述映射 信息得到的与所述返回目的地址对应的程序名称。

发明的效果

根据本发明,在进行被调用控制程序的调用时,存储被调用控 制程序的执行后的返回目的地址和输入数据,在被调用控制程序中的 执行错误时,能够根据返回目的地址确定调用源控制程序,由可编程 控制器取得包含调用源控制程序名称、所存储的返回目的地址以及输 入数据在内的执行错误的信息,向用户提供该信息,因而具有如下效 果,即,用户能够确定产生了执行错误时的调用源控制程序和输入数 据,能够容易地进行执行错误的原因解析,能够减少由部件化控制程 序实现的系统的开发及维护工作量。

附图说明

图1是示意性地表示实施方式所涉及的可编程控制器系统的结 构的框图。

图2是表示栈中储存的数据的一个例子的图。

图3是表示数据存储部中储存的数据的一个例子的图。

图4是表示映射信息的结构的一个例子的图。

图5是表示执行错误信息显示画面的一个例子的图。

图6是表示可编程控制器中的用户程序执行时的状态的概况的 图。

图7是示意性地表示图6中的处理时的栈、数据存储部、以及 执行错误信息的情形的图。

具体实施方式

下面,参照附图,详细地说明本发明所涉及的可编程控制器、 可编程控制器系统及执行错误信息生成方法的优选的实施方式。此 外,本发明并不由本实施方式限定。

图1是示意性地表示实施方式所涉及的可编程控制器系统的结 构的框图。可编程控制器系统具有将CPU单元100和编程工具200 经由通信线路进行连接而得到的结构,其中,CPU单元100构成可 编程控制器,执行用户程序,编程工具200进行由可编程控制器执行 的用户程序的编程,或者进行用户程序的调试。

CPU单元100具备:作为控制程序存储单元的用户程序存储部 101、作为返回目的地址存储单元的栈102、作为输入数据存储单元 的数据存储部103、作为控制程序执行单元的控制程序执行部104、 作为映射信息存储单元的映射信息存储部105、作为备份数据存储单 元的备份数据存储部106、作为执行错误信息管理单元的执行错误信 息管理部107、以及作为通信单元的通信部108。

用户程序存储部101存储由CPU单元100执行的梯形图程序等 用户程序。在本实施方式中,将成为按照来自用户的指示而执行的主 程序的程序称为控制程序,将成为由控制程序调用并执行的子程序的 程序称为部件化控制程序。部件化控制程序相当于被调用控制程序。 此外,下面以下述情况为例进行说明,即,用户程序存储部101中储 存有名称为“MAIN1”的控制程序121、名称为“MAIN2”的控制程 序122、名称为“MAIN3”的控制程序123、以及名称为“FUNC” 的部件化控制程序131。另外,假设3个控制程序121~123分别构 成为对部件化控制程序131进行调用。

在由控制程序对部件化控制程序进行调用时,栈102存储返回 目的地址,该返回目的地址表示在所调用的部件化控制程序的执行完 成时所要返回的控制程序的位置。图2是表示栈中储存的数据的一个 例子的图。如该图所示,栈102中储存控制程序对部件化控制程序进 行了调用时的返回目的地址。栈102中能够储存的返回目的地址的数 量预先由系统设计者进行设定。如果作为调用对象的部件化控制程序 的执行结束,作为调用源的控制程序的执行重新开始,即如果读入了 返回目的地址,则将所存储的返回目的地址删除。

数据存储部103存储针对作为调用对象的部件化控制程序的输 入数据。图3是表示数据存储部中储存的数据的一个例子的图。如该 图所示,数据存储部103中储存控制程序对部件化控制程序进行了调 用时针对部件化控制程序的输入数据。数据存储部103中存储的数据 在任意的时机进行初始化。例如,在作为调用对象的部件化控制程序 的执行结束,作为调用源的控制程序的执行重新开始时,将所存储的 输入数据删除。

控制程序执行部104进行用户程序存储部101中的用户程序的 执行和调用。在控制程序中存在调用的情况下,在控制程序调用时, 将返回目的地址存储在栈102中,并且从作为调用源的控制程序中取 得针对作为调用对象的部件化控制程序的输入数据,并将该输入数据 存储在数据存储部103中。

映射信息存储部105存储映射信息,该映射信息将用户程序存 储部101中的各用户程序的存储位置(地址)与各用户程序名相关联。 图4是表示映射信息的结构的一个例子的图。如该图所示,映射信息 包含:用户程序存储部101中储存的用户程序(控制程序和部件化控 制程序)的名称、以及作为该用户程序在用户程序存储部101中的储 存位置的起始地址及末尾地址。

执行错误信息管理部107在发生了作为调用对象的部件化控制 程序中的执行错误时,取得栈102中存储的返回目的地址。另外,使 用映射信息存储部105的映射信息,根据栈102中存储的返回目的地 址,取得对应的调用源的控制程序名。此外,从数据存储部103取得 针对作为调用对象的控制程序的输入数据。并且,将执行错误信息存 储在备份数据存储部106中,该执行错误信息包含所取得的调用源的 控制程序名称、调用位置地址(返回目的地址)、以及输入数据。

此外,执行错误信息管理部107除了取得执行错误信息以外, 还取得错误详细信息,该错误详细信息包含发生了执行错误时正在执 行的部件化控制程序的名称、部件化控制程序中的错误发生地址、以 及表示错误的内容的错误代码等。

备份数据存储部106存储由执行错误信息管理部107取得的执 行错误信息,该执行错误信息包含调用源的控制程序名称、调用位置 地址(返回目的地址)、以及输入数据。另外,除此以外,还可以存 储错误详细信息。通信部108与编程工具200之间进行通信。如果从 编程工具200接受到执行数据的取得请求,则向编程工具200发送由 执行错误信息管理部107取得的执行错误信息。

编程工具200具备:用户程序生成部201、用户程序存储部202、 作为通信单元的通信部203、以及作为执行错误信息显示处理单元的 执行错误信息显示处理部204。

用户程序生成部201按照来自用户的输入,进行用户程序(控 制程序、部件化控制程序)的生成,或者向用户进行用户程序的显示。 用户程序存储部202存储由用户生成的用户程序。按照用户的指示, 将用户程序存储部202中存储的用户程序经由通信部203存储在 CPU单元100的用户程序存储部101中。通信部203进行与可编程 控制器(CPU单元100)的通信。

执行错误信息显示处理部204显示经由通信部203从CPU单元 100取得的发生执行错误时的执行错误信息。此时,也可以从CPU 单元100取得错误详细信息,与错误信息一起进行显示。图5是表示 执行错误信息显示画面的一个例子的图。如该图所示,在执行错误信 息显示画面300中,具有显示错误详细信息的错误详细信息显示区域 310、以及显示执行错误信息的执行错误信息显示区域320。错误详 细信息包含:对所发生的错误的种类进行确定的错误代码、所发生的 错误的内容、作为错误发生的地址的错误发生地址、以及对发生错误 的控制程序进行确定的控制程序名称。执行错误信息是在执行错误时 调用部件化控制程序的条件,是在CPU单元100的备份数据存储部 106中存储的信息。具体地说,包含:发生了执行错误的控制程序的 名称、调用地址、以及输入数据。

另外,编程工具200除了上述部件以外,还具备:液晶显示装 置等输出装置211,其对由用户程序生成部201和执行错误信息显示 处理部204生成的画面进行显示;以及键盘或指点设备等输入装置 212,其向用户程序生成部201和执行错误信息显示处理部204进行 所需信息的输入。

上述这种编程工具200能够由具有CPU、ROM(Read Only  Memory)、RAM(Random Access Memory)、2级存储装部、通信 部、显示部、以及输入部的个人计算机等信息处理终端构成。

下面,说明这种结构的可编程控制器系统中的发生执行错误时 的处理。图6是表示可编程控制器中的用户程序执行时的状态的概况 的图。另外,图7是示意性地表示图6中的处理时的栈、数据存储部、 以及执行错误信息的情形的图。

如图6所示,在可编程控制器(CPU单元100)中,控制程序 执行部104执行控制程序(MAIN1)121。在控制程序121中的地址 “1100”处,存在对部件化控制程序(FUNC)131进行调用的命令。 控制程序执行部104如果读入了该命令,则取得执行该命令时的输入 数据“10”,以输入数据“10”对部件化控制程序131进行调用(图 6的步骤S11)。此时,控制程序执行部104在控制程序121调用部 件化控制程序131时,将返回目的地址“1100”存储在栈102中,将 针对部件化控制程序131的输入数据“10”存储在数据存储部103 中(图7的步骤S11)。

控制程序执行部104利用输入数据“10”,执行由控制程序121 调用的部件化控制程序131。在此,假设部件化控制程序131正常地 结束。如果部件化控制程序131的执行结束,则控制程序执行部104 取得在栈102中存储的返回目的地址“1100”,返回至作为调用源的 控制程序121的地址“1100”(图6的步骤S12)。如果控制程序执 行部104取得栈102的返回目的地址,则从栈102中删除对应的返回 目的地址,另外还删除数据存储部103中的对应的输入数据(图7 的步骤S12)。然后,控制程序执行部104读入返回目的地址“1100” 之后的下一个命令,执行控制程序121的后续的命令。

控制程序执行部104在执行了控制程序121之后,执行控制程 序(MAIN2)122。在控制程序122中的地址“2340”处,存在对部 件化控制程序(FUNC)131进行调用的命令。如果控制程序执行部 104读入该命令,则取得执行该命令时的输入数据“99”,以输入数 据“99”对部件化控制程序131进行调用(图6的步骤S13)。此时, 控制程序执行部104在控制程序122调用部件化控制程序131时,将 返回目的地址“2340”存储在栈102中,将针对部件化控制程序131 的输入数据“99”存储在数据存储部103中(图7的步骤S13)。

控制程序执行部104利用输入数据“99”,执行由控制程序122 调用的部件化控制程序131。在此,假设在部件化控制程序131的执 行时发生了执行错误(图6的步骤S14)。如果发生了部件化控制程 序131的执行错误,则CPU单元100的执行错误信息管理部107取 得发生执行错误时在栈102和数据存储部103中存储的内容。在此, 取得的是栈102中的返回目的地址“2340”,并且从数据存储部103 中的与控制程序122的输入数据储存位置相对应的地址处,取得输入 数据“99”(图7的步骤S15)。

另外,执行错误信息管理部107根据所取得的返回目的地址, 基于映射信息存储部105中的映射信息,取得发生执行错误时的调用 源控制程序的名称(图7的步骤S16)。在此,根据图4的映射信息 可知,包含返回目的地址“2340”的用户程序是“MAIN2”。此时, 执行错误信息管理部107还取得错误详细信息,该错误详细信息包 含:发生了执行错误的控制程序的名称、该控制程序内的错误发生地 址、错误代码、以及错误内容。

此外,执行错误信息管理部107将执行错误信息存储在备份数 据存储部106中,该执行错误信息包含所取得的控制程序名称、返回 目的地址(调用位置地址)、以及输入数据。此时,执行错误信息管 理部107还将错误详细信息与执行错误信息一起存储在备份数据存 储部106中。

随后,如果利用编程工具200,按照来自用户的操作进行执行错 误信息的取得请求,则执行错误信息显示处理部204经由通信部203 向CPU单元100的执行错误信息管理部107发送执行错误信息取得 请求。

如果CPU单元100的执行错误信息管理部107接受到执行错误 信息取得请求,则经由通信部108向编程工具200的执行错误信息显 示处理部204发送执行错误信息和错误详细信息,该执行错误信息包 含利用上述处理取得的部件化控制程序131中的执行错误时的调用 源的控制程序名称、返回目的地址(调用位置地址)、以及调用时的 输入数据,该错误详细信息包含发生了执行错误的控制程序的名称、 该控制程序内的错误发生地址、错误代码、以及错误内容。

如果编程工具200的执行错误信息显示处理部204接收到执行 错误信息和错误详细信息,则将取得的执行错误信息和错误详细信息 显示在输出装置211上。向输出装置211的显示方法是任意的,例如 能够以图5所示的形式进行显示。由此,执行错误生成处理及其显示 处理结束。

如上述所示,即使是由多个控制程序进行调用,并且输入数据 不定的部件化控制程序,在部件化控制程序中的执行错误时,通过作 为执行错误信息在输出装置211上显示调用源控制程序名称、返回目 的地址(调用位置地址)、以及调用时的输入数据,用户也能够容易 地进行执行错误的原因解析。其结果,能够减少由部件化控制程序实 现的系统的开发及维护工作量。

此外,在上述实施方式中,接收到执行错误信息取得请求的执 行错误信息管理部107发送出了在发生执行错误时所取得的执行错 误信息,但并不限定于此。例如,也可以不发送在发生执行错误时所 取得的执行错误信息,而是发送在备份数据存储部106中存储的过去 的执行错误信息。另外,也可以在执行错误被消除后显示执行错误信 息。

另外,在上述实施方式中,编程工具200向CPU单元100的执 行错误信息管理部107发送了执行错误信息取得请求,但并不限定于 此。例如,也可以取代编程工具200,而是能够与CPU单元100进 行通信、发送执行错误信息取得请求并显示其结果的设备。

在本实施方式中,在部件化控制程序的执行时,存储返回目的 地址和向部件化控制程序的输入数据,在部件化控制程序的执行错误 时,使用对用户程序存储部101内的控制程序的储存位置进行管理的 映射信息,根据返回目的地址,取得调用源的控制程序名称,取得包 含控制程序名称、输入数据、以及返回目的地址在内的执行错误信息。 由此,具有能够将部件化控制程序的发生执行错误时的状况向用户迅 速地提供的效果。

另外,利用编程工具200取得执行错误信息并向用户进行显示, 因而即使是由多个控制程序进行调用,并且输入数据不定的部件化控 制程序,也能够通过所显示的执行错误信息,确定作为调用源的控制 程序和输入数据,用户能够容易地进行执行错误的原因解析。其结果, 具有能够减少由部件化控制程序实现的系统的开发及维护工作量的 效果。

工业实用性

如上述所示,本发明所涉及的可编程控制器系统适合使用了由 多个控制程序调用的部件化控制程序而构成的系统的开发以及维护。

标号说明

100CPU单元,101、202用户程序存储部,102栈,103数据 存储部,104控制程序执行部,105映射信息存储部,106备份数 据存储部,107执行错误信息管理部,108、203通信部,121~123 控制程序,131部件化控制程序,200编程工具,201用户程序生 成部,204执行错误信息显示处理部,211输出装置,212输入装 置,300执行错误信息显示画面,310错误详细信息显示区域,320 执行错误信息显示区域。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号