JP7132257B2 - 制御システム - Google Patents
制御システム Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Description
制御システムは、定時性高く制御を行う必要がある。PLCなどは定時性の高いリアルタイムオペレーティングシステム(OS)上でプログラムを実行することで定時性を確保している。リアルタイムOSは、時間的な制約がある処理を実行するための機能や特性を備える。一方、推論処理のように複雑な処理を行うプログラムは、汎用OS上での実行を前提に開発されている場合があり、リアルタイムOS上で実行することは困難である。
工場の製造工程などでは、設備を数ヶ月から数年にわたり稼動し続ける場合があり、制御システムを停止させないことを前提としている。一方で、制御システムに新たな機能を追加するためには、一時的に制御システムを停止する必要がある。また、老朽化により制御システムを構成するソフトウェア又はハードウェアの交換が必要となる場合であっても、頻繁に停止することはできず、交換が先送りにされる場合がある。
上記制御ノードは、第1のオペレーティングシステムと、少なくとも1個の制御プログラムを第1のオペレーティングシステム上で実行する第1のプロセッサと、を備える。
上記I/Oノードは、第1のオペレーティングシステムよりも定時性の高い第2のオペレーティングシステムと、少なくとも1個のI/Oプログラムを第2のオペレーティングシステム上で実行する第2のプロセッサと、を備える。
上記制御ノードの制御プログラムは、制御対象機器に関して予め設定された状態制御に基づいて制御指令を生成し、当該制御指令をI/Oノードに送信する判断実行部を有する。
上記I/OノードのI/Oプログラムは、制御ノードから受信した制御指令を記憶部に記憶し、その記憶部に記憶された制御指令に従って制御対象機器に関する処理を実行する制御指令実行部を有する。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
[制御システムの全体構成]
まず、本発明の第1の実施形態に係る制御システムの構成例について説明する。
図1は、第1の実施形態に係る制御システムの全体構成の例を示すブロック図である。
図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の各部の機能については後述する。
制御指令73は、送信元欄73a、宛先欄73b、生成日時欄73c、及び制御内容欄73dを備える。
送信元欄73aは、制御指令73を生成した制御プログラム7を特定するIPアドレスとポート番号を格納する。
宛先欄73bは、制御プログラムを実行すべきI/Oプログラム8を特定するIPアドレスとポート番号を格納する。
生成日時欄73cは、制御指令73が生成された日付と時刻を格納する。
制御内容欄73dは、制御指令73の制御の内容を格納する。
指令ID欄73eは、制御指令73を一意に特定する指令IDを保持する。指令IDは判断実行部70により制御指令73生成時に付与される。
優先度欄73fは、制御指令73の優先度を保持する。優先度欄73fが空欄の場合には、優先度が最も低いことを示す。
タイミング欄73gは、制御内容欄73dに記載された処理を実行すべきタイミングを保持する。タイミングの内容は、一定の間隔で周期的に実行する場合、センサの状態などの条件を満たした場合、指定の時刻になった場合など様々な場合を指定できる。
最大時間欄73hは、一つの制御指令73の処理に許容できる最大時間(後述する図8)を保持する。最大時間欄73hが空欄の場合は、最大時間が設定されていないことを示す。
制御内容欄73d(1)は、入力処理、すなわちセンサ40からの情報取得を行う場合の例である。制御内容欄73d(1)は入力処理欄73iを備え、情報を取得する対象を保持する。
制御内容欄73d(2)は、計算処理、すなわちセンサ40の出力値の移動平均などの計算処理を行う場合の例である。制御内容欄73d(2)は計算処理欄73jを備え、計算処理の内容を保持する。
制御内容欄73d(3)は、送信処理、すなわち制御プログラム7に情報を送信する場合の例である。制御内容欄73d(3)は送信処理欄73kを備え、送信する対象を保持する。
制御内容欄73d(5)は、制御周期設定処理、すなわち後述する制御周期に関する設定を行う場合の例である。制御内容欄73d(5)は制御周期設定欄73mを備え、指定する制御周期や開始タイミングを保持する。
制御内容欄73d(6)は、中止処理、すなわち特定の制御指令73の実行を中止する場合の例である。制御内容欄73d(6)は中止処理欄73nを備え、中止対象の指令IDを保持する。
送信データ83は、送信元欄83a、送信日時欄83b、指令ID欄83c、及びデータ欄83dを備える。
送信元欄83aは、送信データ83を生成したI/Oプログラム8を特定するIPアドレスとポート番号を格納する。
送信日時欄83bは、送信データ83をI/Oプログラム8が送信した日付と時刻を格納する。
指令ID欄83cは、送信データ83がどの制御指令73の指示によって送信されたのかを特定する指令IDを格納する。
データ欄83dは、送信するデータの内容(例えば対象、値)を保持する。
以下、図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)。
図6は、制御指令実行部80の制御指令受付処理の手順例を示すフローチャートである。
制御指令実行部80は、指令切替部84から新しい制御指令73を受け取ると(S801)、制御指令受付フローを開始する。すなわち、制御指令実行部80は、後述する図7に示す周期処理フローに沿って制御指令73が実行されるよう設定する(S802)。ステップS802の終了後、本フローチャートの処理を終了する。
次に、I/Oプログラム8の制御指令実行部80が制御指令73を実行する手順について図7を参照して説明する。
図7は、制御指令実行部80の周期処理の手順例を示すフローチャートである。
ステップS810は、計算処理のためのステップである。制御指令実行部80は、計算処理を実行し、その結果を他ステップが利用できるようメモリ23の変数に格納する。
ステップS811は、送信処理のためのステップである。制御指令実行部80は、送信すべき情報を含む送信データ83を生成し、送信処理部82によりネットワーク5上の全ての制御プログラム7に送信させる。
ステップS812は、出力処理のためのステップである。制御指令実行部80は、出力処理部86を介して制御対象の機器4のアクチュエータ41を操作する。
ステップS813は、設定処理のためのステップである。制御指令実行部80は、制御周期の変更を行う。
ステップS814は、中止処理のためのステップである。制御指令実行部80は、指令IDで指定された制御指令73を実行されないように削除する。
図8では、制御指令実行部80の周期処理フロー(図7)における制御指令73の実行の様子を時間軸で表している。最大時間用の打ち切りタイマにより、各制御指令73(制御指令1~4…)は最大時間を超えて実行されない。また、制御周期用の打ち切りタイマにより、各制御指令73(制御指令1~4…)が制御周期を超えて実行され続けることもない。そのため、制御指令実行部80は、制御指令73を定時性高く実行することができる。
再び図2を参照して、本実施形態に係る制御システム100において、制御プログラム7を変更する手順を説明する。
制御システム100の管理者36は、制御ノード1の制御プログラムを変更するために、変更前の制御プログラム7を動作させた状態で、制御ノード1上で変更後の制御プログラム7A-1を動作させる。そして、I/Oプログラム8の制御指令実行部80が、制御プログラム7A-1の判断実行部70A-1が生成した制御指令73A-1を処理するように切り替え、変更前の制御プログラム7を停止させる。
次に、I/Oプログラム8の指令切替部84による制御指令処理の手順について図9を参照して説明する。
図9は、指令切替部84の制御指令処理の手順例を示すフローチャートである。
図10は、指令切替部84の切替信号処理の手順例を示すフローチャートである。
図2に示す制御システム100の管理者36は、制御プログラム7A-1で生成された制御指令73A-1が処理されるようにするため、切替信号送信画面90を操作する。HMIプログラム9は、切替信号送信画面90に対する操作内容に基づき、切替信号を指令切替部84に送信する。指令切替部84は、HMIプログラム9から切替信号を受け取ると(S848)、図10に示す切替信号処理フローを開始する。すなわち、指令切替部84は、送信元リスト87の送信元情報を、切替信号に含まれる送信元情報に変更する(S849)。ステップS849の処理後、図10に示すフローチャートの処理を終了する。
切替信号送信画面90は、I/Oプログラム8のIPアドレスとポート番号を入力する領域90a、切替先(変更後)の制御プログラム7A-1のIPアドレスとポート番号を入力する領域90b、及び切替信号の送信を指示するボタン90cを持つ。制御システム100の管理者36は、変更後の制御プログラム7A-1をネットワーク5に接続して起動した後、切替信号送信画面90を用いて切替信号を送信し、指令切替部84が制御指令73A-1を処理するように設定する。
上記制御ノードは、第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)を有する。
第2の実施形態では、制御システムにおいて、制御ノードを複数台用いて冗長化し、また故障した制御ノードを交換した後に自動的に冗長化構成へと回復させる方法を説明する。
図12は、第2の実施形態に係る制御ノード1Bに導入された構成管理プログラム15の論理構成の例を示すブロック図である。
制御ノード1Bは、第1の実施形態で示した制御ノード1に構成管理プログラム15を加えた構成である。構成管理プログラム15も制御プログラム7と同様に、汎用OS14上でCPU10により実行される。構成管理プログラム15は、マスタ選出部15A、プログラム配置部15B、異常監視部15C、プログラム登録部15D、テーブル同期部15E(情報同期部の例)、制御プログラム管理テーブル15F、制御ノード管理テーブル15Gを備える。
図13は、第2の実施形態に係る制御システム100Bの全体構成の例を示すブロック図である。
制御システム100Bでは、2台の制御ノード1Bを制御ノード1B-1,1B-2として用いる。制御ノード1B-1,1B-2はそれぞれ、第1の実施形態と同様に、ネットワーク5を介してI/Oノード2及びHMIノード3と接続している。
図14及び図15に、構成管理プログラム15の各テーブルの具体例を示している。
図14は、構成管理プログラム15が利用する制御プログラム管理テーブル15Fの構造の例を示す。
図15は、構成管理プログラム15が利用する制御ノード管理テーブル15Gの構造の例を示す。
プログラムID欄15f-1は、制御プログラムを一意に特定するための制御プログラムIDを格納する。
保存先欄15f-2は、制御プログラムの保存先の場所を示す情報を格納する。
種別欄15f-3は、制御システム100Bの実行方式を示す情報を格納する。
構成数欄15f-4は、制御プログラムIDで特定される制御プログラムを実行する際に使用する制御ノードの数を格納する。
制御ノードID欄15g-1は、制御ノードを一意に特定するための制御ノードIDを格納する。
マスタ/スレーブ欄15g-2は、構成管理プログラム(制御ノード)の状態がマスタとスレーブのいずれであるかを示す情報を格納する。マスタ状態の制御ノードは、1つのネットワークに1台のみである。なお、マスタ/スレーブの情報を、制御ノード管理テーブル15Gではなく他で管理してもよい。
実行制御プログラムID欄15g-3は、実行している制御プログラムを一意に特定するための制御プログラムIDを格納する。
実行可否欄15g-4は、制御ノード上で制御プログラムを実行可能であるかを示す情報を格納する。
図16は、マスタ選出部15Aの開始処理の手順例を示すフローチャートである。
制御システム100Bの管理者36は、ユーザインタフェース35により制御ノード1B-1及び1B-2の動作を開始する。これに伴い構成管理プログラム15B-1は、図16に示すマスタ選出部15B-1Aの開始フローを開始する。
図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の処理後、本フローチャートの処理を終了する。
制御システム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)。
図21は、プログラム配置部15Bのプログラム配置処理の手順例を示すフローチャートである。
マスタ状態の構成管理プログラム15B-1におけるプログラム配置部15B-1Bは、プログラム登録部15B-1Dなどの指示により図21に示すプログラム配置フローを開始する(S1517)。プログラム配置フローは、制御プログラム管理テーブル15B-1Fに登録された制御プログラムごとにループ処理される。
図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は、第2の実施形態に係る制御指令の切替動作の例を示すブロック図である。
既述のとおり、制御ノード1B-2上で実行されている制御プログラム7B-2により、制御そのものは継続されるが、制御ノード1B-2にも異常が発生すれば制御システム100Bが停止してしまう。そのため、新たな制御ノード1B-3によって故障した制御ノードを置き換え、冗長化構成を回復する必要がある。各制御ノードの故障(異常)は、各構成管理プログラム15に存在する異常監視部15Cにより検出される。異常監視部15Cの監視処理のフローチャートを図25に示す。
異常監視部15Cは、監視対象の制御ノードの状態を確認する(S1530)。例えば、異常監視部15Cは、制御ノードID(例えば番号)が自身よりも1つ小さい制御ノードを対象に、異常が無いか監視する。制御ノードIDが“1”(最小)の制御ノードの異常監視部15Cは、制御ノードIDが最大の制御ノードを監視する。すなわちネットワーク5上の各制御ノード1Bは、数珠繋ぎにお互いを監視する。図13に示す制御システム100Bの構成では、構成管理プログラム15B-1,15B-2が互いを監視し合う。監視方法の具体例としては、ping応答による応答の有無を確認する、監視対象の制御ノード1Bが制御指令を定期的に送信するか確認する、などの方法があげられるが、これに限定されない。
HMIプログラム9Bは制御ノードの異常発生の通知を受け、図26に示す制御ノード異常警告画面92を表示することで、制御ノードの異常を制御システム100Bの管理者36に通知する。図26では、“制御ノード[1]停止!”というメッセージが表示されている。
図27は、異常監視部15Cの回復処理の手順例を示すフローチャートである。
マスタ状態の構成管理プログラム15の異常監視部15Cは、制御ノード1Bの異常発生の通知を受けると(S1535)、図27に示す回復フローを開始する。制御ノード1B-1に異常が発生した場合を例に説明する。
次に、再度図13を参照し、制御ノード1B-1が故障した状態で、新しい制御ノード1Bを制御ノード1B-3としてネットワーク5に接続した場合の動作を説明する。
次に、第2の実施形態の第1の変形例として、制御ノードに常用監視プログラムを導入した例について図28を参照して説明する。
図28は、第2の実施形態の第1の変形例に係る制御ノードに常用監視プログラムを導入した例を示すブロック図である。
図29は、第2の実施形態の第2の変形例に係る1台の制御ノード上で複数の制御プログラムを動作させる例を示すブロック図である。
構成管理プログラムは、
複数の制御ノードからマスタ状態で動作する制御ノードを選出して自身の制御ノードをスレーブ状態に設定し、マスタ状態の制御ノードが存在しない場合には自身の制御ノードをマスタ状態に設定し、自身の制御ノードの情報を他の制御ノードに送信するマスタ選出部(マスタ選出部15A)と、
マスタ状態の制御ノードとスレーブ状態の制御ノードにおけるそれぞれの制御ノードの情報を、各制御ノードが備える制御ノード管理テーブルに同期する情報同期部(テーブル同期部15E)と、
ユーザインタフェースで指定される制御プログラムの情報と冗長化構成設定の情報を受け取るプログラム登録部(プログラム登録部15D)と、
冗長化構成が要求された場合に、制御ノード管理テーブルを参照して制御プログラムを冗長化構成で実行する2台以上の制御ノードを決定して実行させるプログラム配置部(プログラム配置部15B)と、
制御ノードを監視して異常を検出する異常監視部(異常監視部15C)と、を有する。
そして、制御システムは、マスタ状態の構成管理プログラムにおいて、異常監視部がスレーブ状態の制御ノードの異常の通知を受信した場合には、情報同期部が制御ノード管理テーブルから異常のある制御ノードを除外し、プログラム配置部が、制御ノード管理テーブルから実行可能な他の制御ノードを選択して制御プログラムを実行させるように構成されている。
次に、第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を実行する。
先に、制御システム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)。
スケールアウト構成設定画面93は、I/Oプログラム設定欄93a、スケールアウト開始ボタン93bを備える。スケールアウト開始ボタン93bが押下されることにより、スケールアウト開始信号がI/Oプログラム8の送信処理部82Cに送信される。スケールアウト開始信号を受けた送信処理部82Cは、送信データ83Cを対象の制御ノードに設定された順序で送信(分散)する。
図34は、送信処理部82Cのスケールアウト構成開始処理の手順例を示すフローチャートである。
送信処理部82Cは、HMIプログラム9Cからスケールアウト開始信号を受信すると(S8201)、図34に示すスケールアウト構成開始フローを開始する。まず、送信処理部82Cは、図35に示す送信元リスト87Cを参照する(S8202)。
送信元リスト87Cは、少なくとも送信元欄87a、順序欄87bを備える。
送信元欄87aは、制御指令(例えば制御指令73C1,73C2)を生成する制御プログラム(例えば制御指令73C1,73C2)を特定するIPアドレスとポート番号を格納する。
順序欄87bには、制御プログラムから指定される複数の制御プログラムの実行順序が格納されている。
例えば、制御指令73の中に制御プログラムを特定する送信元及び順序の情報が含まれ、指令切替部84がそれらの情報を用いて送信元リスト87Cを作成することができる。
スケールアウト構成テーブル89は、送信元リスト87Cと同様に、少なくとも送信元欄89a、順序欄89bを備える。スケールアウト構成テーブル89の各欄の情報は、送信元リスト87Cから取得したものである。
送信元欄89aは、制御指令(例えば制御指令73C1,73C2)を生成する制御プログラム(例えば制御指令73C1,73C2)を特定するIPアドレスとポート番号を格納する。
順序欄89bは、複数の制御プログラムの実行順序を格納する。順序欄89bでは1から順に数値を設定しており、これにより送信データ83Cを送信する順序が規定される。
図37は、送信処理部82Cの送信処理の手順例を示すフローチャートである。
送信処理部82Cは、制御指令実行部80より送信データ83Cを受け取る(S8205)、図37に示す送信処理フローを開始する。
次に、I/Oノード2を2台以上用いて冗長化構成を実現する方法を示す。
図38は、第4の実施形態に係る制御システムの全体構成の例を示すブロック図である。
周期同期部88D-1はサーバとして動作し、ネットワーク5を介して制御指令実行部80D-1が制御周期の基準として用いている時計の時刻情報を配信する。
周期同期部88D-2はクライアントとして動作し、周期同期部88D-1から受信した時刻を基に、制御指令実行部80D-2の時計を調整することで制御周期のタイミングを一致させる。
図39は、1台のI/Oノードを用いる場合、及び第4の実施形態に係る2台のI/Oノード(常用、待機)を用いる場合のそれぞれのI/Oプログラムの実行タイミングの例を示す。
または、同一の処理を制御周期のタイミングをずらして実行することで、機器から見た実質的な制御周期を短縮するために本実施形態を用いることもできる。
Claims (13)
- 少なくとも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台以上の制御対象機器に接続され、ネットワークを介して前記制御ノードと通信可能な少なくとも1台のI/Oノードと、から構成され、
前記制御ノードは、第1のオペレーティングシステムと、少なくとも1個の制御プログラムを前記第1のオペレーティングシステム上で実行する第1のプロセッサと、を備え、
前記I/Oノードは、前記第1のオペレーティングシステムよりも定時性の高い第2のオペレーティングシステムと、少なくとも1個のI/Oプログラムを前記第2のオペレーティングシステム上で実行する第2のプロセッサと、を備え、
前記制御ノードの前記制御プログラムは、前記制御対象機器に関して予め設定された状態制御に基づいて制御指令を生成し、前記制御指令を前記I/Oノードに送信する判断実行部を有し、
前記I/Oノードの前記I/Oプログラムは、前記制御ノードから受信した前記制御指令を記憶部に記憶し、前記記憶部に記憶された前記制御指令に従って前記制御対象機器に関する処理を実行する制御指令実行部と、複数の前記制御プログラムより受信した複数の前記制御指令の中から実行すべき制御指令を選択する指令切替部と、を有し、
前記指令切替部は、複数の前記制御プログラムのうち切り替え後の制御プログラムが生成した制御指令を選択し、当該制御指令を前記制御指令実行部に送信する
制御システム。 - 少なくとも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台の前記制御ノード上で実行し、
前記指令切替部は、同一のタイミングで受信した前記制御指令の制御内容を比較し、異なる制御内容の制御指令が含まれる場合には、制御内容が一致する数の多い前記制御指令を選択して前記制御指令実行部に送る
制御システム。 - 各制御ノードが構成管理プログラムを備え、
前記構成管理プログラムは、
複数の前記制御ノードからマスタ状態で動作する前記制御ノードを選出して自身の制御ノードをスレーブ状態に設定し、マスタ状態の前記制御ノードが存在しない場合には自身の制御ノードをマスタ状態に設定し、自身の制御ノードの情報を他の制御ノードに送信するマスタ選出部と、
マスタ状態の前記制御ノードとスレーブ状態の前記制御ノードにおけるそれぞれの制御ノードの情報を、各制御ノードが備える制御ノード管理テーブルに同期する情報同期部と、
ユーザインタフェースで指定される前記制御プログラムの情報と冗長化構成設定の情報を受け取るプログラム登録部と、
冗長化構成が要求された場合に、前記制御ノード管理テーブルを参照して前記制御プログラムを冗長化構成で実行する2台以上の前記制御ノードを決定して実行させるプログラム配置部と、
前記制御ノードを監視して異常を検出する異常監視部と、を有し、
マスタ状態の前記構成管理プログラムにおいて、前記異常監視部がスレーブ状態の前記制御ノードの異常の通知を受信した場合には、前記情報同期部は前記制御ノード管理テーブルから異常のある前記制御ノードを除外し、
前記プログラム配置部は、前記制御ノード管理テーブルから実行可能な他の制御ノードを選択して前記制御プログラムを実行させる
請求項3に記載の制御システム。 - 前記制御ノード管理テーブルに実行可能な他の制御ノードが存在しない場合に、
前記ネットワーク上に新しい前記制御ノードが接続された際には前記マスタ選出部が前記接続を検出して、新しい前記制御ノードの情報を前記制御ノード管理テーブルに追加し、
前記プログラム配置部は、前記制御ノード管理テーブルに追加された前記制御ノードを、前記制御プログラムを冗長化構成で実行する前記制御ノードに決定する
請求項5に記載の制御システム。 - スレーブ状態の前記構成管理プログラムにおいて、前記異常監視部がマスタ状態の前記制御ノードの異常を検出した場合には、前記マスタ選出部は自身の制御ノードを新規にマスタ状態とする
請求項5又は6に記載の制御システム。 - 前記I/Oノードの前記I/Oプログラムが処理した結果を、少なくとも2台の前記制御ノードで順番に受信し、
各制御ノードにおいて、前記制御プログラムの前記判断実行部は、受信した前記処理の結果に基づいて前記制御指令を生成し、前記制御指令を前記I/Oノードに順次送信する
請求項5に記載の制御システム。 - 少なくとも2台の前記I/Oノードを、それぞれ情報の取得と操作が同時に可能なように前記制御対象機器と接続し、
複数の前記I/Oノードのうち1台を常用系、他の前記I/Oノードを待機系として動作させる
請求項3又は8に記載の制御システム。 - 少なくとも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ノードへ前記制御内容が分割された前記制御指令をそれぞれ送信する
制御システム。 - 少なくとも2台の前記I/Oノードを、制御周期を同期させた状態で同一の前記制御対象機器と接続し、
前記制御プログラムの前記判断実行部は、実行すべき制御内容を少なくとも2個の前記制御指令に分割して記載し、前記制御対象機器に接続した各I/Oノードへ前記制御内容が分割された前記制御指令をそれぞれ送信する
請求項3又は8に記載の制御システム。 - 少なくとも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プログラムの前記制御指令実行部が、設定された前記開始タイミングで前記制御指令を実行する
制御システム。 - 少なくとも2台の前記I/Oノードを、制御周期を同期させた状態で同一の前記制御対象機器と接続し、
前記制御プログラムの前記判断実行部は、各I/Oノードにおける前記I/Oプログラムの前記制御指令実行部での開始タイミングを、前記制御周期の範囲内で前記I/Oプログラムごとにずらして設定した同一制御内容の前記制御指令を生成し、前記制御対象機器に接続した2台以上の前記I/Oノードへ前記制御指令をそれぞれ送信し、
各I/Oノードにおいて、前記I/Oプログラムの前記制御指令実行部が、設定された前記開始タイミングで前記制御指令を実行する
請求項3又は8に記載の制御システム。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007148814A (ja) | 2005-11-28 | 2007-06-14 | Toshiba Corp | 制御装置、及びその制御システム |
Family Cites Families (8)
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 |
-
2020
- 2020-02-04 JP JP2020017325A patent/JP7132257B2/ja active Active
- 2020-10-09 US US17/794,248 patent/US11734201B2/en active Active
- 2020-10-09 EP EP20917997.7A patent/EP4102314A4/en active Pending
- 2020-10-09 WO PCT/JP2020/038321 patent/WO2021157134A1/ja unknown
Patent Citations (1)
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 |