(57)【特許請求の範囲】
【請求項１】
生産現場で得られるデータを処理する電子計算機と、
生産現場の機器をラダープログラムに従ってシーケンス制御する制御装置と、
を備え、
前記電子計算機および前記制御装置は、それぞれ、前記制御装置および自己が実行する一連のデータ処理の流れを示すデータ処理フローに従って動作を連携させるための連携部を備え、
前記電子計算機は、前記制御装置が過負荷状態になると前記ラダープログラムの一部を自己が実行可能な形式のプログラムに変換し、変換後のプログラムを実行して行うデータ処理を示す情報を前記データ処理フローに挿入して前記データ処理フローを変更し、変更後の前記データ処理フローに従って、前記機器のシーケンス制御を前記制御装置と分担して行う、
ことを特徴とする制御システム。
【請求項２】
前記電子計算機は、
前記ラダープログラムの一部を前記電子計算機が実行可能な形式のプログラムに変換するプログラム変換部、
を備えることを特徴とする請求項１に記載の制御システム。
【請求項３】
前記電子計算機および前記制御装置は、それぞれ、前記制御装置が前記機器をシーケンス制御するタイミングと前記電子計算機が前記機器をシーケンス制御するタイミングとを同期させる同期部を備える、
ことを特徴とする請求項１または２に記載の制御システム。
【請求項４】
前記電子計算機は、
前記制御装置が過負荷状態の場合に前記制御装置および前記電子計算機のそれぞれが前記ラダープログラムを分担して実行する比率を決定する分担比率決定部、
を備えることを特徴とする請求項１から３のいずれか一つに記載の制御システム。
【請求項５】
前記分担比率決定部は、前記制御装置による前記機器のシーケンス制御に要する時間の変化量に基づいて前記比率を決定する、
ことを特徴とする請求項４に記載の制御システム。
【請求項６】
前記分担比率決定部は、前記制御装置が備える演算装置の稼働率に基づいて前記比率を決定する、
ことを特徴とする請求項４に記載の制御システム。
【請求項７】
前記分担比率決定部は、前記制御装置が備えるメモリの使用率に基づいて前記比率を決定する、
ことを特徴とする請求項４に記載の制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、制御対象機器を制御する制御システムに関する。
【背景技術】
【０００２】
従来、複数のプロセッサを用い、各プロセッサが機器の制御を並行して行うことにより制御処理の高速化、負荷の分散を実現する技術が知られている。特許文献１には、複数の制御用プロセッサを備え、各制御用プロセッサの処理負荷が均等になるよう各制御用プロセッサのプログラムの実行分担を決定する分散制御システムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２５９５８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の分散制御システムは、それぞれが同じ機能を有する同一種類のプロセッサ間で処理負荷を分散させることはできるが、異なる種類のプロセッサ間で処理負荷を分散させることはできない。例えば、特許文献１に記載の分散制御システムは、制御用プロセッサに加えて、制御用プロセッサに対するプログラムのダウンロード、制御情報のモニタ等を行う上位コントローラを備えているが、制御用プロセッサと上位コントローラとの間で処理負荷を分散させることはできない。すなわち、特許文献１に記載の分散制御システムでは、複数の制御用プロセッサそれぞれの処理負荷が高く、上位コントローラの処理負荷が低い状態のときに、上位コントローラが制御用プロセッサの代わりにプログラムを実行して制御用プロセッサの処理負荷を下げる、といったことはできない。【０００５】
本開示は、上記に鑑みてなされたものであって、異なる種類の装置間で処理負荷を分散させて機器の制御を行う制御システムを得ることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本開示にかかる制御システムは、生産現場で得られるデータを処理する電子計算機と、生産現場の機器をラダープログラムに従ってシーケンス制御する制御装置と、を備え、電子計算機および制御装置は、それぞれ、制御装置および自己が実行する一連のデータ処理の流れを示すデータ処理フローに従って動作を連携させるための連携部を備える。電子計算機は、制御装置が過負荷状態になるとラダープログラムの一部を自己が実行可能な形式のプログラムに変換し、変換後のプログラムを実行して行うデータ処理を示す情報をデータ処理フローに挿入してデータ処理フローを変更し、変更後のデータ処理フローに従って、機器のシーケンス制御を制御装置と分担して行う。
【発明の効果】
【０００７】
本開示にかかる制御システムは、異なる種類の装置間で処理負荷を分散させて機器の制御を行うことができる、という効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】実施の形態にかかる制御システムの構成例を示す図
【図２】制御システムの動作を示す第１の図
【図３】制御システムの動作を示す第２の図
【図４】制御システムの全体動作の一例を示すフローチャート
【発明を実施するための形態】
【０００９】
以下に、本開示の実施の形態にかかる制御システムを図面に基づいて詳細に説明する。
【００１０】
実施の形態．
図１は、実施の形態にかかる制御システムの構成例を示す図である。制御システム１は、産業用コンピュータであるＩＰＣ（Industrial  Personal  Computer）２と、プログラマブルロジックコントローラであるＰＬＣ（Programmable  Logic  Controller）３とを含んで構成される。ＩＰＣ２には機器４Ａが接続され、ＰＬＣ３には機器４Ｂが接続される。機器４Ａは、例えば、生産現場に設置されたセンサである。機器４Ｂは、例えば、生産現場に設置されたロボットである。なお、図１に示す例では制御システム１に接続される機器を機器４Ａおよび４Ｂの２台としているが、制御システム１に接続される機器は３台以上であってもよいし、１台でもよい。また、制御システム１に含まれるＰＬＣ３は２台以上であってもよい。すなわち、制御システム１は、１台のＩＰＣ２に２台以上のＰＬＣ３が接続される構成であってもよい。
【００１１】
ここで、制御システム１は、エッジコンピューティング領域又は製造現場領域に位置するシステムである。制御システム１は、生産現場に設置された機器４Ａおよび４Ｂからデータを収集し、収集したデータのデータ処理結果に基づき生産現場の機器４Ａおよび４Ｂに処理結果データをフィードバックする一連の処理を実現するデータ処理プラットフォームを有している。なお、エッジコンピューティング領域とは、クラウドコンピューティングに対して端に位置するコンピューティング領域を意味する概念であり、工場内の製造現場を管理するシステム領域である。エッジコンピューティング領域では、生産現場で得られるデータに対して高度なデータ処理が行われる。なお、エッジコンピューティング領域での高度なデータ処理とは、製造現場でのデータ解析手法に対して高度なデータ解析手法を用いたデータ処理を行う意味であり、例えば、製造現場で表計算ソフトを用いてデータ解析を行うことに対し、エッジコンピューティング領域ではＡＩ（Artificial  Intelligence）を活用した予知保全の為のデータ解析を行うことを言う。
【００１２】
ＩＰＣ２はデータ処理を目的として設けられている。すなわち、エッジコンピューティング領域において、ＩＰＣ２はエッジコンピューティングの機器として用いられている。ＩＰＣ２は生産現場で得られるデータを処理する電子計算機である。一方、ＰＬＣ３は生産現場の機器の制御を目的として設けられた制御装置であり、ラダープログラムに従って機器のシーケンス制御を行う。ＩＰＣ２は、センサが取得するデータの他に、例えば、ＰＬＣ３からもデータを収集し、また、データ処理結果である診断結果に応じた指令を生成してＰＬＣ３経由で制御対象機器へ送信する。生産現場のデータの利活用では、ＩＰＣ２とＰＬＣ３との連携が重要となる。
【００１３】
制御システム１においては、ＩＰＣ２とＰＬＣ３とが連携し、柔軟なデータ処理を実現する。すなわち、制御システム１においては、データの収集から、データの加工および診断、機器の制御まで一貫した設定、すなわちデータ処理フローの設定が行えるようにする。データ処理フローとは、複数の処理を組み合わせて一連のデータ処理を実現するための一連のデータ処理の流れを示す処理フローである。ここで、制御システム１において、データ処理フローの設定はＩＰＣ２において実施されるが、データ処理フローの実行は、ＩＰＣ２とＰＬＣ３とが連携して分担して行う。なお、ＩＰＣ２がデータの収集、加工および診断を行い、ＰＬＣ３が機器の制御を行うだけでなく、ＰＬＣ３のリソースが被制御機器の停止等によって多く余っている場合、ＩＰＣ２がデータの収集および加工を行い、ＰＬＣ３が機器の診断および制御を行う構成としてもよい。また、ＩＰＣ２がデータの収集、加工および診断と制御の一部とを行い、ＰＬＣ３が残りの制御を行う構成としてもよい。
【００１４】
また、制御システム１において、ＩＰＣ２およびＰＬＣ３はラダープログラムを共有し、それぞれの負荷状況に応じて分散処理を実行して機器のシーケンス制御を実現する。ここで、ラダープログラムを共有するとは、ＰＬＣ３がラダープログラムを有し、ラダープログラムの一部をＩＰＣ２に渡すことを言う。なお、ラダープログラムの一部をＩＰＣ２に渡すとは、ＩＰＣ２がラダープログラムの一部をコピーすることを言う。これに限らず、ＩＰＣ２がラダープログラムの一部を異なるプログラム言語で実現するようにしても良い。ＰＬＣ３のラダープログラムの一部をＩＰＣ２に渡す際には、ＰＬＣ３のラダープログラムの出力と、ＩＰＣ２で受け取ったラダープログラムの入力のインターフェイス合わせを行うとともに、ＩＰＣ２のラダープログラムの出力と、ＰＬＣ３のラダープログラムの入力のインターフェイス合わせを行い、ＰＬＣ３とＩＰＣ２とで協調してラダープログラムを実行し得るようになされている。
【００１５】
ＩＰＣ２は、データ処理フロー内にあって各種データ処理を行うデータ処理部２１Ａおよび２１Ｂと、ＰＬＣ３およびその他の機器４Ａおよび４Ｂから生産現場のデータを収集するデータ収集部２２Ａおよび２２Ｂと、データ処理フローに従ってデータ収集部２２Ａ，２２Ｂとデータ処理部２１Ａ，２１Ｂとの間にデータを配信するなどの実行制御を行うデータ処理実行制御部２３と、を備える。データ処理実行制御部２３は、データ収集部２２Ａ，２２Ｂとデータ処理部２１Ａ，２１Ｂとの間でデータを配信するデータ配信部３０を有する。データ配信部３０は、データ収集部２２Ａ，２２Ｂおよびデータ処理部２１Ａ，２１Ｂのそれぞれが必要とするデータを、所望の設定に基づいて配信する。なお、本実施の形態ではＩＰＣ２が備えるデータ処理部およびデータ収集部の数を２個としているが、３個以上備える構成であってもよいし、１個でもよい。また、データ処理部とデータ収集部の数が同一である必要はない。例えば、１つのデータ収集部が収集したデータを複数のデータ処理部でデータ処理する、複数のデータ処理部が収集したデータを１つのデータ処理部でデータ処理する、などとしてもよい。
【００１６】
ＩＰＣ２は、ＰＬＣ３とデータ処理の連携を行う連携部２４と、ＰＬＣ３で動作するラダープログラムの一部を実行するプログラム実行部２５と、プログラム実行部２５で実行するラダープログラムとＰＬＣ３が実行するラダープログラムとのシーケンス処理の同期を取る同期部２６と、ユーザがＩＰＣ２およびＰＬＣ３の設定などを行うためのエンジニアリングツール２７と、を更に備える。エンジニアリングツール２７は、ＩＰＣ２で実行するデータ処理フローおよびＰＬＣ３で実行するラダープログラムの管理を行い、データ処理フローおよびラダープログラムそれぞれの作成および編集を行うための機能をユーザに提供する。なお、本実施の形態ではＩＰＣ２がエンジニアリングツール２７を備える構成としたが、エンジニアリングツール２７がＩＰＣ２の外部に存在する構成としてもよい。
【００１７】
ＩＰＣ２の各構成要素は、ＩＰＣ２に搭載されるＣＰＵ（Central  Processing  Unit）２００がＩＰＣ２の各構成要素として動作するためのプログラムを実行することで実現される。
【００１８】
ここで、データ処理フローの実行基盤とラダープログラムの実行基盤とが異なっている場合、ＰＬＣ３で動作するラダープログラムをＩＰＣ２で実行することが困難な場合がある。この為、プログラム実行部２５は、仮想化された基盤である仮想基盤を備えており、仮想基盤上にラダープログラム用の実行基盤を搭載し、ラダープログラムを実行し得るようになされている。プログラム実行部２５は、複数の実行基盤を準備可能に構成されている。プログラム実行部２５は、例えば、ラダープログラムがソフトウェアＰＬＣ（Ｓ／Ｗ−ＰＬＣ）上で動作する場合は、Ｓ／Ｗ−ＰＬＣ用の実行基盤（ＯＳ：Operating  System）を準備し、また、ラダープログラムがＰＬＣ３のＡＳＩＣ（Application  Specific  Integrated  Circuit）上で動作する場合は、ＡＳＩＣの動作をソフトウェア化するモジュールを準備する。
【００１９】
連携部２４は、ＰＬＣ３が実行するラダープログラムの一部をＩＰＣ２が実行可能な形式のプログラムに変換するプログラム変換部２８と、ＩＰＣ２およびＰＬＣ３の処理状況を監視しそれぞれがラダープログラムを分担して実行する比率を決定する分担比率決定部２９と、を備える。
【００２０】
一方、ＰＬＣ３は、ラダープログラムを実行するラダー実行部３１と、ＩＰＣ２と連携する連携部３２と、ＩＰＣ２で実行するラダープログラムのシーケンス処理タイミングをＩＰＣ２と同期を取る同期部３３と、を備える。
【００２１】
ＰＬＣ３の各構成要素は、ＰＬＣ３に搭載されるＣＰＵ３００がＰＬＣ３の各構成要素として動作するためのプログラムを実行することで実現される。
【００２２】
ここで、ＩＰＣ２において、プログラム変換部２８は、ＰＬＣ３で実行するラダープログラムのうち、ＩＰＣ２で実行するラダープログラムの個所を特定し、特定した個所をＩＰＣ２上で実行可能な形式のプログラムに変換する。プログラム変換部２８は、例えば、図２に示すようにラダープログラムの一部（図２に示す例ではＲＡ部）をＩＰＣ２で実行するプログラムとして特定し、更に、図３に示すように、特定したラダープログラムの一部をプログラム実行部２５で実行し、データ処理フローをデータ処理実行制御部２３およびデータ処理部２１Ａ，２１Ｂで実行する。また、プログラム変換部２８は、変換後のプログラム（図３に示すＦＡ部）をデータ処理フローに挿入することにより、ＩＰＣ２で実行するデータ処理フローを作成する。なお、図２は、制御システムの動作を示す第１の図である。図２に示す動作では、ＰＬＣ３がラダープログラムのＲＡ部までを実行して機器４Ｂを制御し、これに続いてＩＰＣ２が収集処理、加工処理および診断処理を実行する。また、図３は、制御システムの動作を示す第２の図である。図３に示す動作では、ＰＬＣ３による処理が終了した後、ＩＰＣ２は、まず、ラダープログラムの図２に示すＲＡ部を変換して得られたＦＡ部を実行して機器４Ｂを制御し、その後、収集処理、加工処理および診断処理を実行する。図２に示す動作から図３に示す動作に変更すると、それまでＰＬＣ３が実行していた処理の一部をＩＰＣ２が代わりに実行するようになり、ＰＬＣ３の処理負荷が低減する。
【００２３】
プログラム変換部２８は、ラダープログラムをＩＰＣ２が実行可能な形式に変換する場合、ラダープログラムにＰＬＣ３で実施する処理を終了するコマンドを挿入すると共に、ＩＰＣ２で処理を開始するコマンドを挿入する。これによりプログラム変換部２８は、ＰＬＣ３で実行するプログラム部分と、ＩＰＣ２で実行するプログラム部分との分離を行う。次に、プログラム変換部２８は、ＩＰＣ２でプログラムの実行を開始するコマンドをＩＰＣ２側のプログラムすなわち変換後のプログラムに挿入する。例えば、プログラム変換部２８は、ＰＬＣ３側のプログラムの実行が終了した通知を受けた場合にプログラムを開始する位置を示すコマンドをＩＰＣ２側のプログラムに挿入する。これにより、ＩＰＣ２は、ＰＬＣ３と連携して、一連の処理としてラダープログラムに相当するプログラムを実行することができる。ラダープログラムに相当するプログラムとは、ラダープログラムをＩＰＣ２が実行可能な形式に変換したプログラムである。次に、プログラム変換部２８は、ＰＬＣ３側で実行したラダープログラムのデバイス値を、ＩＰＣ２側で実行するラダープログラムで利用する場合、ＩＰＣ２側で実行するプログラムにＰＬＣ３側のラダープログラムで利用するデバイス値を割り当てる。これにより、プログラム変換部２８は、ＩＰＣ２で実行可能なラダープログラムに相当するプログラムを付加したデータ処理フローを生成する。
【００２４】
また、プログラム変換部２８は、ラダープログラムをＰＬＣ３で実行するプログラム部分と、ＩＰＣ２で実行するプログラム部分との分離を行う際、後述する分担比率決定部２９が決定する分担比率を利用する。すなわち、プログラム変換部２８は、分担比率決定部２９が決定する分担比率に従いラダープログラムを２つに分離する。プログラム変換部２８は、分担比率を利用してラダープログラムを分離するが、分離したことに伴いＰＬＣ３のＣＰＵ３００である演算装置に過剰な余裕が出来ないよう、ＰＬＣ３が分離後のラダープログラムを実行した場合の稼働率を確認し、ＰＬＣ３のＣＰＵ資源を優先的に活用できるようラダープログラムを分離する。すなわち、プログラム変換部２８は、ＰＬＣ３のＣＰＵ資源を優先的に活用できるよう、ＩＰＣ２で実行するラダープログラムの個所を決定する。
【００２５】
また、プログラム変換部２８は、ＩＰＣ２で実行するラダープログラムの個所をＰＬＣ３の連携部３２に通知する。この通知を受けたＰＬＣ３の連携部３２は、ＩＰＣ２でラダープログラムの実行準備が出来たことを知る。なお、ＩＰＣ２で実行するラダープログラムは、ＰＬＣ３で実行するラダープログラムと同様の機能を実現するＩＰＣ２で実行可能なプログラムである。但し、ＩＰＣ２でラダープログラムの実行を妨げるものではない。
【００２６】
分担比率決定部２９は、ＰＬＣ３におけるラダープログラム実行によるシーケンススキャンタイムを監視し、分担比率の調整が必要と判断した場合は分担比率を調整する。分担比率決定部２９は、シーケンススキャンタイムが伸びている場合、ＰＬＣ３に搭載するＣＰＵ３００の処理能力内での処理が困難になっていることを意味する為、分担比率の調整が必要と判断する。分担比率決定部２９は、シーケンススキャンタイムが伸びている場合、例えば、シーケンススキャンの伸び率、すなわち当初のシーケンススキャンタイムから伸びた時間に基づき、ＰＬＣ３でのシーケンススキャンタイムを維持する為に、伸びた時間分の処理をＩＰＣ２に負担させる為の分担割合を、分担比率結果とする。ここで分担比率結果とは、ＰＬＣ３とＩＰＣ２との間におけるラダープログラムの処理分散の割合を言い、例えば、シーケンススキャンの伸び率が３０％の場合、増加した３０％分の処理をＩＰＣ２でのラダープログラムの処理に移管する。
【００２７】
なお、分担比率決定部２９は、シーケンススキャンタイムの伸び率を監視するだけではなく、ＰＬＣ３のＣＰＵ３００の稼働率またはメモリの使用量（使用率）に基づいて分担比率結果を決定してもよい。分担比率決定部２９は、ＣＰＵ３００の稼働率またはメモリの使用量に基づいて分担比率を算出する場合、ＰＬＣ３のＣＰＵ３００とＩＰＣ２のＣＰＵ２００の稼働率の割合、または、ＰＬＣ３のメモリとＩＰＣ２のメモリの使用率の割合に基づいて算出してもよい。なお、ＰＬＣ３とＩＰＣ２のＣＰＵ性能が異なる場合、分担比率決定部２９はその性能を考慮して分担比率を算出する。
【００２８】
続いて、ＩＰＣ２とＰＬＣ３の連携処理の流れについて、図４を用いて説明する。図４は、制御システムの全体動作の一例を示すフローチャートである。
【００２９】
まず、ユーザがエンジニアリングツール２７を用いて、ラダープログラムの作成およびデータ処理フローの設定を行う（ステップＳ１）。エンジニアリングツール２７は、ユーザによる作業が終了すると、ラダープログラムおよびデータ処理フローをデータ処理実行制御部２３に書き込む。次に、データ処理実行制御部２３がラダープログラムを連携部２４に転送し、連携部２４がＰＬＣ３へラダープログラムを書き込む（ステップＳ２）。
【００３０】
そして、ＰＬＣ３およびＩＰＣ２は、ユーザ操作等によってデータ処理開始の信号を受け取ると、それぞれ、ラダープログラムによって実現するシーケンス処理およびデータ処理フローを開始する（ステップＳ３）。ステップＳ３で処理を開始すると、ＰＬＣ３およびＩＰＣ２は、それぞれ、シーケンス処理およびデータ処理フローを実行する（ステップＳ４）。これらのシーケンス処理およびデータ処理フローは、後述するステップＳ６で終了すると判断されるまで、ステップＳ５〜Ｓ９とともに繰り返し実行される。
【００３１】
なお、ＰＬＣ３は、処理の開始時点では、すなわち、最初にステップＳ４を実行する時点では、ラダープログラムに記述された全ての処理を逐次実行するよう動作する。その後、ＩＰＣ２が実行するラダープログラムの個所がＩＰＣ２から通知されてきた場合、ＰＬＣ３は、ラダープログラムに記述された処理のうち、ＩＰＣ２が実行する個所以外の処理を実行するよう動作する。
【００３２】
ステップＳ４に続いて、ＩＰＣ２の同期部２６およびＰＬＣ３の同期部３３が同期処理を行う（ステップＳ５）。なお、このステップＳ５の同期処理は、ＩＰＣ２がラダープログラムの一部、すなわち、シーケンス制御の一部を行う状態の場合に行われる。同期処理において、ＩＰＣ２の同期部２６は、ラダープログラムの一部を変換したプログラムのプログラム実行部２５による実行処理が終了した場合、これをＰＬＣ３の同期部３３に通知する。この通知を受けた同期部３３は、ラダー実行部３１に対し、ラダープログラムの担当個所を実行するよう指示する。同様に、ＰＬＣ３の同期部３３は、ラダープログラムのラダー実行部３１による実行処理が終了した場合、これをＩＰＣ２の同期部２６に通知する。この通知を受けた同期部２６は、プログラム実行部２５に対し、ラダープログラムの一部を変換したプログラムを実行するよう指示する。
【００３３】
同期処理を実行後、ＩＰＣ２およびＰＬＣ３は、動作を終了するか、すなわち、ユーザ操作等で動作の停止が指示されたかを確認し（ステップＳ６）、動作の停止が指示された場合（ステップＳ６：Ｙｅｓ）、動作を停止する。動作の停止が指示されない場合（ステップＳ６：Ｎｏ）、ＩＰＣ２の分担比率決定部２９がＰＬＣ３の負荷状況を確認し（ステップＳ７）、ＰＬＣ３が過負荷状態であるかを判断する（ステップＳ８）。分担比率決定部２９は、上述したように、例えばシーケンススキャンタイムに基づいて、ＰＬＣ３が過負荷状態であるかを判断する。すなわち、分担比率決定部２９は、シーケンススキャンタイムが伸びている場合にＰＬＣ３が過負荷状態であると判断する。
【００３４】
ＰＬＣ３が過負荷状態の場合（ステップＳ８：Ｙｅｓ）、ＩＰＣ２とＰＬＣ３との間で負荷調整を行う（ステップＳ９）。すなわち、ＩＰＣ２の連携部２４において、分担比率決定部２９が分担比率を決定し、この分担比率に基づいて、プログラム変換部２８が、ラダープログラムをＰＬＣ３で実行するプログラム部分とＩＰＣ２で実行するプログラム部分とに分離する。ラダープログラムの分離は上述した方法で行う。負荷調整を行った後はステップＳ４に戻り、ＩＰＣ２およびＰＬＣ３はステップＳ４およびこれに続く処理を継続する。この場合、ステップＳ４では、負荷調整の結果に従い、シーケンス制御を分担して行う。また、ＰＬＣ３が過負荷状態ではない場合（ステップＳ８：Ｎｏ）、ステップＳ４に戻り、ＩＰＣ２およびＰＬＣ３はステップＳ４およびこれに続く処理を継続する。
【００３５】
以上説明したように、本実施の形態にかかる制御システム１は、生産現場で得られるデータを処理するＩＰＣ２と、生産現場の機器４Ｂを制御するＰＬＣ３とを備え、ＩＰＣ２およびＰＬＣ３は、機器４Ｂの制御動作を連携させる手段（連携部２４，連携部３２）を備える。ＩＰＣ２は、ＰＬＣ３が過負荷状態の場合、ラダープログラムの一部をＰＬＣ３に代わって実行し、ＰＬＣ３とともに機器４Ｂをシーケンス制御する。制御システム１は、機器４Ｂの制御に関する処理負荷をＩＰＣ２とＰＬＣ３との間で分散させることができる。
【００３６】
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００３７】
１  制御システム、２  ＩＰＣ、３  ＰＬＣ、４Ａ，４Ｂ  機器、２１Ａ，２１Ｂ  データ処理部、２２Ａ，２２Ｂ  データ収集部、２３  データ処理実行制御部、２４，３２  連携部、２５  プログラム実行部、２６，３３  同期部、２７  エンジニアリングツール、２８  プログラム変換部、２９  分担比率決定部、３０  データ配信部、３１  ラダー実行部、２００，３００  ＣＰＵ。
【要約】
制御システム（１）は、生産現場で得られるデータを処理するＩＰＣ（２）と、生産現場の機器（４Ｂ）をラダープログラムに従ってシーケンス制御するＰＬＣ（３）と、を備え、ＩＰＣ（２）およびＰＬＣ（３）は、それぞれ、動作を連携させるための連携部（２４，３２）を備え、ＩＰＣ（２）は、ＰＬＣ（３）が過負荷状態の場合、ラダープログラムの一部をＰＬＣ（３）の代わりに実行してＰＬＣ（３）とともに機器（４Ｂ）をシーケンス制御する。【図１】
0006921344.tif 000002
【図２】
0006921344.tif 000003
【図３】
0006921344.tif 000004
【図４】
0006921344.tif 000005