【专利下载】【专利代理】【商标和版权申请】Tel:18215660330

可编程逻辑控制器、设定工具及程序的制作方法

专利查询2022-5-9  240

【专利下载】【专利代理】【商标和版权申请】Tel:18215660330


本发明涉及可编程逻辑控制器、设定工具及程序。

背景技术

在生产系统、控制系统等中工作的可编程逻辑控制器通过反复执行控制程序而对作为控制对象的仪器进行控制。控制程序的输入数据及输出数据被储存于可编程逻辑控制器所具有的被称为设备存储器的存储器上的区域。输入数据例如是表示从检测器供给来的输入信号的数据。输出数据例如是表示可编程逻辑控制器向作为控制对象的仪器供给的输出信号的数据。

用户为了确认可编程逻辑控制器是否正在正常地进行动作,有时对在设备存储器中储存的数据的履历进行检查。因此,可编程逻辑控制器有时具有对在设备存储器中储存的数据的日志进行收集的日志记录功能。

在专利文献1中记载了具有日志记录功能的可编程逻辑控制器在I/O(Input Output)刷新(refresh)的定时(timing)取得输入输出数据的日志。I/O刷新是指可编程控制器进行与仪器之间的数据交换的处理。专利文献1所记载的可编程逻辑控制器为了抑制日志数据的容量的增加,在程序的最初的执行之后对所有的输入输出数据的日志进行记录,在第2次及其后的执行之后仅对值发生了变化的数据的日志进行记录。

专利文献1:国际公开第2017/203583号



技术实现要素:

专利文献1所记载的可编程逻辑控制器在第2次及其后的程序的执行之后仅对值发生了变化的数据的日志进行记录,但会预想到随着日志的记录次数增加,对日志进行记录的存储器的容量逐渐增加。由于对日志进行记录的存储器的容量增加,有可能可编程逻辑控制器的动作所需的存储器不足,最终使可编程逻辑控制器停止。

本发明就是鉴于上述实际情况而提出的,其目的在于防止由日志收集处理引起的存储器的空闲容量的不足所造成的错误的产生。

为了达成上述目的,本发明涉及的可编程逻辑控制器在每执行1次控制程序时,为了创建新的基准数据而从设备存储单元收集被设定为收集对象的设备值中的1/N(N是大于或等于2的自然数)的设备值,将收集到的1/N的设备值的日志即分割日志储存于基准数据存储单元,如果基准数据存储单元的空闲区域用尽,则通过1/N的设备值的日志将在基准数据存储单元中储存的数据覆盖。如果分割日志收集单元将分割日志N次储存于基准数据存储单元,则成为新的基准数据已被储存于基准数据存储单元的状态。如果成为在基准数据存储单元中储存有新的基准数据的状态,则差异日志收集单元为了将差异日志储存于差异日志存储单元而通过差异日志将在差异日志存储单元中储存的数据覆盖。

发明的效果

本发明涉及的可编程逻辑控制器通过具有上述结构,从而即使日志的记录次数增加,也能够抑制可编程逻辑控制器的存储器的空闲容量减少这一情况。由此,能够防止由日志收集引起的存储器的空闲容量的不足所造成的错误的产生。

附图说明

图1是表示本发明的实施方式涉及的可编程逻辑控制器及设定工具的功能结构的框图。

图2是表示实施方式涉及的可编程逻辑控制器及设定工具的硬件结构的图。

图3A是表示实施方式涉及的日志存储部的结构的一个例子的图。

图3B是表示实施方式涉及的在全体数据区域中储存的数据的一个例子的图。

图3C是表示实施方式涉及的在差异数据区域中储存的数据的一个例子的图。

图4是表示实施方式涉及的设备存储器的结构的一个例子的图。

图5A是表示实施方式涉及的在扫描前向全体数据区域写入了数据的状态的图。

图5B是表示实施方式涉及的在第1次扫描之后向全体数据区域写入了数据的状态的图。

图5C是表示实施方式涉及的通过多次扫描向全体数据区域写入了数据的状态的图。

图5D是表示实施方式涉及的向全体数据区域的全部区域写入了数据的状态的图。

图5E是表示实施方式涉及的全体数据区域的数据被覆盖后的状态的图。

图5F是表示实施方式涉及的全体数据区域的第(2×N)次的扫描后的状态的图。

图6是表示实施方式涉及的设定工具的日志记录的设定画面的一个例子的图。

图7是实施方式涉及的日志记录处理的流程图。

图8是表示变形例涉及的设定工具的日志记录的设定画面的一个例子的图。

图9是表示变形例涉及的设定工具的日志记录的设定画面的其它例子的图。

具体实施方式

(实施方式)

以下,一边参照附图一边对本发明的实施方式涉及的可编程逻辑控制器详细进行说明。

图1所示的可编程逻辑控制器100在控制系统、生产系统等中执行控制程序而对作为控制对象的仪器进行控制。例如,可编程逻辑控制器100(以下,记作PLC 100)使用从传感器、开关等检测器输入的输入值而执行程序化的运算。输入值是从传感器、开关等检测器输入的输入信号所示的“真”或“伪”的逻辑值。PLC 100通过运算而得到输出值。输出值是“真”或“伪”的逻辑值。PLC 100将“真”或“伪”的逻辑值所示的输出信号输出至接触器、电动机、显示灯等作为控制对象的仪器。这样,例如,对作为控制对象的仪器的接通/断开进行控制。

PLC 100从控制程序的最初的命令至最后的命令为止,依次执行命令。PLC 100如果执行了最后的命令即END命令,则再次从最初的命令开始依次执行命令。有时将PLC 100从控制程序的最初的命令执行至最后的命令为止这一动作称为扫描。有时将PLC 100从最初的命令执行至最后的命令为止的时间,换言之,将PLC 100完成一轮控制程序的命令的执行的时间称为扫描时间。有时也将扫描时间称为执行周期。此外,PLC 100周期性地执行控制程序,但并非以固定周期执行控制程序。

从检测器输入的输入信号所示的逻辑值被储存于PLC 100所具有的被称为设备存储器110的存储器上的区域。另外,表示PLC 100通过运算得到的输出信号的逻辑值也储存于设备存储器110。PLC 100所执行的控制程序是实现继电器电路的功能的程序,因此,在设备存储器110也储存表示使程序上的虚拟的继电器即内部继电器接通/断开的信号的逻辑值。将在设备存储器110储存的数据称为设备值。PLC 100使用在设备存储器110储存的设备值而执行程序化的运算。

PLC 100在决定好的定时集中地对检测器及作为控制对象的仪器和设备存储器110的数据进行数据交换。将该数据交换称为I/O刷新。例如,PLC 100在执行控制程序的最初的命令之前执行I/O刷新。PLC 100通过I/O刷新而将表示从检测器供给来的输入信号的逻辑值储存于设备存储器110,将在设备存储器110储存的、在上次的扫描时间中通过运算得到的输出信号供给至作为控制对象的仪器。

在实施方式中,PLC 100具有设备值的日志记录功能。在设定为日志记录功能有效的情况下,PLC 100收集在设备存储器110储存的设备值,对设备值的日志进行记录。在实施方式中,PLC 100具有以下这样的特征结构。PLC 100在控制程序的执行之前,将在设备存储器110储存的作为收集对象的设备值的日志集中地记录于存储器的决定好的区域。并且,PLC 100以扫描时间为单位分割地取得在设备存储器110储存的作为收集对象的设备值的日志。然后,PLC 100以扫描时间为单位取得值发生了变化的设备值的日志。

设定工具500是用户用于将日志记录处理所需的设定值设定于PLC 100的工具。作为设定工具500,例如使用与PLC 100位于相同的工厂内,安装有专用的程序的个人计算机。

接下来,对各装置的硬件结构进行说明。如图2所示,作为硬件结构,PLC 100具有:存储器11,其对各种程序及数据进行存储;连接接口12,其经由通信线缆701而与设定工具500之间收发数据;以及CPU(Central Processing Unit)13,其对PLC 100整体进行控制。存储器11和连接接口12经由总线19而与CPU 13连接,分别与CPU 13进行通信。

存储器11包含易失性存储器和非易失性存储器。存储器11对用于实现PLC 100的各种功能的程序和程序的执行时所使用的数据进行存储。存储器11所存储的程序包含固件和用于对作为控制对象的仪器进行控制的控制程序。在实施方式中,固件使PLC 100实现日志记录功能。并且,存储器11被用作CPU 13的工作存储器。

连接接口12例如包含USB控制器,经由通信线缆701而接收由设定工具500输出的电气信号,将接收到的电气信号恢复为数据而输出至CPU 13。通信线缆701例如是USB线缆。另外,连接接口12将从CPU 13供给来的数据转换为电气信号,将转换后的信号经由通信线缆701而输出至设定工具500。

CPU 13执行在存储器11存储的程序而实现PLC 100的各种功能。例如,CPU 13通过执行在存储器11储存的控制程序而进行使用了从检测器供给来的输入信号所示的值的运算。

作为硬件结构,设定工具500具有:存储器51,其对各种程序及数据进行存储;连接接口52,其经由通信线缆701而与PLC 100之间收发数据;输入装置53,其对用户的输入操作进行检测;显示装置54,其输出图形;以及CPU 55,其对设定工具500整体进行控制。存储器51、连接接口52、输入装置53、显示装置54经由总线59而与CPU 55连接,分别与CPU 55进行通信。

存储器51包含易失性存储器和非易失性存储器。存储器51对用于实现设定工具500的各种功能的程序和程序的执行时所使用的数据进行存储。存储器11所存储的程序包含实现将日志记录处理所需的数据设定于PLC 100的功能的设定程序。并且,存储器51被用作CPU 55的工作存储器。

连接接口52例如包含USB控制器,将从CPU 55供给来的数据转换为电气信号,将转换后的信号经由通信线缆701而输出至PLC 100。另外,连接接口52经由通信线缆701而接收由PLC 100输出的电气信号,将接收到的电气信号恢复为数据而输出至CPU 55。

输入装置53包含鼠标、操作键等,接收来自用户的操作输入,将表示用户的操作输入的信号输出至CPU 55。显示装置54包含显示器,将基于从CPU 55供给的信号的图像显示于显示器。

CPU 55执行在存储器51存储的程序而实现设定工具500的各种功能。具体地说,CPU 55通过执行在存储器11储存的设定程序而将日志记录处理所需的设定信息登记于PLC 100。

接下来,参照图1,对PLC 100的功能结构进行说明。PLC 100在功能上具有:设备存储器110,其对设备值进行存储;设定信息存储部120,其对与日志记录处理相关的设定信息进行存储;日志存储部130,其对设备值的日志进行存储;集中日志收集部140,其在所设定的定时集中地收集设备值的日志;分割日志收集部150,其在程序的执行过程中分割地收集设备值的日志;以及差异日志收集部160,其收集发生了变化的设备值的日志。

设备存储器110对设备值进行存储。设备值包含从检测器供给来的输入信号所示的逻辑值、表示通过运算得到的输出信号的逻辑值和表示使内部继电器接通/断开的信号的逻辑值。设备存储器110的功能由图2所示的存储器11实现。设备存储器110是本发明的设备存储单元的一个例子。

设定信息存储部120对日志记录处理所需的设定信息进行存储。设定信息存储部120对表示使日志记录功能有效或无效的值进行存储。在该值是表示使日志记录功能有效的值的情况下,PLC 100进行日志记录。设定信息存储部120对确定作为收集对象的设备值的信息进行存储。

日志存储部130对设备值的日志进行存储。日志存储部130的功能由图2所示的存储器11实现。

如图3A所示,日志存储部130具有全体数据区域1301和差异数据区域1302。在全体数据区域1301储存在控制程序的执行前集中地收集的作为收集对象的设备值的日志和以扫描时间为单位而分割地记录的作为收集对象的设备值的日志。在全体数据区域1301如图3B所示储存设备名、设备值及此时的扫描数。扫描数是控制程序被扫描的次数。此外,在控制程序的执行前,在全体数据区域1301储存的数据的扫描数例如是“0”。如果开始控制程序的执行,则扫描数逐次加1。用户能够任意地设定全体数据区域1301的容量,但需要设定为了对被设定为收集对象的设备值进行储存所需的足够的容量。在以下的说明中,假设全体数据区域1301的容量被设定为能够将作为收集对象的设备值全部储存下来的容量的2倍。全体数据区域1301的容量不限于能够将作为收集对象的设备值全部储存下来的容量的2倍,也可以是3倍,还可以大于或等于4倍。另外,并非必须是能够将作为收集对象的设备值全部储存下来的容量的正的整数倍,全体数据区域1301的容量可以设定为任意的容量。全体数据区域1301是本发明的基准数据存储单元的一个例子。

在差异数据区域1302储存作为收集对象的设备值中的值发生了变化的设备值的日志即差异日志。如图3C所示,在差异数据区域1302储存设备名、设备值及此时的扫描数。设备值是变化后的设备值。差异数据区域1302是本发明的差异日志存储单元的一个例子。

图1所示的集中日志收集部140除了日志收集以外,还进行用于日志收集的事先准备。例如,集中日志收集部140在开始控制程序之前进行与事先准备相关的处理。

与事先准备相关的处理如下所述。集中日志收集部140从存储器11的决定好的区域读出用户所设定的设定值,将读出的设定值储存于设定信息存储部120。设为用户使用设定工具500而将设定值预先储存于PLC 100的存储器11的决定好的区域。设定值包含全体数据区域1301的大小、差异数据区域1302的大小和分割地取得日志的次数即分割数N。作为分割数N,设定为大于或等于2的自然数。

集中日志收集部140以用户所设定的大小而在日志存储部130中确保全体数据区域1301和差异数据区域1302。集中日志收集部140根据用户所指定的分割数N和在存储器11预先储存的与设备值相关的设定数据,对后述的分割日志收集部150在一次中收集的设备值的数量进行计算,将计算出的值储存于设定信息存储部120。

集中日志收集部140在所设定的定时收集在设备存储器110储存的被设定为收集对象的设备值。以下,对集中日志收集部140在控制程序的执行开始前收集在设备存储器110储存的被设定为收集对象的设备值的例子进行说明。

具体地说,作为PLC 100在接通了电源之后执行的初始化处理的一部分,集中日志收集部140将在设备存储器110储存的作为收集对象的所有设备值的数据集中地储存于全体数据区域1301。如图3B所示,集中日志收集部140将设备名、设备值和扫描数储存于全体数据区域1301。这里,由于PLC 100尚未开始控制程序的执行,因此,集中日志收集部140将扫描数设定为“0”。

由集中日志收集部140在控制程序的执行开始前储存于全体数据区域1301的数据成为用于差异日志的收集的基准数据。后述的差异日志收集部160在差异日志的收集时为了对设备值是否发生了变化进行判别而使用基准数据。

如前所述,在实施方式中,全体数据区域1301的容量被设定为能够将作为收集对象的设备值全部储存下来的容量的2倍。如果集中日志收集部140在初始化处理中将设备存储器110的作为收集对象的设备储存于全体数据区域1301,则如图5A所示,使用全体数据区域1301的一半的区域。在图5A中,由斜线表示的区域是未使用区域,将该区域称为收集对象设备储存区域1301A。集中日志收集部140的功能由图2所示的CPU 13实现。集中日志收集部140是本发明的集中日志收集单元的一个例子。

在实施方式中,在控制程序的执行开始前,集中日志收集部140收集基准数据,其理由如下。设想的是,集中日志收集部140为了集中地收集被设定为收集对象的设备值作为基准数据,与收集相关的处理需要某种程度的时间。如果收集基准数据所需的时间变长,则扫描时间增加。因此,在实施方式中,为了抑制扫描时间的增加,集中日志收集部140在控制程序的执行开始前收集基准数据。但是,集中日志收集部140收集基准数据的定时不限于控制程序的执行开始前。即使是在控制程序的执行开始后,集中日志收集部140只要在日志记录开始前收集基准数据即可。

图1所示的分割日志收集部150在开始控制程序的执行之后,将在设备存储器110储存的作为收集对象的设备值的日志划分于多个扫描时间而取得。具体地说,分割日志收集部150如果在各扫描时间中执行了END命令,则将在设备存储器110储存的作为收集对象的设备值中的1/N的设备值的日志储存于全体数据区域1301。分割日志收集部150储存于全体数据区域1301的日志包含设备名、设备值及此时的扫描数。有时将由分割日志收集部150收集、储存于全体数据区域1301的日志称为分割日志。

分割日志收集部150在一次中收集的设备值的数量以下面的方式决定。如前所述,作为与事先准备相关的处理,集中日志收集部140对分割日志收集部150在一次中收集的设备值的数量进行计算。例如,如图4所示,设为在设备存储器110储存有D1~D2000的设备值,D1~D2000全部是收集对象。在这种情况下,设备值的数据数量是2000个。这里,分割数N被设定为20,D1~D2000的设备值的数据大小相同。在这种情况下,分割日志收集部150只要在各扫描时间中各收集100个设备存储器110的设备值即可。

因此,分割日志收集部150例如在第1次的扫描中,如图5B所示,将D1~D100的设备值的日志储存于全体数据区域1301。在第1次的扫描中,全体数据区域1301的收集对象设备储存区域1301A空闲,因此,分割日志收集部150将设备值的日志储存于收集对象设备储存区域1301A。分割日志收集部150在第2次的扫描中将D101~D200的设备值的日志储存于全体数据区域1301的收集对象设备储存区域1301A。如图5C所示,分割日志收集部150在收集对象设备储存区域1301A空闲的情况下,在每次扫描时将100个设备值的日志储存于收集对象设备储存区域1301A。此外,分割日志收集部150在将设备值储存于全体数据区域1301时,需要预先对在下一个扫描时间中确定作为收集对象的设备值的信息和在下一个扫描时间中确定向全体数据区域1301写入数据的位置的信息进行存储。分割日志收集部150的功能由图2所示的CPU 13实现。分割日志收集部150是本发明的分割日志收集单元的一个例子。

如果在收集对象设备储存区域1301A中没有空闲容量,则为了将分割日志储存于全体数据区域1301,分割日志收集部150将在全体数据区域1301储存的最早的数据覆盖。例如,如图5D所示,如果在第20次的扫描时间中分割日志收集部150将设备值的日志储存于收集对象设备储存区域1301A,则成为在收集对象设备储存区域1301A中没有空闲区域的状态。在这种情况下,如图5E所示,分割日志收集部150在第21次的扫描时间中为了将日志储存于全体数据区域1301而将在控制程序的执行开始前写入的数据覆盖。

前面叙述了集中日志收集部140在控制程序的执行开始前储存于全体数据区域1301的数据成为用于差异日志的收集的基准数据,但该数据在扫描数超过20次时被覆盖。在这种情况下,由分割日志收集部150在第1次至第20次的扫描时间中储存于全体数据区域1301的设备值的日志被用作新的基准数据。

然后,分割日志收集部150如图5F所示在第40次的扫描时间中储存了数据之后,在第41次的扫描时间中,将通过第1次的扫描而储存于全体数据区域1301的数据覆盖。由此,通过第1次及其后的扫描而储存于全体数据区域1301的数据被覆盖。在这种情况下,由分割日志收集部150在第21次至第40次的扫描时间中储存于全体数据区域1301的设备值的日志被用作新的基准数据。

如上所述,分割日志收集部150将成为基准数据的作为收集对象的设备值的日志分为N次进行记录。由于分割日志收集部150具有这样的结构,从而具有下述这样的优点。由分割日志收集部150在1次的扫描时间中记录的日志是作为收集对象的设备值的1/N的设备值的日志。由此,在1次的扫描时间中存储的数据量比一次性地记录作为收集对象的所有设备值的日志的情况更少。因此,日志的记录所需的处理时间比一次性地记录作为收集对象的所有设备值的日志的情况更短。日志的记录所需的时间不长,因此,不会产生由日志的记录处理引起的扫描时间延长。

例如,如果由于日志的记录处理而使扫描时间变长,扫描时间超过容许范围,则PLC 100的处理变慢,进而对系统整体的动作产生不良影响。根据这样的理由,在实施方式中,分割日志收集部150将作为收集对象的设备值的日志分为N次进行记录。

如果执行了控制程序的END命令,则图1所示的差异日志收集部160对设备存储器110的作为收集对象的设备值的值是否发生了变化进行判别,将值发生了变化的设备值的日志储存于差异数据区域1302。差异日志收集部160的功能由图2所示的CPU 13实现。差异日志收集部160是本发明的差异日志收集单元的一个例子。

首先,差异日志收集部160对作为收集对象的设备值的差异日志是否已储存于差异数据区域1302进行判别。在判别为作为收集对象的设备值的差异日志已储存于差异数据区域1302的情况下,差异日志收集部160对最晚储存于差异数据区域1302的设备值与设备存储器110的设备值是否一致进行判别。在2个设备值不一致的情况下,差异日志收集部160判别为设备值发生了变化。

并且,差异日志收集部160在判别为作为收集对象的设备值的差异日志未储存于差异数据区域1302的情况下,对在全体数据区域1301储存的基准数据所包含的设备值与设备存储器110的设备值是否一致进行判别。在2个设备值不一致的情况下,差异日志收集部160判别为设备值发生了变化。

差异日志收集部160如果判别为设备值的值发生了变化,则将设备名、在设备存储器110储存的设备值及此时的扫描数作为差异日志而储存于差异数据区域1302。在图3C所示的例子中,差异日志收集部160判别为在第3次的扫描时间中D1的值发生了变化,将D1的差异日志储存于差异数据区域1302。差异日志收集部160判定为在第5次的扫描时间中D1的值发生了变化,将D1的差异日志储存于差异数据区域1302。

作为实施方式的特征结构,差异日志收集部160在基准数据被替换的定时将之前的差异日志覆盖。如前所述,全体数据区域1301的数据通过第(M×N)+1次及其后的扫描(M是大于或等于1的自然数)而被覆盖。在该定时,基准数据被替换为新的基准数据。这是因为不需要在创建新的基准数据前收集到的差异日志。

接下来,对设定工具500的功能结构进行说明。如图1所示,设定工具500在功能上包含将日志记录处理所需的设定值登记于PLC 100的设定登记部510。

设定登记部510例如将图6所示这样的日志记录的设定画面显示于显示装置54。用户通过设定工具500而向PLC 100设定是否使日志记录功能有效、对日志进行分割收集时的分割数、全体数据区域1301的大小、差异数据区域1302的大小。分割数是PLC 100的分割日志收集部150将作为收集对象的设备值的日志分开地收集的次数即分割数N。用户对输入装置53进行操作而输入日志记录功能的有效/无效、分割数、全体数据区域1301的大小和差异数据区域1302的大小,按下“设定”按钮。响应于此,设定登记部510将用户输入的值写入至PLC 100的存储器11的决定好的区域。

接下来,对PLC 100的日志记录处理的一系列流程进行说明。PLC 100的CPU 13通过执行固件而作为图1所示的集中日志收集部140、分割日志收集部150及差异日志收集部160起作用。在以下的说明中,设备存储器110的所有设备值被设定为收集对象。

用户对PLC 100的开关进行操作而开始PLC 100的运转。因此,PLC 100开始初始化处理。

如图7所示,作为初始化处理的一部分,集中日志收集部140进行日志记录处理的事先准备(步骤S11)。具体地说,作为初始化处理的一部分,集中日志收集部140从存储器11的决定好的区域读出分割数N,将分割数N储存于设定信息存储部120。然后,集中日志收集部140从存储器11的决定好的区域读出全体数据区域1301的大小的定义值、差异数据区域1302的大小的定义值,在日志存储部130中确保所设定的大小的全体数据区域1301和所设定的大小的差异数据区域1302。

并且,作为初始化处理的一部分,集中日志收集部140如图5A所示,将设备存储器110的作为收集对象的所有设备值的日志作为基准数据而储存于全体数据区域1301(步骤S12)。如果初始化处理结束,则PLC 100开始控制程序的执行。

分割日志收集部150对是否为日志收集的定时进行判别(步骤S13)。如果执行了END命令,则分割日志收集部150判别为是日志收集的定时(步骤S13;Yes),将作为收集对象的设备值中的1/N的设备值的日志即分割日志储存于全体数据区域1301(步骤S14)。此外,分割日志收集部150为了将分割日志储存于全体数据区域1301,在第(M×N)+1次及其后的扫描(M是大于或等于1的自然数)中将在全体数据区域1301储存的最早的分割日志覆盖。

接下来,差异日志收集部160对作为收集对象的设备值中是否存在值发生了变化的设备值进行判别(步骤S15)。如果判别为作为收集对象的设备值中存在值发生了变化的设备值(步骤S15;Yes),则差异日志收集部160对差异日志进行记录(步骤S16)。此外,差异日志收集部160在基准数据被替换为新的基准数据之后,将在创建新的基准数据前记录的差异日志覆盖。

如果控制程序的下一个扫描结束,则分割日志收集部150及差异日志收集部160再次进行步骤S13及其后的处理。

如以上所说明的那样,在实施方式涉及的结构中,PLC 100将设备存储器110的作为收集对象的设备值的日志分为N次进行收集,将收集到的设备值储存于全体数据区域1301。分为N次收集的日志成为差异数据的收集所使用的基准数据。如果在全体数据区域1301中没有空闲容量,则PLC 100从在全体数据区域1301储存的最早的日志起开始覆盖。这样,在全体数据区域1301储存的数据的容量不会大于或等于所设定的大小。

并且,PLC 100将基于基准数据而判别为值发生了变化的设备值作为差异日志进行收集。如果新的基准数据被储存于全体数据区域1301,则PLC 100不断将在差异数据区域1302储存的差异日志中的在创建新的基准数据前收集到的差异日志覆盖。因此,差异数据区域1302所需的区域大小需要根据作为收集对象的设备值的数量、设备值的大小、分割数N的大小而设定为适当的大小。差异数据区域1302的数据在储存于全体数据区域1301的基准数据被替换为新的基准数据之后被不断覆盖,因此,在差异数据区域1302储存的数据的容量不会大于或等于所设定的大小。

由于PLC 100具有上述这样的结构,从而不会为了储存分割日志而使用大于或等于所设定的容量的存储器。并且,差异日志的储存所需的存储器容量也不会超过所设定的容量。由此,不会由于日志收集而产生存储器的空闲容量的不足。因此,能够防止由存储器容量的不足引起的错误的产生。

在实施方式涉及的结构中,能够根据基准数据和差异日志而再现设备值的履历。在基准数据被替换为新的基准数据之后,无法再现在基准数据被替换前收集到的设备值的履历,但用户能够通过根据期望取得设备值的履历的期间而适当地设定全体数据区域1301的区域大小和分割数N,从而取得所需的设备值的履历。

PLC 100将设备存储器110的作为收集对象的设备值分为N次进行收集。例如,设为作为收集对象的设备值的大小全部相同。分割地对日志进行记录的情况下的设备值的数量是集中地对日志进行记录的情况下的设备值的数量的1/N。由此,与通过1次的扫描而对作为收集对象的全部设备值的日志进行记录的情况相比,能够缩短与日志的记录处理相关的时间。由此,即使在进行日志记录的情况下,也能够抑制扫描时间的增加。并且,在各扫描时间中,作为日志记录处理而仅记录1/N的设备值的日志和差异日志,因而,能够抑制PLC 100的CPU 13的处理的负荷变高。

(变形例)

在实施方式中,说明了由用户对分割数N进行设定的例子,但也可以由设定工具500的设定登记部510对分割数N进行计算。以下,以特征结构为中心对变形例进行说明。例如,设定登记部510使图8所示这样的对条件进行设定的画面显示于显示装置54。在这种情况下,用户只要对输入装置53进行操作,设定对日志进行收集的扫描数和能够容许的扫描时间的增加时间即可。

设定工具500的设定登记部510以下述方式对分割数N进行计算。首先,日志存储部130的容量成为最小值的分割数N的理论值由下式1表示。

[式1]

N:分割数

C:作为收集对象的设备值的存储容量

D:差异日志的存储容量的预测值

S:对日志进行收集的扫描数

作为收集对象的设备值的存储容量C是对由用户设定的作为收集对象的设备值进行存储所需的存储容量。作为收集对象的设备值的存储容量C是根据用户指定的作为收集对象的设备值的个数和各设备值的数据的大小进行计算的。差异日志的存储容量的预测值D是对通过1次扫描而收集的差异日志进行存储所需的存储容量的预测值。对通过1次扫描而收集的差异日志进行存储所需的存储容量的预测值D例如是根据基于过去的日志收集的统计数据而计算出的值。对日志进行收集的扫描数S是由用户设定的值。

与不执行日志记录处理的情况相比,在PLC 100执行日志记录处理的情况下扫描时间显然会增加,但扫描时间的增加量应落在用户能够容许的范围内。因此,需要以将每1次扫描所收集的分割日志和差异日志储存于日志存储部130所需的时间不超过用户设定的能够容许的扫描时间的增加时间的方式而决定分割数N。

这里,将用户设定的能够容许的扫描时间的增加时间设为T[sec],将向日志存储部130储存数据的速度(数据传输速度)设为A[bps]。在这种情况下,在扫描时间的容许的增加时间内能够向日志存储部130储存的数据的大小是TA[bit]。由于是在各扫描中对分割日志和差异日志进行记录,因此,分割数N需要满足下式2的条件。

[式2]

N≥C/(TA-D)

N:分割数

C:作为收集对象的设备值的存储容量

D:差异日志的存储容量的预测值

T:能够容许的扫描时间的增加时间

A:向日志存储部130储存数据的速度

能够容许的扫描时间的增加时间T是用户设定的值。向日志存储部130储存数据的速度是PLC 100的存储装置的数据传输速度。作为数据传输速度,例如能够采用规格书所记载的数据传输速度的值。

这里,能够容许的扫描时间的增加时间T需要满足下式3。

[式3]

T≥D/A

设定登记部510通过式1而对日志存储部130的容量成为最小值的分割数N进行计算。具体地说,首先,设定登记部510根据作为收集对象的设备值的个数和各设备值的数据的大小而对作为收集对象的设备值的存储容量C进行计算。差异日志的存储容量的预测值D预先储存于存储器51的决定好的区域。对日志进行收集的扫描数S是用户在图8所示的画面中输入的值。接下来,设定登记部510通过式1而对分割数N进行计算。

设定登记部510以使得根据式1而计算出的分割数N满足式2、式3的条件的方式决定分割数N。能够容许的扫描时间的增加时间T是用户在图8所示的画面中输入的值。向日志存储部130储存数据的速度A预先储存于存储器11的决定好的区域。设定登记部510将决定出的分割数N储存于存储器51的决定好的区域。

此外,设定登记部510在上述的分割数N的计算之前,在用户在图8所示的画面中输入了能够容许的扫描时间的增加时间之后,对输入的值是否满足式3的条件进行判别。如果判别为所设定的能够容许的扫描时间的增加时间不满足式3的条件,则设定登记部510将表示用户要对能够容许的扫描时间的增加时间进行修正这一内容的消息显示于显示装置54。在这种情况下,用户需要对输入装置53进行操作而变更能够容许的扫描时间的增加时间的值。

并且,设定登记部510根据计算出的分割数N而对全体数据区域1301的存储容量进行计算。全体数据区域1301的存储容量M能够通过下式进行计算。

[式4]

N:分割数

C:作为收集对象的设备值的存储容量

D:差异日志的存储容量的预测值

S:对日志进行收集的扫描数

设定登记部510将计算出的存储容量M储存于存储器51的决定好的区域。例如,在分割数N和预定取得的扫描数S为相同值的情况下,存储容量M是作为收集对象的设备值的存储容量C的大致2倍。

然后,设定登记部510根据差异日志的存储容量的预测值D和所设定的扫描数而对差异数据区域1302的存储容量进行计算,将计算出的值储存于存储器51的决定好的区域。然后,设定登记部510在图9所示这样的画面中对参数进行显示,该参数表示计算出的日志记录的设定。

这里,设为用户判断为计算出的分割数N、全体数据区域1301及差异数据区域1302的存储容量的值没有问题。在这种情况下,用户作出以下指示,即,在设定工具500与PLC 100通过通信线缆701而连接的状态下,用户按下“设定”按钮,将日志记录的设定写入至PLC 100。设定登记部510将表示在存储器51储存的日志记录的设定的参数写入至PLC 100的存储器11的决定好的区域。另一方面,用户在希望对在图9所示的画面上显示的分割数N、全体数据区域1301及差异数据区域1302的存储容量的值进行变更的情况下,按下“返回”按钮。响应于此,设定登记部510再次显示图8所示的画面。在这种情况下,用户能够在图8所示的画面上修正对日志进行收集的扫描数和能够容许的扫描时间的增加时间的值。

在变形例涉及的结构的情况下,不需要由用户自己决定分割数,只要设定取得日志的扫描数和能够容许的扫描时间的增加时间即可。

在变形例涉及的结构中,与实施方式同样地,不会为了储存分割日志而使用大于或等于所设定的容量的存储器。并且,差异日志的储存所需的存储器容量也不会超过所设定的容量。由此,不会由于日志收集而产生存储器的空闲容量的不足。由此,能够防止由存储器容量的不足引起的错误的产生。

并且,与实施方式同样地,与通过1次的扫描而对作为收集对象的所有设备值的日志进行记录的情况相比,能够缩短与日志的记录处理相关的时间。由此,即使在进行日志记录的情况下,也能够抑制扫描时间的增加。并且,能够抑制与日志记录处理相关的CPU 13的处理负荷。另外,能够根据收集到的数据而生成设备值的时序式的数据。

在实施方式中,说明了PLC 100具有日志存储部130的例子,但不限于此。PLC 100也可以不具有日志存储部130而是将日志记录于其它装置所具有的存储部。例如,PLC 100经由网络而向其它装置发送日志的数据。

在实施方式中,说明了PLC 100具有设备存储器110的例子,但不限于此。PLC 100也可以对其它装置所具有的设备存储器的日志进行记录。例如,PLC 100也可以经由网络而从其它装置接收设备值。或者,PLC 100也可以读出在经由网络的其它装置的共享存储器中记录的设备值。

在实施方式中,说明了PLC 100如果执行了控制程序的END命令则对日志进行记录的例子,但不限于此。PLC 100例如也可以在执行控制程序的最初的命令前进行的I/O刷新之前对日志进行记录。

在实施方式中,说明了集中日志收集部140和分割日志收集部150将设备名、设备值和扫描数作为日志而进行记录的例子,但不限于此。例如,集中日志收集部140和分割日志收集部150也可以除了设备名、设备值和扫描数以外,还将此时的时刻信息作为日志而进行记录。

作为对上述的程序进行记录的记录介质,能够使用包含磁盘、光盘、光磁盘、闪存、半导体存储器、磁带的计算机可读取的记录介质。

本发明能够在不脱离广义的精神和范围的情况下,设为各种实施方式以及变形。另外,上述实施方式用于对本发明进行说明,并不限定本发明的范围。即,本发明的范围不是由实施方式而是由权利要求书示出的。并且,在权利要求的范围内及与其等同的发明的意义的范围内实施的各种变形被视为落在本发明的范围内。

标号的说明

N分割数,11、51存储器,12、52连接接口,13、55CPU,19、59总线,53输入装置,54显示装置,100可编程逻辑控制器(PLC),110设备存储器,120设定信息存储部,130日志存储部,140集中日志收集部,150分割日志收集部,160差异日志收集部,500设定工具,510设定登记部,701通信线缆,1301全体数据区域,1301A收集对象设备储存区域,1302差异数据区域


最新回复(0)