JP7132257B2 - 制御システム - Google Patents

制御システム Download PDF

Info

Publication number
JP7132257B2
JP7132257B2 JP2020017325A JP2020017325A JP7132257B2 JP 7132257 B2 JP7132257 B2 JP 7132257B2 JP 2020017325 A JP2020017325 A JP 2020017325A JP 2020017325 A JP2020017325 A JP 2020017325A JP 7132257 B2 JP7132257 B2 JP 7132257B2
Authority
JP
Japan
Prior art keywords
control
node
program
command
unit
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
JP2020017325A
Other languages
English (en)
Other versions
JP2021124907A (ja
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020017325A priority Critical patent/JP7132257B2/ja
Priority to PCT/JP2020/038321 priority patent/WO2021157134A1/ja
Priority to EP20917997.7A priority patent/EP4102314A4/en
Priority to US17/794,248 priority patent/US11734201B2/en
Publication of JP2021124907A publication Critical patent/JP2021124907A/ja
Application granted granted Critical
Publication of JP7132257B2 publication Critical patent/JP7132257B2/ja
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/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Description

本発明は、例えばファクトリーオートメーション(FA)やプロセスオートメーション(PA)の分野において、コンピュータを用いて制御を行う制御システムに関する。
一般にファクトリー・オートメーション(FA)やプロセス・オートメーション(PA)の分野では、工場などにおける製造工程や化学製品などの生産工程などに、コンピュータを用いた制御システムが導入される。制御システムは、プログラマブル・ロジック・コントローラ(PLC)などのコンピュータがコンピュータプログラムを実行することで制御を行う。
こうした制御システムの処理概要を説明する。コンピュータは、温度や圧力、回転数など制御に必要となる情報をセンサから取得する。コンピュータは、その情報に基づき、アクチュエータやモータなどを操作する。制御する内容はプログラムに定義され、コンピュータはプログラムを実行することで制御を行う。制御は適切なタイミングで実施される必要があり、適切なタイミングに制御できる性能や度合いを「定時性」という。
例えば、特許文献1には、シーケンシャルな制御ロジック(各種判断等)をPLCで実行し、複雑な演算処理(収束演算等の数値演算)を汎用OS上で実行し、処理すべき機能を振り分けるようにしたプラント制御システムが開示されている。
特開2009-093375号公報
近年、自動車の自動運転に代表される人工知能技術の発展がある。人工知能技術の分野では、ディープラーニングの推論処理などの複雑な計算処理による高度な判断処理を制御システムに導入することが求められている。この判断処理の実現には以下のような問題がある。
(問題点1)
制御システムは、定時性高く制御を行う必要がある。PLCなどは定時性の高いリアルタイムオペレーティングシステム(OS)上でプログラムを実行することで定時性を確保している。リアルタイムOSは、時間的な制約がある処理を実行するための機能や特性を備える。一方、推論処理のように複雑な処理を行うプログラムは、汎用OS上での実行を前提に開発されている場合があり、リアルタイムOS上で実行することは困難である。
(問題点2)
工場の製造工程などでは、設備を数ヶ月から数年にわたり稼動し続ける場合があり、制御システムを停止させないことを前提としている。一方で、制御システムに新たな機能を追加するためには、一時的に制御システムを停止する必要がある。また、老朽化により制御システムを構成するソフトウェア又はハードウェアの交換が必要となる場合であっても、頻繁に停止することはできず、交換が先送りにされる場合がある。
前述の通り、制御システムは動作し続けることが求められる。そのため2台以上のコンピュータを用いて制御システムを冗長化構成とし、1台のコンピュータが故障しても制御システムの動作を継続することが行われる。この際、各コンピュータが実行するプログラムは、他のコンピュータのプログラムとタイミングや情報を同期し、故障時にも定時性を損なわない性能を備える必要があり、難易度が高い。
このような高い定時性が要求される制御システムを稼動させたまま、制御システムのプログラムやコンピュータ等を変更する技術については、特許文献1に開示されていない。
本発明は、上記の状況に鑑みてなされたものであり、本発明は、定時性を保ちながら、制御システムを停止させることなく、制御システムで用いるリソースの変更を可能にすることを目的とする。
上記課題を解決するために、本発明の一態様の制御システムは、少なくとも1台の制御ノードと、1台以上の制御対象機器に接続され、ネットワークを介して制御ノードと通信可能な少なくとも1台のI/Oノードと、から構成される。
上記制御ノードは、第1のオペレーティングシステムと、少なくとも1個の制御プログラムを第1のオペレーティングシステム上で実行する第1のプロセッサと、を備える。
上記I/Oノードは、第1のオペレーティングシステムよりも定時性の高い第2のオペレーティングシステムと、少なくとも1個のI/Oプログラムを第2のオペレーティングシステム上で実行する第2のプロセッサと、を備える。
上記制御ノードの制御プログラムは、制御対象機器に関して予め設定された状態制御に基づいて制御指令を生成し、当該制御指令をI/Oノードに送信する判断実行部を有する。
上記I/OノードのI/Oプログラムは、制御ノードから受信した制御指令を記憶部に記憶し、その記憶部に記憶された制御指令に従って制御対象機器に関する処理を実行する制御指令実行部を有する。
本発明の少なくとも一態様によれば、定時性を保ちながら、制御システムを停止させることなく、制御システムで用いるリソースの変更が可能になる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
本発明の第1の実施形態に係る制御システムの全体構成の例を示すブロック図である。 本発明の第1の実施形態に係る制御システムの制御プログラムとI/Oプログラムの論理構成の例を示すブロック図である。 制御指令の持つ情報の例を示す図表である。 送信データの持つ情報の例を示す図表である。 判断実行部による処理の手順例を示すフローチャートである。 制御指令実行部の制御指令受付処理の手順例を示すフローチャートである。 制御指令実行部の周期処理の手順例を示すフローチャートである。 制御指令実行部における制御指令の実行タイミングの例を表した図表である。 指令切替部の制御指令処理の手順例を示すフローチャートである。 指令切替部の切替信号処理の手順例を示すフローチャートである。 切替信号送信画面の例を示す図表である。 本発明の第2の実施形態に係る制御ノードに導入された構成管理プログラムの論理構成の例を示すブロック図である。 本発明の第2の実施形態に係る制御システムの全体構成の例を示すブロック図である。 構成管理プログラムが利用する制御プログラム管理テーブルの構造の例を示す図表である。 構成管理プログラムが利用する制御ノード管理テーブルの構造の例を示す図表である。 マスタ選出部の開始処理の手順例を示すフローチャートである。 マスタ選出部の制御ノード管理処理の手順例を示すフローチャートである。 テーブル同期部の同期処理の手順例を示すフローチャートである。 制御プログラム登録画面の例を示す図表である。 プログラム登録部のプログラム登録処理の手順例を示すフローチャートである。 プログラム配置部のプログラム配置処理の手順例を示すフローチャートである。 プログラム配置部のプログラム実行処理の手順例を示すフローチャートである。 指令切替部の構成通知処理の手順例を示すフローチャートである。 本発明の第2の実施形態に係る制御指令の切替動作の例を示すブロック図である。 異常監視部の監視処理の手順例を示すフローチャートである。 制御ノード異常警告画面の例を示す図表である。 異常監視部の回復処理の手順例を示すフローチャートである。 本発明の第2の実施形態の第1の変形例に係る制御ノードに常用監視プログラムを導入した例を示すブロック図である。 本発明の第2の実施形態の第2の変形例に係る1台の制御ノード上で複数の制御プログラムを動作させる例を示すブロック図である。 本発明の第1の実施形態に係る制御システムの制御プログラムとI/Oプログラムの実行タイミングの例を示す図表である。 本発明の第3の実施形態に係る制御システムの全体構成の例を示すブロック図である。 本発明の第3の実施形態に係る制御システムの制御プログラムとI/Oプログラムの実行タイミングの例を示す図表である。 スケールアウト構成設定画面の例を示す図表である。 送信処理部のスケールアウト構成開始処理の手順例を示すフローチャートである。 送信元リストの構造の例を示す図表である。 スケールアウト構成テーブルの構造の例を示す図表である。 送信処理部の送信処理の手順例を示すフローチャートである。 本発明の第4の実施形態に係る制御システムの全体構成の例を示すブロック図である。 1台のI/Oノードを用いる場合、及び本発明の第4の実施形態に係る2台のI/Oノード(常用、待機)を用いる場合のそれぞれのI/Oプログラムの実行タイミングの例を示す図表である。 1台のI/Oノードを用いる場合、及び本発明の第4の実施形態に係る2台のI/Oノード(常用、待機)を用いて制御周期をずらした場合のそれぞれのI/Oプログラムの実行タイミングの例を示す図表である。
以下、本発明を実施するための形態の例について、添付図面を参照して説明する。本明細書及び添付図面において実質的に同一の機能又は構成を有する構成要素については、同一の符号を付して重複する説明を省略する。
<1.第1の実施形態>
[制御システムの全体構成]
まず、本発明の第1の実施形態に係る制御システムの構成例について説明する。
図1は、第1の実施形態に係る制御システムの全体構成の例を示すブロック図である。
図1に示す制御システム100は、制御ノード1、I/Oノード2、HMIノード3、制御対象の機器4、及び、各ノードを相互に通信可能に接続したネットワーク5を含んで構成される。制御システム100において、制御ノード1は少なくとも1台以上であり、I/Oノード2も少なくとも1台以上である。
機器4は、例えば工場の生産設備として用いられる機器であり、機器4に所望の動作をさせることが制御システム100の目標である。機器4は、センサ40とアクチュエータ41を持つ。図1ではセンサ40とアクチュエータ41をそれぞれ1つのみ示しているが、実際には、複数個ある場合や、センサ40又はアクチュエータ41のどちらか一方のみを持つ場合もある。
センサ40は、機器4やその周辺の環境の状態を把握するための装置である。アクチュエータ41は、機器4に実際の動作を行わせたり、動作を変更させたりするための装置である。センサ40の例としては、温度計、流量計、電圧計、スイッチ、ビデオカメラ、カウンタなどが挙げられる。アクチュエータ41の例としては、モータ、シリンダー、電磁石、リレー、LED、ランプ、ブザーなどが挙げられる。当然のことながら、センサ40、アクチュエータ41とも上記に示す例に限定されない。
制御ノード1は、CPU(Central Processing Unit)10、記憶装置11(記憶部の例)、ネットワークインタフェース12、及びメモリ13から構成されるコンピュータである。CPU10は、第1のプロセッサの例である。CPU10の代わりに、MPU(Microprocessor)などの他のプロセッサを用いてもよい。メモリ13は、半導体メモリなどを用いた主記憶装置である。記憶装置11は、不揮発性の記憶装置であり、記憶装置11として、例えばハードディスクや半導体メモリなどが用いられる。
I/Oノード2も同様に、CPU20(第1のプロセッサ)、記憶装置21(記憶部の例)、ネットワークインタフェース22、及びメモリ23から構成されるコンピュータである。また、HMIノード(Human Machine Interface)3は、CPU30、記憶装置31、ネットワークインタフェース32、及びメモリ33から構成されるコンピュータである。
制御ノード1において、CPU10は、記憶装置11からメモリ13上に汎用OS14(第1のオペレーティングシステム)を読み込んで実行する。また、CPU10は、汎用OS14上で、1個以上の制御プログラム7を実行する。記憶装置11は、後述する各種テーブル等を記憶する。
I/Oノード2において、CPU20は、記憶装置21からメモリ23上にリアルタイムOS24(第2のオペレーティングシステム)を読み込んで実行する。また、CPU20は、リアルタイムOS24上で、I/Oプログラム8を実行する。記憶装置21は、後述する送信元リスト87等を記憶する。また、I/Oノード2はさらにI/Oインタフェース25を持ち、ケーブル6により機器4と接続している。
I/Oインタフェース25と機器4との間を接続するケーブル6、及び、その間の通信方式の具体例としては、ねじ端子を介し機器4を直接配線する方法や、機器4の持つインタフェースを介し、機器4で規定のプロトコルにより通信する方法が想定される。本実施形態においては、レイテンシ(遅延)が小さく機器4のセンサ40及びアクチュエータ41と通信可能であればいかなる方式でも構わない。通信に用いる規格の具体例としては、USB(Universal Serial Bus)、RS-232、Ethernet(登録商標)が挙げられ、Bluetooth(登録商標)等による無線通信によっても実現可能である。
HMIノード3において、CPU30は、記憶装置31よりメモリ33上に汎用OS34を読み込んで実行する。またCPU30は、汎用OS34上でHMIプログラム9を実行する。また、HMIノード3は、ディスプレイ35Aやキーボード35Bなどのユーザインタフェース35を備える。
制御ノード1、I/Oノード2、及びHMIノード3は、それぞれのネットワークインタフェース12,22,及び32を通してネットワーク5に接続している。ネットワーク5の通信方式の具体例として、Ethernet(登録商標)、CAN(Controller Area Network)(登録商標)などが挙げられる。ネットワーク5を通し、制御プログラム7、I/Oプログラム8、及びHMIプログラム9は、1対1及び1対多の通信が可能なUDP over IPといったプロトコルを用いて相互に通信する。
制御ノード1とI/Oノード2は、それぞれのCPUが実行する制御プログラム7、I/Oプログラム8の処理によって機器4の制御を実現する。以下、図2を参照して、制御プログラム7とI/Oプログラム8の機能構成を説明する。
[制御プログラムとI/Oプログラムの論理構成]
図2は、制御システム100の制御プログラム7とI/Oプログラム8の論理構成の例を示すブロック図である。
制御プログラム7は、判断実行部70、受信処理部71、及び送信処理部72を持つ。制御プログラム7の各部の機能については後述する。
I/Oプログラム8は、制御指令実行部80、受信処理部81、送信処理部82、指令切替部84、入力処理部85、出力処理部86、及び送信元リスト87を持つ。入力処理部85は、センサ40から情報(検出結果)を取得し、出力処理部86はアクチュエータ41に制御信号を送ってアクチュエータ41を操作する。I/Oプログラム8の各部の機能については後述する。
HMIプログラム9は、制御システム100の管理者36が制御システム100の状態の設定や確認を行うための複数の画面を持つ。画面はGUI(Graphical User Interface)として実装され、ユーザインタフェース35を介して制御システム100の管理者36に操作される。図2では、HMIプログラム9が切替信号送信画面90により生成された切替信号を、I/Oプログラム8の指令切替部84に送信する様子が示されている。切替信号送信画面90については、後述する図11において詳述する。指令切替部84は、受け取った制御指令73の送信元情報を送信元リスト87に登録する。
制御指令73は、制御プログラム7の判断実行部70によって生成される電文であり、特定の条件において、どのような処理、動作を行うかという指示が記されている。例えば、平易な表現で記せば、制御指令73は「30ミリ秒ごとにセンサ40の電圧値を制御プログラム7に送信せよ」、「時刻Xのタイミングでアクチュエータ41をYミリ秒間動作させよ」、「センサ40の電圧値の移動平均を計算せよ」といった内容である。
制御プログラム7からI/Oプログラム8に送信される制御指令73は、I/Oプログラム8の受信処理部81で順次受信される。受信処理部81は、受信した制御指令73を、記憶装置21(記憶部)の指令記憶エリア211に順次記憶する。
送信データ83は、制御指令73に従い、I/Oプログラム8の制御指令実行部80が生成して、制御プログラム7の判断実行部70に送信する情報を記した電文である。例えば、送信データ83には、センサ40の電圧値や、制御指令実行部80が計算した結果の値などが含まれる。判断実行部70は、送信データ83の内容を受信することで機器4の状態など必要な情報を取得する。
図3は、制御指令73が持つ情報の例を示す図表である。
制御指令73は、送信元欄73a、宛先欄73b、生成日時欄73c、及び制御内容欄73dを備える。
送信元欄73aは、制御指令73を生成した制御プログラム7を特定するIPアドレスとポート番号を格納する。
宛先欄73bは、制御プログラムを実行すべきI/Oプログラム8を特定するIPアドレスとポート番号を格納する。
生成日時欄73cは、制御指令73が生成された日付と時刻を格納する。
制御内容欄73dは、制御指令73の制御の内容を格納する。
制御内容欄73dは、制御指令73ごとにその内容が異なるが、共通して指令ID欄73e、優先度欄73f、タイミング欄73g、及び最大時間欄73hを持つ。
指令ID欄73eは、制御指令73を一意に特定する指令IDを保持する。指令IDは判断実行部70により制御指令73生成時に付与される。
優先度欄73fは、制御指令73の優先度を保持する。優先度欄73fが空欄の場合には、優先度が最も低いことを示す。
タイミング欄73gは、制御内容欄73dに記載された処理を実行すべきタイミングを保持する。タイミングの内容は、一定の間隔で周期的に実行する場合、センサの状態などの条件を満たした場合、指定の時刻になった場合など様々な場合を指定できる。
最大時間欄73hは、一つの制御指令73の処理に許容できる最大時間(後述する図8)を保持する。最大時間欄73hが空欄の場合は、最大時間が設定されていないことを示す。
制御内容欄73d(1)~73d(6)は、実施する処理ごとの制御内容の具体例を示している。
制御内容欄73d(1)は、入力処理、すなわちセンサ40からの情報取得を行う場合の例である。制御内容欄73d(1)は入力処理欄73iを備え、情報を取得する対象を保持する。
制御内容欄73d(2)は、計算処理、すなわちセンサ40の出力値の移動平均などの計算処理を行う場合の例である。制御内容欄73d(2)は計算処理欄73jを備え、計算処理の内容を保持する。
制御内容欄73d(3)は、送信処理、すなわち制御プログラム7に情報を送信する場合の例である。制御内容欄73d(3)は送信処理欄73kを備え、送信する対象を保持する。
制御内容欄73d(4)は、出力処理、すなわちアクチュエータなどの操作を行う場合の例である。制御内容欄73d(4)は出力処理欄73lを備え、操作対象の指令IDと操作の内容を保持する。
制御内容欄73d(5)は、制御周期設定処理、すなわち後述する制御周期に関する設定を行う場合の例である。制御内容欄73d(5)は制御周期設定欄73mを備え、指定する制御周期や開始タイミングを保持する。
制御内容欄73d(6)は、中止処理、すなわち特定の制御指令73の実行を中止する場合の例である。制御内容欄73d(6)は中止処理欄73nを備え、中止対象の指令IDを保持する。
図4は、送信データ83が持つ情報の例を示す図表である。
送信データ83は、送信元欄83a、送信日時欄83b、指令ID欄83c、及びデータ欄83dを備える。
送信元欄83aは、送信データ83を生成したI/Oプログラム8を特定するIPアドレスとポート番号を格納する。
送信日時欄83bは、送信データ83をI/Oプログラム8が送信した日付と時刻を格納する。
指令ID欄83cは、送信データ83がどの制御指令73の指示によって送信されたのかを特定する指令IDを格納する。
データ欄83dは、送信するデータの内容(例えば対象、値)を保持する。
制御システム100は、制御ノード1の汎用OS14上で実行される制御プログラム7の判断実行部70(図2)が、機器4に関して予め設定された状態制御に基づいて制御指令73を生成する。言い換えると、判断実行部70は、センサ40等から得られる情報に基づいて機器4をどのような状態に変化させるか、又は、どのように変化させるかを複雑な演算などを伴う処理によって検討し、その検討結果を制御指令73としてI/Oノード2(I/Oプログラム8)に送信する。この機器4に関する制御内容の検討は、周知の技術を用いて行うものとし、ここでは詳細な説明は省略する。
機器4の操作などの実際の処理はI/Oノード2のリアルタイムOS24上で実行される。リアルタイムOS24上で、I/Oプログラム8の制御指令実行部80が制御指令を実行することにより、複雑な処理と定時性の高い処理の両立を可能にする。
[判断実行部の処理]
以下、図5を参照し、制御プログラム7の判断実行部70の処理内容を説明する。
図5は、判断実行部70による処理の手順例を示すフローチャートである。
まず、判断実行部70は、制御システム100としてI/Oプログラム8にどのタイミングでどのような処理を実行させるかを判断する(S701)。次いで、判断実行部70は、制御指令を生成する必要があるかどうかを判断し(S702)、制御指令を生成する必要がない場合(S702のNO)にはステップS705へ進む。次いで、判断実行部70は、制御指令の生成が必要な場合(S702のYES)には制御指令73を生成し(S703)、送信処理部72にI/Oプログラム8へ送信させる(S704)。
次いで、判断実行部70は、新しい送信データ83があれば受信処理部71より受け取る(S705)。判断実行部70は、受信処理部71が受信した送信データ83について、送信元欄83a(図4)により自身が制御しているI/Oプログラム8から送信されたものであることを確認し、送信データ83を処理して次回のステップS701における判断に用いる。
制御プログラム7は、ステップS701~S705の処理を常時実行しており、随時制御指令73をI/Oノード2(I/Oプログラム8)へ送信する。
I/Oプログラム8の受信処理部81は、ステップS704にて判断実行部70が送信した制御指令73を受信すると、指令切替部84に制御指令73を渡す。指令切替部84は、後述する方法により実行すべき制御指令73を選択し、該当する制御指令73を制御指令実行部80に渡す。
[制御指令実行部の制御指令受付処理]
図6は、制御指令実行部80の制御指令受付処理の手順例を示すフローチャートである。
制御指令実行部80は、指令切替部84から新しい制御指令73を受け取ると(S801)、制御指令受付フローを開始する。すなわち、制御指令実行部80は、後述する図7に示す周期処理フローに沿って制御指令73が実行されるよう設定する(S802)。ステップS802の終了後、本フローチャートの処理を終了する。
[制御指令実行部の周期処理]
次に、I/Oプログラム8の制御指令実行部80が制御指令73を実行する手順について図7を参照して説明する。
図7は、制御指令実行部80の周期処理の手順例を示すフローチャートである。
制御指令実行部80は、一定の時間の周期内で制御指令の実行を行う。この時間の周期を「制御周期」と呼ぶ。制御周期は、制御指令73によって設定される。まず、制御指令実行部80は、現在時刻が制御周期の開始時刻になったかどうかを判定し(S803)、まだ制御周期の開始時刻になっていない場合には(S803のNO)、制御周期の開始時刻の監視を継続する。
次いで、制御指令実行部80は、制御周期を開始すべき時刻になったと判定した場合(S803のYES)、制御周期用の打ち切りタイマの動作を開始する(S804)。制御指令実行部80は、打ち切りタイマの計測時間から制御周期に相当する時間の経過を判断する。制御指令実行部80は、指定された制御周期に相当する時間を超えても制御指令73に基づく処理が完了しない場合、その間に実行されている制御指令73の実行を打ち切る(中止)。
次いで、制御指令実行部80は、制御指令73を優先度の高い順に実行するループを開始する(S805)。次いで、制御指令実行部80は、現在の状態が制御指令73の実行タイミングの条件を満たしているかを判定し(S806)、実行タイミングの条件を満たしていない場合には(S806のNO)、ステップS816へ進む。
次いで、制御指令実行部80は、最大時間用の打ち切りタイマの動作を開始する(S807)。制御指令実行部80は、指定された最大時間を超えても1つの制御指令73に基づく処理が完了しない場合、そのときに実行されている制御指令73の実行を打ち切る(中止)。制御指令実行部80は、最大時間欄73hが空欄の場合には打ち切りタイマを開始しない。次いで、制御指令実行部80は、制御指令73の処理種別(制御内容)を判断し(S808)、処理種別に沿ってステップS809~S814の処理を実行する。
ステップS809は、入力処理のためのステップである。制御指令実行部80は、センサ40の情報を取得し、取得した情報を他ステップが利用できるようメモリ23の変数に格納する。
ステップS810は、計算処理のためのステップである。制御指令実行部80は、計算処理を実行し、その結果を他ステップが利用できるようメモリ23の変数に格納する。
ステップS811は、送信処理のためのステップである。制御指令実行部80は、送信すべき情報を含む送信データ83を生成し、送信処理部82によりネットワーク5上の全ての制御プログラム7に送信させる。
ステップS812は、出力処理のためのステップである。制御指令実行部80は、出力処理部86を介して制御対象の機器4のアクチュエータ41を操作する。
ステップS813は、設定処理のためのステップである。制御指令実行部80は、制御周期の変更を行う。
ステップS814は、中止処理のためのステップである。制御指令実行部80は、指令IDで指定された制御指令73を実行されないように削除する。
次いで、制御指令実行部80は、最大時間用の打ち切りタイマを終了する(S815)。この間に、1つの制御指令73の実行が終了する。制御指令実行部80は、全ての制御指令73についてステップS806~S815の処理を繰り返し実行した後、制御指令73を優先度の高い順に実行するループを終了する(S816)。
次いで、制御指令実行部80は、制御周期用の打ち切りタイマを終了する(S817)。そして、制御指令実行部80は、ステップS803に戻り、ステップS803~S817の処理を繰り返し実行する。
図8に、制御指令実行部80における制御指令73の実行タイミングの例を示す。
図8では、制御指令実行部80の周期処理フロー(図7)における制御指令73の実行の様子を時間軸で表している。最大時間用の打ち切りタイマにより、各制御指令73(制御指令1~4…)は最大時間を超えて実行されない。また、制御周期用の打ち切りタイマにより、各制御指令73(制御指令1~4…)が制御周期を超えて実行され続けることもない。そのため、制御指令実行部80は、制御指令73を定時性高く実行することができる。
制御指令実行部80は周期処理フローを常時実行し、制御周期毎に優先度順に全ての制御指令73を順次実行するようにしたが、制御指令73を定時性高く実行できる方法であればこれに限らない。リアルタイムOS24の機能により、制御指令73の実行タイミングの条件が満たされると、割り込み処理によって制御指令73の制御内容が実行されるようにしてもよい。また、実行中の制御指令73をコンテキストスイッチによって中断し、より優先度の高い制御指令73が実行されるようにしてもよい。コンテキストスイッチは、CPUの状態を保存したり復元したりする機能である。また、I/Oノード2のCPU20が複数のコアを持つ場合には、制御指令の処理を並列に実行してもよい。
また、制御プログラム7とI/Oプログラム8を特定する情報としてIPアドレスとポート番号を用いているが、ネットワーク5上のプロトコルが用いるもので、ネットワーク5上のプログラムを一意に特定できる情報ならばこれに限らない。以降の説明においても同様である。
[制御プログラムを変更する手順]
再び図2を参照して、本実施形態に係る制御システム100において、制御プログラム7を変更する手順を説明する。
制御システム100の管理者36は、制御ノード1の制御プログラムを変更するために、変更前の制御プログラム7を動作させた状態で、制御ノード1上で変更後の制御プログラム7A-1を動作させる。そして、I/Oプログラム8の制御指令実行部80が、制御プログラム7A-1の判断実行部70A-1が生成した制御指令73A-1を処理するように切り替え、変更前の制御プログラム7を停止させる。
制御プログラムを切り替える間も、制御指令実行部80は、記憶装置21に格納された受信済みの制御指令73の処理を継続するので、制御システム100を停止させない状態で制御プログラムを変更できる。
変更前の制御プログラム7と同様に、変更後の制御プログラム7A-1の判断実行部70A-1は、その判断に従い制御指令73A-1を生成し、送信処理部72A-1からI/Oプログラム8に送信する。I/Oプログラム8の受信処理部81は、制御指令73と制御指令73A-1を受け取り、指令切替部84に渡す。
[指令切替部の制御指令処理]
次に、I/Oプログラム8の指令切替部84による制御指令処理の手順について図9を参照して説明する。
図9は、指令切替部84の制御指令処理の手順例を示すフローチャートである。
指令切替部84は、受信処理部81から制御指令73を受け取ると(S841)、図9に示す制御指令処理フローを開始する。まず、指令切替部84は、初めて制御指令73を受け取ったかどうかを判定し(S842)、制御指令73の受け取りが初めてではない場合には(S842のNO)、ステップS844に進む。
次いで、指令切替部84は、制御指令73の受け取りが初めての場合には(S842のYES)、ステップS843に進む。例えば、指令切替部84は、制御システム100の初回起動時に受け取った制御指令73の送信元欄73aに記録されたIPアドレスとポート番号を、送信元リスト87に追記する(S843)。
次いで、ステップS843の処理後又はステップS842でNO判定の場合、指令切替部84は、受け取った制御指令73の送信元欄73aに記載の送信元(IPアドレスとポート番号)が送信元リスト87に含まれているかどうかを判定する(S844)。そして、指令切替部84は、制御指令73の送信元が送信元リスト87に含まれていない場合には(S844のNO)、ステップS846に進み、送信元が送信元リスト87に含まれている場合には(S844のYES)、ステップS845に進む。
次いで、指令切替部84は、指令記憶エリア211の受信済みの制御指令73を生成日時が新しい順に調べ、制御内容が同一の制御指令73を既に受信しているかどうかを判定する(S845)。そして、指令切替部84は、同一内容の制御指令73を受信済みの場合には(S845のYES)、ステップS846に進む。ステップS844でNO判定の場合、又は、ステップS845でYES判定の場合、指令切替部84は受け取った制御指令73を破棄する(S846)。
一方、指令切替部84は、同一内容の制御指令73を受信していない場合(S845のNO)、当該制御指令73を制御指令実行部80に渡す(S847)。すなわち、指令切替部84の切り替えによって、制御指令実行部80は、最初に受信した制御指令73の送信元である制御プログラム7からの制御指令のみを実行する。ステップS846又はS847の処理後、図9に示すフローチャートの処理を終了する。
[指令切替部の切替信号処理]
図10は、指令切替部84の切替信号処理の手順例を示すフローチャートである。
図2に示す制御システム100の管理者36は、制御プログラム7A-1で生成された制御指令73A-1が処理されるようにするため、切替信号送信画面90を操作する。HMIプログラム9は、切替信号送信画面90に対する操作内容に基づき、切替信号を指令切替部84に送信する。指令切替部84は、HMIプログラム9から切替信号を受け取ると(S848)、図10に示す切替信号処理フローを開始する。すなわち、指令切替部84は、送信元リスト87の送信元情報を、切替信号に含まれる送信元情報に変更する(S849)。ステップS849の処理後、図10に示すフローチャートの処理を終了する。
図11に、HMIプログラム9の切替信号送信画面90の例を示す。
切替信号送信画面90は、I/Oプログラム8のIPアドレスとポート番号を入力する領域90a、切替先(変更後)の制御プログラム7A-1のIPアドレスとポート番号を入力する領域90b、及び切替信号の送信を指示するボタン90cを持つ。制御システム100の管理者36は、変更後の制御プログラム7A-1をネットワーク5に接続して起動した後、切替信号送信画面90を用いて切替信号を送信し、指令切替部84が制御指令73A-1を処理するように設定する。
ここで、I/Oプログラム8の送信処理部82は、ネットワーク5上の全ての制御プログラムに送信データ83を送信する。そのため、変更前の制御プログラム7と変更後の制御プログラム7A-1は同じ送信データ83を受領し、制御プログラム7と制御プログラム7A-1が機器4の状態を把握する。
上述例では、HMIプログラム9に切替信号送信画面90を備えたが、制御ノード1やI/Oノード2に同様のユーザインタフェースを設け、制御プログラム7やI/Oプログラム8に切替信号送信画面90を備えても構わない。また、制御システム100の管理者36が切替先の制御プログラム7A-1を特定する情報を指令切替部84に通知できればよく、ユーザインタフェースを介した操作に限定されない。例えば、切替先を特定する情報を格納した記憶装置をI/Oノード2に接続し、この情報を指令切替部84が読み込むようにすることでも実現できる。
また、ステップS842及びS843において、指令切替部84が、初回受け取り時の制御指令73の送信元情報を送信元リスト87に追加するようにしたが、この例に限らない。例えば、同ステップを排し、制御プログラム7の開始前に、HMIプログラム9を介して制御システム100の管理者36が指定するようにしてもよい。
また、変更後の制御プログラム7A-1は、制御ノード1上で実行するようにしたが、ネットワーク5に接続されていれば、別の制御ノード上で実行してもよい。
さらに、説明のためにネットワーク5中にI/Oノード2が1台のみ存在する構成としたが、実際には複数のI/Oノードが存在しても構わない。また、1つの制御プログラムが複数のI/Oプログラムに制御指令を送信するようにしても構わない。
上述した第1の実施形態によれば、定時性を保ちながら、制御システムを停止させることなく、制御システム(上記例では制御ノード)で用いるリソースの変更が可能になる。ここで、リソースは、プログラムやノード(コンピュータ)である。
制御システムに用いるコンピュータは、その制御の内容から必要な性能を見積もって用意するが、正確に必要な性能を見積もることは難しい。そのため、制御システムの稼動後に性能が不足してしまう場合がある。また、制御システムに新たな機能を追加する際にも性能が不足しうる。上記のように構成された本実施形態によれば、都度必要なリソースを追加することができる、スケーラビリティの高い制御システムを構築することができる。
以上のとおり、第1の実施形態に係る制御システム(制御システム100)は、少なくとも1台の制御ノード(制御ノード1)と、1台以上の制御対象機器(機器4)に接続され、ネットワークを介して制御ノードと通信可能な少なくとも1台のI/Oノード(I/Oノード2)と、から構成される。
上記制御ノードは、第1のオペレーティングシステム(汎用OS14)と、少なくとも1個の制御プログラム(例えば制御プログラム7,7A-1)を第1のオペレーティングシステム上で実行する第1のプロセッサ(CPU10)と、を備える。
上記I/Oノードは、第1のオペレーティングシステムよりも定時性の高い第2のオペレーティングシステム(リアルタイムOS24)と、少なくとも1個のI/Oプログラム(例えばI/Oプログラム8)を第2のオペレーティングシステム上で実行する第2のプロセッサ(CPU20)と、を備える。
上記制御ノードの制御プログラムは、制御対象機器に関して予め設定された状態制御に基づいて制御指令(制御指令73,73A-1)を生成し、当該制御指令をI/Oノードに送信する判断実行部(判断実行部70,70A-1)を有する。
上記I/OノードのI/Oプログラムは、制御ノードから受信した制御指令を記憶部(記憶装置21:指令記憶エリア211)に記憶し、その記憶部に記憶された制御指令に従って制御対象機器に関する処理を実行する制御指令実行部(制御指令実行部80)を有する。
また、第1の実施形態に係る制御システム(制御システム100)では、制御指令実行部は、記憶部に複数の制御指令が記憶されている場合には、複数の制御指令のうち、優先度の高い順に制御指令に規定された処理(入力処理、計算処理、送信処理、出力処理、設定処理、中止処理等)を制御周期に沿って実行し、制御周期内に制御指令の処理が完了しない場合には制御周期を超えた時点で制御指令の処理を中止するように構成されている。
また、第1の実施形態に係る制御システム(制御システム100)では、I/Oプログラムは、複数の制御プログラムより受信した複数の制御指令の中から実行すべき制御指令を選択する指令切替部(指令切替部84)、を備える。指令切替部は、複数の制御プログラムのうち切り替え後の制御プログラムが生成した制御指令を選択し、当該制御指令を制御指令実行部に送信するように構成されている。
<2.第2の実施形態>
第2の実施形態では、制御システムにおいて、制御ノードを複数台用いて冗長化し、また故障した制御ノードを交換した後に自動的に冗長化構成へと回復させる方法を説明する。
[構成管理プログラムの論理構成]
図12は、第2の実施形態に係る制御ノード1Bに導入された構成管理プログラム15の論理構成の例を示すブロック図である。
制御ノード1Bは、第1の実施形態で示した制御ノード1に構成管理プログラム15を加えた構成である。構成管理プログラム15も制御プログラム7と同様に、汎用OS14上でCPU10により実行される。構成管理プログラム15は、マスタ選出部15A、プログラム配置部15B、異常監視部15C、プログラム登録部15D、テーブル同期部15E(情報同期部の例)、制御プログラム管理テーブル15F、制御ノード管理テーブル15Gを備える。
構成管理プログラム15は、マスタ又はスレーブのいずれかの状態をとる。マスタ状態の構成管理プログラム15は、一つのネットワーク5上に1個のみ存在し、スレーブ状態の構成管理プログラム15に対し、制御に必要なデータを共有するために該当データを配信する役割を果たす。また、HMIプログラム9を通して、制御システム100Bの管理者36からの指示を受け付ける。
[制御システムの全体構成]
図13は、第2の実施形態に係る制御システム100Bの全体構成の例を示すブロック図である。
制御システム100Bでは、2台の制御ノード1Bを制御ノード1B-1,1B-2として用いる。制御ノード1B-1,1B-2はそれぞれ、第1の実施形態と同様に、ネットワーク5を介してI/Oノード2及びHMIノード3と接続している。
制御ノード1B-1は、構成管理プログラム15B-1と、制御プログラム7B-1を備える。構成管理プログラム15B-1は、マスタ選出部15B-1A、プログラム配置部15B-1B、異常監視部15B-1C、プログラム登録部15B-1D、テーブル同期部15B-1E(情報同期部の例)、制御プログラム管理テーブル15B-1F、及び制御ノード管理テーブル15B-1Gを備える。
制御ノード1B-2も同様に、構成管理プログラム15B-2と、制御プログラム7B-2を備える。構成管理プログラム15B-2は、マスタ選出部15B-2A、プログラム配置部15B-2B、異常監視部15B-2C、プログラム登録部15B-2D、テーブル同期部15B-2E(情報同期部の例)、制御プログラム管理テーブル15B-2F、及び制御ノード管理テーブル15B-2Gを備える。
制御ノード1B-3は、制御システム100Bの冗長化構成を回復するために新たに接続される制御ノードの例である。制御ノード1B-3も、制御ノード1B-1及び1B-2と同様の構成である。すなわち、制御ノード1B-3は、構成管理プログラム15B-3と、制御プログラム7B-3を備える。構成管理プログラム15B-3は、マスタ選出部15B-3A、プログラム配置部15B-3B、異常監視部15B-3C、プログラム登録部15B-3D、テーブル同期部15B-3E(情報同期部の例)、制御プログラム管理テーブル15B-3F、及び制御ノード管理テーブル15B-3Gを備える。制御ノード1B-3を用いた冗長化構成の回復については、後述する。制御ノード1B-1,1B-2及び1B-3を区別しない場合には「制御ノード1B」と表記する。
I/Oノード2では、指令切替部84を指令切替部84Bに変更したI/Oプログラム8Bを実行する。また、HMIノード3では、HMIプログラム9に新たな画面を追加したHMIプログラム9Bと、制御プログラム7Bを実行する。HMIプログラム9Bは、GUIによる操作画面である制御プログラム登録画面91、及び制御ノード異常警告画面92を持つ。
[制御プログラム管理テーブル、制御ノード管理テーブル]
図14及び図15に、構成管理プログラム15の各テーブルの具体例を示している。
図14は、構成管理プログラム15が利用する制御プログラム管理テーブル15Fの構造の例を示す。
図15は、構成管理プログラム15が利用する制御ノード管理テーブル15Gの構造の例を示す。
制御プログラム管理テーブル15Fは、プログラムID欄15f-1、保存先欄15f-2、種別欄15f-3、及び構成数欄15f-4を備える。
プログラムID欄15f-1は、制御プログラムを一意に特定するための制御プログラムIDを格納する。
保存先欄15f-2は、制御プログラムの保存先の場所を示す情報を格納する。
種別欄15f-3は、制御システム100Bの実行方式を示す情報を格納する。
構成数欄15f-4は、制御プログラムIDで特定される制御プログラムを実行する際に使用する制御ノードの数を格納する。
制御ノード管理テーブル15Gは、制御ノードID欄15g-1、マスタ/スレーブ欄15g-2、実行制御プログラムID欄15g-3、及び実行可否欄15g-4を備える。
制御ノードID欄15g-1は、制御ノードを一意に特定するための制御ノードIDを格納する。
マスタ/スレーブ欄15g-2は、構成管理プログラム(制御ノード)の状態がマスタとスレーブのいずれであるかを示す情報を格納する。マスタ状態の制御ノードは、1つのネットワークに1台のみである。なお、マスタ/スレーブの情報を、制御ノード管理テーブル15Gではなく他で管理してもよい。
実行制御プログラムID欄15g-3は、実行している制御プログラムを一意に特定するための制御プログラムIDを格納する。
実行可否欄15g-4は、制御ノード上で制御プログラムを実行可能であるかを示す情報を格納する。
なお、制御ノードID欄15g-1に格納される制御ノードIDは、制御ノードに対してそれらの起動した順に1から割り当てられる。構成管理プログラム15を実行開始した時点では、各テーブルは1レコードも情報を持たない。
[マスタ選出部の開始処理]
図16は、マスタ選出部15Aの開始処理の手順例を示すフローチャートである。
制御システム100Bの管理者36は、ユーザインタフェース35により制御ノード1B-1及び1B-2の動作を開始する。これに伴い構成管理プログラム15B-1は、図16に示すマスタ選出部15B-1Aの開始フローを開始する。
まず、制御ノード1B-1のマスタ選出部15B-1Aは、ネットワーク5上にマスタ状態の構成管理プログラム(制御ノード)が存在するかどうかを判定する(S1501)。マスタ選出部15B-1Aは、マスタ状態の構成管理プログラム15が存在しない場合(S1501のNO)にはステップS1502に進み、マスタ状態の構成管理プログラム15が存在する場合(S1501のYES)にはステップS1504に進む。
構成管理プログラム15B-1が最初に起動したとする。この場合、マスタ選出部15B-1AはステップS1501にてネットワーク5上にマスタ状態の構成管理プログラム15が存在しないと判断し(S1501のNO)、構成管理プログラム15B-1をマスタに設定する(S1502)。そして、マスタ選出部15B-1Aは、テーブル同期部15B-1Eにより制御ノード管理テーブル15B-1Gに、自身の制御ノード1B-1の情報を追加する(S1503)。ステップS1503の処理後、ステップS1506に進む。
制御ノード1B-2のマスタ選出部15B-2Aは、起動時に既に構成管理プログラム15B-1がマスタ状態のため、自身の構成管理プログラム15B-2をスレーブに設定する(S1504)。そして、マスタ選出部15B-2Aは、制御ノード1B-1のマスタ選出部15B-1Aに制御ノード1B-2の情報を通知する(S1505)。
そして、ステップS1503又はS1505の終了後、構成管理プログラム15B-1及び15B-2の各々のマスタ選出部15Aは、異常監視部15Cに処理を開始させる(S1506)。ステップS1506における異常監視部15Cの処理は、後で図25を用いて説明する。ステップS1506の処理後、本フローチャートの処理を終了する。
[マスタ選出部の制御ノード管理処理]
図17は、マスタ選出部15Aの制御ノード管理処理の手順例を示すフローチャートである。
マスタ状態の制御ノード1B-1のマスタ選出部15B-1Aは、スレーブ状態の制御ノード1B-2から制御ノードの情報を受け取ると(S1507)、制御ノード管理フローを開始する。
まず、マスタ選出部15B-1Aは、受け取った制御ノード1B-2の情報を、テーブル同期部15B-1Eにより制御ノード管理テーブル15B-1Gに追加登録する(S1508)。
次いで、マスタ選出部15B-1Aは、プログラム配置部15B-1Bに、図21に示すプログラム配置フローを開始させる(S1509)。このとき制御プログラム管理テーブル15B-1Fに制御プログラムの登録が無いため、制御プログラムの配置は行われない。ステップS1509の処理後、本フローチャートの処理を終了する。
[テーブル同期部の同期処理]
図18は、テーブル同期部15Eの同期処理の手順例を示すフローチャートである。
後述する図21のステップS1523において、マスタ状態の構成管理プログラム15B-1から制御ノード管理テーブル15B-1Gの内容が、スレーブ状態の構成管理プログラム15B-2のテーブル同期部15B-2Eに通知される。テーブル同期部15B-2Eは、制御ノード管理テーブル15B-1Gの内容を受け取ると(S1510)、図18に示す同期フローを開始する。すなわち、テーブル同期部15B-2Eは、受け取った制御ノード管理テーブル15B-1Gの内容を、制御ノード管理テーブル15B-2Gに格納する(S1511)。ステップS1511の処理後、本フローチャートの処理を終了する。
テーブル同期部15B-2Eは、受信した情報を全て制御ノード管理テーブル15B-2Gに登録する。これにより、スレーブ状態の構成管理プログラム15が複数ある場合に、マスタ状態の構成管理プログラム15B-1上の制御ノード管理テーブル15B-1Gの内容が、スレーブ状態の全ての制御ノード管理テーブル15Gの内容と同一となる。マスタ、スレーブいずれの状態でも構成管理プログラム15は、ステップS1504において後述する異常監視部15Cの実行を開始する。
図19に、制御プログラム登録画面91の例を示す。
制御システム100Bの管理者36は、制御プログラム7Bを冗長構成で実行開始すべく、制御プログラム7Bの実行ファイルをHMIノード3の記憶装置31に配置するよう操作する。管理者36は、HMIプログラム9Bの図19に示す制御プログラム登録画面91にて、制御プログラム7Bの実行ファイルの保存場所を制御プログラム保存先欄91aに入力する。さらに、管理者36は、冗長化実施の要否、冗長化する場合の制御ノードの台数を冗長化構成設定欄91bに入力して、制御プログラム登録ボタン91cを押下する。
[プログラム登録部のプログラム登録処理]
図20は、プログラム登録部15Dのプログラム登録処理の手順例を示すフローチャートである。この処理は、制御プログラムを開始するための処理である。
制御プログラム登録画面91は、入力された情報をマスタ状態の構成管理プログラム15B-1におけるプログラム登録部15B-1Dに通知する。プログラム登録部15B-1Dは入力情報を受け取ると(S1512)、その入力情報を制御プログラム管理テーブル15B-1Fに追加し(S1513)、プログラム配置部15B-1Bにプログラム配置フローを開始させる(S1514)。
次いで、プログラム登録部15B-1Dは、制御プログラム管理テーブル15B-1Fの内容を構成管理プログラム15B-2のテーブル同期部15B-2Eに伝えて同期する(S1515)。これにより、スレーブ状態の構成管理プログラム15が複数ある場合に、マスタ状態の制御プログラム管理テーブル15B-1Fの内容が、全てのスレーブ状態の構成管理プログラム15の制御プログラム管理テーブル15Fの内容と一致する。
[プログラム配置部のプログラム配置処理]
図21は、プログラム配置部15Bのプログラム配置処理の手順例を示すフローチャートである。
マスタ状態の構成管理プログラム15B-1におけるプログラム配置部15B-1Bは、プログラム登録部15B-1Dなどの指示により図21に示すプログラム配置フローを開始する(S1517)。プログラム配置フローは、制御プログラム管理テーブル15B-1Fに登録された制御プログラムごとにループ処理される。
プログラム配置部15B-1Bは、制御プログラム管理テーブル15B-1Fに記されている構成数を、制御ノード管理テーブル15B-1Gの内容と比較する(S1518)。プログラム配置部15B-1Bは、各制御プログラムを実行している制御ノードの数と上記構成数が一致する場合(S1518のYES)、ステップS1522に進んでループを終了する。
一方、プログラム配置部15B-1Bは、各制御プログラムを実行している制御ノードの数が上記構成数よりも少ない場合には(S1518のNO)、制御ノード管理テーブル15B-1Gを参照して制御プログラムを実行可能な制御ノードが存在するかを判定する(S1519)。プログラム配置部15B-1Bは、制御プログラムを実行可能な制御ノードが存在しない場合(S1519のNO)、ステップS1522に進む。
次いで、プログラム配置部15B-1Bは、制御プログラムを実行可能な制御ノードが存在する場合には(S1519のYES)、該当する制御ノードのプログラム配置部15Bに通知してプログラム実行フローを開始させる(S1520)。例えば、制御ノード1B-1と制御ノード1B-2が制御プログラムを実行可能である場合、プログラム配置部15B-1Bは、プログラム配置部15B-1B自身でプログラム実行フローを開始するとともに、プログラム配置部15B-2Bにプログラム実行フローを開始させる。
次いで、プログラム配置部15B-1Bは、制御ノード管理テーブル15B-1Gの実行制御プログラムID欄15g-3を更新する(S1521)。制御プログラム管理テーブル15B-1Fのすべての制御プログラムについて処理が完了したらループ処理を終了する(S1522)。
次いで、プログラム配置部15B-1Bは、制御ノード管理テーブル15B-1Gの情報を他の構成管理プログラム15のテーブル同期部15Eに通知する。これにより、制御ノード管理テーブル15B-1Gの情報が、他のすべての制御ノード管理テーブル15Gの情報と同期される(S1523)。
[プログラム配置部のプログラム実行処理]
図22は、プログラム配置部15Bのプログラム実行処理の手順例を示すフローチャートである。
プログラム配置部15B-1Bは、図22に示すプログラム実行フローにおいて対象の制御プログラム7B-1の実行ファイルをHMIノード3より取得し、制御プログラム7B-1として実行できる状態とする(S1525)。次いで、プログラム配置部15B-1Bは、I/Oノード2のI/Oプログラム8Bにおける指令切替部84Bに、制御プログラム7B-1のIPアドレスとポート番号を通知し(S1526)、制御プログラム7B-1を実行開始する(S1527)。プログラム配置部15B-2Bも同じように動作する。ステップS1527が終了後、本フローチャートの処理を終了する。
[指令切替部の構成通知処理]
図23は、指令切替部84の構成通知処理の手順例を示すフローチャートである。
I/Oプログラム8Bの指令切替部84Bは、構成管理プログラム15B-1から制御プログラム7B-1の送信元情報を受け取ると(S1528)、構成通知フローを開始する。すなわち、指令切替部84Bは、受け取った送信元情報を送信元リスト87に追加する(S1529)。これにより、制御プログラム7B-1、7B-2の両方が出力する制御指令73を処理できる状態となる。ステップS1529の処理後、本フローチャートの処理を終了する。
次に、図24を参照し、同じ制御プログラム7Bを実行する制御ノード1B-1及び1B-2(図13)によってどのように冗長化が実現されるかを説明する。
図24は、第2の実施形態に係る制御指令の切替動作の例を示すブロック図である。
制御プログラム7B-1及び7B-2は、図5に示した判断実行部70の処理フローに従い、どちらも制御指令73B-1,73B-2を送信する。制御プログラム7B-1及び7B-2の内容は同一であるから、制御指令73B-1及び73B-2の制御内容欄73dには全く同じ内容が記される。
送信された制御指令73B-1,73B-2は、I/Oプログラム8Bの受信処理部81が受信し、指令切替部84Bにより図9の制御指令処理フローに従い処理される。構成管理プログラム15B-1,15B-2のプログラム配置部15B-1B,15B-2Bは、I/Oプログラム8Bの指令切替部84に通知し、送信元リスト87に制御プログラム7B-1,7B-2のIPアドレスとポート番号を追加している。これにより、図9のステップS844でYES判定となり、制御指令73B-1及び73B-2はどちらもステップS846では破棄されない。
既述のとおりステップS845において、同じ制御指令が既に登録されていないか確認される。例えば、制御指令73B-1が指令切替部84に先着した場合、制御指令73B-2はステップS845でYES判定となりステップS846で破棄される。この処理により、常に先着した方の制御指令が制御指令実行部80に渡される。制御ノード1B-1又は1B-2が故障した場合には、指令切替部84Bによって残る片方の制御ノードが送信する制御指令73B-1又は73B-2が制御指令実行部80に渡されることで制御システム100Bの制御が継続される。
以降、制御ノード1B-1が故障した場合を例に、冗長化構成の回復を自動的に実現する方法について説明する。
既述のとおり、制御ノード1B-2上で実行されている制御プログラム7B-2により、制御そのものは継続されるが、制御ノード1B-2にも異常が発生すれば制御システム100Bが停止してしまう。そのため、新たな制御ノード1B-3によって故障した制御ノードを置き換え、冗長化構成を回復する必要がある。各制御ノードの故障(異常)は、各構成管理プログラム15に存在する異常監視部15Cにより検出される。異常監視部15Cの監視処理のフローチャートを図25に示す。
図25は、異常監視部15Cの監視処理の手順例を示すフローチャートである。
異常監視部15Cは、監視対象の制御ノードの状態を確認する(S1530)。例えば、異常監視部15Cは、制御ノードID(例えば番号)が自身よりも1つ小さい制御ノードを対象に、異常が無いか監視する。制御ノードIDが“1”(最小)の制御ノードの異常監視部15Cは、制御ノードIDが最大の制御ノードを監視する。すなわちネットワーク5上の各制御ノード1Bは、数珠繋ぎにお互いを監視する。図13に示す制御システム100Bの構成では、構成管理プログラム15B-1,15B-2が互いを監視し合う。監視方法の具体例としては、ping応答による応答の有無を確認する、監視対象の制御ノード1Bが制御指令を定期的に送信するか確認する、などの方法があげられるが、これに限定されない。
次いで、異常監視部15Cは、監視対象の制御ノードの異常の有無を判定し(S1531)、制御ノードの異常がない場合(S1531のNO)には異常の有無の判定処理を継続する。異常監視部15Cは、監視対象の制御ノードの異常を検出すると(S1531のYES)、まず異常が発生した制御ノードの構成管理プログラム15がマスタ状態かどうかを判定する(S1532)。該当の構成管理プログラム15がマスタ状態ではない場合(S1532のNO)、ステップS1534に進む。
一方、異常監視部15Cは、監視対象の制御ノードがマスタ状態であると判定すると(S1532のYES)、異常が発生した制御ノードの構成管理プログラム15がマスタ状態であるので、自身の構成管理プログラム15B-2をマスタに設定する(S1533)。
次いで、異常監視部15Cは、マスタ状態の構成管理プログラム15の異常監視部15C、及びHMIプログラム9Bに対し、異常発生すなわち異常が発生した制御ノードの情報を通知する(S1534)。本実施形態では、マスタ状態の制御ノード1B-1の異常をスレーブ状態の異常監視部15B-2Cが検出し、構成管理プログラム15B-2をマスタ状態とし、自身に異常発生を通知する。異常監視部15Cは、ステップS1534の処理後、ステップS1530に移行する。
図26に、制御ノード異常警告画面の例を示す。
HMIプログラム9Bは制御ノードの異常発生の通知を受け、図26に示す制御ノード異常警告画面92を表示することで、制御ノードの異常を制御システム100Bの管理者36に通知する。図26では、“制御ノード[1]停止!”というメッセージが表示されている。
[異常監視部の回復処理]
図27は、異常監視部15Cの回復処理の手順例を示すフローチャートである。
マスタ状態の構成管理プログラム15の異常監視部15Cは、制御ノード1Bの異常発生の通知を受けると(S1535)、図27に示す回復フローを開始する。制御ノード1B-1に異常が発生した場合を例に説明する。
まず異常監視部15Cは、異常が発生した制御ノード1B-1の情報を制御ノード管理テーブル15Gから除外する(S1536)。そして、異常監視部15Cは、プログラム配置部15Bにより図21に示したプログラム配置フローを開始させる(S1537)。仮に、この時点で実行可能な制御ノードがネットワーク5上に存在すれば、プログラム配置フローによって制御プログラム7Bの実行が開始され、冗長化された状態が回復する。
[新たに接続された制御ノードを用いて冗長化構成を回復する例]
次に、再度図13を参照し、制御ノード1B-1が故障した状態で、新しい制御ノード1Bを制御ノード1B-3としてネットワーク5に接続した場合の動作を説明する。
制御ノード1B-3上で構成管理プログラム15B-3が実行を開始し、マスタ選出部15B-3Aの開始フロー(図16)に沿って構成管理プログラム15B-3がスレーブ状態となる。そして、図16のステップS1505において、マスタ選出部15B-3Aは、マスタ選出部15B-2Aに対し制御ノード1B-3がスレーブ状態で利用可能となったことを通知する。
これにより、制御ノード1B-2のマスタ選出部15B-2Aにおいて、図17に示す制御ノード管理フローが開始される(S1507)。そして、マスタ選出部15B-2Aにより制御ノード管理テーブル15B-2Gに制御ノード1B-3の情報が追加され(S1508)、プログラム配置フローが開始される(S1509)。新たに接続された制御ノード1B-3は、スレーブとして追加される。そして、プログラム配置フローにて、制御プログラム7Bが制御ノード1B-3上で実行開始され、制御プログラム7Bは再び冗長化した状態に回復する。
本実施形態における制御プログラム7B-1,7B-2及び7B-3は、他の制御プログラムの状態を管理する必要がない。冗長化しないで制御プログラムを実行する場合と同様に、制御指令73を生成するプログラムを作成すればよいので、制御プログラムの開発は比較的容易である。
上述した第2の実施形態によれば、第1の実施形態の効果に加えて、リソース(コンピュータ、ソフトウェア)の冗長化が可能な制御システムを実現できるという効果がある。そのため、制御システムの可用性が向上する。
[第2の実施形態の第1の変形例]
次に、第2の実施形態の第1の変形例として、制御ノードに常用監視プログラムを導入した例について図28を参照して説明する。
図28は、第2の実施形態の第1の変形例に係る制御ノードに常用監視プログラムを導入した例を示すブロック図である。
ここまで説明した実施形態の構成では、制御指令73B-1,73B-2のうち、実行する制御指令を指令切替部84Bで選別するようにしたが、この例に限らない。例えば、図28に示すように制御ノード1B-4,1B-5にそれぞれ常用監視プログラム16B-4,16B-5を設けた構成としてもよい。
図28に示す制御システム100Bでは、常用監視プログラム16B-4,16B-5は、同一の制御プログラム7Bを実行している制御ノードがネットワーク5上に存在する場合に、待機系となる。そして、常用監視プログラム16B-5は、制御ノード1B-4の制御プログラム7B-4が送信する制御指令73B-4を受け取り、制御ノード1B-4が制御指令73B-4を送信しているかを監視する。常用監視プログラム16B-5は、制御ノード1B-4が制御指令を正常に送信しているかを確認する目的で制御指令73B-4を受信するので、受け取った制御指令73B-4をI/Oノード2へ送信しない。
ここで、常用監視プログラム16B-5は、制御ノード1B-4が制御指令73B-4を送信している場合には、制御ノード1B-5の制御プログラム7B-5が生成した制御指令73B-5を破棄する。また、常用監視プログラム16B-5は、一定時間が経過しても制御指令73B-4が送信されない場合には制御ノード1B-4の故障と判断し、以降は制御指令73B-5を常用監視プログラム16B-5からI/Oノード2へ送信するようにしてもよい。同一のネットワーク5上に同一の制御プログラム7Bを実行している他の制御ノードが存在しない場合、常用監視プログラムは何もしない。
[第2の実施形態の第2の変形例]
図29は、第2の実施形態の第2の変形例に係る1台の制御ノード上で複数の制御プログラムを動作させる例を示すブロック図である。
ここまで説明した実施形態の構成では、1台の制御ノード上で1種類の制御プログラムを実行するようにしたが、1台の制御ノード上で複数の制御プログラムを動作させてもよい。図29に示すように、例えば、機器(1)を制御するI/Oノード2(I/Oノード(1))に、I/Oプログラム8BとしてI/Oプログラム(X)が格納され、機器(2)を制御するI/Oノード2B-1(I/Oノード(2))に、I/Oプログラム8BとしてI/Oプログラム(Y)が格納されている。これに対し、2台のI/Oノード2,2B-1を制御する制御プログラム(X)7B-6,7B-9と、制御プログラム(Y)7B-7,7B-8とを2台の制御ノード1B-6,1B-7上に適宜配置する。なお、I/Oノード2,2B-1の各々が機器(1),(2)を制御可能であってもよい。
一例として、制御ノード1B-6に、制御プログラム(X)7B-6と制御プログラム(Y)7B-8、及び構成管理プログラム15B-6が配置される。また、制御ノード1B-7に、制御プログラム(Y)7B-7と制御プログラム(X)7B-9、及び構成管理プログラム15B-7が配置される。このような構成にすると、制御ノード1B-6,1B-7のどちらかが故障しても制御は継続され、かつ、制御ノード数はI/Oノードと同じ台数でよい。
上述した図24に示す構成では、指令切替部84Bにより制御指令73B-1,73B-2のうち先着した制御指令を選択し、該当する制御指令を実行することで、冗長化のみを行っている。しかし、状況によって誤った判断をする可能性がある制御プログラムを用いる場合、1台の制御ノード上で複数の制御プログラムを動作させる構成を、信頼性の向上のために利用することができる。
すなわち、同一のネットワーク5上で同じ制御プログラムを3個以上実行するように制御システムを構成する。そして、この制御システムにおいて、同一タイミングで受信した、各制御プログラムが送信した制御指令の内容が全て一致しない場合、指令切替部84Bは、制御内容が一致する数の多い制御指令のうち先着した制御指令を制御指令実行部80に渡すようにする。
上述した第2の実施形態の第2の変形例によれば、信頼性と定時性を保ちながら、制御システムを停止させることなく、制御システム(上記例では制御ノード)で用いるリソースの変更が可能になる。また、リソース(コンピュータ、ソフトウェア)の冗長化が可能な制御システムを実現できる。そのため、制御システムの可用性が向上する。
以上のとおり、第2の実施形態に係る制御システム(制御システム100B)は、I/Oプログラムは、複数の制御プログラムより受信した複数の制御指令の中から実行すべき制御指令を選択する指令切替部(指令切替部84B)、を備え、制御プログラムを少なくとも2台の制御ノード(制御ノード1B-1~1B-3)上で実行する。指令切替部は、制御ノードから先着した制御指令のみを制御指令実行部(制御指令実行部80)に送るように構成されている。
また、第2の実施形態に係る制御システム(制御システム100B)では、I/Oプログラムは、複数の制御プログラムより受信した複数の制御指令の中から実行すべき制御指令を選択する指令切替部、を備え、制御プログラムを少なくとも3台の制御ノード(制御ノード1B-1~1B-3)上で実行する。指令切替部は、同一のタイミングで受信した制御指令の制御内容を比較し、異なる制御内容の制御指令が含まれる場合には、制御内容が一致する数の多い制御指令を選択して制御指令実行部に送るように構成されている。
また、第2の実施形態に係る制御システム(制御システム100B)は、各制御ノードが構成管理プログラム(構成管理プログラム15)を備える。
構成管理プログラムは、
複数の制御ノードからマスタ状態で動作する制御ノードを選出して自身の制御ノードをスレーブ状態に設定し、マスタ状態の制御ノードが存在しない場合には自身の制御ノードをマスタ状態に設定し、自身の制御ノードの情報を他の制御ノードに送信するマスタ選出部(マスタ選出部15A)と、
マスタ状態の制御ノードとスレーブ状態の制御ノードにおけるそれぞれの制御ノードの情報を、各制御ノードが備える制御ノード管理テーブルに同期する情報同期部(テーブル同期部15E)と、
ユーザインタフェースで指定される制御プログラムの情報と冗長化構成設定の情報を受け取るプログラム登録部(プログラム登録部15D)と、
冗長化構成が要求された場合に、制御ノード管理テーブルを参照して制御プログラムを冗長化構成で実行する2台以上の制御ノードを決定して実行させるプログラム配置部(プログラム配置部15B)と、
制御ノードを監視して異常を検出する異常監視部(異常監視部15C)と、を有する。
そして、制御システムは、マスタ状態の構成管理プログラムにおいて、異常監視部がスレーブ状態の制御ノードの異常の通知を受信した場合には、情報同期部が制御ノード管理テーブルから異常のある制御ノードを除外し、プログラム配置部が、制御ノード管理テーブルから実行可能な他の制御ノードを選択して制御プログラムを実行させるように構成されている。
また、第2の実施形態に係る制御システム(制御システム100B)では、制御ノード管理テーブルに実行可能な他の制御ノードが存在しない場合に、ネットワーク上に新しい制御ノードが接続された際にはマスタ選出部が当該接続を検出して、新しい制御ノードの情報を制御ノード管理テーブルに追加し、プログラム配置部が、制御ノード管理テーブルに追加された制御ノードを、制御プログラムを冗長化構成で実行する制御ノードに決定するように構成されている。
また、第2の実施形態に係る制御システム(制御システム100B)では、スレーブ状態の構成管理プログラムにおいて、異常監視部がマスタ状態の制御ノードの異常を検出した場合には、マスタ選出部が自身の制御ノードを新規にマスタ状態とするように構成されている。
<3.第3の実施形態>
次に、第3の実施形態として、制御プログラムの処理を、複数の制御ノードで分散して実行(スケールアウト)する方法を説明する。
図30に、第1の実施形態に係る制御システムの制御プログラムとI/Oプログラムの実行タイミングの例を示す。図30に示す例は、図2に示した制御システム100の構成において、制御プログラム7とI/Oプログラム8がそれぞれの実行タイミングを時系列に示したものである。
時刻t=1において、制御指令73を受けたI/Oプログラム8は送信データ83を送信する。この送信データ83は制御プログラム7が受信し、制御プログラム7は制御指令73を生成する(S7101)。この制御プログラム7の一連の処理に、仮に最大2Tの時間がかかるとすると、時刻t=1の送信データ83に基づく制御指令73C-1は時刻t=4に実行される。時刻t=5においては、新しい制御指令73が届いていないため、時刻t=4で受領した制御指令73C-1(破線)に基づく制御が行われる。
さらに、時刻t=6において、時刻t=3の送信データ83に基づいて生成(S7102)された制御指令73C-1が実行される。時刻t=7においては、新しい制御指令73が届いていない。すなわち、時刻t=5,7,…,2n+5(n≧0)においては、時刻が4T分過去の制御指令73に基づく制御しか行えない。もし、制御プログラム7の最大処理時間が2Tよりも長ければ、制御指令73が送信される間隔も長くなってしまう。
図31は、第3の実施形態に係る制御システムの全体構成の例を示すブロック図である。
短い遅延時間で制御を実現するために、図31に示すように制御システム100Cを構成する。第2の実施形態で用いた2台の制御ノード1Bをそれぞれ制御ノード1C-1,1C-2とし、同一の制御プログラム7を実行する。それぞれの制御プログラム7を、制御プログラム7C-1,7C-2と記す。図31では、制御ノード1C-1に、制御プログラム7C-1及び構成管理プログラム15C-1が配置され、制御ノード1C-2に、制御プログラム7C-2及び構成管理プログラム15C-2が配置されている。I/Oノード2は、I/Oプログラム8Cを実行する。
図32は、第3の実施形態に係る制御システムの制御プログラムとI/Oプログラムの実行タイミングの例を示す。
先に、制御システム100Cの構成においてどのように制御が行われるのかを図32を用いて説明する。時刻t=1で生成された送信データ83Cは、制御プログラム7C-1によって処理され(S7101)、生成された制御指令73C-1は時刻t=4においてI/Oプログラム8Cの制御指令実行部80により実行される。次に、時刻t=2で生成された送信データ83Cは、ステップS7101の処理の途中から制御プログラム7C-2によって処理され(S7102)、生成された制御指令73C-2は時刻t=5において制御指令実行部80により実行される。次に、時刻t=3で生成された送信データ83Cは、ステップS7102の処理の途中で制御プログラム7C-1によって処理が開始される(S7103)。
このように、送信データ83Cの処理を制御プログラム7C-1,7C-2が順番に行うことで(S7101~S7104)、制御指令実行部80が常に最新の制御指令73C-1,73C-2を実行する。これにより、機器4の制御を少ない遅延時間で実行することができる。
制御プログラム7の実行に要する最大の時間が2Tより長い場合でも、求める遅延時間に合わせて、制御ノード1Bを3台、4台と追加していくことで遅延時間の短縮が図れる。これにより、例えば制御システム100C全体の性能が後から不足した場合にも、都度制御ノード1Bを追加して性能向上を測ることが可能となる。また、本実施形態は、高性能なコンピュータへと置き換えるよりもコストが掛からず、効率のよい投資が可能となる。
I/Oプログラム8Cは、I/Oプログラム8の一部機能に追加変更を加えたもので、図31に示すように、送信処理部82C、指令切替部84(図示略)、送信元リスト87C(図35参照)、スケールアウト構成テーブル89(図36参照)を持つ。また、本構成で用いるHMIプログラム9Cは、スケールアウト構成設定画面93を持つ。
制御システム100Cの管理者36は、まず第2の実施形態に示した方法で制御プログラム7Cを冗長構成で動作させる。次に、管理者36は、スケールアウト構成設定画面93を用いて、I/Oプログラム8Cの送信処理部82Cに対し、スケールアウト構成を取るよう信号を送る。スケールアウト構成設定画面93の具体例を図33に示す。
図33は、スケールアウト構成設定画面93の例を示す。
スケールアウト構成設定画面93は、I/Oプログラム設定欄93a、スケールアウト開始ボタン93bを備える。スケールアウト開始ボタン93bが押下されることにより、スケールアウト開始信号がI/Oプログラム8の送信処理部82Cに送信される。スケールアウト開始信号を受けた送信処理部82Cは、送信データ83Cを対象の制御ノードに設定された順序で送信(分散)する。
[送信処理部のスケールアウト構成開始処理]
図34は、送信処理部82Cのスケールアウト構成開始処理の手順例を示すフローチャートである。
送信処理部82Cは、HMIプログラム9Cからスケールアウト開始信号を受信すると(S8201)、図34に示すスケールアウト構成開始フローを開始する。まず、送信処理部82Cは、図35に示す送信元リスト87Cを参照する(S8202)。
図35は、送信元リスト87Cの構造の例を示す。
送信元リスト87Cは、少なくとも送信元欄87a、順序欄87bを備える。
送信元欄87aは、制御指令(例えば制御指令73C1,73C2)を生成する制御プログラム(例えば制御指令73C1,73C2)を特定するIPアドレスとポート番号を格納する。
順序欄87bには、制御プログラムから指定される複数の制御プログラムの実行順序が格納されている。
例えば、制御指令73の中に制御プログラムを特定する送信元及び順序の情報が含まれ、指令切替部84がそれらの情報を用いて送信元リスト87Cを作成することができる。
次いで、送信処理部82Cは、送信元リスト87Cの内容に基づいて、制御プログラムに送信データ83Cを送信する順序を決定し(S8203)、スケールアウト構成テーブル89を設定する(S8204)。ステップS8204の終了後、本フローチャートの処理を終了する。
図36は、スケールアウト構成テーブル89の構造の例を示す。
スケールアウト構成テーブル89は、送信元リスト87Cと同様に、少なくとも送信元欄89a、順序欄89bを備える。スケールアウト構成テーブル89の各欄の情報は、送信元リスト87Cから取得したものである。
送信元欄89aは、制御指令(例えば制御指令73C1,73C2)を生成する制御プログラム(例えば制御指令73C1,73C2)を特定するIPアドレスとポート番号を格納する。
順序欄89bは、複数の制御プログラムの実行順序を格納する。順序欄89bでは1から順に数値を設定しており、これにより送信データ83Cを送信する順序が規定される。
[送信処理部の送信処理]
図37は、送信処理部82Cの送信処理の手順例を示すフローチャートである。
送信処理部82Cは、制御指令実行部80より送信データ83Cを受け取る(S8205)、図37に示す送信処理フローを開始する。
まず、送信処理部82Cは、スケールアウト構成テーブル89が存在するかどうかを確認する(S8206)。スケールアウト構成テーブル89が設定されている場合(S8206のYES)、送信処理部82Cは、順序欄89bの順序に沿って送信先(宛先の制御プログラム)を決定し、送信データを送信する(S8207)。すなわち、送信処理部82Cは、例えばスケールアウト構成テーブル89で順序“1”の制御プログラム7C-1宛てに送信データ83Cを送信する。そして、次回送信処理フローを実行時には、順序“2”の制御プログラム7C-2宛てに送信データ83Cを送信する。スケールアウト構成テーブル89に記載のすべての制御プログラムに送信データを送信した場合は、順序“1”から再び送信する。
一方、スケールアウト構成テーブル89が設定されていない場合(S8206のNO)、送信処理部82Cは、第1の実施形態又は第2の実施形態と同様に、ネットワーク5上の全ての制御プログラム宛てに送信データを送信する(S8208)。ステップS8207又はS8208の処理後、本フローチャートの処理を終了する。
制御ノード1は汎用OS14上で制御プログラム7を実行するため、処理に要する最大時間を保証することはできない。よって実際上、最低限必要な数よりも余裕を持った数の制御ノード1を用いて制御システムを構成する必要がある。
以上のとおり、第3の実施形態に係る制御システム(制御システム100C)は、I/OノードのI/Oプログラムが処理した結果を、少なくとも2台の制御ノードで順番に受信し、各制御ノードにおいて、制御プログラムの判断実行部が、受信した当該処理の結果に基づいて制御指令を生成し、その制御指令をI/Oノードに順次送信するように構成されている。
上述した第3の実施形態によれば、第1の実施形態の効果に加えて、スケールアウト(計算処理の分散)が可能な制御システムを実現できる。そのため、制御システムの性能を向上させることができる。
<4.第4の実施形態>
次に、I/Oノード2を2台以上用いて冗長化構成を実現する方法を示す。
図38は、第4の実施形態に係る制御システムの全体構成の例を示すブロック図である。
本実施形態の制御システム100Dは、2台のI/Oノード2をI/Oノード2D-1,2D-2として用いる。制御システム100DではI/Oノード2D-1を常用系とし、付随して待機系としてI/Oノード2D-2を追加した構成をとる。普段はI/Oノード2D-1が機器4の制御を行い、I/Oノード2D-1が故障した際にはI/Oノード2D-2が代わりに機器4の制御を行う。
I/Oノード2D-1は、第1の実施形態と同様にケーブル6で機器4と接続している。また、I/Oノード2D-2もケーブル6D-2を用いて機器4と接続している。例えば、このケーブル6とケーブル6D-2は端子に並列に接続するなどによって、機器4が持つセンサ40からの情報の取得及びアクチュエータ41の操作を、I/Oノード2D-1とI/Oノード2D-2が共に同時に行えるように構成されている。
I/Oノード2D-1,2D-2上で動作するI/Oプログラム8D-1,8D-2は、それぞれ周期同期部88D-1,88D-2を備える。
周期同期部88D-1はサーバとして動作し、ネットワーク5を介して制御指令実行部80D-1が制御周期の基準として用いている時計の時刻情報を配信する。
周期同期部88D-2はクライアントとして動作し、周期同期部88D-1から受信した時刻を基に、制御指令実行部80D-2の時計を調整することで制御周期のタイミングを一致させる。
周期同期部88D-1,88D-2の実現には、IEEE1588やIEEE802.1ASに規定されているプロトコルが利用可能であるが、機器4の制御に必要な精度でタイミングを一致させられるならばこれに限らない。また、周期同期部88D-2は、周期同期部88D-1から時刻を受信できないことをもって、I/Oノード2D-1が異常であると判断してもよい。
制御プログラム7Dは制御指令73Dを生成し、制御指令73DをI/Oプログラム8D-1,8D-2に送信する。I/Oプログラム8D-1,8D-2はどちらも同様に制御指令73Dを処理する。I/Oプログラム8D-1,8D-2は制御周期が一致しており、同じ制御指令73Dを処理しているので、機器4に対して同じタイミングで同じ入力処理及び出力処理を行う。I/Oノード2D-1に異常が発生した場合、I/Oプログラム8D-2により機器4の制御は継続する。
I/Oプログラム8D-2の送信処理部82D-2は、送信データ83D-2を送信するよう制御指令実行部80D-2から通知を受けた場合、周期同期部88D-2に確認してI/Oノード2D-1の異常の有無を判定する。送信処理部82D-2は、I/Oノード2D-1が正常である場合には、送信データ83D-2を送信せず破棄し、異常である場合には制御プログラム7Dへ送信データ83D-2を送信する。これにより、I/Oプログラム8D-1,8D-2のどちらか一方のみから制御プログラム7Dにデータを送信する。
図38において、I/Oプログラム8D-1に、受信処理部81D-1、送信処理部82D-1、入力処理部85D-1、及び出力処理部86D-1が設けられているが、これらの処理部は、第1の実施形態の対応する処理部と同様であるため、詳細な説明を省略する。また、I/Oプログラム8D-2に、受信処理部81D-2、入力処理部85D-2、及び出力処理部86D-2が設けられているが、同様に詳細な説明を省略する。
3台以上のI/Oノードを用いる場合は、周期同期部によってI/Oノードの故障を検出するために、数珠繋ぎに制御周期の同期を行う。すなわち、1台の常用系のI/Oノードの周期同期部から制御周期の同期を行う1台の待機系I/Oノード、この待機系I/Oノードの周期同期部から制御周期の同期を行う他の待機系I/Oノード、と順繰りに接続するようにする。
上述の例では、I/Oプログラム8D-2は、I/Oプログラム8D-1が正常に機器4の制御を実行している間も並行して機器4の制御を行うようにしたが、この例に限らない。例えば、まずI/Oプログラム8D-2における出力処理部86D-2を無効にして制御指令実行部80D-2からの指示を全て無視するようにし、周期同期部88D-2がI/Oノード2D-1の異常を検出した時点で出力処理部86D-2を有効にして機器4に対する出力処理が行われるようにしてもよい。この場合、機器4のアクチュエータ41が制御のための信号を複数受け付けできない場合にも対応可能である。
また、I/Oノードの冗長化のために本実施形態の構成を用いたが、制御の処理を分散するスケールアウト構成として用いることもできる。以下、本実施形態の構成を、スケールアウト構成として用いる場合の例を説明する。
[第4の実施形態の第1の変形例]
図39は、1台のI/Oノードを用いる場合、及び第4の実施形態に係る2台のI/Oノード(常用、待機)を用いる場合のそれぞれのI/Oプログラムの実行タイミングの例を示す。
図39は、1台のI/Oノード(1個のI/Oプログラム8)を用いる構成と、本構成を用いてスケールアウトを実施した場合の、2個のI/Oプログラムにおける処理の様子を時系列に示した例である。例えば、図示するように2種の入力処理1,2、出力処理1,2、送信処理1,2の合計6件の処理を行う際、2個のI/Oプログラム8D-1,8D-2を用いて3件ずつ処理することができる。これにより、制御周期を短縮することが可能になる。あるいは、より性能の低いI/Oノードにより、同等の制御周期での制御を行うことが可能になる。
[第4の実施形態の第1の変形例]
または、同一の処理を制御周期のタイミングをずらして実行することで、機器から見た実質的な制御周期を短縮するために本実施形態を用いることもできる。
図40は、1台のI/Oノードを用いる場合、及び第4の実施形態に係る2台のI/Oノード(常用、待機)を用いて制御周期をずらした場合のそれぞれのI/Oプログラムの実行タイミングの例を示す。
図40は、1台のI/Oノード(1個のI/Oプログラム8)を用いる構成と、本構成を用いて制御周期をずらしたスケールアウトを実施した際の、2個のI/Oプログラムにおける処理の様子を時系列に示した例である。図示するように、I/Oプログラム8D-3に対してI/Oプログラム8D-4の制御周期の開始タイミングを1/2T遅らせ、I/Oプログラム8D-3,8D-4を共に制御指令Tで動作させた場合を考える。どちらのI/Oプログラムも制御周期Tであるが、制御対象の機器4から見ると、同一処理が1/2T毎に行われるので、制御周期1/2Tで実行する場合と同等の制御が実現できる。
本構成を行う場合は、制御システムの実行開始時に、制御周期設定欄73m(図3)によって、開始タイミングをずらす設定処理を持つ制御指令をI/Oプログラム8D-4に送信する。さらに、I/Oプログラム8D-3,8D-4に同一の制御指令を送信する制御プログラム7Dを作成する。
図38の例では、制御プログラム7Dはネットワーク5上に1個しか存在しないが、実際には複数存在してもよい。また、第1~第3の実施形態に示した構成と本実施形態を組み合わせて用いることもできる。
以上のとおり、第4の実施形態に係る制御システム(制御システム100D)は、少なくとも2台のI/Oノードを、それぞれ情報の取得と操作が同時に可能なように制御対象機器と接続し、複数のI/Oノードのうち1台を常用系、他のI/Oノードを待機系として動作させる。
また、第4の実施形態に係る制御システム(制御システム100D)では、少なくとも2台のI/Oノードを、各々の制御周期を同期させた状態で同一の制御対象機器と接続する。この制御システムは、制御プログラムの判断実行部が、実行すべき制御内容を少なくとも2個の制御指令に分割して記載し、制御対象機器に接続した各I/Oノードへ制御内容が分割された制御指令をそれぞれ送信するように構成されている。
また、第4の実施形態に係る制御システム(制御システム100D)では、少なくとも2台のI/Oノードを、各々の制御周期を同期させた状態で同一の制御対象機器と接続する。この制御システムは、制御プログラムの判断実行部が、各I/OノードにおけるI/Oプログラムの制御指令実行部での開始タイミングを、制御周期の範囲内でI/Oプログラムごとにずらして設定した同一制御内容の制御指令を生成し、制御対象機器に接続した2台以上のI/Oノードへ制御指令をそれぞれ送信し、各I/OノードにおいてI/Oプログラムの制御指令実行部が、設定された開始タイミングで制御指令を実行するように構成されている。
なお、本発明は上述した各実施形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、その他種々の応用例、変形例を取り得ることは勿論である。
例えば、上述した各実施形態は本発明を分かりやすく説明するために制御システムの構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成要素を備えるものに限定されない。また、ある実施形態の構成の一部を他の実施形態の構成要素に置き換えることが可能である。また、ある実施形態の構成に他の実施形態の構成要素を加えることも可能である。また、各実施形態の構成の一部について、他の構成要素の追加又は置換、削除をすることも可能である。
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。ハードウェアとして、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などを用いてもよい。
また、各図に示したフローチャートにおいて、処理結果に影響を及ぼさない範囲で、複数の処理を並列的に実行したり、処理順序を変更したりしてもよい。
また、上述した実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成要素が相互に接続されていると考えてもよい。
1…制御ノード、2…I/Oノード、3…HMIノード、4…制御対象機器、5…ネットワーク、6…ケーブル、7…制御プログラム、8…I/Oプログラム、9…HMIプログラム、10…CPU、11…記憶装置、12…ネットワークインタフェース、13…メモリ、14…汎用OS、15…構成管理プログラム、15A…マスタ選出部、15B…プログラム配置部、15C…異常監視部、15D…プログラム登録部、15E…テーブル同期部、15F…制御プログラム管理テーブル、15G…制御ノード管理テーブル、20…CPU、21…記憶装置、22…ネットワークインタフェース、23…メモリ、24…リアルタイムOS、25…I/Oインタフェース、30…CPU、31…記憶装置、32…ネットワークインタフェース、33…メモリ、34…汎用OS、35…ユーザインタフェース、40…センサ、41…アクチュエータ、70…判断実行部、71…受信処理部、72…送信処理部、73…制御指令、80…制御指令実行部、81…受信処理部、82…送信処理部、83…送信データ、84…指令切替部、85…入力処理部、86…出力処理部、87…送信元リスト、88…時刻同期部、89…スケールアウト構成テーブル、90…切替信号送信画面、91…制御プログラム登録画面、92…制御ノード異常警告画面、93…スケールアウト構成設定画面、100,100B,100C,100D…制御システム

Claims (13)

  1. 少なくとも1台の制御ノードと、1台以上の制御対象機器に接続され、ネットワークを介して前記制御ノードと通信可能な少なくとも1台のI/Oノードと、から構成され、
    前記制御ノードは、第1のオペレーティングシステムと、少なくとも1個の制御プログラムを前記第1のオペレーティングシステム上で実行する第1のプロセッサと、を備え、
    前記I/Oノードは、前記第1のオペレーティングシステムよりも定時性の高い第2のオペレーティングシステムと、少なくとも1個のI/Oプログラムを前記第2のオペレーティングシステム上で実行する第2のプロセッサと、を備え、
    前記制御ノードの前記制御プログラムは、前記制御対象機器に関して予め設定された状態制御に基づいて制御指令を生成し、前記制御指令を前記I/Oノードに送信する判断実行部を有し、
    前記I/Oノードの前記I/Oプログラムは、前記制御ノードから受信した前記制御指令を記憶部に記憶し、前記記憶部に記憶された前記制御指令に従って前記制御対象機器に関する処理を実行する制御指令実行部を有し、
    前記制御指令実行部は、前記記憶部に複数の前記制御指令が記憶されている場合には、複数の前記制御指令のうち、優先度の高い順に前記制御指令に規定された処理を制御周期に沿って実行し、前記制御周期内に前記制御指令の処理が完了しない場合には前記制御周期を超えた時点で前記制御指令の処理を中止する
    制御システム。
  2. 少なくとも1台の制御ノードと、1台以上の制御対象機器に接続され、ネットワークを介して前記制御ノードと通信可能な少なくとも1台のI/Oノードと、から構成され、
    前記制御ノードは、第1のオペレーティングシステムと、少なくとも1個の制御プログラムを前記第1のオペレーティングシステム上で実行する第1のプロセッサと、を備え、
    前記I/Oノードは、前記第1のオペレーティングシステムよりも定時性の高い第2のオペレーティングシステムと、少なくとも1個のI/Oプログラムを前記第2のオペレーティングシステム上で実行する第2のプロセッサと、を備え、
    前記制御ノードの前記制御プログラムは、前記制御対象機器に関して予め設定された状態制御に基づいて制御指令を生成し、前記制御指令を前記I/Oノードに送信する判断実行部を有し、
    前記I/Oノードの前記I/Oプログラムは、前記制御ノードから受信した前記制御指令を記憶部に記憶し、前記記憶部に記憶された前記制御指令に従って前記制御対象機器に関する処理を実行する制御指令実行部と、複数の前記制御プログラムより受信した複数の前記制御指令の中から実行すべき制御指令を選択する指令切替部、を有し
    前記指令切替部は、複数の前記制御プログラムのうち切り替え後の制御プログラムが生成した制御指令を選択し、当該制御指令を前記制御指令実行部に送信する
    御システム。
  3. 少なくとも1台の制御ノードと、1台以上の制御対象機器に接続され、ネットワークを介して前記制御ノードと通信可能な少なくとも1台のI/Oノードと、から構成され、
    前記制御ノードは、第1のオペレーティングシステムと、少なくとも1個の制御プログラムを前記第1のオペレーティングシステム上で実行する第1のプロセッサと、を備え、
    前記I/Oノードは、前記第1のオペレーティングシステムよりも定時性の高い第2のオペレーティングシステムと、少なくとも1個のI/Oプログラムを前記第2のオペレーティングシステム上で実行する第2のプロセッサと、を備え、
    前記制御ノードの前記制御プログラムは、前記制御対象機器に関して予め設定された状態制御に基づいて制御指令を生成し、前記制御指令を前記I/Oノードに送信する判断実行部を有し、
    前記I/Oノードの前記I/Oプログラムは、前記制御ノードから受信した前記制御指令を記憶部に記憶し、前記記憶部に記憶された前記制御指令に従って前記制御対象機器に関する処理を実行する制御指令実行部と、複数の前記制御プログラムより受信した複数の前記制御指令の中から実行すべき制御指令を選択する指令切替部、を有し
    前記制御プログラムを少なくとも2台の前記制御ノード上で実行し、
    前記指令切替部は、前記制御ノードから先着した前記制御指令のみを前記制御指令実行部に送る
    御システム。
  4. 少なくとも1台の制御ノードと、1台以上の制御対象機器に接続され、ネットワークを介して前記制御ノードと通信可能な少なくとも1台のI/Oノードと、から構成され、
    前記制御ノードは、第1のオペレーティングシステムと、少なくとも1個の制御プログラムを前記第1のオペレーティングシステム上で実行する第1のプロセッサと、を備え、
    前記I/Oノードは、前記第1のオペレーティングシステムよりも定時性の高い第2のオペレーティングシステムと、少なくとも1個のI/Oプログラムを前記第2のオペレーティングシステム上で実行する第2のプロセッサと、を備え、
    前記制御ノードの前記制御プログラムは、前記制御対象機器に関して予め設定された状態制御に基づいて制御指令を生成し、前記制御指令を前記I/Oノードに送信する判断実行部を有し、
    前記I/Oノードの前記I/Oプログラムは、前記制御ノードから受信した前記制御指令を記憶部に記憶し、前記記憶部に記憶された前記制御指令に従って前記制御対象機器に関する処理を実行する制御指令実行部と、複数の前記制御プログラムより受信した複数の前記制御指令の中から実行すべき制御指令を選択する指令切替部、を有し
    前記制御プログラムを少なくとも3台の前記制御ノード上で実行し、
    前記指令切替部は、同一のタイミングで受信した前記制御指令の制御内容を比較し、異なる制御内容の制御指令が含まれる場合には、制御内容が一致する数の多い前記制御指令を選択して前記制御指令実行部に送る
    御システム。
  5. 各制御ノードが構成管理プログラムを備え、
    前記構成管理プログラムは、
    複数の前記制御ノードからマスタ状態で動作する前記制御ノードを選出して自身の制御ノードをスレーブ状態に設定し、マスタ状態の前記制御ノードが存在しない場合には自身の制御ノードをマスタ状態に設定し、自身の制御ノードの情報を他の制御ノードに送信するマスタ選出部と、
    マスタ状態の前記制御ノードとスレーブ状態の前記制御ノードにおけるそれぞれの制御ノードの情報を、各制御ノードが備える制御ノード管理テーブルに同期する情報同期部と、
    ユーザインタフェースで指定される前記制御プログラムの情報と冗長化構成設定の情報を受け取るプログラム登録部と、
    冗長化構成が要求された場合に、前記制御ノード管理テーブルを参照して前記制御プログラムを冗長化構成で実行する2台以上の前記制御ノードを決定して実行させるプログラム配置部と、
    前記制御ノードを監視して異常を検出する異常監視部と、を有し、
    マスタ状態の前記構成管理プログラムにおいて、前記異常監視部がスレーブ状態の前記制御ノードの異常の通知を受信した場合には、前記情報同期部は前記制御ノード管理テーブルから異常のある前記制御ノードを除外し、
    前記プログラム配置部は、前記制御ノード管理テーブルから実行可能な他の制御ノードを選択して前記制御プログラムを実行させる
    請求項に記載の制御システム。
  6. 前記制御ノード管理テーブルに実行可能な他の制御ノードが存在しない場合に、
    前記ネットワーク上に新しい前記制御ノードが接続された際には前記マスタ選出部が前記接続を検出して、新しい前記制御ノードの情報を前記制御ノード管理テーブルに追加し、
    前記プログラム配置部は、前記制御ノード管理テーブルに追加された前記制御ノードを、前記制御プログラムを冗長化構成で実行する前記制御ノードに決定する
    請求項に記載の制御システム。
  7. スレーブ状態の前記構成管理プログラムにおいて、前記異常監視部がマスタ状態の前記制御ノードの異常を検出した場合には、前記マスタ選出部は自身の制御ノードを新規にマスタ状態とする
    請求項又はに記載の制御システム。
  8. 前記I/Oノードの前記I/Oプログラムが処理した結果を、少なくとも2台の前記制御ノードで順番に受信し、
    各制御ノードにおいて、前記制御プログラムの前記判断実行部は、受信した前記処理の結果に基づいて前記制御指令を生成し、前記制御指令を前記I/Oノードに順次送信する
    請求項に記載の制御システム。
  9. 少なくとも2台の前記I/Oノードを、それぞれ情報の取得と操作が同時に可能なように前記制御対象機器と接続し、
    複数の前記I/Oノードのうち1台を常用系、他の前記I/Oノードを待機系として動作させる
    請求項3又は8に記載の制御システム。
  10. 少なくとも1台の制御ノードと、1台以上の制御対象機器に接続され、ネットワークを介して前記制御ノードと通信可能な少なくとも1台のI/Oノードと、から構成され、
    前記制御ノードは、第1のオペレーティングシステムと、少なくとも1個の制御プログラムを前記第1のオペレーティングシステム上で実行する第1のプロセッサと、を備え、
    前記I/Oノードは、前記第1のオペレーティングシステムよりも定時性の高い第2のオペレーティングシステムと、少なくとも1個のI/Oプログラムを前記第2のオペレーティングシステム上で実行する第2のプロセッサと、を備え、
    前記制御ノードの前記制御プログラムは、前記制御対象機器に関して予め設定された状態制御に基づいて制御指令を生成し、前記制御指令を前記I/Oノードに送信する判断実行部を有し、
    前記I/Oノードの前記I/Oプログラムは、前記制御ノードから受信した前記制御指令を記憶部に記憶し、前記記憶部に記憶された前記制御指令に従って前記制御対象機器に関する処理を実行する制御指令実行部を有し、
    少なくとも2台の前記I/Oノードを、制御周期を同期させた状態で同一の前記制御対象機器と接続し、
    前記制御プログラムの前記判断実行部は、実行すべき制御内容を少なくとも2個の前記制御指令に分割して記載し、前記制御対象機器に接続した各I/Oノードへ前記制御内容が分割された前記制御指令をそれぞれ送信する
    御システム。
  11. 少なくとも2台の前記I/Oノードを、制御周期を同期させた状態で同一の前記制御対象機器と接続し、
    前記制御プログラムの前記判断実行部は、実行すべき制御内容を少なくとも2個の前記制御指令に分割して記載し、前記制御対象機器に接続した各I/Oノードへ前記制御内容が分割された前記制御指令をそれぞれ送信する
    請求項3又は8に記載の制御システム。
  12. 少なくとも1台の制御ノードと、1台以上の制御対象機器に接続され、ネットワークを介して前記制御ノードと通信可能な少なくとも1台のI/Oノードと、から構成され、
    前記制御ノードは、第1のオペレーティングシステムと、少なくとも1個の制御プログラムを前記第1のオペレーティングシステム上で実行する第1のプロセッサと、を備え、
    前記I/Oノードは、前記第1のオペレーティングシステムよりも定時性の高い第2のオペレーティングシステムと、少なくとも1個のI/Oプログラムを前記第2のオペレーティングシステム上で実行する第2のプロセッサと、を備え、
    前記制御ノードの前記制御プログラムは、前記制御対象機器に関して予め設定された状態制御に基づいて制御指令を生成し、前記制御指令を前記I/Oノードに送信する判断実行部を有し、
    前記I/Oノードの前記I/Oプログラムは、前記制御ノードから受信した前記制御指令を記憶部に記憶し、前記記憶部に記憶された前記制御指令に従って前記制御対象機器に関する処理を実行する制御指令実行部を有し、
    少なくとも2台の前記I/Oノードを、制御周期を同期させた状態で同一の前記制御対象機器と接続し、
    前記制御プログラムの前記判断実行部は、各I/Oノードにおける前記I/Oプログラムの前記制御指令実行部での開始タイミングを、前記制御周期の範囲内で前記I/Oプログラムごとにずらして設定した同一制御内容の前記制御指令を生成し、前記制御対象機器に接続した2台以上の前記I/Oノードへ前記制御指令をそれぞれ送信し、
    各I/Oノードにおいて、前記I/Oプログラムの前記制御指令実行部が、設定された前記開始タイミングで前記制御指令を実行する
    御システム。
  13. 少なくとも2台の前記I/Oノードを、制御周期を同期させた状態で同一の前記制御対象機器と接続し、
    前記制御プログラムの前記判断実行部は、各I/Oノードにおける前記I/Oプログラムの前記制御指令実行部での開始タイミングを、前記制御周期の範囲内で前記I/Oプログラムごとにずらして設定した同一制御内容の前記制御指令を生成し、前記制御対象機器に接続した2台以上の前記I/Oノードへ前記制御指令をそれぞれ送信し、
    各I/Oノードにおいて、前記I/Oプログラムの前記制御指令実行部が、設定された前記開始タイミングで前記制御指令を実行する
    請求項3又は8に記載の制御システム。
JP2020017325A 2020-02-04 2020-02-04 制御システム Active JP7132257B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020017325A JP7132257B2 (ja) 2020-02-04 2020-02-04 制御システム
PCT/JP2020/038321 WO2021157134A1 (ja) 2020-02-04 2020-10-09 制御システム
EP20917997.7A EP4102314A4 (en) 2020-02-04 2020-10-09 CONTROL SYSTEM
US17/794,248 US11734201B2 (en) 2020-02-04 2020-10-09 Control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020017325A JP7132257B2 (ja) 2020-02-04 2020-02-04 制御システム

Publications (2)

Publication Number Publication Date
JP2021124907A JP2021124907A (ja) 2021-08-30
JP7132257B2 true JP7132257B2 (ja) 2022-09-06

Family

ID=77199855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020017325A Active JP7132257B2 (ja) 2020-02-04 2020-02-04 制御システム

Country Status (4)

Country Link
US (1) US11734201B2 (ja)
EP (1) EP4102314A4 (ja)
JP (1) JP7132257B2 (ja)
WO (1) WO2021157134A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007148814A (ja) 2005-11-28 2007-06-14 Toshiba Corp 制御装置、及びその制御システム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
JP4383476B2 (ja) * 2007-10-05 2009-12-16 新日本製鐵株式会社 プラント制御システム及び方法
JP4877424B1 (ja) * 2011-03-15 2012-02-15 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体
JP6686521B2 (ja) * 2015-09-24 2020-04-22 富士電機株式会社 制御システムおよび制御方法
US10079883B2 (en) * 2015-12-03 2018-09-18 International Business Machines Corporation Primary device selection at operating system initialization
JP6745174B2 (ja) * 2016-09-09 2020-08-26 株式会社日立産機システム コントローラ及びコントロール管理システム
JP6937626B2 (ja) * 2017-07-06 2021-09-22 株式会社日立インダストリアルプロダクツ コントローラ装置、及び二重化システムの同期化方法
US11330087B2 (en) * 2017-11-16 2022-05-10 Intel Corporation Distributed software-defined industrial systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007148814A (ja) 2005-11-28 2007-06-14 Toshiba Corp 制御装置、及びその制御システム

Also Published As

Publication number Publication date
WO2021157134A1 (ja) 2021-08-12
EP4102314A4 (en) 2024-03-06
JP2021124907A (ja) 2021-08-30
EP4102314A1 (en) 2022-12-14
US20230098444A1 (en) 2023-03-30
US11734201B2 (en) 2023-08-22

Similar Documents

Publication Publication Date Title
JP7257329B2 (ja) オープンアーキテクチャ産業制御システム
EP2897007B1 (en) Process controller and updating method thereof
JP6962099B2 (ja) 制御システムおよび制御装置
CN104977875B (zh) 具有同级间冗余性的控制器系统和操作该系统的方法
EP2101232A1 (en) A reliable system for real-time process control
EP1794606A1 (en) Configuring redundancy in a supervisory process control system
JP7359199B2 (ja) 制御システムにおいて実施される方法
JP2010505167A (ja) 工作機械を操作するための操作装置
US20140100670A1 (en) Method and a system for online and dynamic distribution and configuration of applications in a distributed control system
JP7396393B2 (ja) 制御システム、装置および制御方法
JP5176230B2 (ja) 計算機システム、計算機制御方法及び計算機制御プログラム
US20220179386A1 (en) Control device
Gundall et al. Introduction of an architecture for flexible future process control systems as enabler for industry 4.0
TW201530274A (zh) 可程式邏輯控制器及可程式邏輯控制系統
JP7132257B2 (ja) 制御システム
WO2015045004A1 (ja) プログラマブルコントローラおよびプログラマブルコントローラの制御方法
WO2019171845A1 (ja) 制御装置および制御システム
US20210314186A1 (en) Communication system, communication apparatus, communication method, and program
US20230305931A1 (en) Control device and non-transitory machine readable storage medium
JP6939665B2 (ja) ネットワークシステム
JP2011018223A (ja) 情報通信システム及び情報通信方法
JP7231073B2 (ja) 制御装置および制御システム
JP6282222B2 (ja) 通信装置
WO2022269889A1 (ja) 入力ユニット、制御システム、通信方法及びプログラム
JP2019016170A (ja) コントローラ装置、及び二重化システムの同期化方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220803

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: 20220823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220825

R150 Certificate of patent or registration of utility model

Ref document number: 7132257

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150