首页> 中国专利> 控制器辅助装置、用于在该装置中执行的控制器辅助程序以及存储有该程序的记录介质

控制器辅助装置、用于在该装置中执行的控制器辅助程序以及存储有该程序的记录介质

摘要

提供控制器辅助装置、用于在该装置中执行的控制器辅助程序以及存储有该程序的记录介质。控制器辅助程序用于使计算部执行如下处理:总计执行时间取得处理,取得总计执行时间,该总计执行时间是指,在控制器按照执行优先级和执行循环来执行控制程序时,从执行循环开始到在该执行循环中控制程序执行结束为止的期间内经过的时间,并且是在控制器中测定出的时间或在控制器辅助装置中推断出的时间;输出处理,用于输出总计执行时间。

著录项

  • 公开/公告号CN103477290A

    专利类型发明专利

  • 公开/公告日2013-12-25

    原文格式PDF

  • 申请/专利权人 欧姆龙株式会社;

    申请/专利号CN201180069923.7

  • 发明设计人 成谷文明;大谷拓;柴田义也;

    申请日2011-03-22

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

  • 代理机构72003 隆天国际知识产权代理有限公司;

  • 代理人金相允;浦柏明

  • 地址 日本京都府京都市

  • 入库时间 2024-02-19 22:44:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-06-29

    授权

    授权

  • 2014-01-22

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

    实质审查的生效

  • 2013-12-25

    公开

    公开

说明书

技术领域

本发明涉及控制器辅助装置(控制器支援装置)中的控制程序的执行时 间信息的提示(出示,示出),该控制器辅助装置用于对为了控制机械、设 备等的动作而使用的PLC(Programmable Logic Controller。也称为可编程(逻 辑)控制器)等的控制器的使用进行辅助支援。

背景技术

就为了对机械、设备等的动作进行控制而使用的控制器而言,有通用的 PLC、单独由机械等专用的程序控制的控制器。

PLC,例如由以下多个单元构成,这些单元包括:CPU(Central Processing  Unit:中央处理器)单元,其包括用于执行控制程序的微处理器;IO(Input  Output:输输入输出)单元,其负责从外部的开关、传感器输入信号以及向 外部的继电器、促动器输出信号。在这些单元间,针对每个控制程序执行循 环(cycle:周期),一边经由PLC系统总线及/或现场网络(field network) 来进行数据的收发,一边由PLC执行控制动作。

控制器辅助装置用于,生成用于使控制器执行的控制程序、针对控制器 的各种设定信息,将它们传送至控制器。控制器辅助装置,例如,通过向通 用的计算机安装控制器辅助程序而构成。控制器辅助装置例如具有如下功能 等:编辑功能,用于生成控制程序的源程序(列表);编译功能,根据控制 程序的源程序来生成用控制器进行动作的对象程序;控制器的模拟功能,用 于在控制器辅助装置中测试执行控制程序;与控制器之间的通信功能。

在控制程序的开发阶段,需要知晓控制器执行该控制程序所需的执行时 间。在决定该控制程序的执行循环的周期时,参照该控制程序的执行时间。

在日本特开2001-209411号公报(专利文献1)中,公开了在PLC辅助 装置中求出由PLC执行控制程序的情况下的执行时间的方法。具体而言,准 备控制程序所使用的各指令在PLC中的实际处理时间数据,在模拟器中的程 序模拟执行处理中,针对每个指令的处理,参照实际处理时间数据,累加与 该指令对应的实际处理时间。另外,公开了这样的方法:在整个控制程序被 分割为多个任务(task)而构成的情况下,针对每个任务求除执行所需时间。

现有技术文献

专利文献

专利文献1:日本特开2001-209411号公报。

发明内容

发明要解决的问题

在专利文献1中,假设存在整个控制程序被分割为多个任务而构成的情 况。在该情况下,总是一连串地执行全部的任务,因此,执行循环(cycle) 对于全部的任务来说是共用的。因此,作为实际处理时间的累加值,只要求 出针对全部任务的总合的时间即可。

然而,作为控制器中的多个控制程序的执行方式,有针对多个控制程序 决定互不相同的执行优先级和执行循环周期而执行的方式。执行循环被设定 为控制循环的整数倍,该控制循环是控制器的动作时间的基本单位。针对每 个控制循环(周期),按照执行优先级和执行循环来执行多个控制程序。即, 各控制程序在开始自身的新执行循环时就进入等待执行状态。在一个控制循 环中,从较高执行优先级的控制程序开始先执行,如果较高执行优先级的控 制程序执行结束,则执行较低执行优先级的控制程序。如果在控制程序的执 行过程中控制循环结束,则该控制程序的执行被中断,在下个控制循环中, 再次从较高的执行优先级的控制程序开始先执行。就在前一个控制循环中执 行被中断的控制程序而言,在较高执行优先级的控制程序执行结束后,如果 该控制程序的变得能够执行,则从未执行的部分开始恢复执行。

即,较低执行优先级的控制程序,有时会夹着(隔着)执行过程中断期 间而被断断续续的执行。在这种情况下,针对较低执行优先级的控制程序, 如果仅提示(出示,示出)实际处理时间的累加值,则无法知晓为了执行该 控制程序而需要多长的执行循环周期。

本发明的目的在于,在控制器按照这些执行优先级与执行循环来执行多 个控制程序的情况下,在用于对控制器的使用进行辅助的控制器辅助装置 中,即使是针对较低执行优先级的控制程序,也能够输出能够与执行循环周 期进行比较的执行时间的信息。

用于解决问题的手段

根据本发明的一个方面,提供一种控制器辅助装置,用于辅助使用控制 器,该控制器用于对控制对象进行控制。控制器,能够针对每个控制循环执 行多个控制程序,并且是按照针对每个控制程序分别设定的执行优先级与控 制循环的整数倍的执行循环,来执行多个控制程序。控制器辅助装置具有存 储部和计算部。存储部用于存储控制器辅助程序和控制程序。控制器辅助程 序用于使计算部执行如下处理:总计执行时间取得处理,取得总计执行时间, 该总计执行时间是指,在控制器按照执行优先级和执行循环来执行控制程序 时,从执行循环开始到在该执行循环中控制程序执行结束为止的期间内经过 的时间,并且是在控制器中测定出的时间或在控制器辅助装置中推断出的时 间;输出处理,用于输出总计执行时间。

优先地,控制器辅助程序进而使计算部执行净时间取得处理,在该净执 行时间取得处理中取得净执行时间,该净执行时间是,控制器在其执行循环 内实际执行控制程序的时间,并且是在控制器中测定出的时间或在控制器辅 助装置中推断出的时间。在总计执行时间取得处理中,将第一净执行时间与 第二净执行时间相加,该第一净执行时间是指,作为取得总计执行时间的对 象的控制程序的净执行时间,该第二净执行时间是指该控制程序的优先程序 的净执行时间,优先程序是指,在从该控制程序的执行循环的开始到在该执 行循环中该控制程序执行结束为止的期间内执行的、比该控制程序的执行优 先级高的控制程序。

更优先地,在净执行时间取得处理中,取得在控制器的模拟器中测定出 的根据控制程序的执行时间计算出的推断执行时间,来作为净执行时间。

或更优先地,控制器,针对每个控制循环或每个控制程序的执行循环, 执行输入输出处理。控制器辅助程序还使计算部执行输入输出时间取得处 理,在该输入输出时间取得处理中取得输入输出时间,该输入输出时间是控 制器执行输入输出处理所需的时间,并且是在控制器中测定出的时间或在控 制器辅助装置中推断出的时间。在总计执行时间取得处理中,将第一净执行 时间、第二净执行时间以及第三净执行时间相加,第三净执行时间是指,从 该控制程序的执行循环开始到在该执行循环中该控制程序执行结束为止的 期间内执行的输入输出处理的输入输出时间。

更优先地,在净执行时间取得处理中,取得在控制器的模拟器中测定出 的根据控制程序的执行时间计算出的推断执行时间,来作为净执行时间。

优先地,在输出处理中输出显示数据,该显示数据用于以图表的方式显 示总计执行时间,该图表能够将总计执行时间与作为取得总计执行时间的对 象的控制程序的执行循环的周期相对比。

优先地,在输出处理中输出显示数据,该显示数据用于显示总计执行时 间与总计执行时间所含的净执行时间。

根据本发明的另一方面,提供一种控制器辅助程序,在控制器辅助装置 中执行,该控制器辅助装置用于辅助使用控制器,该控制器用于对控制对象 进行控制。控制器,能够针对每个控制循环执行多个控制程序,并且是按照 针对每个控制程序分别设定的执行优先级与控制循环的整数倍的执行循环, 来执行多个控制程序。控制器辅助装置具有存储部和计算部。存储部用于存 储控制器辅助程序和控制程序。控制器辅助程序用于使计算部执行如下处 理:总计执行时间取得处理,取得总计执行时间,该总计执行时间是指,在 控制器按照执行优先级和执行循环来执行控制程序时,从执行循环开始到在 该执行循环中控制程序执行结束为止的期间内经过的时间,并且是在控制器 中测定出的时间或在控制器辅助程序中推断出的时间;输出处理,用于输出 总计执行时间。

优先地,控制器辅助程序进而使计算部执行净时间取得处理,在该净执 行时间取得处理中取得净执行时间,该净执行时间是,控制器在其执行循环 内实际执行控制程序的时间,并且是在控制器中测定出的时间或在控制器辅 助程序中推断出的时间。在总计执行时间取得处理中,将第一净执行时间与 第二净执行时间相加,该第一净执行时间是指,作为取得总计执行时间的对 象的控制程序的净执行时间,该第二净执行时间是指该控制程序的优先程序 的净执行时间,优先程序是指,在从该控制程序的执行循环的开始到在该执 行循环中该控制程序执行结束为止的期间内执行的、比该控制程序的执行优 先级高的控制程序。

更优先地,在净执行时间取得处理中,取得在控制器的模拟器中测定出 的根据控制程序的执行时间计算出的推断执行时间,来作为净执行时间。

或更优先地,控制器,针对每个控制循环或每个控制程序的执行循环, 执行输入输出处理。控制器辅助程序还使计算部执行输入输出时间取得处 理,在该输入输出时间取得处理中取得输入输出时间,该输入输出时间是控 制器执行输入输出处理所需的时间,并且是在控制器中测定出的时间或在控 制器辅助程序中推断出的时间。在总计执行时间取得处理中,将第一净执行 时间、第二净执行时间以及第三净执行时间相加,第三净执行时间是指,从 该控制程序的执行循环开始到在该执行循环中该控制程序执行结束为止的 期间内执行的输入输出处理的输入输出时间。

更优先地,在净执行时间取得处理中,取得在控制器的模拟器中测定出 的根据控制程序的执行时间计算出的推断执行时间,来作为净执行时间。

优先地,在输出处理中输出显示数据,该显示数据用于以图表的方式显 示总计执行时间,该图表能够将总计执行时间与作为取得总计执行时间的对 象的控制程序的执行循环的周期相对比。

优先地,在输出处理中输出显示数据,该显示数据用于显示总计执行时 间与总计执行时间所含的净执行时间。

根据本发明其它方面,提供一种存储有控制器辅助程序的存储介质,该 控制器辅助程序在控制器辅助装置中执行,该控制器辅助装置用于辅助使用 控制器,该控制器用于对控制对象进行控制。所述控制器,能够针对每个控 制循环执行多个控制程序,并且是按照针对每个所述控制程序分别设定的执 行优先级与所述控制循环的整数倍的执行循环,来执行所述多个控制程序。 所述控制器辅助装置具有存储部和计算部。所述存储部用于存储控制器辅助 程序和所述控制程序。所述控制器辅助程序用于使所述计算部执行如下处 理:总计执行时间取得处理,取得总计执行时间,该总计执行时间是指,在 所述控制器按照所述执行优先级和所述执行循环来执行所述控制程序时,从 所述执行循环开始到在该执行循环中所述控制程序执行结束为止的期间内 经过的时间,并且是在所述控制器中测定出的时间或在所述控制器辅助程序 中推断出的时间;输出处理,用于输出所述总计执行时间。

优先地,所述控制器辅助程序进而使所述计算部执行净时间取得处理, 在该净执行时间取得处理中取得净执行时间,该净执行时间是,所述控制器 在其所述执行循环内实际执行所述控制程序的时间,并且是在所述控制器中 测定出的时间或在所述控制器辅助程序中推断出的时间。在所述总计执行时 间取得处理中,将第一净执行时间与第二净执行时间相加,该第一净执行时 间是指,作为取得所述总计执行时间的对象的所述控制程序的所述净执行时 间,该第二净执行时间是指该控制程序的优先程序的所述净执行时间,所述 优先程序是指,在从该控制程序的所述执行循环的开始到在该执行循环中该 控制程序执行结束为止的期间内执行的、比该控制程序的执行优先级高的所 述控制程序。

更优先地,在所述净执行时间取得处理中,取得在所述控制器的模拟 器中测定出的根据所述控制程序的执行时间计算出的推断执行时间,来作为 所述净执行时间。

或更优先地,所述控制器,针对每个所述控制循环或每个所述控制程序 的执行循环,执行输入输出处理。所述控制器辅助程序还使所述计算部执行 输入输出时间取得处理,在该输入输出时间取得处理中取得输入输出时间, 该输入输出时间是所述控制器执行所述输入输出处理所需的时间,并且是在 所述控制器中测定出的时间或在所述控制器辅助程序中推断出的时间。在所 述总计执行时间取得处理中,将所述第一净执行时间、所述第二净执行时间 以及第三净执行时间相加,所述第三净执行时间是指,从该控制程序的所述 执行循环开始到在该执行循环中该控制程序执行结束为止的期间内执行的 所述输入输出处理的所述输入输出时间。

更优先地,在所述净执行时间取得处理中,取得在所述控制器的模拟器 中测定出的根据所述控制程序的执行时间计算出的推断执行时间,来作为所 述净执行时间。

优先地,在所述输出处理中输出显示数据,该显示数据用于以图表的方 式显示所述总计执行时间,该图表能够将所述总计执行时间与作为取得所述 总计执行时间的对象的所述控制程序的所述执行循环的周期相对比。

优先地,在所述输出处理中输出显示数据,该显示数据用于显示所述总 计执行时间与所述总计执行时间所含的所述净执行时间。

发明的効果

通过本发明,在控制器针对多个控制程序,按照它们的执行优先级和执 行循环来执行所述多个控制程序的情况下,在用于辅助使用控制器的控制器 辅助装置中,针对较低执行优先级的控制程序,也能够输出能够与执行循环 周期相比较的执行时间的信息。

附图说明

图1是表示本实施方式涉及的控制器(PLC)辅助装置辅助使用的PLC 系统的概略结构的示意图。

图2是表示本发明的实施方式涉及的控制器(PLC)辅助装置辅助使用 的CPU单元的硬件结构的示意图。

图3是表示本发明的实施方式涉及的控制器(PLC)辅助装置辅助使用 的CPU单元所执行的软件结构的示意图。

图4是表示本发明的实施方式涉及的控制器(PLC)辅助装置辅助使用 的CPU单元中的执行动作的一例的序列(sequence)图。

图5是表示本发明的实施方式涉及的控制器辅助装置的硬件结构的示意 图。

图6是表示本发明的实施方式涉及的控制器辅助装置的软件结构的示意 图。

图7是表示本发明的实施方式涉及的控制器辅助装置所关联的整体处理 的示意图。

图8是表示本发明的实施方式涉及的控制器辅助装置中的到校正式推断 执行时间的计算为止的一系列的处理,与各处理的间的程序以及数据流的示 意图。

图9是表示第一测试执行时间与第二测试执行时间之间的关系的一例的 图。

图10是表示本发明的实施方式涉及的控制器辅助装置所提供的显示画 面的一例的图。

图11是表示从本发明的实施方式涉及的控制器辅助装置输出的推断执 行时间的显示画面的另一例的图。

图12是表示从本发明的实施方式涉及的控制器辅助装置输出的推断执 行时间的显示画面的又另一例的图。

图13是表示本发明的实施方式涉及的服务器计算机所实现的控制器辅 助装置所关联的整体处理的示意图。

具体实施方式

参照附图来详细说明本发明的实施方式。此外,针对图中的同一或相当 部分,标注同一附图标记而不重复该说明。

<A.系统结构>

作为本实施方式涉及的控制器辅助装置辅助使用的控制器的典型例,针 对PLC进行说明。PLC用于对机械、设备等的控制对象进行控制。PLC包 括CPU单元来作为其结构要素。CPU单元包括微处理器、存储单元、通信 电路。存储单元用于存储控制程序以及对程序执行进行控制的系统程序等。 微处理器执行存储在存储单元中的系统程序以及控制程序。通信电路发送输 出数据以及接收输入数据。

首先,参照图1来说明PLC1的系统结构。图1是表示本实施方式涉及 的控制器(PLC)辅助装置辅助使用的PLC系统的概略结构的示意图。

参照图1,PLC系统SYS包括:PLC1;伺服电机驱动器3以及遥控IO 终端5,它们经由现场网络2而与PLC1连接;作为励磁设备(field driver) 的检测开关6以及继电器7。另外,在PLC1上,经由连接电缆10等而连接 有控制器辅助装置8。

PLC1包括:用于执行主要计算处理的CPU单元13、一个以上的IO单 元14、特殊单元15。这些单元,经由PLC系统总线11而能够互相交换数据。 另外,由电源单元12对这些单元供给恰当电压的电源。此外,构成为PLC1 的各单元是由PLC厂商所提供的,因此,PLC系统总线11通常是各个PLC 厂商独自开发使用的。与此相对,就现场网络2而言,其规格等多被公开, 能够连接不同的厂商的产品。

针对CPU单元13的详细结构,参照图2而在后面叙述。

IO单元14,是与通常的输入输出处理相关的单元,用于输入输出高电 平/低电平(ON/OFF)这样的二进制化的数据。即,IO单元14收集这样的 信息:表示是检测开关6等的传感器检测出某个对象物的状态(高电平)还 是哪个对象物也没有检测出的状态(地电平)的这样的信息。另外,IO单元 14针对继电器7、促动器这样的输出目标,输出用于激活的指令(高电平) 或不用于激活的指令(低电平)。

特殊单元15具有模拟数据的输入输出、温度控制、利用特定通信方式 进行通信这样的功能,这些功能是在IO单元14中不进行辅助的功能。

现场网络2传送与CPU单元13交换的各种数据。作为现场网络2,典 型的能够使用各种工业用以太网(注册商标)。作为工业用以太网(注册商 标),例如已知有EtherCAT(注册商标)、Profinet IRT、MECHATROLINK (注册商标)-III、Powerlink、SERCOS(注册商标)-III、CIP Motion等, 可以任意采用这些中的以太网。进而,也可以使用除了工业用以太网(注册 商标)以外的现场网络。例如,只要是在不进行运动控制(motion control) 的情况下,则也可以使用DeviceNet、CompoNet/IP(注册商标)等。

此外,在图1中,例示出具有PLC系统总线11以及现场网络2两者的 PLC系统SYS,但也能够采用仅搭载有PLC系统总线11和现场网络2中的 一个的系统结构。例如,也可以使用现场网络2来连接全部的单元。或者, 也可以不使用现场网络2,而是利用PLC系统总线11直接连接伺服电机驱 动器3。进而,也可以使现场网络2的通信单元与PLC系统总线11连接, 从CPU单元13经由该通信单元来在与现场网络2连接的设备之间进行通信。

此外,就PLC1而言,也可以通过使CPU单元13具有IO单元14的功 能、伺服电机驱动器3的功能,由此,能够不经由IO单元14或伺服电机驱 动器3等,而由CPU单元13直接对控制对象进行控制。

伺服电机驱动器3,经由现场网络2而与CPU单元13连接,并且,根 据来自CPU单元13的指令值来驱动伺服电机4。更具体而言,伺服电机驱 动器3在一定(规定)周期内从PLC1接收位置指令值、速度指令值、扭矩 指令值这样的指令值。另外,伺服电机驱动器3,从与伺服电机4的轴连接 的位置传感器(旋转编码器)和/或扭矩传感器这样的检测器,获取位置、速 度(典型的,根据本次位置与前次位置的差来计算)、扭矩这样的与伺服电 机4的动作相关的实测值。并且,伺服电机驱动器3将来自CPU单元13的 指令值设定为目标值,将实测值作为反馈值,进行反馈控制。即,伺服电机 驱动器3调整用于驱动伺服电机4电流,以使实测值接近目标值。此外,伺 服电机驱动器3有时也称为伺服电机放大器。

另外,在图1中,虽然示出了伺服电机4与伺服电机驱动器3相组合的 系统例,但也可以采用其它结构,例如,能够采用组合了脉冲电机与脉冲电 机驱动器的系统。

在图1所示的PLC系统SYS的现场网络2上,还连接有遥控IO终端5。 遥控IO终端5基本上与IO单元14同样地进行与通常的输入输出处理相关 的处理。更具体而言,遥控IO终端5包括通信耦合器52与一个以上的IO 单元53,该通信耦合器52用于执行在现场网络2进行数据传送所涉及的处 理。这些单元能够经由遥控IO终端总线51来相互交换数据。

本发明的实施方式涉及的控制器辅助装置8在后面叙述。

<B.CPU单元的硬件结构>

接着,参照图2,来说明CPU单元13的硬件结构。图2是表示本发明 的实施方式涉及的控制器(PLC)辅助装置辅助使用的CPU单元13的硬件 结构的示意图。参照图2,CPU单元13包括微处理器100、芯片集(chipset) 102、主存储器104、非易失性存储器106、系统计时器108、PLC系统总线 控制器120、现场网络控制器140、USB(Universal Serial Bus:通用串行总 线)连接器110。在芯片集102与其它模块(component)之间,经由各种总 线而分别进行结合。

微处理器100以及芯片集102,典型的以通用的计算机体系架构 (architecture)为准而构成。即,微处理器100解释并执行从芯片集102按 照内部时钟而依次供给来的指令代码。芯片集102,在所连接的各种模块之 间进行的内部数据的交换,并且,生成微处理器100所需的指令代码。进而, 芯片集102对根据微处理器100执行计算处理的结果而得的数据等进行缓存 (cache)的功能。

CPU单元13具有主存储器104以及非易失性存储器106来作为存储单 元。

主存储器104是易失性的存储区域(RAM),在对CPU单元13投入电 源后,保存(保持)应该由微处理器100执行的各种程序。另外,主存储器 104能够用作微处理器100执行各种程序时的工作存储器。作为这种主存储 器104,能够使用DRAM(Dynamic Random Access Memory:动态随机存取 存储器)、SRAM(Static Random Access Memory:静态随机存取存储器) 这样的设备。

另一方面,非易失性存储器106非易失地保持存实时OS(Operating  System:操作系统)、PLC1的系统程序、用户程序、运动计算程序、系统 设定参数这样的数据。这些程序、数据,根据需要而被复制进主存储器104, 以供微处理器100能够访问存取。作为这种非易失性存储器106,能够使用 闪速存储器那样的半导体存储器。或者,也能够使用硬盘驱动器那样的磁记 录介质、DVD-RAM(Digital Versatile Disk Random Access Memory:数字通 用光盘随机存取存储器)那样的光学记录介质等。

系统计时器108按照每个规定周期来产生中断信号,并将其提供至微处 理器100。典型的,能够设定成根据硬件的规格,以多个不同的周期来分别 产生中断信号,但也能够设定成根据OS(Operating System:操作系统)、 BIOS(Basic Input Output System:基本输入输出系统)等而以任意周期来产 生中断信号。利用该系统计时器108所产生的中断信号,来实现后述那样的 每个控制循环的控制动作。

CPU单元13具有PLC系统总线控制器120以及现场网络控制器140来 作为通信电路。这些通信电路发送输出数据以及接收输入数据。

此外,在CPU单元13自身具有IO单元14和/或伺服电机驱动器3的功 能的情况下,在CPU单元13的内部进行本应由通信电路进行的输出数据发 送以及输入数据接收,并且将具有这些功能的部分作为通信的对方。

PLC系统总线控制器120,控制经由PLC系统总线11进行的数据交换。 更具体而言,PLC系统总线控制器120包括DMA(Dynamic Memory Access: 动态存储存取)控制电路122、PLC系统总线控制电路124、缓存器126。此 外,PLC系统总线控制器120经由PLC系统总线连接器130而与PLC系统 总线11进行内部连接。

缓存器126作为发送缓存器和接收缓存器来发挥功能,该发送缓存器是 经由PLC系统总线11向其它单元输出的数据(以下也称为“输出数据”) 的发送缓存器,该输入缓存器是经由PLC系统总线11从其它单元输入的数 据(以下也称为“输入数据”)的接收缓存器。此外,微处理器100通过计 算处理而生成的输出数据,被原样保存在主存储器104中。并且,应该向特 定单元传送的输出数据,被从主存储器104中读出,暂时保存(保持)在缓 存器126中。另外,从其它单元传送来输入数据,被暂时保存在缓存器126 中之后,进而被转移至主存储器104中。

DMA控制电路122进行如下处理:从主存储器104向缓存器126传送 输出数据,从缓存器126向主存储器104传送输入数据。

PLC系统总线控制电路124进行如下处理:在与PLC系统总线11连接 的其它单元之间,进行发送缓存器126的输出数据的处理,以及接收输入数 据并将其保存在缓存器126中的处理。典型的,PLC系统总线控制电路124 提供PLC系统总线11中的物理层以及数据链路层的功能。

现场网络控制器140控制经由现场网络2的数据交换。即,现场网络控 制器140根据所使用的现场网络2的规格,来控制输出数据的发送以及输入 数据的接收。例如,在采用了EtherCAT(注册商标)规格的现场网络2的情 况下,所使用的现场网络控制器140包括用于进行通常的以太网(注册商标) 通信的硬件。在EtherCAT(注册商标)规格中,能够使用通常的以太网(注 册商标)控制器,该通常的以太网(注册商标)控制器用于实现通常的以太 网(注册商标)规格的通信协议。根据作为现场网络2而采用的工业用以太 网(注册商标)的种类,能够使用与通常的通信协议不同的专用规格的通信 协议所对应的特别规格的以太网(注册商标)控制器。另外,在采用工业用 以太网(注册商标)以外的现场网络的情况下,能够使用与该规格对应的专 用的现场网络控制器。

缓存器146作为发送缓存器和接收缓存器来发挥功能,该发送缓存器是 经由现场网络2向其它单元输出的数据(该数据在以下也称为“输出数据”) 的发送缓存器,该输入缓存器是经由现场网络2从其它单元输入的数据(该 数据在以下也称为“输入数据”)的接收缓存器。如上述,微处理器100通 过计算处理而生成的输出数据,被原样保存在主存储器104中。并且,应该 向特定装置传送的输出数据,被从主存储器104中读出,暂时保存(保持) 在缓存器146中。另外,从其它装置传送来输入数据,被暂时保存在缓存器 146中之后,进而被转移至主存储器104中。

DMA控制电路142进行如下处理:从主存储器104向缓存器146传送 输出数据,从缓存器146向主存储器104传送输入数据。

现场网络控制电路144进行如下处理:在与现场网络2连接的其它装置 之间,进行发送缓存器146的输出数据的处理,以及接收输入数据并将其保 存在缓存器146中的处理。典型的,现场网络控制电路144提供现场网络2 中的物理层以及数据链路层的功能。

USB连接器110是用于对控制器辅助装置8与CPU单元13进行连接的 接口。典型的,从控制器辅助装置8传送来的能够由CPU单元13的微处理 器100执行程序等,经由USB连接器110而被读入至PLC1。

<C.CPU单元的软件结构>

接着,参照图3,说明用于控制器(PLC1)提供各种功能的软件组。这 些软件所含的指令代码,在恰当的时机被读出,由CPU单元13的微处理器 100执行。

图3是表示本发明的实施方式涉及的控制器(PLC)辅助装置进行辅助 使用的CPU单元13所执行的软件结构。参照图3,作为CPU单元13所执 行的软件,有如下三个层级:实时OS200、系统程序210、用户程序236。

实时OS200,是根据CPU单元13的计算机体系机构而设计的,为微处 理器100执行系统程序210以及用户程序236提供基本的执行环境。该实时 OS,典型的由PLC的厂商或专门的软件公司等提供。

系统程序210是用于提供作为PLC1的功能的软件组。具体而言,系统 程序210包括:调度程序(scheduler program)212、输出处理程序214、输 入处理程序216、序列指令计算程序232、运动计算程序234、其它系统程序 220。此外,一般而言,输出处理程序214以及输入处理程序216是连续(一 体)执行的,因此,有时也将这些程序统称为IO处理程序218。

用户程序236是根据用户的控制目的而生成的。即,是根据使用PLC系 统SYS进行控制的对象的生产线(工艺规程,process)等,而任意设计的程 序。

用户程序236,与序列指令计算程序232以及运动计算程序234联动, 来实现用户的控制目的。即,用户程序236利用由序列指令计算程序232以 及运动计算程序234提供的指令、函数、功能模块等,来实现程序化的动作。 因此,有时将用户程序236、序列指令计算程序232以及运动计算程序234 统称为控制程序230。

下面,详细说明各程序。

如上述,用户程序236是根据用户的控制目的(例如,对象的生产线、 工艺规程)而生成的。作为用户程序236,典型的构成为能够由CPU单元 13的微处理器100执行的对象程序形式。在控制器辅助装置8等中,通过对 由分布式算法语言(LADA language)等记述的源程序进行编译,来生成该 用户程序236。并且,所生成的对象程序形式的用户程序236,被从控制器 辅助装置8经由连接电缆10而传送至CPU单元13,进而存储在非易失性存 储器106等中。

调度程序212,针对输出处理程序214、输入处理程序216以及控制程 序230,控制在各执行循环中的处理开始以及处理中断后的处理恢复。更具 体而言,调度程序212控制用户程序236以及运动计算程序234的执行。

在CPU单元13中,采用适于运动计算程序234的规定周期的执行循环 (控制循环),来作为全部处理的共用循环。因此,在一个控制循环内,难 以使全部处理都完成,因此,根据应该执行的处理的优先级等,分为应该在 各控制循环中完成执行的处理和可以分散在多个控制循环中执行的处理。调 度程序212对这样区分后的处理的执行顺序等进行管理。更具体而言,调度 程序212使得在各控制循环期间内先执行被赋予较高优先级的程序。

输出处理程序214,将通过执行用户程序236(控制程序230)而生成的 输出数据,再次配置成适于向PLC系统总线控制器120及/或现场网络控制 器140进行传送的形式。在PLC系统总线控制器120或现场网络控制器140 需要从微处理器100接收到用于执行发送的指示情况下,输出处理程序214 发出这种指示。

输入处理程序216,将利用PLC系统总线控制器120及/或现场网络控制 器140接收的输入数据,再次配置成适于控制程序230使用的形式。

序列指令计算程序232,在执行由用户程序236所使用的种类的序列指 令时被调用,是为了用于实现该指令的内容而执行的程序。

运动计算程序234,根据用户程序236的指示而被执行,每次执行时, 计算出用于对伺服电机驱动器3、脉冲电机驱动器这样的电机驱动器输出的 指令值。

其它系统程序220,概括表示图3中单独示出的程序以外的用于实现 PLC1的各种功能的程序组。

实时OS200,提供用于随着时间的经过而切换执行多个程序的环境。在 PLC1中,初始设定控制循环开始的中断,来作为用于将通过CPU单元13 执行程序而生成的输出数据向其它单元或其它装置输出(发送)的事件(中 断)。如果产生了控制循环开始的中断,则实时OS200将微处理器100的执 行对象从在中断产生的时点正在执行的程序切换为调度程序212。此外,在 调度程序212和调度程序212对其执行进行控制的程序都没有执行的情况 下,实时OS200执行包含在其它系统程序210中程序。作为这种程序,例如 包括通过CPU单元13与控制器辅助装置8之间的连接电缆10(USB)等实 现的通信处理相关的程序。

此外,控制程序230以及调度程序212存储在作为存储单元的主存储器 104以及非易失性存储器106中。

<D.CPU单元中的执行动作>

接着,说明CPU单元13中的执行动作。

图4是表示本发明的实施方式涉及的控制器(PLC)辅助装置辅助使用 的CPU单元13中的执行动作的一例的序列图。在图4中,沿着纸面的从上 到下经过的时间轴,依次示出IO处理程序、控制程序A以及控制程序B的 执行期间。

分别沿着控制程序A和B各自的时间轴示出的虚线的圆角矩形,表示所 对应的控制程序的执行循环。在图4所示的例子中,控制程序A将1次控制 循环设为执行循环,控制程序B将4次控制循环设为执行循环。另外,控制 程序A的执行优先级被设定的高于控制程序B的执行优先级。

控制程序A的序列程序(用户程序),包括用于实现运动控制的运动指 令,通过执行运动指令,来调用并执行运动计算程序234。另一方面,控制 程序B的序列程序不包括运动指令。

当开始控制循环1时,通过调度程序212的执行控制,来执行IO处理 程序。

如果通过执行IO处理程序而实现的输出处理以及输入处理结束,则调 度程序212进行执行控制,从而执行控制程序A。在控制程序A的执行过程 中,首先执行序列程序,紧接着执行运动计算程序234。在序列程序的执行 过程中,每次调用序列指令计算程序232都执行该序列指令计算程序232。 整个控制程序A(序列程序以及运动计算程序)构成一个线程(thread), 在执行过程中与调度程序212无关地连续被执行。

如果控制程序A执行结束,则通过调度程序212进行的执行控制,来执 行控制程序B。但是,在控制程序B的执行过程中,由于控制循环1已经结 束(控制循环2开始),因此在该时点中断执行控制程序B。

在控制循环2以后,IO处理程序以及控制程序A还是会与控制循环1 中的执行方式同样的被重复执行。如果控制循环2中的控制程序A执行结束, 则执行控制程序B的未执行的部分。但是,在控制循环2中,由于在控制程 序B的执行过程中控制循环2结束,因此在此中断执行控制程序B。

在控制循环3中恢复执行的控制程序B一直执行到控制循环3结束才结 束。

在控制循环4中,虽然要继续执行从控制循环1开始的控制程序B的执 行循环,但控制程序B在控制循环3中已经结束了本次执行循环中的执行过 程,因此在控制循环4中不会被执行。

这样一来,PLC1能够针对每个控制循环,按照针对各控制程序分别设 定的执行优先级与控制循环的整数倍的执行循环,来执行多个控制程序。另 外,PLC1能够针对每个控制循环或每个控制程序的执行循环,来执行输入 输出处理(IO处理)。

<E.辅助装置的硬件结构>

接着,说明控制器辅助装置8,该控制器辅助装置8用于生成由PLC1 执行的程序以及用于PLC1的维护(maintenance)等。

图5是表示本发明的实施方式涉及的控制器辅助装置8的硬件结构的示 意图。参照图5,控制器辅助装置8典型的由通用的计算机构成。此外,从 维护性的观点出发,优选便携性优异的笔记本型的个人计算机。

参照图5,控制器辅助装置8包括:CPU81,其执行包括OS在内的各 种程序;ROM(Read Only Memory:只读存储器)82,其存储有BIOS(基 本输入输出系统)、各种数据;存储器RAM83,其提供工作区域,该工作 区域用于存储由CPU81执行程序所需的数据;硬盘(HDD)84,其非易失 的存储有由CPU81执行的程序等。CPU81与控制器辅助装置8的计算部相 当,ROM82、RAM83以及硬盘84与控制器辅助装置8的存储部相当。

控制器辅助装置8进而还包括:键盘85以及鼠标86,用于接受来自用 户的操作;监视器87,用于向用户提示信息。进而,控制器辅助装置8还包 括用于与PLC1(CPU单元13)等进行通信的通信接口(IF)89。

如后述,由控制器辅助装置8执行的各种程序被存储在CD-ROM9中以 便流通。该CD-ROM9所存储的程序被CD-ROM(Compact Disk-Read Only  Memory:光盘只读存储器)驱动器88读取,进而被存入硬盘(HDD)84 等中。或者,也可以从上位的主计算机等通过网络来下载程序。

如上述,控制器辅助装置8能够用通用的计算机实现,因此不对其进行 更详细的说明。

<F.控制器辅助装置的软件结构>

接着,参照图6,说明用于由本实施方式涉及的控制器辅助装置8提供 各种功能的软件组。

图6是表示本发明的实施方式涉及的控制器辅助装置8的软件结构的示 意图。参照图6,在控制器辅助装置8中执行OS310,从而提供能够执行控 制器辅助程序320所含的各种程序的环境。

控制器辅助程序320包括编辑程序321、编译程序322、调试程序323、 模拟程序324、总计执行时间计算程序325、输出程序327、通信程序328、 校正式推断执行时间计算程序331、累计式(推断)执行时间计算程序332、 推断输入输出时间计算程序329、控制器实测时间取得程序326。控制器辅 助程序320所含的各程序,典型的以存储在CD-ROM9中的状态流通,并被 安装至控制器辅助装置8中。

编辑程序321,提供用于生成用户程序(源程序)330的输入以及编辑 这样的功能。更具体而言,编辑程序321提供这样的功能:用户操作键盘85、 鼠标86来生成用户程序236的控制源程序330的功能,所生成控制源程序 330的保存功能以及编辑功能。另外,就编辑程序321而言,从外部输入控 制程序230(其中,特别是用户程序236)的源程序,并且通过用户的操作 来编辑现有的控制程序230的源程序。

编译程序322提供这样的功能:对控制源程序330进行编译,生成能够 由CPU单元13的微处理器100执行的对象程序形式的控制程序342。另外, 编译程序322还提供这样的功能:对控制源程序330进行编译,生成能够由 控制器辅助装置8的CPU81执行的对象程序形式的控制程序340。

调试程序323提供用于对控制源程序330进行调试的功能。作为该调试 的内容,包括这样的动作:在控制源程序330中部分地执行由用户指定的范 围,追踪在控制源程序330的执行过程中的变量值随时间的变化。

执行模拟程序324,则在控制器辅助装置8内构建PLC1的CPU单元13 (控制器)的模拟器。本模拟器提供以下的功能。

(1)CPU单元13的实时OS的功能,该实时OS根据系统计时器的信 号来开始控制循环。

(2)CPU单元13的调度程序212的功能,该调度程序212按照控制程 序的执行优先级与执行循环,来控制执行控制程序230。

(3)CPU单元13的输出处理程序214以及输入处理程序216的功能。

(4)取代控制对象而赋予输入数据的功能,以及在可能的情况下,模 仿出能够接受输出数据而进行动作的控制对象,将动作的结果反映至输入数 据中的功能。

另外,模拟程序324,相当于在模拟器上使控制程序(模拟器用对象程 序,即,模拟用对象程序)340进行动作时所需的CPU单元13中的序列指 令计算程序232及/或运动计算程序234。

控制程序(模拟器用对象程序,即,模拟用对象程序)340的执行代码 本身是能够由控制器辅助装置8的CPU81执行的代码,因此,在上述的执 行环境中的执行控制或辅助的情况下,由控制器辅助装置8的CPU81直接 执行控制程序(模拟器用对象程序,即,模拟用对象程序)340。

或者,可以使模拟程序324虚拟构建出CPU单元13的微处理器100, 在模拟器上使控制程序(控制器用对象程序,即,控制用对象程序)342动 作。在该情况下,控制程序(模拟器用对象程序,即,模拟用对象程序)340 与控制程序(控制器用对象程序,即,控制用对象程序)342是同一程序, 因此无需分别生成它们。

另外,控制器辅助装置8的CPU81与CPU单元13的微处理器100是同 系列的处理器,在CPU81能够执行控制程序(控制器用对象程序,即,控 制用对象程序)342的执行代码的情况下,控制程序(模拟器用对象程序, 即,模拟用对象程序)340与控制程序(控制器用对象程序,即,控制用对 象程序)342成为同一程序。

通过执行总计执行时间计算程序325,构成后述的图7的总计执行时间 计算部325A。通过执行输出程序327,构成后述的图7的输出部327A。通 过执行校正式推断执行时间计算程序331,构成后述的图7的校正式推断执 行时间计算部331A。通过执行累计式执行时间计算程序332,构成后述的图 7的累计式推断执行时间计算部332A。通过执行推断输入输出时间计算程序 329,构成后述的图7的推断输入输出时间计算部329A。通过执行输出程序 327,构成图7的输出部327A。在后面参照图7详细说明由这些程序提供的 处理。

通过执行控制器实测时间取得程序326,来从控制器取得实测执行时间、 实测输入输出时间、实测总计执行时间。

通信程序328,提供向PLC1的CPU单元13传送控制程序230的CPU 单元13用的对象程序342的功能。

一般情况下,在PLC1中安装的系统程序210,在CPU单元13的制造 阶段已经存入CPU单元13的非易失性存储器106中。但是,只要在CD-ROM9 中存储有系统程序210,则用户就能够将CD-ROM9的系统程序210复制至 控制器辅助装置8,利用通信程序328的功能将复制的系统程序210传送至 CPU单元13。进而,只要在CD-ROM9中存储有由PLC1的CPU单元13执 行的实时OS200,就能够通过用户操作将实时OS200再次安装至PLC1。

如上述,控制器辅助装置8的存储部(图5所示的ROM82、RAM83以 及硬盘84等)除了存储用于实现控制器辅助装置8的控制器辅助程序之外, 还用于存储控制程序340,342。

<G.控制器辅助装置所关联的整体处理>

接着,参照图7,说明控制器辅助装置8中的各处理。图7是表示本发 明的实施方式涉及的控制器辅助装置8所关联的整体处理的示意图。

参照图7,控制器辅助装置8包括净执行时间取得部350、输入输出时 间取得部352、总计执行时间取得部354、输出部327A。另外,控制器辅助 装置8具有存储部(图5所示的ROM82、RAM83以及硬盘84等)。

存储部(图5所示的ROM82、RAM83以及硬盘84等),除了用于存 储图6所示的各程序之外,还用于存储校正数据、按指令区分的执行时间数 据、系统结构数据、实测执行时间、实测输入输出时间、实测总计执行时间。 进而,存储部还用于存储由用户输入的控制源程序330以及系统结构数据。

控制器(PLC1)执行控制程序(控制器用对象程序,即,控制用对象程 序)342,测定该执行时间而获取实测执行时间。另外,控制器测定输入输 出时间而获取实测输入输出时间。另外,控制器测定后述的总计执行时间而 获取实测总计执行时间。控制器辅助装置8通过与控制器进行通信,来获取 实测执行时间、实测输入输出时间以及实测总计执行时间。

净执行时间取得部350是用于取得净执行时间的处理部。净执行时间是 指,在控制器执行控制程序342的执行循环内,即,在控制程序342的执行 开始到执行结束的期间内,控制程序342实际执行的时间,并且不包含该控 制程序342的执行被中止的时间。净执行时间与背景技术的说明中提及的实 际处理时间意义相同。校正式推断执行时间、累计式推断执行时间以及实测 执行时间都属于净执行时间。

净执行时间取得部350是用于进行如下一系列处理的处理部的总称,这 些处理包括:计算校正式推断执行时间,计算累计式推断执行时间,取得实 测执行时间。即,净执行时间取得部350取得净执行时间所含的某一个或几 个时间。但是,控制器辅助装置8不一定必须具有这三个系统的处理部,只 要至少具有一个系统的处理部,就能够使用净执行时间的数据。

这样一来,控制器辅助装置8(CPU81)通过执行控制器辅助程序,来 执行用于取得净执行时间的净执行时间取得处理,如上述,该净执行时间是 指,控制器在执行控制程序342的执行循环内,该控制程序342实际执行的 时间,并且是在控制器中测定出的时间或在控制器辅助装置8中推断出的时 间。下面,说明净执行时间取得部350的各系统。

首先,校正式推断执行时间计算部331A利用校正数据,根据模拟执行 时间来计算校正式推断执行时间。针对校正数据的计算以及校正式推断执行 时间的计算,在后面参照图8详细叙述。

通过图6的编译程序322(更具体而言,后述的图8的模拟器用编译器), 从控制源程序330生成控制程序(模拟器用对象程序,即,模拟用对象程序) 340。模拟器324A执行控制程序(模拟器用对象程序,即,模拟用对象程序) 340,测定作为该执行时间的模拟执行时间。

这样一来,控制器辅助装置8(CPU81)通过执行控制器辅助程序,取 得推断执行时间来作为净执行时间,该推断执行时间是根据控制器(PLC1) 在模拟器中测定出的控制程序的执行时间而计算出的。

累计式推断执行时间计算部332A,基于控制源程序330来追踪控制程 序的执行,按照每个控制程序的执行的指令,从存储部读取该指令的执行时 间数据并且对执行时间进行累计,从而计算出累计式推断执行时间。

按指令区分的执行时间数据是由控制器辅助程序320的供应者提供的。

进而,将在控制器中测定出并且从控制器取得的实测执行时间,作为净 执行时间存储在存储部中。

输入输出时间取得部352,是用于进行推断输入输出时间的计算或实测 输入输出时间的取得的一系列的处理部的总称。控制器辅助装置8不一定必 须具有这两个系统的处理部,只要至少具有一个系统的处理部就能够使用输 入输出时间的数据。

这样一来,控制器辅助装置8(CPU81)通过执行控制器辅助程序,从 而执行用于取得输入输出时间的输入输出时间取得处理,该输入输出时间是 指,控制器执行输入输出处理(IO处理)所需的时间,并且是在控制器中测 定出的时间或在控制器辅助装置8中推断出的时间。

推断输入输出时间计算部329A参照系统结构数据来计算推断输入输出 时间。输入输出处理的执行时间(输入输出时间),相关于与CPU单元13 连接的其它单元(通信节点)的数目、控制输出数据以及控制输入数据的量, 这些(数目、量)越多则输入输出时间越长。推断输入输出时间计算部329A 利用存储在存储部中的系统结构数据所含的这些信息,计算输入输出时间的 推断值(推断输入输出时间)。

进而,将在控制器中测定出并且从控制器取得的实测输入输出时间作为 输入输出时间存储在存储部中。

总计执行时间取得部354计算总计执行时间,或取得实测总计执行时间。

总计执行时间是指,在控制器按照执行优先级和执行循环来执行控制程 序342时,从控制程序342的执行循环开始到在该执行循环中控制程序342 执行结束为止的时间。例如,就图4的控制程序A而言,控制程序A的执 行循环等于控制循环,因此,控制程序A的总计执行时间是指,从各控制循 环的开头开始到在该控制循环中控制程序A执行结束为止的时间。在该时间 中,除了包括控制程序A自身的执行时间之外,还要加上输入输出处理(IO 处理)的执行时间(输入输出时间)。另一方面,图4的控制程序B的执行 循环是4次的控制循环,因此,控制程序B的总计执行时间是指,从控制循 环1的开头开始到在控制循环3中控制程序B执行结束为止的时间。在该时 间中,加上从控制程序B的执行循环的开始到控制程序B的执行结束为止所 执行的3次输入输出时间和3次控制程序A的执行时间。

这样一来,本实施方式涉及的总计执行时间取得处理包括对下述时间进 行相加的处理,这些时间是指:作为取得总计执行时间的对象的控制程序的 净执行时间;该控制程序的优先程序的净执行时间,该优先程序的执行优先 级比该控制程序的执行优先级高,并且该优先程序是从执行循环开始到在该 执行循环中该控制程序执行结束为止的期间内执行的所述控制程序;在从该 控制程序的执行循环开始到在该执行循环中该控制程序执行结束为止的期 间内执行的输入输出处理的输入输出时间。

总计执行时间计算部325A针对各控制程序计算总计执行时间。更具体 而言,总计执行时间计算部325A为了计算总计执行时间,将校正式推断执 行时间以及累计式推断执行时间中的一个时间用作净执行时间。

另外,总计执行时间计算部325A将推断输入输出时间用作输入输出时 间。但是,也可以不使用推断输入输出时间,只要输入输出时间短则可以忽 略输入输出时间。或者,如果因系统结构差异而引起的输入输出时间的变动 少,则可以使用总计执行时间计算部325A预先设定的固定值来作为输入输 出时间。

这样一来,本实施方式涉及的总计执行时间取得处理包括至少对下述时 间进行相加的处理,这些时间是指:作为取得总计执行时间的对象的控制程 序的净执行时间;比特定的控制程序的执行优先级高的控制程序的净执行时 间,该特定的控制程序是指,从该控制程序的执行循环开始到在该执行循环 中该控制程序执行结束为止的期间内执行的该控制程序。

总计执行时间计算部325A也可以使用实测执行时间作为净执行时间。 总计执行时间计算部325A也可以使用实测输入输出时间作为输入输出时 间。

总计执行时间计算部325A使计算出的总计执行时间能够在输出部327A 中使用。另外,在输出部327A中使用净执行时间以及输入输出时间的情况 下,总计执行时间计算部325A使在计算总计执行时间时使用的净执行时间 以及输入输出时间能够在输出部327A中使用。

进而,将在控制器中测定出并且从控制器取得的实测总计执行时间存储 在存储部中。实测总计执行时间也能够在输出部327A中使用。

即,控制器辅助装置8(CPU81)通过执行控制器辅助程序,从而执行 用于取得总计执行时间的总计执行时间取得处理。总计执行时间是指,在控 制器中测定出的时间或在控制器辅助装置中推断出的时间,并且,是控制器 (PLC1)按照执行优先级和执行循环来执行控制程序时,从执行循环开始到 在该执行循环中控制程序执行结束为止的期间内经过的时间。

输出部327A生成表示总计执行时间(包括其是实测总计执行时间的情 况下)的输出用数据并将其输出。即,控制器辅助装置8(CPU81)通过执 行控制器辅助程序,来执行用于输出总计执行时间的输出处理。

在输出用数据中,还可以包含用于表示净执行时间(包括其是实测执行 时间的情况)、输入输出时间(包括其是实测输入输出时间的情况)的数据。

生成输出用数据并将其输出的处理例如是指,生成用于在监视器画面上 显示出用于表示总计执行时间(还根据需要包括净执行时间以及输入输出时 间)的显示用数据,并进行显示的处理。生成输出用数据并将其输出的处理 也可以是指,生成用于将总计执行时间(还根据需要包括净执行时间以及输 入输出时间)发送至其它装置的发送用数据,并进行发送的处理。用于输出 输出用数据的处理也可以是指,在能够从控制器辅助装置外访问的存储部中 存储输出用数据的处理。

<H.校正式推断执行时间的计算处理>

(h1:概要)

接着,参照图8,说明到计算校正式推断执行时间为止的一系列的处理 以及各处理的间的程序和数据流。图8是表示本发明的实施方式涉及的控制 器辅助装置8中的到计算校正式推断执行时间为止的一系列的处理以及各处 理的间的程序和数据流的示意图。

图8所示的用于推断控制程序的执行时间的方法,以校正数据计算处理 的步骤和校正式推断执行时间计算处理的步骤为中心。

在校正数据计算处理中,利用以校正用的测试程序作为对象而事先测定 出的模拟器中的执行时间(第一测试执行时间)和控制器中的执行时间(第 二测试执行时间),来计算表示它们间的关系的校正数据。

在校正式推断执行时间计算处理中,取得在模拟器中测定出的控制程序 的执行时间(模拟执行时间),使用校正数据对其进行变换,从而计算出在 控制器执行该控制程序情况下的执行时间的推断值。

下面更详细说明各处理的内容。

(h2:校正数据计算处理)

首先,准备测试程序的源程序(测试源程序)370。

利用模拟器用编译器380,根据测试源程序370来生成模拟用对象程序 (第一测试程序)390。另外,利用控制器用编译器382,根据测试源程序 370来生成控制器用对象程序(第二测试程序)392。

由控制器A执行第二测试程序392,从而,测定其执行时间,取得作为 第二测试程序392的执行时间的第二测试执行时间的数据。

到此为止的处理,一般是由控制器的供应者(控制器的制造商、贩卖者、 技术支持者等)执行的,将第一测试程序390和第二测试执行时间提供给用 户,并存储在控制器辅助装置8的存储部中。此外,到此为止的处理也可以 由用户自身执行。

在模拟器324A中执行第一测试程序390,测定其执行时间,由此,取 得作为第一测试程序390的执行时间的第一测试执行时间的数据。并且,计 算出表示第一测试执行时间和第二测试执行时间之间的关系的校正数据。 即,校正数据计算部计算出表示表示第一测试执行时间和第二测试执行时间 之间的关系的校正数据。

这样一来,在校正数据计算处理中,计算出表示第一测试执行时间和第 二测试执行时间之间的关系的校正数据。

(h3:校正式推断时间计算处理)

接着,准备控制源程序330,该控制源程序330是根据用户的控制目的 而生成的控制程序的源程序。

利用模拟器用编译器322A,根据控制源程序330来生成控制程序(模 拟器用对象程序,即,模拟用对象程序)340。

在模拟器324A中执行控制程序340,测定其执行时间,由此,取得模 拟执行时间的数据。

校正式推断执行时间计算部331A,利用校正数据对模拟执行时间进行 变换,从而计算出校正式推断执行时间。校正式推断执行时间是控制程序(控 制器用对象程序,即,控制用对象程序)342在控制器中的执行时间的推断 值。

控制器用编译器322B根据控制源程序330来生成控制程序(控制器用 对象)342。只要根据推断执行时间,在按需要修正控制源程序330之后进 行实际生成控制器用对象342的处理即可。所生成的控制器用对象342被传 送至控制器B,在控制器B中被执行。此外,控制器A和控制器B在执行 时间的观点上被视为相同机型。

(h4:变形例)

在执行模拟器(控制器辅助装置8)与控制器(PLC1)能够执行相同的 对象代码的情况下,无需将模拟器用编译器与控制器用编译器分开使用,只 要使用共用的编译即可。在该情况下,第一测试程序390与第二测试程序392 是相同的程序,模拟用对象程序340与控制器用对象程序342是相同的程序。

就用于编译测试源程序370的模拟器用编译器380和用于编译控制源程 序330的模拟器用编译器322A而言,使用只要编译相同源程序就能够生成 相同对象程序的编译器。控制器用编译器也可以是同样的。

(h5:其它方式)

如图8所示,控制器辅助装置8能够利用单一装置来执行被提供了第一 测试程序390以及第二测试执行时间以后的全部处理,非常方便。

但是,从执行时间推断的观点看来,也可以由其它装置来执行对象程序 的生成处理。

或者,也可以在其它装置中构成模拟器,控制器辅助装置8从作为其它 装置的模拟器中取得模拟执行时间。

此外,在任何情况下,一旦计算出校正数据,则之后可以删除所存储的 第一测试程序390和第二测试执行时间。

进而,也可以使其它装置执行校正数据的计算处理,控制器辅助装置8 取得计算出的校正数据,将其存储并使用。

<I.校正数据的计算处理>

接着,说明表示第一测试执行时间和第二测试执行时间之间的关系的校 正数据的计算处理。

图9是表示第一测试执行时间与第二测试执行时间之间的关系的一例的 图。在图9中,X轴(横轴)表示模拟器中的第一测试程序390的执行时间 的测定值(第一测试时间),Y轴(纵轴)表示控制器中的第二测试程序392 的执行时间的测定值(第二测试执行时间)。

如上述,第一测试程序390以及第二测试程序392是根据相同的测试源 程序370生成的对象程序。图10的图表中所示的测定点P1~P5,表示所执 行的根据指令数不同的5种测试源程序370生成的第一以及第二测试程序的 执行时间。

此外,测定点P1~P5可以分别是执行一次程序时的执行时间的测定值, 但考虑到执行时间会因输入变量值等的执行条件而在每次执行时发生变动, 因此,优选采用多次执行相同程序时的执行时间的平均值。

在使用通用计算机作为控制器辅助装置8的情况下,通常,在非实时操 作系统环境中执行第一测试程序390,因此,第一测试程序的执行有可能会 被操作系统暂时中断。在这种情况下的执行时间的测定值会变成大值的异常 值,因此,在求得执行时间的平均值时,需要排除这种异常值后进行计算。 同样地,对于以校正式推断执行时间的计算为基础的控制程序的模拟执行时 间,也会产生异常值,因此,也必须排除这种异常值之后计算推断执行时间。

直线L,是利用最小二乘法求出的与测定点P1~P5的误差最小的直线。 该例中,直线L用式Y=aX表示。该比例系数“a”成为校正数据。对在模 拟器中测定出的控制程序的执行时间即模拟执行时间,乘以该校正数据“a”, 从而能够计算出推断执行时间。

直线L也能够用式Y=aX+b表示,在该情况下,“a”以及“b”的值 成为校正数据。

第一测试执行时间与第二测试执行时间大致成正比例关系,因此,能够 用直线来表现它们间的关系,但有时为了更准确地表现该关系,而使用2次 曲线、3次曲线这样的多次函数。在该情况下,用于规定多次函数的各系数 成为校正数据。

有时不用直线来表示第一测试执行时间与第二测试执行时间之间的关 系的原因之一在于,考虑到控制器辅助装置8的CPU81、控制器的微处理器 (PLC1的微处理器100)的缓存机构的动作的影响。考虑到这种情况:有时, 由于这种缓存机构的动作,导致短执行时间的测定值不在根据某种程度的长 执行时间的测定值求出的直线上。

校正数据也能够设为表(table)的形式,该表(table)表示与X的几个 值对应的Y的值。在该情况下,为了求出与表中不存在的X的值(控制程 序的模拟执行时间)对应的Y的值,使用根据其附近的存在于表中的值而通 过直线插补或曲线插补求出X的值与Y的值之间的关系。

<J.显示例>

接着,说明通过上述那样的处理而计算出的执行时间信息的提示例(显 示例)。

(j1:第一状态)

图10是表示本发明的实施方式涉及的控制器辅助装置8所提供的显示 画面的一例的图。如图10所示,控制器辅助装置8显示总计执行时间以及 净执行时间。此外,也可以仅显示总计执行时间。

在图10所示的显示画面例中,图4所示的控制程序A和B成为执行时 间推断的对象。在本显示画面中,控制程序A被标记为“任务A”(“TASK  A”),控制程序B被标记为“任务B”(“TASK B”)。

在图10中,显示出校正式推断执行时间来作为净执行时间。也可以取 代校正式推断执行时间,而显示累计式推断执行时间及/或实测执行时间。

如上述,净执行时间是指,除去了执行中止时间之后的该控制程序实际 执行的时间。例如,在图4中,控制程序B夹着2次执行中止期间而被分3 次执行。这分3次实际执行的时间的合计,就是净执行时间。

在净执行时间的显示部还显示输入输出时间。输入输出处理被标记为 “I/O”。

在净执行时间的显示部中显示“500μs”时,表示控制循环的周期是 500μs。

在模拟器中,能够通过分别以无执行中止期间的方式执行控制程序A和 B,来测定出成为校正式推断执行时间(净执行时间)的计算基础的模拟执 行时间。另外,在模拟器中,也可以与实际控制器中执行时同样地,也按照 图4的序列,按照执行优先级和执行循环来执行,测定实际执行的时间。

就模拟执行时间的测定与推断执行时间的计算而言,优选重复进行多 次。如果重复执行控制程序,控制程序中所使用的变量的值等的执行条件会 发生变化,随着该变化,执行时间也会变动。在净执行时间的图表上附加显 示的“最长”(MAX)值,是重复执行的情况下的最大值。也可以在此基础 上显示最小值、平均值。

按照序列计算部分与运动计算部分,分别计算出控制程序A的推断执行 时间,在图表表示中也分开显示分别计算出的控制程序A的推断执行时间。

在总计执行时间的显示部中,“0.5ms”以及“2ms”分别表示各自的控 制程序的执行循环的周期。

这样一来,优选以能够与取得总计执行时间的对象即控制程序的执行循 环的周期相对比的图表的方式,来显示总计执行时间。另外,与净执行时间 的情况同样地,显示各控制程序的总计执行时间的最大值。通过显示总计执 行时间,用户能够知晓各控制程序在执行循环的时间内能否执行结束。即, 也可以说,在此的输出处理中所输出的显示数据,以能够与取得总计执行时 间对象即控制程序的执行循环的周期相对比的图表的方式,来显示总计执行 时间。

(j2:第二状态)

图11是表示从本发明的实施方式涉及的控制器辅助装置8输出的推断 执行时间的显示画面的另一例的图。

图11所示的显示画面的例中的总计执行时间的表示方式与图10的情况 相同。与图10的不同点在于,在净执行时间的显示部中,将输入输出处理 (IO处理)的执行时间包含在“任务A”(“TASK A”)中进行显示。

即,在图11所示的显示画面中,将以与控制程序(该情况下,是控制 程序A)的执行循环的周期相同的周期来执行的IO处理的执行时间,与该 控制程序的执行时间相加来进行显示。这样一来,净执行时间的显示处理包 括如下处理:将该控制程序的执行处理与组合执行的其它处理的执行时间相 加来进行显示。换言之,无须一定显示控制程序的净执行时间自身,在决定 控制循环周期、执行循环周期时、控制程序的分割方法等时,为了对于用户 来说是有用的,而显示出包含控制程序的净执行时间在内的实质的净执行时 间。

以能够使用户明白IO处理的执行时间与控制程序A的执行时间的方式, 显示净执行时间的任务A的图表。在该图表附加显示的最长(MAX)值, 是包含IO处理时间的执行时间,控制程序的净执行时间可以不用数值表示。 这样一来,也可以仅用图表来显示控制程序的净执行时间自身。

在图4所示的序列图中,输入输出处理(IO处理)是用于控制程序A 和B两者的处理,但也可以将图4所示的输入输出处理设为用于控制程序A 的处理,与其不同地,另外将用于控制程序B的输入输出处理设为每到控制 程序B的执行循环就执行一次的处理,例如在控制程序B的执行开始前执行 用于控制程序B的输入输出处理。在该情况下,在图11的显示画面中,在 任务B的净执行时间中加入用于控制程序B的输入输出处理的执行时间。

(j3:第三状态)

图12是表示从本发明的实施方式涉及的控制器辅助装置8输出的推断 执行时间的显示画面的另一例。

图12所示的显示画面的例中的净执行时间的表示方式与图11的情况相 同。与图11的不同点在于,在总计执行时间的显示部中,对于执行循环跨 越(对应)多个控制循环的控制程序(控制程序B),在图表上以控制循环 来分段显示。

即,在图12所示的显示画面中,在2ms的执行循环内,用3根竖线标 记来分4段显示控制循环。另外,在图12所示的显示画面中,仅对在总计 执行时间内该控制程序实际执行的时间的部分进行着色显示。通过采用这种 显示状态,在该例中,针对控制程序B,用户能够一目了然地把握如下信息: 在执行循环内的第一个控制循环中执行开始和中断;在第二个控制循环中执 行恢复和中断;在第三个控制循环中,执行恢复后,在控制循环内执行结束; 在第四个控制循环中,(控制程序B)没有执行。

进而,在图12所示的显示画面中,用标记来显示控制程序执行结束的 时点。在该例中,使用三角形标记。由此,在执行循环内控制程序夹着(隔 着)中断期间而断断续续的执行的情况下,也能够容易地理解执行结束的时 点在哪里。

这样一来,也可以说,输出处理输出的显示数据,用于显示总计执行时 间和包含在总计执行时间内的净执行时间。

<K.服务器-客户端方式>

在上述的说明中,例示出以单机方式实现用于推断控制程序的执行时间 的处理的情况,但也可以用所谓的服务器-客户端的方式实现。

图13是表示本发明的实施方式涉及的服务器计算机所实现的控制器辅 助装置所关联的整体处理的示意图。在图13的示意图中,在服务器计算机 中实现控制器辅助装置,并且示出了此时的到计算校正式推断执行时间为止 的一系列的处理以及各处理间的程序和数据流。

参照图13,作为控制器辅助装置而发挥功能的服务器计算机所具有的程 序组发挥如下功能:模拟器用编译器322A、控制器用编译器322B、模拟器 324A、校正式推断执行时间计算部331A、累计式推断执行时间计算部332A、 推断输入输出时间计算部329A、总计执行时间计算部325A、输出部327A。 另外,在服务器计算机的存储部中,存储有控制源程序、校正数据、按指令 区分的执行时间数据、系统结构数据。其中,控制源程序以及系统结构数据 是从客户端计算机发送来的。

服务器计算机,例如可以设置在用户的事业所(营业场所)内,通过LAN (局域网)与客户端计算机连接,也可以设置在控制器供应者的事业所内, 通过因特网与用户的事业所的客户端计算机相连接。

图13中存储在存储部中校正数据,是通过与图8所示的处理同样的处 理计算出的。也可以利用其它计算机来执行这种用于计算校正数据的处理, 也可以在服务器计算机自身中执行这种用于计算校正数据的处理的全部或 一部分。但是,在将用于执行第一测试程序390的模拟器设置在其它计算机 中的情况下,该模拟器与在服务器计算机中的模拟器相比较,需要是能够以 相同执行时间来执行相同程序的模拟器。

在服务器计算机中执行直到求出校正数据为止的一系列处理的情况下, 也是只要能够在服务器计算机对客户端计算机提供服务的阶段使用校正数 据即可。因此,也可以从服务器计算机中删除为了求出校正数据而使用的程 序以及数据。

在客户端计算机中生成控制源程序330,并将其发送至服务器计算机。

服务器计算机,利用控制器用编译器322B,按照来自客户端计算机的 指示,根据控制源程序330来生成控制程序(控制器用对象程序,即,控制 用对象程序)342,并将其(所生成的控制程序)发送至客户端计算机。服 务器计算机也可以不具有控制器用编译器322B,从而不进行控制程序342 的生成服务。

在图13中,从生成控制程序(模拟器用对象程序,即,模拟用对象程 序)340的处理开始到计算校正式推断执行时间的处理为止,都与图8所示 的处理相同。就用于计算累计式推断执行时间的处理以及用于计算推断输入 输出时间的处理而言,与图7所示的处理相同。就用于计算校正式推断执行 时间的处理系统与用于计算累计式推断执行时间的处理系统而言,也可以仅 具有其中的一个系统。

用于计算总计执行时间的处理,与图7所示的处理相同。但是,与图7 的处理不同的是,不使用在控制器中测定的实测执行时间、实测输入输出时 间以及实测总计执行时间。

输出部327A,生成用于例如以图10、图11或图12所示的方式显示净 执行时间以及总计执行时间的输出用数据(显示用数据),并将其发送至客 户端计算机。输出用数据例如是能够使用万维网表示的HTML形式的数据。 输出部327A也可以仅将表示净执行时间、输入输出时间以及总计执行时间 的数值数据发送至客户端计算机,而其显示方式由客户端计算机来实现。

服务器计算机也可以不具有模拟器用编译器322A,而是接收在客户端 计算机中生成的控制程序(模拟用对象)340。

本次公开的实施方式皆为例示,并不用于限制。本发明的范围不由上述 说明决定,而是由权利要求书示出,包括与权利要求书等同的意义以及范围 内的全部变更。

附图标记的说明

1PLC,2现场网络,3伺服电机驱动器,4伺服电机,5遥控IO终端, 6检测开关,7继电器,8控制器辅助装置,9CD-ROM,10连接电缆,11 PLC系统总线,12电源单元,13CPU单元,14、53IO单元,15特殊单元, 51终端总线,52通信耦合器,81CPU,82ROM,83RAM,84硬盘,85键 盘,86鼠标,87监视器,88CD-ROM驱动器,100微处理器,102芯片 集,104主存储器,106非易失性存储器,108系统计时器,110USB连接 器,120PLC系统总线控制器,122DMA控制电路,124PLC系统总线控制 电路,126、146缓存器,130连接器,140现场网络控制器,142DMA控 制电路,144现场网络控制电路,210系统程序,212调度程序,214输出 处理程序,216输入处理程序,218IO处理程序,220其它系统程序,230控 制程序,232序列指令计算程序,234运动计算程序,236用户程序,320控 制器辅助程序,321编辑程序,322编译程序,322A、380模拟器用编译器, 322B、382控制器用编译器,323调试程序,324模拟程序,324A模拟器, 325总计执行时间计算程序,325A总计执行时间计算部,326控制器实测 时间取得程序,327输出程序,327A输出部,328通信程序,329推断输 入输出时间计算程序,329A推断输入输出时间计算部,330控制源程序, 331校正式推断执行时间计算程序,331A校正式推断执行时间计算部,332 累计式执行时间计算程序,332A累计式推断执行时间计算部,340控制程 序,340模拟用对象程序(模拟器用对象程序),342控制用对象程序(控 制器用对象程序),350净执行时间取得部,352输入输出时间取得部,354 总计执行时间取得部,370测试源程序,390第一测试程序,392第二测试 程序,200实时OS,SYS系统。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号