控制器、信息处理装置及程序的制作方法
【专利摘要】提供控制器、信息处理装置及程序,在包含控制装置(控制器)和数据库系统的控制系统中,能够高效地进行程序的调试以及健全性检查的技术。CPU单元(104)具有用于连接数据库装置400的通信接口。CPU单元(104)执行用户程序(186),并根据包含在用户程序中的指令,来生成用于调出DB连接服务并访问数据库装置(400)的指令语句。DB连接服务生成与访问指令相对应的指令语句,并获取表示将所生成的指令语句向数据库系统发送之后接收到来自数据库系统的响应为止的时间的信息,将所获取的信息作为日志保存至存储器。辅助装置(300)获取该信息并显示到监视器上。
【专利说明】控制器、信息处理装置及程序
【技术领域】
[0001]本发明涉及包含周期性地执行用户程序的控制器的控制系统,特别涉及与数据库系统连接的控制系统、信息处理装置及程序。
【背景技术】
[0002]在很多的生产现场中使用的机械或设备,典型地利用主要由可编程控制器(Programmable Logic Controller,下面还称为“PLC”)等控制装置构成的控制系统来进行控制。在这样的控制系统中安装有各种日志(log)输出功能,以在事后验证在系统配置时或运行时所发生的不良情况。
[0003]作为与安装有这样的功能的控制装置相关的现有技术文献,日本特开2012 -208932号公报(专利文献I)公开了如下的PLC系统,该PLC系统具有对仪器(设备)的动作进行控制的PLC和经由通信线路与PLC连接的可编程显示器。该PLC系统包含信息保存单元,该信息保存单元在PLC在检测出仪器的规定的动作状态时,从用信息存储单元来存储的信息中,将与规定的动作状态相对应的该状态信息保存至规定的保存部。
[0004]现有技术文献
[0005]专利文献
[0006]专利文献1:日本特开2012 - 208932号公报
[0007]另外,近年来已知有如下控制系统,在该控制系统中,PLC连接到数据库系统上,由此将保持在PLC中的数据积聚到数据库系统中。在这样的控制系统中,存在要求从PLC访问数据库系统时在规定时间内完成处理的情况。例如,在工厂等中的生产或检查的过程中利用控制系统的情况下,需要对依次产生的数据在适当的时间内进行处理。因某种原因或发生不良情况,导致有时控制系统的性能比设计人员等所假定的处理时间长。此时,设计人员或控制系统的管理人员等需要通过分析其原因来采取措施。作为措施,例如存在需要使控制器的控制处理进一步高速化的情况以及需要提高数据库系统的响应性能的情况。
[0008]因此,需要如下技术,即,即使在包含控制器和数据库系统的控制系统进行处理时发生了延迟等的不良情况的情况下,也能够容易地分析其原因的技术。
【发明内容】
[0009]本发明的一个技术方案的控制器包括:包括:通信接口,其用于与数据库系统连接;指令执行部,其执行用于对控制对象进行控制的用户程序;访问处理部,其在由指令执行部执行包含用于访问数据库系统的访问指令的用户程序时,对经由通信接口的访问数据库系统的处理进行控制。访问处理部包括:指令语句发送部,其生成与访问指令相对应的指令语句,并将所生成的指令语句发送至数据库系统;获取部,其将表示特定时间的信息保存至存储器,该特定时间是指,从向数据库系统发送了所生成的指令语句之后至接收到来自数据库系统的响应为止的时间。
[0010]优选地,获取部也可以通过向数据库系统发送所生成的指令语句,从而开始计测响应时间,并将表示计测结果的信息保存至存储器,该计测结果是指,对从向数据库系统发送指令语句之后至接收到来自数据库系统的响应为止的响应时间进行计测得到的计测结
果O
[0011]优选地,获取部也可以记录将所生成的指令语句向数据库系统发送的发送时刻,并记录接收到与指令语句对应的来自数据库系统的响应的接收时刻,并基于发送时刻及接收时刻,来获取表示接收到来自数据库系统的响应为止的时间的信息,并将所获取的信息保存至存储器。
[0012]优选地,获取部也可以在向数据库系统发送指令语句之后,在从数据库系统接收到正常的响应的情况下,将响应时间保存至存储器。
[0013]优选地,指令执行部也可以执行包含状态获取指令的用户程序,该状态获取指令是指,用于获取表示接收到来自数据库系统的响应为止的时间的信息的指令;访问处理部也可以根据状态获取指令,将保存在存储器中的信息响应给用户程序。
[0014]优选地,获取部也可以在每次向数据库系统发送指令语句时,与时刻信息相对应关联地获取表示接收到响应为止的时间的信息;输入输出部,将时刻信息与表示接收到响应为止的时间的信息相对应地发送至信息处理装置。
[0015]本发明的一个技术方案的信息处理装置,与控制器相连接,控制器与数据库系统相连接;该控制器包括:指令语句发送部,其在执行包含用于访问数据库系统的访问指令的用户程序时,生成与访问指令相对应的指令语句,并将所生成的指令语句发送至数据库系统;获取部,其将表示特定时间的时间信息保存至存储器,该特定时间是指,从向数据库系统发送了由指令语句发送部生成的指令语句之后至接收到来自数据库系统的响应为止的时间。信息处理装置具有:接收处理部,其从控制器接收被获取部保存到存储器中的时间信息;显示处理部,其将由接收处理部接收的时间信息显示到监视器上。
[0016]优选地,控制器的获取部也可以在每次向数据库系统发送指令语句时,与时刻信息相对应关联地将表示接收到响应为止的时间的信息保存至存储器;信息处理装置的接收处理部也可以从控制器接收与时刻信息相对应关联的表示接收到响应为止的时间的时间信息;显示处理部也可以与时刻信息相对应关联地显示所接收到的时间信息。
[0017]本发明的一个技术方案的程序,用于对控制器的动作进行控制,控制器具有用于访问数据库系统的通信接口、处理器及存储器;程序使处理器执行如下步骤:执行用于对控制对象进行控制的用户程序的步骤;在执行包含用于访问数据库系统的访问指令的用户程序时,生成与访问指令相对应的指令语句,并将所生成的指令语句经由通信接口发送至数据库系统的步骤;在向数据库系统发送了所生成的指令语句之后,将表示接收到来自数据库系统的响应为止的时间的信息保存至存储器的步骤;将所保存的信息输出至与控制器相连接的信息处理装置的步骤。
[0018]本发明的一个技术方案的控制器,具有:用于连接数据库系统的通信接口 ;处理器;存储器。处理器,执行用于对控制对象进行控制的用户程序,在执行包含在用户程序中的用于访问数据库系统的访问指令时,生成与访问指令相对应的指令语句,将所生成的指令语句经由通信接口发送至数据库系统,并将表示接收到与发送对应的来自数据库系统的响应为止的时间的信息保存至存储器。
[0019]根据本发明,能够高效地进行程序的调试以及健全性检查,并且例如在包含控制器和数据库系统的控制系统进行处理时发生了延迟等的不良情况的情况下也能够容易地分析出其原因。
【专利附图】
【附图说明】
[0020]图1是示出了本实施方式的控制系统I的系统结构的示意图。
[0021]图2是示出了表示本实施方式的PLC100的主要部分的硬件结构的示意图。
[0022]图3是示出了本实施方式的PLC100的软件结构的示意图。
[0023]图4是示出了连接到本实施方式的PLC100上使用的辅助装置300的硬件结构的示意图。
[0024]图5是用于说明由本实施方式的控制系统I提供的日志输出功能的概要的示意图。
[0025]图6是示出了运行日志184的图。
[0026]图7是示出了本实施方式的PLC100的处理步骤以及数据库装置400的处理步骤的流程图。
[0027]图8是示出了在指令超时发生时的PLC100的处理步骤以及数据库装置400的处理步骤的图。
[0028]图9是示出了变形例的PLC100的处理步骤及数据库装置400的处理步骤的流程图。
[0029]图10是示出了辅助装置300用于获取DB响应时间184J的处理的流程图。
[0030]图11是示出了在辅助装置300上显示包含DB响应时间184J的运行日志184时的用户接口的例子的图。
[0031]图12是示出了本实施方式的辅助装置300中提供的用户接口的一个例子的图。
[0032]附图标记的说明
[0033]I控制系统,10检测开关,20继电器,30伺服电机驱动器,32电机,100PLC,102电源单元,104CPU单元,10610单元,108PLC系统总线,110现场总线,112网络,114连接电缆,120处理器,122芯片集,124系统时钟,126主存储器,128非易失性存储器,130USB连接器,140PLC系统总线控制器,142、152、162缓冲存储器,144PLC系统总线控制电路,146、156、166DMA控制电路,148PLC系统总线连接器,150现场总线控制器,154现场总线控制电路,158现场总线连接器,160上位通信控制器,164上位通信控制电路,168上位通信连接器,170存储卡接口,172存储卡,1800S,184运行日志,184J DB响应时间,1842日志文件,186用户程序,188系统程序,190序列指令程序,192访问处理程序,194输入输出处理程序,196接口处理程序,198排程器,200远程IO终端,202通信连接器,208终端总线,300辅助装置,302CPU,304R0M, 306RAM, 308硬盘,310键盘,312鼠标,314监视器,316光盘读取装置,330辅助程序,332光学记录介质,388响应时间日志,392DB响应时间趋向数据,393DB连接名显示标签,400数据库装置。
【具体实施方式】
[0034]参照附图,详细说明本发明的实施方式。此外,对于图中的相同或等同的部分,标注相同附图标记,不重复进行说明。[0035]< A.系统结构>
[0036]首先,说明本实施方式的控制系统的系统结构。在本实施方式中,将对机械或设备等控制对象进行控制的可编程控制器(PLC)作为控制装置的典型例子来进行说明。但是,本发明的控制装置并不限定于PLC,能够适用于各种控制装置。
[0037]图1是示出了本实施方式的控制系统I的系统结构的示意图。参照图1,控制系统I包含PLC100、连接到PLC100上的辅助装置300、接受来自PLC100的访问的数据库装置400。PLC100周期性地执行如后述的用户程序,或者在发生事件时(按事件触发)执行用户程序。用户程序是由PLC100的使用人员作成的。用户例如能够通过操作辅助装置300来作成包含访问指令的程序(源程序)。辅助装置300将源程序变换为能够在PLC100上执行的形式,并将变换得到的用户程序发送至PLC100。PLC100执行用户程序,能够按照包含在用户程序中的访问指令来访问数据库装置400。
[0038]S卩,PLC100及数据库装置400能够经由以太网(注册商标)等的网络112来互相交
换数据。
[0039]辅助装置300是能够与PLC100连接的信息处理装置的典型例子。辅助装置300经由连接电缆114与PLC100相连接,向PLC100提供各种参数的设定、编程、显示(监视)、调试等的功能。在PLC100与辅助装置300之间,典型地能够按照USB(Universal Serial Bus:通用串行总线)标准来进行通信。
[0040]PLC100包含执行控制运算的CPU单元104和一个以上的IO(Input/Output:输入/输出)单元106。这些单元能够经由PLC系统总线108互相交换数据。另外,利用电源单元102向这些单元供给适当电压的电源。
[0041]在控制系统I中,PLC100经由(经由PLC系统总线108相连接)IO单元106或现场总线110,或者经由这两者,与各种现场仪器互相交换数据。这些现场仪器包含用于对控制对象进行某种处理的促动器以及用于从控制对象获取各种信息的传感器等。在图1中,作为这样的现场仪器的一个例子,包括检测开关10、继电器20以及对电机32进行驱动的伺服电机驱动器30。另外,PLC100经由现场总线110还与远程IO终端200相连接。远程IO终端200基本上与IO单元106同样地进行与一般的输入输出处理相关的处理。更具体地,远程IO终端200包含用于与现场总线110进行数据传输处理的通信连接器202和一个以上的IO单元204。这些单元能够经由远程IO终端总线208互相交换数据。
[0042]< B.PLC100 的结构>
[0043]接着,说明本实施方式的PLC100的结构。图2是示出了表示本实施方式的PLC100的主要部分的硬件结构的示意图。图3是示出了本实施方式的PLC100的软件结构的示意图。
[0044]参照图2,说明PLC100的CPU单元104的硬件结构。CPU单元104包含处理器120、芯片集122、系统时钟124、主存储器126、非易失性存储器128、USB连接器130、PLC系统总线控制器140、现场总线控制器150、上位通信控制器160及存储卡接口 170。在芯片集122和其他元件之间,经由各种总线分别相结合。
[0045]处理器120及芯片集122典型地按照通用的计算机架构构成。即,处理器120解读并执行从芯片集122按照内部时钟依次供给来的指令代码。芯片集122和与自身相连接的各种元件互相交换内部数据,并且生成处理器120所需的指令代码。系统时钟124生成预先规定的周期性的系统时钟并将其提供给处理器120。芯片集122具有对由处理器120执行运算处理的结果所得到的数据等进行缓存的功能。
[0046]CPU单元104具有作为存储单元的主存储器126及非易失性存储器128。主存储器126是易失性存储区域,保持处理器120应执行的各种程序,并且还作为执行各种程序时的工作用存储器来使用。非易失性存储器128非易失性地保持OS (Operating System:操作系统)、系统程序、用户程序、日志信息等。
[0047]USB连接器130是用于连接辅助装置300和CPU单元104的接口。典型地,从辅助装置300传递来的能够执行的程序等经由USB连接器130导入至CPU单元104。
[0048]CPU单元104具有作为通信单元的PLC系统总线控制器140、现场总线控制器150及上位通信控制器160。这些通信电路进行数据的发送及接收。
[0049]PLC系统总线控制器140对经由PLC系统总线108的数据的互相交换进行控制。更具体地,PLC系统总线控制器140包含缓冲存储器142、PLC系统总线控制电路144及DMA(Dynamic Memory Access:动态内存访问)控制电路146。PLC系统总线控制器140经由PLC系统总线连接器148与PLC系统总线108相连接。
[0050]现场总线控制器150包含缓冲存储器152、现场总线控制电路154及DMA控制电路156。现场总线控制器150经由现场总线连接器158与现场总线110相连接。上位通信控制器160包含缓冲存储器(简称为“缓存”)162、上位通信控制电路(简称为“CTR”)164及DMA控制电路(简称为“DMA”)166。上位通信控制器160经由上位通信连接器168与网络112相连接。
[0051]存储卡接口 170连接存储卡172和处理器120,该存储卡172能够安装到CPU单元104上并能够从CPU单元104上拆卸。
[0052]接着,参照图3,说明用于实现本实施方式的PLC100所提供的各种功能的软件结构。包含在这些软件中的指令代码在适当的时刻被读取,并被CPU单元104的处理器120执行。
[0053]参照图3,作为由CPU单元104执行的软件,具有OS 180、系统程序188及用户程序186。
[0054]0S180提供处理器120用于执行系统程序188及用户程序186的基本的执行环境。
[0055]系统程序188是提供PLC100的基本功能的软件组。具体地,系统程序188包含序列指令程序190、DB (数据库)访问处理程序192、输入输出处理程序194、工具(Tool)接口处理程序196及排程器198。
[0056]相对于此,用户程序186是根据对控制对象的控制目的来任意作成的程序。即,用户程序186是根据用控制系统I进行控制的对象来任意设计的。
[0057]用户程序186与序列指令程序190协同地实现用户的控制目的。即,用户程序186通过利用序列指令程序190所提供的指令、函数、功能模块等,来实现程序化的动作。因此,还有将用户程序186及序列指令程序190统称为“控制程序”的情况。
[0058]就运行日志184而言,在随着系统程序188及用户程序186的执行而产生预先规定的事件时,将所发生的该事件的信息与时刻信息相关联对应地保存至该运行日志184。即,在运行日志184中,保存有与系统程序188或用户程序186或这两者的执行相对应的各种信息,以作为日志(履历信息)。DB响应时间184J是通过如后述的处理来记录的日志,表示PLClOO与数据库装置400通信时的响应时间的日志。在本实施方式中,PLC100将如下的时间作为DB响应时间184J记录到运行日志184中,该时间是指,从PLC100向数据库装置400发送针对数据库装置400的指令语句开始到得到响应为止的时间。
[0059]下面,更详细地说明各程序。
[0060]序列指令程序190包含如下的指令代码组,该指令代码组用于,随着用户程序186的执行,调出在用户程序186中被指定的序列指令的实体,并实现该指令的内容。
[0061]DB访问处理程序192包含如下的指令代码组,该指令代码组用于,随着用户程序186的执行,实现访问数据库装置400所需的处理。DB访问处理程序192包含与能够在用户程序186中指定的指令相对应的执行代码。
[0062]输入输出处理程序194是指,对IO单元106和各种现场仪器之间的输入数据的获取及输出数据的发送进行管理的程序。
[0063]工具(Tool)接口处理程序196提供用于与辅助装置300之间互相交换数据的接□。
[0064]排程器198根据预先规定的优先级或系统计时器的值等,来生成用于执行控制程序的线程(thread)或过程(procedure)。
[0065]用户程序186是如上述那样根据用户的控制目的来作成的。典型地,用户程序186的形式是能够在CPU单元104的处理器120中执行的目标程序形式。用户程序186是在辅助装置300等中以梯(Ladder)形式或功能块形式记述的源程序被编译(compiled)而生成的。然后,将生成的目标程序形式的用户程序从辅助装置300传递至CPU单元104,并保存至非易失性存储器128等。
[0066]PLC100具有利用图2及图3说明的结构,通过由处理器120执行系统程序188及用户程序186,来发挥“执行用于对控制对象进行控制的用户程序的指令执行部”的功能。另外,PLC100通过处理器120来执行DB访问处理程序192及用户程序186,从而发挥“访问处理部”的功能,其中,“访问处理部”用于,在包含用于访问数据库装置400的访问指令在内的用户程序被指令执行部执行时,对经由通信接口访问数据库装置400的处理进行控制。PLC100通过由处理器120根据包含在用户程序186中的访问指令执行DB访问处理程序192,来发挥以下功能,S卩,“生成与访问指令相对应的指令语句(SQL语句),并将所生成的指令语句发送至数据库装置400的指令语句发送部”以及“将特定信息保存至存储器的获取部,该特定信息表示从将所生成的指令语句发送至数据库装置400之后,到从数据库装置400接收到响应为止的时间”的功能。
[0067]< C.辅助装置300的结构>
[0068]接着,说明本实施方式的辅助装置300。辅助装置300用于对PLC100的CPU单元104的使用进行辅助,向PLC100提供各种参数的设定、编程、显示(监视)、调试等的功能。
[0069]图4是示出了连接到本实施方式的PLC100上使用的辅助装置300的硬件结构的示意图。辅助装置300典型地由通用的计算机构成。
[0070]参照图4,辅助装置300包括:CPU302,其执行包含OS的各种程序;R0M(Read OnlyMemory:只读存储器)304,其保存BIOS (Basic Input Output System:基本输入输出系统)及各种数据;存储器RAM (Random Access Memory:随机存取存储器)306,其提供用于保存CPU302执行程序所需的数据的工作区域;硬盘(HDD)308,其非易失性地保存CPU302所执行的程序等。更具体地,在硬盘308中保存有用于实现辅助装置300所提供的功能的辅助程序 330。
[0071]辅助装置300还包括接受来自用户的操作的键盘310和鼠标312以及用于将信息提示给用户的监视器314。进而,辅助装置300还包括用于与PLC100 (CPU单元104)等进行通信的通信接口(IF) 318。
[0072]在辅助装置300中执行的辅助程序330等被保存到光学记录介质332中来流通。保存到光学记录介质332中的程序,用光盘读取装置316来读取并保存至硬盘308等。或者,也可以通过网络从上位主机等中下载程序。
[0073]辅助装置300经由通信IF318与PLC100连接,通过由CPU302执行辅助程序330,来发挥以下功能,即,“接收处理部,其从PLC100接收包含保存在PLC100的存储器中的DB响应时间184J的运行日志184”以及“显示处理部,其将包含从接收处理部接收的DB响应时间184J的运行日志184显示到监视器314上”的功能。
[0074]< D.数据库装置400的结构>
[0075]接着,说明本实施方式的数据库装置400。数据库装置400能够采用提供数据库的公知的结构。这样的数据库能够采用关系数据类型或目标数据类型这样的任意结构。数据库装置400是按照通用的计算机架构构成的,因而在此不重复其详细说明。
[0076]数据库装置400接受来自PLC100的连接要求或访问要求(在关系数据类型中是SQL语句),来执行所需的处理,并将其处理结果等响应给PLC100。
[0077]< E.DB (数据库)响应时间的日志的保存的概要>
[0078]接着,说明本实施方式的控制系统I提供的日志输出功能的概要。本实施方式的日志输出功能能够输出与程序设定的规定处理的执行相对应地输出的日志(下面称为“执行日志”)以及与程序的执行失败或硬件的不良情况的发生相对应地输出的日志(下面称为“事件日志”)。运行日志184包含这些所有的日志。在本实施方式中,如上述那样,将从PLC100向数据库装置400发送针对数据库装置400的指令语句开始到得到响应为止的时间,作为DB响应时间184J记录到运行日志184中。在本实施方式中,说明PLC100如后述那样将运行日志184写入到安装到PLC100上的存储卡等记录介质中的例子。存储卡等记录介质保存运行日志184作为日志文件。
[0079]执行日志是在执行预先规定的种类的处理时通过将其处理内容与时刻信息相对应关联地记录来得到的信息。通过该执行日志,能够确认在用户程序186中指定的处理已执行。就执行日志而言,基本上在PLC100的运行过程中(正在执行由程序预先规定的种类的处理的状态)始终进行日志记录。事件日志是在所指定的处理的执行失败这样的情况下通过将其处理内容与时刻信息相对应关联地记录来得到的信息。典型地,在所指定的处理因出错等而被中断这样的情况下其内容被记录为日志记录。
[0080]图5是用于说明本实施方式的控制系统I提供的日志输出功能的概要的示意图。在图5的例子中,用户通过在辅助装置300中执行的辅助程序,来作成包含用于连接数据库装置400的连接指令在内的程序。辅助装置300将所作成的程序变换为能够在PLC100中执行的形式,并将变换得到的用户程序从辅助装置300发送至PLC100。其中,就在用户程序186中定义的指令而言,能够任意定义,并且所定义的该指令的种类并不对本发明的范围带来任何影响。[0081]更具体地,用户通过操作辅助装置300来作成在用户程序186中含有DB连接指令(DB_Insert)这样的程序。用辅助装置300生成的用户程序被PLC100执行,在到了 DB连接指令的执行时刻时,与DB访问处理程序192 (图3)相对应的指令代码被调出,并生成包含用于连接数据库装置400的连接要求的SQL语句,将其发送至数据库装置400。S卩,提供通过包含在系统程序188中的DB访问处理程序192来实现的DB连接服务,该DB连接服务因用户程序186中的DB连接指令的发行(发布)而被触发。然后,DB连接服务生成SQL语句,并将所生成的SQL语句传送给DB访问功能。DB访问功能为了访问各种数据库系统而准备的驱动器软件。DB访问功能是通过上位通信控制器160 (图2)及DB访问处理程序192 (图3)来实现的功能,将从DB连接服务接收的SQL语句经由网络112发送至数据库装置400。
[0082]数据库装置400在接收到来自PLC100的SQL语句时,按照该SQL语句执行处理,并根据需要将其结果响应给PLC100。
[0083]DB连接服务对该DB连接指令的执行(SQL语句的作成及发送)进行响应,将通过该指令来指定的信息与时刻信息相对应关联地(即,作为执行日志)写入到运行日志184 (在图5所示的例子中,是保存至存储卡172的日志文件1842)中。S卩,保存PLC100的运行状况的日志。此时,建立了如下的系统环境,即,用户不需明确指示向运行日志184写入执行日志,而在执行DB连接指令时,DB连接服务自动将运行状况写入至运行日志184。
[0084]S卩,PLC100的CPU单元104发挥写入单元的功能,即,通过执行DB访问处理程序192 (系统程序188),响应于发生的预先规定的事件,将所发生的该事件的信息(执行日志及或事件日志或这两者)与时刻信息相对应关联地写入至存储部即存储卡172。此时,通过PLC100的CPU单元104执行预先保存在非易失性存储器128等中的系统程序188,由此产生预先规定的事件(例如,DB连接指令的执行)。另外,此时,就DB连接服务而言,对从向数据库装置400发送指令语句开始至得到数据库装置400的响应为止的时间进行测定,并将该测定结果作为DB响应时间保存至运行日志184。
[0085]此外,运行日志184的写入对象并不限定于存储卡172,也可以是主存储器126或非易失性存储器128(图2),或者,也可以是PLC100外部的存储装置。其中,优选在PLC100的电源被切断的情况下也能够保持这些运行日志184的存储装置。
[0086]在这样的系统环境中,用户能够在用户程序186的任意位置上追加日志输出指令,并且还能够任意删除包含在用户程序186中的状态获取指令。例如,用户利用辅助装置300来如图5示出那样生成包含状态获取指令(DB_GetConnectionStatus)的用户程序186。这样,PLC100执行用户程序186,并根据状态获取指令来参照运行日志184,由此,用户能够读取DB响应时间184J。
[0087]< F.运行日志 184 >
[0088]参照图6,说明由PLC100记录的运行日志184。图6是示出了运行日志184的图,记录到运行日志184中的日志包含条目184A、日期及时间184B、类别184C、日志名184D、结果184E、连接名184F、序列ID184G、表名184H及DB响应时间184J。
[0089]日期及时间184B表示成为日志获取对象的处理所发生的时刻。类别184C表示日志的属性。日志名184D包含能够一目了然掌握日志内容的信息。结果184E包含表不处理结果的代码,例如包含表示与数据库装置400的连接成功还是失败的信息。DB连接名184F及序列ID184G主要是与DB连接相关的信息,含有用于表示在预先设定的连接设定中使用了哪个设定这样的信息。184H包含用于识别PLClOO所连接的数据库表的信息。DB响应时间184J表示PLC100和数据库装置400之间的通信所需的时间,如上所述,表示从PLC100向数据库装置400发送指令语句开始到得到响应为止的时间。
[0090]< G.处理步骤>
[0091]接着,说明本实施方式的PLC100将与数据库装置400进行通信时的响应时间输出至日志的处理。图7是示出了本实施方式的PLC100的处理步骤及数据库装置400的处理步骤的流程图。图7所示的各步骤是由CPU单元104的处理器120分别执行用户程序186及系统程序188来实现的。此外,在图9中示出了相互独立地执行用户程序186及系统程序188的例子,但也可以将这两个程序包含在一个程序中来执行该一个程序。
[0092]参照图7,就用户程序186的执行而言,处理器120加载(load)预先保存的用户程序186,并以预先规定的周期重复执行所加载的用户程序186。此外,假定加载的该用户程序186是被编译后能够执行的目标形式。其中,可以直接加载由用户作成的源代码,或者,也可以加载编译源代码得到的中间代码。此时,处理器120—边依次编译所加载的代码,一边执行处理。即,处理器120按照包含在用户程序186中的指令,一边根据需要调出系统程序188, —边执行被指定的处理。
[0093]在步骤SlOl中,处理器120按照包含在用户程序186中的指令来执行处理,在执行用于访问数据库装置400的指令时,用DB访问处理程序192来执行对数据库装置400的访问。
[0094]在步骤S201中,处理器120通过DB访问处理程序192执行对数据库装置400的访问,并生成与包含在用户程序186中的用于访问数据库装置400的指令相对应的指令语句(SQL语句)。
[0095]在步骤S203中,处理器120将所生成的SQL语句发送至数据库装置400。
[0096]在步骤S205中,处理器120设定自身与数据库装置400之间的通信的超时时间,并开始计测响应时间,直到接收到来自数据库装置400的响应为止。
[0097]在步骤S401中,数据库装置400接收从PLC100发送来的SQL语句,并执行所接收到的SQL语句。
[0098]在步骤S403中,数据库装置400将SQL语句的执行结果响应给PLC100。
[0099]在步骤S207中,处理器120在对自身与数据库装置400之间的通信设定的超时时间经过之前从数据库装置400接收到表示数据库装置400中的SQL语句的执行结果的响应时,获取在从发送SQL语句之后至接收到来自数据库装置400的响应所需的响应时间的计测结果。
[0100]在步骤S209中,处理器120将来自数据库装置400的响应从DB访问处理程序192传递至用户程序186,并将在接收到来自数据库装置400的响应为止的期间所计测的响应时间保存至运行日志184中作为DB响应时间184J。
[0101]在步骤S103中,处理器120与SQL语句的执行结果相对应地执行用户程序186。
[0102](发生指令超时时的与DB之间的响应时间的获取)
[0103]接着,参照图8,说明在发送了指令超时的情况的响应时间的保存方法。处理器120根据包含在用户程序186中的指令来调出DB访问处理程序192,来访问数据库装置400。此时,假定发生了在调出DB访问处理程序192时的指令的超时(指令超时)。即使在因包含在用户程序186中的指令超时(指令超时)而执行结束的情况下,DB连接服务自身继续等待来自数据库装置400的应答(response)。在已经超过(经过)DB连接服务等待来自数据库装置400的应答的等待时间的情况(通信超时)下,DB连接服务判断为与数据库装置400之间的连接状态被异常切断。例如,在PLC100与数据库装置400之间的通信路径上发生了通信障碍等的情况下,发生通信超时。
[0104]在下面的说明中,示出了如下情况下的处理步骤,S卩,在发生了指令超时的情况下,在发生通信超时之前PLC100从数据库装置400接收到表示SQL语句的执行结果的响应的情况。
[0105]图8是示出了在指令超时发生时的PLC100的处理步骤及数据库装置400的处理步骤的图。
[0106]在步骤SlOl中,处理器120按照包含在用户程序186中的指令来执行处理,在执行用于访问数据库装置400的指令时,通过DB访问处理程序192来执行对数据库装置400的访问。
[0107]在步骤S201中,处理器120通过DB访问处理程序192来执行对数据库装置400的访问,并生成与包含在用户程序186中的用于访问数据库装置400的指令相对应的指令语句(SQL语句)。
[0108]在步骤S203中,处理器120将所生成的SQL语句发送至数据库装置400。
[0109]在步骤S211中,处理器120设定与数据库装置400之间的通信的超时时间,并开始计测从数据库装置400得到表示SQL语句的执行结果的响应为止的响应时间,由此监控用于执行包含在用户程序186中的指令的时间是否发生超时(指令超时)。
[0110]在步骤S213中,处理器120通过DB访问处理程序192来接受来自数据库装置400的响应,直到产生通信超时为止,在产生通信超时为止的期间内发生了指令超时的情况下,不将来自DB的响应时间保存至日志,而从DB访问处理程序192将表示指令超时的通知传递给用户程序186。
[0111]在步骤S401中,数据库装置400接收从PLC100发送来的SQL语句,并执行所接收的SQL语句。
[0112]在步骤S403中,数据库装置400将SQL语句的执行结果响应给PLC100。
[0113]在步骤S215中,处理器120在接收到来自数据库装置400的表示SQL语句的执行结果的响应时,获取在发送SQL语句之后接收到来自数据库装置400的响应所需的响应时间的计测结果,并将该计测结果与时刻信息相对应地保存至运行日志184来作为DB响应时间 184J。
[0114]< H.变形例>
[0115]在上述的实施方式的说明中,由于将得到来自数据库装置400的响应为止的时间作为DB响应时间184J保存至日志,因而示出了对如下的响应时间进行计测的例子,该响应时间是指,由DB访问处理程序192向数据库装置400发送SQL语句之后得到来自数据库装置400的响应为止的响应时间。
[0116]除此之外,获取得到来自数据库装置400的响应为止的响应时间的方法,也可以采用下面的方法。例如,将发送时刻和接收时刻保存至日志中,该发送时刻是指处理器120将SQL语句发送至数据库装置400的时刻,该接收时刻是指PLC100从数据库装置400接收到表示SQL语句的执行结果的响应的时刻。PLClOO也可以通过求出这些发送时刻和接收时刻之间的差分,来获取从PLC100访问数据库装置400时的来自数据库装置400的响应时间。另外,用户也可以用辅助装置300来生成包含特定指令的用户程序来使PLC100执行该用户程序,由此获取从PLC100访问数据库装置400时的来自数据库装置400的响应时间,其中,该特定指令是指,用于参照包含在日志中的这些发送时刻和接收时刻的指令。
[0117]图9是示出了变形例的PLC100的处理步骤及数据库装置400的处理步骤的流程图。
[0118]在步骤SlOl中,处理器120按照包含在用户程序186中的指令来执行处理,在执行用于访问数据库装置400的指令时,通过DB访问处理程序192来执行对数据库装置400的访问。
[0119]在步骤S201中,处理器120通过DB访问处理程序192来执行对数据库装置400的访问,并生成与包含在用户程序186中的用于访问数据库装置400的指令相对应的指令语句(SQL语句)。
[0120]在步骤S203中,处理器120将所生成的SQL语句发送至数据库装置400。
[0121]在步骤S221中,处理器120获取发送SQL语句的时刻,并将执行了 SQL语句的发送处理的情况与时刻信息相对应地保存至日志中。
[0122]在步骤S401中,数据库装置400接收从PLC100发送来的SQL语句,并执行所接收的SQL语句。
[0123]在步骤S403中,数据库装置400将SQL语句的执行结果响应给PLC100。
[0124]在步骤S223中,处理器120设定向数据库装置400发送SQL语句之后的通信超时时间。处理器120接受来自数据库装置400的响应,直到发生通信超时为止,在接收到来自数据库装置400的响应时,获取接收时刻。处理器120将从数据库装置400接收到响应结果的情况与时刻信息相对应地保存至日志。
[0125]在步骤S225中,处理器120将来自数据库装置400的响应从DB访问处理程序192传递至用户程序186。
[0126]在步骤S103中,处理器120与SQL语句的执行结果相对应地执行用户程序186。
[0127]通过上述处理,将由PLC100向数据库装置400发生了 SQL语句的发送时刻和从数据库装置400接受到响应的接收时刻保存至日志。因此,PLC100能够通过求出发送时刻和接收时刻之间的差分,来获取DB响应时间184J。
[0128]< 1.来自数据库装置400的响应时间的获取>
[0129]例如用辅助装置300来获取用PLC100记录的运行日志184,由此用户能够通过操作辅助装置300来参照运行日志184。例如,辅助装置300如下从PLC100获取运行日志184。即,辅助装置300与PLC100进行通信,并用PLC100的系统程序188来从存储器中读取运行日志184,并将所读取的运行日志184从PLC100响应给辅助装置300。
[0130]图10是示出了辅助装置300用于获取DB响应时间184J的处理的流程图。
[0131]在步骤S311中,辅助装置300指示PLC100获取运行日志184。
[0132]在步骤S231中,处理器120通过执行系统程序188,来从存储器读取运行日志184。
[0133]在步骤S233中,处理器120通过执行系统程序188,来将从存储器读取的运行日志184响应给辅助装置300。
[0134]在步骤S313中,辅助装置300从PLC100接收运行日志184,并将所接收的运行日志184显示到监视器314上。
[0135]除此之外,也可以通过将规定的指令包含到用户程序中,来从存储器中读取运行日志184。用户能够通过操作辅助装置300,来作成包含状态获取指令(在图5的例子中用“DB_GetConnectionStatus”表示)的用户程序186。处理器120通过用户程序186的状态获取指令,执行一边调出系统程序188或DB访问处理程序192 —边读取DB响应时间184J的处理。通过执行用户程序186来读取包含DB响应时间184J的运行日志184,由此,例如在用户程序186执行任意指令之后获取运行日志184,从而用户能够对PLC100和数据库装置400之间的通信中的不良情况等的原因采取措施。
[0136]< J.辅助装置300中的用户接口的例子>
[0137]图11及图12是示出了本实施方式的辅助装置300中提供的用户接口的一个例子的图。辅助装置300例如通过上述处理来从PLC100获取运行日志184,并能够将所获取的运行日志184显示到辅助装置300的监视器上。
[0138]图11是示出了在辅助装置300上显示包含DB响应时间184J的运行日志184时的用户接口的例子的图。
[0139]如图11所示,显示画面380将包含由辅助装置300获取的DB响应时间184J的运行日志184显示为一览表。用响应时间日志388的各条目(条目381、条目382、条目383、条目384及条目385),来显示包含在运行日志184 (在图6中示出)中的各种数据。
[0140]辅助装置300例如也可以还将获取按钮390显示到显示画面380上,通过接受用户对获取按钮390的输入操作,来从PLC100获取包含DB响应时间184J的运行日志184。
[0141]图12是示出了在辅助装置300上以时间序列显示DB响应时间184J的例子的图。如图11所示,由于与时刻信息相对应地记录有DB响应时间184J,因而例如在DB响应时间趋向数据392中,辅助装置300也可以将纵轴作为DB响应时间184J并将横轴作为时刻,来以曲线图形式以时间序列显示DB响应时间184J。在图12的例子中,示出了由用户指定连接名184F的例子。连接名显示标签393表示用户所指定的连接名,并以时间序列显示DB响应时间184J。
[0142]在图12的例子中,DB响应时间184J在某一段的时间内较长,但在这以外的时间内比较稳定。因此,设计人员等例如能够考虑到在PLC100和数据库装置400之间的通信路径中通信暂时延迟等的可能性。另外,在DB响应时间184J随着时间经过慢慢变长的情况下,设计人员等例如能够考虑到在数据库装置400的处理过程中发生了延迟,因此要增强数据库装置400的处理性能的可能性。
[0143]通过采用如上所述的结构,用户能够容易地确定用户程序186是否被适当执行以及在执行用户程序186时发生不良情况的情况下是什么原因。由此,能够高效地进行程序的调试以及健全性的检查,例如即使在包含PLC100和数据库装置400的控制系统的处理过程中发生了延迟等的不良情况的情况下,也能够容易地分析其原因。
[0144]另外,在上述的实施方式的说明中,由于由辅助装置300将运行日志184显示到监视器上,因而说明了如下例子,即,例如PLC100从辅助装置300通过系统程序188来接受运行日志184的读取要求的情况下,从规定的存储器读取运行日志184来响应给辅助装置300的例子。除此之外,例如也可以采用如下结构,该结构是指,CPU单元104具备FTP (FileTransfer Protocol:文件传输协议)服务器功能,用FTP客户端软件登录到CPU单元104,并由FTP客户端软件通过FTP来获取运行日志184。
[0145]应当认为本公开的实施方式是在全部点的例示而非限制。本发明的范围并不由上述说明来表示,而是由权利要求书来表示,意在包括在与权利要求书均等的意思和范围内的全部变更。
【权利要求】
1.一种控制器,其特征在于, 包括: 通信接口,其用于与数据库系统连接, 指令执行部,其执行用于对控制对象进行控制的用户程序, 访问处理部,其在由所述指令执行部执行包含用于访问所述数据库系统的访问指令的所述用户程序时,对经由所述通信接口的访问所述数据库系统的处理进行控制; 所述访问处理部包括: 指令语句发送部,其生成与所述访问指令相对应的指令语句,并将所生成的指令语句发送至所述数据库系统, 获取部,其将表示特定时间的信息保存至存储器,该特定时间是指,从向所述数据库系统发送了所生成的所述指令语句之后至接收到来自所述数据库系统的响应为止的时间。
2.如权利要求1所述的控制器,其特征在于, 所述获取部,通过向所述数据库系统发送所生成的所述指令语句,从而开始计测响应时间,并将表示计测结果的所述信息保存至所述存储器,该计测结果是指,对从向所述数据库系统发送所述指令语句之后至接收到来自所述数据库系统的响应为止的所述响应时间进行计测得到的计测结果。
3.如权利要求1所述的控制器,其特征在于, 所述获取部,记录将所生成的所述指令语句向所述数据库系统发送的发送时刻,并记录接收到与所述指令语句对应的来自所述数据库系统的响应的接收时刻,并基于所述发送时刻及所述接收时刻,来获取表示接收到来自所述数据库系统的响应为止的时间的信息,并将所获取的所述信息保存至所述存储器。
4.如权利要求1所述的控制器,其特征在于, 所述获取部,在向所述数据库系统发送所述指令语句之后,在从所述数据库系统接收到正常的响应的情况下,将所述响应时间保存至所述存储器。
5.如权利要求1所述的控制器,其特征在于, 所述指令执行部,执行包含状态获取指令的用户程序,该状态获取指令是指,用于获取表示接收到来自所述数据库系统的响应为止的时间的信息的指令; 所述访问处理部,根据所述状态获取指令,将保存在所述存储器中的所述信息响应给所述用户程序。
6.如权利要求1所述的控制器,其特征在于, 所述控制器具有输入输出部,该输入输出部用于与连接到所述控制器上的信息处理装置进行数据的发送及接收; 所述获取部,在每次向所述数据库系统发送所述指令语句时,与时刻信息相对应关联地获取表示接收到所述响应为止的时间的信息; 所述输入输出部,将所述时刻信息与表示接收到所述响应为止的时间的信息相对应关联地发送至所述信息处理装置。
7.一种信息处理装置,与控制器相连接,其特征在于, 所述控制器与数据库系统相连接; 该控制器包括:指令语句发送部,其在执行包含用于访问所述数据库系统的访问指令的用户程序时,生成与所述访问指令相对应的指令语句,并将所生成的指令语句发送至所述数据库系统,获取部,其将表示特定时间的时间信息保存至存储器,该特定时间是指,从向所述数据库系统发送了由所述指令语句发送部生成的指令语句之后至接收到来自所述数据库系统的响应为止的时间; 所述信息处理装置具有: 接收处理部,其从所述控制器接收被所述获取部保存到所述存储器中的所述时间信息, 显示处理部,其将由所述接收处理部接收的所述时间信息显示到监视器上。
8.如权利要求7所述的信息处理装置,其特征在于, 所述控制器的所述获取部,在每次向所述数据库系统发送所述指令语句时,与时刻信息相对应关联地将表示接收到所述响应为止的时间的信息保存至所述存储器; 所述信息处理装置的所述接收处理部,从所述控制器接收与所述时刻信息相对应关联的表示接收到所述响应为止的时间的时间信息; 所述显示处理部,与 时刻信息相对应关联地显示所接收到的所述时间信息。
9.一种程序,用于对控制器的动作进行控制,其特征在于, 所述控制器具有用于访问数据库系统的通信接口、处理器及存储器; 所述程序使所述处理器执行如下步骤: 执行用于对控制对象进行控制的用户程序的步骤, 在执行包含用于访问所述数据库系统的访问指令的所述用户程序时,生成与所述访问指令相对应的指令语句,并将所生成的指令语句经由所述通信接口发送至所述数据库系统的步骤, 在向所述数据库系统发送了所生成的所述指令语句之后,将表示接收到来自所述数据库系统的响应为止的时间的信息保存至所述存储器的步骤, 将所保存的所述信息输出至与所述控制器相连接的所述信息处理装置的步骤。
10.一种控制器,其特征在于, 该控制器具有: 用于连接数据库系统的通信接口, 处理器, 存储器; 所述处理器,执行用于对控制对象进行控制的用户程序,在执行包含在所述用户程序中的用于访问所述数据库系统的访问指令时,生成与所述访问指令相对应的指令语句,将所生成的指令语句经由所述通信接口发送至所述数据库系统,并将表示接收到与发送对应的来自所述数据库系统的响应为止的时间的信息保存至所述存储器。
【文档编号】G05B19/418GK103995500SQ201310656966
【公开日】2014年8月20日 申请日期:2013年12月6日 优先权日:2013年2月15日
【发明者】冈村弘太郎, 太田政则, 西山佳秀, 矢尾板宏心, 中崎胜 申请人:欧姆龙株式会社