可编程逻辑控制器和分析器的制作方法

文档序号:26138554发布日期:2021-08-03 14:21阅读:151来源:国知局
可编程逻辑控制器和分析器的制作方法

本发明涉及一种可编程逻辑控制器和分析器。



背景技术:

可编程逻辑控制器(plc)是用于在工厂自动化中控制诸如制造设备、运输设备和检查设备等的工业机器的控制器(日本专利第5661222号,日本未审查专利公开号2018-097662)。

plc执行由程序设计人员所创建的诸如梯形图程序(ladderprogram)等的用户程序,以控制各种扩展单元和受控设备等。

为了监视plc的操作和由plc所控制的工业机器的操作,期望收集和利用plc所保持的数据。plc具有基本单元(中央处理器(cpu)单元)和连接至该基本单元的扩展单元。基本单元执行诸如梯形图程序等的用户程序,以控制扩展单元。扩展单元根据来自基本单元的命令控制工业机器,并将控制结果返回至基本单元。

将诸如控制结果等的这些数据用于故障分析和质量控制。因此,需要对这些数据进行累积和分析,并在恢复的早期获得分析结果。然而,在记录与plc有关的所有装置中的各装置的数据的情况下,会存储大量数据,此外,需要分析这样的大量数据(所有装置)以识别异常装置,这需要耗时的工作。通常,分析作为分析对象的特定装置以自动判断异常,并且对于要使用的分析方法,已经预先准备了适合于数据的分析方法以进行该判断。还需要经验和知识以选择特定装置或确定分析方法。因此,除了适当地存储大量数据之外,还需要一种机制,以在不需要足够的专业知识或经验的情况下从与各装置有关的大量数据中有效地识别异常装置。



技术实现要素:

鉴于上述问题,本发明的目的是通过对诸如与各装置有关的数据的周期性和连续性等的特征进行分析和分类来有效地识别异常装置。

本发明例如是一种可编程逻辑控制器,包括:执行引擎,用于重复地执行用户程序;装置存储器,其具有作为用于存储所述执行引擎根据所述用户程序所访问的数据的存储区域的多个装置;收集部,用于针对所述用户程序的各执行周期,根据预定收集设置来收集所述多个装置中的作为收集对象的装置所保持的数据;分类部,用于基于所述收集部所收集的各装置的时间序列数据的特征,将各装置分类为多个类型其中之一;确定部,用于针对各装置,根据所述收集部所收集的该装置的时间序列数据和所述分类部所分类的该装置的类型,来确定在将该装置识别为异常装置时所使用的检测算法;以及识别部,用于通过使用所述确定部根据所述分类部所分类的装置的类型针对该装置所确定的检测算法、分析所述收集部所收集的该装置的时间序列数据,来识别异常装置。

此外,本发明例如是一种分析器,其通信地连接到可编程逻辑控制器,所述可编程逻辑控制器包括:执行引擎,用于重复地执行用户程序,装置存储器,其具有作为用于存储所述执行引擎根据所述用户程序所访问的数据的存储区域的多个装置,以及收集部,用于针对所述用户程序的各执行周期,根据预定收集设置来收集所述多个装置中的作为收集对象的装置所保持的数据,所述分析器包括:获取部,用于从所述可编程逻辑控制器获取所述收集部所收集的各装置的时间序列数据;分类部,用于基于所述收集部所获取的各装置的时间序列数据的特征,将各装置分类为多个类型其中之一;确定部,用于针对各装置,根据所述收集部所收集的该装置的时间序列数据和所述分类部所分类的该装置的类型,来确定在将该装置识别为异常装置时所使用的检测算法;识别部,用于通过使用所述确定部根据所述分类部所分类的装置的类型针对该装置所确定的检测算法、分析所述收集部所收集的该装置的时间序列数据,来识别异常装置;以及输出部,用于输出所述识别部的识别结果。

根据本发明,可以通过对诸如与各装置有关的数据的周期性和连续性等的特征进行分析和分类来有效地识别异常装置。

附图说明

图1是示出plc系统的图;

图2是用于说明个人计算机(pc)的图;

图3是用于说明pc的图;

图4是用于说明plc的图;

图5是用于说明基本单元的图。

图6是用于说明数据利用单元的图。

图7是用于说明扩展单元的图;

图8是用于说明数据记录的格式的图;

图9是用于说明传送时间定时的图;

图10是用于说明信息压缩的图;

图11是示出整体流程的流程图;

图12是示出收集数据的分类的图;

图13a是示出分类的处理过程的流程图;

图13b是示出分类的处理过程的流程图;

图14是示出数据的类型的图

图15是示出学习阶段的处理过程的流程图;

图16是示出评估阶段的处理过程的流程图;

图17是用于说明用于判断异常的方法的图;

图18是示出识别结果的显示示例的图;

图19是示出收集数据的变形例的图;

图20是示出用于输出监视开始信号的处理过程的流程图;以及

图21是示出附加学习的处理过程的流程图。

具体实施方式

在下文中,将参考附图详细描述实施例。以下实施例并非旨在限制根据权利要求的本发明,并且并非实施例中描述的特征的所有组合是本发明必不可少的。可以可选地组合实施例中描述的多个特征中的两个或更多个特征。另外,相同或相似的组件被赋予相同的附图标记,并且省略重复的描述。小写字母字符可以添加到指示相同或相似要素的附图标记的末尾。当描述多个要素共同的事项时,省略小写字母。

<第一实施例>

<系统结构>

下面将描述本发明的第一实施例。首先,为了使本领域技术人员能够更好地理解可编程逻辑控制器(plc,其可以简称为可编程控制器),将描述通用plc的结构及其操作。

图1是示出根据本发明实施例的可编程逻辑控制器系统的结构示例的概念图。如图1所示,该系统包括被配置为编辑用户程序(诸如梯形图程序等)的pc2a、以及被配置为整体地控制安装在工厂等中的各种控制设备的可编程逻辑控制器(plc)1。pc是个人计算机的缩写。可以使用诸如梯形图语言等的图形编程语言或诸如顺序功能图(sfc)等的流程图形式的运动程序来创建用户程序,或者可以使用诸如c语言等的高级编程语言来创建用户程序。在下文中,为了便于描述,用户程序是梯形图程序。plc1包括结合有cpu的基本单元3以及一个或多个扩展单元4。可以将一个或多个扩展单元4附接到基本单元3或从基本单元3拆除。

基本单元(也称为cpu单元)3包括显示部5和操作部6。显示部5可以显示附接到基本单元3的各扩展单元4的操作状态等。显示部5根据操作部6的操作内容来切换显示内容。显示部5通常显示plc1中的装置(device)的当前值(装置值)和在plc1中生成的错误信息。这里,装置包括基本单元3和扩展单元4中所包括的各种装置(继电器、计时器、计数器等),是指用于存储装置值(装置数据)所提供的存储器上的区域,并且可以称为装置存储器。注意,装置存储器是非易失性存储器,并且可以由可重写的非易失性rom制成,并且可以通过非易失性ram等的电池备用等来实现非易失性。rom是只读存储器的缩写。ram是随机存取存储器的缩写。装置值是指示来自输入设备的输入状态、到输出设备的输出状态、以及在用户程序上设置的内部继电器(辅助继电器)、计时器、计数器和数据存储器等的状态的信息。装置值的类型是位类型和字类型等。位装置存储1位的装置值,例如0/1、接通/断开和h/l等。字装置存储一个字的装置值。作为下面详细描述的数据利用程序的收集对象,可以将变量指定为装置。变量也是用于保持信息的保持部,并且根据用户程序由执行引擎进行访问。因此,在以下描述中,装置也指变量。注意,保持装置的存储器可以被称为装置存储器。保持收集数据的存储器可以被称为数据存储器。

扩展单元4准备用于扩展plc1的功能。可以将与扩展单元4的功能相对应的现场装置(受控设备)10连接到各扩展单元4,由此各现场装置10经由扩展单元4连接到基本单元3。现场装置10可以是诸如传感器或照相机等的输入设备或者诸如致动器等的输出设备。多个现场装置可以连接到一个扩展单元4。

例如,扩展单元4b可以是驱动马达(现场装置10)以定位工件的定位单元,或者可以是计数器单元。计数器单元对来自诸如手动脉冲发生器等的编码器(现场装置10)的信号进行计数。

扩展单元4a例如是数据利用单元,其收集要从基本单元3和扩展单元4b收集的数据,执行诸如流等的用户程序(数据利用程序),以对要收集的数据进行数据处理并创建要显示的数据,并且创建用于在显示部7或pc2上显示仪表板的显示数据(源数据)。在本实施例中,将描述扩展单元4a收集各装置的数据的示例,但是收集部可以设置在基本单元3或其它扩展单元中。扩展单元4a还可以用作分析器,其根据来自基本单元3的指令和预定定时来分析所收集的数据。在本实施例中,将描述扩展单元4a用作分析器的示例,但是不是意在限制本发明,并且基本单元3可以用作分析器,以及诸如pc2a、2b等的外部装置可以用作分析器。下述流程(流程序)仅是数据利用程序的示例。基本单元3有时被称为cpu单元。注意,包括plc1和pc2的系统可以被称为可编程逻辑控制器系统。

pc2a是主要由程序设计人员操作的计算机。另一方面,pc2b是主要由现场负责人员操作的计算机。pc2a可以被称为程序创建支持设备(设置设备)。pc2例如是便携式笔记本型或平板型个人计算机或智能电话,并且是包括显示部7和操作部8的外部计算机。外部计算机是位于plc1外部的计算机。使用pc2a创建作为用于控制plc1的用户程序的示例的梯形图程序。所创建的梯形图程序在pc2a中转换为助记码。pc2经由诸如通用串行总线(usb)线缆等的通信线缆9连接到plc1的基本单元3。例如,pc2a将转换为助记码的梯形图程序发送至基本单元3。基本单元3将梯形图程序转换为机器码,并将机器码存储到基本单元3中所提供的存储器内。这里,将助记码发送至基本单元3,但是本发明不限于此。例如,pc2a可以将助记码转换为中间码,并将该中间码发送至基本单元3。

尽管在图1中未示出,但是pc2的操作部8可以包括连接到pc2的诸如鼠标等的指点装置,。pc2可以被配置为经由除usb线缆之外的其它通信线缆9可拆卸地连接至plc1的基本单元3。此外,pc2可以在没有通信线缆9的情况下通过无线通信连接到plc1的基本单元3。

<程序创建支持设备>

图2是用于说明pc2a的电气结构的框图。如图2所示,pc2a包括cpu11a、显示部7a、操作部8a、存储设备12a和通信部13a。显示部7a、操作部8a、存储设备12a和通信部13a各自电连接至cpu11a。存储设备12a包括ram、rom、hdd和ssd,并且还可以包括可移除存储卡。cpu是中央处理单元的缩写。hdd是硬盘驱动器的缩写。ssd是固态驱动器的缩写。

pc2a的用户使cpu11a执行存储在存储设备12a中的项目编辑程序14a,并通过操作部8a编辑项目数据15。当cpu11a执行项目编辑程序14a时,实现了项目创建部16和项目传送部17。项目创建部16根据用户的输入来创建项目数据15。项目传送部17将项目数据15传送到plc1。项目数据15包括一个或多个用户程序(示例:梯形图程序、控制程序、运动程序、数据利用程序),基本单元3和扩展单元4各自的配置信息、以及在基本单元3和扩展单元4各自中所提供的识别功能的设置信息。配置信息包括多个扩展单元4到基本单元3的连接位置以及装置的分配信息。配置信息可以包括指示基本单元3中提供的功能(例如:数据收集功能、通信功能、定位功能)的信息以及指示扩展单元4的功能(例如:通信功能、定位功能和拍摄功能)的信息。识别功能的设置信息包括与基本单元3中提供的功能(示例:数据收集功能、通信功能、定位功能)有关的设置信息(例如,在数据收集功能的情况下,数据收集条件和数据收集对象的设置信息)以及包括与扩展单元4的功能(示例:通信功能、定位功能、数据利用功能、拍摄功能)有关的设置信息等。项目数据15的编辑包括项目数据15的创建和改变(重新编辑)。用户可以根据需要读取存储在存储设备12a中的项目数据15,并通过使用项目编辑程序14a来改变项目数据15。通信部13a经由通信线缆9a与基本单元3通信。项目传送部17经由通信部13a将项目数据传送到基本单元3。通信部13a经由通信线缆9b与扩展单元4a通信。

<用于显示仪表板的pc>

图3是用于说明pc2b的电气结构的框图。如图3所示,pc2b包括cpu11b、显示部7b、操作部8b、存储设备12b和通信部13b。显示部7b、操作部8b、存储设备12b和通信部13b分别电连接至cpu11b。存储设备12b包括ram、rom、hdd和ssd,并且还可以包括可移除存储卡。

cpu11b执行web浏览器程序14d以实现web浏览器18。web浏览器18经由通信部13b访问由扩展单元4a提供的数据利用应用的设置页面或仪表板的页面。此外,cpu11b根据从扩展单元4a发送来的指示识别结果的画面信息,在显示部7b上显示异常发生时的识别结果(判断结果)。

<plc>

图4是用于说明plc1的电气结构的框图。如图4所示,基本单元3包括cpu31、显示部5、操作部6、存储设备32、通信部33和存储卡44。显示部5、操作部6、存储设备32和通信部33分别电连接至cpu31。存储设备32可以包括ram或rom。存储设备32具有诸如装置部34、项目存储部35和第一缓冲器37a等的多个存储区域。装置部34具有位装置和字装置等,并且各装置存储与装置存储器相对应的装置值。项目存储部35存储从pc2a输入的项目数据。第一缓冲器37a存储各扫描周期要从装置部34收集的装置值(时间序列数据)。稍后将参考图5描述第一缓冲器的细节。当满足保存条件时,存储卡44存储时间序列数据,该时间序列数据是存储在第一缓冲器37a中的来自各装置的控制数据。例如,通过将时间序列数据临时保持在存储卡44中,可以稍后通过外部设备等验证分类对象或识别对象的数据,并且可以将重要的最新数据保持为日志信息。此外,在本发明中,由于基本上收集了与plc1有关的所有装置的数据,因此所收集的数据巨大,并且通过将要处理的数据保持在单独的存储器中可以期望获得减少处理负荷的效果,并且另外,可以便于并行执行收集处理和与收集数据有关的处理(分类处理和识别处理)。这里,当plc中发生异常时,当用户预先指定了要作为保存触发的装置并且在该装置中存在预定变化时,当用户发出分析命令时,当经过了定期监视的监视周期时,以及当从与基本单元3连接的扩展单元发出分析命令时等,满足保存条件。保存条件可以由用户预先设置,并作为项目数据的一部分保存在基本单元3的存储设备32中。当cpu31检测到已经满足保存条件时,cpu31发出命令以将保存在第一缓冲器37a中的装置值存储到诸如安全数字(sd)卡等的存储卡44中,并向扩展单元4a通知已经保存了要分析的数据。用于基本单元3的控制程序作为项目数据的一部分存储在项目存储部35中。用于基本单元3的控制程序可以与项目存储部35分开地存储在存储设备32中或者除项目存储部35以外还存储在存储设备32中。如图4所示,基本单元3和扩展单元4经由扩展总线90彼此连接,扩展总线90是通信总线的一种。在图4中,与扩展总线90有关的通信电路安装在cpu31上,但是可以作为通信部33的一部分来安装。通信部33可以具有网络通信电路。cpu31经由通信部33从pc2a接收项目数据。

这里,将给出对扩展总线90的补充描述。扩展总线90是用于输入/输出刷新的通信总线。输入/输出刷新是用于在每次执行梯形图程序之前获取执行梯形图程序时的输入/输出值、并且在重复执行梯形图程序时基于所获取的输入/输出值的处理,以及是用于即使在一次执行期间输入/输出值发生变化时也不获取输入/输出值的处理。通过输入/输出刷新所获取的值作为与各输入/输出相对应的装置的装置值存储在装置存储器中。通过输入/输出刷新,在基本单元3和扩展单元4之间发送/接收装置值,并且更新装置存储器中的相应装置的装置值。输入/输出刷新在执行一次梯形图程序的每个扫描周期(即每次扫描)中执行。一个扫描周期包括输入/输出刷新执行时间段、梯形图程序执行时间段和结束处理执行时间段。

扩展单元4包括cpu41和存储器42。此外,扩展单元4a可以包括存储卡(例如,sd卡),该存储卡可从扩展单元4a拆卸并且存储作为来自各装置的控制数据的时间序列数据。扩展单元4b的cpu41b根据存储在装置中的来自基本单元3的指令(装置值)来控制现场装置10。cpu41b将现场装置10的控制结果存储在称为缓冲存储器的装置中。通过输入/输出刷新将存储在装置中的控制结果传送到基本单元3。即使在与输入/输出刷新不同的定时,也根据来自基本单元3的读取命令将存储在装置中的控制结果传送到基本单元3。存储器42包括ram和rom。特别地,在ram中,确保了要用作缓冲存储器的存储区域。存储器42可以具有临时保持由现场装置10获取的数据(示例:装置值、静止图像数据、视频数据)的缓冲器。

用作数据利用单元的扩展单元4a的cpu41a经由通信部43和线缆9b与pc2b通信。数据利用单元是执行数据利用应用的扩展单元。数据利用应用包括:用于收集或处理保存基本单元3中所提供的存储卡44或扩展单元4a中所提供的存储卡中的控制数据(时间序列数据)的流;用于进行与所收集的数据有关的处理的流;用于显示流的执行结果的仪表板;以及用于将流的结果发送至外部的发送部。注意,数据利用应用不在异常装置分析时向存储卡44发出保存命令,而是参考当已经满足上述保存条件时保存的数据,并使用保存在存储卡44中的数据进行分析。

注意,除了数据利用应用之外,可以通过用户程序来实现用于收集控制数据的功能。用于进行与所收集的数据有关的处理的功能包括:用于识别可编程逻辑控制器的异常时的异常装置的识别功能;用于分析与正常时的时间序列数据的偏差并验证与通常值不同的装置值的分析功能;以及用于定期进行上述分析的监视功能。该流可以具有用于收集数据的算术块、用于执行数据处理的算术块以及用于创建显示数据的算术块等。仪表板具有图形显示部和数字显示部等。这些显示部可以通过超文本标记语言(html)数据、级联样式表(css)数据或javascript(注册商标)代码等来实现。注意,html数据、css数据和javascript(注册商标)代码的集合可以称为web应用。在本实施例中,流通过流模板来实现。流模板是针对各应用预先准备的,并且具有一个或多个算术块,在算数块中设置由用户指定的流模板参数。仪表板也由模板启用。仪表板模板具有一个或多个显示部,由用户指定的仪表板模板参数被设置到这些显示部。仪表板模板参数例如是诸如仪表板名称、装置名称、数值和单元变量名称等的各种信息。单元变量是用于扩展单元4a保持流的执行结果的变量。

<由基本单元的cpu提供的功能>

图5示出由cpu31实现的关于数据利用的功能。执行引擎51针对作为执行周期的各扫描周期重复地执行用户程序。执行引擎51可以由设置在cpu31外部的asic或fpga等来实现。asic是专用集成电路的缩写。fpga是现场可编程门阵列的缩写。这些专用电路通常可以以比cpu和程序的组合更高的速度执行特定的数据处理。收集部52a针对作为执行周期的各扫描周期收集要从装置部34收集的装置值,创建数据记录,并将该数据记录存储到第一缓冲器37a中。在执行引擎执行作为用户程序的梯形图程序的情况下,梯形图程序的扫描周期与执行周期相对应,并且在执行引擎执行作为用户程序的运动程序的情况下,运动程序的控制周期与执行周期相对应。在针对梯形图程序的各扫描周期收集装置值的情况下,可以在扫描周期的结束处理时间段期间从装置部34收集要收集的装置值,并且可以创建数据记录并将该数据记录存储在第一缓冲器37a中。在结束处理时间段期间收集数据不是必需的,并且在由执行引擎51执行的用户程序中可以包括用于收集数据的描述(诸如触发命令等的程序代码)。然而,在通过结束处理收集数据的情况下,具有用户程序无需改变的优点。收集周期由用户设置,作为项目数据的一部分进行传送,并作为收集设置36a存储在基本单元3的存储设备32中。收集设置36a不仅包括收集周期,还包括要作为收集对象的装置。注意,收集周期可以是与作为执行周期的扫描周期或运动程序的控制周期不同的周期。在这种情况下,对于由收集设置36a指定的各收集周期,可以从装置部收集要收集的装置值,并且可以创建数据记录并将该数据记录存储在第一缓冲器37a中。这里,在收集数据时,基本单元3可以通过其自身的装置或通过扩展单元4a来分析诸如各装置值的周期性和连续性等的特征,并根据分析结果对装置进行分类。另一方面,这种分析可以不在收集数据时进行,而是可以在已经收集预定数量扫描周期的时间序列数据的定时,或者在发生异常时需要分析数据的定时,由自身装置或由扩展单元4a进行。

通过提供第一缓冲器37a,执行引擎51不太容易受到由于收集或传送处理而导致扫描时间增加的影响。由收集设置36a指定要收集的装置值。收集设置36a可以由pc2a或扩展单元4a存储在基本单元3中。传送部53a将存储在第一缓冲器37a中的一个或多个数据记录存储到基本单元3中所提供的存储卡44中,并将保存在存储卡44中的数据记录传送到扩展单元4a。注意,当扩展总线90中的通信流量空闲时,传送部53a执行传送处理,但是可以提供专用于向扩展单元4a发送数据记录的扩展总线。

可选地,传送部53a可以将存储在第一缓冲器37a中的一个或多个数据记录经由扩展总线90传送到扩展单元4a,然后可以将所传送的数据存储到扩展单元4a中所提供的存储卡内。在这种情况下,提供专用于向扩展单元4a发送数据记录的扩展总线是优选的。如上所述,仅当满足保存条件时,数据记录才被保存到存储卡44中。因此,无需将不需要的数据传送到扩展单元4a,从而可以减轻通信流量。

可以在避开执行引擎51a执行输入/输出刷新的时间段或根据用户程序中描述的读取命令从扩展单元4的缓冲存储器读取数据的时间段时执行传送处理。注意,扩展总线90的通信流量由监视部54a监视。为了减少数据记录传送时间,压缩引擎55a可以压缩多个数据记录。注意,压缩引擎55a不必由cpu31实现,而是可以由asic或fpga实现。因此,通过采用第一缓冲器37a,可以异步地执行传送处理和用户程序。

<数据利用单元的功能>

图6是用于说明由扩展单元4a的cpu41a实现的功能的图。

收集部52c具有用于根据收集设置39从基本单元3的第一缓冲器收集(获取)数据的功能。收集设置39由用户设置,作为项目数据的一部分进行传送,并且存储到扩展单元4a的存储器42a中。收集部52c可以通过cpu41a执行诸如用户程序等的控制程序来实现。收集部52c设置基本单元3,使得基本单元3收集由收集设置39指定的装置值,并将该装置值传送到扩展单元4a的第二缓冲器37b。注意,收集部52c可以将收集设置39中所包括的基本单元3的收集设置36a写入基本单元3的存储设备32中。期望收集部52c和数据处理部73可以基本上异步地操作。可以提供缓冲器来实现这一点。这里,给出工作示例的描述,在该示例中基本单元3收集装置值并将该装置值临时存储在缓冲器中,然后,扩展单元4a的收集部52c在预定定时收集该装置值。然而,本发明不限于此,并且诸如扩展单元4a等的分析单元可以直接获取装置值并将该装置值存储在扩展单元4a中所提供的存储器中。

收集部52c可以设置扩展单元4b,使得扩展单元4b收集由收集设置39指定的装置值,并将该装置值传送到扩展单元4a的第三缓冲器37c。通过提供第二缓冲器37b和第三缓冲器37c,即使在数据处理部73的处理负荷波动的情况下,也能够不丢落地收集数据。收集部52c可以将收集设置39中所包括的扩展单元4b的收集设置36b(图7)写入扩展单元4b的存储器42b中。注意,这些设置功能可以通过设置部71来实现。设置部71从pc2a或pc2b接收收集设置39、处理设置61以及显示设置62,并将接收到的设置写入存储器42a。处理设置61包括用于定义要由数据处理部73对所收集的数据执行的数据处理的信息和流(程序)。显示设置62包括仪表板模板(html数据、css、javascript(注册商标)代码等),其通过web服务器70向web浏览器18提供数据处理结果。

此外,扩展单元4a的cpu41a实现作为功能组件的分类部76、确定部77、识别部78和发送部79。分类部76分析由收集部52c从基本单元3的第一缓冲器收集(获取)的各装置的时间序列数据的特征,并且基于该特征对时间序列数据进行分类。稍后将参考图12描述分类方法。尽管分类部76在任意定时执行分类处理,但是分类部76基本上在系统的操作开始的定时或在接收到来自用户的指令的定时执行分类处理。确定部77根据由分类部76分类的时间序列数据来确定在识别异常装置时使用的参数,并将这些参数存储在存储器42a中。稍后将描述参数确定处理。当由分类部76执行分类处理时,确定部77进行参数确定处理,并且当已经针对同一装置确定了参数时,确定部77更新参数。在更新时,可以通过重写来进行更新,或者可以通过取平均值或通过某种其它方式从两个参数确定新参数。此外,可以针对各装置确定更新时的处理。如上所述,分类部76和确定部77是在用于分析所收集的数据并学习正常时的数据是什么样的学习阶段中起作用、并确定在识别异常装置时使用的参数的处理部。另一方面,识别部78是在用于评估异常装置的评估阶段中起作用的处理部。识别部78通过使用所确定的参数根据由收集部52c收集的各装置的时间序列数据识别异常装置。稍后将描述识别处理的细节。这里,“异常装置”指示保持与正常时的数据不同的数据的装置存储器的存储区域。可以当在可编程逻辑控制器的操作期间发生异常时、定期地或基于来自用户的监视指令,开始识别部78对异常装置的评估。可以在满足用户预先设置的保存条件时开始该评估。

生成部74根据定义仪表板的显示部的显示设置62,将数据处理结果代入仪表板的模板,以生成仪表板的显示数据。生成部74基于识别部78对异常装置的识别结果,生成用于显示识别结果的显示数据(画面信息)。显示数据可以是例如html数据、图像数据、级联样式表(css)或javascript(注册商标)代码等。显示部例如包括饼图部、条形图部、折线图部和数值显示部等。当通过web浏览器18访问仪表板的web页面时,web服务器70将仪表板的显示数据发送至web浏览器18。web浏览器18接收显示数据并且将显示数据显示在仪表板中。发送部79将由生成部74生成的显示数据发送至外部设备。对在发送时使用的通信线路和通信方法没有特别的限制。可以使用无线连接或有线连接。

注意,可以提供多个数据利用应用。在这种情况下,对于各数据利用应用,所需的数据和读取定时可以不同,并且对于各数据利用应用,可以在存储器42a中确保子缓冲器。收集部52c读取存储在第二缓冲器37b中的数据记录,并将用于第一数据利用应用的数据存储到第一子缓冲器38a中。收集部52c读取存储在第二缓冲器37b中的数据记录,并将用于第二数据利用应用的数据存储到第二子缓冲器38b中。收集部52c读取存储在第三缓冲器37c中的数据记录,并将用于第一数据利用应用的数据存储到第一子缓冲器38a中。收集部52c可以读取存储在第三缓冲器37c中的数据记录,并将用于第二数据利用应用的数据存储到第二子缓冲器38b中。数据处理部73根据第一数据利用应用从第一子缓冲器38a读取数据,执行数据处理,并且生成处理结果。数据处理部73根据第二数据利用应用从第二子缓冲器38b读取数据,执行数据处理,并且生成处理结果。解压引擎75具有与基本单元3的压缩引擎55a和扩展单元4b的压缩引擎55b配对的功能。解压引擎75对由基本单元3压缩并传送的数据进行解压,并将该数据存储到第二缓冲器37b中。解压引擎75对由扩展单元4b压缩和传送的数据进行解压,并将该数据存储到第三缓冲器37c中。这将减少扩展总线90的通信流量的拥塞。解压引擎75可以通过asic或fpga来实现。以这种方式,基本单元3与扩展单元4a、4b之间的数据发送经由扩展总线90进行。

存在对于各数据利用应用需要多个数据的情况。在这种情况下,可以存储子缓冲器所需的多个数据,而将各扫描所收集的数据块维持在缓冲器中。此外,当将数据也分配给子缓冲器时,可以将时间戳等赋予各记录。如图16所示,第二缓冲器37b(可以是第三缓冲器37c)保持所收集的数据块。一个记录包括扫描编号、计时器值(时间戳)和所收集的数据。在该示例中,所收集的数据包括继电器rl1至rl3以及装置dev1、dev2。第一数据利用应用1601需要所收集的数据的继电器rl1至rl3。因此,从第二缓冲器37b读取扫描编号、计时器值以及继电器rl1至rl3,并将它们存储在第一子缓冲器38a中。第一数据利用应用1601从第一子缓冲器38a读取扫描编号、计时器值以及继电器rl1至rl3以创建显示画面(源数据)。第二数据利用应用1602需要所收集的数据的继电器rl3以及装置dev1、dev2。因此,从第二缓冲器37b读取扫描编号、计时器值、继电器rl3以及装置dev1、dev2,并将它们存储在第二子缓冲器38b中。第二数据利用应用1602从第二子缓冲器38b读取扫描编号、计时器值、继电器rl3以及装置dev1、dev2以创建显示画面(源数据)。通过以这种方式利用子缓冲器,原始数据可以被维持在缓冲器中而不被改变。保持在缓冲区中的原始数据可用于其它目的。

<与数据利用有关的扩展单元4b的功能>

图7是用于说明由扩展单元4b的cpu41b实现的功能的图。

执行引擎51b执行扩展单元4b的基本功能(在运动单元的情况下执行运动流)。收集部52b在由收集设置36指定的定时从装置部34b收集由收集设置36指定的数据,并将该数据存储到第四缓冲器37d中。传送部53b在由收集设置36指定的定时或在扩展单元4a接收传送请求的定时,读取存储在第四缓冲器37d中的数据记录,并将该数据记录经由扩展总线90传送到扩展单元4a的第三缓冲器37c。注意,传送部53b可以在由监视部54监视的扩展总线90的通信流量小的定时传送数据记录。压缩引擎55b根据收集设置36压缩数据记录。即,传送部53b可以将经受压缩引擎55b的信息压缩的数据记录传送到扩展单元4a。压缩引擎55b可以由cpu41b实现,但是从高速处理和减轻cpu41b的处理负荷的角度来看,可以由asic或fpga实现。

<数据记录的示例>

图8示出由收集部52a写入第一缓冲器37a的数据记录91。多个数据记录91是时间序列数据的示例。在该示例中,收集部52a针对各扫描周期从装置部34a收集装置名称dev0、dev1、dev10的装置值,添加从收集计数和计时器所获取的时间信息以创建一个数据记录并将该数据记录存储到第一缓冲器37a中。注意,收集对象可以是存储在分配给扩展单元4b的缓冲存储器或装置中的数据。在该示例中,第一缓冲器37a是先进先出(fifo)类型的缓冲器。收集计数是每次收集一个数据记录时增加1的计数器的计数值。收集计数是连续编号,因此用于检测数据记录的丢失或压缩。

例如,当以可对比方式将基本单元3所获取的数据和扩展单元4b所获取的数据显示在仪表板中时,诸如时间戳等的时间信息是有用的。通常,基本单元3中的收集定时与扩展单元4b中的收集定时不一致。因此,将基本单元3的操作与扩展单元4b的操作进行比较需要用于将基本单元3的数据与扩展单元4b的数据链接的信息。通常,时间信息可以通过单元间同步等在基本单元3与扩展单元4a、4b之间同步。因此,基本单元3和扩展单元4b各自将收集数据记录时的时间信息赋予数据记录,使得数据处理部73可以在时间轴上对齐由不同单元获取的多个数据记录。

<传送定时>

图9是用于说明数据记录的传送定时的图。如图9所示,plc1重复地进行输入/输出刷新,用户程序的执行以及结束处理。为了减少扫描周期的延长,避免用于输入/输出刷新的时间段来执行传送处理。同样地,为了减少扫描周期的延长,避免uread和uwrit的执行时间段来执行传送处理。uread是从分配给扩展单元4的缓冲存储器中读取数据的命令,并且在用户程序中进行描述。因此,在用户程序的执行时间段期间,基本单元3根据uread访问扩展单元4以从缓冲存储器获取数据。uwrit是将数据写入分配给扩展单元4的缓冲存储器中的命令,并且在用户程序中进行描述。在用户程序的执行时间段期间,基本单元3根据uwrit访问扩展单元4,并将数据写入缓冲存储器。

如图9所示,在除输入/输出刷新、uread和uwrit之外的其余可传送时间段期间,在扩展总线90上执行传送处理。例如,假设已经由收集设置36a进行了设置以执行一次针对五个数据记录的传送处理。在这种情况下,在完成将五个数据记录存储到第一缓冲器37a中之后并且在第一可传送时间段或者在扩展单元4a接收到传送请求的定时,传送部53a执行传送处理。

<信息压缩>

图10是用于说明数据记录的信息压缩的图。数据记录组92a示出信息压缩之前的数据记录。注意,从前次扫描周期改变的值以阴影显示。这里,将四个继电器装置rl1、rl2、rl3、rl4指定为收集对象。扫描编号被用作收集计数。计数器可以是由计时器等获取的时间信息(示例:指示在继电器接通时和继电器断开时之间的时间间隔的数值)。在数据记录组92a中,在扫描编号“1”的数据记录和扫描编号“2”的数据记录之间没有继电器装置的变化点。即,可以压缩(丢弃或删除)扫描编号“2”的数据记录。然而,扫描编号“3”的数据记录的继电器装置rl1不同于扫描编号“1”的数据记录的继电器装置rl1。在扫描编号“3”具有上述变化点的情况下,扫描编号“3”的数据记录未被压缩。由于在扫描编号“3”的数据记录和扫描编号“4”的数据记录之间没有继电器装置的变化点,因此可以压缩扫描编号“4”的数据记录。同样地,由于在扫描编号“5”的数据记录和扫描编号“6”的数据记录之间没有继电器装置的变化点,因此可以压缩扫描编号“6”的数据记录。通过如上所述聚焦于变化点进行信息压缩,实现了压缩数据记录组92b。构成压缩数据记录组92b的各数据记录具有变化点。如上所述,在本实施例中,在一个或多个装置的组(rl1至rl4)中,当在作为收集对象的组的所有装置中前次扫描周期中收集的值和当前扫描周期中收集的值没有变化时,将当前扫描周期中收集的值删除,并压缩要收集的时间序列数据。尽管这里已经描述了组中管理的工作示例,但是不是意在限制本发明,并且可以在不分组的情况下通过针对各个装置判断接通/断开来进行数据压缩。另外,在数据不是接通/断开(模拟值)的位格式的情况下,可以进行控制以针对各装置检测装置值相对于前次的变化,并在检测到变化时保留该数据。

<总体流程>

图11示出根据本实施例的可编程逻辑控制器中从数据收集到异常装置的识别处理的总体流程。以下描述的处理将被描述为要由扩展单元4a的cpu41a执行的处理。然而,不是意在限制本发明,并且一部分处理可以由基本单元3或其它扩展单元4b执行,或者可以由通信地连接至可编程逻辑控制器的外部设备(分析器)执行。

在s1中,cpu41a(设置部71)设置基本单元3和扩展单元4b。例如,cpu41a将基本单元3的收集设置36a传送到基本单元3。基本单元3将收集设置36a存储到存储设备32中。cpu41a将基本单元3的收集设置36b传送到扩展单元4b。扩展单元4b将收集设置36b存储到存储器42b中。

在s2中,cpu41a(收集部52c)根据所设置的收集设置来收集作为收集对象的装置的时间序列数据。这里,当存储了预定量的收集数据时,可使处理进入下一处理。即,这里,判断转移到学习阶段的定时,并且当将足够用于学习的数据量(预定数量扫描周期的时间序列数据)存储到诸如缓冲器或存储卡等的存储部中时,处理进入下一处理。

在s3中,cpu41a(分类部76和确定部77)分析在s2中收集的数据,并创建用于识别异常装置的学习模型(在本实施例中为参数)。学习阶段的处理将在后面参考图15进行描述。

在s4中,cpu41a(收集部52c)根据所设置的收集设置来收集作为收集对象的装置的时间序列数据。s4及其后的处理实际上是系统操作时的处理。这里的数据收集基本上以与s2中的数据收集相同的方式进行。注意,学习阶段可以在系统的操作开始时进行,或者可以在从用户接收到指令的定时开始。可以定期地进行学习阶段。即,在系统操作时,总是收集数据,定期地进行学习阶段,并且在满足保存条件的定时进行评估阶段。例如,当在可编程逻辑控制器的操作期间发生异常并且基本单元3检测到满足保存条件时,将在基本单元3的第一缓冲器37a中收集的时间序列数据存储到存储卡44中。在s5中,cpu41a(识别部78)获取保存在存储卡44中的时间序列数据,并应用在s3中确定的参数来识别异常装置。即,这里进行评估阶段中的处理,并且稍后将参考图16描述细节。此外,cpu41a基于由识别部78识别出的识别结果,通过生成部74生成指示识别结果的显示数据,并将该显示数据显示在基本单元3的显示部5上,或者通过发送部79经由通信部43将所生成的显示数据或识别结果发送至外部设备。在这种情况下,在外部设备中将识别结果显示给操作者。除了如上所述的在在可编程逻辑控制器的操作期间发生异常时基本单元3检测保存条件的满足并识别异常装置的方法之外,s5的操作还可以是不断收集装置值并分析该装置值中是否没有异常的方法、当用户先前确定的装置值进行预定改变时分析基本单元所收集的装置值的方法或者定期地或基于来自用户的监视指令分析装置值中是否没有异常的方法。在这些情况下,术语“异常”表示要分析的装置值与正常时的装置值不同,即,与正常时的数据偏离,并且不必表示在可编程逻辑控制器中发生的异常。注意,稍后将参考图16详细描述用于考虑收集定时从数据收集中识别异常装置的评估阶段的处理过程。

<所收集的数据的分类>

图12示出要收集的时间序列数据的类型的示例。附图标记1201至1206各自表示各类型的装置信号(时间序列数据)。装置信号可以包括外部信号。注意,以下描述的类型仅是示例,不旨在限制本发明,并且本发明可以应用于其它类型。在本发明中,期望要分类的类型包括多种类型中的至少两种,以提高分类效果。注意,学习时的时间序列数据的分类通过用户选择用于确定分类的周期(操作周期)的装置来进行,并且基于装置的可重复性来进行。

附图标记1201表示与设备的操作周期同步地操作的装置的装置信号。附图标记1210表示设备的操作周期。在1201类型中,对于设备的各操作周期,发生同样的变化模式(稳定变化模式)。在这种类型中,例如,分配这样的检测方法,其中从可以被视为正常状态的时间段期间获取的时间序列数据中识别稳定变化模式,并且基于从新获取的时间序列数据识别的与稳定变化模式的偏差来识别异常装置(与通常不同的装置)。具体地,针对可以被视为正常状态的多个周期中各周期的时间序列数据的变化模式来测量针对变化点的时间变化,并且根据所测量的变化来设置阈值。基于此后获取的时间序列数据的变化点是否超过与该变化点相对应地设置的阈值范围,分配用于检测异常装置的检测算法。例如,叠加针对设备的各操作周期的多个波形,并且基于装置从断开改变为接通的点的变化,设置变化点的基准值和阈值,使得可以使用这些参数来识别异常装置。在1201的各周期中,可以将指示第一信号的上升定时的相对时刻或各周期中的相位用作评价变量,并且可以基于该评价变量的变化来确定与该评价变量相对应的参数。例如,当将各周期中的相位用作评价变量时,可以将该相位的上限阈值和下限阈值用作参数。

另一方面,附图标记1202表示不与扫描周期同步但是与设备的操作周期之外的周期同步地操作的装置的装置信号。同样对于这种类型,例如,分配这样的检测方法,其中从可以被视为正常状态的时间段期间获取的时间序列数据中识别稳定变化模式,并且基于从新获取的时间序列数据中识别的与稳定变化模式的偏差来识别异常装置(与通常不同的装置)。具体地,针对可以被视为正常状态的多个周期中各周期的时间序列数据的变化模式来测量针对变化点的时间变化,并且根据所测量的变化来设置阈值。基于此后获取的时间序列数据的变化点是否超过与该变化点相对应地设置的阈值范围,分配用于检测异常装置的检测算法。在1202的各周期中,可以将指示第二信号的上升定时的相对时刻或各周期中的相位用作评价变量,并且可以基于该评价变量的变化来确定与该评价变量相对应的参数。例如,当将各周期中的相对时刻用作评价变量时,可以将该相对时刻的上限阈值和下限阈值分别用作参数。

附图标记1203表示采用恒定值的装置的装置信号。在这种类型中,例如,分配这样的检测方法,其中从可以被视为正常状态的时间段期间获取的时间序列数据中识别正常时的值,并且将与正常时所识别的值不同的新获取的时间序列数据识别为异常装置(与通常不同的装置)。具体地,分配检测算法,其中将可以被视为正常状态的时间序列数据中的装置的值设置为检测基准值,并且基于此后获取的时间序列数据的值是否不同于与正常时的值相对应地设置的检测基准值来检测异常装置。换句话说,当值(恒定值)改变时,可以将该值判断为异常。附图标记1204表示不定期操作的装置的装置信号。从识别异常装置时使用的数据中排除这种类型。附图标记1205表示采用模拟值的装置的装置信号。在采用模拟值的装置中,如下所述,在该装置值不是位装置的装置值的情况下,处理进入图13a中的s21的“否”(图13b的s27),并且如图13b所示,评估阶段中的算法根据用于改变数据的方法而不同。作为采用模拟值的装置的评估阶段中的算法,可以使用诸如动态时间扭曲方法和自回归模型等的各种方法。附图标记1206表示单调增加和单调减少装置的装置信号。在这种类型中,使用微分值和积分值来识别异常装置。此外,可以将指示单调增加或单调减少的定时的相对时刻或各周期中的相位用作评价变量。注意,这里描述的类型仅是示例,并且还假定了分类为其它类型的装置,例如,一些装置可以采取多种状态(阶梯状装置信号等)。当改变为不同于正常时的状态时,可以将采取多种状态的装置判断为异常。

这里,将参考图14描述装置类型。如图14所示,各装置包括0、1位类型装置、以及采用模拟值的字类型装置或浮点数类型装置。注意,字装置还包括1个字的无符号整数(0至65535)、1个字的有符号整数(-32768至32767),2个字的无符号整数(0至4294967295)和2个字的有符号整数(-214783648至214783647)。考虑这种类型,例如,当每个扫描周期的变化率等于或大于预定值并且该类型不是位时,可以将该装置判断为采用模拟值的装置。

<分类>

图13a和13b是示出在对所收集的数据进行分类时使用的处理过程的流程图。以下描述的处理通过扩展单元4a的cpu41a来实现。然而,不是意在限制本发明,并且一部分处理可以由基本单元3或其它扩展单元4b执行,或者可以由通信地连接至可编程逻辑控制器的外部设备(分析器)执行。

在s21中,cpu41a判断要分类的时间序列数据是否是位装置的装置值。当该装置值是位装置的装置值时,处理进入s22;否则,处理进入图13b的s27。

在s22中,cpu41a判断要分类的时间序列数据的值是否存在变化。当存在变化时,处理进入s24,而当不存在变化并且采用恒定值时,处理进入s23。在s23中,cpu41a将要分类的时间序列数据分类为采用恒定值的装置(1203),并结束处理。作为分类信息,存储与时间序列数据相关联的信息,例如,与时间序列数据或指示与时间序列数据相对应的装置的判别信息相关联地存储指示分类类型的标记信息。如这样所述的,预先将学习阶段的分类时所分类的类型的标记信息和装置的判别信息进行关联并存储,由此在评估阶段中,可以根据要验证的时间序列数据是来自哪个装置的数据,基于与该装置的判别信息相关联的类型,容易地选择作为异常装置的检测算法的评价变量或参数。即,在评估阶段,可以省略识别要验证的时间序列数据对应于哪种类型的处理。尽管已经将指示分类类型的标记信息示出为作为分类信息的示例,但是可以使用指示用于识别异常装置的算法的算法信息来代替标记信息。当与时间序列数据相对应的装置是变量时,不用说,存储为分类信息的判别信息是指示该变量的判别信息。

在s24中,当时间序列数据的值存在变化时,cpu41a判断该变化在各周期中是否为稳定变化模式。当判断为模式是稳定变化模式时,处理进入s25,并且当判断为该模式不是稳定变化模式时,处理进入s26。这里,稳定变化模式指示在各周期中以同样的模式变化的模式。如上所述,稳定变化模式是时间序列数据的值在各周期中变化的模式,并且由于在各周期期间是同样的固定模式,因此也称为固定变化模式。在s25中,cpu41a将装置分类为以预定周期操作的装置,并结束处理。如上所述,以预定周期操作的装置包括与设备的操作周期同步地操作的装置(1201)以及与设备的操作周期之外的周期同步地操作的装置(1202),并且cpu41a将该装置分类为各装置。另一方面,在s26中,cpu41a将装置分类为不定期操作的装置(1204),并结束处理。

注意,cpu41a可以基于与特定装置有关的时间序列数据的值的变化来指定设备的操作周期或除设备的操作周期之外的周期。例如,特定装置的装置值具有在设备的各操作周期内的一个脉冲,并且被收集为具有定义各操作周期的开始定时的变化点的时间序列数据。即,特定装置的值与设备的操作周期同步地变化,并且变化点定义操作周期。这样的特定装置可以通过操作者的选择来设置。同样地,限定除操作周期之外的周期的装置也可以通过操作者的选择来设置。自然地,装置的操作周期可以从所收集的时间序列数据中自动地指定,或者可以在识别之后由操作者进行调整。因此,可以进一步支持操作者,并且即使对于没有经验的操作者也可以提供用户友好的操作系统。此外,可以将以除操作周期之外的周期进行操作的装置定义为基于操作周期进行不定期操作的装置,并且例如,当未设置指定除操作周期之外的周期的装置时,cpu41a将以除操作周期之外的周期进行操作的装置分类为不定期操作的装置(1204)。

另一方面,当在s21中判断该装置不是位装置时,处理进入图13b所示的s27,并且cpu41a判断要分类的时间序列数据是否已经变化了预定值或更大值。这里,判断变化信号的极值是否等于或大于预定值。当存在变化时,处理进入s28;否则,处理进入s212。

在s28中,cpu41a判断是否已经以预定周期进行了变化,并且当未以预定周期进行变化时,处理进入s29,而当以预定周期进行变化时,处理进入s210。在s210中,cpu41a判断变化值是否是单调增加或单调减少。当变化值单调增加或单调减少时,处理进入s211;否则,处理进入s29。

在s29中,cpu41a将该装置分类为具有模拟值的装置(1205),并结束处理。存在各种类型的模拟值装置,并且根据要分类的装置的类型进行单独的对应。另一方面,在s211中,cpu41a将装置分类为具有单调增加或单调减少的装置(1206),并结束处理。在s212中,cpu41a将该装置分类为其它装置,并结束处理。当判断为该装置是其它装置时,不能提取要分类的时间序列数据的特征,并且不能识别正常时的特征操作,使得在识别异常装置时不使用该装置。

如上所述,cpu41a基于要分类的时间序列数据自动地对要分类的装置进行分类,但是除此之外,cpu41a可以从操作者接收针对要分类的装置的类型的设置。cpu41a根据操作者的指定来接收针对要分类的装置的类型的设置。然后,cpu41a将指示分类类型的标记信息与指示要分类的装置的判别信息相关联地存储。可以在由cpu41a进行分类之前进行针对要分类的装置的类型的设置。例如,当基于操作者的指定对要分类的多个装置中的特定装置进行类型的设置时,cpu41a不必针对先前已设置类型的装置进行基于要分类的时间序列数据的分类。另一方面,cpu41a可以针对要分类的多个装置中的操作者尚未指定的其它装置,进行基于要分类的时间序列数据的分类。特别地,在已经通过先前的学习确定了装置的类型并且进一步进行附加学习的情况下,可以基于操作者的指定通过先前的学习来固定装置的类型,并且对于需要改变的装置,可以基于操作者的指定通过先前的学习来确定与该装置类型不同的装置类型。例如,可以确定在识别异常装置时不使用的类型。

可以在由cpu41a分类之后进行要分类的装置的类型的设置。例如,对于要分类的多个装置,cpu41a基于要分类的时间序列数据自动地对要分类的装置进行分类。此后,cpu41a可以将已经由操作者的指定设置了类型的装置的自动分类类型更新为已经根据操作者的指定针对要分类的装置所设置的类型。因此,即使要用于自动分类的时间序列数据的时间段短或在时间段中存在不平衡,通过与操作者已知的信息组合,可以有效地使要分类的装置接近期望的分类。

<学习阶段>

图15示出在分析所收集的时间序列数据、基于各装置的特征对时间序列数据进行分类以及确定检测算法时使用的处理过程。以下描述的处理通过扩展单元4a的cpu41a来实现。然而,不是意在限制本发明,并且一部分处理可以由基本单元3或其它扩展单元4b执行,或者可以由通信地连接至可编程逻辑控制器的外部设备(分析器)执行。

用于开始学习阶段的定时例如是从前次学习处理起经过了预定时间段的定时、收集到预定量的时间序列数据的定时、或者接收到来自用户的指令的情况。当学习阶段开始时,cpu41a(收集部52c)根据所设置的收集设置来收集作为收集对象的装置的时间序列数据(s2)。

在s31中,cpu41a执行分类处理。例如,当将预定量的收集数据存储到基本单元3的存储卡44中时,扩展单元4a响应于来自基本单元3的指令来进行分类处理。基本单元3可以检测到已经将预定量的收集数据保存到存储卡44中,并且向扩展单元发送开始分类的指令。可以通过扩展单元检测到足以进行学习的数据量(预定数量的扫描周期中的时间序列数据)已经累积在诸如缓冲存储器或存储卡等的存储部中来进行该开始。已经参考图13a和13b详细描述了分类处理,因此这里将不再描述。

随后,在s32中,cpu41a根据在s31中分类的时间序列数据来确定在识别异常装置时使用的参数,并结束处理。这里,针对各分类类型进行该处理,并且将与时间序列数据相对应的装置的类型和参数彼此关联地存储。当存在已经确定的参数时,可以将该参数更新为本次确定的参数,来替代已经确定的参数,或者可以使用已经确定的参数和本次确定的参数来计算和更新新参数。可以将诸如平均值等的各种方法应用于计算方法,并且选择适合于各时间序列数据的方法。所确定的参数可以由操作者进行改变。因此,即使在学习时间段短的情况下确定极值参数时,也可以进行调整。

这里,将描述在s32中确定的参数。对于图12中的1201和1202类型(值与预定周期同步地以稳定模式变化的各装置),例如,cpu41a根据设备的操作周期内的波形的变化模式来计算设备的各操作周期的波形的任意变化点之间的时间,并基于变化点之间的时间分布来确定变化点之间的时间的阈值作为参数。此外,这种情况下的参数可以包括正常时的时间序列数据的装置值变化的定时。

上述的作为参数的变化点之间的时间的阈值可以例如通过根据学习时的变化计算标准偏差和平均值、将平均值+3×标准偏差设置为上限阈值、并将平均值-3×标准偏差设置为下限阈值来确定。对于1203类型(采用恒定值的装置),cpu41a使用该恒定值作为参数。如上所述,对于值与预定周期同步地以稳定模式变化的装置,将变化点之间的时间间隔、变化点的定时、以及与之相关的阈值用作参数。

对于1205类型(模拟值),例如,可以将学习时的时间序列数据的值和与距学习时的时间序列数据的距离有关的阈值用作参数。距离的计算方法可以是例如用于获得各个点的差之和的方法。在这种情况下,在评估时,计算学习时的时间序列数据与评估时的时间序列数据之间的距离,并判断该距离是否在该阈值的范围内。对于1206类型(单调增加、单调减少),例如,将正常时的单调增加时的增加值和单调减少时的减少值确定为参数。

如上所述,根据本实施例,基于各装置的时间序列数据的周期性特征,将各装置分类为多个预先确定类型其中之一,并且应用适用于各分类类型的异常(与通常不同的变化)的检测算法。即,在本实施例中,在学习阶段中,根据正常时(学习时)的时间序列数据将装置分类为多个预先确定类型其中之一。此外,根据各类型确定检测算法,并且设置与各检测算法相对应的评价变量和参数。另一方面,在评估阶段,对于在学习阶段中确定了检测算法的各装置,将根据所确定的评估对象装置的类型所确定的检测算法应用于该装置的时间序列数据。因此,通过使用与在学习阶段中确定的装置的类型或装置的类型相对应的异常装置的检测算法分析装置的时间序列数据,来识别异常装置。注意,优选地不将未被分类为学习时的预定类型的装置取为在评估时作为收集对象的装置,因为未设置评价变量或参数。换句话说,以上内容是为了防止以下情况:即使收集了这样的数据,由于未设置用于识别该装置是否为异常装置的检测算法,因此不必要地增加了处理负荷和存储器资源的消耗。

<评估阶段>

图16是示出识别异常装置时的处理过程的流程图。以下描述的处理由基本单元3的cpu31和扩展单元4a的cpu41a实现。然而,不是意在限制本发明,并且一部分处理可以由基本单元3或诸如扩展单元4a、4b等的其它单元执行,或者可以由通信地连接至可编程逻辑控制器的外部设备(分析器)执行。这里,作为一系列处理,将用于获取装置值、在满足保存条件时将该装置值从缓冲存储器保存到存储卡44、以及执行识别处理的处理描述为一系列处理。因此,将基本单元3用于获取装置值并将装置值存储到存储卡44中的处理和扩展单元4a用于获取由基本单元3保存到存储卡44中的装置值并执行识别处理的处理示出为一系列处理。即,由基本单元3的cpu31(收集部52a)进行满足保存条件时保存装置值的处理(下面的s41至s46),并且由扩展单元4a的cpu41a进行通过使用保存在存储卡44中的装置值来识别异常的处理(s47和s48)。自然地,s41至s48中的处理或其一部分可以由其它单元执行。

这里,将描述用于将保存在基本单元3的缓冲存储器(第一缓冲器37a)中的装置值存储到存储卡44中的保存条件。例如,保存条件是当在plc中发生异常时、当用户预先指定了作为保存触发的装置并且该装置的装置值具有预定变化时、当由用户发出分析命令时、当经过了用于定期监视的监视周期时、以及当从连接到基本单元3的扩展单元发出了分析命令时等满足的条件。这些保存条件可以是由用户设置、作为项目数据传送并存储的条件、在plc的操作期间由用户输入的条件、基于从扩展单元4生成的信息的条件或一些其它条件。

在s41中,cpu31判断是否已经满足收集条件。收集条件是例如通过经过了先前确定的收集周期的定时或各扫描的结束处理的定时满足的条件。

在s42中,基本单元3的cpu31获取在图11的s4中收集的装置值,并在s43中判断所获取的装置值是否与先前保存在第一缓冲器37a中的装置值相同。当该装置值是相同值时,处理返回到s41以进入下一装置值的处理。另一方面,当该装置值不同于先前存储的装置值时,处理进入s44。

在s44中,cpu31将所获取的装置值存储到第一缓冲器37a中,然后进入s45。以这种方式,收集部52a针对由收集设置36a设置的各收集周期(例如,扫描周期)获取装置值(和时刻信息),并将该装置值存储到第一缓冲器37a中。注意,优选地采用环形缓冲器作为第一缓冲器37a。这是因为考虑到存储器资源,并非将存储在第一缓冲器37a中的所有数据都收集作为日志数据(所收集的数据)。

在s45中,cpu31判断是否满足将存储在第一缓冲器37a中的装置值保存到基本单元3的存储卡44中的保存条件。这里设置保存条件以例如在可编程逻辑控制器的操作期间发生异常时被满足。如上所述,保存条件可以设置为在除plc的异常时之外的时间被满足,并且可以执行识别装置值是否异常的处理。即,“装置值异常”不必指示plc的异常,而可以简单地指示与通常装置值不同的值。因此,除plc的异常时之外,满足保存条件的可想象示例包括:生成与通常不同的装置值的定时;接收到来自用户的监视指令的定时;以及用于在从用户接收到监视指令之后以及在进一步经过了预定执行周期之后或者定期地判断异常的指定定时。后面将在第二实施例和第三实施例中描述这些细节。注意,可以提供在第一实施例至第三实施例中描述的功能的至少一个。

当满足保存条件时,在s46中,基本单元3的cpu31从基本单元3的第一缓冲器37a获取要评估的时间序列数据以识别异常装置,并将时间序列数据保存到存储卡44中。要评估的数据默认情况下是所有装置的数据,并且可以根据操作者的指定进行选择,或者可以根据异常的类型进行选择。时间序列数据可以包括从异常发生时的预定时间段之前的点到经过了异常发生时的预定时间段之后的点的时间段的时间序列数据。可选地,该数据可以是在异常发生之后的预定时间段内的数据。

接着,在s47中,扩展单元4a的cpu41a针对在s46中保存到存储卡44中的各个时间序列数据,基于在学习时确定的与时间序列数据相对应的装置的类型,通过使用针对各类型最佳的检测方法以及与检测方法相对应的评价变量和参数来识别异常装置。如上所述,根据本实施例,在学习时提取装置值的变化的特征,将各装置值分类为先前确定的类型,并且应用适用于分类装置的各类型的异常(与通常不同的变化)的检测方法。即,在本实施例中,在学习阶段中,根据正常时的时间序列数据来分类装置值,根据各类型来确定检测方法,并设置与各检测方法相对应的评价变量和参数。另一方面,在评估阶段的上述s47中,通过将评价变量和参数应用于装置的时间序列数据并分析评价变量和参数来识别异常,其中评价变量和参数是根据在学习阶段中分类的各装置的类型而确定的检测算法。对于时间序列数据的类型,如上所述,在分类时,将该类型的标记信息和与时间序列数据相对应的装置的判别信息彼此相关联地存储。因此,在s47中,cpu41a从作为要评估的时间序列数据的获取目的地的装置的判别信息中判别对应的类型,并通过使用作为与该类型相对应的检测算法的评价变量和参数来识别异常装置。根据各参数通过上述方法进行判断方法。

这里,参考图17,将描述识别异常装置时的判断方法。附图标记1701和1702表示1201和1202类型的异常装置(值与预定周期同步地以稳定模式变化的装置)的数据。附图标记1711和1712表示异常部分。如上所述,当存在与正常时相比发生了要变化的信号未变化、变化点偏移或脉冲宽度不同的情况的装置时,可以将该装置识别为异常装置。cpu41a可以通过使用所确定的检测算法来判别与正常时的变化不同的数据。附图标记1703表示1203类型的异常装置的数据(该装置采用恒定值)。如1713所示,应该采用恒定值的信号已变化,因此可以将该装置识别为异常装置。

附图标记1704表示用于通过使用被分类为诸如1201和1202类型等的相同类型的两个装置(值与预定周期同步地以稳定模式变化的装置)的时间序列数据来识别异常装置的算法。在该算法中,在与预定周期同步地进行变化的装置中检查两个装置的各个值的变化点之间的时间间隔。例如,假设一个装置在一个周期中具有两个变化点(a1、a2),而另一装置在一个周期中具有四个变化点(b1、b2、b3、b4)。在这种情况下,可以判断各变化点之间的时间差是否为阈值范围内的值。更具体地,可以利用各阈值来判断变化点a1与各个变化点b1至b4之间的时间差以及变化点a2与各个变化点b1至b4之间的时间差,以判断装置是否为异常装置。这种情况下的参数是变化点之间的时间差的阈值、各变化点的定时以及各变化点的定时的阈值。当使用该判断方法识别异常装置时,将两个装置识别为异常装置。

描述返回到图16。接着,在s49中,cpu41a输出s48的识别结果,并结束处理。这里,生成部74首先生成用于显示识别结果的显示数据,并且该显示数据被显示在基本单元3的显示部5上,或者被发送至外部设备并显示在其显示部上。这里,后面将参考图18描述基于显示数据的显示画面。

图18示出识别结果的显示示例。

画面1800在水平轴上示出时间以及在垂直轴上示出异常装置的数量。生成部74根据识别结果和此时的时间序列数据,从被识别为异常装置的装置来生成画面1800的显示数据。当在可编程逻辑控制器中发生异常时,设施停止,并且异常装置的数量趋于增加。因此,如在画面1800中那样,通过针对预定时间段(例如,每五分钟)的各时间间隔显示异常装置发生的累积次数,操作者可以容易地辨认从何时起已经发生异常。

画面1810是示出被识别为异常装置的各装置的状态的显示。针对各装置显示发生异常时的时间和异常的细节。将导致判断为异常的信息显示为异常的细节。例如,在装置a中,可以看出在采用恒定值的装置中,正常时的值为123,但是该值变化为127,由此将该装置判断为异常。在装置b中,示出在与预定周期同步地进行变化的装置中发生了异常的变化间隔。

画面1820是示出作为评估对象的装置的异常程度的显示。生成部74根据识别结果生成用于对被评估装置的装置异常程度进行排名和显示的显示数据。即,在画面1820上,显示具有高异常可能性的候选装置,以可通过装置名称等来区分。为了进行显示,除异常程度之外,还可以显示异常的细节和装置的分类。这里,例如通过已经发生的异常数量和与预定阈值的差大小来确定异常程度。即,异常程度指示异常的大小。在画面1820上,示出以异常程度的降序的显示示例,但是可以在诸如发生时间的顺序等的条件下进行排序来显示。另外,可以根据针对装置的分类方法来进行排序,或者可以仅显示与用户预先选择的分类方法有关的异常的细节。例如,可以使用预定阈值通过以下等式获得异常程度。

异常程度=(当前值-平均值)/(阈值-平均值),即,根据当前值按照如下定义异常程度:在当前值超过上限阈值时,异常程度为1或更大。在当前值等于上限阈值时,异常程度为1。在当前值等于平均值时,异常程度为0。在当前值等于下限阈值时,异常程度为-1。在当前值低于下限阈值时,异常程度为-1。对于异常程度,可以采用绝对值。此外,在当前值不等于要比较的预定值时,可以将异常程度一致地设置为1。

画面1830是显示正常时和异常时的装置的信号以能够进行比较的示例。如画面1830所示,期望突出显示异常部分。在图18的示例中,异常部分处的信号附近显示为被虚线框包围,但是异常部分处的信号可以以与其它颜色不同的颜色进行显示,或者该部分可以闪烁。

<附加学习>

图21是示出在进行附加学习时使用的处理过程的流程图。这里,附加学习是在与参考图15描述的学习阶段中的学习不同的定时附加地进行的学习处理。对于该定时,假设各种定时,但是如后面所述,可以是尽管预定装置是正常的但在评估阶段中被识别为异常的情况、操作者指定的定时以及用于应对系统随着时间的变化的定期定时等。即,附加学习是在需要更新学习模型(诸如在s32中确定的用于识别异常装置的参数等)的定时附加地进行的学习。以下描述的处理通过扩展单元4a的cpu41a来实现。然而,不是意在限制本发明,并且一部分处理可以由基本单元3或其它扩展单元4b执行,或者可以由通信地连接至可编程逻辑控制器的外部设备(分析器)执行。

在s201中,cpu41a(收集部52c)根据所设置的收集设置来收集设备正常操作时作为收集对象的装置的时间序列数据。作为收集对象的装置包括作为评估阶段中的判断对象的多个装置。另外,可以从作为收集对象的装置中排除并非作为评估阶段中的判断对象的装置。例如,可以从作为收集对象的装置中排除被分类为不定期操作的装置(1204)的装置。

这里,设备正常操作时作为收集对象的装置的时间序列数据是即使评估阶段中的判断结果应该被判断为正常但也被判断为异常的装置的时间序列数据。例如,当在学习阶段中学习不足够时,评估阶段中的判断结果可能是异常的。因此,当尽管设备正常操作但要收集的时间序列数据的判断结果变得异常时,cpu41a可以进行附加学习。即使在评估阶段中的判断结果是异常并且收集了异常(与通常不同的状态)发生时的时间序列数据,在时间序列数据包括与正常操作的时间段相对应的时间序列数据的情况下,与正常操作的时间段相对应的这种时间序列数据也对应于在设备的正常操作时要作为收集对象的装置的时间序列数据。此时,当与正常操作的时间段相对应的时间序列数据的判断结果是异常时,可以使用该部分来进行附加学习。

接着,在s202中,cpu41a判断是否已经满足附加学习条件,即,是否已经到达附加学习的定时。用于开始附加学习的定时例如是从前次学习处理起经过了预定时间段的定时、已经收集到预定量的时间序列数据的定时或者接收到来自用户的指令的定时。此外,用于开始附加学习的定时可以是在评估阶段中评估为设备正常操作的预定定时或者在评估阶段中评估为设备异常操作的定时。存在某一时间段后代替一次学习进行更新(进行附加学习)以提高准确性可能很有效的情况,诸如设备的操作有时很慢但操作很慢在正常范围内的情况或者在重新打开设备的电源时操作时间因气压变化而变化(随时间变化)的情况等。

在s311中,cpu41a判断被设置为收集对象的多个装置各自是否是评估阶段中的判断对象。当cpu41a判断为该装置是判断对象时,处理进入步骤s312以对该装置进行附加学习,并且当判断为该装置不是判断对象时,处理在不对该装置进行附加学习的情况下进入步骤s341。例如,cpu41a判断为被分类为不定期操作的装置(1204)的装置不是判断对象,并且在不进行附加学习的情况下进入步骤s341。

在s312中,cpu41a执行分类处理。例如,当在再次接通电源之后将预定量的收集数据存储到基本单元3的存储卡44中时,扩展单元4a响应于来自基本单元3的指令进行分类处理。存储的预定量的收集数据是在附加学习的对象时间段中收集的各装置的时间序列数据。基本单元3可以检测到已经将预定量的收集数据保存到存储卡44中,并且向扩展单元发送开始分类的指令。在再次接通电源之后,可以通过扩展单元4a检测到足以进行学习的数据量(预定数量的扫描周期中的时间序列数据)已经累积在诸如缓冲存储器(第一缓冲器37a)或存储卡44等的存储部中来进行该开始。

具体地,在s312中,cpu41a基于直到前次确定的类型、装置的时间序列数据的特征量以及本次要分类、收集的时间序列数据,对要分类的装置进行自动分类。例如,通过先前的学习,cpu41a被分类为采用恒定值的装置(1203)类型,并且当针对该装置本次收集的正常操作时的时间序列数据包括与恒定值不同的值时,将分类更新为不定期操作的装置(1204)。在此,采用恒定值的装置(1203)的特征量对应于该恒定值。同样地,当通过先前的学习已经将装置分类为与设备的操作周期同步地操作的装置(1201)并且针对该装置本次收集的正常操作时的时间序列数据包括与先前的学习不同的模式时,cpu41a将分类更新为不定期操作的装置(1204)。这里,与设备的操作周期同步地操作的装置(1201)的特征量对应于在设备的操作周期内的波形的变化模式、即时间序列数据的变化模式。随着分类被更新,根据更新后的类型确定的检测算法也被更新。此外,还在后面描述的s324和s334中根据更新后的检测算法来更新对应参数。

注意,cpu41a基于要分类的时间序列数据自动地对要分类的装置进行分类,但是除此之外,cpu41a可以接收针对要分类的装置的类型的设置。在要分类的装置中,许多装置的类型不需要改变,并且即使对于需要改变的类型,操作者也可以知道哪个装置应该改变为哪种类型。因此,cpu41a根据操作者的指定接收针对要分类的装置的类型的设置,并且将指示分类类型的标记信息与指示要分类的装置的判别信息相关联地存储。可选地,可以根据操作者的指定将装置分类为不定期操作的装置(1204),并且可以从评估阶段中的判断对象中排除该装置。可以在cpu41a的分类之前进行要分类的装置的类型设置。例如,当基于操作者的指定对要分类的多个装置中的特定装置进行类型设置时,cpu41a不对先前设置了类型的装置进行基于要分类的时间序列数据的分类。另一方面,cpu41a针对要分类的多个装置中与特定装置不同的其它装置,进行基于要分类的时间序列数据的分类。特别地,在已经通过先前的学习确定了装置的类型并且进一步进行附加学习的情况下,可以基于操作者的指定通过先前的学习来固定装置的类型,并且对于需要改变的装置,可以基于操作者的指定通过先前的学习来确定与该装置的类型不同的装置的类型。例如,可以确定在识别异常装置时不使用的类型。

在s321中,cpu41a判断在s312的重新分类中是否维持由先前的学习确定的装置的类型。当cpu41a判断为维持由先前的学习确定的装置的类型时,处理进入s322以确定参数。另一方面,当判断为未维持通过先前学习确定的装置的类型时,即,当判断为已经重新分类并更新了装置的类型时,处理进入s323,并且cpu41a基于分类处理的更新结果来判断装置是否为评估阶段中的判断对象。当cpu41a判断为装置是判断对象时,处理进入s324以确定装置的参数,并且当cpu41a判断为装置不是判断对象时,处理进入s341。例如,cpu41a判断为被分类为不定期操作的装置(1204)的装置不是判断对象并终止附加学习,并且处理进入骤s341。

在s322中,cpu41a通过使用针对对象装置已经确定的参数和针对对象装置本次收集的正常操作时的时间序列数据来计算并更新新的参数,并且处理进入s331。例如,当通过先前的学习确定了与设备的操作周期同步地操作的装置(1201)并且维持该装置的类型时,cpu41a基于指示通过先前学习确定的时间序列数据与本次收集的正常操作时的时间序列数据的任意变化点之间的时间变化的上限阈值和下限阈值,计算并更新新的上限阈值和新的下限阈值。因此,基于本次收集的正常操作时的时间序列数据的任意变化点之间的时间以及上限阈值和下限阈值来计算并更新新的上限阈值和新的下限阈值,从而根据本次收集的正常操作时的时间序列数据的任意变化点之间的时间变化以及与阈值的偏差程度来加宽或缩小更新后的阈值的宽度。

在s324中,cpu41a通过使用这次收集的正常操作时的时间序列数据来计算并更新与更新后的类型相对应的参数,并且处理进入s331。可以通过与在图15的s32中确定的参数的相同计算方法来获得这里计算和确定的参数。例如,可以将诸如平均值等的各种方法应用于计算方法,并且选择适合于各时间序列数据的方法。所确定的参数可以由操作者进行改变。因此,即使在学习时间段短的情况下确定了极值参数,也可以进行调整。

在s331中,cpu41a判断是否针对各装置已从操作者接收到用于分类的校正输入。例如,cpu41a可以根据操作者的指定来接受针对要分类的装置的类型的设置并校正所分类的类型,并且cpu41a基于来自操作者的这种校正输入来判断是否已经校正了分类。当cpu41a判断为尚未从操作者接收到针对各装置的用于分类的校正输入时,处理进入s333。

另一方面,当判断为从操作者接收到用于分类的校正输入时,处理进入s332,并且cpu41a判断校正是否适合于与操作者的指定相对应的要分类的设置装置的类型,并且当判断为校正适合时,cpu41a将校正反映到根据操作者的指定设置的分类的类型。即,cpu41a判断本次收集的正常操作时的时间序列数据是否适合于分类的设置类型。此外,当判断为根据操作者的指定所设置的分类的类型不适合时,cpu41a可以通知该类型不合适,或者可以在通知该类型不合适的同时敦促重新指定分类。例如,当根据操作者的指定已经将装置分类为采用恒定值的装置(1203)类型并且本次收集的正常操作时的时间序列数据包括与恒定值不同的值时,cpu41a可以通知由操作者设置的类型不合适,或者可以将装置重新分类为不定期操作的装置(1204)。同样地,当根据操作者的指定将装置分类为与设备的操作周期同步地操作的装置(1201)并且本次收集的正常操作时的时间序列数据包括不同的模式时,cpu41a可以通知由操作者设置的类型不合适,或者可以将装置重新分类为不定期操作的装置(1204)。当s332的处理结束时,cpu41a再次将处理返回到s321,以根据校正后的分类来确定参数。

在s333中,cpu41a判断操作者是否针对各装置输入了参数校正。例如,cpu41a可以进一步根据操作者的校正输入来调整在s322或s324中更新的参数。当判断为尚未接收到操作者的针对参数的校正指令时,处理进入s341。另一方面,当操作者进行了针对参数的校正指令时,cpu41a在s334中判断本次收集的正常操作时的时间序列数据是否适合于与操作者的指定相对应的针对要分类的装置的设置参数。当判断为数据合适时,cpu41a将校正反映到根据操作者的指定所设置的参数。当判断为根据操作者的指定所设置的参数的校正不合适时,cpu41a可以通知该校正不合适,或者可以在通知该校正不合适的同时敦促重新指定参数。注意,cpu41a可以通过与s32中同样的计算方法来计算参数。

随后,在s341中,cpu41a判断是否针对要学习的所有装置完成了附加学习处理。当针对要学习的装置之一未完成附加学习处理时,cpu41a将处理返回到s311,以针对未完成的装置进行附加学习处理。另一方面,当针对要学习的所有装置完成附加学习处理时,cpu41a结束附加学习处理。

<变形例>

本发明不限于上述实施例,并且各种修改是可能的。例如,在上述实施例中,已经描述了分析和分类位装置和字装置的所收集数据的示例,但是本发明不仅限于这种装置值。例如,所收集的数据不限于上述实施例中描述的示例,而是可以是诸如照相机图像或事件日志等的信息。

图19示出所收集的数据的变形例。这里,将描述所收集的数据是照相机图像(运动图像)的情况。附图标记1901表示要收集的照相机图像。这是工厂设施中预定位置的拍摄图像。例如,cpu41a可以将这些照相机图像1901划分为多个区域,并且通过使用各区域中的亮度值作为特征量来确定参数。照相机图像1901示出带式输送器1904以相等间隔输送多个产品1905的状态。在这种情况下,如1902中所示,可以利用预定区域1903中的亮度值随时间变化的事实来判断是否进行正常操作。例如,在照相机图像1901的阴影部分中,由于产品以预定的时间间隔通过,因此产品的图像(亮度值)定期地中断。通过使用这种亮度值的变化,可以通过监视多个区域来确认产品是否正在正常流动或产品是否在带式输送器上歪斜。在图19中,已经以产品的输送路径为示例进行了描述,但是例如,在拍摄驱动机器人的位置的图像、并且臂部分的图像根据机器人臂的操作定期地中断预定图像区域时,可以检查机器人是否正常操作。注意,照相机图像可以被分类为采用模拟值的装置。

<第二实施例>

下面将描述本发明的第二实施例。在第一实施例中,主要描述了在plc基本示出异常的情况下、即当保存条件是可编程逻辑控制器的异常时的情况下的处理流程。然而,如上所述,本发明不限于用于通过使用plc中的异常的发生作为触发来识别异常装置的识别功能,并且还可以应用于用于分析与正常时的时间序列数据的差的处理(分析功能)。因此,在本实施例中,将描述用于分析和验证所收集的装置值是否是与正常时的时间序列数据偏离的值(与通常不同的装置值)的处理。在下面的描述中,将仅描述与第一实施例不同的部分。

同样在本实施例中,提取和分类装置值中的变化的特征,并且应用用于异常(与通常不同的变化)的检测算法,该算法适合于各个所分类的特征。即,同样在本实施例中,与第一实施例同样地,在学习阶段中,根据正常时的时间序列数据来分类装置值,根据各类型来确定检测算法,并设置与各检测算法相对应的评价变量和参数。同样在本实施例中,在执行评估阶段之前预先进行这些学习阶段,并且存储指示所分类的类型的标记信息以及与时间序列数据相对应的装置的判别信息。在评估阶段中,将根据要评估的时间序列数据的类型所确定的检测算法应用于分析和验证装置值是否与通常不同。即,在评估阶段中不再次进行分类处理。在这种情况下,可以避免操作中的分类处理的处理失败或学习数据的非预期更新。注意,也可以在评估阶段中进行分类处理。在这种情况下,还可以基于正常时的已经学习的数据从新获得的时间序列数据中提取可被视为正常的时间序列数据,并基于新提取的时间序列数据和已经学习的时间序列数据响应于随时间的变化来更新学习数据。例如,对于值与预定周期同步地以稳定模式变化的装置,可以基于新提取的时间序列数据和已经学习的时间序列数据的变化来更新参数中包括的阈值。

参考图16,将描述在验证装置值是否与通常的装置值不同时、即装置值是否与正常时的装置值偏离时的处理过程。以下描述的处理由基本单元3的cpu31和扩展单元4a的cpu41a实现。注意,将仅描述与第一实施例中的处理不同的处理(s45),并且将不描述其它处理。

在s45中,cpu31判断是否满足将存储在第一缓冲器37a中的装置值保存到基本单元3的存储卡44中的保存条件。在第一实施例中,已经描述了当可编程逻辑控制器中发生异常时满足保存条件。然而,在本实施例中,进行控制,以在如下情况满足保存条件:当用户预先指定了要作为保存触发的装置并且该装置中存在预定变化时,当用户发出分析命令时,当经过了定期监视的监视周期时,当从连接到基本单元3的扩展单元发出分析命令时,以及当所收集的装置值与通常情况不同时等。例如,当在s43中生成了与先前的装置值不同的装置值时,可以在s45中判断为已经满足保存条件,并且处理可以进入识别处理。另外,保存条件可以被控制以根据与先前装置值的差(发散程度)或与正常时不同的装置值的数量来满足。来自用户的分析指令可以指示实时地分析和验证特定装置,但也可以指示验证特定装置的过去数据。在s47中,不识别异常装置,但是分析并验证了与正常时的时间序列数据偏离的异常状态。

接着,将参考图18描述根据本实施例的分析结果的显示示例。从形式上看,显示与第一实施例的识别结果相同,但是在本实施例中,不识别异常装置,而是识别发生与正常时的时间序列数据偏离的状态(异常状态),并相应地改变显示内容。

因此,例如,画面1800不是指示装置的异常的数量,而是指示发生与正常时的时间序列数据的偏离的次数。在本实施例中,优选地不通过使用装置异常的发生次数,而是通过使用异常状态的发生次数(即与正常时的时间序列数据偏离的发生次数),来获得异常程度。

<第三实施例>

下面将描述本发明的第三实施例。在第一实施例和第二实施例中,已经描述了识别功能和分析功能。在本实施例中,将描述用于定期地收集和监视装置值的监视功能。在下面的描述中,将仅描述与第一实施例和第二实施例不同的部分。

图20是示出根据本实施例的输出用于开始监视的监视开始信号的处理过程的流程图。下述处理由基本单元3的cpu31执行。然而,不是意在限制本发明,并且本发明可以由扩展单元4a的cpu41a执行。

在s51中,cpu31判断是否经过了监视周期。监视周期是可以由可编程逻辑控制器的操作者(管理员)设置的值,并且可以设置任意时间段。该设置值例如在存储设备32的收集设置36a中设置。当经过了监视周期时,处理进入s53;否则,处理进入s52。

在s52中,cpu31判断是否已经从用户接收到监视指令。可以通过经由pc2a的操作部6或基本单元3的用户输入来接收监视指令。当接收到来自用户的监视指令时,处理进入s53;否则,处理返回到s51。

在s53中,cpu31生成监视开始信号,将监视开始信号输出至基本单元3,并结束处理。当接收到监视开始信号时,基本单元3在图16的s46中判断为已经满足保存条件,并且执行s47及之后的处理以执行分析处理。这里,紧接在接收到监视开始信号之后就满足s46中的保存条件,并且收集从预定时间段到当前保存在存储卡44中的时间序列数据。可以在接收到监视开始信号之后经过了预定的执行周期之后满足s46中的保存条件,并且可以在接收到监视开始信号之后的预定时间段期间收集保存在存储卡44中的时间序列数据。可选地,可以在接收到监视开始信号后经过了预定的执行周期之后满足s46中的保存条件,并且可以在接收到监视开始信号之前和之后的预定时间段期间收集保存在存储卡44中的时间序列数据。

可以通过用户的设置选择这些监视数据。如在第二实施例中那样,在s48中,不识别异常装置,但是分析并验证了与正常时的时间序列数据偏离的异常状态。对于分析结果,输出与第二实施例中同样的显示。

<总结>

如上所述,根据本实施例的可编程逻辑控制器包括重复执行用户程序的执行引擎以及装置存储器,该装置存储器具有作为用于存储由执行引擎根据用户程序访问的数据的存储区域的多个装置。可编程逻辑控制器针对用户程序的各扫描周期根据预定收集设置,收集多个装置中的作为收集对象的装置所保持的数据,基于所收集的各装置的时间序列数据的特征将各装置分类为多个类型其中之一,并且针对各装置根据收集部所收集的装置的时间序列数据和分类部所分类的装置的类型,确定在将装置识别为异常装置时使用的检测算法。此外,可编程逻辑控制器通过使用确定部根据分类部所分类的装置的类型针对装置所确定的检测算法、分析收集部所收集的装置的时间序列数据,来识别异常装置。如上所述,根据本实施例的可编程逻辑控制器,可以通过分析和分类诸如与各装置有关的数据的周期性和连续性等的特征来有效地识别异常装置。

程序控制器还根据用户指令通过使用所确定的检测算法,分析所收集的各装置的时间序列数据与正常时的时间序列数据的偏差,以验证是否发生了异常。可以以预定周期定期地进行这样的分析功能(监视功能)。

当累积了预定数量的扫描周期的时间序列数据时,可编程逻辑控制器基于时间序列数据的特征对各时间序列数据进行分类,并确定和更新检测算法。因此如所描述的,根据本发明,在可编程逻辑控制器的操作期间定期地执行与学习阶段相对应的功能,并且可以提高异常时的识别处理的精度。

此外,在可编程逻辑控制器中,在一个或多个装置的组中,当在作为收集对象的组的所有装置中前次扫描周期中收集的值和当前扫描周期中收集的值没有变化时,删除当前扫描周期中收集的值,并压缩要收集的时间序列数据。因此,可以有效地利用存储器资源。

可编程逻辑控制器将多个装置至少分类为以下装置:采用恒定值的装置、值与设备的操作周期同步地以稳定模式变化的装置、值与设备的操作周期的不同周期同步地以稳定模式变化的装置、值不定期变化的装置、具有模拟值的装置、以及值单调增加或单调减小的装置。此外,通过基于分类确定基于特征的检测算法,可以在异常时有效地识别异常装置。不太可能提取值不定期变化的装置的特征,因此该装置不用于识别异常。

当识别异常装置时,可编程逻辑控制器将所确定的检测算法与对应于该检测算法的时间序列数据的特征进行比较,并且当差超过预定阈值时,识别为异常装置。此外,可编程逻辑控制器可以将两系列时间序列数据中的各个值的变化点之间的时间差确定为在识别异常时使用的检测算法,并且当两系列时间序列数据中的时间差不在预定范围内时,将与两系列时间序列数据相对应的两个装置识别为异常装置。如上所述,根据本发明,根据所分类的各类型来确定检测算法,并且在异常时,通过使用检测算法由与各类型相对应的方法来识别异常装置。

可编程逻辑控制器生成指示识别结果的显示数据,并将显示数据显示在可编程逻辑控制器的显示设备上或者将显示数据发送至外部设备。识别结果可以显示在作为显示画面(图18)的各种显示画面上。

在以上实施例中,已经描述了如下示例,其中可编程逻辑控制器中包括的扩展单元4a收集并分类时间序列数据,根据该分类来确定检测算法,并识别异常时的异常装置。然而,本发明不限于此,并且上述至少一些功能可以通过基本单元或其它扩展单元来实现。此外,通信地连接到可编程逻辑控制器的分析器(外部设备)可以实现上述功能。

本发明不限于以上实施例,并且在本发明的精神范围内可以进行各种修改和改变。

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