Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7694489B2 - Control device, control system, control method, and control program - Google Patents
[go: Go Back, main page]

JP7694489B2 - Control device, control system, control method, and control program - Google Patents

Control device, control system, control method, and control program Download PDF

Info

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
Application number
JP2022111401A
Other languages
Japanese (ja)
Other versions
JP2024009696A (en
Inventor
俊介 林
伸明 江間
善貴 吉田
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.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
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 Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2022111401A priority Critical patent/JP7694489B2/en
Priority to US18/218,679 priority patent/US12602030B2/en
Priority to EP23184060.4A priority patent/EP4307119A1/en
Priority to CN202310837210.5A priority patent/CN117389216A/en
Publication of JP2024009696A publication Critical patent/JP2024009696A/en
Priority to JP2025048012A priority patent/JP7845539B2/en
Application granted granted Critical
Publication of JP7694489B2 publication Critical patent/JP7694489B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/418Total 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/41865Total 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/418Total 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]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Program control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/002Error detection; Error correction; Monitoring protecting against parasitic influences, e.g. noise, temperatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking using middleware or operating system [OS] functionalities
    • G06F11/1484Generic software techniques for error detection or fault masking using middleware or operating system [OS] functionalities involving virtual machines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/187Voting techniques
    • G06F11/188Voting techniques where exact match is not required
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24187Redundant processors run identical programs
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32252Scheduling 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).

特開2020-27434号公報JP 2020-27434 A 特開2011-54114号公報JP 2011-54114 A

しかしながら、メモリリークの状態によっては、複数のアプリケーションを同時に再起動させる可能性がある。その場合、複数のコントローラによるそれぞれの演算値から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.

制御システムの一例を示す概略図である。FIG. 2 is a schematic diagram illustrating an example of a control system. VMからの再構築要求に基づく再構築処理のフローチャートである。11 is a flowchart of a reconstruction process based on a reconstruction request from a VM. アプリケーション管理部による再構築の決定に基づく再構築処理のフローチャートである。13 is a flowchart of a reconstruction process based on a decision to reconstruct by an application management unit. 実施の形態1の変形例に係る制御システムの構成の一例を示す図である。FIG. 13 is a diagram illustrating an example of a configuration of a control system according to a modification of the first embodiment. 制御装置のハードウェア構成図である。FIG. 2 is a hardware configuration diagram of a control device.

以下に、本願の開示する制御装置、制御システム、制御方法、及び制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、同一の要素には同一の符号を付し、重複する説明は適宜省略し、各実施形態は、矛盾のない範囲内で適宜組み合わせることができる。 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 sensor 20 and a drive device 30 via a network. The control system 1 is used, for example, to control an industrial process 40 of a plant. In this specification, the plant includes an industrial plant such as a chemical plant, a plant that manages and controls a wellhead or its surroundings such as a gas field or an oil field, a plant that manages and controls power generation such as hydroelectric power, thermal power, and nuclear power, a plant that manages and controls environmental power generation such as solar power and wind power, and a plant that manages and controls water supply and sewage, dams, etc.

センサ20は、工業プロセス40に設けられ、工業プロセス40における物理量の測定を行う。センサ20は、測定対象の物理量を測定信号として、制御システム1の入力装置11へネットワーク経由で送信する。本明細書において、センサ20は、例えば、圧力計、流量計、温度センサ等のセンサ機器、プラント内の異音等を収集するマイクや各機器の位置情報を出力する位置検出機器及びプラント内の状況や対象物を撮影するカメラやビデオ等の撮像機器等を含む。 The sensor 20 is provided in the industrial process 40 and measures physical quantities in the industrial process 40. The sensor 20 transmits the physical quantity to be measured as a measurement signal to the input device 11 of the control system 1 via a network. In this specification, the sensor 20 includes, for example, sensor devices such as pressure gauges, flow meters, and temperature sensors, microphones that collect abnormal sounds and the like within the plant, position detection devices that output position information of each device, and imaging devices such as cameras and videos that capture images of conditions and objects within the plant.

駆動装置30は、出力装置12から制御信号の入力を受け付けると、制御信号に応じて工業プロセス40を駆動する。また、駆動装置30は、流量制御弁や開閉弁等のバルブ機器、ファンやモータ等の操作音及び警報音等を発したりするスピーカ等の音響機器等を含む。 When the driving device 30 receives an input of a control signal from the output device 12, it drives the industrial process 40 in response to the control signal. The driving device 30 also includes valve devices such as a flow control valve and an on-off valve, and audio devices such as a speaker that emits operation sounds of a fan, a motor, etc., and alarm sounds.

制御システム1は、図1に示すように、制御装置10、入力装置11及び出力装置12を備える。制御装置10は、ネットワークを介して入力装置11及び出力装置12に接続される。 As shown in FIG. 1, the control system 1 includes a control device 10, an input device 11, and an output device 12. The control device 10 is connected to the input device 11 and the output device 12 via a network.

入力装置11は、センサ20から測定信号の入力を受ける。そして、入力装置11は、受信した信号を制御装置10へ送信する。 The input device 11 receives a measurement signal from the sensor 20. The input device 11 then transmits the received signal to the control device 10.

出力装置12は、制御装置10から送信された制御信号を受信する。そして、出力装置12は、受信した制御信号を駆動装置30へ出力する。駆動装置30は、制御信号に応じて工業プロセス40を操作する。ここで、入力装置11と出力装置12とは、ハードウェアとして一体であってもよい。 The output device 12 receives the control signal transmitted from the control device 10. The output device 12 then outputs the received control signal to the drive device 30. The drive device 30 operates the industrial process 40 in response to the control signal. Here, the input device 11 and the output device 12 may be integrated as hardware.

[制御装置の構成]
制御装置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 control device 10 performs a predetermined calculation process based on the measurement signal input from the input device 11, and outputs a control signal according to the calculation result to the output device 12 via a network. The control device 10 is, for example, configured with a computer device. The control device 10 may be included in a distributed control system (DCS). The control device 10 performs a calculation process on the measurement signal input from the input device 11 using a predetermined algorithm to generate a control signal. The function of the control device 10 is configured with hardware 110 such as a CPU and memory, and software including an OS 120, VMs 131 to 133, controllers 141 to 143, and APPs 151 to 153. In the following description, when the VMs 131 to 133 are not distinguished from each other, they are collectively referred to as "VM 130". Furthermore, when the controllers 141 to 143 are not distinguished from each other, they are collectively referred to as "controller 140". Furthermore, when the APPs 151 to 153 are not distinguished from each other, they are collectively referred to as "APP 150".

制御装置10は、メモリリークなどのソフトウェアエラーによりコントローラ140の不安定動作が発生した後に対処するのではなく、ソフトウェアエラーの影響が出るよりも前の段階でコントローラ140の再構築処理を行うことで不安定動作の発生を回避する。このように、不安定な動作をするコントローラ140の影響を抑え込むよりも、計画的にコントローラ140を再構築させたほうが、全体としてのソフトウェアエラーによる悪影響の排除は容易である。 The control device 10 avoids the occurrence of unstable operation by performing a reconfiguration process for the controller 140 at a stage before the effects of the software error appear, rather than dealing with the unstable operation of the controller 140 after it has occurred due to a software error such as a memory leak. In this way, it is easier to eliminate the overall adverse effects of software errors by systematically reconfiguring the controller 140 rather than suppressing the effects of a controller 140 that is operating unstably.

制御装置10は、コントローラ140の再構築の実施にあたって、選択処理部160において正しい出力値の選択を維持継続するため、再構築中に制御システム1の信頼性を確保可能な数以上のコントローラ140が動作するように制御する。また、制御装置10は、以下に説明する簡単な仕組みによりコントローラ140の再起動や再インストールなどの再構築を行うことで、制御システム1の信頼性を担保する。以下の制御装置10の詳細について説明する。 When reconstructing the controllers 140, the control device 10 controls the operation of at least the number of controllers 140 necessary to ensure the reliability of the control system 1 during reconstruction, in order to maintain and continue the selection of the correct output value in the selection processing unit 160. In addition, the control device 10 ensures the reliability of the control system 1 by performing reconstruction such as restarting or reinstalling the controllers 140 using a simple mechanism described below. The details of the control device 10 are described below.

制御装置10は、ハードウェア110上でOS120を動作させる。OS120は、例えば、VM130がゲストOSの場合、ホストOSとして動作する。OS120は、新たなVM130及びコントローラ140の起動の指示をアプリケーション管理部170から受けると、VM130及びコントローラ140を新たに起動させる。 The control device 10 runs the OS 120 on the hardware 110. For example, when the VM 130 is a guest OS, the OS 120 runs as a host OS. When the OS 120 receives an instruction from the application management unit 170 to start a new VM 130 and controller 140, it starts the new VM 130 and controller 140.

制御装置10は、OS120上で、仮想マシンである複数のVM131~133を動作させる。VM130は、ゲストOSやコンテナである。VM131~133のそれぞれは、コントローラ141~143及びAPP151~153を動作させる。 The control device 10 runs multiple virtual machines VM131-133 on the OS 120. VM130 is a guest OS or a container. Each of the VMs 131-133 runs a controller 141-143 and an APP 151-153.

また、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 OS 120. VM 130 may also predict that a soft error, such as a bit error caused by cosmic rays, will soon affect the operation of controller 140. In the following explanation, a software error is used as an example, but VM 130 can also operate in the same way for soft errors. Hereinafter, the prediction that a software error will soon affect the operation of controller 140 will be referred to as a "software error prediction."

ここで、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 control device 10, the operating time or number of operation steps of an application including the controller 140, etc. Furthermore, VM130 may predict a software error using any one of the methods, or may predict a software error using a combination of multiple methods.

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 application management unit 170 of a request to reconfigure the controller 140. After that, when the VM 130 receives an instruction to reconfigure from the application management unit 170, it executes the reconfiguration of the controller 140.

ここで、コントローラ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 control device 10 also operates the controller 140 and the APP 150 in each of the VMs 130. The APP 150 is an application other than the controller 140. The control device 10 according to this embodiment has three or more pairs of the VMs 130 and the controllers 140. The APP 150 may control the timing at which the controller 140 outputs a value calculated by calculation.

コントローラ140は、センサ20から入力された測定信号を、入力装置11を介して受信する。次に、コントローラ140は、センサ20から入力された測定信号に基づき、駆動装置30に対して適用されるべき値を算出する。すなわち、コントローラ140は、工業プロセス40に対する制御値を算出するための所定演算を実行するアプリケーションである。各コントローラ140は、例えば、入力された測定信号について所定のアルゴリズムで演算処理を行い、演算結果を出力する。各コントローラ140は、同一制御演算を実行する。同一制御演算とは、入力値が同じであり且つ正しい演算が行われた場合、まったく同じ演算結果が算出される演算である。 The controller 140 receives the measurement signal input from the sensor 20 via the input device 11. Next, the controller 140 calculates a value to be applied to the drive device 30 based on the measurement signal input from the sensor 20. In other words, the controller 140 is an application that executes a predetermined calculation to calculate a control value for the industrial process 40. Each controller 140, for example, performs calculation processing on the input measurement signal using a predetermined algorithm and outputs the calculation result. Each controller 140 executes the same control calculation. The same control calculation is a calculation that calculates exactly the same calculation result when the input value is the same and the calculation is performed correctly.

さらに、制御装置10は、ハードウェア110上で動作する選択処理部160を有する。なお、本実施の形態では選択処理部160がハードウェア110上で動作するとして説明するが、選択処理部160は、OS120上で動作してもよい。本実施形態において、選択処理部160は、ソフトウェアにより構成される。この場合、選択処理部160は、例えば、ハードウェア110上に専用のファームウェアで構築されてよい。 The control device 10 further includes a selection processing unit 160 that operates on the hardware 110. In this embodiment, the selection processing unit 160 is described as operating on the hardware 110, but the selection processing unit 160 may also operate on the OS 120. In this embodiment, the selection processing unit 160 is configured by software. In this case, the selection processing unit 160 may be constructed, for example, by dedicated firmware on the hardware 110.

選択処理部160は、各コントローラ140の動作を管理する。そして、選択処理部160は、アプリケーション管理部170からの要求を受けて、同一制御演算を実行するコントローラ140の総数をアプリケーション管理部170に通知する。 The selection processing unit 160 manages the operation of each controller 140. Then, upon receiving a request from the application management unit 170, the selection processing unit 160 notifies the application management unit 170 of the total number of controllers 140 that execute the same control calculation.

また、選択処理部160は、各コントローラ140により算出されたそれぞれの演算値の入力をコントローラ140から受ける。ここで、図1では、図示の都合上、コントローラ143から選択処理部160へ延びる通信経路を記載したが、他のコントローラ140からも同様に選択処理部160へ通信経路が延びる。 The selection processing unit 160 also receives inputs of the respective calculation values calculated by each controller 140 from the controller 140. Here, in FIG. 1, for convenience of illustration, a communication path extending from the controller 143 to the selection processing unit 160 is shown, but communication paths also extend from the other controllers 140 to the selection processing unit 160 in a similar manner.

選択処理部160は、各コントローラ140により算出された演算値に基づいて出力値を選択する。具体的には、選択処理部160は、各コントローラ140から出力された演算値の中から1つの演算値を出力値として選択する。その後、選択処理部160は、選択した出力値に基づく制御信号を出力装置12へ出力する。この制御信号が駆動装置30へ送信されることで、制御信号に応じた駆動装置30による工業プロセス40の操作が行われる。このように、選択処理部160は、工業プロセス40に対する制御値を算出するための所定演算を実行する複数のコントローラ140のそれぞれの演算結果を基に出力する演算結果を選択して出力する。 The selection processing unit 160 selects an output value based on the calculation values calculated by each controller 140. Specifically, the selection processing unit 160 selects one calculation value from the calculation values output from each controller 140 as an output value. The selection processing unit 160 then outputs a control signal based on the selected output value to the output device 12. This control signal is sent to the drive device 30, and the industrial process 40 is operated by the drive device 30 in accordance with the control signal. In this way, the selection processing unit 160 selects and outputs the calculation result to be output based on the respective calculation results of the multiple controllers 140 that perform a predetermined calculation to calculate a control value for the industrial process 40.

例えば、センサ20が流量を測定するセンサであり、駆動装置30は配管に取り付けられ、当該配管に流れる流体の流量を制御するバルブの開度を調整するアクチュエータにより構成されている場合で説明する。この場合、センサ20で測定された流量に関する情報の信号が、制御装置10に入力される。選択処理部160は、複数のコントローラ140のそれぞれが取得した流量に関する情報に基づきアクチュエータに出力すべき値を演算した演算結果を演算値として取得する。次に、選択処理部160は、取得した演算値のうちの1つの演算値を出力値として選択する。その後、選択処理部160は、選択された出力値に基づく制御信号を出力装置12出力する。その後、駆動装置30が制御信号を受信すると、出力値に基づいて配管に流れる流体の流量が調整される。 For example, the sensor 20 is a sensor that measures the flow rate, and the drive unit 30 is an actuator that is attached to a pipe and adjusts the opening of a valve that controls the flow rate of the fluid flowing through the pipe. In this case, a signal of information related to the flow rate measured by the sensor 20 is input to the control unit 10. The selection processing unit 160 acquires, as a calculation value, the result of calculating a value to be output to the actuator based on the information related to the flow rate acquired by each of the multiple controllers 140. Next, the selection processing unit 160 selects one of the acquired calculation values as an output value. The selection processing unit 160 then outputs a control signal based on the selected output value to the output unit 12. When the drive unit 30 then receives the control signal, the flow rate of the fluid flowing through the pipe is adjusted based on the output value.

選択処理部160による演算値の選択処理についてさらに詳細に説明する。選択処理部160は、複数のコントローラ140から出力された演算値の中から、多数決ロジックにより出力値とする演算値を選択する。すなわち、選択処理部160は、複数のコントローラ140から出力された演算値のうち、同一の値が最も多く出力された演算値を出力値として選択する。もしくは、選択処理部160は、複数のコントローラ140から出力された演算値のうち、同一の値が半数以上のコントローラ140から出力された演算値を出力値として選択してもよい。ここで、同一の値としては、完全に値が一致していなくても、予め決められた許容差範囲内であれば、同一とみなしてもよい。許容差範囲としては、例えば、±1%以内など運用に応じて適切な値が設定されることが好ましい。さらに、許容範囲内にある演算値が複数ある場合、選択処理部160は、例えば、複数の演算値の平均値を算出して出力値として出力してもよい。他にも、選択処理部160は、許容範囲内にある演算値が3つ以上で存在する場合、中央値を算出して出力値として出力してもよい。このように、許容範囲内にある複数の演算値を代表する値を算出して出力値とすることができれば、選択処理部160は、他の方法により出力値を決定してもよい。 The selection process of the calculation value by the selection processing unit 160 will be described in more detail. The selection processing unit 160 selects the calculation value to be the output value from among the calculation values output from the multiple controllers 140 by majority logic. That is, the selection processing unit 160 selects the calculation value that is the most common among the calculation values output from the multiple controllers 140 as the output value. Alternatively, the selection processing unit 160 may select the calculation value that is the most common among the calculation values output from the multiple controllers 140 as the output value. Here, the same value may be considered to be the same even if the values do not match completely, as long as they are within a predetermined tolerance range. It is preferable that an appropriate value is set according to the operation, such as within ±1%, for example, as the tolerance range. Furthermore, when there are multiple calculation values within the tolerance range, the selection processing unit 160 may, for example, calculate the average value of the multiple calculation values and output it as the output value. In addition, when there are three or more calculation values within the tolerance range, the selection processing unit 160 may calculate the median and output it as the output value. In this way, if a value that represents multiple calculated values within the allowable range can be calculated and used as the output value, the selection processing unit 160 may determine the output value using another method.

例えば、コントローラ140が3つ存在する場合、選択処理部160は、3つのコントローラ140からそれぞれ出力された演算値を取得する。ここで、いずれか2つのコントローラ140が同一の演算値を出力し、他の1つのコントローラ140が別の演算値を出力している場合について説明する。この場合、選択処理部160は、2つのコントローラ140が出力した演算値が最も多く出力された演算値であるため、当該演算値を出力値として選択する。 For example, if there are three controllers 140, the selection processing unit 160 acquires the calculation values output from each of the three controllers 140. Here, a case will be described in which any two controllers 140 output the same calculation value and the remaining controller 140 outputs a different calculation value. In this case, the selection processing unit 160 selects the calculation value output by the two controllers 140 as the output value, since this is the calculation value that was output most frequently.

選択処理部160は、各コントローラ140から入力された演算値から多数決ロジックで1つの出力値を選択することで、VM130の一部又はコントローラ140の一部に異常が発生している場合であっても、正常とみなせる演算値を出力することができる。そのため、制御装置10は、正常とみなせる出力値を継続して出力することができ、駆動装置30を正常に駆動させることができる。ただし、選択処理部160が正常とみなせる演算値を得るといった信頼性を確保するためには、多数決ロジックによって信頼性を確保できる最低限のコントローラ140の数以上のコントローラ140が動作することが好ましい。 The selection processing unit 160 selects one output value from the calculation values input from each controller 140 using majority logic, and can output a calculation value that can be considered normal even if an abnormality occurs in part of the VM 130 or part of the controller 140. Therefore, the control device 10 can continue to output an output value that can be considered normal, and can drive the drive device 30 normally. However, in order to ensure the reliability that the selection processing unit 160 obtains a calculation value that can be considered normal, it is preferable that more than the minimum number of controllers 140 that can ensure reliability by majority logic are in operation.

また、選択処理部160は、コントローラ140の総数及び同一制御演算を実行するコントローラ140の数などを管理する。選択処理部160は、新しいコントローラ140からの出力を受信した場合、同一制御演算を実行させるコントローラ140の数を1つ増やす。逆に、値の比較等でコントローラ140の異常を検知した場合、選択処理部160は、同一制御演算を実行するコントローラ140の数を1つ減らす。 The selection processing unit 160 also manages the total number of controllers 140 and the number of controllers 140 that execute the same control calculation. When the selection processing unit 160 receives output from a new controller 140, it increases the number of controllers 140 that execute the same control calculation by one. Conversely, when an abnormality in a controller 140 is detected by value comparison or the like, the selection processing unit 160 decreases the number of controllers 140 that execute the same control calculation by one.

さらに、制御装置10は、ハードウェア110上で動作するアプリケーション管理部170を有する。ここで、図1では、選択処理部160とアプリケーション管理部170とを別個に図示したが、アプリケーション管理部170は、選択処理部160の機能の一部として選択処理部160に含まれてもよい。 The control device 10 further includes an application management unit 170 that operates on the hardware 110. Here, in FIG. 1, the selection processing unit 160 and the application management unit 170 are illustrated separately, but the application management unit 170 may be included in the selection processing unit 160 as part of the function of the selection processing unit 160.

アプリケーション管理部170は、VM130及びコントローラ140を含むアプリケーションの実行中及び停止中といった動作状態を管理する。さらに、アプリケーション管理部170は、VM130の起動、停止、再起動などの動作の指示を行う。また、アプリケーション管理部170は、コントローラ140の再構築を行う際に、再構築の可否の判定を行い、再構築が可能な場合にコントローラ140の再構築を実行させる。 The application management unit 170 manages the operating states of applications including the VM 130 and the controller 140, such as when they are running or stopped. Furthermore, the application management unit 170 issues instructions for operations such as starting, stopping, and restarting the VM 130. Furthermore, when reconstructing the controller 140, the application management unit 170 determines whether reconstruction is possible, and if reconstruction is possible, causes the controller 140 to be reconstructed.

具体的には、アプリケーション管理部170は、ソフトウェアエラーの予測の通知をVM130から受けた場合、通知元のVM130を対象として、そのVM130が動作させるコントローラ140の再構築の可否の判定を行う。また、アプリケーション管理部170は、VM130やコントローラ140の状態が所定条件に達した場合、その所定条件に達したVM130が動作させるコントローラ140又は所定条件に達したコントローラ140を再構築対象として、再構築の可否を判定する。所定条件に達したとは、例えば、VM130の稼働時間が所定時間を超えた場合などである。 Specifically, when the application management unit 170 receives a notification from a VM 130 that a software error is predicted, the application management unit 170 determines whether or not to reconstruct the controller 140 operated by the VM 130 that sent the notification, targeting the VM 130 that sent the notification. Furthermore, when the state of the VM 130 or the controller 140 reaches a predetermined condition, the application management unit 170 determines whether or not to reconstruct the controller 140 operated by the VM 130 that has reached the predetermined condition or the controller 140 that has reached the predetermined condition as the target for reconstruction. The predetermined condition is reached, for example, when the operating time of the VM 130 exceeds a predetermined time.

ここで、アプリケーション管理部170は、システム環境によって、所定条件に基づいて再起動対象を特定するための基準を変化させることができる。例えば、アプリケーション管理部170は、各VM130に割り当てられたメモリサイズにより、特定のコントローラ140を再構築対象とする判断基準である稼働時間を変化させる。すなわち、アプリケーション管理部170は、搭載メモリサイズと係数とを乗算して所定条件における判定基準である稼働時間を算出する。例えば、VM130に割り当てられたメモリサイズが4GBの場合、アプリケーション管理部170は、所定条件における判定基準である稼働時間を4×1日=4日と算出する。また、VM130に割り当てられたメモリサイズが8GBの場合、アプリケーション管理部170は、所定条件における判定基準である稼働時間を8×1日=8日と算出する。 Here, the application management unit 170 can change the criteria for identifying the target to be restarted based on the predetermined conditions depending on the system environment. For example, the application management unit 170 changes the operating time, which is the criterion for determining whether a specific controller 140 is to be rebuilt, depending on the memory size allocated to each VM 130. That is, the application management unit 170 multiplies the installed memory size by a coefficient to calculate the operating time, which is the criterion for the predetermined conditions. For example, when the memory size allocated to the VM 130 is 4 GB, the application management unit 170 calculates the operating time, which is the criterion for the predetermined conditions, as 4 x 1 day = 4 days. Also, when the memory size allocated to the VM 130 is 8 GB, the application management unit 170 calculates the operating time, which is the criterion for the predetermined conditions, as 8 x 1 day = 8 days.

再構築要求をVM130から受けた場合及び再起動対象のコントローラ140を自ら決定した場合のいずれの場合も、アプリケーション管理部170は、以下の再構築の可否の判定処理を実行する。以下に、アプリケーション管理部170による再構築の可否の判定処理の詳細について説明する。 In either case, when a reconfiguration request is received from the VM 130 or when the application management unit 170 itself determines which controller 140 to restart, the application management unit 170 executes the following process for determining whether or not reconfiguration is possible. The details of the process performed by the application management unit 170 for determining whether or not reconfiguration is possible are described below.

アプリケーション管理部170は、同一制御演算を実行するコントローラ140の総数を選択処理部160から取得する。次に、アプリケーション管理部170は、同一制御演算を実行するコントローラ140の総数から、再構築対象のコントローラ140の数を減算して、再構築中に稼働する同一制御演算を実行するコントローラ140の数を算出する。以下では、再構築中に稼働する同一制御演算を実行するコントローラ140を、「再構築中に稼働するコントローラ140」と呼ぶ。そして、アプリケーション管理部170は、再構築中に稼働するコントローラ140により、制御システム1の信頼性を確保できるか否かを判定する。制御システム1の信頼性を確保できるとは、選択処理部160が多数決ロジックで正しいと思われる演算値を選択する信頼性を確保できることである。すなわち、制御システム1の信頼性が確保できれば、制御装置10が駆動装置30を正常に駆動させることができる。 The application management unit 170 obtains the total number of controllers 140 that execute the same control operation from the selection processing unit 160. Next, the application management unit 170 subtracts the number of controllers 140 to be reconstructed from the total number of controllers 140 that execute the same control operation to calculate the number of controllers 140 that execute the same control operation during reconstruction. Hereinafter, the controllers 140 that execute the same control operation during reconstruction will be referred to as "controllers 140 that operate during reconstruction". Then, the application management unit 170 judges whether the reliability of the control system 1 can be ensured by the controllers 140 that operate during reconstruction. Ensuring the reliability of the control system 1 means ensuring the reliability of the selection processing unit 160 to select a calculation value that is considered to be correct by majority logic. In other words, if the reliability of the control system 1 can be ensured, the control device 10 can drive the drive device 30 normally.

例えば、アプリケーション管理部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 application management unit 170 determines that the reliability of the control system 1 can be ensured. Here, an example will be described in which the total number of controllers 140 executing the same control operation is five. If there is one controller 140 to be reconstructed, the application management unit 170 determines that the reliability of the control system 1 can be ensured because the number of controllers 140 operating during reconstruction is four, which is more than half of the original total number. On the other hand, if there are three controllers 140 to be reconstructed, the application management unit 170 determines that it is difficult to ensure the reliability of the control system 1 because the number of controllers 140 operating during reconstruction is two, which is less than half of the original total number.

制御システム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 application management unit 170 determines that the reconstructing of the controller 140 to be reconstructed can be performed. Then, the application management unit 170 instructs the target VM 130 on which the controller 140 to be reconstructed operates to reconstruct the controller 140 operated by that VM 130. That is, the application management unit 170 determines whether the reliability of the output value by the selection processing unit 160 can be ensured by the calculation of the controller 140 other than the controller 140 to be reconstructed, with one or several of the controllers 140 as the reconstructing target, and performs the reconstructing of the controller 140 to be reconstructed if the reliability can be ensured. In addition, the application management unit 170 determines whether to reconstruct each controller 140 based on the operating state of the VM 130 and the controller 140, determines whether the reliability can be ensured by the calculation of the controller 140 other than the controller 140 to be reconstructed, and performs the reconstructing of the controller 140 to be reconstructed if the reliability can be ensured.

これに対して、制御システム1の全体の信頼性を確保できないと判定した場合、アプリケーション管理部170は、再構築の実行を一定の再判定時間保留する。再判定時間は、例えば、1分とすることができる。再判定時間の経過後、アプリケーション管理部170は、再構築の可否の判定処理を再実行する。 In contrast, if it is determined that the overall reliability of the control system 1 cannot be ensured, the application management unit 170 postpones the execution of reconstruction for a certain re-evaluation time. The re-evaluation time can be, for example, one minute. After the re-evaluation time has elapsed, the application management unit 170 re-executes the process of determining whether reconstruction is possible.

再構築の可否の判定処理を繰り返す場合、アプリケーション管理部170は、一定の上限時間に達したか否かを判定する。上限時間は、例えば、5分とすることができる。上限時間を経過しても再構築が実行できない場合、アプリケーション管理部170は、OS120に新たなVM130及びコントローラ140の起動を指示する。そして、新たなコントローラ140が増えた後、アプリケーション管理部170は、新たなコントローラ140が加えられた同一制御演算を実行するコントローラ140の総数を選択処理部160から取得する。その後、アプリケーション管理部170は、取得した新たな総数を用いて、再構築の可否の判定処理を再度実行する。 When repeating the process of determining whether reconstruction is possible, the application management unit 170 determines whether a certain upper limit time has been reached. The upper limit time can be, for example, five minutes. If reconstruction cannot be performed even after the upper limit time has elapsed, the application management unit 170 instructs the OS 120 to start up a new VM 130 and controller 140. Then, after the new controller 140 is added, the application management unit 170 obtains from the selection processing unit 160 the total number of controllers 140 that execute the same control operation, including the new controller 140. The application management unit 170 then uses the obtained new total number to perform the process of determining whether reconstruction is possible again.

ここで、アプリケーション管理部170が用いる再構築の可否の判定ロジックは、対象とするコントローラ140が実行する同一制御演算に求められる信頼性によって可変である。例えば、アプリケーション管理部170は、以下のように再起動の可否の判定ロジックを異ならせることができる。すなわち、コントローラ140が実行する同一制御演算に高信頼が求められる場合、アプリケーション管理部170は、過半数以上が稼働すれば(5台中3台が稼働するなどの状態)、制御システム1の全体の信頼性を確保でき、再起動を実行すると判定する。これに対して、コントローラ140が実行する同一制御演算に高信頼性が求められない場合、アプリケーション管理部170は、複数台が稼働すれば(5台中2台が稼働するなどの状態)、制御システム1の全体の信頼性を確保でき、再起動を実行すると判定する。 Here, the logic used by the application management unit 170 to determine whether or not to reconstruct can be varied depending on the reliability required for the same control calculation executed by the target controller 140. For example, the application management unit 170 can vary the logic to determine whether or not to restart as follows. That is, when high reliability is required for the same control calculation executed by the controllers 140, the application management unit 170 determines that the reliability of the entire control system 1 can be ensured and a restart should be executed if more than half of the controllers are operating (e.g., three out of five controllers are operating). On the other hand, when high reliability is not required for the same control calculation executed by the controllers 140, the application management unit 170 determines that the reliability of the entire control system 1 can be ensured and a restart should be executed if multiple controllers are operating (e.g., two out of five controllers are operating).

他にも、アプリケーション管理部170は、再構築中に稼働するコントローラ140の数に3以上などと最低数の条件を加えて、再起動の可否の判定を行ってもよい。ただし、再構築中に動作するコントローラ140の数は2台よりは3台、3台よりは4台の方が最終的に正しい出力を選択処理部160が選択できる可能性は高くなる。そこで、再構築中に動作するコントローラ140の最低数は、運用状態に合わせて設定されることが好ましい。 The application management unit 170 may also determine whether or not to restart by adding a minimum number condition, such as three or more, to the number of controllers 140 operating during reconstruction. However, the selection processing unit 160 is more likely to ultimately select the correct output if the number of controllers 140 operating during reconstruction is three rather than two, and four rather than three. Therefore, it is preferable that the minimum number of controllers 140 operating during reconstruction be set according to the operational status.

[再構築処理]
図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 control device 10 according to the first embodiment will be described with reference to FIG.

アプリケーション管理部170は、再構築要求をVM130から受信する(ステップS101)。 The application management unit 170 receives a reconstruction request from the VM 130 (step S101).

次に、アプリケーション管理部170は、同一制御演算を実行するコントローラ140の総数を選択処理部160から取得する(ステップS102)。 Next, the application management unit 170 obtains the total number of controllers 140 that execute the same control calculation from the selection processing unit 160 (step S102).

次に、アプリケーション管理部170は、再構築要求の送信元である再構築対象のコントローラ140を停止しても制御システム1の信頼性が確保可能か否かを判定する(ステップS103)。 Next, the application management unit 170 determines whether the reliability of the control system 1 can be ensured even if the controller 140 to be reconstructed, which is the sender of the reconstruction request, is stopped (step S103).

再構築対象のコントローラ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 application management unit 170 instructs the VM 130 that operates the controller 140 to be rebuilt to perform a rebuilt operation (step S104). Then, the application management unit 170 ends the rebuilt process.

これに対して、再構築対象のコントローラ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 application management unit 170 waits for a re-evaluation time, which is a predetermined fixed period of time (step S105).

次に、アプリケーション管理部170は、再起動判定時間よりも長い予め決められた一定時間である上限時間が経過したか否かを判定する(ステップS106)。上限時間が経過していない場合(ステップS106:否定)、アプリケーション管理部170は、ステップS102へ戻る。 Next, the application management unit 170 determines whether or not the upper limit time, which is a predetermined fixed time longer than the restart judgment time, has elapsed (step S106). If the upper limit time has not elapsed (step S106: No), the application management unit 170 returns to step S102.

これに対して、上限時間が経過した場合(ステップS106:肯定)、アプリケーション管理部170は、新たなVM130及びコントローラ140の起動をOS120に指示する(ステップS107)。その後、アプリケーション管理部170は、ステップS102へ戻る。 On the other hand, if the upper limit time has elapsed (step S106: Yes), the application management unit 170 instructs the OS 120 to start up a new VM 130 and controller 140 (step S107). After that, the application management unit 170 returns to step S102.

図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 application management unit 170 in the control device 10 according to embodiment 1 will be described with reference to Figure 3.

アプリケーション管理部170は、VM130やコントローラ140の稼働時間などから再構築対象のコントローラ140を決定する(ステップS201)。 The application management unit 170 determines the controller 140 to be rebuilt based on the operating time of the VM 130 and the controller 140, etc. (step S201).

次に、アプリケーション管理部170は、同一制御演算を実行するコントローラ140の総数を選択処理部160から取得する(ステップS202)。 Next, the application management unit 170 obtains the total number of controllers 140 that execute the same control calculation from the selection processing unit 160 (step S202).

次に、アプリケーション管理部170は、再構築対象のコントローラ140を停止しても制御システム1の信頼性が確保可能か否かを判定する(ステップS203)。 Next, the application management unit 170 determines whether the reliability of the control system 1 can be ensured even if the controller 140 to be rebuilt is stopped (step S203).

再構築対象のコントローラ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 application management unit 170 instructs the VM 130 that operates the controller 140 to be rebuilt to perform the rebuilt operation (step S204). Then, the application management unit 170 ends the rebuilt process.

これに対して、再構築対象のコントローラ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 application management unit 170 waits for a re-evaluation time, which is a predetermined fixed period of time (step S205).

次に、アプリケーション管理部170は、再起動判定時間よりも長い予め決められた一定時間である上限時間が経過したか否かを判定する(ステップS206)。上限時間が経過していない場合(ステップS206:否定)、アプリケーション管理部170は、ステップS202へ戻る。 Next, the application management unit 170 determines whether or not the upper limit time, which is a predetermined fixed time longer than the restart judgment time, has elapsed (step S206). If the upper limit time has not elapsed (step S206: No), the application management unit 170 returns to step S202.

これに対して、上限時間が経過した場合(ステップS206:肯定)、アプリケーション管理部170は、新たなVM130及びコントローラ140の起動をOS120に指示する(ステップS207)。その後、アプリケーション管理部170は、ステップS202へ戻る。 On the other hand, if the upper limit time has elapsed (step S206: Yes), the application management unit 170 instructs the OS 120 to start up a new VM 130 and controller 140 (step S207). After that, the application management unit 170 returns to step S202.

ここで、本実施例では、VM130やコントローラ140の状態が所定条件に達した場合にアプリケーション管理部170が再起動対象とするVM130を決定したが、再起動対象を決定する処理は各VM130が行ってもよい。その場合、VM130は、VM130やコントローラ140の状態が所定条件に達した場合もソフトウェアエラーの予測の場合と同様に、再起動対象としたVM130やコントローラ140の再起動の指示をアプリケーション管理部170に通知する。 In this embodiment, the application management unit 170 determines which VM 130 is to be restarted when the state of the VM 130 or the controller 140 reaches a predetermined condition, but the process of determining which VM 130 is to be restarted may be performed by each VM 130. In this case, the VM 130 notifies the application management unit 170 of an instruction to restart the VM 130 or the controller 140 determined to be the restart target when the state of the VM 130 or the controller 140 reaches a predetermined condition, just as in the case of predicting a software error.

例えば、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 application management unit 170 of a reconstruction request. In this case, application management unit 170 determines the controller 140 to be reconstructed based on the notification from VM 130, and executes a process to determine whether reconstruction is possible.

[効果]
以上に説明したように、本実施の形態に係る制御システム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 hardware 110, but the system configuration is not limited to this.

例えば、ハードウェア110において複数のOS120が動作し、各OS120上で1つ又は複数のVM130が動作してもよい。また、ハードウェア110が複数存在し、それぞれで1つ又は複数のVM130が動作してもよい。その場合、いずれかのハードウェア110の選択処理部160及びアプリケーション管理部170が、複数のハードウェア110にまたがって演算値の選択処理やVM130の再構築を統括してもよい。 For example, multiple OSs 120 may run on the hardware 110, and one or more VMs 130 may run on each OS 120. Also, there may be multiple pieces of hardware 110, each of which may run one or more VMs 130. In this case, the selection processing unit 160 and application management unit 170 of any one of the hardware 110 may oversee the selection processing of computation values and the reconstruction of VMs 130 across multiple pieces of hardware 110.

さらに、1つ又は複数のコントローラ140が、ハードウェア110から物理的に独立してもよい。また、ハードウェア110上で動作するコントローラ140と、物理的に独立したコントローラ140とが共存してもよい。また、アプリケーション管理部170及び選択処理部160が、VM130及びコントローラ140とは異なるハードウェア110上で動作してもよい。 Furthermore, one or more controllers 140 may be physically independent from the hardware 110. Also, a controller 140 that operates on the hardware 110 and a physically independent controller 140 may coexist. Also, the application management unit 170 and the selection processing unit 160 may operate on hardware 110 that is different from the VM 130 and the controller 140.

図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 control devices 10. Furthermore, the control system 1 has two physical controllers 400 in which controllers 402 operate on controller-dedicated hardware 401. The controllers 402 can perform the same control calculations as the controller 140. In addition to the physical controllers 400, the controllers 402 may be placed on a server on the cloud or a network.

この場合、2つの制御装置10のいずれかの選択処理部160及びアプリケーション管理部170が、全てのVM130、並びに、コントローラ140及び402の演算値の選択処理やVM130の再構築を行ってもよい。もしくは、異なる同一制御演算を行なう複数のグループにコントローラ140及び402が分けられる場合、グループ毎に担当する選択処理部160及びアプリケーション管理部170を割り当ててもよい。 In this case, the selection processing unit 160 and application management unit 170 of one of the two control devices 10 may select the calculation values of all VMs 130 and controllers 140 and 402, and reconstruct the VMs 130. Alternatively, if the controllers 140 and 402 are divided into multiple groups that perform different identical control calculations, a selection processing unit 160 and application management unit 170 in charge of each group may be assigned.

ここで、再構築対象となったコントローラ140を動作させるVM130が他のVM130とは異なるOS120で動作する場合、コントローラ140の再構築には、OS120の再起動、OS120を停止した後に起動、及び、OS120の再インストールなどが含まれてもよい。 Here, if the VM 130 that runs the controller 140 to be rebuilt runs on an OS 120 different from that of the other VMs 130, rebuilding the controller 140 may include rebooting the OS 120, stopping and then starting the OS 120, and reinstalling the OS 120.

[実施の形態2]
次に、実施の形態2について説明する。本実施の形態に係る制御装置10も、図1のブロック図で表される。本実施の形態に係る制御装置10は、動作の特異なコントローラ140を特定して再構築要求を行なう。以下の説明では、実施の形態1と同様の各部の動作については説明を省略する。
[Embodiment 2]
Next, a second embodiment will be described. A control device 10 according to this embodiment is also shown in the block diagram of FIG. 1. The control device 10 according to this embodiment identifies a controller 140 that is operating peculiarly and issues a reconfiguration request. In the following description, the operation of each unit similar to that of the first embodiment will be omitted.

選択処理部160は、演算値を各コントローラ140から受信する。そして、選択処理部160は、演算値の受信結果から動作の特異なコントローラ140を特定する。その後、選択処理部160は、特定した動作の特異なコントローラ140の再構築要求をアプリケーション管理部170へ出力する。 The selection processing unit 160 receives the calculation values from each controller 140. The selection processing unit 160 then identifies the controller 140 with peculiar behavior from the received calculation values. The selection processing unit 160 then outputs a reconstruction request for the identified controller 140 with peculiar behavior to the application management unit 170.

例えば、選択処理部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 selection processing unit 160 identifies the specific controller 140 as a controller 140 with a unique operation. The selection processing unit 160 may determine that the calculation results of the specific controller 140 differ when the calculation results differ once, or may determine that the calculation results of the specific controller 140 differ when the calculation results differ multiple times. Furthermore, the selection processing unit 160 may determine that the calculation results of the specific controller 140 differ when the calculation results differ a predetermined number of times in succession, or may determine that the calculation results of the specific controller 140 differ when the cumulative number of times they differ reaches a predetermined number.

他にも、例えば一定時間の範囲で演算結果を受信する設計だった場合に、選択処理部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 selection processing unit 160 identifies the specific controller 140 as a controller 140 with a peculiar operation. This is because it is assumed that the processing power of the controller 140 is reduced due to, for example, a memory leak, and so the selection processing unit 160 identifies a specific controller 140 with a delay of more than a certain time as a controller 140 with a peculiar operation. Here, since the timing at which calculation results arrive at the selection processing unit 160 from multiple applications may differ, the selection processing unit 160 may have a function of waiting for the arrival of the calculation results for a certain period of time.

さらに、選択処理部160は、同一制御演算の演算値のうち選択されなかった演算値を出力したコントローラ140を、動作の特異なコントローラ140として特定してもよい。 Furthermore, the selection processing unit 160 may identify a controller 140 that outputs an unselected calculation value among the calculation values of the same control calculation as a controller 140 with a peculiar operation.

このように、選択処理部160は、アプリケーションであるコントローラ140のそれぞれの演算結果を受信した結果を基に、コントローラ140の異常動作を検出する。 In this way, the selection processing unit 160 detects abnormal operation of the controller 140 based on the results of the calculations received from each of the controllers 140, which are applications.

また、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 application management unit 170.

アプリケーション管理部170は、動作の特異なコントローラ140の再構築要求を選択処理部160から受ける。そして、アプリケーション管理部170は、動作の特異なコントローラ140として指定されたコントローラ140を再構築対象として、再構築の可否の判定処理を行う。アプリケーション管理部170は、再構築の実行が可能であれば、指定された動作の特異なコントローラ140を動作させるVM130に再構築を指示する。 The application management unit 170 receives a request to reconstruct the controller 140 with peculiar behavior from the selection processing unit 160. Then, the application management unit 170 performs a process of determining whether or not reconstruction is possible, with the controller 140 designated as the controller 140 with peculiar behavior as the reconstructing target. If reconstruction is possible, the application management unit 170 instructs the VM 130 that operates the designated controller 140 with peculiar behavior to reconstruct.

また、アプリケーション管理部170は、自己が動作させるコントローラ140の動作が特異であると判定したVM130から再構築要求を受けてもよい。そして、アプリケーション管理部170は、再構築要求の送信元のVM130が動作させるコントローラ140を再構築対象とする。その後、アプリケーション管理部170は、再構築の可否の判定処理を行い、再構築が可能であれば動作の特異なコントローラ140を動作させるVM130に再構築を指示する。 The application management unit 170 may also receive a reconstruction request from a VM 130 that has determined that the operation of the controller 140 operated by the application management unit 170 is peculiar. The application management unit 170 then targets the controller 140 operated by the VM 130 that sent the reconstruction request as the reconstruction target. The application management unit 170 then performs a process to determine whether reconstruction is possible, and if reconstruction is possible, instructs the VM 130 operating the controller 140 with peculiar operation to perform reconstruction.

このように、アプリケーション管理部170は、選択処理部160により検出された動作の特異なコントローラ140を再構築対象として、再構築対象以外のコントローラ140の演算により信頼性を確保できるか否かを判定し、信頼性が確保できる場合に再構築対象のコントローラ140の再構築を実行する。 In this way, the application management unit 170 sets the controller 140 whose operation is peculiar, detected by the selection processing unit 160, as the target for reconstruction, determines whether reliability can be ensured by calculations of controllers 140 other than the target for reconstruction, and performs reconstruction of the controller 140 to be reconstructed if reliability can be ensured.

以上に説明したように、本実施例に係る制御システム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 control device 10 will be described. Fig. 5 is a hardware configuration diagram of the control device. As shown in Fig. 5, the control device 10 has a processor 91, a memory 92, a communication device 93, and a HDD (Hard Disk Drive) 94. The processor 91, the memory 92, the communication device 93, and the HDD 94 are examples of the hardware 110 illustrated in Fig. 1. The processor 91 is connected to the memory 92, the communication device 93, and the HDD 94 via a bus.

通信装置93は、ネットワークインタフェースカードなどであり、他の情報処理装置との通信に使用される。例えば、制御装置10が複数存在する場合、通信装置93は、異なる制御装置10のプロセッサ91間の通信を中継する。 The communication device 93 is a network interface card or the like, and is used for communication with other information processing devices. For example, if there are multiple control devices 10, the communication device 93 relays communication between the processors 91 of the different control devices 10.

HDD94は、補助記憶装置である。HDD94は、図1に例示した、OS120、VM131~133、コントローラ141~143、APP151~153、選択処理部160及びアプリケーション管理部170の機能を実現するプログラムを含む各種プログラムを格納する。 The HDD 94 is an auxiliary storage device. The HDD 94 stores various programs including programs that realize the functions of the OS 120, VMs 131-133, controllers 141-143, APPs 151-153, selection processing unit 160, and application management unit 170 illustrated in FIG. 1.

プロセッサ91は、HDD94に格納された各種プログラムを読み出してメモリ92に展開して実行する。これにより、プロセッサ91は、図1に例示した、OS120、VM131~133、コントローラ141~143、APP151~153、選択処理部160及びアプリケーション管理部170の機能を実現する。 The processor 91 reads various programs stored in the HDD 94, expands them into the memory 92, and executes them. In this way, the processor 91 realizes the functions of the OS 120, VMs 131 to 133, controllers 141 to 143, APPs 151 to 153, selection processing unit 160, and application management unit 170, all of which are illustrated in FIG. 1.

このように制御装置10は、プログラムを読み出して実行することで各種処理方法を実行する情報処理装置として動作する。また、制御装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、ここでいうプログラムは、制御装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。 In this way, the control device 10 operates as an information processing device that executes various processing methods by reading and executing programs. The control device 10 can also realize functions similar to those of the above-mentioned embodiments by reading the above programs from a recording medium using a media reading device and executing the read programs. Note that the programs referred to here are not limited to those executed by the control device 10. For example, the present invention can be similarly applied to cases where other computers or servers execute programs, or where these execute programs in cooperation with each other.

このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(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 Control system 10 Control device 11 Input device 12 Output device 20 Sensor 30 Drive device 110 Hardware 120 OS
130-133 VM (Virtual Machine)
140 to 143 Controller 150 to 153 APP
160 Selection processing unit 170 Application management unit

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 control device according to claim 1, characterized in that the application management unit determines whether or not to reconstruct each of the applications based on the operating state of the applications, determines whether or not the reliability can be ensured by calculation of the applications other than the one 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.
前記アプリケーション管理部は、前記再構築対象の前記アプリケーションの、停止及び起動、又は、再インストールを行うことで、前記再構築対象の前記アプリケーションを再構築することを特徴とする請求項1に記載の制御装置。 The control device according to claim 1, characterized in that the application management unit reconstructs the application to be reconstructed by stopping and starting the application to be reconstructed, or by reinstalling the application. 前記アプリケーション管理部は、再構築中に前記選択処理部による出力の信頼性を確保可能な数以上の前記アプリケーションが動作するように制御することを特徴とする請求項1に記載の制御装置。 The control device according to claim 1, characterized in that the application management unit controls the number of applications to be operated so that the number of applications that can ensure the reliability of the output by the selection processing unit during reconstruction is equal to or greater than the number of applications that can be operated. 前記選択処理部は、新しいアプリケーションからの出力を受信した場合、前記所定演算を実行するアプリケーションの数を1つ増やし、前記アプリケーションの異常を検知した場合、前記所定演算を実行するアプリケーションの数を1つ減らして、前記選択処理部による出力の信頼性を確保できるか否かの判定を行なうことを特徴とする請求項1に記載の制御装置。 The control device according to claim 1, characterized in that the selection processing unit, when receiving an output from a new application, increases the number of applications that execute the specified calculation by one, and when detecting an abnormality in the application, decreases the number of applications that execute the specified calculation by one, and determines whether the reliability of the output by the selection processing unit can be ensured. 前記アプリケーションは、工業プロセスに対する制御値を算出するための前記所定演算を実行するアプリケーションであることを特徴とする請求項1に記載の制御装置。 The control device according to claim 1, characterized in that the application is an application that executes the predetermined calculation to calculate a control value for an industrial process. プラント施設に配置されたセンサからの計測結果の入力を受ける入力装置、前記プラント施設に設けられた機構を駆動する駆動装置を駆動させる出力装置及び制御装置を有する制御システムであって
前記制御装置は、
前記入力装置に入力された前記センサによる計測結果を基に所定演算を実行するアプリケーションを各々が動作させる複数の仮想マシンと、
前記アプリケーションのそれぞれの演算結果を基に出力する演算結果を選択し、選択した演算結果を前記出力装置から出力させて前記駆動装置を駆動させる選択処理部と、
前記アプリケーションのいずれか一つ又はいくつかを再構築対象として、再構築対象以外の前記アプリケーションの演算により前記選択処理部による出力の信頼性を確保できるか否かを、前記アプリケーションが実行する前記所定演算に求められる信頼性に応じて判定ロジックを異ならせて判定し、前記信頼性が確保できる場合に前記再構築対象の前記アプリケーションの再構築を実行するアプリケーション管理部と
を備えたことを特徴とする制御システム。
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.
JP2022111401A 2022-07-11 2022-07-11 Control device, control system, control method, and control program Active JP7694489B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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