控制装置、存储介质、控制方法及控制系统与流程

文档序号:15735811发布日期:2018-10-23 21:27阅读:156来源:国知局

本发明涉及能够利用数据库的控制装置、存储有由该控制装置执行的控制程序的存储介质、控制方法以及具备该控制装置的控制系统。



背景技术:

在各种生产车间中,使用PLC(可编程逻辑控制器)等控制装置的FA(Factory Automation:工厂自动化)技术得到广泛普及。存在希望利用这种控制装置处理的数据的需求。

例如,日本特开2008-293138号公报(专利文献1)中公开了一种结构,当实施调试时,为了确认程序的逻辑,该结构用于提供具有某个特定条件成立时的值、即所谓的条件监测功能。

随着ICT(Information and Communication Technology:信息和通信技术)的进步,在控制装置中也能够收集及存储大量的数据,并非是专利文献1所公开那样的具有特定条件成立时的值的结构。

现有技术文献

专利文献

专利文献1:日本特开2008-293138号公报

在规模比较大的控制装置中,经由称为现场总线或现场网络的数据传输路径连接有功能单元,借助功能单元收集来自安装在控制对象中的传感器的观测值。

从控制对象收集的多个观测值之间需要统一时间轴。即,需要以能够互相比较同一时刻发生的观测值的方式进行收集。另一方面,在控制装置中,多个功能单元以各不相同的方式连接的情况也有很多。由于控制装置和功能单元之间的连接方式不同,因此在控制对象中,某个观测值从实际出现到被控制装置收集所需的延迟时间在功能单元之间大多不同。此外,因为延迟时间本身的存在,难以准确掌握观测值实际出现时刻。



技术实现要素:

为了解决上述问题,本发明的目的之一在于提供一种能够准确掌握从控制对象收集的观测值实际出现时刻的机制。

根据本发明的某个方面提供一种控制装置,对控制对象执行控制运算。控制装置具备:通信接口,用于经由数据传输路径使一个或多个功能单元与控制装置电连接;写入模块,将经由功能单元收集的观测值写入数据库;以及延迟时间获取模块,获取延迟时间,并且将表示所获取的延迟时间的信息进行存储,所述延迟时间是从表示观测值的信号输入于功能单元到表示该观测值的数据在控制装置中能够利用所需的时间。

根据本方面,在从表示观测值的信号输入于功能单元到表示该观测值的数据在控制装置中能够利用的期间存在延迟时间,即使观测值与延迟了该延迟时间的时刻对应地写入数据库,通过事先获取及存储表示延迟时间的信息,也能够高精度地实施事后的分析处理等。

优选的是,控制装置还具备时刻确定模块,所述时刻确定模块基于表示通过延迟时间获取模块获取的延迟时间的信息,确定表示观测值的信号出现的时刻。根据该方面,能够准确掌握从控制对象收集的观测值实际出现的时刻。

优选的是,写入模块将观测值与该观测值在控制装置中能够利用的时刻对应地写入数据库,时刻确定模块针对从数据库读取的观测值,通过基于表示通过延迟时间获取模块获取的延迟时间的信息对与该观测值对应的时刻进行校正,确定表示该观测值的信号出现的时刻。根据该方面,能够输出正确地再现了从控制对象收集的观测值实际出现时刻的结果。

优选的是,延迟时间包括:时间上不变动的第一延迟时间;以及时间上变动的第二延迟时间。根据该方面,能够获取分别考虑了时间上不变动的成分及时间上变动的成分的延迟时间。

优选的是,第一延迟时间包括依赖于功能单元中设定的处理特性和功能单元的功能中的至少一方而确定的延迟时间。根据该方面,能够考虑功能单元中设定的处理特性或功能单元的功能来确定延迟时间的长度。

优选的是,第一延迟时间包括依赖于从功能单元到控制装置的数据传输路径而确定的延迟时间。根据该方面,能够考虑从功能单元到控制装置的数据传输路径来确定延迟时间的长度。

优选的是,通信接口和功能单元分别具有时刻互相同步的计数器,第二延迟时间包括依赖于时刻互相同步的计数器所显示的计数值间的偏离量而在时间上变化的延迟时间。根据该方面,能够考虑时刻互相同步的计数器间产生的时刻偏离等的影响,动态地确定延迟时间的长度。

优选的是,控制装置还具备输出模块,所述输出模块将数据库中存储的观测值和表示与该观测值对应的延迟时间的信息关联起来输出。根据该方面,即使在控制装置以外的其他装置中对观测值进行分析的情况下,也能够准确掌握观测值实际出现时刻。

优选的是,数据库内置于控制装置中。根据该方面,能够更高速地进行从控制装置向数据库的数据写入。

根据本发明的其他方面提供一种存储介质,存储有控制程序,所述控制程序在对控制对象执行控制运算的控制装置中执行。控制装置经由数据传输路径与一个或多个功能单元电连接,控制程序使控制装置执行如下步骤:将经由功能单元收集的观测值写入数据库;以及获取延迟时间,并且将表示所获取的延迟时间的信息进行存储,延迟时间是从表示观测值的信号输入于功能单元到表示该观测值的数据在控制装置中能够利用所需的时间。

根据本方面,在从表示观测值的信号输入于功能单元到表示该观测值的数据在控制装置中能够利用的期间存在延迟时间,即使观测值与延迟了该延迟时间的时刻对应地写入数据库,通过事先获取及存储表示延迟时间的信息,也能够高精度地实施事后的分析处理等。

根据本发明的另外其他方面提供一种控制系统,具备:控制装置,对控制对象执行控制运算;以及一个或多个功能单元,经由数据传输路径与控制装置电连接。控制装置具备:写入模块,将经由功能单元收集的观测值写入数据库;延迟时间获取模块,获取延迟时间,并且将表示所获取的延迟时间的信息进行存储,所述延迟时间是从表示观测值的信号输入于功能单元到表示该观测值的数据在控制装置中能够利用所需的时间。

根据本方面,在从表示观测值的信号输入于功能单元到表示该观测值的数据在控制装置中能够利用的期间存在延迟时间,即使观测值与延迟了该延迟时间的时刻对应地写入数据库,通过事先获取及存储表示延迟时间的信息,也能够高精度地实施事后的分析处理等。

根据本发明的另外其他方面提供一种控制方法,在对控制对象执行控制运算的控制装置中执行,控制方法具备以下步骤:将经由功能单元收集的观测值写入数据库;以及获取延迟时间,并且将表示所获取的延迟时间的信息进行存储,延迟时间是从表示观测值的信号输入于功能单元到表示该观测值的数据在控制装置中能够利用所需的时间。

根据本发明,能够提供一种能够准确掌握从控制对象收集的观测值实际出现时刻的机制。

附图说明

图1是示出本实施方式所涉及的控制系统的构成例的示意图。

图2是示出构成本实施方式所涉及的控制系统的PLC的硬件构成例的框图。

图3是示出构成本实施方式所涉及的控制系统的功能单元的硬件构成例的框图。

图4是示出构成本实施方式所涉及的控制系统的连接器单元的硬件构成例的框图。

图5是示出构成本实施方式所涉及的控制系统的支持装置的硬件构成例的框图。

图6是示出本实施方式所涉及的控制系统中数据传输所需的时间的流程图。

图7是说明本实施方式所涉及的控制系统中数据存储时及数据利用时的处理的示意图。

图8是示出构成本实施方式所涉及的控制系统的CPU单元及支持装置的软件构成例的框图。

图9是用于说明本实施方式所涉及的控制系统中延迟时间校正的整体处理的图。

图10是示出本实施方式所涉及的控制系统中利用的数据管理信息的构成例的表。

图11是示出本实施方式所涉及的控制系统中延迟时间校正的安装例的示意图。

图12是示出本实施方式所涉及的控制系统中延迟时间校正相关的处理步骤的流程图。

图13是本实施方式所涉及的控制系统的功能单元执行一般的输入处理时的流程图的一例。

图14是本实施方式所涉及的控制系统的功能单元执行过采样的输入处理时的流程图的一例。

图15是用于说明本实施方式所涉及的控制系统的通信主机提供的同步管理功能的图。

图16是用于说明本实施方式所涉及的延迟时间校正的时序数据的利用方式的一例的图。

附图标记说明

1控制系统 2PLC

3、3A、3B、3C、3D远程IO装置 4、5、6现场总线

8上位网络 12、14本地总线

100CPU单元 102、202处理器

104芯片组 106、206主存储装置

108、208辅助存储装置 110网络控制器

112、212USB控制器 114存储卡接口

116存储卡 118、152、166本地总线控制器

119、121、126、151、153、161、167计数器

120、162现场总线控制器 128RTC

130PLC引擎 134调度器

136变量管理程序 138控制程序

140机器学习引擎 142学习功能

144异常检测功能 146事件日志

150功能单元 154、164主控制器

156功能模块 160连接器单元

180嵌入式数据库

182、184、300、310、502、504时序数据

190嵌入式数据库管理服务 192延迟时间获取模块

194时刻确定模块 196数据输出模块

200支持装置 204显示器

210内部总线 214输入装置

216OS 218支持程序

260数据挖掘工具 262嵌入式数据库访问功能

264数据挖掘功能 266可视化功能

270机器学习参数设定工具 272变量访问功能

350数据管理信息 352静态延迟校正用数据

354动态延迟校正用数据 402、422输入处理

404、408、424、428、432、436传输处理

406、426、434预处理 410、430、438接收处理

412、440存储处理 506静态延迟校正后数据

508动态延迟校正后数据 1362系统变量

1364设备变量 1366异常检测参数

1381用户程序 1382嵌入式数据库读取程序

1383嵌入式数据库写入程序 1384机器学习引擎接口

1385学习请求程序 1386监测请求程序

1387序列化程序 1388特征量生成程序

3521基本通信延迟信息 3522系统构成信息

3523从属机设定信息 3541实时通信延迟信息

d1功能单元起因延迟 d1’动态延迟

d2基本通信延迟 d3动态通信延迟。

具体实施方式

参照附图对本发明的实施方式进行详细说明。此外,对于图中的相同或相当部分,标注相同附图标记,不重复其说明。

A.控制系统的整体构成例

首先,对本实施方式所涉及的控制系统1的整体构成例进行说明。图1是示出本实施方式所涉及的控制系统1的构成例的示意图。

参照图1,作为一例,控制系统1包括对控制对象进行控制的PLC(可编程逻辑控制器)2、经由现场总线与PLC2连接的远程IO装置3A、3B、3C、3D(以下,也统称为“远程IO装置3”)。

一般来说,“现场总线”也称为“现场网络”,为了简化说明,在以下的说明中,统称为“现场总线”。即,本说明书中的“现场总线”除了“现场总线”之外,可包括“现场网络”。

PLC2也可以还与上位网络8连接。上位网络8既可以与其他PLC连接,也可以与网关、数据库服务器等任意信息处理装置连接。

在图1所示的构成例中,远程IO装置3A、3B、3C经由现场总线4与PLC2连接。远程IO装置3A提供有其他现场总线6,远程IO装置3A和远程IO装置3D经由现场总线6连接。现场总线6由远程IO装置3A中安装的连接器单元160进行管理。PLC2能够经由现场总线4及现场总线6访问远程IO装置3D。

作为现场总线5、6,一般采用网络内的节点间的数据到达时间得到保证的协议。作为这种节点间的数据到达时间得到保证的协议,例如能够采用EtherCAT(注册商标)等。或者,也可以采用EtherNet/IP(注册商标)、DeviceNet(注册商标)、CompoNet(注册商标)等。此外,现场总线5及现场总线6无需采用互相相同的协议,只要采用适合各自的装置或单元的协议即可。

一般来说,PLC2由CPU单元100和在CPU单元100安装的一个或多个功能单元150构成。CPU单元100相当于对控制对象执行控制运算的控制装置。有时也将CPU单元100自身称为“控制装置”,也有时将CPU单元100及一个或多个功能单元150整体称为“控制装置”。

此外,远程IO装置3由具有通信功能的连接器单元160和在连接器单元160安装的一个或多个功能单元150构成。CPU单元100和功能单元150之间以及连接器单元160和功能单元150之间经由称为本地总线的数据传输路径电连接。

在本说明书中,“功能单元”意指的概念包括用于在设备、机器等控制对象之间进行各种信号交换的装置。功能单元150例如具有接收来自控制对象的数字信号的DI(Digital Input:数字输入)功能、向控制对象输出数字信号的DO(Digital Output:数字输出)功能、接收来自控制对象的模拟信号的AI(Analog Input:模拟输入)功能、向控制对象输出模拟信号的AO(Analog Output:模拟输出)功能中的一个或多个功能。或者,作为功能单元150,也可以包括实现PID(Proportional Integral Derivative:比例积分微分)控制、运动控制等特殊功能的功能。

如上所述,CPU单元100和功能单元150之间经由现场总线以及/或者本地总线等数据传输路径电连接。

在本实施方式中,作为控制装置的一例的CPU单元100具有对经由功能单元150收集的观测值进行存储的数据库。下面,从内置在CPU单元100中的意思上,将该数据库称为“嵌入式数据库180”。在本实施方式中,作为一例,数据库内置在CPU单元100中。但是,本发明的实质不在于数据库本身,既也可以在与CPU单元100不同的装置中配置数据库(即,外置数据库),也可以组合利用嵌入式数据库和外置数据库。在以下的说明中,也将“数据库”记为“DB”。

在本说明书中,“观测值”是对CPU单元100的控制运算中能够利用的值(实际值)进行统称的概念,一般可能包括从控制对象获取并用于控制运算的输入值(数字值或模拟值)、基于所获取的输入值通过控制运算确定的对控制对象的输出值或指令值(数字值或模拟值)、在控制运算的过程中计算出来的运算值(数字值或模拟值)等。即,“观测值”具有的概念包括能够在CPU单元100中能够作为数据存储或者能够作为数据从CPU单元100进行外部输出的任意值。

一般来说,在嵌入式数据库180中以记录的形式存储一个或多个观测值。

B.各装置的硬件构成例

下面,对构成本实施方式所涉及的控制系统1的各装置的硬件构成例进行说明。

b1:PLC

图2是示出构成本实施方式所涉及的控制系统1的PLC2的硬件构成例的框图。参照图2,PLC2包括CPU单元100和一个或多个功能单元150。

CPU单元100包括处理器102、芯片组104、主存储装置106、辅助存储装置108、网络控制器110、USB(Universal Serial Bus:通用串行总线)控制器112、存储卡接口114、本地总线控制器118、现场总线控制器120、计数器126和RTC(Real Time Clock:实时时钟)128。

处理器102相当于执行控制运算等的运算处理部,由CPU、MPU、GPU等构成。具体地,处理器102通过读取辅助存储装置108中存储的各种程序,并在主存储装置106中展开执行,从而实现与控制对象相应的控制以及后述那样的各种处理。辅助存储装置108例如由HDD(Hard Disk Drive:硬盘驱动器)、SSD(Solid State Drive:固态硬盘)等非易失性存储装置等构成。主存储装置106由DRAM(Dynamic Random Access Memory:动态随机存取存储器)、SRAM(Static Random Access Memory:静态随机存取存储器)等易失性存储装置等构成。

芯片组104通过控制处理器102和各设备,实现CPU单元100整体的处理。

在辅助存储装置108中,除了用于实现基本功能的系统程序之外,还存储有根据设备、机器等控制对象生成的用户程序。此外,也可以使用辅助存储装置108构成嵌入式数据库180(参照图1)。一般来说,嵌入式数据库180通过CPU单元100的处理器102读取辅助存储装置108中存储的系统程序并在主存储装置106中展开执行而实现。

网络控制器110经由上位网络8在网关、数据库服务器等任意信息处理装置之间进行数据的交换。USB控制器112借助USB连接在支持装置200之间进行数据的交换。

存储卡接口114以可拆卸存储卡116的方式构成,能够对存储卡116写入数据,从存储卡116读取各种数据(用户程序、跟踪数据等)。也可以使用存储卡116构成嵌入式数据库180(参照图1)。

计数器126用作管理由CPU100执行的各种程序的执行定时所需的时刻基准。一般来说,计数器126按照预定周期对计数值进行递增或递减。作为计数器126,既可以使用在驱动处理器102的系统总线上配置的高精度事件定时器(HPET:High Precision Event Timer)等来安装,或者也可以使用ASIC(Application Specific Integrated Circuit:应用专用集成电路)、FPGA(Field-Programmable Gate Array:现场可编程门阵列)等专用电路来安装。

RTC128是具有计时功能的一种计数器,向处理器102等提供当前时刻。

本地总线控制器118相当于经由数据传输路径使一个或多个功能单元150与CPU单元100电连接所需的通信接口。更具体地,本地总线控制器118经由本地总线12在CPU单元100中安装的一个或多个功能单元150之间进行数据的交换。本地总线控制器118具有计数器119,计数器119用作在经由本地总线12连接的功能单元150之间管理定时所需的时刻基准。同样地,功能单元150也分别具有计数器151,计数器151用作在本地总线控制器118及其他功能单元150之间管理定时所需的时刻基准。计数器119及计数器151能够采用与上述计数器126相同的结构。

本地总线控制器118作为进行经由本地总线12的固定周期通信所需的通信主机发挥功能,逐次监测与本地总线12连接的功能单元150(相当于通信从属机)分别具有的计数器显示的计数值和计数器119显示的计数值之差,并根据需要输出时刻同步信号,时刻同步信号用于对计数值产生偏离的设备指示校正。

如此,相当于通信接口的本地总线控制器118及功能单元150分别具有时刻互相同步的计数器。此外,本地总线控制器118具有同步管理功能,同步管理功能向功能单元150提供用于使功能单元150的计数器显示的计数值和计数器119显示的计数值一致的指令。

现场总线控制器120相当于经由数据传输路径使一个或多个功能单元150与CPU单元100电连接所需的通信接口。更具体地,现场总线控制器120经由现场总线4在连接器单元160及与连接器单元160连接的功能单元150等设备之间进行数据的交换。现场总线控制器120具有计数器121,计数器121用作在经由现场总线4连接的设备(连接器单元160等)之间管理定时所需的时刻基准。同样地,设备(连接器单元160及与连接器单元160连接的功能单元150等)也分别具有计数器161及计数器151,计数器161及计数器151用作在现场总线控制器120之间管理定时所需的时刻基准。计数器121、计数器161、计数器151之间维持时刻互相同步。计数器121、计数器161及计数器151能够采用与上述计数器126相同的结构。

现场总线控制器120作为进行经由现场总线4的固定周期通信所需的通信主机发挥功能,逐次监测与现场总线4连接的各连接器单元160(相当于通信从属机)具有的计数器161显示的计数值和计数器121显示的计数值之差,并根据需要输出时刻同步信号,时刻同步信号用于对计数值产生偏离的连接器单元160指示校正。如此,现场总线控制器120具有同步管理功能,同步管理功能向连接器单元160提供用于使连接器单元160的计数器161显示的计数值和计数器121显示的计数值一致的指令。

此外,连接器单元160的计数器161以与连接器单元160中安装的一个或多个功能单元150的计数器151同步的方式进行管理。结果,相当于通信接口的现场总线控制器120、连接器单元160及功能单元150分别具有时刻互相同步的计数器。

图2示出了处理器102通过执行程序而提供必要的功能的构成例,但所提供的这些功能的一部分或全部也可以使用专用的硬件电路(例如,ASIC或FPGA等)来实现。或者,也可以使用遵照通用架构的硬件(例如,以通用个人计算机为基础的工业用个人计算机)来实现CPU单元100的主要部分。在这种情况下,也可以使用虚拟化技术,在并行执行多个用途不同的OS(Operating System:操作系统)的同时,在各OS上执行必要的应用。

此外,也可以采用在CPU单元100中整合了显示装置、支持装置200等的功能的结构。

b2:功能单元

图3是示出构成本实施方式所涉及的控制系统1的功能单元150的硬件构成例的框图。参照图3,功能单元150包括本地总线控制器152、相当于运算处理部的主控制器154和功能模块156。

本地总线控制器152一般使用ASIC、FPGA等专用电路来安装,并经由本地总线12与CPU单元100之间进行数据的交换。此外,在功能单元150安装于连接器单元160中的情况下,本地总线控制器152经由本地总线14在连接器单元160之间进行数据的交换(参照后述的图4)。

本地总线控制器152具有计数器153,计数器153用作管理经由本地总线12的数据通信中的定时所需的时刻基准。本地总线控制器152作为按照来自通信主机的指令确定数据的发送定时或接收定时的通信从属机发挥功能。

主控制器154相当于统辖功能单元150中的处理的运算处理部,在向功能模块156提供测量定时等指令的同时,将来自功能模块156的测量值经由本地总线控制器152发送出去。

主控制器154一般使用ASIC、FPGA等专用电路实现,但也可以通过安装软件来实现。在采用安装软件的情况下,主控制器154主要由处理器、主存储装置、辅助存储装置等构成,处理器通过读取辅助存储装置中存储的系统程序(固件)等,并在主存储装置中展开执行,从而实现必要的处理。

功能模块156是提供功能单元150的功能的内核,例如包括由用于实现DI功能或DO功能的二极管、晶体管等构成的逻辑电路。或者,功能模块156包括用于实现AI功能或AO功能的AD(Analog Digital:模数)转换器、DA(Digital Analog:数模)转换器等。此外,功能模块156也可以包括用于实现PID控制、运动控制等特殊功能的处理器等。关于功能模块156的部分,也可以根据对功能单元150分配的功能采用任意结构。

b3:连接器单元

图4是示出构成本实施方式所涉及的控制系统1的连接器单元160的硬件构成例的框图。参照图4,连接器单元160除了用于与现场总线4连接的接口之外,还具有用于实现独自的本地总线14的接口。

更具体地,连接器单元160包括现场总线控制器161、主控制器164、本地总线控制器166。

现场总线控制器162一般使用ASIC、FPGA等专用电路来安装,经由现场总线4与CPU单元100之间进行数据的交换。现场总线控制器162具有计数器161,计数器161用作管理经由现场总线4的数据通信中的定时所需的时刻基准。现场总线控制器162作为按照来自通信主机的指令确定数据的发送定时或接收定时的通信从属机发挥功能。

主控制器164相当于统辖连接器单元160中的处理的运算处理部,主要对现场总线4和本地总线14之间的数据交换进行控制。

主控制器164一般使用ASIC、FPGA等专用电路实现,但也可以通过安装软件来实现。在采用安装软件的情况下,主控制器164主要由处理器、主存储装置、辅助存储装置等构成,处理器通过读取辅助存储装置中存储的系统程序(固件)等,并在主存储装置中展开执行,从而实现必要的处理。

本地总线控制器166经由本地总线14与一个或多个功能单元150之间进行数据的交换。本地总线控制器166具有计数器167,计数器167用作在经由本地总线14连接的功能单元150之间管理定时所需的时刻基准。本地总线控制器166作为进行经由本地总线14的固定周期通信所需的通信主机发挥功能,逐次监测与本地总线14连接的功能单元150(相当于通信从属机)具有的计数器显示的计数值和计数器167显示的计数值之差,并根据需要输出时刻同步信号,时刻同步信号用于对计数值产生偏离的设备指示校正。如此,本地总线控制器166具有同步管理功能,同步管理功能向功能单元150提供用于使功能单元150的计数器显示的计数值和计数器167显示的计数值一致的指令。

b4:支持装置

图5是示出构成本实施方式所涉及的控制系统1的支持装置200的硬件构成例的框图。支持装置200提供对CPU单元100的连接器单元160管理的各种变量值、各种设定值等进行确认的功能、对由CPU单元100执行的程序进行开发的功能及调试的功能、对CPU单元100的嵌入式数据库180中存储的数据进行利用的功能(例如,数据挖掘功能)等。

支持装置200一般通过在具有通用架构的个人计算机上执行支持程序而实现。更具体地,参照图5,支持装置200包括处理器202、显示器204、主存储装置206、辅助存储装置208、USB控制器212、输入装置214。这些组件经由内部总线210连接。

处理器202由CPU、MPU、GPU等构成,通过读取辅助存储装置208中存储的包括OS216及支持程序218的各种程序,并在主存储装置206中展开执行,从而实现上述各种功能。辅助存储装置208例如由HDD、SSD等非易失性存储装置等构成。主存储装置206由DRAM、SRAM等易失性存储装置等构成。

显示器204是显示处理器202等的运算结果的设备,例如由LCD(Liquid Crystal Display:液晶显示器)等构成。

USB控制器212经由USB连接而在CPU单元100之间进行数据的交换。

输入装置214是接收用户操作的设备,例如由键盘、存储器等构成。

C.处理概要

下面,对本实施方式所涉及的控制系统1中的处理的概要进行说明。

图6是示出本实施方式所涉及的控制系统1中的数据传输所需的时间的流程图。图6示出了对分别输入到表示功能单元150-1及功能单元150-2中的输入信号的数据进行传输的例子,功能单元150-1经由本地总线与CPU单元100连接,功能单元150-2经由现场总线与CPU单元100连接。此时,功能单元150-2经由本地总线与连接器单元160连接,构成远程IO装置3的一部分。

参照图6,首先,经由本地总线连接的功能单元150-1中被输入的输入信号A在功能单元150-1的功能模块156中通过AD转换等输入处理402转换为数字数据,实施向本地总线控制器152的传输处理404。此外,在本地总线控制器152中实施编码等传输预处理406后,实施向CPU单元100的本地总线控制器118的传输处理408。在本地总线控制器118中,在对接收的数据实施解码等接收处理410后,实施向嵌入式数据库180的存储处理412。

通过这种一系列的数据传输,从功能单元150-1中被输入输入信号A起到表示输入信号A的数据在嵌入式数据库180中存储完成会产生延迟时间Δ1。

此外,经由现场总线连接的功能单元150-2中被输入的输入信号B在功能单元150-2的功能模块156中通过AD转换等输入处理422转换为数字数据,实施向本地总线控制器152的传输处理424。此外,在本地总线控制器152中实施编码等传输预处理426后,实施向连接器单元160的本地总线控制器164的传输处理428。在本地总线控制器164中,在对接收的数据实施解码等接收处理430后,实施向现场总线控制器162的传输处理432。

此外,在现场总线控制器162中实施编码等传输预处理434后,实施向CPU单元100的现场总线控制器120的传输处理436。在现场总线控制器120中,在对接收的数据实施解码等接收处理438后,实施向嵌入式数据库180的存储处理440。

通过这种一系列的数据传输,从功能单元150-2中被输入输入信号B起到表示输入信号B的数据在嵌入式数据库180中存储完成会产生延迟时间Δ2。

在图6所示的流程图中,输入信号A及输入信号B分别以相同的定时输入到功能单元150-1及功能单元150-2,但表示各自信号的数据在CPU单元100的嵌入式数据库180中存储的定时不同。即,存在延迟时间Δ1及延迟时间Δ2,并且这些延迟时间不相同,因此在控制对象中实际发生某种现象的定时和实际的嵌入式数据库180所对应的数据被存储的定时不一致。

另一方面,在事后利用这些嵌入式数据库180中存储的数据时,尽可能正确地再现现象实际发生的时刻较重要。于是,在本实施方式所涉及的CPU单元100中,将用于校正上述延迟时间的数据管理信息与所收集的观测值一起存储。此外,通过使用数据管理信息校正观测值的时刻,再现所对应的现象实际出现的定时。

在本说明书中,“延迟时间”的意思是从表示观测值的信号输入到功能单元150到表示该观测值的数据能够在CPU单元100中利用所需的时间。

图7是说明本实施方式所涉及的控制系统1中的数据存储时及数据利用时的处理的示意图。参照图7,在向嵌入式数据库180进行数据存储时,生成将测量定时和观测值的组按照测量定时的顺序排列的时序数据300。

在本说明书中,“时序数据”的意思是通过连续(或者隔一定间隔而不连续)获取关于任意象的数据(观测值)的时间变化而得到的一系列的值。

与时序数据300相对应而生成数据管理信息350,数据管理信息350包括获取时序数据300中包含的观测值时的延迟时间等信息。数据管理信息350包括:静态延迟校正用数据352,用于校正由控制系统1的网络构成或硬件构成预先确定的延迟(以下,也称为“静态延迟”);动态延迟校正用数据354,用于校正因网络的同步波动、干扰因素等而变化的延迟(以下,也称为“动态延迟”)。

表示静态延迟的延迟时间相当于时间上没有变动的延迟时间,表示动态延迟的延迟时间相当于时间上有变动的延迟时间。

另一方面,在利用数据时,生成通过对嵌入式数据库180中存储的时序数据300进行使用了数据管理信息350的延迟时间校正而得到的校正后时序数据310。使用校正后时序数据310进行各种分析等。

在图7中,为了便于说明,仅示出包含单一观测值的时序数据300,但实际上,一般会对多个包含单一观测值的时序数据300或包含多个观测值的时序数据300一并进行分析。由于即使在这种情况下,也能够正确地再现各个观测值实际出现的定时,因此能够以共同的时间轴分析多个观测值。

D.控制系统的软件构成例

下面,对实现本实施方式所涉及的控制系统1的主要部分的软件构成例进行说明。

图8是示出构成本实施方式所涉及的控制系统1的CPU单元100及支持装置200的软件构成例的框图。图8中示出了如下结构:作为嵌入式数据库180中存储的数据的利用例,基于观测值的时序数据或从观测值计算出来的特征量的时序数据进行机器学习,并且利用从该机器学习得到的学习结果,能够进行检测异常的有无处理。但是,该机器学习所涉及的功能并不是本发明的本质,而是可选的结构。

参照图8,CPU单元100包括PLC引擎130、机器学习引擎140、嵌入式数据库180、嵌入式数据库管理服务190。

PLC引擎130一般通过CPU单元100的处理器102读取辅助存储装置108中存储的系统程序并在主存储装置106中展开执行来提供各种程序的执行环境,能够在该执行环境下执行各种程序。

更具体地,PLC引擎130包括调度器134、变量管理程序136和控制程序138。

调度器134对由CPU单元100执行的进程、任务等管理资源分配、执行定时等。

变量管理程序136以变量的形式管理PLC引擎130(CPU单元100)中能够利用的值。更具体地,变量管理程序136例如对系统变量1362、用户/设备变量1364、异常检测参数1366进行管理。系统变量1362表示CPU单元100及所连接的各设备的状态等。用户/设备变量1364表示由CPU单元100执行的程序生成或更新的值、以及经由本地总线或现场总线与CPU单元100连接的各种设备保持的值。异常检测参数1366表示用于检测机器学习引擎140中的异常的阈值等。

调度器134及变量管理程序136可以作为系统程序的一部分来安装。在这种情况下,也可以由单一系统程序来提供这些程序提供的各个功能。

控制程序138一般由用户程序1381、嵌入式数据库读取程序1382、嵌入式数据库写入程序1383、机器学习引擎接口1384、特征量生成程序1388构成。

用户程序1381包括根据设备、机器等控制对象生成的序列运算、运动运算等的命令。

嵌入式数据库读取程序1382一般通过用户程序1381中规定的命令进行调用,读取由嵌入式数据库180指定的数据。在从嵌入式数据库180读取某些数据的情况下,也可以根据需要对读取的数据实施后述那样的延迟时间校正。该延迟时间校正也可以利用预先获取的数据管理信息350。

嵌入式数据库写入程序1383一般通过用户程序1381中规定的命令进行调用,向嵌入式数据库180写入指定的数据。一般来说,嵌入式数据库写入程序1383将经由功能单元150收集的观测值写入嵌入式数据库180。在对嵌入式数据库180写入某些数据的情况下,也可以根据需要生成及存储所对应的数据管理信息350。

机器学习引擎接口1384按照用户程序1381中规定的命令,指示机器学习引擎140的处理执行。更具体地,机器学习引擎接口1384包括学习请求程序1385、监测请求程序1386、序列化程序1387。

学习请求程序1385请求机器学习引擎140将指定的观测值或从观测值计算出来的特征量作为学习结果写入。

监测请求程序1386请求机器学习引擎140将指定的观测值或从观测值计算出来的特征量发送出去,从而判断异常的有无。

序列化程序1387对嵌入式数据库180中写入的数据进行序列化处理。此外,序列化程序1387对从嵌入式数据库180读取的数据进行反序列化处理。序列化处理相当于将对象数据转换为能够存储的字节序列的处理,反序列化处理相当于序列化处理的逆转换处理。此外,根据对嵌入式数据库180的访问速度及访问容量等,并不一定需要进行序列化处理及反序列化处理。即,序列化程序1387是可选的结构。

特征量生成程序1388一般通过用户程序1381中规定的命令进行调用,并对指定的观测值实施预先确定的运算处理,从而计算出特征量。

机器学习引擎140提供上述那样机器学习的功能。一般来说,机器学习引擎140通过CPU单元100的处理器102读取辅助存储装置108中存储的系统程序并在主存储装置106中展开执行而实现。但是,PLC引擎130及机器学习引擎140也可以互相作为不同的流程由处理器102执行。通过设为这种不同的流程,能够控制从PLC引擎130到机器学习引擎140的执行开始等的定时。

更具体地,机器学习引擎140包括学习功能142及异常检测功能144。学习功能142将PLC引擎130提供的观测值或从观测值计算出来的特征量与某种标签关联,并作为学习结果存储。异常检测功能144接收到PLC引擎130提供的观测值或从观测值计算出来的特征量,就与预先准备的学习结果进行比较,基于表示偏离学习结果的程度等的评价值是否超过作为异常检测参数1366设定的阈值,检测异常的有无。异常检测功能144在检测到某种异常时,也可以输出包含该检测到的异常内容的事件日志146。

嵌入式数据库180一般通过用于存储主存储装置106或辅助存储装置108(参照图2)中配置的数据的存储区域、和用于向该存储区域进行数据追加、更新、删除、检索等处理的数据库管理流程而实现。嵌入式数据库180存储由嵌入式数据库写入程序1383写入的时序数据。

构成嵌入式数据库180的数据库管理流程对来自外部的请求(查询)进行响应,并响应指定的数据。数据库管理流程一般通过CPU单元100的处理器102读取辅助存储装置108中存储的系统程序并在主存储装置106中展开执行而实现。

嵌入式数据库管理服务190管理对嵌入式数据库180的数据写入及从嵌入式数据库180的数据读取。嵌入式数据库管理服务190包括延迟时间获取模块192、时刻确定模块194、数据输出模块196。

延迟时间获取模块192通过后述那样的处理生成数据管理信息350。即,延迟时间获取模块192获取观测值相关的延迟时间,并且将表示所获取的延迟时间的信息(数据管理信息350)进行存储。如上所述,数据管理信息350也可以包括静态延迟校正用数据352及动态延迟校正用数据354。

时刻确定模块194基于表示由延迟时间获取模块192获取的延迟时间的信息(数据管理信息350),确定表示观测值的信号出现的时刻。即,时刻确定模块194计算出获取了对象的观测值的输入信号实际输入到功能单元150的时刻,或者获取了对象的观测值的输入信号实际发现的时刻。

在PLC引擎130中,观测值与时刻对应,因此时刻确定模块194通过对嵌入式数据库180中存储的时序数据中规定的时刻进行延迟时间校正,确定表示观测值的信号出现的时刻。

延迟时间校正既可以在向嵌入式数据库180写入数据时进行,也可以在从嵌入式数据库180读取数据时进行。更具体地,时刻确定模块194也可以实施以下任一种:(1)在将PLC引擎130提供的数据写入嵌入式数据库180的阶段进行延迟时间校正、(2)在从嵌入式数据库180中读取PLC引擎130请求的数据并进行响应的阶段进行延迟时间校正、(3)在从嵌入式数据库180读取某种数据并向机器学习引擎140等输出的阶段进行延迟时间校正。

数据输出模块196根据来自外部的请求,将从嵌入式数据库180读取的时序数据和该读取的时序数据所对应的数据管理信息350对应起来输出。即,数据输出模块196将嵌入式数据库180中存储的观测值和表示该观测值所对应的延迟时间的信息(数据管理信息350)关联起来输出。此外,既可以将数据管理信息350中包含的静态延迟校正用数据352及动态延迟校正用数据354二者对应起来输出,也可以仅输出其中的任一方。

另一方面,也可以在支持装置200中安装面向机器学习的各种功能。例如,在本实施方式所涉及的支持装置200中,安装有数据挖掘工具260及机器学习参数设定工具270。

数据挖掘工具260提供从嵌入式数据库180中存储的观测值的时序数据中找出适合用来检测控制对象中可能发生的异常的特征量、征兆等的功能。具体地,数据挖掘工具260包括嵌入式数据库访问功能262和数据挖掘功能264、可视化功能266。

嵌入式数据库访问功能262通过向CPU单元100发送请求(查询),从嵌入式数据库180获取必要的数据。

数据挖掘功能264通过对从嵌入式数据库180中获取的数据进行分析,确定适合用来检测控制对象中可能发生的异常的特征量、异常检测手法。此外,数据挖掘功能264也能够确定与所确定的特征量、异常检测手法相应的阈值(异常检测参数1366)等。此外,数据挖掘功能264能够对所确定的特征量、异常检测手法和异常检测参数等的合理性进行评价。

可视化功能266具有将数据挖掘功能264确定的内容从视觉上通知用户,或者将分析结果、异常检测的精度等图形化的功能。

机器学习参数设定工具270具有PLC变量访问功能272,将由数据挖掘功能264确定的阈值等反映到CPU单元100的异常检测参数1366。

E.延迟时间校正

下面,对本实施方式所涉及的控制系统1中的延迟时间校正进行说明。

e1:延迟时间校正的整体处理

在本实施方式所涉及的控制系统1中,作为静态延迟,设想功能单元起因延迟d1及基本通信延迟d2,作为动态延迟,设想动态通信延迟d3。

功能单元起因延迟d1的意思是对功能单元150的输入信号作为数据发送到CPU单元100或连接器单元160所需的延迟时间。即,功能单元起因延迟d1相当于依赖于功能单元150中设定的处理特性(例如,采样周期、滤波器特性等)及功能单元150的功能(例如,AI功能、DI功能的差别)中的至少一方而确定的延迟时间。

基本通信延迟d2的意思是数据从功能单元150传输到CPU单元100所需的延迟时间。即,基本通信延迟d2相当于依赖于从功能单元150到CPU单元100(处理器102)的数据传输路径而确定的延迟时间。更具体地,基本通信延迟d2相当于以下两个传输延迟时间的总和:相当于固定周期通信的一个通信周期的传输延迟时间;依赖于本地总线或现场总线的电缆长度等的传输延迟时间。

将时刻同步信号从CPU单元100发送到本地总线或现场总线,并且基于该时刻同步信号转一圈返回到CPU单元100所需的时间,能够计算出这种基本通信延迟d2。

此外,一般地,由于与现场总线相比较,本地总线的通信周期非常短,而且传输距离也短,因此作为基本通信延迟d2,也可以仅考虑现场总线上的数据传输。

功能单元起因延迟d1及基本通信延迟d2基本上按照每个所收集的观测值进行设定。但是,在相同的功能单元150能够接收多个输入信号,并且对于各个输入信号的输入处理的设定相同的情况下,在针对向该相同的功能单元150输入的输入信号来说的观测值之间,能够使功能单元起因延迟d1及基本通信延迟d2共用化。在这种情况下,功能单元起因延迟d1及基本通信延迟d2也可以按照每个功能单元150进行设定。

动态通信延迟d3能够根据作为通信主机发挥功能的本地总线控制器或现场总线控制器的同步管理功能逐次计算出来。更具体地,通信主机逐次监测自身的计数器显示的计数值和所连接的通信从属机的计数器显示的计数值之间的偏离程度,在该偏离大于预先确定的值时,将时刻同步信号发送到本地总线或现场总线,使时刻同步。动态通信延迟d3相当于通信主机的计数器显示的计数值和通信从属机的计数器显示的计数值之间的偏离程度。

图9是用于说明本实施方式所涉及的控制系统1中的延迟时间校正的整体处理的图。在图9中,作为一例,示出向连接器单元160中安装的功能单元150输入来自传感器的信号的情况。

参照图9,向任一功能单元150输入的输入信号(相当于从传感器输出的信号)500延迟功能单元起因延迟d1(=延迟时间α)而到达连接器单元160。即,在表示连接器单元160上的输入信号的时序数据502中,各观测值所对应的时刻比原来的时刻延迟有延迟时间α。

此外,在从连接器单元160向CPU单元100进行数据传输时,产生基本通信延迟d2(=延迟时间β)及动态通信延迟d3(=延迟时间γ(t))。即,在表示CPU单元100上的输入信号的时序数据504中,各观测值所对应的时刻相比原来的时刻在延迟时间β的基础上又延迟有延迟时间γ(t)。这里,由于表示动态通信延迟d3程度的延迟时间γ(t)随时间逐次变化,因此能够作为时间t的函数进行定义。

基本上,在CPU单元100上执行的控制运算中,使用图9所示的时序数据504。此外,时序数据504存储在嵌入式数据库180中。在本实施方式所涉及的控制系统1中,对CPU单元100上的时序数据504的时刻产生的延迟时间进行校正。

如图9所示,静态延迟校正用数据352包括表示功能单元起因延迟d1程度的延迟时间α和表示基本通信延迟d2程度的延迟时间β的组合。该延迟时间α和延迟时间β的组合按照每个观测值(变量)或每个功能单元进行定义。

如图9所示,动态延迟校正用数据354是表示动态通信延迟d3程度的延迟时间γ(t)作为每个时刻的值进行定义。由于动态延迟校正用数据354反映传输路径的状态,因此既可以按照每个本地总线或每个现场总线进行定义,也可以按照每个通信从属机进行定义。

此外,在图9中,为了便于说明,作为可无视连接连接器单元160和功能单元150的本地总线中传输延迟时间的情况而进行了说明,但也可以将该传输延迟时间包括在基本通信延迟d2或动态通信延迟d3中。

在上述说明中,作为起因于功能单元150的延迟,以设想静态延迟、即功能单元起因延迟d1的情况为例进行了说明,但也可以进一步考虑起因于功能单元150的处理波动等的动态延迟(相当于图9中示出的动态延迟d1’)。关于这种动态延迟d1’,例如也可以在功能单元150中搭载附加了温度补偿功能的高精度的晶体振荡器等,并基于来自该晶体振荡器的脉冲等,通过功能单元150或连接器单元160等逐次检测定时的偏离等。

图9中示出向连接器单元160中安装的功能单元150输入来自传感器的信号的情况,但在向CPU单元100中安装的功能单元150输入来自传感器的信号的情况下,在CPU单元100中获取时序数据502,而不是图9所示的时序数据504。

在CPU单元100中,包含上述那种延迟的观测值存储在嵌入式数据库180中。即,CPU单元100的处理器102(执行的嵌入式数据库写入程序1383)将观测值和在CPU单元100中能够利用该观测值的时刻对应起来的时序数据504这样的数据写入嵌入式数据库180中。

作为针对CPU单元100上的时序数据504进行的延迟时间校正,首先,时刻确定模块194(图8)参照静态延迟校正用数据352,从时序数据504中存储的时刻减去表示静态延迟的延迟时间α和延迟时间β。时序数据504中存储的时刻是CPU单元100中各观测值所对应的时刻,例如如果是在某个控制周期接收的观测值,则也可以使用代表该接收的控制周期的基准时刻。

通过上述那样的静态延迟的校正,生成静态延迟校正后数据506。根据用途的不同,能够直接使用静态延迟校正后数据506。因此,也可以以静态延迟校正后数据506的状态进行外部输出。在这种情况下,除了静态延迟校正后数据506之外,还可以一并输出动态延迟校正用数据354。

此外,时刻确定模块194(图8)参照动态延迟校正用数据354,从静态延迟校正后数据506的各时刻分别减去所对应的延迟时间γ(t)。根据这种动态延迟的校正,生成动态延迟校正后数据508。动态延迟校正后数据508是正确反映了所对应的观测值实际出现时刻的时序数据。该动态延迟校正后数据508也可以进行外部输出。

如上所述,对于从嵌入式数据库180读取的观测值,时刻确定模块194(图8)基于表示通过延迟时间获取模块192(图8)获取的延迟时间的信息(数据管理信息350)对该观测值所对应的时刻进行校正,从而确定表示该观测值的信号出现的时刻。

图9所示的静态校正及动态校正也可以以时序数据504的状态存储在嵌入式数据库180中,在从嵌入式数据库180读取后实施。或者,也可以在对时序数据504进行静态校正或动态校正从而生成静态延迟校正后数据506或动态延迟校正后数据508的基础上,写入嵌入式数据库180。只要准备有静态延迟校正用数据352及动态延迟校正用数据354,则也可以在任何阶段实施延迟时间校正。此外,既可以通过CPU单元100进行延迟时间校正,也可以通过支持装置200等外部装置进行延迟时间校正。

此外,为了便于说明,示出分开实施静态校正及动态校正的例子,但也可以同时实施静态校正及动态校正。

e2:延迟时间校正用数据

下面,对用于进行本实施方式所涉及的延迟时间校正的数据管理信息350中包含的静态延迟校正用数据352及动态延迟校正用数据354进行说明。

图10是示出本实施方式所涉及的控制系统1中利用的数据管理信息350的构成例的表。参照图10,数据管理信息350包括静态延迟校正用数据352及动态延迟校正用数据354中的至少一方。

静态延迟校正用数据352基于(1)CPU单元100保持的基本通信延迟信息3521、(2)支持装置200保持的系统构成信息3522、(3)支持装置200保持的从属机设定信息3523、(4)支持装置200保持的用户程序1381等信息生成。

基本通信延迟信息3521包括相当于图9所示的基本通信延迟d2的延迟时间。该延迟时间依赖于本地总线或现场总线的线缆长度等。基本通信延迟信息3521中包含的延迟时间在CPU单元100的启动等时被测量并获取。

系统构成信息3522包括用于计算图9所示的基本通信延迟d2的信息。更具体地,系统构成信息3522包括与本地总线或现场总线连接的功能单元150的数量、种类、拓扑等信息。通过参照系统构成信息3522,能够确定起因于与本地总线或现场总线连接的功能单元150(相当于通信从属机)的数量等的延迟时间。

从属机设定信息3523包括用于计算图9所示的功能单元起因延迟d1的信息。更具体地,从属机设定信息3523包括CPU单元100中安装的功能单元150及连接器单元160中安装的功能单元150各自的设定值(例如,采样周期、滤波器特性等)的信息。通过参照从属机设定信息3523,能够确定从来自传感器等的信号输入至功能单元150到作为数据实际输出的延迟时间。

用户程序1381也可以用于计算图9所示的基本通信延迟d2。更具体地,用户程序1381中记述有由CPU单元100执行的命令群,命令群以任务单位进行记述。关于各任务,预先定义有执行周期。通过分析用户程序1381,能够推测用户变量等的更新周期。即,分析针对各用户变量的更新命令是否存在于各任务中,并且参照各任务的执行周期,从而能够确定各用户变量的更新周期。

此外,系统构成信息3522、从属机设定信息3523、用户程序1381有时传送到CPU单元100,在这种情况下,也可以参照CPU单元100保持的这些信息,而非支持装置200保持的这些信息。

此外,在CPU单元100能够实际测量图9所示的基本通信延迟d2的情况下,并非一定要参照系统构成信息3522及用户程序1381。但是,并非所有的功能单元150都能够实际测量基本通信延迟d2,因此在不能实际测量时,也可以参照系统构成信息3522及用户程序1381等,计算或者推测基本通信延迟d2。

另一方面,动态延迟校正用数据354基于实时通信延迟信息3541生成。动态延迟校正用数据354包括各时间带中延迟时间的变化,基本上也可以按照每个功能单元150进行规定。

实时通信延迟信息3541包括各通信从属机当前相对于基本通信延迟d2多大程度延迟的信息。通信主机(如上所述,作为通信主机发挥功能的本地总线控制器及现场总线控制器)基于来自所连接的通信从属机的响应,计算出发生了多大程度的延迟。该计算出的延迟时间相当于实时通信延迟信息3541。通信主机基于计算出来的延迟时间,对各通信从属机输出用于进行时刻校正的时刻同步信号。

动态延迟校正用数据354包括实时通信延迟信息3541中包含的各时间带的延迟时间。实时通信延迟信息3541包括相当于图9所示的动态通信延迟d3的延迟时间。实时通信延迟信息3541由CPU单元100(更具体地,作为通信主机发挥功能的本地总线控制器或现场总线控制器)逐次更新。

更具体地,通信主机在I/O刷新的执行定时开始时间测量,测量直到接收来自该I/O刷新所对应的各通信从属机的响应的定时为止的时间。通信主机通过从该测量的时间减去基本通信延迟d2,计算出动态通信延迟d3。I/O刷新的意思是更新来自各通信从属机的输入值以及对各通信从属机的输出值及指令值的处理。在该I/O刷新中,通信主机对各通信从属机发送I/O刷新所需的帧,当来自通信主机的帧到达时,各通信从属机在读取该帧中包含的输出值或指令值后,向通信主机响应预先收集的输入值。

上述I/O刷新的执行定时的意思是通信主机发送出I/O刷新所需的帧的定时,直到来自各通信从属机的响应为止的时间相当于包含静态延迟及动态延迟的通信延迟。

e3:延迟时间校正的安装例

下面,对用于实现本实施方式所涉及的延迟时间校正的安装例进行说明。

图11是示出本实施方式所涉及的控制系统1中的延迟时间校正的安装例的示意图。参照图11,作为关于本实施方式所涉及的延迟时间校正的结构,CPU单元100包括PLC引擎130及嵌入式数据库管理服务190。

PLC引擎130对系统变量1362及用户/设备变量1364进行管理(参照图8等)。此外,PLC引擎130生成及更新基本通信延迟信息3521及实时通信延迟信息3541。

嵌入式数据库管理服务190与嵌入式数据库180协作执行处理。嵌入式数据库管理服务190是对嵌入式数据库180进行数据写入及数据读取等处理的任务。嵌入式数据库管理服务190一般通过CPU单元100的处理器102读取辅助存储装置108中存储的系统程序并在主存储装置106中展开执行而实现。

在图11所示的安装例中,嵌入式数据库管理服务190将系统状态值时序数据182及控制变量值时序数据184写入嵌入式数据库180。系统状态值时序数据182包括系统变量1362中包含的任意变量值的时序数据,控制变量值时序数据184包括用户/设备变量1364中包含的任意变量值的时序数据。系统状态值时序数据182及控制变量值时序数据184成为延迟时间校正的对象(校正对象数据)。

此外,由于可设想到在系统状态值时序数据182和控制变量值时序数据184之间更新频率不同,因此两时序数据分别作为独立的数据文件进行存储。但是,也可以将系统状态值时序数据182及控制变量值时序数据184作为共同的数据文件进行存储。

此外,嵌入式数据库管理服务190(图8所示的延迟时间获取模块192)生成或更新静态延迟校正用数据352及动态延迟校正用数据354。静态延迟校正用数据352及动态延迟校正用数据354也可以存储在嵌入式数据库180中。或者,也可以将静态延迟校正用数据352及动态延迟校正用数据354存储在辅助存储装置108或存储卡116(参照图2)中。

即,在事后对系统状态值时序数据182和控制变量值时序数据184进行延迟时间校正的情况下,只要将静态延迟校正用数据352及动态延迟校正用数据354,与系统状态值时序数据182及控制变量值时序数据184通过任意方法对应起来存储即可。

此外,在采用在对系统状态值时序数据182及控制变量值时序数据184进行延迟时间校正的基础上写入嵌入式数据库180的方法的情况下,由于也可以无需事后利用静态延迟校正用数据352及动态延迟校正用数据354,因此也可以在延迟时间校正后废弃。

此外,支持装置200由用户进行设定或开发,保持系统构成信息3522、从属机设定信息3523、用户程序1381。

在图11所示的安装例中,在(1)从支持装置200向CPU单元100下载程序时、(2)CPU单元100的控制运算中、(3)CPU单元100启动时分别实施数据更新或数据生成。

在(1)从支持装置200向CPU单元100下载程序时,也可以使用支持装置200保持的数据,生成或者更新静态延迟校正用数据352。

更具体地,在从支持装置200向CPU单元100传送必要的数据时,嵌入式数据库管理服务190参照系统构成信息3522及从属机设定信息3523,计算出功能单元起因延迟d1及基本通信延迟d2,作为静态延迟校正用数据352保存。即,嵌入式数据库管理服务190从系统构成信息3522及从属机设定信息3523中获取延迟信息。

此外,嵌入式数据库管理服务190也可以分析用户程序1381,计算出基本通信延迟d2或者计算出针对基本通信延迟d2的校正量。该计算结果也反映到静态延迟校正用数据352上。

在(2)CPU单元100的控制运算中,系统状态值时序数据182、控制变量值时序数据184、动态延迟校正用数据354的值逐次更新。

更具体地,响应来自嵌入式数据库写入程序1383(参照图8)等的请求,嵌入式数据库管理服务190将系统变量1362中包含的指定的变量值以指定的写入周期写入到系统状态值时序数据182中,此外,将用户/设备变量1364中包含的指定的变量值以指定的写入周期写入到控制变量值时序数据184中。

也可以以控制运算的执行周期高速实施对系统状态值时序数据182及控制变量值时序数据184的变量值写入。

此外,嵌入式数据库管理服务190(图8所示的时刻确定模块194)基于由通信主机逐次测量的实时通信延迟信息3541生成或更新动态延迟校正用数据354。也可以在预先定义的条件成立的情况下实施动态延迟校正用数据354的更新。这种预先定义的条件也可以作为状态定义表进行记述。

在(3)CPU单元100启动时,也可以更新静态延迟校正用数据352的值。如上所述,CPU单元100(更具体地,作为通信主机发挥功能的本地总线控制器或现场总线控制器)在启动等时发送时刻同步信号等,测量相当于基本通信延迟d2的延迟时间。该测量的延迟时间是基本通信延迟信息3521。嵌入式数据库管理服务190也可以基于基本通信延迟信息3521更新静态延迟校正用数据352的值。

e4:延迟时间校正的处理步骤

下面,对本实施方式所涉及的延迟时间校正相关的处理步骤的一例进行说明。

图12是示出本实施方式所涉及的控制系统1中的延迟时间校正相关的处理步骤的流程图。与图11所示的安装例相对应,图12示出PLC引擎130、嵌入式数据库管理服务190和支持装置200之间的交换的一例。

参照图12,首先,在CPU单元100中实施用于执行与控制对象相应的控制运算的各种设定及用户程序的开发。此外,在图12所示的模块中,虚线所示的内容基本上是用户实施的处理。

具体地,在支持装置200中,用户根据对象的控制系统1的结构,生成系统构成信息3522(步骤S100),根据对象的控制系统1中包含的功能单元150的数量、种类、拓扑等,生成从属机设定信息3523(步骤S102)。此外,用户定义用户/设备变量1364等的状态值(步骤S104)。当以上那样一系列设定处理完成时,用户生成用户程序1381(步骤S106)。

用户生成的用户程序1381与系统构成信息3522及从属机设定信息3523等一同传送(程序下载)到CPU单元100(PLC引擎130)。

当用户利用支持装置200实施步骤S100~S106的处理时,成为能够在CPU单元100中执行控制运算的状态。

接下来的步骤S108~S112是用于生成静态延迟校正用数据352的处理。

更具体地,支持装置200分析用户程序1381,计算出基本通信延迟d2或者相对于基本通信延迟d2的校正量(步骤S108)。接着,支持装置200参照系统构成信息3522及从属机设定信息3523,并且利用步骤S108中的分析结果,生成静态延迟校正用数据352(步骤S110)。该生成的静态延迟校正用数据352传送到CPU单元100(系统状态值时序数据182)。

此外,支持装置200生成表示更新动态延迟校正用数据354的条件的状态定义表(步骤S112)。该生成的状态定义表传送到CPU单元100(系统状态值时序数据182)。

此外,在CPU单元中能够收集静态延迟校正用数据352所需的所有延迟时间的情况下,也可以省略上述步骤S108及S110的处理。

在被传送必要的程序及设定等数据的CPU单元100中,执行按照用户程序1381等的控制运算。更具体地,在CPU单元100启动时(步骤S300),接着,PLC引擎130启动(步骤S302),并且嵌入式数据库管理服务190也启动(步骤S200)。在步骤S200中,嵌入式数据库180开始或重新开始提供数据库服务功能。

在嵌入式数据库管理服务190启动后,PLC引擎130展开从支持装置200传送的系统构成信息3522及从属机设定信息3523等(步骤S304)。通过以上那样的处理,CPU单元100的PLC引擎130能够执行控制运算。

即,PLC引擎130开始包含用户程序1381的执行的控制运算(步骤S306)。PLC引擎130也可以按照用户程序1381中包含的命令,发出对数据库的数据写入请求(步骤S308)。数据写入请求提供给嵌入式数据库管理服务190。此外,PLC引擎130也可以按照用户程序1381中包含的命令,发出从数据库的数据读取请求(步骤S310)。数据读取请求提供给嵌入式数据库管理服务190。

另一方面,嵌入式数据库管理服务190启动后(步骤S200后),向PLC引擎130请求基本通信延迟信息3521的获取(步骤S202)。PLC引擎130对嵌入式数据库管理服务190响应启动时测量的基本通信延迟信息3521。嵌入式数据库管理服务190基于来自PLC引擎130的基本通信延迟信息3521,生成静态延迟校正用数据352(步骤S204)。

通过步骤S204为止的处理,能够获取延迟时间校正所需的最小限度的信息,因此嵌入式数据库管理服务190开始延迟时间校正(步骤S206)。这时,嵌入式数据库管理服务190还开始动态延迟校正用数据354的更新处理(步骤S208)。在动态延迟校正用数据354的更新处理中,在预先定义的条件成立时,嵌入式数据库管理服务190从PLC引擎130获取实时通信延迟信息3541,更新动态延迟校正用数据354。

嵌入式数据库管理服务190对来自PLC引擎130的数据库写入请求以及/或者数据库读取请求进行响应,实施延迟时间校正。

更具体地,嵌入式数据库管理服务190对数据库写入请求进行响应,对指定的观测值(变量值)所对应的时刻进行延迟时间校正(步骤S210),将校正后数据写入嵌入式数据库180(步骤S212)。

此外,嵌入式数据库管理服务190对数据库读取请求进行响应,将指定的观测值(变量值)相关的时序数据从嵌入式数据库180读取(步骤S214),对读取的时序数据进行延迟时间校正(步骤S216),向PLC引擎130响应校正后数据。

此外,步骤S210及步骤S216的延迟时间校正既可以仅实施其中任一方,也可以都不实施。在不实施延迟时间校正的情况下,也可以将指定的观测值的时序数据和数据管理信息350对应起来输出。

在PLC引擎130的控制运算循环执行的期间,嵌入式数据库管理服务190重复执行步骤S210~S216的处理。

e5:功能单元起因延迟d1及基本通信延迟d2(静态延迟)

下面,对本实施方式所涉及的延迟时间校正中的功能单元起因延迟d1及基本通信延迟d2(静态延迟)的具体例进行说明。

根据接收来自控制对象的输入信号的功能单元150的种类,可能发生的延迟时间(静态延迟)改变。因此,在确定CPU单元100或连接器单元160中安装的功能单元150的种类及设定的基础上,确定应该校正的延迟时间。这种功能单元150的种类及设定能够通过参照CPU单元100等中保持的系统构成信息或从属机设定信息来获取。

下面,示出功能单元起因延迟d1及基本通信延迟d2(静态延迟)的具体例。

图13是本实施方式所涉及的控制系统1的功能单元150执行一般的输入处理时的流程图的一例。图14是本实施方式所涉及的控制系统1的功能单元150执行过采样的输入处理时的流程图的一例。

图13示出例如来自检测工件的存在的光电传感器等的输出信号输入到功能单元150中的例子。此外,图13所示的流程图对应来自传感器的输出信号输入到连接器单元160中安装的功能单元150的情况。

例如,在工件通过检测位置时,该工件对光电传感器进行遮光,表示图13的(d)所示那样的传感器输出。在功能单元150中,对传感器输出进行过滤及AD转换等,生成二值化为接通/断开的检测信号。对于图13的(d)所示的传感器输出,图13的(c)中示出从功能单元150输出的信号的时间波形。

在图13的(c)所示的功能单元150的输出信号中,有可能发生滤波器等的功能单元起因延迟d1。即,功能单元150的输出信号中有可能发生与功能单元150中设定的滤波器的时间常量、AD转换的延迟等相应的延迟时间。

来自功能单元150的输出信号经由连接器单元160传送到CPU单元100。由于从功能单元150到连接器单元160的传输路径以及从连接器单元160到CPU单元100的传输路径由进行固定周期通信的网络构成,因此存在延迟一个通信周期的可能性。即,在图13的(b)所示的连接器单元160的输出信号中,有可能发生起因于固定周期通信的延迟(基本通信延迟d2的一部分)。

对图13的(b)~图13的(d)所示那样的传输路径中的各延迟时间进行合计,确定应该对表示CPU单元100的传感器输出的值的传感器变量考虑的延迟时间(参照图13的(a))。

图13的(a)所示那样的应该考虑的延迟时间能够通过参照连接CPU单元100和连接器单元160的现场总线相关的系统构成信息、与连接器单元160连接的功能单元150相关的从属机设定信息进行推测。

图14示出例如来自检测振动等的振动传感器等的输出信号输入到功能单元150中的例子。该功能单元150以能够以短于通信周期的采样周期进行输入信号的采样的方式进行设定,并输出对多个采样结果进行频率分析(例如,FFT(Fast Fourier Transform:快速傅里叶变换))的结果。下面,将以短于这种通信周期的周期进行数据收集间称为“过采样”。

在这种结构中,例如假设出现了图14的(d)所示那样的传感器输出。在功能单元150中,在预定的采样期间对输入信号进行采样(参照图14的(c)),对该采样结果执行FFT,并在图14的(b)所示那样的定时输出该FFT的执行结果。图14的(b)示出来自功能单元150的过采样输出的定时。在从功能单元150到CPU单元100的传输路径中,来自功能单元150的过采样输出可能进一步延迟通信周期量。

对图14的(b)~图14的(d)所示那样的传输路径中的各延迟时间进行合计,确定应该对表示CPU单元100的传感器输出的值的传感器变量考虑的延迟时间(参照图14的(a))。

图14的(a)所示那样的应该考虑的延迟时间能够通过参照用于确定从CPU单元100到功能单元150的传输路径的系统构成信息、用于确定功能单元150中的设定的从属机构成信息进行推测。

e6:动态通信延迟d3(动态延迟)

下面,对本实施方式所涉及的延迟时间校正中的动态通信延迟d3(动态延迟)的具体例进行说明。

如上所述,作为通信主机发挥功能的本地总线控制器或现场总线控制器逐次监测通信从属机管理的时刻(典型地,通信从属机的计数器输出的计数值),并且如果时刻的偏离程度变大,则输出时刻同步信号,对该偏离进行校正。

图15是用于说明本实施方式所涉及的控制系统1的通信主机提供的同步管理功能的图。例如,如图15的(a)所示,设想通信主机与多个通信从属机连接的例子。假设通信主机及通信从属机分别保持有计数器。

在这种构成例中,在预先定义的条件成立时,通信主机对任一通信从属机发送时刻请求。对象的通信从属机对该时刻请求进行响应,将自身的计数器输出的计数值发送到通信主机(时刻响应)。

通信从属机进行响应的时刻(计数值)表示该通信从属机接收时刻请求的定时。如果完全进行了通信主机和通信从属机之间的时刻同步,则在通信主机发送时刻请求的时刻和通信从属机进行响应的时刻之间延迟该时刻请求传输到该通信从属机所需的时间(相当于基本通信延迟d2)。此外,由于通信从属机响应接收时刻请求的定时中的计数值,因此没有必要考虑从通信从属机到通信主机的时刻响应的传输延迟时间。

即,如果通信主机和通信从属机之间完全时刻同步,则如图15的(b)所示,表示发送时刻请求的定时的时刻和通信从属机进行响应的时刻的间隔应该与基本通信延迟d2一致。

但是,在通信主机和通信从属机之间的时刻同步产生偏离的情况下,如图15的(c)所示,两时刻的间隔变大或者变小。通信主机将表示发送这种时刻请求的定时的时刻和通信从属机响应的时刻的间隔偏离基本通信延迟d2的程度作为时刻校正量进行确定。

即,图15的(c)所示的时刻校正量的大小作为实时通信延迟信息3541(参照图10及图11)保存。此外,基于实时通信延迟信息3541进行对动态通信延迟d3(动态延迟)的校正。如此,动态通信延迟d3(动态延迟)相当于依赖于时刻互相同步的计数器显示的计数值间的偏离程度而在时间上变化的延迟时间。

根据以上步骤,测量用于进行动态通信延迟d3(动态延迟)的信息。

F.利用方式

下面,对本实施方式所涉及的延迟时间校正的时序数据的几个利用方式进行说明。

图16是用于说明本实施方式所涉及的延迟时间校正的时序数据的利用方式的一例的图。在图16所示的图中,横轴表示输出的数据的方式,纵轴表示延迟时间校正的状态。

参照图16,作为输出的数据的方式,一般可设想(1)没有进行延迟时间校正的观测值的时序数据(以下也称为“原始数据”)所对应的数据管理信息以及(2)延迟时间校正后的时序数据(以下也称为“延迟校正后数据”)。

此外,作为延迟时间校正的状态,一般可设想(a)未进行延迟时间的校正的状态、(b)仅对静态延迟进行了校正的状态、(c)对静态延迟及动态延迟双方进行了校正的状态。

例如,静态延迟是设想对几十μs~几ms等级的延迟时间进行校正,动态延迟是设想对ns~几μs等级的延迟时间进行校正。也可以根据观测值的时序数据的利用目的,实施必要的延迟时间校正。

例如,如果设想用途是通过实施离线分析或数据挖掘来生成学习数据,则也可以根据要求精度,选择(a)~(c)中的任一种。此外,在以(a)未进行延迟时间的校正的状态利用时序数据的情况下,优选直接输出原始数据,而非延迟校正后数据。

此外,在利用使用了机器学习引擎140的实时异常检测功能的情况下,根据基于数据挖掘等的结果确定的异常检测方法,适当选择延迟时间校正的状态即可。

在设想上述利用方式时,在本实施方式所涉及的CPU单元100中,当向嵌入式数据库180写入观测值时,可采用以下处理方式。

(1)将从功能单元150收集的观测值与时刻对应起来直接存储

(2)在对从功能单元150收集的观测值进行静态校正的基础上存储

(3)在对从功能单元150收集的观测值进行动态校正的基础上存储

(4)在对从功能单元150收集的观测值进行静态校正及动态校正的基础上存储

此外,通过采用上述(1)的方法,能够使向嵌入式数据库180的观测值存储进一步高速化。

此外,当输出本实施方式所涉及的CPU单元100的嵌入式数据库180中存储的观测值时,可采用以下处理方式。

(1)仅输出所存储的观测值的时序数据(原始数据)

(2)输出与所存储的观测值的时序数据(原始数据)对应的静态延迟校正用数据352

(3)输出与所存储的观测值的时序数据(原始数据)对应的动态延迟校正用数据354

(4)输出与所存储的观测值的时序数据(原始数据)对应的静态延迟校正用数据352及动态延迟校正用数据354

(5)仅输出所存储的延迟校正后数据

(6)输出与所存储的延迟校正后数据对应的静态延迟校正用数据352

(7)输出与所存储的延迟校正后数据对应的动态延迟校正用数据354

(8)输出与所存储的延迟校正后数据对应的静态延迟校正用数据352及动态延迟校正用数据354

此外,并不限于上述处理方式,根据观测值的利用方式、利用目的等,选择任意的数据存储方式及数据输出方式即可。此外,在利用多种观测值时,采用与各个观测值相应的数据存储方式及数据输出方式即可,没有必要在所利用的多个观测值之间采用相同的数据存储方式或数据输出方式。

G.附记

在上述说明中,主要针对从控制对象向功能单元150提供的输入信号(数字信号以及/或者模拟信号)进行了说明,但并不限于此,也可以同样处理输出信号(数字信号以及/或者模拟信号)。

H.优点

在向CPU单元中内置的数据库功能(嵌入式数据库)存储观测值时,对观测值附加的时刻一般使用写入数据库时的时刻。在事后数据利用中,在时刻精度要求不高的情况下,使用这种处理方式没有问题。

但是,为了提高时刻精度实现更高的分析精度,准确掌握观测值实际出现时刻非常重要。

在上述那样的处理对象中,写入数据库的观测值作为包括经由功能单元或连接器单元进行数据传输而产生的各种延迟时间的时刻的值进行管理,而非表示该观测值的物理现象实际发生的时刻。

因此,在事后利用数据库中存储的观测值的时序数据实施控制、分析的情况下,存在必须单独分析时序数据和实际的物理现象之间定时不一致的问题。

对于这种问题,在本实施方式所涉及的PLC中,将数据管理信息与观测值对应起来存储,数据管理信息包括基于CPU单元中预先设定的构成信息或设定信息确定的静态延迟以及/或者随时间可变化的动态延迟。通过基于数据管理信息对从数据库读取的观测值所对应的时刻进行校正,能够轻松确定表示该观测值的物理现象实际发生的时刻。

通过安装确定表示这种观测值的物理现象实际发生的时刻的功能,在事后利用数据库中存储的观测值的时序数据的情况下,能够排除延迟时间等的影响,因此能够高精度地实施控制、分析。

此外,在控制装置中,在采用在将观测值的时序数据(原始数据)直接存储在数据库中并且一并存储数据管理信息的结构的情况下,能够防止起因于时刻校正处理的控制装置的处理负荷增大。由此,即使是处理能力不高的控制装置,也能够以较短的采样周期实现对数据库的数据存储。

应认为本次公开的实施方式在所有方面都是例示而非限制性。本发明的范围通过权利要求书解释而非上述说明,包括与权利要求书等同的意思及范围内的所有变更。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1