[go: up one dir, main page]

JP2023031000A - Programmable controller, control method, and program - Google Patents

Programmable controller, control method, and program Download PDF

Info

Publication number
JP2023031000A
JP2023031000A JP2021136445A JP2021136445A JP2023031000A JP 2023031000 A JP2023031000 A JP 2023031000A JP 2021136445 A JP2021136445 A JP 2021136445A JP 2021136445 A JP2021136445 A JP 2021136445A JP 2023031000 A JP2023031000 A JP 2023031000A
Authority
JP
Japan
Prior art keywords
processing
period
time
programmable controller
series data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021136445A
Other languages
Japanese (ja)
Inventor
昌朗 宗像
Masaro Munakata
幸輝 湯尾
Yukiteru Yuo
昌範 関根
Masanori Sekine
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2021136445A priority Critical patent/JP2023031000A/en
Publication of JP2023031000A publication Critical patent/JP2023031000A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

To realize a multivariate analysis by a programmable controller without affecting application program processing.SOLUTION: A programmable controller may comprise an execution unit that executes a task of an application program within a first period of one cycle and executes a task other than the application program within a second period of the one cycle. The execution unit may execute an input process to receive an input of time-series data for indicating a state of a diagnosis target within a first period, and may execute at least part of an accumulation process for accumulating the time-series data received by the input process in a storage unit, and a diagnosis process for diagnosing the state of the diagnosis target based on the accumulation process and the time-series data accumulated in the storage unit in the accumulation process within the second period.SELECTED DRAWING: Figure 5

Description

本発明は、プログラマブルコントローラ、制御方法およびプログラムに関する。 The present invention relates to programmable controllers, control methods and programs.

特許文献1には、プログラマブルコントローラにおいて、ユーザが1実行サイクル時間を、ラダーアプリケーション及びデータ処理に割り当てる比率をカスタマイズできるスケジューリング方法が開示されている。特許文献2および特許文献3には、プログラマブルコントローラにおいて、バッチ処理といわれる一連のプロセスに対し、多変量解析技術を適用する手法について記載されている。
[先行技術文献]
[特許文献]
[特許文献1] 特許第4811260号公報
[特許文献2] 特許第4911055号公報
[特許文献3] 特許第6733164号公報
Patent Literature 1 discloses a scheduling method in which a user can customize the ratio of allocating one execution cycle time to a ladder application and data processing in a programmable controller. Patent Literature 2 and Patent Literature 3 describe a method of applying multivariate analysis technology to a series of processes called batch processing in a programmable controller.
[Prior art documents]
[Patent Literature]
[Patent Document 1] Japanese Patent No. 4811260 [Patent Document 2] Japanese Patent No. 4911055 [Patent Document 3] Japanese Patent No. 6733164

アプリケーションプログラムの処理に影響を与えることなく、プログラマブルコントローラで多変量解析を実現させることが望まれている。 It is desired to realize multivariate analysis with a programmable controller without affecting the processing of application programs.

本発明の一態様に係るプログラマブルコントローラは、一サイクル内の第1期間内でアプリケーションプログラムのタスクを実行し、一サイクル内の第2期間内でアプリケーションプログラム以外のタスクを実行する実行部を備えてよい。実行部は、第1期間内で、診断対象の状態を示す時系列データの入力を受け付ける入力処理を実行し、第2期間内で、入力処理により受け付けられた時系列データを記憶部に蓄積させる蓄積処理、及び蓄積処理で記憶部に蓄積された時系列データに基づいて診断対象の状態を診断する診断処理の少なくとも一部を実行してよい。 A programmable controller according to one aspect of the present invention includes an execution unit that executes a task of an application program within a first period of one cycle and executes a task other than the application program within a second period of one cycle. good. The execution unit executes an input process for accepting an input of time-series data indicating a state of a diagnostic target within the first period, and accumulates the time-series data accepted by the input process in the storage unit during the second period. Accumulation processing and at least a part of diagnosis processing for diagnosing the state of a diagnosis target based on the time-series data accumulated in the storage unit in the accumulation processing may be executed.

実行部は、複数のサイクルに亘って、それぞれのサイクルの第2期間内で、蓄積処理及び診断処理を実行することで、複数のサイクルで診断対象の状態の一回の診断を実行してよい。 The execution unit may perform a single diagnosis of the condition to be diagnosed over multiple cycles by performing the accumulation process and the diagnosis process within the second period of each cycle over multiple cycles. .

診断処理は、蓄積処理により記憶部に予め定められた量の時系列データが蓄積されると、予め定められた量の時系列データを診断するためのデータ形式に変換する前処理と、前処理で処理された時系列データに基づいて多変量解析処理を実行する解析処理と、解析処理の解析結果に基づいて診断対象の状態が正常か否かを判定する判定処理とを含んでよい。 When a predetermined amount of time-series data is accumulated in the storage unit by the accumulation process, the diagnosis process includes pre-processing of converting the predetermined amount of time-series data into a data format for diagnosis; Analysis processing for executing multivariate analysis processing based on the time-series data processed in , and determination processing for determining whether or not the state of the diagnosis target is normal based on the analysis result of the analysis processing.

実行部は、第2期間内で、時系列データのうち診断対象の状態が正常であることを示す時系列データに基づいて解析処理で利用される診断モデルを生成する生成処理を実行してよい。 Within the second period, the execution unit may execute generation processing for generating a diagnostic model to be used in the analysis processing based on time-series data indicating that the state of the diagnosis target is normal among the time-series data. .

実行部は、第2期間内の解析処理が実行されていない間に、生成処理により生成された診断モデルで、解析処理で利用される診断モデルを更新する更新処理を実行してよい。 The execution unit may perform update processing for updating the diagnostic model used in the analysis process with the diagnostic model generated by the generation process while the analysis process is not being performed within the second period.

実行部は、更新処理を、前処理の開始前に実行してよい。 The execution unit may execute the update processing before starting the preprocessing.

実行部は、第1期間内で、診断対象に関係する被制御装置に対する制御処理を実行し、診断処理は、判定処理による判定結果を制御処理に通知する通知処理を含んでよい。 The execution unit may execute control processing for the controlled device related to the diagnosis target within the first period, and the diagnosis processing may include notification processing for notifying the control processing of the determination result of the determination processing.

蓄積処理及び診断処理は、少なくとも1つのファンクションブロックで構成されてよい。 The accumulation process and diagnostic process may consist of at least one function block.

プログラマブルコントローラは、一サイクル内で占める第1期間及び第2期間のそれぞれの割合を特定する情報を受け付ける受付部をさらに備えてよい。実行部は、情報に基づいて、第1期間及び第2期間の長さを調整してよい。 The programmable controller may further include a reception unit that receives information specifying the respective ratios of the first period and the second period occupied within one cycle. The execution unit may adjust the lengths of the first period and the second period based on the information.

診断処理は、予め定められたサイクル数内に、診断対象の状態の一回の診断を完了できなかった場合、その旨のメッセージを出力する出力処理を含んでよい。 The diagnosis process may include an output process of outputting a message to that effect if one diagnosis of the state to be diagnosed cannot be completed within a predetermined number of cycles.

実行部は、メッセージに応じて、一サイクル内で占める第2期間の割合が増加するように、第1期間及び第2期間の長さを調整してよい。 The execution unit may adjust the lengths of the first period and the second period according to the message so that the proportion of the second period within one cycle increases.

アプリケーションプログラム以外のタスクは、プログラマブルコントローラを管理する管理装置との間のデータ通信処理のタスクを含んでよい。 Tasks other than the application program may include data communication processing tasks with a management device that manages the programmable controller.

本発明の一態様に係る制御方法は、プログラマブルコントローラを制御する制御方法でよい。制御方法は、一サイクル内の第1期間内でアプリケーションプログラムのタスクを実行し、一サイクル内の第2期間内でアプリケーションプログラム以外のタスクを実行する実行段階を備えてよい。実行段階は、第1期間内で、診断対象の状態を示す時系列データの入力を受け付ける入力処理を実行する段階を含んでよい。実行段階は、第2期間内で、入力処理により受け付けられた時系列データを記憶部に蓄積させる蓄積処理、及び蓄積処理で記憶部に蓄積された時系列データに基づいて診断対象の状態を診断する診断処理の少なくとも一部を実行する段階を含んでよい。 A control method according to an aspect of the present invention may be a control method for controlling a programmable controller. The control method may comprise executing a task of an application program within a first period of time within a cycle and executing a task other than the application program within a second period of time within a cycle. The execution step may include executing an input process for receiving input of time-series data indicating the state of the diagnostic target within the first period. The execution stage includes, within the second period, an accumulation process for accumulating the time-series data received by the input process in the storage unit, and diagnosing the state of the diagnosis target based on the time-series data accumulated in the storage unit in the accumulation process. performing at least a portion of the diagnostic process.

本発明の一態様に係るプログラムは、プログラマブルコントローラとしてコンピュータを機能させるためのプログラムでよい。プログラムは、一サイクル内の第1期間内でアプリケーションプログラムのタスクを実行し、一サイクル内の第2期間内でアプリケーションプログラム以外のタスクを実行する実行段階をコンピュータに実行させてよい。実行段階は、第1期間内で、診断対象の状態を示す時系列データの入力を受け付ける入力処理を実行する段階を含んでよい。実行段階は、第2期間内で、入力処理により受け付けられた時系列データを記憶部に蓄積させる蓄積処理、及び蓄積処理で記憶部に蓄積された時系列データに基づいて診断対象の状態を診断する診断処理の少なくとも一部を実行する段階を含んでよい。 A program according to one aspect of the present invention may be a program for causing a computer to function as a programmable controller. The program may cause the computer to perform an execution phase of executing tasks of the application program within a first period of time within a cycle and executing tasks other than the application program within a second period of time within a cycle. The execution step may include executing an input process for receiving input of time-series data indicating the state of the diagnostic target within the first period. The execution stage includes, within the second period, an accumulation process for accumulating the time-series data received by the input process in the storage unit, and diagnosing the state of the diagnosis target based on the time-series data accumulated in the storage unit in the accumulation process. performing at least a portion of the diagnostic process.

なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。 It should be noted that the above summary of the invention does not list all the features of the invention. Subcombinations of these feature groups can also be inventions.

プログラマブルコントローラが適用されるシステムの構成の一例を示す図である。It is a figure which shows an example of a structure of the system to which a programmable controller is applied. CPUモジュールの概略ハードウェア構成の一例を示す図である。3 is a diagram showing an example of a schematic hardware configuration of a CPU module; FIG. プログラマブルコントローラのソフトウェア構造の一例を示す図である。It is a figure which shows an example of the software structure of a programmable controller. プログラマブルコントローラにおけるタスク処理について説明するための図である。It is a figure for demonstrating the task processing in a programmable controller. プログラマブルコントローラに適用される多変量解析処理の診断フロー図である。FIG. 4 is a diagnostic flowchart of multivariate analysis processing applied to a programmable controller; 診断モデル生成のフロー図である。FIG. 4 is a flow diagram of diagnostic model generation; ハードウェア構成の一例を示す図である。It is a figure which shows an example of a hardware configuration.

以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。 Hereinafter, the present invention will be described through embodiments of the invention, but the following embodiments do not limit the invention according to the claims. Also, not all combinations of features described in the embodiments are essential for the solution of the invention.

図1は、プログラマブルコントローラが適用されるシステム10の構成の一例を示す。システム10は、工場またはプラント等の産業施設において用いられてよい。システム10は、ファクトリーオートメーションの少なくとも一部として用いられてよい。プログラマブルコントローラは、産業施設の生産ラインの制御及び工作機械の制御を行う。 FIG. 1 shows an example configuration of a system 10 to which a programmable controller is applied. System 10 may be used in industrial facilities such as factories or plants. System 10 may be used as at least part of factory automation. Programmable controllers control production lines and machine tools in industrial facilities.

システム10は、CPUモジュール100、機能モジュール200、I/Oモジュール300、管理装置400、被制御装置250、及び被制御装置350を備える。CPUモジュール100は、被制御装置250、及び被制御装置350を制御するための演算処理を行う。機能モジュール200は、予め定められた特定の処理を行う機能を有する。機能モジュール200は、例えば、モータ等のアクチュエータを制御するためのサーボアンプまたはインバータ等の機能を有する。I/Oモジュール300は、CPUモジュール100へのデータの入出力を行う。管理装置400は、CPUモジュール100の設定等を支援する。CPUモジュール100、機能モジュール200、及びI/Oモジュール300は、それぞれ異なる機能を有するプログラマブルコントローラである。 The system 10 includes a CPU module 100 , a function module 200 , an I/O module 300 , a management device 400 , a controlled device 250 and a controlled device 350 . The CPU module 100 performs arithmetic processing for controlling the controlled device 250 and the controlled device 350 . The functional module 200 has a function of performing predetermined specific processing. The functional module 200 has, for example, functions such as a servo amplifier or an inverter for controlling actuators such as motors. The I/O module 300 inputs and outputs data to and from the CPU module 100 . The management device 400 supports the setting of the CPU module 100 and the like. The CPU module 100, function module 200, and I/O module 300 are programmable controllers having different functions.

管理装置400は、一般的なパソコン上のソフトウェアとして構成されてよい。管理装置400は、プログラマブルコントローラを管理する専用の装置でもよい。ここでは便宜上、ソフトウェアを管理するパソコンも含めて管理装置400と呼称する。管理装置400とCPUモジュール100とは、RS-232CまたはUSB等の通信ケーブルを用いて接続されている。 The management device 400 may be configured as software on a general personal computer. The management device 400 may be a device dedicated to managing programmable controllers. Here, for the sake of convenience, a personal computer that manages software is also referred to as a management device 400 . The management device 400 and the CPU module 100 are connected using a communication cable such as RS-232C or USB.

また、CPUモジュール100と、機能モジュール200と、I/Oモジュール300とは、互いにネットワーク接続されており、互いに入出力データの転送及びメッセージ通信を行う。 The CPU module 100, the function module 200, and the I/O module 300 are network-connected to each other, and perform input/output data transfer and message communication with each other.

被制御装置250、及び被制御装置350は、制御対象の機器である。被制御装置250、及び被制御装置350は、例えば産業機械であってよい。被制御装置250、及び被制御装置350は、モータ、エンコーダ、ポンプ、バルブ、カメラ、各種センサ等であってよい。 The controlled device 250 and the controlled device 350 are devices to be controlled. Controlled device 250 and controlled device 350 may be, for example, industrial machines. The controlled device 250 and the controlled device 350 may be motors, encoders, pumps, valves, cameras, various sensors, and the like.

CPUモジュール100、機能モジュール200及びI/Oモジュール300は、ユーザが制御したいシステムの規模または構成によって自由に取捨選択可能である。ユーザは管理装置400を用いて、システムの構成設定、各モジュールの動作設定を行う。また、ユーザは管理装置400を用いて、ラダー図等により制御用のアプリケーションプログラムを作成し、作成されたアプリケーションプログラムをCPUモジュール100にダウンロードする。 The CPU module 100, function module 200 and I/O module 300 can be freely selected according to the scale or configuration of the system that the user wants to control. The user uses the management device 400 to set the configuration of the system and set the operation of each module. The user also uses the management device 400 to create a control application program using a ladder diagram or the like, and downloads the created application program to the CPU module 100 .

図2は、CPUモジュール100のハードウェア構成の一例を示す。CPUモジュール100は、CPU102、ドライバ/レシーバ104、バスコントローラ106、フラッシュメモリ108、プログラムメモリ110、及びデータメモリ112を備える。ドライバ/レシーバ104は、管理装置400と接続するためのRS422、またはUSB等でよい。バスコントローラ106は、ネットワークに接続され、機能モジュール200、及びI/Oモジュール300との間の通信を制御する。フラッシュメモリ108は、CPUモジュール100のシステム処理(CPUモジュール100のシステム管理、通信処理、故障情報収集等)用のプログラム及び制御用のアプリケーションプログラムを格納する。プログラムメモリ110は、CPU102がシステム処理及びアプリケーションプログラムをより高速に実行するために、フラッシュメモリ108からプログラムをブートし実行するためのメモリである。データメモリ112は、プログラムで使用されるデータを格納する。CPU102は、プログラムメモリ110上のプログラム、データメモリ112上のデータを利用して、各種演算を行う。CPU102は、実行部の一例である。データメモリ112は、記憶部の一例である。 FIG. 2 shows an example of the hardware configuration of the CPU module 100. As shown in FIG. CPU module 100 includes CPU 102 , driver/receiver 104 , bus controller 106 , flash memory 108 , program memory 110 and data memory 112 . The driver/receiver 104 may be RS422, USB or the like for connecting with the management device 400 . Bus controller 106 is connected to the network and controls communications between functional modules 200 and I/O modules 300 . The flash memory 108 stores a program for system processing of the CPU module 100 (system management of the CPU module 100, communication processing, failure information collection, etc.) and an application program for control. Program memory 110 is a memory for booting and executing programs from flash memory 108 in order for CPU 102 to execute system processing and application programs faster. Data memory 112 stores data used by the program. The CPU 102 uses programs in the program memory 110 and data in the data memory 112 to perform various calculations. CPU 102 is an example of an execution unit. Data memory 112 is an example of a storage unit.

図2に示すハードウェア構成は、CPUモジュール100の機能の一部を模式的に示したものに過ぎず、この構成に限定されない。CPUモジュール100は、例えば、電源回路、リセット回路、取り外し可能な外部記憶装置とのインタフェース等をさらに備えてよい。また、システム10が複数のCPUモジュール100を備える場合、すべてのCPUモジュール100が図2に示すハードウェア構成でなくてもよい。例えば、プログラムメモリ110は、より高速なSDRAMでよく、あるいはCPU102にRAMが内蔵されていてもよい。 The hardware configuration shown in FIG. 2 merely schematically shows part of the functions of the CPU module 100, and is not limited to this configuration. The CPU module 100 may further include, for example, a power supply circuit, a reset circuit, an interface with a removable external storage device, and the like. Moreover, when the system 10 includes a plurality of CPU modules 100, all the CPU modules 100 do not have to have the hardware configuration shown in FIG. For example, program memory 110 may be faster SDRAM, or RAM may be built into CPU 102 .

前述のように構成されるCPUモジュール100は、一定周期(スキャン周期)において、機能モジュール200及びI/Oモジュール300から、ネットワーク経由で入力データを収集する。CPUモジュール100は、入力データに基づき制御用のアプリケーションプログラムを実行し、アプリケーションプログラムの実行結果に基づく出力データを、ネットワーク経由で機能モジュール200及びI/Oモジュール300へと出力する。 The CPU module 100 configured as described above collects input data from the function module 200 and the I/O module 300 via the network in a constant cycle (scan cycle). The CPU module 100 executes a control application program based on input data, and outputs output data based on the execution result of the application program to the function module 200 and the I/O module 300 via the network.

ここで、機能モジュール200及びI/Oモジュール300に接続された被制御装置250、及び被制御装置350を精密に制御するために、前述のネットワーク経由での入出力処理が正確に、高速且つ一定の周期で行われることが望ましい。 Here, in order to precisely control the controlled device 250 and the controlled device 350 connected to the functional module 200 and the I/O module 300, the above-described input/output processing via the network is performed accurately, at high speed, and constantly. It is desirable to be performed in a cycle of

通常、プログラマブルコントローラは、制御用のアプリケーションプログラムの実行を最優先で処理する。したがって、それ以外の処理は、1実行サイクル中において、アプリケーションプログラムの実行終了後の残り時間で実行されるのが一般的である。 A programmable controller usually gives top priority to the execution of a control application program. Therefore, other processes are generally executed in the remaining time after the execution of the application program is finished during one execution cycle.

近年、ファクトリーオートメーション(FA)分野において、加工品の不具合及び装置の異常の早期検出のために、プログラマブルコントローラへの多変量解析技術の適用ニーズがある。プログラマブルコントローラのアプリケーションプログラムは、被制御装置250、及び被制御装置350の制御を高速且つ一定周期で行う必要がある。一方、プログラマブルコントローラに多変量解析技術を適用する場合、多変量解析では、正常な入力パターンから診断モデルを生成し、この診断モデルに対して入力データを与えた上で、高度な行列演算を実行する。アプリケーションプログラムと比較して、多変量解析は、診断結果を得るまえの処理に多大な演算時間を必要とする。また、多変量解析においては、解析結果を得るために再帰的演算を行う理由から、その診断結果までの時間が確定的に決まらないことがある。このため、多変量解析による診断処理を制御用のアプリケーションプログラム内で実装した場合、アプリケーションプログラムの処理周期が大きく変動してしまう場合がある。 In recent years, in the field of factory automation (FA), there is a need to apply multivariate analysis technology to programmable controllers for early detection of defects in processed products and abnormalities in equipment. The application program of the programmable controller needs to control the controlled device 250 and the controlled device 350 at high speed and in a constant cycle. On the other hand, when multivariate analysis technology is applied to programmable controllers, multivariate analysis generates a diagnostic model from normal input patterns, gives input data to this diagnostic model, and executes advanced matrix operations. do. Compared to application programs, multivariate analysis requires a large amount of computing time for processing before obtaining diagnostic results. In addition, in multivariate analysis, the time to the diagnosis result may not be decided with certainty because recursive calculation is performed to obtain the analysis result. Therefore, when diagnostic processing based on multivariate analysis is implemented in a control application program, the processing cycle of the application program may fluctuate greatly.

そこで、実施形態においては、多変量解析による診断機能を、後述の図5に示すような、複数の機能(蓄積処理608、前処理612、解析処理614、判定処理616、及び通知処理618)に分解する。このように分解された機能のうち、蓄積処理608のためのデータ入力をアプリケーションプログラムで実行し、前処理612、解析処理614及び判定処理616といった時間のかかる処理は、後述のデータ処理で行うようにする。このように診断機能を分解することで、アプリケーションプログラムの処理周期への影響を入力データのコピー時間程度に抑えた状態で、プログラマブルコントローラでの多変量解析機能を実現できるようになる。 Therefore, in the embodiment, the diagnosis function by multivariate analysis is divided into a plurality of functions (accumulation processing 608, preprocessing 612, analysis processing 614, determination processing 616, and notification processing 618) as shown in FIG. disassemble. Among the functions decomposed in this manner, data input for accumulation processing 608 is executed by an application program, and time-consuming processing such as preprocessing 612, analysis processing 614, and determination processing 616 is performed by data processing described later. to By decomposing the diagnostic function in this way, it becomes possible to realize the multivariate analysis function in the programmable controller while limiting the influence on the processing cycle of the application program to about the input data copy time.

図3は、プログラマブルコントローラのソフトウェア構造の一例を示す。リアルタイムOS160は、ハードウェア162上で動作する。リアルタイムOS160は、帯域管理層158を1つの処理系として呼び出し、その中で、アプリケーションスケジューラ156とデータ処理152とが呼び出される。帯域管理層158は、ユーザ指定のパラメータに従い、1実行サイクルのうち、アプリケーションスケジューラ156とデータ処理152とに割り当てられる時間をそれぞれの時間配分比率で設定する。アプリケーションスケジューラ156は、帯域管理層158が設定した実行時間比率に従って、ユーザアプリケーションプログラム150の処理を行い、残った時間をデータ処理152が使用する。データ処理152においては、データ通信処理、データ転送処理、故障データ収集処理等と共に、多変量解析処理が実行される。これにより、1実行サイクル中のアプリケーションプログラムと多変量解析処理との時間配分をユーザが指定可能となる。また、基本システム154は、イニシャル処理及びシステム維持処理等のプログラマブルコントローラとしてシステムを動作させるための処理に属する処理を含む。アプリケーション動作開始後に基本システム154に属する処理を行う時は、基本システム154をデータ処理152の帯域の中で動作させる。 FIG. 3 shows an example of the software structure of the programmable controller. Real-time OS 160 runs on hardware 162 . The real-time OS 160 calls the bandwidth management layer 158 as one processing system, in which the application scheduler 156 and data processing 152 are called. Bandwidth management layer 158 sets the time allocated to application scheduler 156 and data processor 152 in one execution cycle in accordance with user-specified parameters. The application scheduler 156 processes the user application program 150 according to the execution time ratio set by the bandwidth management layer 158, and the data processing 152 uses the remaining time. In data processing 152, multivariate analysis processing is executed along with data communication processing, data transfer processing, failure data collection processing, and the like. This allows the user to specify the time allocation between the application program and the multivariate analysis processing during one execution cycle. The basic system 154 also includes processes belonging to processes for operating the system as a programmable controller, such as initial processes and system maintenance processes. When processing belonging to the basic system 154 is performed after starting the application operation, the basic system 154 is operated within the bandwidth of the data processing 152 .

帯域管理層158の時間配分比率は、ユーザが管理装置400から変更する。時間配分比率とは、1実行サイクル時間のうち、帯域管理層158に割り当てられる実行サイクル時間を、アプリケーションスケジューラ156とデータ処理152との間でどのように時間配分するかを指定するパラメータである。ユーザは、全体の実行サイクル時間と、ユーザアプリケーションプログラム150の実行時間及びデータ処理152の実行時間とを勘案し、システムに合った時間配分比率を設定する。 The user changes the time allocation ratio of the band management layer 158 from the management device 400 . The time allocation ratio is a parameter that specifies how the execution cycle time allocated to the bandwidth management layer 158 in one execution cycle time is allocated between the application scheduler 156 and the data processing 152 . The user considers the overall execution cycle time, the execution time of the user application program 150 and the execution time of the data processing 152, and sets the time allocation ratio suitable for the system.

図4は、プログラマブルコントローラにおけるタスク処理スケジューリングを説明する図である。プログラマブルコントローラは、実行部に相当するCPU102を備える。縦軸にタスクの優先度、横軸に経過時間を示す。1実行サイクル時間は、ユーザアプリケーションプログラム150のタスクが実行される期間501と、ユーザアプリケーションプログラム150以外のタスクが実行される期間502とを含む。ユーザアプリケーションプログラム150以外のタスクは、データ処理152のタスクを含む。期間501は、第1期間の一例であり、期間502は、第2期間の一例である。 FIG. 4 is a diagram for explaining task processing scheduling in a programmable controller. The programmable controller has a CPU 102 corresponding to an execution unit. The vertical axis indicates task priority, and the horizontal axis indicates elapsed time. One execution cycle time includes a period 501 during which tasks of the user application program 150 are executed and a period 502 during which tasks other than the user application program 150 are executed. Tasks other than user application programs 150 include data processing 152 tasks. A period 501 is an example of a first period, and a period 502 is an example of a second period.

1実行サイクル時間は、ユーザアプリケーションプログラム150を実行管理するアプリケーションスケジューラ156によるタスク、データ処理152によるタスクに割り当てられている。CPU102は、これらのタスクを実行する。優先度の最上位には、OSまたは高位のハードウェアの割り込み処理540等がある。そのすぐ下位の優先度に、アプリケーションスケジューラ156によりスケジューリングされたユーザアプリケーションプログラム150のタスクがある。 One execution cycle time is assigned to tasks by the application scheduler 156 that manages execution of the user application program 150 and tasks by the data processing 152 . CPU 102 executes these tasks. The interrupt process 540 of the OS or high-level hardware has the highest priority. Immediately below that priority are the user application program 150 tasks scheduled by the application scheduler 156 .

CPU102は、ユーザアプリケーションプログラム150のタスクを、ユーザアプリケーションプログラム150に割り当てられた期間501内で、優先度の高い順であるタスクa510、タスクb512、タスクc514の順で実行する。CPU102は、ユーザアプリケーションプログラム150のタスクの実行を終えると、データ処理152のタスクを、データ処理152に割り当てられた期間502内で優先度の高い順であるタスクA520、タスクB522の順で実行する。データ処理152のタスクは、CPUモジュール100を管理する管理装置400との間のデータ通信処理のタスクを含む。 The CPU 102 executes the tasks of the user application program 150 within the period 501 assigned to the user application program 150 in order of priority: task a 510 , task b 512 , and task c 514 . After completing the execution of the tasks of the user application program 150, the CPU 102 executes the tasks of the data processing 152 in order of priority within the period 502 assigned to the data processing 152: task A520 and task B522. . The task of data processing 152 includes a task of data communication processing with the management device 400 that manages the CPU module 100 .

例えば、ユーザが1実行サイクル時間のうち、データ処理152を優先させたカスタマイズを行う場合、期間502の配分比率を大きく設定する。その場合、ユーザアプリケーションプログラム150に割り当てられる期間501は相対的に短くなる。ユーザアプリケーションプログラム150の期間501が短くなったことにより、実行されなかった残りの実行処理は次の1実行サイクルで処理されることになる。制御が位置決め等を行うリアルタイム制御の場合は、ユーザアプリケーションプログラム150の期間501を大きく設定することで、位置決め性能を発揮できる。制御がプログラムコントローラで収集したデータを画面に表示する監視系システムの場合は、データ処理152の期間502を大きく設定することで、画面表示/更新性能を向上できる。 For example, when the user performs customization by prioritizing the data processing 152 in one execution cycle time, the allocation ratio of the period 502 is set large. In that case, the period 501 allocated to the user application program 150 will be relatively short. Due to the shortening of the period 501 of the user application program 150, the remaining execution processes that have not been executed will be processed in the next execution cycle. In the case of real-time control for positioning or the like, the positioning performance can be exhibited by setting the period 501 of the user application program 150 to a large value. In the case of a monitoring system in which data collected by a program controller is displayed on the screen, the screen display/update performance can be improved by setting the period 502 of the data processing 152 to be large.

図5は、多変量解析による診断フローの一例を示す。実施形態において、多変量解析は、ユーザアプリケーションプログラム150のフロー700及びデータ処理152のフロー600で構成される。CPU102は、ユーザアプリケーションプログラム150のフロー700を、タスクに細分化されて期間501内で実行する。CPU102は、データ処理152のフロー600を、タスクに細分化されて期間502内で実行する。 FIG. 5 shows an example of a diagnosis flow by multivariate analysis. In an embodiment, the multivariate analysis comprises flow 700 of user application program 150 and flow 600 of data processing 152 . The CPU 102 subdivides a flow 700 of the user application program 150 into tasks and executes them within a period 501 . CPU 102 executes flow 600 of data processing 152 in time period 502 subdivided into tasks.

CPU102は、時系列データ収集開始指令702を実行して、時系列データ収集の開始指令をトリガとして、ユーザアプリケーションプログラム150のフロー700を開始する。CPU102は、期間501において、機能モジュール200及びI/Oモジュール300から診断対象の状態を示す時系列データの入力を受け付ける入力処理704を実行する。入力処理704は、後述のファンクションブロックで構成されてよい。診断対象は、製造ラインにおける加工品などのワーク、CPUモジュール100により制御される被制御装置250、または被制御装置350でよい。時系列データとは、各種センサ値、サーボアンプからの速度またはトルク等のスキャン周期ごとに変化するデータである。CPU102は、受け付けた時系列データを、データ処理152のフロー600における蓄積処理608に渡す。入力処理704は、機能モジュール200及びI/Oモジュール300からの時系列データをバッファに蓄積せず、順次、蓄積処理608に出力する処理を実行する。 The CPU 102 executes the time-series data collection start command 702 and starts the flow 700 of the user application program 150 with the time-series data collection start command as a trigger. In a period 501 , the CPU 102 executes input processing 704 for receiving input of time-series data indicating the state of the diagnosis target from the functional module 200 and the I/O module 300 . The input processing 704 may consist of function blocks described later. The diagnosis target may be a workpiece such as a processed product in a manufacturing line, a controlled device 250 controlled by the CPU module 100, or a controlled device 350. FIG. Time-series data is data that changes for each scan cycle, such as various sensor values, speed or torque from a servo amplifier. CPU 102 passes the received time-series data to accumulation processing 608 in flow 600 of data processing 152 . The input processing 704 executes processing for sequentially outputting the time-series data from the functional module 200 and the I/O module 300 to the accumulation processing 608 without accumulating them in the buffer.

期間502において、CPU102は、データ処理152のフロー600を開始する。CPU102は、期間502内で蓄積処理608、及び診断処理610の少なくとも一部を実行する。蓄積処理608は、入力処理704により受け付けられた時系列データをデータメモリ112に蓄積させる。診断処理610は、蓄積処理608でデータメモリ112に蓄積された時系列データに基づいて診断対象の状態を診断する。診断処理610は、前処理612、解析処理614、判定処理616、及び通知処理618を含む。 During time period 502 , CPU 102 initiates flow 600 of data processing 152 . The CPU 102 executes at least part of the accumulation process 608 and the diagnosis process 610 within the period 502 . Accumulation processing 608 accumulates the time-series data received by input processing 704 in data memory 112 . Diagnosis processing 610 diagnoses the state of a diagnosis target based on the time-series data accumulated in data memory 112 in accumulation processing 608 . Diagnosis processing 610 includes preprocessing 612 , analysis processing 614 , determination processing 616 , and notification processing 618 .

前処理612は、予め定められた量の時系列データを、診断するためのデータ形式に変換する。解析処理614は、前処理612で処理された時系列データに基づいて多変量解析処理を実行する。解析処理614は、予め定められたアルゴリズムに従って多変量解析処理を実行することで、診断対象の状態を示す値、例えば、Q統計量(Q値)及びT統計量(T値)を出力してよい。判定処理616は、解析処理614の解析結果に基づいて診断対象の状態が正常か否かを判定する。判定処理616は、診断対象の状態を示す値と閾値とを比較することで、診断対象の状態が正常か否かを判定してよい。判定処理616は、診断対象の状態を示す値が診断モデルに従った閾値範囲内に収まるか否かを判定することで、診断対象の状態が正常か否かを判定してよい。CPU102は、複数の実行サイクルに亘って、それぞれの実行サイクルの期間502内で、蓄積処理608及び診断処理610を実行することで、複数の実行サイクルで診断対象の状態の一回の診断を実行してよい。 Preprocessing 612 converts a predetermined amount of time-series data into a data format for diagnosis. Analysis processing 614 performs multivariate analysis processing based on the time-series data processed in preprocessing 612 . Analysis processing 614 executes multivariate analysis processing according to a predetermined algorithm to output a value indicating the state of a diagnostic object, such as Q statistic (Q value) and T 2 statistic (T 2 value). You can Determination processing 616 determines whether the state of the diagnostic object is normal based on the analysis result of analysis processing 614 . The determination processing 616 may determine whether or not the state of the diagnosis target is normal by comparing a value indicating the state of the diagnosis target with a threshold value. The determination processing 616 may determine whether the state of the diagnostic target is normal by determining whether the value indicating the state of the diagnostic target falls within the threshold range according to the diagnostic model. The CPU 102 performs a single diagnosis of the condition to be diagnosed over multiple execution cycles by executing the accumulation process 608 and the diagnostic process 610 within the period 502 of each execution cycle. You can

CPU102は、診断初期化602を実行して、診断処理プログラムの初期化を開始する。次いで、CPU102は、モデル読み込み604を実行して、データメモリ112から診断モデルを読み込む。次いで、CPU102は、時系列データ収集の開始指令が出力されたか否かで、診断プログラムの時系列データ収集を開始するタイミングか否かを判定する(606)。診断プログラムの時系列データ収集を開始するタイミングであれば、CPU102は、蓄積処理608において、入力処理704からの時系列データを、データメモリ112に順次蓄積させる。CPU102は、診断に必要なデータ数としての予め定められた量の時系列データがデータメモリ112に蓄積されたか否かを判定する(609)。予め定められた量の時系列データが蓄積されたら、CPU102は、前処理612を行う。より具体的には、CPU102は、時系列データに対し欠損データの補完、周波数成分への変換(FFT)等の、診断データに成形するための前処理612を行う。その後、CPU102は、診断データに基づき、単変量解析、2変量解析といった多変量解析を行う。最終的に、CPU102は、被制御装置250、及び被制御装置350の動作または加工品が正常か異常かの判定処理616を行い、判定結果としての診断結果を通知する通知処理618を行う。 The CPU 102 executes diagnostic initialization 602 to start initialization of the diagnostic processing program. CPU 102 then executes load model 604 to load the diagnostic model from data memory 112 . Next, the CPU 102 determines whether or not it is time to start time-series data collection for the diagnostic program, based on whether or not a start command for time-series data collection has been output (606). If it is time to start time-series data collection for the diagnostic program, CPU 102 sequentially stores the time-series data from input process 704 in data memory 112 in storage process 608 . The CPU 102 determines whether or not a predetermined amount of time-series data as the number of data required for diagnosis has been accumulated in the data memory 112 (609). After a predetermined amount of time-series data has been accumulated, CPU 102 performs preprocessing 612 . More specifically, the CPU 102 performs preprocessing 612 for shaping the time-series data into diagnostic data, such as interpolation of missing data and conversion to frequency components (FFT). After that, the CPU 102 performs multivariate analysis such as univariate analysis and bivariate analysis based on the diagnostic data. Finally, the CPU 102 performs determination processing 616 to determine whether the operations or processed products of the controlled device 250 and the controlled device 350 are normal or abnormal, and performs notification processing 618 to notify the diagnosis result as the determination result.

CPU102は、1実行サイクル内で、蓄積処理608から通知処理618までの一回の診断を構成する一連の処理を終了できない場合は、複数の実行サイクルに亘り、それぞれの期間502内で一連の処理を実行することで、一回の診断を行う。一連の処理が終了するまでの時間があまりに長いと、診断結果を被制御装置250、及び被制御装置350の動作に反映させるまでに時間がかかってしまう。すなわち、被制御装置250、及び被制御装置350の動作に不具合があることを発見するまでの時間が長くなってしまう可能性がある。この場合、例えば、不良品の数が増大する可能性がある。 If the CPU 102 cannot complete a series of processes constituting one diagnosis from the accumulation process 608 to the notification process 618 within one execution cycle, the CPU 102 performs a series of processes within each period 502 over a plurality of execution cycles. Perform a one-time diagnosis by executing If the time until the series of processes is completed is too long, it will take time to reflect the diagnosis results in the operations of the controlled device 250 and the controlled device 350 . That is, it may take a long time to discover that there is a problem in the operation of the controlled device 250 and the controlled device 350 . In this case, for example, the number of defective products may increase.

そこで、CPU102が予め定められた実行サイクル数内で、一回の診断を完了できなかった場合は、CPU102は、一回の診断処理が完了した時点で、または診断処理の途中で、その旨のメッセージを出力する出力処理を実行してよい。出力処理は、後述のファンクションブロックで構成されてよい。ユーザは、当該メッセージに応じて、1実行サイクル内に占める期間502の割合を増加させるべく、新たなパラメータを指定できる。新たなパラメータを指定した場合、CPU102は、新たなパラメータに従い期間501及び期間502の長さを調整する。これにより、診断結果を被制御装置250、及び被制御装置350の動作に反映させるまでの時間を短縮でき、例えば、不良品の数の増大を抑制できる。予め定められた実行サイクル数内で、一回の診断を完了できなかったことを示すメッセージが出力された場合、CPU102は、メッセージに応じて、一サイクル内で占める期間502の割合が増加するように、期間501及び期間502の長さを調整してよい。CPU102は、予め定められた割合、期間502の長さが長くなるように、期間501及び期間502の長さを調整してよい。CPU102は、予め定められた割合を、一連の処理が終了するまでに要した実行サイクル数に基づいて設定してよい。CPU102は、一連の処理が終了するまでに要した実行サイクル数に比例して大きくなるように、予め定められた割合を設定してよい。 Therefore, if the CPU 102 cannot complete a single diagnosis within a predetermined number of execution cycles, the CPU 102 will notify the user of the failure at the completion of a single diagnosis process or during the diagnosis process. An output process that outputs a message may be executed. The output process may be composed of function blocks, which will be described later. In response to the message, the user can specify new parameters to increase the proportion of period 502 in one execution cycle. When specifying new parameters, the CPU 102 adjusts the lengths of the periods 501 and 502 according to the new parameters. As a result, it is possible to shorten the time until the diagnosis result is reflected in the operation of the controlled device 250 and the controlled device 350, and for example, suppress an increase in the number of defective products. When a message indicating that one diagnosis could not be completed within a predetermined number of execution cycles is output, the CPU 102 increases the ratio of the period 502 within one cycle according to the message. Additionally, the length of period 501 and period 502 may be adjusted. The CPU 102 may adjust the lengths of the periods 501 and 502 so that the length of the period 502 is increased by a predetermined ratio. The CPU 102 may set a predetermined ratio based on the number of execution cycles required to complete a series of processes. The CPU 102 may set a predetermined ratio so as to increase in proportion to the number of execution cycles required until the series of processes is completed.

ユーザアプリケーションプログラム150から、データ処理152における蓄積処理608に渡す時系列データの入力処理704は、ファンクションブロックで構成されてよい。 Input processing 704 of the time-series data passed from the user application program 150 to the accumulation processing 608 in the data processing 152 may be composed of function blocks.

ファンクションブロック(以下、FB)とは、IEC61131-3で規定されているプログラマブルコントローラ用のプログラミング言語仕様のうちのプログラム構成要素の1つである。FBはシーケンスプログラム中で繰り返し処理されるプログラムを部品化し、再利用可能としたものである。FBは呼び出し毎に必要なパラメータのすべてを入力するファンクションとは異なり、入力パラメータに加え、内部保持されたデータを用いて演算を行うことができるのが特徴である。 A function block (hereinafter referred to as FB) is one of program components in programming language specifications for programmable controllers defined in IEC61131-3. An FB is a program that is repeatedly processed in a sequence program and is made reusable by componentizing it. FB is characterized by being able to perform calculations using internally held data in addition to input parameters, unlike functions that input all necessary parameters for each call.

また、蓄積処理608、前処理612、解析処理614、判定処理616、通知処理618は、少なくとも1つのFBで構成されてよい。蓄積処理608、前処理612、解析処理614、判定処理616、通知処理618は、それぞれFBで構成されてよい。蓄積処理608をFBで構成すれば、スキャン周期毎に呼び出される蓄積処理608に、前回の呼び出しまでの入力値と、今回入力された値とを記録することが可能となる。CPU102は、診断を実行するスキャンサイクル分の時系列データが蓄積されたら、以降の前処理612、解析処理614、及び判定処理616を実行する。 Also, the accumulation processing 608, the preprocessing 612, the analysis processing 614, the determination processing 616, and the notification processing 618 may be configured by at least one FB. The accumulation processing 608, the preprocessing 612, the analysis processing 614, the determination processing 616, and the notification processing 618 may each be configured by the FB. If the accumulation processing 608 is configured by the FB, it becomes possible to record the input values up to the previous call and the value input this time in the accumulation processing 608 that is called every scan cycle. After accumulating the time-series data for the scan cycle for executing diagnosis, the CPU 102 executes subsequent preprocessing 612 , analysis processing 614 , and determination processing 616 .

通知処理618に関しては、プログラマブルコントローラを停止する、LED等の外部表示機器へ通知するといった方法も考えられる。しかしながら、通知処理618自体もFBで構成することで、ユーザアプリケーションプログラム150側の制御処理706受け取った診断結果を、ユーザアプリケーションプログラム150による制御に反映することが可能となる。例えば、加工品の不良を診断する場合、ユーザアプリケーションプログラム150の処理中に診断結果をフィードバックすることで、タイムリーに加工不良品を分別することが可能となる。 Regarding the notification processing 618, methods of stopping the programmable controller and notifying an external display device such as an LED are also conceivable. However, by configuring the notification process 618 itself in the FB, it is possible to reflect the diagnosis result received by the control process 706 on the user application program 150 side to the control by the user application program 150 . For example, when diagnosing a defect in a processed product, feedback of the diagnostic result during processing of the user application program 150 enables timely sorting of defective processed products.

CPU102は、期間501内で、診断対象に関係する被制御装置250、350に対する制御処理706をユーザアプリケーションプログラム150において実行する。制御処理706は、生産ラインで駆動するモータ等のアクチュエータを制御する処理でよい。制御処理706は、少なくとも1つのFBで構成されてよい。前述のフィードバックのために、CPU102は、判定処理616による判定結果である診断結果を、ユーザアプリケーションプログラム150で実行される制御処理706に対し通知する通知処理618を実行してよい。通知処理618もFBで構成されてよい。CPU102は、制御処理706において、診断結果に従って、生産ラインで駆動するモータ等のアクチュエータを制御して、加工不良品を分別する処理を実行してよい。 The CPU 102 executes the control processing 706 for the controlled devices 250 and 350 related to the diagnosis target in the user application program 150 within the period 501 . The control processing 706 may be processing for controlling actuators such as motors driven in the production line. Control processing 706 may consist of at least one FB. For the aforementioned feedback, the CPU 102 may execute a notification process 618 for notifying the control process 706 executed by the user application program 150 of the diagnosis result, which is the determination result of the determination process 616 . Notification processing 618 may also be configured in FB. In the control processing 706, the CPU 102 may control an actuator such as a motor driven in the production line according to the diagnosis result, and execute processing for sorting defective products.

診断モデルを用いた多変量解析による診断機能をプログラマブルコントローラに搭載する場合、ユーザアプリケーションプログラム150の負荷と比して、診断機能の負荷が高いと、診断機能の実行に時間がかかることが想定される。そこで、CPU102は、1実行サイクル内で占める期間501及び期間502のそれぞれの割合を特定する割合情報を受け付ける受付部としても機能してよい。受付部は、時間配分比率を特定するユーザ指定のパラメータを、割合情報として受け付けてよい。CPU102は、ユーザから受け付けられたパラメータに基づき、期間501及び期間502の長さを調整してよい。これにより、ユーザはユーザアプリケーションプログラム150とデータ処理152の時間配分比率を最適に指定できる。 When a programmable controller is equipped with a diagnostic function based on multivariate analysis using a diagnostic model, if the load of the diagnostic function is high compared to the load of the user application program 150, it is assumed that the execution of the diagnostic function will take a long time. be. Therefore, the CPU 102 may also function as a reception unit that receives ratio information specifying the respective ratios of the period 501 and the period 502 occupied within one execution cycle. The reception unit may receive, as the ratio information, a user-designated parameter specifying the time allocation ratio. The CPU 102 may adjust the lengths of the periods 501 and 502 based on parameters received from the user. This allows the user to optimally specify the time allocation ratio between the user application program 150 and the data processing 152 .

一般に、診断モデルの生成については、複数回の正常な加工パターンのデータをまとめて、正常データに基づき診断モデル生成を行う。例えば、ユーザがシステム運用前に予め図1の管理装置400等を用いて、手動で診断モデルの生成を行い、生成した診断モデルをCPUモジュール100にダウンロードしておくことが考えらえる。ユーザは運用開始時点において、診断モデルをCPUモジュール100に読み込み、診断モデルを多変量解析の診断に使用することになる。しかしながら、モデル生成処理を、モデル生成用データ蓄積処理及びモデル生成処理に機能分割した上で、CPUモジュール100のデータ処理で行うようにすれば、モデル生成処理機能をCPUモジュール100に実装可能である。 In general, for generation of a diagnostic model, a diagnostic model is generated based on the normal data obtained by gathering data of a plurality of normal machining patterns. For example, it is conceivable that the user manually generates a diagnostic model using the management device 400 or the like in FIG. At the start of operation, the user loads the diagnostic model into the CPU module 100 and uses the diagnostic model for multivariate analysis diagnosis. However, the model generation processing function can be implemented in the CPU module 100 if the model generation processing is divided into the model generation data accumulation processing and the model generation processing, and the data processing of the CPU module 100 is performed. .

診断モデルは、加工対象の製品が変わる、あるいは装置の刃具が変わる等すれば、影響を受け、診断モデルの変更が必要になろう。前述のような変更については、ユーザは変更自体を認識可能である。そのような変更の都度、診断モデルを手動で生成し直すことは可能である。しかしながら、装置周辺の温度、湿度等の環境要素の変化または使用中の生産ライン上の刀具若しくは可動部品の経年劣化は、比較的緩やかな変動であるため、ユーザは認識しづらい。そのため、環境要素の変化または経年劣化等の要因による診断モデルの更新をユーザが実施することは困難である。 If the product to be processed is changed, or if the cutting tools of the equipment are changed, the diagnostic model will be affected and will need to be changed. For changes such as those described above, the user can perceive the changes themselves. It is possible to manually regenerate the diagnostic model after each such change. However, changes in environmental factors such as temperature and humidity around the apparatus, or deterioration over time of cutting tools or movable parts on the production line in use are relatively gradual changes, and are difficult for users to perceive. Therefore, it is difficult for the user to update the diagnostic model due to factors such as changes in environmental factors or deterioration over time.

そこで、実施形態においては、CPU102は、期間502内で、時系列データのうち診断対象の状態が正常であることを示す時系列データに基づいて解析処理614で利用される診断モデルを生成する生成処理628を実行する。生成処理628は、重回帰分析、主成分回帰、部分最小二乗法(PLS)、自己回帰(AR)モデル、ベクトル自己回帰(VAR)モデル等の予め定められたアルゴリズムに従って、正常であることを示す時系列データを用いて診断モデルを生成してよい。 Therefore, in the embodiment, within the period 502, the CPU 102 generates a diagnostic model to be used in the analysis processing 614 based on the time-series data indicating that the state of the diagnosis target is normal among the time-series data. Process 628 is executed. The generate process 628 indicates normal according to a predetermined algorithm such as multiple regression analysis, principal component regression, partial least squares (PLS), autoregressive (AR) model, vector autoregressive (VAR) model, etc. A diagnostic model may be generated using time-series data.

CPU102は、期間502内の解析処理614が実行されていない間に、生成処理628により生成された診断モデルで、解析処理614で利用される診断モデルを更新する更新処理630を実行してよい。これにより、解析処理614で現在利用中の診断モデルが、解析の途中で更新されることで、正常に解析できなくなることを防止できる。前処理612の開始前であれば、解析処理614は実行されていないので、CPU102は、更新処理630を、前処理612の開始前に実行してよい。 CPU 102 may execute update process 630 to update the diagnostic model used in analysis process 614 with the diagnostic model generated by generation process 628 while analysis process 614 is not being performed within time period 502 . As a result, it is possible to prevent the diagnosis model currently being used in the analysis processing 614 from being updated during analysis, which prevents normal analysis from occurring. Before the preprocessing 612 starts, the analysis processing 614 has not been executed, so the CPU 102 may execute the update processing 630 before the preprocessing 612 starts.

図6は、診断モデルの生成及び更新のフローの一例を示す。CPU102は、期間501内に、時系列データ収集開始指令710を実行して、時系列データ収集の開始指令をトリガとして、診断モデルの生成及び更新のフローを開始する。CPU102は、期間501内に、機能モジュール200及びI/Oモジュール300から診断対象の状態を示す時系列データの入力を受け付ける入力処理712を実行する。入力処理704は、後述のファンクションブロックで構成されてよい。 FIG. 6 shows an example of a diagnostic model generation and update flow. The CPU 102 executes the time-series data collection start command 710 within the period 501 to start the diagnostic model generation and update flow using the time-series data collection start command as a trigger. During period 501 , CPU 102 executes input processing 712 for receiving input of time-series data indicating the state of a diagnostic object from functional module 200 and I/O module 300 . The input processing 704 may consist of function blocks described later.

CPU102は、期間502内に、診断モデル生成初期化620を実行して、診断モデル生成プログラムの初期化を開始する。次いで、CPU102は、時系列データ収集の開始指令が出力されたか否かで、診断モデル生成の時系列データ収集を開始するタイミングか否かを判定する(622)。診断モデル生成の時系列データ収集を開始するタイミングであれば、CPU102は、期間502内で、モデル生成用データ蓄積処理624を実行して、入力処理712から受け取った時系列データの中から、診断処理610における判定処理616により正常と判定された時系列データをデータメモリ112に蓄積する。CPU102は、1回分の時系列データとして予め定められた量の時系列データが蓄積されたか否かを判定する(626)。さらに、CPU102は、予め定められた回数分の時系列データがデータメモリ112に蓄積されたか否かを判定する(627)。CPU102は、予め定められた回数分の時系列データが蓄積された段階で、診断モデルの生成に必要な予め定められた量の時系列データが蓄積されたと判定する。 CPU 102 executes diagnostic model generation initialization 620 within time period 502 to initiate initialization of the diagnostic model generation program. Next, the CPU 102 determines whether or not it is time to start time-series data collection for diagnostic model generation, based on whether or not a start command for time-series data collection has been output (622). If it is time to start time-series data collection for diagnostic model generation, the CPU 102 executes the model generation data accumulation process 624 within the period 502, and selects diagnostic data from the time-series data received from the input process 712. Time-series data determined to be normal by determination processing 616 in processing 610 is stored in data memory 112 . The CPU 102 determines whether or not a predetermined amount of time-series data has been accumulated as one time-series data (626). Furthermore, the CPU 102 determines whether or not the time-series data for a predetermined number of times has been accumulated in the data memory 112 (627). CPU 102 determines that a predetermined amount of time-series data necessary for generating a diagnostic model has been accumulated at the stage when time-series data for a predetermined number of times has been accumulated.

診断モデルの生成に必要な予め定められた量の時系列データが蓄積されると、CPU102は、生成処理628を実行する。CPU102は、生成処理628において、診断処理610における判定処理616で正常と判定された時系列データを用いて、解析処理614で用いられる診断モデルを随時生成する。 When a predetermined amount of time-series data necessary for generating a diagnostic model has been accumulated, CPU 102 executes generation processing 628 . In generation processing 628 , CPU 102 uses the time-series data determined to be normal in determination processing 616 in diagnosis processing 610 to generate a diagnostic model used in analysis processing 614 as needed.

CPU102は、解析処理614が実行されていないタイミングにおいて、更新処理630を実行する。例えば、CPU102は、前処理612の開始前のタイミングにおいて、更新処理630を実行する。CPU102は、例えば、生成処理628で新たな診断モデルの生成が完了した時点で、生成完了フラグを立てる。また、CPU102は、現在使用中の診断モデルを用いた解析処理614が完了した時点で、解析完了フラグを立てる。CPU102は、生成完了フラグ及び解析完了フラグが共に立っている場合、更新処理630を実行する。このように逐次診断モデルを更新することで、CPUモジュール100は、常に最適な診断モデルを用いて、制御システムの運用を行うことができる。 The CPU 102 executes the update process 630 at the timing when the analysis process 614 is not executed. For example, the CPU 102 executes the update process 630 before the pre-process 612 starts. The CPU 102 sets a generation completion flag, for example, when generation of a new diagnostic model is completed in the generation process 628 . Further, the CPU 102 sets an analysis completion flag when the analysis processing 614 using the diagnostic model currently in use is completed. The CPU 102 executes update processing 630 when both the generation completion flag and the analysis completion flag are set. By sequentially updating the diagnostic model in this way, the CPU module 100 can always operate the control system using the optimal diagnostic model.

診断モデル生成の実際の適用においては、例えば、品質トレーサビリティの観点から、加工ロットに応じて診断モデルを更新してよい。また、診断モデルの変更日時と適用した診断モデルデータを保存するといった対応を行ってもよい。また、万が一、適用した診断モデルの判定結果が不適切な場合に、以前使用していた診断モデルへロールバックする機能を用いてもよい。 In the actual application of diagnostic model generation, for example, from the viewpoint of quality traceability, the diagnostic model may be updated according to the processing lot. In addition, the change date and time of the diagnostic model and the applied diagnostic model data may be saved. Also, in the unlikely event that the judgment result of the applied diagnostic model is inappropriate, a function of rolling back to the previously used diagnostic model may be used.

図7は、本発明の複数の態様が全体的または部分的に具現化してよいコンピュータ1200の一例を示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200に、本発明の実施形態に係る装置に関連付けられるオペレーションまたは当該装置の1または複数の「部」として機能させることができる。または、当該プログラムは、コンピュータ1200に当該オペレーションまたは当該1または複数の「部」を実行させることができる。当該プログラムは、コンピュータ1200に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。 FIG. 7 illustrates an example computer 1200 in which aspects of the invention may be implemented in whole or in part. Programs installed on computer 1200 may cause computer 1200 to act as one or more "parts" of or operations associated with apparatus according to embodiments of the present invention. Alternatively, the program may cause computer 1200 to perform the operation or the one or more "parts." The program may cause the computer 1200 to perform a process or steps of the process according to embodiments of the invention. Such programs may be executed by CPU 1212 to cause computer 1200 to perform certain operations associated with some or all of the blocks in the flowcharts and block diagrams described herein.

本実施形態によるコンピュータ1200は、CPU1212、及びRAM1214を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、入力/出力ユニットを含み、それらは入力/出力コントローラ1220を介してホストコントローラ1210に接続されている。コンピュータ1200はまた、ROM1230を含む。CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。 Computer 1200 according to this embodiment includes CPU 1212 and RAM 1214 , which are interconnected by host controller 1210 . Computer 1200 also includes a communication interface 1222 and an input/output unit, which are connected to host controller 1210 via input/output controller 1220 . Computer 1200 also includes ROM 1230 . The CPU 1212 operates according to programs stored in the ROM 1230 and RAM 1214, thereby controlling each unit.

通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブが、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納してよい。ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/またはコンピュータ1200のハードウェアに依存するプログラムを格納する。プログラムが、CR-ROM、USBメモリまたはICカードのようなコンピュータ可読記録媒体またはネットワークを介して提供される。プログラムは、コンピュータ可読記録媒体の例でもあるRAM1214、またはROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ1200の使用に従い情報のオペレーションまたは処理を実現することによって構成されてよい。 Communication interface 1222 communicates with other electronic devices over a network. A hard disk drive may store programs and data used by CPU 1212 in computer 1200 . ROM 1230 stores therein programs that are dependent on the hardware of computer 1200, such as a boot program that is executed by computer 1200 upon activation. The program is provided via a computer-readable recording medium such as CR-ROM, USB memory or IC card or network. The program is installed in RAM 1214 or ROM 1230 , which are also examples of computer-readable recording media, and executed by CPU 1212 . The information processing described within these programs is read by computer 1200 to provide coordination between the programs and the various types of hardware resources described above. An apparatus or method may be configured by implementing information operations or processing according to the use of computer 1200 .

例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、またはUSBメモリのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。 For example, when communication is performed between the computer 1200 and an external device, the CPU 1212 executes a communication program loaded into the RAM 1214 and sends communication processing to the communication interface 1222 based on the processing described in the communication program. you can command. The communication interface 1222, under the control of the CPU 1212, reads the transmission data stored in the transmission buffer area provided in the RAM 1214 or a recording medium such as a USB memory, transmits the read transmission data to the network, or Received data received from a network is written in a receive buffer area or the like provided on a recording medium.

また、CPU1212は、USBメモリ等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。 The CPU 1212 also causes the RAM 1214 to read all or a necessary portion of a file or database stored in an external storage medium such as a USB memory, and performs various types of processing on the data on the RAM 1214. good. CPU 1212 may then write back the processed data to an external recording medium.

様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。 Various types of information, such as various types of programs, data, tables, and databases, may be stored on recording media and subjected to information processing. CPU 1212 performs various types of operations on data read from RAM 1214, information processing, conditional decisions, conditional branching, unconditional branching, and information retrieval, which are described throughout this disclosure and are specified by instruction sequences of programs. Various types of processing may be performed, including /replace, etc., and the results written back to RAM 1214 . In addition, the CPU 1212 may search for information in a file in a recording medium, a database, or the like. For example, if a plurality of entries each having an attribute value of a first attribute associated with an attribute value of a second attribute are stored in the recording medium, the CPU 1212 determines that the attribute value of the first attribute is specified. search the plurality of entries for an entry that matches the condition, read the attribute value of the second attribute stored in the entry, and thereby associate it with the first attribute that satisfies the predetermined condition. an attribute value of the second attribute obtained.

上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ1200上またはコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。 The programs or software modules described above may be stored in a computer-readable storage medium on or near computer 1200 . Also, a recording medium such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet can be used as a computer-readable storage medium, whereby the program can be transferred to the computer 1200 via the network. offer.

コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよい。その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(RTM)ディスク、メモリスティック、集積回路カード等が含まれてよい。 A computer-readable medium may include any tangible device capable of storing instructions for execution by a suitable device. As a result, a computer-readable medium having instructions stored thereon provides an article of manufacture that includes instructions that can be executed to create means for performing the operations specified in the flowchart or block diagram. Examples of computer-readable media may include electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, and the like. More specific examples of computer readable media include floppy disks, diskettes, hard disks, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), Electrically Erasable Programmable Read Only Memory (EEPROM), Static Random Access Memory (SRAM), Compact Disc Read Only Memory (CD-ROM), Digital Versatile Disc (DVD), Blu-ray (RTM) Disc, Memory Stick, Integration Circuit cards and the like may be included.

コンピュータ可読命令は、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードの何れかを含んでよい。ソースコードまたはオブジェクトコードは、従来の手続型プログラミング言語を含む。従来の手続型プログラミング言語は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語または同様のプログラミング言語でよい。コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供されてよい。プロセッサまたはプログラマブル回路は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。 The computer readable instructions may comprise either source code or object code written in any combination of one or more programming languages. Source code or object code includes conventional procedural programming languages. Traditional procedural programming languages include assembler instructions, Instruction Set Architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or Smalltalk, JAVA, C++. etc., and the "C" programming language or similar programming languages. Computer readable instructions may be transferred to a processor or programmable circuitry of a general purpose computer, special purpose computer, or other programmable data processing apparatus, either locally or over a wide area network (WAN), such as a local area network (LAN), the Internet, or the like. ) may be provided via A processor or programmable circuit may execute computer readable instructions to produce means for performing the operations specified in the flowcharts or block diagrams. Examples of processors include computer processors, processing units, microprocessors, digital signal processors, controllers, microcontrollers, and the like.

以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
Although the present invention has been described above using the embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments. It is obvious to those skilled in the art that various modifications and improvements can be made to the above embodiments. It is clear from the description of the scope of claims that forms with such modifications or improvements can also be included in the technical scope of the present invention.
The execution order of each process such as actions, procedures, steps, and stages in the devices, systems, programs, and methods shown in the claims, the specification, and the drawings is particularly "before", "before etc., and it should be noted that they can be implemented in any order unless the output of the previous process is used in the subsequent process. Regarding the operation flow in the claims, the specification, and the drawings, even if the description is made using "first,""next," etc. for the sake of convenience, it means that it is essential to carry out in this order. not a thing

10 システム
100 CPUモジュール
102 CPU
104 ドライバ/レシーバ
106 バスコントローラ
108 フラッシュメモリ
110 プログラムメモリ
112 データメモリ
150 ユーザアプリケーションプログラム
152 データ処理
154 基本システム
156 アプリケーションスケジューラ
158 帯域管理層
162 ハードウェア
200 機能モジュール
250,350 被制御装置
300 I/Oモジュール
400 管理装置
602 診断初期化
608 蓄積処理
610 診断処理
612 前処理
614 解析処理
616 判定処理
618 通知処理
620 診断モデル生成初期化
624 モデル生成用データ蓄積処理
628 生成処理
630 更新処理
702,710 時系列データ収集開始指令
704,712 入力処理
706 制御処理
1200 コンピュータ
1210 ホストコントローラ
1212 CPU
1214 RAM
1220 入力/出力コントローラ
1222 通信インタフェース
1230 ROM
10 system 100 CPU module 102 CPU
104 driver/receiver 106 bus controller 108 flash memory 110 program memory 112 data memory 150 user application program 152 data processing 154 basic system 156 application scheduler 158 bandwidth management layer 162 hardware 200 functional modules 250, 350 controlled device 300 I/O module 400 Management device 602 Diagnosis initialization 608 Accumulation processing 610 Diagnosis processing 612 Preprocessing 614 Analysis processing 616 Judgment processing 618 Notification processing 620 Diagnostic model generation initialization 624 Model generation data accumulation processing 628 Generation processing 630 Update processing 702, 710 Time-series data collection start commands 704, 712 input processing 706 control processing 1200 computer 1210 host controller 1212 CPU
1214 RAM
1220 input/output controller 1222 communication interface 1230 ROM

Claims (14)

一サイクル内の第1期間内でアプリケーションプログラムのタスクを実行し、前記一サイクル内の第2期間内で前記アプリケーションプログラム以外のタスクを実行する実行部を備え、
前記実行部は、
前記第1期間内で、診断対象の状態を示す時系列データの入力を受け付ける入力処理を実行し、
前記第2期間内で、前記入力処理により受け付けられた前記時系列データを記憶部に蓄積させる蓄積処理、及び前記蓄積処理で前記記憶部に蓄積された前記時系列データに基づいて前記診断対象の状態を診断する診断処理の少なくとも一部を実行する、プログラマブルコントローラ。
an execution unit that executes a task of an application program within a first period of one cycle and executes a task other than the application program within a second period of the one cycle;
The execution unit
executing an input process for accepting input of time-series data indicating a state of a diagnostic target within the first period;
Accumulation processing for accumulating the time-series data accepted by the input processing in a storage unit within the second period; A programmable controller that performs at least a portion of diagnostic processing for diagnosing conditions.
前記実行部は、複数のサイクルに亘って、それぞれのサイクルの第2期間内で、前記蓄積処理及び前記診断処理を実行することで、前記複数のサイクルで前記診断対象の状態の一回の診断を実行する、請求項1に記載のプログラマブルコントローラ。 The execution unit executes the accumulation process and the diagnosis process within a second period of each cycle over a plurality of cycles, thereby diagnosing the state of the diagnosis target once in the plurality of cycles. 2. The programmable controller of claim 1, which performs 前記診断処理は、
前記蓄積処理により前記記憶部に予め定められた量の前記時系列データが蓄積されると、前記予め定められた量の前記時系列データを診断するためのデータ形式に変換する前処理と、
前記前処理で処理された前記時系列データに基づいて多変量解析処理を実行する解析処理と、
前記解析処理の解析結果に基づいて前記診断対象の状態が正常か否かを判定する判定処理と
を含む、請求項1または2に記載のプログラマブルコントローラ。
The diagnostic process includes:
when a predetermined amount of the time-series data is accumulated in the storage unit by the accumulation process, pre-processing for converting the predetermined amount of the time-series data into a data format for diagnosis;
Analysis processing for executing multivariate analysis processing based on the time-series data processed in the preprocessing;
The programmable controller according to claim 1 or 2, further comprising a determination process for determining whether the state of said diagnosis target is normal based on the analysis result of said analysis process.
前記実行部は、前記第2期間内で、前記時系列データのうち前記診断対象の状態が正常であることを示す時系列データに基づいて前記解析処理で利用される診断モデルを生成する生成処理を実行する、請求項3に記載のプログラマブルコントローラ。 The execution unit performs generation processing for generating a diagnostic model used in the analysis processing based on time-series data indicating that the state of the diagnosis target is normal among the time-series data within the second period. 4. The programmable controller of claim 3, which performs 前記実行部は、前記第2期間内の前記解析処理が実行されていない間に、前記生成処理により生成された診断モデルで、前記解析処理で利用される診断モデルを更新する更新処理を実行する、請求項4に記載のプログラマブルコントローラ。 The execution unit performs an update process of updating the diagnostic model used in the analysis process with the diagnostic model generated by the generation process while the analysis process is not performed within the second period. 5. The programmable controller of claim 4. 前記実行部は、前記更新処理を、前記前処理の開始前に実行する、請求項5に記載のプログラマブルコントローラ。 The programmable controller according to claim 5, wherein said execution unit executes said update processing before starting said preprocessing. 前記実行部は、前記第1期間内で、前記診断対象に関係する被制御装置に対する制御処理を実行し、
前記診断処理は、前記判定処理による判定結果を前記制御処理に通知する通知処理を含む、請求項3から6の何れか1つに記載のプログラマブルコントローラ。
The execution unit executes control processing for a controlled device related to the diagnosis target within the first period,
7. The programmable controller according to any one of claims 3 to 6, wherein said diagnosis processing includes notification processing for notifying said control processing of a determination result of said determination processing.
前記蓄積処理及び前記診断処理は、少なくとも1つのファンクションブロックで構成される、請求項1から7の何れか1つに記載のプログラマブルコントローラ。 8. The programmable controller according to any one of claims 1 to 7, wherein said accumulation processing and said diagnosis processing are configured by at least one function block. 一サイクル内で占める前記第1期間及び前記第2期間のそれぞれの割合を特定する情報を受け付ける受付部をさらに備え、
前記実行部は、前記情報に基づいて、前記第1期間及び前記第2期間の長さを調整する、請求項1から8の何れか1つに記載のプログラマブルコントローラ。
Further comprising a reception unit that receives information specifying the ratio of each of the first period and the second period occupied within one cycle,
The programmable controller according to any one of claims 1 to 8, wherein said execution unit adjusts lengths of said first period and said second period based on said information.
前記診断処理は、予め定められたサイクル数内に、前記診断対象の状態の一回の診断を完了できなかった場合、その旨のメッセージを出力する出力処理を含む、請求項9に記載のプログラマブルコントローラ。 10. The programmable device according to claim 9, wherein said diagnosis processing includes output processing for outputting a message to that effect if one diagnosis of said state to be diagnosed cannot be completed within a predetermined number of cycles. controller. 前記実行部は、前記メッセージに応じて、一サイクル内で占める前記第2期間の割合が増加するように、前記第1期間及び前記第2期間の長さを調整する、請求項10に記載のプログラマブルコントローラ。 11. The executing unit according to the message, according to claim 10, adjusts the lengths of the first period and the second period so that a ratio of the second period within one cycle increases. programmable controller. 前記アプリケーションプログラム以外のタスクは、前記プログラマブルコントローラを管理する管理装置との間のデータ通信処理のタスクを含む、請求項1から11の何れか1つに記載のプログラマブルコントローラ。 12. The programmable controller according to any one of claims 1 to 11, wherein tasks other than said application program include tasks of data communication processing with a management device that manages said programmable controller. プログラマブルコントローラを制御する制御方法であって、
一サイクル内の第1期間内でアプリケーションプログラムのタスクを実行し、前記一サイクル内の第2期間内で前記アプリケーションプログラム以外のタスクを実行する実行段階を備え、
前記実行段階は、
前記第1期間内で、診断対象の状態を示す時系列データの入力を受け付ける入力処理を実行する段階と、
前記第2期間内で、前記入力処理により受け付けられた前記時系列データを記憶部に蓄積させる蓄積処理、及び前記蓄積処理で前記記憶部に蓄積された前記時系列データに基づいて前記診断対象の状態を診断する診断処理の少なくとも一部を実行する段階とを含む、制御方法。
A control method for controlling a programmable controller,
an execution step of executing a task of an application program within a first period within one cycle and executing a task other than the application program within a second period of said one cycle;
The execution step includes:
executing an input process for receiving input of time-series data indicating a state of a diagnostic target within the first period;
Accumulation processing for accumulating the time-series data accepted by the input processing in a storage unit within the second period; and performing at least a portion of a diagnostic process for diagnosing the condition.
プログラマブルコントローラとしてコンピュータを機能させるためのプログラムであって、
一サイクル内の第1期間内でアプリケーションプログラムのタスクを実行し、前記一サイクル内の第2期間内で前記アプリケーションプログラム以外のタスクを実行する実行段階を前記コンピュータに実行させ、
前記実行段階は、
前記第1期間内で、診断対象の状態を示す時系列データの入力を受け付ける入力処理を実行する段階と、
前記第2期間内で、前記入力処理により受け付けられた前記時系列データを記憶部に蓄積させる蓄積処理、及び前記蓄積処理で前記記憶部に蓄積された前記時系列データに基づいて前記診断対象の状態を診断する診断処理の少なくとも一部を実行する段階とを含む、プログラム。
A program for making a computer function as a programmable controller,
causing the computer to execute an execution step of executing a task of an application program within a first period of one cycle and executing a task other than the application program within a second period of one cycle;
The execution step includes:
executing an input process for receiving input of time-series data indicating a state of a diagnostic target within the first period;
Accumulation processing for accumulating the time-series data accepted by the input processing in a storage unit within the second period; and performing at least part of a diagnostic process for diagnosing the condition.
JP2021136445A 2021-08-24 2021-08-24 Programmable controller, control method, and program Pending JP2023031000A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021136445A JP2023031000A (en) 2021-08-24 2021-08-24 Programmable controller, control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021136445A JP2023031000A (en) 2021-08-24 2021-08-24 Programmable controller, control method, and program

Publications (1)

Publication Number Publication Date
JP2023031000A true JP2023031000A (en) 2023-03-08

Family

ID=85414324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021136445A Pending JP2023031000A (en) 2021-08-24 2021-08-24 Programmable controller, control method, and program

Country Status (1)

Country Link
JP (1) JP2023031000A (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018181315A (en) * 2017-04-07 2018-11-15 オムロン株式会社 Control device, control method, and control program
JP2020101904A (en) * 2018-12-20 2020-07-02 オムロン株式会社 Control device and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018181315A (en) * 2017-04-07 2018-11-15 オムロン株式会社 Control device, control method, and control program
JP2020101904A (en) * 2018-12-20 2020-07-02 オムロン株式会社 Control device and program

Similar Documents

Publication Publication Date Title
JP6903976B2 (en) Control system
JP6406466B1 (en) Control device, control method, and control program
US11301294B2 (en) Control device, control method, and control program
EP2849006B1 (en) Control system simulation system and method
CN112673327B (en) Control device and computer-readable storage medium
US9665089B2 (en) Method and apparatus for advanced control using function blocks in industrial process control and automation systems
CN108693822B (en) Control device, storage medium, control system, and control method
CN112240784A (en) Abnormality determination device and abnormality determination system
CN112673326B (en) Control device and storage medium
WO2021111936A1 (en) Prediction system, information processing device, and information processing program
WO2022030041A1 (en) Prediction system, information processing device, and information processing program
CN117950380B (en) MES-driven station terminal production process control system and method
US20230359487A1 (en) Control device, non-transitory computer-readable medium, and control method
CN116894544A (en) Data collection device, recording medium, and method
JP2023031000A (en) Programmable controller, control method, and program
JP7749952B2 (en) Control system, model generation method, and model generation program
US20240386293A1 (en) Prediction system, information processing device, and non-transitory information recording medium with computer-readable information processing program recorded thereon
JP7695368B2 (en) Diagnostic device and recording medium having a program recorded thereon
JP5844013B1 (en) Functional unit, analog input unit, programmable controller system
JP7676986B2 (en) Information processing device, model generation program, and model generation method
TWI843084B (en) Control system, information processing method and information processing device
KR20250030144A (en) Automatic rollback system and control method using live twin technology and legacy data
CN116736804A (en) Control method, device, equipment and storage medium of nonstandard equipment
WO2020166004A1 (en) Control system, programmable logic controller, method, and program
Deschamps et al. MODELS OF KNOWLEDGE ON MANUFACTURING SYSTEMS FOR CONTROL LAW SYNTHESIS

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240712

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250410

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20250826