CN102792235B - 控制器支持装置、以及估计控制程序的执行时间的方法 - Google Patents

控制器支持装置、以及估计控制程序的执行时间的方法 Download PDF

Info

Publication number
CN102792235B
CN102792235B CN201180003425.2A CN201180003425A CN102792235B CN 102792235 B CN102792235 B CN 102792235B CN 201180003425 A CN201180003425 A CN 201180003425A CN 102792235 B CN102792235 B CN 102792235B
Authority
CN
China
Prior art keywords
execution time
program
controller
test
control
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
Application number
CN201180003425.2A
Other languages
English (en)
Other versions
CN102792235A (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.)
Omron Corp
Original Assignee
Omron Corp
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 Omron Corp filed Critical Omron Corp
Publication of CN102792235A publication Critical patent/CN102792235A/zh
Application granted granted Critical
Publication of CN102792235B publication Critical patent/CN102792235B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13174Pc, computer connected to plc to simulate machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)

Abstract

控制器支持程序使运算部执行:取得在仿真器中测量的第一控制程序的执行时间即第一控制执行时间的处理,其中该第一控制程序是从根据用户的控制目的而制作的控制程序的源程序即控制源程序生成的在仿真器中进行动作的目标程序;使用校正数据来对第一控制执行时间进行变换,从而计算第二控制程序在控制器中的执行时间的估计值即估计执行时间的处理,其中该第二控制程序是从控制源程序生成的在控制器中进行动作的目标程序;用于输出表示估计执行时间的数据的处理。

Description

控制器支持装置、以及估计控制程序的执行时间的方法
技术领域
本发明涉及控制器支持装置中的控制程序的执行时间估计,该控制器支持装置用于支援为了控制机械或设备等的动作而被使用的PLC(ProgrammableLogicController,可编程逻辑控制器,也称为可编程控制器)等控制器的使用。
背景技术
在为了控制机械或设备等的动作而被使用的控制器中,存在通用的PLC和专用于个别的机械等的程序控制的控制器。
PLC例如由包括用于执行控制程序的微处理器的CPU(CentralProcessingUnit,中央处理单元)单元、负责来自外部的开关或传感器的信号输入和向外部的继电器或致动器(actuator)的信号输出的IO(InputOutput,输入输出)单元等多个单元构成。在PLC中,一边在这些单元之间,在每个控制程序执行循环(cycle)经由PLC系统总线和/或现场网络而交换数据,一边执行控制动作。
控制器支持装置用于生成使控制器执行的控制程序和对于控制器的各种设定信息,并将其传送到控制器。控制器支持装置例如通过将控制器支持程序安装到通用的计算机而构成。控制器支持装置例如具有生成控制程序的源列表的编辑器功能、根据控制程序的源列表生成在控制器下动作的目标程序的编译器功能、用于在控制器支持装置中试验执行控制程序的控制器的仿真器功能、以及与控制器的通信功能等。
在控制程序的开发阶段,需要知道控制器执行该控制程序所需的执行时间。在决定该控制程序的执行循环的周期时,参照该控制程序的执行时间。此外,对在控制器中执行的多个控制程序,决定互相不同的执行优先级和执行循环周期时,参照各个控制程序的执行时间。
在控制器支持装置和控制器中,与控制程序的执行有关的硬件或操作系统不同的情况较多。此外,有时控制程序的执行码本身也根据仿真器用和控制器用而不同。因此,有时,在控制器支持装置的仿真器中执行的控制程序的执行时间与在控制器中执行的控制程序的执行时间不同。
在特开2001-209411号公报(专利文献1)中公开了,在PLC支持装置中求在由PLC执行控制程序时的执行时间的方法。具体地,公开了如下的方法:准备在控制程序中使用的各命令在PLC中的实际处理时间数据,在仿真器中的程序模拟执行处理中,每处理一次各个命令时,参照实际处理时间数据来累计与该命令对应的实际处理时间。
现有技术文献
专利文献
专利文献1:(日本)特开2001-209411号公报
发明内容
发明要解决的课题
以往的PLC为如下的结构的情况较多:在其运算部中采用为了执行控制程序而开发的ASIC(ApplicationSpecificIntegratedCircuit,特定应用集成电路),并由该ASIC执行与PLC用的助记(mnemonic)命令对应的执行码。一般,在梯型(ladder)语言等PLC用的编程语言中使用的命令能够一对一变换为PLC用的助记命令。在如此的情况下,能够通过如专利文献1所示那样累计各命令的实际处理时间数据的方式,求出在某种程度上准确的控制程序的执行时间。
但是,近年来,伴随通用微处理器的高速化,在PLC的运算部中也采用通用微处理器的情况越来越多。在如此的情况下,在PLC中,通过梯型语言或其他的PLC用的编程语言制作的控制程序(源程序)以编译为能够在微处理器中执行的目标程序的形式而执行。根据本申请发明人们的经验,与PLC用的编程语言中的各命令对应的、在微处理器中的实际处理时间,由于目标程序被最优化的影响等而并不是一定的。因此,在如上所述的实际处理时间数据的累计方式中,无法得到高精度的估计执行时间。进而,控制程序在利用特殊的命令或函数模块库的情况下,所调用的库元素的执行时间因执行条件而变动,因此在实际处理时间数据的累计方式中,执行时间的估计精度进一步恶化。
以如此的状况为背景,在控制器支持装置中,能够以更高的精度对在使用了通用微处理器的PLC(更一般地为控制器)中的执行时间进行估计的方式是必要的。当然,更优选为,该方式也能够应用于对于使用了ASIC的控制器的执行时间估计。
本发明的目的在于,在控制器支持装置中,以更高的精度估计控制器中的控制程序的执行时间。
用于解决课题的手段
根据本发明的某一方面,提供包括存储部和运算部的控制器支持装置。存储部用于存储控制器支持程序、表示第一测试执行时间与第二测试执行时间之间的关系的校正数据。第一测试执行时间是在仿真器中测量的第一测试程序的执行时间,其中该第一测试程序是从测试源程序生成的在控制器的仿真器中进行动作的目标程序,第二测试执行时间是在控制器中测量的第二测试程序的执行时间,其中该第二测试程序是从测试源程序生成的在控制器中进行动作的目标程序。控制器支持程序使运算部执行:取得在仿真器中测量的第一控制程序的执行时间即第一控制执行时间的处理,其中该第一控制程序是从根据用户的控制目的而制作的控制程序的源程序即控制源程序生成的在仿真器中进行动作的目标程序;使用校正数据来对第一控制执行时间进行变换,从而计算第二控制程序在控制器中的执行时间的估计值即估计执行时间的处理,其中该第二控制程序是从控制源程序生成的在控制器中进行动作的目标程序;以及用于输出表示估计执行时间的数据的处理。
优选为,存储部还用于存储第一控制程序。控制器支持程序使运算部还执行:用于使控制器支持装置作为仿真器发挥作用的处理;以及通过在仿真器中执行所述第一控制程序,从而测量第一控制执行时间的处理。
进一步优选为,控制器支持装置还具备显示部。存储部还用于存储第一测试程序和第二测试执行时间。控制器支持程序使运算部还执行:通过在仿真器中执行第一测试程序,从而测量第一测试执行时间的处理;以及从第一测试执行时间和第二测试执行时间计算校正数据的处理。用于输出表示估计执行时间的处理是,制作用于在显示部中显示估计执行时间的显示用数据的处理。
根据本发明的其他方面,提供用于在具备了存储部和运算部的控制器支持装置中执行的控制器支持程序。存储部用于存储控制器支持程序、表示第一测试执行时间与第二测试执行时间之间的关系的校正数据。第一测试执行时间是在仿真器中测量的第一测试程序的执行时间,其中该第一测试程序是从测试源程序生成的在控制器的仿真器中进行动作的目标程序,第二测试执行时间是在控制器中测量的第二测试程序的执行时间,其中该第二测试程序是从测试源程序生成的在控制器中进行动作的目标程序。控制器支持程序使运算部执行:取得在仿真器中测量的第一控制程序的执行时间即第一控制执行时间的处理,其中该第一控制程序是从根据用户的控制目的而制作的控制程序的源程序即控制源程序生成的在仿真器中进行动作的目标程序;使用校正数据来对第一控制执行时间进行变换,从而计算第二控制程序在控制器中的执行时间的估计值即估计执行时间的处理,其中该第二控制程序是从控制源程序生成的在控制器中进行动作的目标程序;以及用于输出表示估计执行时间的数据的处理。
优选为,存储部还用于存储第一控制程序。控制器支持程序使运算部还执行:用于使控制器支持装置作为仿真器发挥作用的处理;以及通过在仿真器中执行所述第一控制程序,从而测量第一控制执行时间的处理。
进一步优选为,存储部还用于存储第一测试程序和第二测试执行时间。控制器支持程序使运算部还执行:通过在仿真器中执行第一测试程序,从而测量第一测试执行时间的处理;以及从第一测试执行时间和第二测试执行时间计算校正数据的处理。
根据本发明的进一步的其他方面,提供存储有用于在具备了存储部和运算部的控制器支持装置中执行的控制器支持程序的记录介质。存储部用于存储控制器支持程序、表示第一测试执行时间与第二测试执行时间之间的关系的校正数据。第一测试执行时间是在仿真器中测量的第一测试程序的执行时间,其中该第一测试程序是从测试源程序生成的在控制器的仿真器中进行动作的目标程序,第二测试执行时间是在控制器中测量的第二测试程序的执行时间,其中该第二测试程序是从测试源程序生成的在控制器中进行动作的目标程序。控制器支持程序使运算部执行:取得在仿真器中测量的第一控制程序的执行时间即第一控制执行时间的处理,其中该第一控制程序是从根据用户的控制目的而制作的控制程序的源程序即控制源程序生成的在仿真器中进行动作的目标程序;使用校正数据来对第一控制执行时间进行变换,从而计算第二控制程序在控制器中的执行时间的估计值即估计执行时间的处理,其中该第二控制程序是从控制源程序生成的在控制器中进行动作的目标程序;以及用于输出表示估计执行时间的数据的处理。
优选为,存储部还用于存储第一控制程序。控制器支持程序使运算部还执行:用于使控制器支持装置作为仿真器发挥作用的处理;以及通过在仿真器中执行所述第一控制程序,从而测量第一控制执行时间的处理。
进一步优选为,存储部还用于存储第一测试程序和第二测试执行时间。控制器支持程序使运算部还执行:通过在仿真器中执行第一测试程序,从而测量第一测试执行时间的处理;以及从第一测试执行时间和第二测试执行时间计算校正数据的处理。
根据本发明的进一步的其他方面,提供用于估计对控制对象进行控制的控制器中的控制程序的执行时间的方法。本方法包括用于计算表示第一测试执行时间与第二测试执行时间之间的关系的校正数据的校正数据计算步骤。第一测试执行时间是在仿真器中测量的第一测试程序的执行时间,其中该第一测试程序是从测试源程序生成的在控制器的仿真器中进行动作的目标程序,第二测试执行时间是在控制器中测量的第二测试程序的执行时间,其中该第二测试程序是从测试源程序生成的在控制器中进行动作的目标程序。本方法还包括估计执行时间计算步骤,其通过使用校正数据来对在仿真器中测量的第一控制程序的执行时间即第一控制执行时间进行变换,从而计算第二控制程序在控制器中的执行时间的估计值即估计执行时间,其中该第一控制程序是从根据用户的控制目的而制作的控制程序的源程序即控制源程序生成的在仿真器中进行动作的目标程序,该第二控制程序是从所述控制源程序生成的在控制器中进行动作的目标程序。
发明效果
根据本发明,在控制器支持装置中,能够以更高的精度估计控制器中的控制程序的执行时间。
附图说明
图1是表示本发明的实施方式的由控制器(PLC)支持装置支援使用的PLC系统的概略结构的示意图。
图2是表示本发明的实施方式的由控制器(PLC)支持装置支援使用的CPU单元的硬件结构的示意图。
图3是表示本发明的实施方式的由控制器(PLC)支持装置支援使用的CPU单元中执行的软件结构的示意图。
图4是表示本发明的实施方式的由控制器(PLC)支持装置支援使用的CPU单元中的执行动作的一例的时序图。
图5是表示本发明的实施方式的控制器支持装置的硬件结构的示意图。
图6是表示本发明的实施方式的控制器支持装置的软件结构的示意图。
图7是表示本发明的实施方式的与控制器支持装置相关联的整体处理的示意图。
图8是表示本发明的实施方式的从控制器支持装置输出的估计执行时间的显示画面的一例的图。
图9是表示本发明的实施方式的从控制器支持装置输出的估计执行时间的显示画面的其他的一例的图。
图10是表示第一测试执行时间与第二测试执行时间之间的关系的一例的图。
图11是表示本发明的实施方式的与通过服务器计算机实现的控制器支持装置相关联的整体处理的示意图。
具体实施方式
对于本发明的实施方式,参照附图来详细进行说明。另外,对于图中的相同或者相当的部分,附加相同的标号并且不重复其说明。
<A.系统结构>
作为本实施方式的控制器支持装置支援使用的控制器的典型例,对PLC进行说明。PLC对机械或设备等控制对象进行控制。PLC作为其构成要素而包括CPU单元。CPU单元包括微处理器、存储部件、通信电路。存储部件用于存储控制程序、和用于对程序的执行进行控制的系统程序等。微处理器执行在存储部件中存储的系统程序和控制程序。通信电路发送输出数据并接收输入数据
首先,参照图1来说明PLC1的系统结构。图1是表示本发明的实施方式的由控制器(PLC)支持装置支援使用的PLC系统的概略结构的示意图。
参照图1,PLC系统SYS包括PLC1、经由现场网络2与PLC1连接的伺服电动机驱动器3和远程IO终端5、作为现场元件的检测开关6和继电器7。此外,控制器支持装置8经由连接电缆10等而连接到PLC1。
PLC1包括执行主要的运算处理的CPU单元13、1个以上的IO单元14、特殊单元15。这些单元构成为能够经由PLC系统总线11而互相交换数据。此外,由电源单元12对这些单元供应适当的电压的电源。另外,由PLC制造商提供作为PLC1构成的各单元,因此一般由每个PLC制造商独自开发PLC系统总线11并使用。相对于此,对于现场网络2,公开其标准的情况较多,以便不同的制造商的产品之间能够连接。
对于CPU单元13的细节,参照图2在后面叙述。
IO单元14是关于一般的输入输出处理的单元,对开启/关闭的二值化的数据的输入输出进行负责。即,IO单元14收集检测开关6等的传感器处于检测任意的对象物的状态(开启)和没有检测任意的对象物的状态(关闭)的哪一个的信息。此外,IO单元14对继电器7或致动器的输出目的地,输出用于激活的指令(开启)和用于不激活的指令(关闭)的其中一个。
特殊单元15具有模拟数据的输入输出、温度控制、通过特定的通信方式的通信的在IO单元14中不支持的功能。
现场网络2传输与CPU单元13进行交换的各种数据。作为现场网络2,典型地能够使用各种产业用以太网(注册商标)。作为产业用以太网(注册商标),例如已知EtherCAT(注册商标)、ProfinetIRT、MECHATROLINK(注册商标)-III、Powerlink、SERCOS(注册商标)-III、CIPMotion等,也可以使用这些中的一个。进而,也可以使用产业用以太网(注册商标)以外的现场网络。例如,在不进行运转控制的情况下,也可以使用DeviceNet、CompoNet/IP(注册商标)等。
另外,在图1中例示了具有PLC系统总线11和现场网络2的两方的PLC系统SYS,但是也可以使用仅搭载一方的系统结构。例如,也可以在现场网络2中连接所有的单元。或者,也可以不使用现场网络2,将伺服电动机驱动器3直接连接到PLC系统总线11。进而,也可以是,将现场网络2的通信单元连接到PLC系统总线11,从CPU单元13经由该通信单元进行与连接到现场网络2的设备之间的通信。
另外,PLC1也可以是如下的结构:通过由CPU单元13具有IO单元14的功能或伺服电动机驱动器3的功能,从而CPU单元13不经由IO单元14或伺服电动机驱动器3等而直接控制控制对象。
伺服电动机驱动器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单元相同地,进行与一般的输入输出处理有关的处理。更具体地,远程IO终端5包括用于进行与在现场网络2中的数据传输有关的处理的通信耦合器52、1个以上的IO单元53。这些单元构成为,能够经由远程IO终端总线51而互相交换数据。
对于本发明的实施方式的控制器支持装置8,在后面叙述。
<B.CPU单元的硬件结构>
下面,参照图2来说明CPU单元13的硬件结构。图2是表示本发明的实施方式的由控制器(PLC)支持装置8支援使用的CPU单元13的硬件结构的示意图。参照图2,CPU单元13包括微处理器100、芯片组102、主存储器104、非易失性存储器106、系统定时器108、PLC系统总线控制器120、现场网络控制器140、USB连接器110。芯片组102与其他组件之间经由各种总线分别耦合连接。
微处理器100和芯片组102典型地以通用的计算机体系结构为标准而构成。即,微处理器100对从芯片组按照内部时钟依次供应的命令码进行解释并执行。芯片组102在与所连接的各种组件之间交换内部的数据,并且生成微处理器100所需的命令码。进而,芯片组102具有对在微处理器100中的运算处理的执行的结果得到的数据等进行缓冲的功能。
CPU单元13作为存储部件具有主存储器104和非易失性存储器106。
主存储器104是易失性的存储区域(RAM),在对CPU单元13接通电源之后,保持应在微处理器100中执行的各种程序。此外,主存储器104也用作由微处理器100执行各种程序时的作业用存储器。作为这样的主存储器104,使用DRAM(DynamicRandomAccessMemory,动态随机存取存储器)或SRAM(StaticRandomAccessMemory,静态随机存取存储器)的元件。
另一方面,非易失性存储器106非易失性地保持实时OS(OperatingSystem,操作系统)、PLC1的系统程序、用户程序、运转运算程序、系统设定参数的数据。这些程序和数据根据需要被复制到主存储器104,以便能够由微处理器100进行存取。作为这样的非易失性存储器106,能够使用如闪存的半导体存储器。或者,也能够使用如硬盘的磁记录介质、DVD-RAM(DigitalVersatileDiskRandomAccessMemory,数字多功能盘随机存取存储器)的光学记录介质等。
系统定时器108在每个一定周期产生中断信号并提供给微处理器100。典型地构成为,以硬件的方式以多个不同的周期分别产生中断信号,但是也可以通过OS(OperatingSystem,操作系统)或BIOS(BasicInputOutputSystem,基本输入输出系统)等而设定为以任意的周期产生中断信号。利用该系统定时器108产生的中断信号,实现如后所述的每个控制循环的控制动作。
CPU单元13作为通信电路而具有PLC系统总线控制器120和现场网络控制器140。这些通信电路进行输出数据的发送和输入数据的接收。
另外,在CPU单元13本身具有IO单元14或伺服电动机驱动器3的功能的情况下,通过通信电路进行的输出数据的发送和接收数据的接收成为,将负责这些功能的部分作为通信的对方而在CPU单元13的内部进行的发送和接收。
PLC系统总线控制器120对经由了PLC系统总线11的数据的交换进行控制。更具体地,PLC系统总线控制器120包括DMA(DynamicMemoryAccess,动态存储器存取)控制电路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)支持装置8支援使用的CPU单元13中执行的软件结构的示意图。参照图3,作为在CPU单元13中执行的软件,成为实时OS200、系统程序210、用户程序236的三层。
实时OS200被设计成与CPU单元13的计算机体系结构相应,提供用于微处理器100执行系统程序210和用户程序236的基本的执行环境。该实时OS典型地由PLC的制造商或者专门的软件公司等提供。
系统程序210是用于提供作为PLC1的功能的软件组。具体地,系统程序210包括调度器程序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等中编译通过梯型语言等记述的源程序,从而生成该用户程序236。然后,所生成的目标程序形式的用户程序236从控制器支持装置8经由连接电缆10传送到CPU单元13,从而存储在非易失性存储器106等。
调度器程序212针对输出处理程序214、输入处理程序216以及控制程序230,控制在各执行循环中的处理开始和处理中断后的处理重新开始。更具体地,调度器程序212对用户程序236和运转运算程序234的执行进行控制。
在CPU单元13中,将适合于运转运算程序234的一定周期的执行循环(控制循环)作为处理整体的共同循环来采用。因此,在1个控制循环内难以完成所有的处理,因此,根据应执行的处理的优先级等而划分为在各控制循环中应完成执行的处理和也可以横跨多个控制循环而执行的处理。调度器程序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)支持装置8支援使用的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在时序程序的执行中,每次被调用时执行。控制程序A的整体(时序程序和运转运算程序)构成为1个线程,在执行途中连续执行而没有调度器程序212的干预。
如果控制程序A的执行结束,则通过由调度器程序212进行的执行控制,执行控制程序B。但是,在控制程序B的执行中,控制循环1结束(控制循环2开始),因此在该时刻控制程序B的执行被中断。
在控制循环2以后,IO处理程序和控制程序A重复进行与在控制循环1中的执行相同的执行。如果控制循环2中的控制程序A的执行结束,则执行控制程序B的未执行的部分。但是,在控制循环2中,在控制程序B的执行中,控制循环2结束,因此控制程序B的执行再次被中断。
在控制循环3结束之前,在控制循环3中重新开始执行的控制程序B结束执行。
在控制循环4中,从控制循环1开始的控制程序B的执行循环也持续,但是控制程序B在控制循环3中已结束本次的执行循环中的执行,因此在控制循环4中不执行。
<E.支持装置的硬件结构>
下面,说明用于进行在PLC1中执行的程序的制作和PLC1的维护等的控制器支持装置8。
图5是表示本发明的实施方式的控制器支持装置8的硬件结构的示意图。参照图5,控制器支持装置8典型地由通用的计算机构成。另外,从维护性的观点出发,优选为可移动性优良的笔记本型的个人计算机。
参照图5,控制器支持装置8包括用于执行包括OS的各种程序的CPU81、存储BIOS和各种数据的ROM(ReadOnlyMemory,只读存储器)82、提供用于存储在CPU81中的程序的执行所需的数据的工作区域的存储器RAM83、非易失性地存储在CPU81中执行的程序等的硬盘(HDD)84。CPU81相当于控制器支持装置8的运算部,ROM82、RAM83和硬盘84相当于控制器支持装置8的存储部。
控制器支持装置8还包括用于接受来自用户的操作的键盘85和鼠标86、用于向用户提示信息的监视器87。进而,控制器支持装置8包括用于与PLC1(CPU单元13)等进行通信的通信接口(IF)89。
如后所述,在控制器支持装置8中执行的各种程序存储于CD-ROM9而流通。在该CD-ROM9中存储的程序由CD-ROM(CompactDisk-ReadOnlyMemory,光盘只读存储器)驱动器88读取,并存储到硬盘(HDD)84等。或者,也可以构成为,通过网络从上位的主机计算机等下载程序。
如上所述,控制器支持装置8使用通用的计算机而实现,因此不进行对以上的详细的说明。
<F.控制器支持装置的软件结构>
下面,参照图6来说明用于本实施方式的控制器支持装置8提供各种功能的软件组。
图6是表示本发明的实施方式的控制器支持装置8的软件结构的示意图。参照图6,在控制器支持装置8中执行OS310,提供可执行在控制器支持程序320中包含的各种程序的环境。
控制器支持程序320包括编辑器程序321、编译器程序322、调试器程序323、仿真器程序324、校正数据计算程序325、估计执行时间计算程序326、输出程序327、通信程序328。在控制器支持程序320中包含的各个程序典型地以在CD-ROM9中存储的状态流通,并安装到控制器支持装置8。
编辑器程序321提供用于制作用户程序(源程序)330的输入和编辑的功能。更具体地,编辑器程序321除了操作用户操作键盘85和鼠标86来制作用户程序236的源程序330的功能之外,还提供所制作的源程序330的保存功能和编辑功能。此外,编辑器程序321输入来自外部的控制程序230(其中,尤其是用户程序236)的源程序,进而通过用户的操作来编辑已有的控制程序230的源程序。
编译器程序322提供如下的功能:对控制程序的源程序330进行编译,生成可在CPU单元13的微处理器100中执行的目标程序形式的用户程序(第二控制程序)236。此外,编译器程序322提供对控制程序的源程序330进行编译,从而生成可在控制器支持装置8的CPU81中执行的目标程序形式的用户程序(第一控制程序)340的功能。该用户程序340是,为了由控制器支持装置8对PLC1的动作进行仿真(模拟)而使用的、仿真用的目标程序。
调试器程序323提供用于对用户程序(源程序)330进行调试的功能。作为该调试的内容,包括对在源程序中部分地执行由用户指定的范围的源程序的执行中的、变量值的时间性的变化进行追踪的动作。
仿真器程序324如果被执行,则在控制器支持装置8内构筑PLC1的CPU单元13(控制器)的仿真器。本仿真器提供如下的功能。
(1)通过系统定时器的信号开始控制循环的、CPU单元13的实时OS的功能。
(2)按照控制程序的执行优先级和执行循环来控制控制程序230的执行的、CPU单元13的调度器程序212的功能。
(3)CPU单元13的输出处理程序214和输入处理程序216的功能。
(4)代替控制对象而提供输入数据的功能、以及在可能的情况下模拟接受输出数据而进行动作的控制对象,并将动作的结果反映在输入数据的功能。
此外,仿真器程序324提供在第一控制程序(仿真器用目标程序)340在仿真器上进行动作时所需的、与CPU单元13中的时序命令运算程序232和/或运转运算程序234相当的程序。
第一控制程序(仿真器用目标程序)340的执行码本身是可由控制器支持装置8的CPU81执行的码,因此在通过上述的执行环境的执行控制或者支援下,由控制器支持装置8的CPU81直接执行。
或者,也可以通过仿真器程序324设想地构筑CPU单元13的微处理器100,从而在仿真器上使第二控制程序(控制器用目标程序)236动作。在这种情况下,第一控制程序(仿真器用目标程序)340与第二控制程序(控制器用目标程序)236成为相同的程序,无需分别生成这些程序。
此外,控制器支持装置8的CPU81与CPU单元13的微处理器100是相同系列的处理器,CPU81能够执行第二控制程序(控制器用目标程序)236的执行码的情况下,第一控制程序(仿真器用目标程序)340与第二控制程序(控制器用目标程序)236也成为相同的程序。
通过执行校正数据计算程序325,从而构成后述的图7的校正数据计算部325A。通过执行估计执行时间计算程序326,从而构成后述的图7的估计执行时间计算部326A。通过执行输出程序327,从而构成后述的图7的输出部327A。对于通过这些程序提供的处理,参照图7在后面详细叙述。
通信程序328提供对PLC1的CPU单元13传送控制程序230的CPU单元13用的目标程序236的功能。
一般地,在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。
<G.与控制器支持装置相关联的整体处理>
(g1:概要)
下面,参照图7,除了说明在控制器支持装置8中进行的处理之外,还说明与控制程序的执行时间估计相关联的一连串的处理、以及各处理之间的程序和数据的流动。
图7是表示本发明的实施方式的与控制器支持装置8相关联的整体处理的示意图。在图6中表示了软件结构的控制器支持装置8相当于图7所示的控制器支持装置A。
图7所示的、估计控制程序的执行时间的方法,以校正数据计算处理的步骤和估计执行时间计算处理的步骤为中心。
校正数据计算处理是,使用将校正用的测试程序作为对象事前测量的控制器中的执行时间和仿真器中的执行时间,计算表示这些执行时间之间的关系的校正数据。
估计执行时间计算处理是如下的处理:取得在仿真器中测量的控制程序的执行时间,并使用校正数据对该执行时间进行变换,从而计算在控制器中执行了该控制程序时的执行时间的估计值。
更详细地对各处理的内容进行说明,则如下。
(g2:校正数据计算处理)
首先,准备测试程序的源程序(测试源程序)370。
使用仿真器用编译器380,从测试源程序370生成仿真器用目标程序(第一测试程序)390。此外,使用控制器用编译器382,从测试源程序370生成控制器用目标程序(第二测试程序)392。
通过在控制器A中执行第二测试程序392,测量该执行时间,取得第二测试程序392的执行时间即第二测试执行时间的数据。
到此为止的处理一般地由控制器的供应者(控制器的制造商、销售商、技术服务商等)进行,对用户提供第一测试程序390和第二测试执行时间。另外,也可以由用户本身进行到此为止的处理。
在仿真器324A中执行第一测试程序390,测量该执行时间,取得第一测试程序390的执行时间即第一测试执行时间的数据。然后,计算表示第一测试执行时间与第二测试执行时间之间的关系的校正数据。
如此,校正数据计算处理是计算表示第一测试执行时间与第二测试执行时间之间的关系的校正数据的处理。在这里,第一测试执行时间是在仿真器中测量的第一测试程序390的执行时间,其中该第一测试程序390是从测试源程序370生成的、在控制器的仿真器中进行动作的目标程序。此外,第二测试执行时间是在控制器中测量的第二测试程序392的执行时间,其中该第二测试程序392是从测试源程序370生成的、在控制器中进行动作的目标程序。
(g3:估计执行时间计算处理)
接着,准备根据用户的控制目的而制作的控制程序的源程序即控制源程序330。
使用仿真器用编译器322A,从控制源程序330生成仿真器用目标程序(第一控制程序)340。
在仿真器324A中执行第一控制程序340,测量该执行时间,取得第一控制程序的执行时间即第一控制执行时间的数据。
通过使用校正数据对第一控制执行时间进行变换,从而计算在控制器中的第二控制程序342的执行时间的估计值即估计执行时间,其中该第二控制程序342是从控制源程序330生成的在控制器中进行动作的目标程序。
使用控制器用编译器322B,从控制源程序330生成第二控制程序342。依据估计执行时间并根据需要修正了控制源程序330之后,进行第二控制程序342的实际的生成即可。所生成的第二控制程序342被传送到控制器B,在控制器B中执行。另外,在执行时间的观点上,控制器A与控制器B是看作相同的机种。
如此,估计执行时间计算处理是使用校正数据对在仿真器324A中测量的第一控制程序340的执行时间即第一控制执行时间进行变换,从而计算第二控制程序342在控制器中的执行时间的估计值即估计执行时间的处理,其中,该第一控制程序340是从根据用户的控制目的而制作的控制程序的源程序即控制源程序330生成的在仿真器324A中进行动作的目标程序,该第二控制程序342是从控制源程序330生成的在控制器中进行动作的目标程序。
如果计算了估计执行时间,则执行制作用于表示估计执行时间的输出用数据并进行输出的处理。制作输出用数据并进行输出的处理例如为,制作用于在监视器87的画面上显示估计执行时间的显示用数据并进行显示的处理。制作输出用数据并进行输出的处理也可以是,制作用于将估计执行时间发送到其他的装置的发送用数据,并进行发送的处理。对输出用数据进行输出的处理也可以是,将输出用数据存储到可从控制器支持装置8外部进行存取的存储部的处理。
(g4:变形例)
在仿真器(控制器支持装置8)和控制器(PLC1)能够执行相同的目标码的情况下,无需分开使用仿真器用编译器和控制器用编译器,使用共同的编译器即可。在这种情况下,第一测试程序390和第二测试程序392成为相同的程序,第一控制程序340与第二控制程序342成为相同的程序。
在测试源程序370的编译中使用的仿真器用编译器380和在控制源程序330的编译中使用的仿真器用编译器322A使用如下的编译器:对相同的源程序进行编译,则能够生成相同的目标程序。对于控制器用编译器,也是相同的。
(g5:其他方式)
对于控制器支持装置8,如在图7中作为控制器支持装置A表示的那样,使得能够由单一的装置执行提供了第一测试程序390和第二测试执行时间以后的所有的处理,则是方便的。
但是,从执行时间估计的观点出发,也可以是,由其他的装置进行目标程序的生成,将由控制器支持装置8进行的处理限定为在图7中作为控制器支持装置B表示的处理。
或者,也可以是,在其他的装置中构成仿真器,控制器支持装置8从其他的装置即仿真器取得第一控制执行时间。
或者,也可以是,由其他的装置进行校正数据计算处理,控制器支持装置8取得计算出的校正数据,对其进行存储并使用。如此的话,从执行时间估计的观点出发,也可以将控制器支持装置8进行的处理限定为在图7中作为控制器支持装置C表示的处理。
优选为,控制器支持装置A、B、C例如使用可移动型或桌上型的个人计算机来实现。
另外,在任何情况下,一旦计算出校正数据之后,也可以删除所存储的第一测试程序390与第二测试执行时间。
图7所示的控制器支持装置C能够如下表现。即,控制器支持装置C包括存储部(图5的ROM82、ROM83和硬盘84)和运算部(图5的CPU81)。存储部用于存储控制器支持程序320、表示第一测试执行时间与第二测试执行时间之间的关系的校正数据。第一测试执行时间是在仿真器中测量的第一测试程序390的执行时间,其中该第一测试程序390是从测试源程序370生成的、在控制器的仿真器中进行动作的目标程序。第二测试执行时间是在控制器中测量的第二测试程序392的执行时间,其中该第二测试程序392是从测试源程序370生成的、在控制器中进行动作的目标程序。
控制器支持程序320使运算部(CPU81)执行以下的处理。
(1)取得在仿真器中测量的第一控制程序340的执行时间即第一控制执行时间的处理,其中该第一控制程序340是从根据用户的控制目的而制作的控制程序的源程序即控制源程序330生成的在仿真器中进行动作的目标程序
(2)通过使用校正数据对第一控制执行时间进行变换,从而计算第二控制程序342在控制器中的执行时间的估计值即估计执行时间的处理,其中该第二控制程序342是从控制源程序330生成的在控制器中进行动作的目标程序
(3)用于输出表示估计执行时间的数据的处理
此外,控制器支持装置B作为在显示部(图5的监视器87的画面)显示估计执行时间的装置。控制器支持装置B是对控制器支持装置C添加了以下结构的装置。即,控制器支持装置B还包括显示部。存储部还用于存储第一控制程序340、第一测试程序390、第二测试执行时间。控制器支持程序320使运算部(CPU81)还执行以下的处理。
(4)使控制器支持装置作为仿真器来发挥作用的处理
(5)在仿真器中执行第一测试程序390从而测量第一测试执行时间的处理
(6)从第一测试执行时间和第二测试执行时间计算校正数据的处理
(7)在仿真器中执行第一控制程序340从而测量第一控制执行时间的处理
用于输出表示上述的估计执行时间的处理是,制作用于在显示部中显示估计执行时间的显示用数据的处理。
<H.估计执行时间的显示例>
下面,说明通过如上所述的处理计算出的估计执行时间的输出例(显示例)。
图8是表示本发明的实施方式的从控制器支持装置8输出的估计执行时间的显示画面的一例的图。
在图8所示的估计执行时间的显示画面例中,图4所示的控制程序A和B成为执行时间估计的对象。在本显示画面中,控制程序A表述为“任务A”,控制程序B表述为“任务B”。
作为净执行时间表示的是估计执行时间。净执行时间意味着排除了执行停止时间的、该控制程序实际执行的时间。例如,在图4中,控制程序B夹着2次执行停止时间而分为3次执行。分为这3次而实际执行的时间的合计成为净执行时间。
在净执行时间的显示部中也显示IO处理的执行时间。IO处理表述为“I/O”。另外,在图7中没有图示用于求IO处理的执行时间的处理。IO处理的执行时间与连接到CPU单元13的其他单元的数据、输出数据和输入数据的量相关,这些数量越多,IO处理的执行时间越长。控制器支持装置8为了对控制器进行设定而保持这些信息,因此能够使用这些信息来计算IO处理的执行时间的估计值。
净执行时间的显示部中的“500μs”表示控制循环的周期为500μs。
在仿真器中,能够通过分别对控制程序A和B无执行停止期间地执行,从而测量作为估计执行时间(净执行时间)的计算的基础的第一控制执行时间。此外,也可以是,与在控制器中实际执行时相同地,如图4的时序,在仿真器中也按照执行优先级和执行循环来执行程序,并测量实际执行所需的时间。
也可以重复多次进行第一控制执行时间的测量和估计执行时间的计算。如果重复执行控制程序,则在控制程序中使用的变量的值等执行条件变化,与此相应地执行时间也变动。在净执行时间的图表中添加显示的最大值是,重复执行时的最大值。除此之外,也可以表示最小值或平均值。
控制程序A的估计执行时间被分为时序运算部分和运转运算部分而计算,在图表显示中也分开显示。
总计执行时间意味着,从各自的控制程序的执行循环的开始到该执行循环中的控制程序的执行结束为止的时间。即,控制程序A的总计执行时间相当于从图4的各控制循环的开头到在该控制循环中控制程序A执行结束为止的时间。在该时间中,除了控制程序A本身的执行时间之外,还加上IO处理的执行时间。
同样地,控制程序B的总计执行时间相当于从图4的控制循环1的开头到在控制循环3中控制程序B执行结束为止的时间。在该时间中,加上在控制程序B执行结束之前执行的3次IO处理的执行时间和3次控制程序A的执行时间。
在总计执行时间的显示部中,“0.5ms”和“2ms”表示对各自的控制程序的执行循环的周期。此外,与净执行时间的情况相同地,表示各控制程序的总计执行时间的最大值。通过显示总计执行时间,用户能够知道各控制程序能否在执行循环的时间内执行结束。
图9是表示本发明的实施方式的从控制器支持装置8输出的估计执行时间的显示画面的其他的一例的图。
图9所示的显示画面与图8的不同点在于,在净执行时间的显示部中,在任务A中包含显示IO处理的执行时间。
即,在图9所示的显示画面中,对以与控制程序(这时为控制程序A)的执行循环的周期相同的周期执行的IO处理的执行时间和该控制程序的执行时间进行加算并显示。如此,控制程序的估计执行时间的显示包括加上与该控制程序的执行组合执行的其他处理的执行时间并显示的情况。换言之,不一定必须显示控制程序的估计执行时间本身,而是作为包括控制程序的估计执行时间的时间进行显示即可,使得在决定控制循环周期或执行循环周期、控制程序的分配方法等时,对于用户有帮助。
以能够区分IO处理的执行时间与控制程序A的执行时间的方式,对净执行时间的任务A的图表进行显示。在该图表中添加显示的最大值是包含了IO处理时间的执行时间,没有以数值显示控制程序的估计执行时间。如此,也可以仅通过图表表示控制程序的估计执行时间。
进而,也可以仅显示净执行时间和总计执行时间的其中一个。总计执行时间的显示也是控制程序的估计执行时间的显示的一种方式。
<I.校正数据的计算处理>
下面,说明用于表示第一测试执行时间与第二测试执行时间之间的关系的校正数据的计算处理。
图10是表示第一测试执行时间与第二测试执行时间之间的关系的一例的图。在图10中,X轴(横轴)表示第一测试时间(仿真器中的第一测试程序390的执行时间的测量值),Y轴(纵轴)表示第二测试执行时间(控制器中的第二测试程序392的执行时间的测量值)。
如上所述,第一测试程序390和第二测试程序392是从相同的测试源程序370生成的目标程序。在图10的图表中表示的测量点P1~P5表示从所执行的命令的数目不同的5种测试源程序370分别生成的第一和第二测试程序的执行时间。
另外,测量点P1~P5可以是分别执行1次程序时的执行时间的测量值,但是优选为,考虑执行时间因输入变量值等执行条件而在每次执行时容易变动的情况,采用将相同的程序执行多次时的执行时间的平均值。
在作为控制器支持装置8而利用通用计算机的情况下,通常在非实时操作系统环境下执行第一测试程序390,因此容易产生由操作系统临时中断第一测试程序的执行的情况。如此情况下的执行时间的测定值成为大的异常值,因此在求执行时间的平均值的情况下,需要排除这样的异常值而进行计算。同样地,作为估计执行时间的计算的基础的第一控制执行时间中也容易产生异常值,因此必须排除这样的异常值来计算估计执行时间。
直线L是使用最小二乘法而求的直线,使得测量点P1~P5的误差最小。在该例子中,直线L通过式Y=aX来表示。该比例系数“a”成为校正数据。
能够通过对在仿真器中测量的控制程序的执行时间即第一控制执行时间乘上该校正数据“a”,从而计算估计执行时间。
直线L也能够通过式Y=aX+b来表示,在这种情况下,“a”和“b”的值成为校正数据。
第一测试执行时间与第二测试执行时间大致成为比例关系,因此能够将其之间的关系通过直线来表现,但是也存在如下的情况:为了更准确地表现关系,使用二次曲线或三次曲线的多次函数的情况较好。在这种情况下,规定多次函数的各系数成为校正数据。
作为存在无法通过直线来表示第一测试执行时间与第二测试执行时间之间的关系的情况的原因之一,考虑控制器支持装置8的CPU81和控制器的微处理器(PLC1的微处理器100)的寄存器机构的动作的影响。由于如此的寄存器机构的动作,考虑以下的情况:有时短的执行时间的测量值不在通过在某种程度上长的执行时间的测量值而求的直线上。
校正数据也可以设为用于表示多个第一测试时间和与各第一测试时间对应的第二测试时间的表形式的数据。在使用如此的校正数据的情况下,能够通过选择夹着第一控制执行时间的2个第一测试时间或者值接近于第一控制执行时间的若干个第一测试时间,并根据在校正数据中存在的数据的直线补充或曲线补充,从而求与第一控制执行时间对应的估计执行时间。
<J.服务器客户机方式>
在上述的说明中,表示了以独立的方式实现用于估计控制程序的执行时间的处理时的例子,但也可以通过所谓的服务器客户机的方式来实现。
图11是表示本发明的实施方式的与通过服务器计算机实现的控制器支持装置相关联的整体处理的示意图。在图11中表示,通过服务器计算机实现了控制器支持装置时的与控制程序的执行时间估计相关联的一连串处理、以及各处理之间的程序和数据的流动。
参照图11,作为控制器支持装置发挥作用的服务器计算机具有作为仿真器用编译器322A、控制器用编译器322B、仿真器324A、估计执行时间计算部326A以及输出部327A发挥作用的程序组。
服务器计算机例如可以设置于用户的事务所内并通过LAN与客户机计算机连接,也可以设置于控制器提供者的事务所并通过因特网与处于用户的事务所的客户机计算机连接。
对于在图11中存储在存储部的校正数据,也通过与图7所示的处理相同的处理而计算。也可以使用其他的计算机来进行计算这样的校正数据的处理,也可以在服务器计算机本身中进行计算这样的校正数据的处理的全部或者一部分。但是,在其他的计算机中设置用于执行第一测试程序的仿真器的情况下,需要是与服务器计算机中的仿真器相比,能够以相同的执行时间执行相同的程序的仿真器。
在服务器计算机中进行直到求校正数据为止的一连串处理的情况下,也在由服务器计算机对客户机计算机提供服务的阶段,能够使用校正数据即可。因此,也可以从服务器计算机删除为了求校正数据而使用的程序和数据。
在客户机计算机中制作控制源程序330,并送到服务器计算机。
服务器计算机通过控制器用编译器322B,根据来自客户机计算机的指示而从控制源程序330生成第二控制程序342,并发送到客户机计算机。也可以是,服务器计算机不具有控制器用编译器322B,而不提供第二控制程序342的生成服务。
仿真器用编译器322A从控制源程序330生成第一控制程序(仿真器用目标程序)340。
仿真器324A执行第一控制程序340,测量其执行时间即第一控制执行时间。
估计执行时间计算部326A使用校正数据,从第一控制执行时间计算估计执行时间。
输出部327A例如以图8或图9所示的方式制作用于显示估计执行时间的显示用数据,并发送到客户机计算机。显示用数据例如是能够使用网络浏览器来显示的HTML格式的数据。也可以是,输出部327A仅将表示估计执行时间的数值数据发送到客户机计算机,其显示方式委托给客户机计算机。
也可以是,服务器计算机不具有仿真器用编译器322A,接收在客户机计算机中生成的第一控制程序340。
如果在服务器计算机中具有仿真器和校正数据,为了多个客户机计算机而进行估计执行时间计算处理,则追加与新的机种的控制器适应的新的仿真器和校正数据的作业变得容易。
图11所示的控制器支持装置是,包括图7所示的控制器支持装置C的结构,并在其上至少追加了以下结构的装置。即,存储部还用于存储第一控制程序340。控制器支持程序320使运算部还执行用于使控制器支持装置作为仿真器324A发挥作用的处理、通过在仿真器324A中执行第一控制程序340从而测量第一控制执行时间的处理。
本次公开的实施方式应考虑为,在所有的点上是例示并且不是限制性的。本发明的范围通过权利要求书表示而非通过上述的说明,意图包含与权利要求书的范围均等的意思和范围内的所有的变更。
标号说明
1PLC、2现场网络、3伺服电动机驱动器、4伺服电动机、5远程IO终端、6检测开关、7继电器、8控制器支持装置、9CD-ROM、10连接电缆、11PLC系统总线、12电源单元、13CPU单元、14,53IO单元、15特殊单元、51远程IO终端总线、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现场网络控制电路、200实时OS、210系统程序、212调度器程序、214输出处理程序、216输入处理程序、218IO处理程序、220其他的系统程序、230用户程序、230控制程序、232时序命令运算程序、234运转运算程序、236用户程序、320控制器支持程序、321编辑器程序、322编译器程序、322A,380仿真器用编译器、322B,382、控制器用编译器、323调试器程序、324仿真器程序、324A仿真器、325校正数据计算程序、325A校正数据计算部、326估计执行时间计算程序、326A估计执行时间计算部、327输出程序、327A输出部、328通信程序、330控制源程序、340第一控制程序、342第二控制程序、370测试源程序、390第一测试程序、392第二测试程序、SYS系统。

Claims (4)

1.一种控制器支持装置,所述控制器支持装置具备存储部和运算部,其中,
所述存储部用于存储控制器支持程序、以及表示第一测试执行时间与第二测试执行时间之间的关系的校正数据,
所述控制器支持程序使所述运算部执行:
计算表示第一测试执行时间与第二测试执行时间之间的关系的校正数据的处理,所述第一测试执行时间是在仿真器中测量的第一测试程序的执行时间,其中该第一测试程序是从测试源程序生成的在控制器的所述仿真器中进行动作的目标程序,所述第二测试执行时间是在所述控制器中测量的第二测试程序的执行时间,其中该第二测试程序是从所述测试源程序生成的在所述控制器中进行动作的目标程序,
所述控制器支持程序使所述运算部执行:
取得在所述仿真器中测量的第一控制程序的执行时间即第一控制执行时间的处理,其中该第一控制程序是从根据用户的控制目的而制作的控制程序的源程序即控制源程序生成的在所述仿真器中进行动作的目标程序;
使用所述校正数据来对所述第一控制执行时间进行变换,从而计算第二控制程序在所述控制器中的执行时间的估计值即估计执行时间的处理,其中该第二控制程序是从所述控制源程序生成的在所述控制器中进行动作的目标程序;以及
用于输出表示所述估计执行时间的数据的处理,
其中所述控制器是PLC。
2.如权利要求1所述的控制器支持装置,其中,
所述存储部还用于存储所述第一控制程序,
所述控制器支持程序使所述运算部还执行:
用于使所述控制器支持装置作为所述仿真器发挥作用的处理;以及
通过在所述仿真器中执行所述第一控制程序,从而测量所述第一控制执行时间的处理。
3.如权利要求2所述的控制器支持装置,其中,
所述控制器支持装置还具备显示部,
所述存储部还用于存储所述第一测试程序和所述第二测试执行时间,
所述控制器支持程序使所述运算部还执行:
通过在所述仿真器中执行所述第一测试程序,从而测量所述第一测试执行时间的处理;以及
从所述第一测试执行时间和所述第二测试执行时间计算所述校正数据的处理,
用于输出表示所述估计执行时间的处理是,制作用于在所述显示部中显示所述估计执行时间的显示用数据的处理。
4.一种用于估计控制程序在控制器中的执行时间的方法,该控制器用于控制控制对象,该方法包括:
校正数据计算步骤,其计算表示第一测试执行时间与第二测试执行时间之间的关系的校正数据,所述第一测试执行时间是在仿真器中测量的第一测试程序的执行时间,其中该第一测试程序是从测试源程序生成的在控制器的所述仿真器中进行动作的目标程序,所述第二测试执行时间是在所述控制器中测量的第二测试程序的执行时间,其中该第二测试程序是从所述测试源程序生成的在所述控制器中进行动作的目标程序;
估计执行时间计算步骤,其通过使用所述校正数据来对在所述仿真器中测量的第一控制程序的执行时间即第一控制执行时间进行变换,从而计算第二控制程序在所述控制器中的执行时间的估计值即估计执行时间,其中该第一控制程序是从根据用户的控制目的而制作的控制程序的源程序即控制源程序生成的在所述仿真器中进行动作的目标程序,该第二控制程序是从所述控制源程序生成的在所述控制器中进行动作的目标程序,
其中所述控制器是PLC。
CN201180003425.2A 2011-03-15 2011-03-22 控制器支持装置、以及估计控制程序的执行时间的方法 Active CN102792235B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011056775A JP4748286B1 (ja) 2011-03-15 2011-03-15 コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、そのプログラムを格納した記録媒体、および、制御プログラムの実行時間を推定する方法
JP2011-056775 2011-03-15
PCT/JP2011/056770 WO2012124134A1 (ja) 2011-03-15 2011-03-22 コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、そのプログラムを格納した記録媒体、および、制御プログラムの実行時間を推定する方法

Publications (2)

Publication Number Publication Date
CN102792235A CN102792235A (zh) 2012-11-21
CN102792235B true CN102792235B (zh) 2016-02-17

Family

ID=44597050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180003425.2A Active CN102792235B (zh) 2011-03-15 2011-03-22 控制器支持装置、以及估计控制程序的执行时间的方法

Country Status (4)

Country Link
EP (1) EP2533114B1 (zh)
JP (1) JP4748286B1 (zh)
CN (1) CN102792235B (zh)
WO (1) WO2012124134A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9372478B2 (en) * 2012-01-04 2016-06-21 General Electric Company Control system for a power application
CN104252347A (zh) * 2013-06-27 2014-12-31 鸿富锦精密工业(深圳)有限公司 任务等待时间处理系统及方法
JP6676883B2 (ja) * 2015-06-01 2020-04-08 株式会社Ihi シミュレーション装置
JP6624008B2 (ja) * 2016-10-27 2019-12-25 横河電機株式会社 エンジニアリングツール連携装置、エンジニアリングツール連携方法、エンジニアリングツール連携プログラム及び記録媒体
JP7037289B2 (ja) * 2017-06-26 2022-03-16 三菱重工業株式会社 制御切替装置、プラント、制御切替方法およびプログラム
CN109814480B (zh) * 2019-01-18 2021-10-08 广州宁基智能系统有限公司 Plc与线控程序之间的可视化交互方法及系统
WO2022137577A1 (ja) 2020-12-23 2022-06-30 オムロン株式会社 制御装置、制御方法および制御プログラム
JP2023002081A (ja) 2021-06-22 2023-01-10 オムロン株式会社 予測システム、情報処理装置および情報処理プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1384410A (zh) * 2001-03-30 2002-12-11 欧姆龙株式会社 可编程控制器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3901417B2 (ja) * 2000-01-25 2007-04-04 オムロン株式会社 Plcシミュレータ
JP4811678B2 (ja) * 2008-02-15 2011-11-09 オムロン株式会社 Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1384410A (zh) * 2001-03-30 2002-12-11 欧姆龙株式会社 可编程控制器

Also Published As

Publication number Publication date
WO2012124134A1 (ja) 2012-09-20
EP2533114B1 (en) 2015-10-28
EP2533114A4 (en) 2014-02-26
EP2533114A1 (en) 2012-12-12
JP4748286B1 (ja) 2011-08-17
CN102792235A (zh) 2012-11-21
JP2012194669A (ja) 2012-10-11

Similar Documents

Publication Publication Date Title
CN102792235B (zh) 控制器支持装置、以及估计控制程序的执行时间的方法
CN102792237B (zh) 可编程逻辑控制器的cpu单元
CN103477290B (zh) 控制器辅助装置
CN103562807B (zh) Plc的cpu单元、plc系统、plc辅助装置
US8977534B2 (en) Controller support apparatus, controller support program executed on the apparatus, storage medium storing the program, and method of estimating execution time of control program
CN103403632B (zh) 运算单元、辅助装置、输出控制方法、显示控制方法、以及程序
CN103403630B (zh) 运算单元、输出控制方法和程序
EP2687927B1 (en) Cpu of plc, system program for plc, and recording medium storing system program for plc
US9618924B2 (en) CPU of PLC, system program for PLC, and recording medium storing system program for PLC
US10198536B2 (en) Simulation system, method for carrying out a simulation, control system, and computer program product
JP2023106297A (ja) 検証システムおよび検証方法
EP3836049B1 (en) Data processing system and method, storage medium and computer program product
CN103995499A (zh) 控制器、信息处理装置及程序
CN106020008A (zh) 控制装置
JP6299064B2 (ja) 制御装置、制御方法、およびプログラム
US20140172402A1 (en) Simulation system, method for carrying out a simulation, guidance system, and computer program product
US20140005808A1 (en) Cpu of plc, system program for plc, and recording medium storing system program for plc
JP4676900B2 (ja) 分散制御システム用シミュレータ
Scott Learning RSLogix 5000 Programming: Build robust PLC solutions with ControlLogix, CompactLogix, and Studio 5000/RSLogix 5000
JP2023125352A (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