JP7694489B2 - Control device, control system, control method, and control program - Google Patents
Control device, control system, control method, and control program Download PDFInfo
- Publication number
- JP7694489B2 JP7694489B2 JP2022111401A JP2022111401A JP7694489B2 JP 7694489 B2 JP7694489 B2 JP 7694489B2 JP 2022111401 A JP2022111401 A JP 2022111401A JP 2022111401 A JP2022111401 A JP 2022111401A JP 7694489 B2 JP7694489 B2 JP 7694489B2
- Authority
- JP
- Japan
- Prior art keywords
- application
- applications
- reliability
- calculation
- output
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41865—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Program control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/002—Error detection; Error correction; Monitoring protecting against parasitic influences, e.g. noise, temperatures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking using middleware or operating system [OS] functionalities
- G06F11/1484—Generic software techniques for error detection or fault masking using middleware or operating system [OS] functionalities involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/187—Voting techniques
- G06F11/188—Voting techniques where exact match is not required
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24187—Redundant processors run identical programs
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32252—Scheduling production, machining, job shop
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Manufacturing & Machinery (AREA)
- Hardware Redundancy (AREA)
- Testing And Monitoring For Control Systems (AREA)
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
- Debugging And Monitoring (AREA)
- Safety Devices In Control Systems (AREA)
Description
本発明は、制御装置、制御システム、制御方法、及び制御プログラムに関する。 The present invention relates to a control device, a control system, a control method, and a control program.
石油、石油化学、化学、ガスなどを用いた各種プラントでは、バルブの開け閉めの制御や温度を一定に保つ制御といった様々な制御が制御システムにより行われる。そのため、制御システムには制御対象に応じた信頼性の確保が求められる。 In various plants that use oil, petrochemical, chemical, gas, etc., control systems perform various controls such as opening and closing valves and maintaining a constant temperature. For this reason, control systems must ensure reliability according to the object they are controlling.
制御装置の機能は、CPU(Central Processing Unit:中央処理装置)やメモリ等のハードウェアと、コントローラアプリケーション等のソフトウェアとから構成されるのが一般的である。コントローラアプリケーションやコントローラとは、制御アプリケーションのことであり、以後、まとめて「コントローラ」と呼ぶ。また、制御装置では、コントローラ以外のアプリケーションも動作する。以後それらを「APP(Application)」と呼ぶ。また、コントローラ及びAPPを合わせて、アプリケーションと呼ぶ。 The functions of a control device are generally composed of hardware such as a CPU (Central Processing Unit) and memory, and software such as a controller application. A controller application or controller is a control application, and hereafter they will be collectively referred to as a "controller." In addition, applications other than the controller can also run on a control device. These will be hereafter referred to as "APPs (Applications)." Furthermore, controllers and APPs will be collectively referred to as applications.
制御装置では、ハードウェア上の仮想環境でアプリケーションが動作する場合もあり、その場合、OS(Operating System)や仮想ハードウェアの上で複数のVM(Virtual Machine)が動作し、各VM上でアプリケーションが動作する構成などがとられる。VMは、ゲストOSやコンテナなどと呼ばれる仮想的なOS環境を提供する。 In some cases, applications run in a virtual environment on the hardware of the control device. In such cases, multiple VMs (Virtual Machines) run on the OS (Operating System) or virtual hardware, and applications run on each VM. The VMs provide a virtual OS environment, known as a guest OS or container.
制御装置では、ハードウェア又はソフトウェアのどちらが不具合を起こしても動作に支障をきたす。そこで、複数のコントローラで所定の演算を実行して出力し、選択処理部においてそれぞれの演算値から1つの出力値を選択することによって、信頼性を高めつつコストを抑制する制御システムが提案されている(特許文献1)。 In a control device, if either the hardware or software malfunctions, operation will be impaired. Therefore, a control system has been proposed that increases reliability while reducing costs by having multiple controllers execute and output predetermined calculations, and then selecting one output value from each calculation value in a selection processing unit (Patent Document 1).
さらに、ソフトウェアの観点での不具合として、メモリリークと呼ばれる現象が発生する場合がある。メモリリークとは、例えばアプリケーションにプログラム的なバグがあることにより、OSにメモリ領域取得要求をかけた後に、そのメモリの解放が実行されないといった現象である。メモリリークが繰り返し発生することで、OSが保持するメモリ資源が枯渇し、OSとそのOS上で動作する全てのアプリケーションの動作が不安定になるおそれがある。 Furthermore, from a software perspective, a phenomenon known as a memory leak can occur. A memory leak is, for example, a program bug in an application that causes a memory area request to be made to the OS, but the memory is not released. Repeated memory leaks can cause the memory resources held by the OS to become depleted, leading to unstable operation of the OS and all applications running on that OS.
そこで、例えば仮想環境下でアプリケーションが動作する制御システムであれば、メモリリークによる不安定状態を解消するために、ゲストOS又はコンテナなどの仮想マシンとアプリケーションとの再起動が行われる。しかし、メモリリークが発生してから再起動するまでの不安定な動作は可能であれば発生させないことが好ましい。これは、アプリケーションが中途半端に不安定な動作をし続けた場合に、アプリケーション間干渉防止処理部の動作により完全に影響を抑え込めない可能性があることが理由である。そこで、メモリリークによって動作が不安定になる前に予防保全的にアプリケーションを再起動することによって、エラーの発生を防ぐことが考えられる。 For example, in a control system in which applications run in a virtual environment, the guest OS or virtual machine, such as a container, and the application are restarted to resolve the unstable state caused by the memory leak. However, it is preferable to avoid unstable operation between the occurrence of a memory leak and the restart, if possible. This is because if an application continues to operate in an unstable manner, there is a possibility that the impact cannot be completely suppressed by the operation of the inter-application interference prevention processing unit. Therefore, it is possible to prevent errors from occurring by restarting the application as a preventive maintenance measure before operation becomes unstable due to a memory leak.
このようなメモリリーク対策の技術として、メモリリークを起こすソフトウェアの再起動を実行し、且つ、サービスを提供するプロセスを複数動作させて、一部のプロセスを再起動させた状態でもサービスの継続を可能とする技術が提案されている(特許文献2)。 As a technique for dealing with such memory leaks, a technique has been proposed that restarts the software causing the memory leak and also operates multiple processes that provide the service, allowing the service to continue even when some of the processes have been restarted (Patent Document 2).
しかしながら、メモリリークの状態によっては、複数のアプリケーションを同時に再起動させる可能性がある。その場合、複数のコントローラによるそれぞれの演算値から1つの出力値を選択する技術では、再起動されるアプリケーションの数によっては適切な選択が行われなくなるおそれがある。これに対して、メモリリークによる動作不安定が同時に発生することを回避する目的でリソースの割り当てを意図的に異なる値にすることが提案されている。しかし、メモリリークの発生度合いを正確に予測することは困難であり、最適なリソース割り当てを行うことは難しい。そのため、アプリケーションの動作不安定を回避して、制御システムの信頼性を向上させることは困難である。 However, depending on the state of the memory leak, there is a possibility that multiple applications will be restarted simultaneously. In such a case, the technology of selecting one output value from the respective calculation values by multiple controllers may not select an appropriate value depending on the number of applications being restarted. In response to this, it has been proposed to intentionally allocate resources to different values in order to avoid the simultaneous occurrence of operational instability due to memory leaks. However, it is difficult to accurately predict the occurrence of memory leaks, and it is difficult to perform optimal resource allocation. Therefore, it is difficult to avoid operational instability of applications and improve the reliability of the control system.
また、サービスを提供するプロセスを複数動作させたうえでメモリリークを起こすソフトウェアの再起動を実行する技術では、再起動により動作するプロセスが設定した数に満たない間は、高信頼なサービス提供することが困難である。また、この技術では、キュー部によりプロセス管理が行われているが、プロセス制御システムのようなリアルタイム性が重要な処理ではキュー管理が難しく、キュー部での管理が煩雑となるおそれがある。そのため、アプリケーションの動作不安定を回避して、制御システムの信頼性を向上させることは困難である。 In addition, with technology that runs multiple processes that provide a service and then restarts software that causes a memory leak, it is difficult to provide a highly reliable service as long as the number of processes running after the restart is less than the set number. In addition, with this technology, process management is performed by a queue unit, but queue management is difficult in processes where real-time performance is important, such as in process control systems, and there is a risk that management in the queue unit will become cumbersome. As a result, it is difficult to avoid unstable application operation and improve the reliability of the control system.
開示の技術は、アプリケーションの動作不安定を回避して、制御システムの信頼性を向上させる制御装置、制御システム、制御方法、及び制御プログラムを提供することを目的とする。 The disclosed technology aims to provide a control device, control system, control method, and control program that avoids unstable operation of applications and improves the reliability of the control system.
本願の開示する制御装置、制御システム、制御方法、及び制御プログラムの一つの態様において、制御装置は、以下の選択処理部及びアプリケーション管理部を有する。選択処理部は、所定演算を実行する複数のアプリケーションのそれぞれの演算結果を基に出力する演算結果を選択して出力する。アプリケーション管理部は、前記アプリケーションのいずれか一つ又はいくつかを再構築対象として、再構築対象以外の前記アプリケーションの演算により前記選択処理部による出力の信頼性を確保できるか否かを、前記アプリケーションが実行する前記所定演算に求められる信頼性に応じて判定ロジックを異ならせて判定し、前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行する。 In one aspect of the control device, control system, control method, and control program disclosed in the present application, the control device has the following selection processing unit and application management unit. The selection processing unit selects and outputs a calculation result to be output based on the calculation results of each of a plurality of applications that execute a specified calculation. The application management unit sets one or some of the applications as a reconstruction target, and determines whether or not the reliability of the output by the selection processing unit can be ensured by the calculation of the application other than the reconstruction target by changing the determination logic according to the reliability required for the specified calculation executed by the application , and performs reconstruction of the application to be reconstructed if the reliability can be ensured.
1つの側面では、本発明は、アプリケーションの動作不安定を回避して、制御システムの信頼性を向上させることができる。 In one aspect, the present invention can prevent instability in the operation of applications and improve the reliability of the control system.
以下に、本願の開示する制御装置、制御システム、制御方法、及び制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、同一の要素には同一の符号を付し、重複する説明は適宜省略し、各実施形態は、矛盾のない範囲内で適宜組み合わせることができる。 Below, examples of the control device, control system, control method, and control program disclosed in the present application are described in detail with reference to the drawings. Note that the present invention is not limited to these examples. In addition, the same elements are given the same reference numerals, duplicated descriptions are omitted as appropriate, and each embodiment can be appropriately combined within a range that does not cause inconsistencies.
[実施の形態1]
[全体構成]
図1は、制御システムの一例を示す概略図である。図1に示す制御システム1は、センサ20及び駆動装置30とネットワークを介して接続される。制御システム1は、例えばプラントの工業プロセス40の制御等に使用される。本明細書において、プラントは、化学等の工業プラント、ガス田もしくは油田等の井戸元又はその周辺を管理制御するプラント、水力・火力・原子力等の発電を管理制御するプラント、太陽光や風力等の環境発電を管理制御するプラント、及び上下水やダム等を管理制御するプラント等を含む。
[First embodiment]
[Overall configuration]
Fig. 1 is a schematic diagram showing an example of a control system. The control system 1 shown in Fig. 1 is connected to a
センサ20は、工業プロセス40に設けられ、工業プロセス40における物理量の測定を行う。センサ20は、測定対象の物理量を測定信号として、制御システム1の入力装置11へネットワーク経由で送信する。本明細書において、センサ20は、例えば、圧力計、流量計、温度センサ等のセンサ機器、プラント内の異音等を収集するマイクや各機器の位置情報を出力する位置検出機器及びプラント内の状況や対象物を撮影するカメラやビデオ等の撮像機器等を含む。
The
駆動装置30は、出力装置12から制御信号の入力を受け付けると、制御信号に応じて工業プロセス40を駆動する。また、駆動装置30は、流量制御弁や開閉弁等のバルブ機器、ファンやモータ等の操作音及び警報音等を発したりするスピーカ等の音響機器等を含む。
When the
制御システム1は、図1に示すように、制御装置10、入力装置11及び出力装置12を備える。制御装置10は、ネットワークを介して入力装置11及び出力装置12に接続される。
As shown in FIG. 1, the control system 1 includes a
入力装置11は、センサ20から測定信号の入力を受ける。そして、入力装置11は、受信した信号を制御装置10へ送信する。
The
出力装置12は、制御装置10から送信された制御信号を受信する。そして、出力装置12は、受信した制御信号を駆動装置30へ出力する。駆動装置30は、制御信号に応じて工業プロセス40を操作する。ここで、入力装置11と出力装置12とは、ハードウェアとして一体であってもよい。
The
[制御装置の構成]
制御装置10は、入力装置11から入力された測定信号に基づいて、所定の演算処理を行い、ネットワーク経由で演算結果に応じた制御信号を出力装置12へ出力する。制御装置10は、例えばコンピュータ装置により構成される。制御装置10は、分散制御システム(Distributed Control Systems:DCS)に含まれてもよい。制御装置10は、入力装置11から入力された測定信号について、所定のアルゴリズムで演算処理を行い、制御信号を生成する。制御装置10の機能は、CPUやメモリ等のハードウェア110と、OS120、VM131~133、コントローラ141~143及びAPP151~153を含むソフトウェアから構成される。以下の説明では、VM131~133のそれぞれを区別しない場合、まとめて「VM130」と記載する。また、コントローラ141~143のそれぞれを区別しない場合、まとめて「コントローラ140」と記載する。また、APP151~153のそれぞれを区別しない場合、まとめて「APP150」と記載する。
[Configuration of the control device]
The
制御装置10は、メモリリークなどのソフトウェアエラーによりコントローラ140の不安定動作が発生した後に対処するのではなく、ソフトウェアエラーの影響が出るよりも前の段階でコントローラ140の再構築処理を行うことで不安定動作の発生を回避する。このように、不安定な動作をするコントローラ140の影響を抑え込むよりも、計画的にコントローラ140を再構築させたほうが、全体としてのソフトウェアエラーによる悪影響の排除は容易である。
The
制御装置10は、コントローラ140の再構築の実施にあたって、選択処理部160において正しい出力値の選択を維持継続するため、再構築中に制御システム1の信頼性を確保可能な数以上のコントローラ140が動作するように制御する。また、制御装置10は、以下に説明する簡単な仕組みによりコントローラ140の再起動や再インストールなどの再構築を行うことで、制御システム1の信頼性を担保する。以下の制御装置10の詳細について説明する。
When reconstructing the controllers 140, the
制御装置10は、ハードウェア110上でOS120を動作させる。OS120は、例えば、VM130がゲストOSの場合、ホストOSとして動作する。OS120は、新たなVM130及びコントローラ140の起動の指示をアプリケーション管理部170から受けると、VM130及びコントローラ140を新たに起動させる。
The
制御装置10は、OS120上で、仮想マシンである複数のVM131~133を動作させる。VM130は、ゲストOSやコンテナである。VM131~133のそれぞれは、コントローラ141~143及びAPP151~153を動作させる。
The
また、VM130は、それぞれがソフトウェアエラーの発生によりコントローラ140の動作に影響が出そうな時期が近いことを予測する。すなわち、仮想マシンである複数のVM130は、所定演算を実行する個別のアプリケーションであるコントローラ140を各々が動作させ、且つ、動作させるコントローラ140における障害発生を予測する。 In addition, each VM 130 predicts that a software error will soon occur that will affect the operation of the controller 140. In other words, the multiple VMs 130, which are virtual machines, each operate a controller 140, which is an individual application that executes a specific calculation, and predict the occurrence of a fault in the controller 140 that they operate.
例えば、VM130は、自己のメモリ使用量の増加を検出してメモリリークによりコントローラ140の動作に影響が出る時期が近いことを予測する。他にも、例えば、ソフトウェアエラーには、OS120へのセキュリティパッチ適用等による不安定動作も含まれる。また、VM130は、宇宙線などによるビットエラーといったソフトエラーの発生によりコントローラ140の動作に影響が出そうな時期が近いことを予測してもよい。以下の説明では、ソフトウェアエラーを例に説明するが、VM130は、ソフトエラーについても同様に動作可能である。以下では、ソフトウェアエラーの発生によりコントローラ140の動作に影響が出そうな時期が近いことの予測を、「ソフトウェアエラーの予測」と呼ぶ。
For example, VM 130 detects an increase in its own memory usage and predicts that a memory leak will soon affect the operation of controller 140. Other examples of software errors include unstable operation due to the application of a security patch to
ここで、VM130によるソフトウェアエラーの予測方法に特に制限はない。例えば、VM130は、CPU(Central Processing Unit)の温度が閾値を超えた状態が一定時間以上になった場合に、ソフトウェアエラーを予測する。他にも、VM130は、制御装置10の稼働時間、コントローラ140を含むアプリケーションの稼働時間又は動作ステップ数などを用いてソフトウェアエラーを予測してもよい。さらに、VM130は、いずれか1つを用いてソフトウェアエラーの予測を行ってもよいし、複数の方法を組み合わせて用いてソフトウェアエラーの予測を行ってもよい。
Here, there are no particular limitations on the method by which VM130 predicts a software error. For example, VM130 predicts a software error when the temperature of the CPU (Central Processing Unit) exceeds a threshold for a certain period of time or longer. VM130 may also predict a software error using the operating time of the
VM130は、ソフトウェアエラーを予測した場合、自己が動作させるコントローラ140を再構築対象として、コントローラ140の再構築要求をアプリケーション管理部170に通知する。その後、VM130は、再構築の指示をアプリケーション管理部170から受けると、コントローラ140の再構築を実行する。
When a software error is predicted, the VM 130 designates the controller 140 operated by the VM 130 as the target for reconfiguration and notifies the
ここで、コントローラ140の再構築は、コントローラ140の演算処理機能を停止した後に再度コントローラ140の演算処理機能を復旧させることができればどの様な方法であってもよい。すなわち、コントローラ140の再構築には、そのコントローラ140を動作させるVM130の再起動、当該VM130を停止後に起動、及び、当該VM130の再インストールなどが含まれる。VM130を停止後に起動は、単なる再起動とは異なり、VM130をシャットダウンした後に起動させる処理を指す。この場合、メモリ内の情報は完全にクリアされる。また、VM130の再インストールの場合、VM130及びコントローラ140は初期状態からの再スタートとなる。ここで、コントローラ140は、「アプリケーション」の一例にあたる。すなわち、「アプリケーションの再構築」は、再起動、停止後の起動及び再インストールなどといった、アプリケーションの演算処理機能を停止した後に再度アプリケーションの演算処理機能を復旧させる動作にあたる。VM130の再起動によるコントローラ140の再起動及びVM130の停止後に起動によるコントローラ140の停止後に起動のそれぞれが、「停止及び起動」の一例にあたる。 Here, the reconstruction of the controller 140 may be any method as long as it can restore the arithmetic processing function of the controller 140 again after the arithmetic processing function of the controller 140 is stopped. In other words, the reconstruction of the controller 140 includes restarting the VM 130 that operates the controller 140, starting the VM 130 after stopping it, and reinstalling the VM 130. Starting the VM 130 after stopping it is different from simply restarting it, and refers to a process of starting the VM 130 after shutting it down. In this case, the information in the memory is completely cleared. Also, in the case of reinstalling the VM 130, the VM 130 and the controller 140 are restarted from the initial state. Here, the controller 140 is an example of an "application". In other words, "reconstruction of an application" is an operation of restoring the arithmetic processing function of an application again after stopping the arithmetic processing function of the application, such as restarting, starting after stopping, and reinstalling. Restarting the controller 140 by restarting the VM 130 and starting the controller 140 after stopping it by starting the VM 130 are each an example of "stopping and starting".
また、制御装置10は、VM130のそれぞれにおいて、コントローラ140及びAPP150を動作させる。APP150は、コントローラ140以外のアプリケーションである。本実施の形態に係る制御装置10は、VM130及びコントローラ140の組を3以上有する。なお、APP150は、コントローラ140が演算により算出する値の出力するタイミングを制御してもよい。
The
コントローラ140は、センサ20から入力された測定信号を、入力装置11を介して受信する。次に、コントローラ140は、センサ20から入力された測定信号に基づき、駆動装置30に対して適用されるべき値を算出する。すなわち、コントローラ140は、工業プロセス40に対する制御値を算出するための所定演算を実行するアプリケーションである。各コントローラ140は、例えば、入力された測定信号について所定のアルゴリズムで演算処理を行い、演算結果を出力する。各コントローラ140は、同一制御演算を実行する。同一制御演算とは、入力値が同じであり且つ正しい演算が行われた場合、まったく同じ演算結果が算出される演算である。
The controller 140 receives the measurement signal input from the
さらに、制御装置10は、ハードウェア110上で動作する選択処理部160を有する。なお、本実施の形態では選択処理部160がハードウェア110上で動作するとして説明するが、選択処理部160は、OS120上で動作してもよい。本実施形態において、選択処理部160は、ソフトウェアにより構成される。この場合、選択処理部160は、例えば、ハードウェア110上に専用のファームウェアで構築されてよい。
The
選択処理部160は、各コントローラ140の動作を管理する。そして、選択処理部160は、アプリケーション管理部170からの要求を受けて、同一制御演算を実行するコントローラ140の総数をアプリケーション管理部170に通知する。
The
また、選択処理部160は、各コントローラ140により算出されたそれぞれの演算値の入力をコントローラ140から受ける。ここで、図1では、図示の都合上、コントローラ143から選択処理部160へ延びる通信経路を記載したが、他のコントローラ140からも同様に選択処理部160へ通信経路が延びる。
The
選択処理部160は、各コントローラ140により算出された演算値に基づいて出力値を選択する。具体的には、選択処理部160は、各コントローラ140から出力された演算値の中から1つの演算値を出力値として選択する。その後、選択処理部160は、選択した出力値に基づく制御信号を出力装置12へ出力する。この制御信号が駆動装置30へ送信されることで、制御信号に応じた駆動装置30による工業プロセス40の操作が行われる。このように、選択処理部160は、工業プロセス40に対する制御値を算出するための所定演算を実行する複数のコントローラ140のそれぞれの演算結果を基に出力する演算結果を選択して出力する。
The
例えば、センサ20が流量を測定するセンサであり、駆動装置30は配管に取り付けられ、当該配管に流れる流体の流量を制御するバルブの開度を調整するアクチュエータにより構成されている場合で説明する。この場合、センサ20で測定された流量に関する情報の信号が、制御装置10に入力される。選択処理部160は、複数のコントローラ140のそれぞれが取得した流量に関する情報に基づきアクチュエータに出力すべき値を演算した演算結果を演算値として取得する。次に、選択処理部160は、取得した演算値のうちの1つの演算値を出力値として選択する。その後、選択処理部160は、選択された出力値に基づく制御信号を出力装置12出力する。その後、駆動装置30が制御信号を受信すると、出力値に基づいて配管に流れる流体の流量が調整される。
For example, the
選択処理部160による演算値の選択処理についてさらに詳細に説明する。選択処理部160は、複数のコントローラ140から出力された演算値の中から、多数決ロジックにより出力値とする演算値を選択する。すなわち、選択処理部160は、複数のコントローラ140から出力された演算値のうち、同一の値が最も多く出力された演算値を出力値として選択する。もしくは、選択処理部160は、複数のコントローラ140から出力された演算値のうち、同一の値が半数以上のコントローラ140から出力された演算値を出力値として選択してもよい。ここで、同一の値としては、完全に値が一致していなくても、予め決められた許容差範囲内であれば、同一とみなしてもよい。許容差範囲としては、例えば、±1%以内など運用に応じて適切な値が設定されることが好ましい。さらに、許容範囲内にある演算値が複数ある場合、選択処理部160は、例えば、複数の演算値の平均値を算出して出力値として出力してもよい。他にも、選択処理部160は、許容範囲内にある演算値が3つ以上で存在する場合、中央値を算出して出力値として出力してもよい。このように、許容範囲内にある複数の演算値を代表する値を算出して出力値とすることができれば、選択処理部160は、他の方法により出力値を決定してもよい。
The selection process of the calculation value by the
例えば、コントローラ140が3つ存在する場合、選択処理部160は、3つのコントローラ140からそれぞれ出力された演算値を取得する。ここで、いずれか2つのコントローラ140が同一の演算値を出力し、他の1つのコントローラ140が別の演算値を出力している場合について説明する。この場合、選択処理部160は、2つのコントローラ140が出力した演算値が最も多く出力された演算値であるため、当該演算値を出力値として選択する。
For example, if there are three controllers 140, the
選択処理部160は、各コントローラ140から入力された演算値から多数決ロジックで1つの出力値を選択することで、VM130の一部又はコントローラ140の一部に異常が発生している場合であっても、正常とみなせる演算値を出力することができる。そのため、制御装置10は、正常とみなせる出力値を継続して出力することができ、駆動装置30を正常に駆動させることができる。ただし、選択処理部160が正常とみなせる演算値を得るといった信頼性を確保するためには、多数決ロジックによって信頼性を確保できる最低限のコントローラ140の数以上のコントローラ140が動作することが好ましい。
The
また、選択処理部160は、コントローラ140の総数及び同一制御演算を実行するコントローラ140の数などを管理する。選択処理部160は、新しいコントローラ140からの出力を受信した場合、同一制御演算を実行させるコントローラ140の数を1つ増やす。逆に、値の比較等でコントローラ140の異常を検知した場合、選択処理部160は、同一制御演算を実行するコントローラ140の数を1つ減らす。
The
さらに、制御装置10は、ハードウェア110上で動作するアプリケーション管理部170を有する。ここで、図1では、選択処理部160とアプリケーション管理部170とを別個に図示したが、アプリケーション管理部170は、選択処理部160の機能の一部として選択処理部160に含まれてもよい。
The
アプリケーション管理部170は、VM130及びコントローラ140を含むアプリケーションの実行中及び停止中といった動作状態を管理する。さらに、アプリケーション管理部170は、VM130の起動、停止、再起動などの動作の指示を行う。また、アプリケーション管理部170は、コントローラ140の再構築を行う際に、再構築の可否の判定を行い、再構築が可能な場合にコントローラ140の再構築を実行させる。
The
具体的には、アプリケーション管理部170は、ソフトウェアエラーの予測の通知をVM130から受けた場合、通知元のVM130を対象として、そのVM130が動作させるコントローラ140の再構築の可否の判定を行う。また、アプリケーション管理部170は、VM130やコントローラ140の状態が所定条件に達した場合、その所定条件に達したVM130が動作させるコントローラ140又は所定条件に達したコントローラ140を再構築対象として、再構築の可否を判定する。所定条件に達したとは、例えば、VM130の稼働時間が所定時間を超えた場合などである。
Specifically, when the
ここで、アプリケーション管理部170は、システム環境によって、所定条件に基づいて再起動対象を特定するための基準を変化させることができる。例えば、アプリケーション管理部170は、各VM130に割り当てられたメモリサイズにより、特定のコントローラ140を再構築対象とする判断基準である稼働時間を変化させる。すなわち、アプリケーション管理部170は、搭載メモリサイズと係数とを乗算して所定条件における判定基準である稼働時間を算出する。例えば、VM130に割り当てられたメモリサイズが4GBの場合、アプリケーション管理部170は、所定条件における判定基準である稼働時間を4×1日=4日と算出する。また、VM130に割り当てられたメモリサイズが8GBの場合、アプリケーション管理部170は、所定条件における判定基準である稼働時間を8×1日=8日と算出する。
Here, the
再構築要求をVM130から受けた場合及び再起動対象のコントローラ140を自ら決定した場合のいずれの場合も、アプリケーション管理部170は、以下の再構築の可否の判定処理を実行する。以下に、アプリケーション管理部170による再構築の可否の判定処理の詳細について説明する。
In either case, when a reconfiguration request is received from the VM 130 or when the
アプリケーション管理部170は、同一制御演算を実行するコントローラ140の総数を選択処理部160から取得する。次に、アプリケーション管理部170は、同一制御演算を実行するコントローラ140の総数から、再構築対象のコントローラ140の数を減算して、再構築中に稼働する同一制御演算を実行するコントローラ140の数を算出する。以下では、再構築中に稼働する同一制御演算を実行するコントローラ140を、「再構築中に稼働するコントローラ140」と呼ぶ。そして、アプリケーション管理部170は、再構築中に稼働するコントローラ140により、制御システム1の信頼性を確保できるか否かを判定する。制御システム1の信頼性を確保できるとは、選択処理部160が多数決ロジックで正しいと思われる演算値を選択する信頼性を確保できることである。すなわち、制御システム1の信頼性が確保できれば、制御装置10が駆動装置30を正常に駆動させることができる。
The
例えば、アプリケーション管理部170は、再構築中に稼働するコントローラ140の数が、同一制御演算を実行するコントローラ140の元の総数の過半数以上であれば、制御システム1の信頼性を確保できると判定する。ここで、同一制御演算を実行するコントローラ140の総数が5つの場合を例に説明する。再構築対象のコントローラ140の数が1つであれば、アプリケーション管理部170は、再構築中に稼働するコントローラ140の数が4で元の総数の過半数以上であることから、制御システム1の信頼性を確保できると判定する。これに対して、再構築対象のコントローラ140の数が3つであれば、アプリケーション管理部170は、再構築中に稼働するコントローラ140の数が2で元の総数の過半数未満であることから、制御システム1の信頼性を確保困難である判定する。
For example, if the number of controllers 140 operating during reconstruction is more than half of the original total number of controllers 140 executing the same control operation, the
制御システム1の信頼性を確保できると判定した場合、アプリケーション管理部170は、再構築対象のコントローラ140の再構築の実行が可能と判定する。そして、アプリケーション管理部170は、再構築対象のコントローラ140が動作する対象のVM130に、そのVM130が動作させるコントローラ140の再構築を指示する。すなわち、アプリケーション管理部170は、コントローラ140のいずれか一つまたはいくつかを再構築対象として、再構築対象以外のコントローラ140の演算により選択処理部160による出力値の信頼性を確保できるか否かを判定し、信頼性が確保できる場合に再構築対象のコントローラ140の再構築を実行する。また、アプリケーション管理部170は、VM130及びコントローラ140の動作状態を基に、各コントローラ140を再構築するか否かを決定し、再構築対象以外のコントローラ140の演算により信頼性を確保できるか否かを判定し、信頼性が確保できる場合に再構築対象のコントローラ140の再構築を実行する。
When it is determined that the reliability of the control system 1 can be ensured, the
これに対して、制御システム1の全体の信頼性を確保できないと判定した場合、アプリケーション管理部170は、再構築の実行を一定の再判定時間保留する。再判定時間は、例えば、1分とすることができる。再判定時間の経過後、アプリケーション管理部170は、再構築の可否の判定処理を再実行する。
In contrast, if it is determined that the overall reliability of the control system 1 cannot be ensured, the
再構築の可否の判定処理を繰り返す場合、アプリケーション管理部170は、一定の上限時間に達したか否かを判定する。上限時間は、例えば、5分とすることができる。上限時間を経過しても再構築が実行できない場合、アプリケーション管理部170は、OS120に新たなVM130及びコントローラ140の起動を指示する。そして、新たなコントローラ140が増えた後、アプリケーション管理部170は、新たなコントローラ140が加えられた同一制御演算を実行するコントローラ140の総数を選択処理部160から取得する。その後、アプリケーション管理部170は、取得した新たな総数を用いて、再構築の可否の判定処理を再度実行する。
When repeating the process of determining whether reconstruction is possible, the
ここで、アプリケーション管理部170が用いる再構築の可否の判定ロジックは、対象とするコントローラ140が実行する同一制御演算に求められる信頼性によって可変である。例えば、アプリケーション管理部170は、以下のように再起動の可否の判定ロジックを異ならせることができる。すなわち、コントローラ140が実行する同一制御演算に高信頼が求められる場合、アプリケーション管理部170は、過半数以上が稼働すれば(5台中3台が稼働するなどの状態)、制御システム1の全体の信頼性を確保でき、再起動を実行すると判定する。これに対して、コントローラ140が実行する同一制御演算に高信頼性が求められない場合、アプリケーション管理部170は、複数台が稼働すれば(5台中2台が稼働するなどの状態)、制御システム1の全体の信頼性を確保でき、再起動を実行すると判定する。
Here, the logic used by the
他にも、アプリケーション管理部170は、再構築中に稼働するコントローラ140の数に3以上などと最低数の条件を加えて、再起動の可否の判定を行ってもよい。ただし、再構築中に動作するコントローラ140の数は2台よりは3台、3台よりは4台の方が最終的に正しい出力を選択処理部160が選択できる可能性は高くなる。そこで、再構築中に動作するコントローラ140の最低数は、運用状態に合わせて設定されることが好ましい。
The
[再構築処理]
図2は、VMからの再構築要求に基づく再構築処理のフローチャートである。次に、図2を参照して、実施の形態1に係る制御装置10におけるVM130らの再構築要求に基づく再構築処理の流れを説明する。
[Reconstruction process]
2 is a flowchart of a reconstruction process based on a reconstruction request from a VM. Next, a flow of a reconstruction process based on a reconstruction request from the VM 130 in the
アプリケーション管理部170は、再構築要求をVM130から受信する(ステップS101)。
The
次に、アプリケーション管理部170は、同一制御演算を実行するコントローラ140の総数を選択処理部160から取得する(ステップS102)。
Next, the
次に、アプリケーション管理部170は、再構築要求の送信元である再構築対象のコントローラ140を停止しても制御システム1の信頼性が確保可能か否かを判定する(ステップS103)。
Next, the
再構築対象のコントローラ140を停止しても制御システム1の信頼性が確保可能な場合(ステップS103:肯定)、アプリケーション管理部170は、再構築対象のコントローラ140を動作させるVM130に再構築を指示する(ステップS104)。そして、アプリケーション管理部170は、再構築処理を終了する。
If the reliability of the control system 1 can be ensured even if the controller 140 to be rebuilt is stopped (step S103: Yes), the
これに対して、再構築対象のコントローラ140を停止すると制御システム1の信頼性の確保が困難な場合(ステップS103:否定)、アプリケーション管理部170は、予め決められた一定時間である再判定時間待機する(ステップS105)。
In contrast, if stopping the controller 140 to be rebuilt would make it difficult to ensure the reliability of the control system 1 (step S103: No), the
次に、アプリケーション管理部170は、再起動判定時間よりも長い予め決められた一定時間である上限時間が経過したか否かを判定する(ステップS106)。上限時間が経過していない場合(ステップS106:否定)、アプリケーション管理部170は、ステップS102へ戻る。
Next, the
これに対して、上限時間が経過した場合(ステップS106:肯定)、アプリケーション管理部170は、新たなVM130及びコントローラ140の起動をOS120に指示する(ステップS107)。その後、アプリケーション管理部170は、ステップS102へ戻る。
On the other hand, if the upper limit time has elapsed (step S106: Yes), the
図3は、アプリケーション管理部による再構築の決定に基づく再構築処理のフローチャートである。次に、図3を参照して、実施の形態1に係る制御装置10におけるアプリケーション管理部170による再構築の決定に基づく再構築処理の流れを説明する。
Figure 3 is a flowchart of the reconstruction process based on the decision to reconstruct by the application management unit. Next, the flow of the reconstruction process based on the decision to reconstruct by the
アプリケーション管理部170は、VM130やコントローラ140の稼働時間などから再構築対象のコントローラ140を決定する(ステップS201)。
The
次に、アプリケーション管理部170は、同一制御演算を実行するコントローラ140の総数を選択処理部160から取得する(ステップS202)。
Next, the
次に、アプリケーション管理部170は、再構築対象のコントローラ140を停止しても制御システム1の信頼性が確保可能か否かを判定する(ステップS203)。
Next, the
再構築対象のコントローラ140を停止しても制御システム1の信頼性が確保可能な場合(ステップS203:肯定)、アプリケーション管理部170は、再構築対象のコントローラ140を動作させるVM130に再構築を指示する(ステップS204)。そして、アプリケーション管理部170は、再構築処理を終了する。
If the reliability of the control system 1 can be ensured even if the controller 140 to be rebuilt is stopped (step S203: Yes), the
これに対して、再構築対象のコントローラ140を停止すると制御システム1の信頼性の確保が困難な場合(ステップS203:否定)、アプリケーション管理部170は、予め決められた一定時間である再判定時間待機する(ステップS205)。
In contrast, if stopping the controller 140 to be rebuilt would make it difficult to ensure the reliability of the control system 1 (step S203: No), the
次に、アプリケーション管理部170は、再起動判定時間よりも長い予め決められた一定時間である上限時間が経過したか否かを判定する(ステップS206)。上限時間が経過していない場合(ステップS206:否定)、アプリケーション管理部170は、ステップS202へ戻る。
Next, the
これに対して、上限時間が経過した場合(ステップS206:肯定)、アプリケーション管理部170は、新たなVM130及びコントローラ140の起動をOS120に指示する(ステップS207)。その後、アプリケーション管理部170は、ステップS202へ戻る。
On the other hand, if the upper limit time has elapsed (step S206: Yes), the
ここで、本実施例では、VM130やコントローラ140の状態が所定条件に達した場合にアプリケーション管理部170が再起動対象とするVM130を決定したが、再起動対象を決定する処理は各VM130が行ってもよい。その場合、VM130は、VM130やコントローラ140の状態が所定条件に達した場合もソフトウェアエラーの予測の場合と同様に、再起動対象としたVM130やコントローラ140の再起動の指示をアプリケーション管理部170に通知する。
In this embodiment, the
例えば、VM130は、自己が動作させるコントローラ140の稼働時間が自己に割り当てられたメモリサイズに対応した稼働時間閾値を超えたか否かを判定する。自己が動作させるコントローラ140の稼働時間が稼働時間閾値を超えた場合、VM130は、ソフトウェアエラーの発生を予測する。そして、VM130は、再構築要求をアプリケーション管理部170に通知する。この場合、アプリケーション管理部170は、VM130からの通知を基に再構築対象とするコントローラ140を決定して再構築の可否の判定処理を実行する。
For example, VM 130 determines whether the uptime of the controller 140 it operates has exceeded the uptime threshold corresponding to the memory size allocated to VM 130. If the uptime of the controller 140 it operates has exceeded the uptime threshold, VM 130 predicts the occurrence of a software error. VM 130 then notifies
[効果]
以上に説明したように、本実施の形態に係る制御システム1は、ソフトウェアエラーによりシステムの動作に影響がでることを予測して、そのソフトウェアエラーの予測がなされたコントローラ140を再構築対象とする。また、制御システム1は、VM130やコントローラ140の状態が所定条件に達した場合に、そのVM130やそのコントローラ140を再構築対象とする。そして、制御システム1は、再構築対象としたコントローラ140が停止してもシステムの信頼性が確保可能か否かを判定し、確保可能な場合に再構築対象のVM130の再構築を実行する。
[effect]
As described above, the control system 1 according to the present embodiment predicts that a software error will affect the operation of the system, and sets the controller 140 for which the software error has been predicted as a target for reconstructing. Furthermore, when the state of the VM 130 or the controller 140 reaches a predetermined condition, the control system 1 sets the VM 130 or the controller 140 as a target for reconstructing. Then, the control system 1 determines whether or not the reliability of the system can be ensured even if the controller 140 targeted for reconstructing stops, and if the reliability can be ensured, reconstructs the VM 130 targeted for reconstructing.
これにより、制御システム1は、メモリリークなどのソフトウェアエラーが実際に発生する前に、事前にコントローラ140を再構築することができ、ソフトウェアエラーによる制御動作の中断などの信頼性の低下を軽減することが可能となる。また、制御システム1は、コントローラ140の再構築中にも制御動作の継続など信頼性を確保することができるため、通常運用及び再構築処理を含むシステムの動作全体において信頼性を維持することが可能となる。したがって、アプリケーションの動作不安定を回避して、制御システム1の信頼性を向上させることが可能となる。 This allows the control system 1 to reconstruct the controller 140 in advance before a software error such as a memory leak actually occurs, making it possible to reduce a decrease in reliability, such as an interruption of control operation due to a software error. Furthermore, since the control system 1 can ensure reliability, such as the continuation of control operation, even while the controller 140 is being reconstructed, it is possible to maintain reliability throughout the entire operation of the system, including normal operation and reconstruction processing. Therefore, it is possible to avoid unstable application operation and improve the reliability of the control system 1.
(変形例)
上述した実施の形態1では、1つのハードウェア110上でシステム全体が稼働する構成で説明したが、システム構成はこれに限らない。
(Modification)
In the above-mentioned first embodiment, the configuration has been described in which the entire system runs on one piece of
例えば、ハードウェア110において複数のOS120が動作し、各OS120上で1つ又は複数のVM130が動作してもよい。また、ハードウェア110が複数存在し、それぞれで1つ又は複数のVM130が動作してもよい。その場合、いずれかのハードウェア110の選択処理部160及びアプリケーション管理部170が、複数のハードウェア110にまたがって演算値の選択処理やVM130の再構築を統括してもよい。
For example,
さらに、1つ又は複数のコントローラ140が、ハードウェア110から物理的に独立してもよい。また、ハードウェア110上で動作するコントローラ140と、物理的に独立したコントローラ140とが共存してもよい。また、アプリケーション管理部170及び選択処理部160が、VM130及びコントローラ140とは異なるハードウェア110上で動作してもよい。
Furthermore, one or more controllers 140 may be physically independent from the
図4は、実施の形態1の変形例に係る制御システムの構成の一例を示す図である。図4では、制御システム1は、2つの制御装置10を有する。さらに、制御システム1は、コントローラ専用ハードウェア401でコントローラ402が動作する物理コントローラ400を2つ有する。コントローラ402は、コントローラ140と同一制御演算を行なうことができる。また、物理コントローラ400以外にも、コントローラ402は、クラウドやネットワーク上のサーバに配置されてもよい。
FIG. 4 is a diagram showing an example of the configuration of a control system according to a modified example of the first embodiment. In FIG. 4, the control system 1 has two
この場合、2つの制御装置10のいずれかの選択処理部160及びアプリケーション管理部170が、全てのVM130、並びに、コントローラ140及び402の演算値の選択処理やVM130の再構築を行ってもよい。もしくは、異なる同一制御演算を行なう複数のグループにコントローラ140及び402が分けられる場合、グループ毎に担当する選択処理部160及びアプリケーション管理部170を割り当ててもよい。
In this case, the
ここで、再構築対象となったコントローラ140を動作させるVM130が他のVM130とは異なるOS120で動作する場合、コントローラ140の再構築には、OS120の再起動、OS120を停止した後に起動、及び、OS120の再インストールなどが含まれてもよい。
Here, if the VM 130 that runs the controller 140 to be rebuilt runs on an
[実施の形態2]
次に、実施の形態2について説明する。本実施の形態に係る制御装置10も、図1のブロック図で表される。本実施の形態に係る制御装置10は、動作の特異なコントローラ140を特定して再構築要求を行なう。以下の説明では、実施の形態1と同様の各部の動作については説明を省略する。
[Embodiment 2]
Next, a second embodiment will be described. A
選択処理部160は、演算値を各コントローラ140から受信する。そして、選択処理部160は、演算値の受信結果から動作の特異なコントローラ140を特定する。その後、選択処理部160は、特定した動作の特異なコントローラ140の再構築要求をアプリケーション管理部170へ出力する。
The
例えば、選択処理部160は、同一制御演算を行う複数のコントローラ140のうち、特定のコントローラ140の演算結果が異なる場合に、その特定のコントローラ140を動作の特異なコントローラ140として特定する。選択処理部160は、演算結果が1回異なった場合に、その特定のコントローラ140の演算結果が異なると判定しても良いし、複数回異なった場合に、その特定のコントローラ140の演算結果が異なると判定しても良い。さらに、選択処理部160は、予め決められた回数連続して演算結果が異なった場合に、その特定のコントローラ140の演算結果が異なると判定しても良いし、異なった回数の累積が予め決められた数に達した場合に、その特定のコントローラ140の演算結果が異なると判定しても良い。
For example, when the calculation results of a specific controller 140 differ among multiple controllers 140 that perform the same control calculation, the
他にも、例えば一定時間の範囲で演算結果を受信する設計だった場合に、選択処理部160は、特定のコントローラ140からの演算結果の受信が一定時間以上遅れた場合に、その特定のコントローラ140を動作の特異なコントローラ140として特定する。これは、例えばメモリリーク等によりコントローラ140の処理能力が低くなることが想定されるため、選択処理部160は、演算結果の受信が一定時間以上遅れた特定のコントローラ140を動作の特異なコントローラ140として特定する。ここで、複数のアプリケーションから選択処理部160に演算結果が届くタイミングはそれぞれ異なる可能性があるため、選択処理部160は、ある程度の期間、演算結果が届くことを待つ機能を有してもよい。
In addition, for example, in a case where the design is such that calculation results are received within a certain time range, if the reception of the calculation results from a specific controller 140 is delayed for more than a certain time, the
さらに、選択処理部160は、同一制御演算の演算値のうち選択されなかった演算値を出力したコントローラ140を、動作の特異なコントローラ140として特定してもよい。
Furthermore, the
このように、選択処理部160は、アプリケーションであるコントローラ140のそれぞれの演算結果を受信した結果を基に、コントローラ140の異常動作を検出する。
In this way, the
また、VM130が動作の特異なコントローラ140を特定してもよい。例えば、VM130は、一般的な動作状態の監視結果として、CPU負荷やネットワークの異常といったVM130を再起動させることで回復する障害を検出して、自己が動作させるコントローラ140の動作が特異であると判定する。そして、VM130は、アプリケーション管理部170に再構築要求を行なう。
VM 130 may also identify a controller 140 that is behaving peculiarly. For example, VM 130 may detect a fault that can be recovered from by restarting VM 130, such as an abnormality in CPU load or network, as a result of monitoring the general operating state, and determine that the behavior of the controller 140 that it is operating is peculiar. VM 130 then makes a reconfiguration request to
アプリケーション管理部170は、動作の特異なコントローラ140の再構築要求を選択処理部160から受ける。そして、アプリケーション管理部170は、動作の特異なコントローラ140として指定されたコントローラ140を再構築対象として、再構築の可否の判定処理を行う。アプリケーション管理部170は、再構築の実行が可能であれば、指定された動作の特異なコントローラ140を動作させるVM130に再構築を指示する。
The
また、アプリケーション管理部170は、自己が動作させるコントローラ140の動作が特異であると判定したVM130から再構築要求を受けてもよい。そして、アプリケーション管理部170は、再構築要求の送信元のVM130が動作させるコントローラ140を再構築対象とする。その後、アプリケーション管理部170は、再構築の可否の判定処理を行い、再構築が可能であれば動作の特異なコントローラ140を動作させるVM130に再構築を指示する。
The
このように、アプリケーション管理部170は、選択処理部160により検出された動作の特異なコントローラ140を再構築対象として、再構築対象以外のコントローラ140の演算により信頼性を確保できるか否かを判定し、信頼性が確保できる場合に再構築対象のコントローラ140の再構築を実行する。
In this way, the
以上に説明したように、本実施例に係る制御システム1は、動作の特異なコントローラ140を特定して、その特定されたコントローラ140を動作させるVM130を再構築する。これにより、ソフトウェアエラー以外にも、制御システム1の動作に影響を与えそうな不安定な動作を行うコントローラ140の再構築を実際に障害が発生する前に行うことができ、制御システム1の信頼性を向上させることが可能となる。 As described above, the control system 1 according to this embodiment identifies a controller 140 that is behaving peculiarly, and reconstructs a VM 130 that operates the identified controller 140. This makes it possible to reconstruct a controller 140 that is performing unstable operations that may affect the operation of the control system 1, in addition to software errors, before a failure actually occurs, thereby improving the reliability of the control system 1.
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[system]
The information including the processing procedures, control procedures, specific names, various data and parameters shown in the above documents and drawings can be changed arbitrarily unless otherwise specified.
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 In addition, each component of each device shown in the figure is a functional concept, and does not necessarily have to be physically configured as shown in the figure. In other words, the specific form of distribution and integration of each device is not limited to that shown in the figure. In other words, all or part of them can be functionally or physically distributed and integrated in any unit depending on various loads, usage conditions, etc.
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。 Furthermore, each processing function performed by each device may be realized, in whole or in part, by a CPU and a program analyzed and executed by the CPU, or may be realized as hardware using wired logic.
[ハードウェア]
次に、制御装置10のハードウェア構成例を説明する。図5は、制御装置のハードウェア構成図である。図5に示すように、制御装置10は、プロセッサ91、メモリ92、通信装置93及びHDD(Hard Disk Drive)94を有する。プロセッサ91、メモリ92、通信装置93及びHDD94は、図1に例示したハードウェア110の一例にあたる。プロセッサ91は、バスを介してメモリ92、通信装置93及びHDD94と接続される。
[Hardware]
Next, a hardware configuration example of the
通信装置93は、ネットワークインタフェースカードなどであり、他の情報処理装置との通信に使用される。例えば、制御装置10が複数存在する場合、通信装置93は、異なる制御装置10のプロセッサ91間の通信を中継する。
The
HDD94は、補助記憶装置である。HDD94は、図1に例示した、OS120、VM131~133、コントローラ141~143、APP151~153、選択処理部160及びアプリケーション管理部170の機能を実現するプログラムを含む各種プログラムを格納する。
The
プロセッサ91は、HDD94に格納された各種プログラムを読み出してメモリ92に展開して実行する。これにより、プロセッサ91は、図1に例示した、OS120、VM131~133、コントローラ141~143、APP151~153、選択処理部160及びアプリケーション管理部170の機能を実現する。
The
このように制御装置10は、プログラムを読み出して実行することで各種処理方法を実行する情報処理装置として動作する。また、制御装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、ここでいうプログラムは、制御装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
In this way, the
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。 This program can be distributed via a network such as the Internet. In addition, this program can be recorded on a computer-readable recording medium such as a hard disk, a flexible disk (FD), a CD-ROM, an MO (Magneto-Optical disk), or a DVD (Digital Versatile Disc), and can be executed by being read from the recording medium by a computer.
開示される技術的特徴の組合せのいくつかの例を以下に記載する。
(1)
所定演算を実行する複数のアプリケーションのそれぞれの演算結果を基に出力する演算結果を選択して出力する選択処理部と、
前記アプリケーションのいずれか一つ又はいくつかを再構築対象として、再構築対象以外の前記アプリケーションの演算により前記選択処理部による出力の信頼性を確保できるか否かを判定し、前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行するアプリケーション管理部と
を備えたことを特徴とする制御装置。
(2)
前記アプリケーションは、前記所定演算としてそれぞれが同じ演算を行なう同一制御演算を実行し、
前記選択処理部は、前記演算結果に対して多数決ロジックを用いて前記出力する演算結果を選択する
ことを特徴とする(1)に記載の制御装置。
(3)
前記アプリケーション管理部は、再構築対象以外の前記アプリケーションの数が、前記選択処理部の多数決ロジックを用いた出力の信頼性を確保できる前記アプリケーションの数以上の場合に、前記信頼性を確保できると判定することを特徴とする(2)に記載の制御装置。
(4)
前記アプリケーション管理部は、前記アプリケーションの動作状態を基に、各前記アプリケーションを再構築するか否かを決定し、再構築対象以外の前記アプリケーションの演算により前記信頼性を確保できるか否かを判定し、前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行することを特徴とする(1)~(3)のいずれか一つに記載の制御装置。
(5)
前記選択処理部は、前記アプリケーションのそれぞれの演算結果を受信した結果を基に、前記アプリケーションの異常動作を検出し、
前記アプリケーション管理部は、前記選択処理部により異常動作が検出された前記アプリケーションを再構築対象として、再構築対象以外の前記アプリケーションの演算により前記信頼性を確保できるか否かを判定し、前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行する
ことを特徴とする(1)~(4)のいずれか一つに記載の制御装置。
(6)
前記アプリケーション管理部は、前記再構築対象の前記アプリケーションの、停止及び起動、又は、再インストールを行うことで、前記再構築対象の前記アプリケーションを再構築することを特徴とする(1)~(5)のいずれか一つに記載の制御装置。
(7)
前記アプリケーション管理部は、再構築中に前記選択処理部による出力の信頼性を確保可能な数以上の前記アプリケーションが動作するように制御することを特徴とする(1)~(6)のいずれか一つに記載の制御装置。
(8)
前記選択処理部は、新しいアプリケーションからの出力を受信した場合、前記所定演算を実行するアプリケーションの数を1つ増やし、前記アプリケーションの異常を検知した場合、前記所定演算を実行するアプリケーションの数を1つ減らして、前記選択処理部による出力の信頼性を確保できるか否かの判定を行なうことを特徴とする(1)~(7)のいずれか一つに記載の制御装置。
(9)
前記アプリケーション管理部は、前記選択処理部による出力の信頼性を確保できるか否かの判定ロジックを、前記アプリケーションが実行する前記所定演算に求められる信頼性によって異ならせることを特徴とする(1)~(8)のいずれか一つに記載の制御装置。
(10)
前記アプリケーション管理部は、前記アプリケーションの稼働時間を基に再構築対象とする前記アプリケーションを決定することを特徴とする(1)~(9)のいずれか一つに記載の制御装置。
(11)
前記アプリケーションは、工業プロセスに対する制御値を算出するための前記所定演算を実行するアプリケーションであることを特徴とする(1)~(10)に記載の制御装置。
(12)
プラント施設に配置されたセンサからの計測結果の入力を受ける入力装置、前記プラント施設に設けられた機構を駆動する駆動装置を駆動させる出力装置及び制御装置を有する制御システムであって
前記制御装置は、
前記入力装置に入力された前記センサによる計測結果を基に所定演算を実行するアプリケーションを各々が動作させる複数の仮想マシンと、
前記アプリケーションのそれぞれの演算結果を基に出力する演算結果を選択し、選択した演算結果を前記出力装置から出力させて前記駆動装置を駆動させる選択処理部と、
前記アプリケーションのいずれか一つ又はいくつかを再構築対象として、再構築対象以外の前記アプリケーションの演算により前記選択処理部による出力の信頼性を確保できるか否かを判定し、前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行するアプリケーション管理部と
を備えたことを特徴とする制御システム。
(13)
制御装置に、
所定演算を実行する複数のアプリケーションを実行させ、
前記複数のアプリケーションそれぞれの演算結果を基に出力する演算結果を選択させて出力させ
各前記アプリケーションのいずれか一つ又はいくつかを再構築対象として、再構築対象以外の前記アプリケーションの演算結果により、出力する前記演算結果の出力の信頼性を確保できるか否かを判定させ、
前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行させる
ことを特徴とする制御方法。
(14)
所定演算を実行する複数のアプリケーションを動作させ、
前記複数のアプリケーションそれぞれの演算結果を基に出力する演算結果を選択して出力し、
前記アプリケーションのいずれか一つ又はいくつかを再構築対象として、再構築対象以外の前記アプリケーションの演算結果により、出力する前記演算結果の出力の信頼性を確保できるか否かを判定し、
前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行する
処理をコンピュータに実行させることを特徴とする制御プログラム。
Some examples of combinations of the disclosed technical features are set out below.
(1)
a selection processing unit that selects and outputs a calculation result to be output based on each calculation result of a plurality of applications that execute a predetermined calculation;
a control device comprising: an application management unit that determines whether the reliability of the output by the selection processing unit can be ensured by calculation of an application other than the application to be reconstructed, with one or more of the applications as the target for reconstruction, and performs reconstruction of the application to be reconstructed if the reliability can be ensured.
(2)
the applications execute identical control operations each performing the same operation as the predetermined operation;
The control device according to (1), wherein the selection processing unit selects the calculation result to be output by using majority logic on the calculation results.
(3)
The control device described in (2) is characterized in that the application management unit determines that the reliability can be ensured when the number of applications other than the targets of reconstruction is greater than or equal to the number of applications that can ensure the reliability of the output using the majority logic of the selection processing unit.
(4)
The control device described in any one of (1) to (3), characterized in that the application management unit decides whether or not to reconstruct each application based on the operating state of the application, determines whether the reliability can be ensured by calculation of the application other than the application to be reconstructed, and performs reconstruction of the application to be reconstructed if the reliability can be ensured.
(5)
The selection processing unit detects an abnormal operation of the application based on a result of receiving each of the calculation results of the application;
The control device described in any one of (1) to (4), characterized in that the application management unit, with respect to the application in which abnormal operation has been detected by the selection processing unit as a target for reconstruction, determines whether the reliability can be ensured by calculation of the application other than the target for reconstruction, and performs reconstruction of the application to be reconstructed if the reliability can be ensured.
(6)
The control device according to any one of (1) to (5), characterized in that the application management unit reconstructs the application to be reconstructed by stopping and starting, or reinstalling, the application to be reconstructed.
(7)
The control device according to any one of (1) to (6), characterized in that the application management unit controls the number of applications to be operated so as to ensure the reliability of the output by the selection processing unit during reconstruction.
(8)
The control device described in any one of (1) to (7) is characterized in that when the selection processing unit receives output from a new application, it increases the number of applications that execute the specified calculation by one, and when it detects an abnormality in the application, it decreases the number of applications that execute the specified calculation by one, thereby determining whether the reliability of the output by the selection processing unit can be ensured.
(9)
The control device according to any one of (1) to (8), characterized in that the application management unit differs in its judgment logic for determining whether the reliability of the output by the selection processing unit can be ensured depending on the reliability required for the specified calculation executed by the application.
(10)
The control device according to any one of (1) to (9), characterized in that the application management unit determines the application to be reconstructed based on the operating time of the application.
(11)
The control device according to any one of (1) to (10), wherein the application is an application that executes the predetermined calculation to calculate a control value for an industrial process.
(12)
A control system having an input device for receiving an input of a measurement result from a sensor disposed in a plant facility, an output device for driving a drive device that drives a mechanism disposed in the plant facility, and a control device, the control device comprising:
a plurality of virtual machines each running an application that executes a predetermined calculation based on the measurement results of the sensor input to the input device;
a selection processing unit that selects an operation result to be output based on each operation result of the application, and outputs the selected operation result from the output device to drive the drive device;
a control system comprising: an application management unit that determines whether the reliability of the output by the selection processing unit can be ensured by calculations of applications other than the application to be reconstructed, with one or more of the applications as the target for reconstruction, and performs reconstruction of the application to be reconstructed if the reliability can be ensured.
(13)
The control device includes:
Executing a plurality of applications that perform predetermined operations;
selecting and outputting a calculation result to be output based on the calculation result of each of the plurality of applications; determining whether or not the reliability of the output of the calculation result to be output can be ensured based on the calculation result of the application other than the application to be reconstructed, with one or some of the applications as a reconstruction target;
and executing reconstruction of the application to be reconstructed when the reliability can be ensured.
(14)
Running a plurality of applications that execute predetermined operations;
Selecting and outputting a calculation result based on the calculation results of each of the plurality of applications;
determining whether or not the reliability of the output of the calculation result to be output can be ensured based on the calculation result of the application other than the application to be reconstructed, with one or some of the applications being the object of reconstruction;
and if the reliability can be ensured, reconstructing the application to be reconstructed.
1 制御システム
10 制御装置
11 入力装置
12 出力装置
20 センサ
30 駆動装置
110 ハードウェア
120 OS
130~133 VM(Virtual Machine)
140~143 コントローラ
150~153 APP
160 選択処理部
170 アプリケーション管理部
REFERENCE SIGNS LIST 1
130-133 VM (Virtual Machine)
140 to 143 Controller 150 to 153 APP
160
Claims (14)
前記アプリケーションのいずれか一つ又はいくつかを再構築対象として、再構築対象以外の前記アプリケーションの演算により前記選択処理部による出力の信頼性を確保できるか否かを、前記アプリケーションが実行する前記所定演算に求められる信頼性に応じて判定ロジックを異ならせて判定し、前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行するアプリケーション管理部と
を備えたことを特徴とする制御装置。 a selection processing unit that selects and outputs a calculation result to be output based on each calculation result of a plurality of applications that execute a predetermined calculation;
a control device comprising: an application management unit that, by setting one or more of the applications as targets for reconstruction, determines whether the reliability of the output by the selection processing unit can be ensured by the operations of the applications other than the targets for reconstruction by changing the judgment logic depending on the reliability required for the specified operations performed by the applications, and performs reconstruction of the application to be reconstructed if the reliability can be ensured.
前記複数のアプリケーションの中から前記アプリケーションの稼働時間を基に再構築対象とするアプリケーションを決定して、前記再構築対象以外の前記アプリケーションの演算により前記選択処理部による出力の信頼性を確保できるか否かを判定し、前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行するアプリケーション管理部と
を備えたことを特徴とする制御装置。 a selection processing unit that selects and outputs a calculation result to be output based on each calculation result of a plurality of applications that execute a predetermined calculation;
a control device comprising: an application management unit that determines an application to be reconstructed from among the plurality of applications based on the operating time of the application , determines whether the reliability of the output by the selection processing unit can be ensured by calculation of the application other than the application to be reconstructed, and performs reconstruction of the application to be reconstructed if the reliability can be ensured.
前記アプリケーション管理部は、前記選択処理部により異常動作が検出された前記アプリケーションを再構築対象として、再構築対象以外の前記アプリケーションの演算により前記信頼性を確保できるか否かを判定し、前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行する
ことを特徴とする請求項1に記載の制御装置。 The selection processing unit detects an abnormal operation of the application based on a result of receiving each of the calculation results of the application;
The control device according to claim 1, characterized in that the application management unit, with respect to the application in which abnormal operation has been detected by the selection processing unit as the target for reconstruction, determines whether the reliability can be ensured by calculation of the application other than the target for reconstruction, and performs reconstruction of the application to be reconstructed if the reliability can be ensured.
前記制御装置は、
前記入力装置に入力された前記センサによる計測結果を基に所定演算を実行するアプリケーションを各々が動作させる複数の仮想マシンと、
前記アプリケーションのそれぞれの演算結果を基に出力する演算結果を選択し、選択した演算結果を前記出力装置から出力させて前記駆動装置を駆動させる選択処理部と、
前記アプリケーションのいずれか一つ又はいくつかを再構築対象として、再構築対象以外の前記アプリケーションの演算により前記選択処理部による出力の信頼性を確保できるか否かを、前記アプリケーションが実行する前記所定演算に求められる信頼性に応じて判定ロジックを異ならせて判定し、前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行するアプリケーション管理部と
を備えたことを特徴とする制御システム。 A control system having an input device for receiving an input of a measurement result from a sensor disposed in a plant facility, an output device for driving a drive device that drives a mechanism disposed in the plant facility, and a control device, the control device comprising:
a plurality of virtual machines each running an application that executes a predetermined calculation based on the measurement results of the sensor input to the input device;
a selection processing unit that selects an operation result to be output based on each operation result of the application, and outputs the selected operation result from the output device to drive the drive device;
and an application management unit that, when one or more of the applications are to be reconstructed, determines whether the reliability of the output by the selection processing unit can be ensured by the operations of the applications other than the applications to be reconstructed by changing the judgment logic depending on the reliability required for the specified operations performed by the applications, and performs reconstruction of the application to be reconstructed if the reliability can be ensured.
前記制御装置は、
前記入力装置に入力された前記センサによる計測結果を基に所定演算を実行するアプリケーションを各々が動作させる複数の仮想マシンと、
前記アプリケーションのそれぞれの演算結果を基に出力する演算結果を選択し、選択した演算結果を前記出力装置から出力させて前記駆動装置を駆動させる選択処理部と、
前記アプリケーションの中から前記アプリケーションの稼働時間を基に再構築対象とするアプリケーションを決定して、前記再構築対象以外の前記アプリケーションの演算により前記選択処理部による出力の信頼性を確保できるか否かを判定し、前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行するアプリケーション管理部と
を備えたことを特徴とする制御システム。 A control system having an input device for receiving an input of a measurement result from a sensor disposed in a plant facility, an output device for driving a drive device that drives a mechanism disposed in the plant facility, and a control device, the control device comprising:
a plurality of virtual machines each running an application that executes a predetermined calculation based on the measurement results of the sensor input to the input device;
a selection processing unit that selects an operation result to be output based on each operation result of the application, and outputs the selected operation result from the output device to drive the drive device;
and an application management unit that determines which applications are to be rebuilt from among the applications based on the operating time of the applications , determines whether the reliability of the output by the selection processing unit can be ensured through calculations of the applications other than the applications to be rebuilt, and performs reconstruction of the applications to be rebuilt if the reliability can be ensured.
所定演算を実行する複数のアプリケーションを実行させ、
前記複数のアプリケーションそれぞれの演算結果を基に出力する演算結果を選択させて出力させ
前記アプリケーションのいずれか一つ又はいくつかを再構築対象として、再構築対象以外の前記アプリケーションの演算結果により、出力する前記演算結果の出力の信頼性を確保できるか否かを、前記アプリケーションが実行する前記所定演算に求められる信頼性に応じて判定ロジックを異ならせて判定させ、
前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行させる
ことを特徴とする制御方法。 The control device includes:
Executing a plurality of applications that perform predetermined operations;
Selecting and outputting a calculation result based on the calculation results of each of the plurality of applications
One or some of the applications are set as reconstructing targets, and whether or not the reliability of the output of the computation result to be output can be ensured based on the computation result of the application other than the reconstructing target is determined by varying a determination logic according to the reliability required for the predetermined computation executed by the application ;
and executing reconstruction of the application to be reconstructed when the reliability can be ensured.
所定演算を実行する複数のアプリケーションを実行させ、
前記複数のアプリケーションそれぞれの演算結果を基に出力する演算結果を選択させて出力させ
前記複数のアプリケーションの中から前記アプリケーションの稼働時間を基に再構築対象とするアプリケーションを決定して、前記再構築対象以外の前記アプリケーションの演算結果により、出力する前記演算結果の出力の信頼性を確保できるか否かを判定させ、
前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行させる
ことを特徴とする制御方法。 The control device includes:
Executing a plurality of applications that perform predetermined operations;
Selecting and outputting a calculation result based on the calculation results of each of the plurality of applications
determining an application to be reconstructed from among the plurality of applications based on the operation time of the application , and determining whether or not the reliability of the output of the computation result to be output can be ensured based on the computation result of the application other than the application to be reconstructed;
and executing reconstruction of the application to be reconstructed when the reliability can be ensured.
前記複数のアプリケーションそれぞれの演算結果を基に出力する演算結果を選択して出力し、
前記アプリケーションのいずれか一つ又はいくつかを再構築対象として、再構築対象以外の前記アプリケーションの演算結果により、出力する前記演算結果の出力の信頼性を確保できるか否かを、前記アプリケーションが実行する前記所定演算に求められる信頼性に応じて判定ロジックを異ならせて判定し、
前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行する
処理をコンピュータに実行させることを特徴とする制御プログラム。 Running a plurality of applications that execute predetermined operations;
Selecting and outputting a calculation result based on the calculation results of each of the plurality of applications;
One or some of the applications are set as reconstructing targets, and whether or not the reliability of the output of the computation result to be output can be ensured based on the computation result of the application other than the reconstructing target is determined by varying a determination logic according to the reliability required for the predetermined computation executed by the application ;
and if the reliability can be ensured, reconstructing the application to be reconstructed.
前記複数のアプリケーションそれぞれの演算結果を基に出力する演算結果を選択して出力し、
前記複数のアプリケーションの中から前記アプリケーションの稼働時間を基に再構築対象とするアプリケーションを決定して、前記再構築対象以外の前記アプリケーションの演算結果により、出力する前記演算結果の出力の信頼性を確保できるか否かを判定し、
前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行する
処理をコンピュータに実行させることを特徴とする制御プログラム。 Running a plurality of applications that execute predetermined operations;
Selecting and outputting a calculation result based on the calculation results of each of the plurality of applications;
determining an application to be reconstructed from among the plurality of applications based on the operation time of the application , and determining whether or not the reliability of the output of the computation result to be output can be ensured based on the computation result of the application other than the computation result to be reconstructed;
and if the reliability can be ensured, reconstructing the application to be reconstructed.
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022111401A JP7694489B2 (en) | 2022-07-11 | 2022-07-11 | Control device, control system, control method, and control program |
| US18/218,679 US12602030B2 (en) | 2022-07-11 | 2023-07-06 | Control device, control system, control method, and computer-readable recording medium |
| EP23184060.4A EP4307119A1 (en) | 2022-07-11 | 2023-07-07 | Control device, control system, control method, and control program |
| CN202310837210.5A CN117389216A (en) | 2022-07-11 | 2023-07-10 | Control device, control system, control method and control program |
| JP2025048012A JP7845539B2 (en) | 2022-07-11 | 2025-03-24 | control device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022111401A JP7694489B2 (en) | 2022-07-11 | 2022-07-11 | Control device, control system, control method, and control program |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2025048012A Division JP7845539B2 (en) | 2022-07-11 | 2025-03-24 | control device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2024009696A JP2024009696A (en) | 2024-01-23 |
| JP7694489B2 true JP7694489B2 (en) | 2025-06-18 |
Family
ID=87202076
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022111401A Active JP7694489B2 (en) | 2022-07-11 | 2022-07-11 | Control device, control system, control method, and control program |
| JP2025048012A Active JP7845539B2 (en) | 2022-07-11 | 2025-03-24 | control device |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2025048012A Active JP7845539B2 (en) | 2022-07-11 | 2025-03-24 | control device |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US12602030B2 (en) |
| EP (1) | EP4307119A1 (en) |
| JP (2) | JP7694489B2 (en) |
| CN (1) | CN117389216A (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2019139490A (en) | 2018-02-09 | 2019-08-22 | 横河電機株式会社 | Control system, diagnostic system, diagnostic method, and diagnostic program |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07306794A (en) * | 1994-05-12 | 1995-11-21 | Mitsubishi Electric Corp | Distributed system and highly reliable method of distributed system |
| US5903717A (en) * | 1997-04-02 | 1999-05-11 | General Dynamics Information Systems, Inc. | Fault tolerant computer system |
| JPH11345003A (en) * | 1998-05-29 | 1999-12-14 | Toshiba Corp | Plant control system |
| US6813527B2 (en) * | 2002-11-20 | 2004-11-02 | Honeywell International Inc. | High integrity control system architecture using digital computing platforms with rapid recovery |
| US8938736B2 (en) * | 2009-07-07 | 2015-01-20 | Dell Products L.P. | System and method for providing redundancy for management controller |
| JP5203321B2 (en) | 2009-09-04 | 2013-06-05 | 日本電信電話株式会社 | Memory leak handling method, apparatus and program |
| JP2016071771A (en) * | 2014-10-01 | 2016-05-09 | 株式会社デンソー | Control device and monitoring device |
| JP7056460B2 (en) | 2018-08-10 | 2022-04-19 | 横河電機株式会社 | Control system and control device |
-
2022
- 2022-07-11 JP JP2022111401A patent/JP7694489B2/en active Active
-
2023
- 2023-07-06 US US18/218,679 patent/US12602030B2/en active Active
- 2023-07-07 EP EP23184060.4A patent/EP4307119A1/en active Pending
- 2023-07-10 CN CN202310837210.5A patent/CN117389216A/en active Pending
-
2025
- 2025-03-24 JP JP2025048012A patent/JP7845539B2/en active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2019139490A (en) | 2018-02-09 | 2019-08-22 | 横河電機株式会社 | Control system, diagnostic system, diagnostic method, and diagnostic program |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4307119A1 (en) | 2024-01-17 |
| JP2024009696A (en) | 2024-01-23 |
| CN117389216A (en) | 2024-01-12 |
| JP2025089420A (en) | 2025-06-12 |
| JP7845539B2 (en) | 2026-04-14 |
| US20240012391A1 (en) | 2024-01-11 |
| US12602030B2 (en) | 2026-04-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN105683919B (en) | Multi-core processor fault detect for security critical software application | |
| JP5089380B2 (en) | Dynamic migration of virtual machine computer programs | |
| US8627143B2 (en) | Dynamically modeling and selecting a checkpoint scheme based upon an application workload | |
| JP5851503B2 (en) | Providing high availability for applications in highly available virtual machine environments | |
| US9037826B1 (en) | System for optimization of input/output from a storage array | |
| US20170089607A1 (en) | System and Method for Predicting and Mitigating Corrosion in an Information Handling System | |
| US10102041B2 (en) | Controlling workload placement to manage wear of a component nearing end of life | |
| WO2024221260A1 (en) | Controlling an amount of data used by a baseboard management conroller to perform hardware failure prediction | |
| JP2012178014A (en) | Failure prediction/countermeasure method and client server system | |
| Sharma et al. | Availability modelling of cluster-based system with software aging and optional rejuvenation policy | |
| EP3608784B1 (en) | Control system and control apparatus | |
| WO2006092806A1 (en) | Computer qc module testing monitor | |
| JP7694489B2 (en) | Control device, control system, control method, and control program | |
| US9250942B2 (en) | Hardware emulation using on-the-fly virtualization | |
| WO2019054434A1 (en) | Failure sign detection device, failure sign detection method, and recording medium in which failure sign detection program is stored | |
| JP7645700B2 (en) | Distributed control system and method for monitoring the same | |
| EP3509249B1 (en) | Systems and methods for health monitoring and upgrade of a distributed controller | |
| US20240333606A1 (en) | Application aware high availability cluster | |
| Zhao et al. | Software maintenance optimization based on Stackelberg game methods | |
| US20170046662A1 (en) | Warrantied component cost optimization | |
| Tröger et al. | On the Applicability of Virtual Machine Migration for Proactive Failover | |
| KR20250107030A (en) | Electronic device for predicting and detecting failure and its operation method | |
| CN120216091A (en) | Cloud technology-based service instance management method, cloud management platform and cluster | |
| Αντωνόπουλος | An energy-efficient and error-resilient server ecosystem exceeding conservative scaling limits |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240508 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20241227 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250121 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250324 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20250507 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250520 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7694489 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |