以下に、本発明の実施の形態に係るユニット及び制御システムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、実施の形態1に係る制御システムの構成を示す図である。制御システム1は、FA分野の設備を構成するものであり、図1に示すように、一以上の制御対象機器である被制御機器2に接続されるユニット3と、ユニット3に接続した制御ユニット5と、制御ユニット5に接続したコンピュータ6と、を備える。コンピュータ6は、制御システム1の周辺機器であり、例えば、パーソナルコンピュータである。制御システム1は、ユニット3がFA分野の設備に分散配置される所謂分散型制御システムである。
被制御機器2は、FA分野の設備に設置される。被制御機器2は、物理量を電気信号に変換するセンサ又は制御信号を物理量に応じた電気信号に変換する駆動機器である。センサとしては、設備に設置され、かつ接触の有無、変位、流量、圧力、又は温度を検出するセンサが挙げられる。駆動機器としては、設備に設置され、かつスイッチ、調整弁、電磁弁、モータ、インバータ、又はポンプである動作を実行する駆動機器が挙げられる。
制御システム1は、各ユニット3に接続した被制御機器2に関する図1中に点線で示す制御データCDを取得し、記憶する。本明細書は、制御データCDを取得し、記憶することを、ロギングすると記載する。制御データCDは、被制御機器2が前述したセンサである場合、センサの検出結果である。制御データCDは、被制御機器2が前述した駆動機器である場合、被制御機器2の動作を制御するための制御信号及び駆動機器の診断情報である。即ち、制御データCDは、検出結果と制御信号と診断情報を総称したものである。なお、制御信号は、被制御機器2の動作を制御するための信号であり、診断情報は、駆動機器である被制御機器2の動作状況の良又は不良を示す情報である。
制御システム1は、ユニット3を複数備える。複数のユニット3同士は、通信可能に接続する。実施の形態1において、制御システム1は、ユニット3を二つ備えるが、二つに限定されない。実施の形態1において、二つのユニット3同士を区別する場合には、ユニット3のうち一方のユニット3を符号3−1で示し、他方のユニット3を符号3−2で示し、区別しない場合には、ユニット3を符号3で示す。ユニット3−2は、請求項1、請求項2及び請求項3に記載されたユニット、請求項4に記載され自ユニットである。ユニット3−1は、請求項1、請求項2及び請求項4に記載された他のユニットである。また、各ユニット3は、自然数であるN個の被制御機器2に接続される。即ち、ユニット3−2は、一以上の被制御機器2とユニット3−1との双方に接続される。実施の形態1において、被制御機器2同士を区別する場合には、被制御機器2を符号2−1,2―2,2―3,2−Nで示し、区別しない場合には、被制御機器2を符号2で示す。
コンピュータ6は、制御ユニット5で実行される制御プログラムを作成して、制御ユニット5に送信する。制御ユニット5は、制御プログラムを実行することにより、各ユニット3−1,3−2を介して被制御機器2−1,2−2,2−3,2−Nを制御する。制御ユニット5は、制御プログラムを実行することにより、制御プログラム通りに被制御機器2−1,2−2,2−3,2−Nを制御するための信号を生成する。制御ユニット5は、生成した信号を各ユニット3−1,3−2に送信することにより、各ユニット3−1,3−2に接続した被制御機器2−1,2−2,2−3,2−Nを制御する。実施の形態1において、制御ユニット5は、プログラマブルロジックコントローラ(Programmable Logic Controllers(PLC))である。プログラマブルロジックコントローラは、JIS(日本工業規格) B 3502:2011により規定されたものである。
図2は、実施の形態1に係る制御システムにおいて各ユニットに番号を付した一例を示す図である。図3は、実施の形態1に係る制御システムがユニット別の被制御機器に番号を付した一例を示す図である。
制御システム1は、制御システム1を構成するユニット3−1,3−2に番号を付して管理する。実施の形態1において、制御システム1は、図2に示すように、ユニット3−1,3−2に番号として1から順に、1つずつ大きくなる自然数を付して管理する。制御システム1は、ユニット3−1,3−2のうち接続した被制御機器2−1,2−2,2−3,2−Nに関する制御データCDのロギングする優先度付けを、制御システム1上の被制御機器2毎に行う。
また、制御システム1は、ユニット3−1,3−2別に、各ユニット3−1,3−2に接続した被制御機器2−1,2−2,2−3,2−Nに番号を付して管理する。実施の形態1において、制御システム1は、図3に示すように、各ユニット3−1,3−2別に、各ユニット3−1,3−2に接続した被制御機器2−1,2−2,2−3,2−Nに番号として1から順に、1つずつ大きくなる自然数を付して管理する。制御システム1は、被制御機器2−1,2−2,2−3,2−Nのうち制御データCDをロギングする優先度の高い被制御機器2に小さい番号を付し、優先度の低い被制御機器2に大きい番号を付す。
図4は、実施の形態1に係る制御システムのコンピュータのハードウェア構成を示す図である。実施の形態1に係るコンピュータ6は、コンピュータプログラムを実行するものであって、図4に示すように、CPU(Central Processing Unit)61と、RAM(Random Access Memory)62と、ROM(Read Only Memory)63と、記憶装置64と、入力装置65と、表示装置66と、通信インタフェース67と、を含む。CPU61、RAM62、ROM63、記憶装置64、入力装置65、表示装置66及び通信インタフェース67は、バスB6を介して相互に接続されている。
CPU61は、RAM62を作業領域として使用しながら、ROM63及び記憶装置64に記憶されているプログラムを実行する。ROM63に記憶されているプログラムは、BIOS(Basic Input/Output System)又はUEFI(Unified Extensible Firmware Interface)であるが、ROM63に記憶されているプログラムは、BIOS又はUEFIに限定されない。実施の形態1において、記憶装置64に記憶されているプログラムは、オペレーティングシステムプログラム及びエンジニアリングツールプログラムであるが、記憶装置64に記憶されているプログラムは、オペレーティングシステムプログラム及びエンジニアリングツールプログラムに限定されない。実施の形態1において、記憶装置64は、SSD(Solid State Drive)又はHDD(Hard Disk Drive)であるが、記憶装置64は、SSD又はHDDに限定されない。
入力装置65は、ユーザからの操作入力を受け付ける。実施の形態1において、入力装置65は、キーボード又はマウスであるが、キーボード又はマウスに限定されない。表示装置66は、文字及び画像を表示する。実施の形態1において、表示装置66は、液晶表示装置であるが、液晶表示装置に限定されない。通信インタフェース67は、ネットワークNを介して制御ユニット5と通信を行う。ネットワークNは、コンピュータ6、制御ユニット5及びユニット3−1,3−2を相互に通信可能に接続するコンピュータネットワークである。実施の形態1において、ネットワークNは、FA設備に設置されるものであり、ネットワークNの方式は、イーサネット(登録商標)、RS−232Cにより規定されたシリアル通信、RS−422により規定されたシリアル通信、又は、RS−485により規定されたシリアル通信を用いることができるが、これらに限定されない。なお、RS−232C、RS−422及びRS−485は、EIA(Electronic Industries Association:米国電子工業会)の通信規格である。
コンピュータ6は、入力装置65が受け付けたユーザからの操作入力と、エンジニアリングツールプログラムに基づいて各ユニット3−1,3−2及びユニット3−1,3−2別に各被制御機器2−1,2−2,2−3,2−Nに番号を付す。
実施の形態1において、二つのユニット3は、構成が同一であるので、同一部分には同一符号を付して説明する。ユニット3は、制御ユニット5が制御プログラムを実行して送信する信号を受信し、制御データCDとしての制御信号を生成し、生成した制御信号を駆動機器である被制御機器2に送信するユニットである。ユニット3は、センサである被制御機器2に関する制御データCDである検出結果を受信するユニットである。ユニット3は、他のユニット3とネットワークNを介して接続し、かつ制御信号を被制御機器2に送信するとともに、被制御機器2の検出結果を受信する、即ち、被制御機器2との間で制御データCDを送受信する、所謂リモートユニットである。
ユニット3は、図1に示すように、コンピュータ6により読み出し可能な情報を記憶可能な記憶領域MSを備える記憶部である共有メモリ31と、自己のユニット3に接続された被制御機器2と接続する制御部32とを備える。自己のユニット3は、請求項に記載された自ユニットであり、以下、自己のユニット3を符号3aで示す。
図5は、実施の形態1に係る制御システムのユニットのロギング設定部に設定されたロギング設定情報の一例を示す図である。図6は、実施の形態1に係る制御システムのユニットの優先度設定部に設定されたロギング優先度情報の一例を示す図である。
ユニット3は、制御システム1全体の被制御機器2に関する制御データCDをロギングするか否かを示すロギング設定情報SI(図5に示す)が設定されるロギング設定部33と、制御システム1全体の被制御機器2のロギングの優先度であるロギング優先度情報PI(図6に示す)が設定される優先度設定部34とを備える。
共有メモリ31は、制御システム1において、自己のユニット3a以外の他のユニット3と記憶領域MSが共有される。制御部32は、制御ユニット5から受信する信号に基づいて、被制御機器2を制御する制御信号を生成し、生成した制御信号を被制御機器2に送信する。制御部32は、被制御機器2の検出結果を受信する。
図5に示すロギング設定情報SIは、コンピュータ6を通じて制御部32がロギング設定部33に設定される。図5に示すロギング設定情報SIは、制御システム1全体の被制御機器2のロギングの有効又は無効を設定する情報である。実施の形態1において、ロギング設定情報SIは、ユニット3−1の被制御機器2−1,2−3のロギングの有効、即ちユニット3−1の被制御機器2−1,2−3に関する制御データCDをロギングすることと、ユニット3−1の被制御機器2−2,2−Nのロギングの無効、即ちユニット3−1の被制御機器2−2,2−Nに関する制御データCDをロギングしないこととを設定する。図5に示すロギング設定情報SIは、ユニット3−2の被制御機器2−2のロギングの有効、即ちユニット3−2の被制御機器2−2に関する制御データCDをロギングすることと、ユニット3−2の被制御機器2−1,2−3,2−Nのロギングの無効、即ちユニット3−2の被制御機器2−1,2−3,2−Nに関する制御データCDをロギングしないこととを設定する。
また、ロギング設定部33は、ロギングの有効が設定された被制御機器2から受信した制御データCDのロギングを開始する条件が制御部32により設定され、設定されたロギングを開始する条件を記憶する。
図6に示すロギング優先度情報PIは、コンピュータ6を通じて制御部32が優先度設定部34に設定される。図6に示すロギング優先度情報PIは、制御システム1全体の被制御機器2に関する制御データCDのロギングの優先度を設定する情報である。実施の形態1において、ロギング優先度情報PIは、制御データCDをロギングするユニット3−1の被制御機器2−1,2―3及びユニット3−2の被制御機器2−2のうち最も優先度の高いものをユニット3−1の被制御機器2−1とすることと、次に優先度の高いものをユニット3−2の被制御機器2−2とすることと、最も優先度の低いものをユニット3−1の被制御機器2−3とすることとを設定している。
また、制御部32は、図6に示すロギング優先度情報PIに基づいて、制御データCDを記憶する記憶領域MS1を、制御システム1全体の共有メモリ31の記憶領域MSの使用可能領域のうち、1以上の共有メモリ31の記憶領域MSの使用可能領域に設定する。実施の形態1において、制御部32は、優先度の高い被制御機器2に関する制御データCDを、優先度の低い被制御機器2に関する制御データCDよりも優先して、共有メモリ31の使用可能領域に記憶させる。
制御部32は、制御システム1全体の共有メモリ31の記憶領域MSの使用可能領域の合計の容量が、ロギングする全ての被制御機器2に関する制御データCDを記憶可能な場合には、ロギングする全ての被制御機器2に関する制御データCDを記憶するように、記憶領域MS1を設定する。制御部32は、制御システム1全体の共有メモリ31の記憶領域MSの使用可能領域の合計の容量が、ロギングする全ての被制御機器2に関する制御データCDを記憶困難な場合には、優先度の低い被制御機器2に関する制御データCDから順に共有メモリ31に記憶しなくなるように、記憶領域MS1を設定する。なお、使用可能領域は、共有メモリ31の記憶領域MSのうち制御データCDを記憶可能な領域である。
実施の形態1において、ロギング設定情報SIは、コンピュータ6がユーザの操作入力を受け付けることにより生成される。コンピュータ6により生成されたロギング設定情報SIは、ネットワークNを介して各ユニット3に送信される。また、コンピュータ6は、制御システム1を構成するユニット3と被制御機器2とのうち少なくとも一方の構成が変更された場合に、変更されたことを示す情報を、ネットワークNを介して各ユニット3に送信する。また、コンピュータ6は、制御システム1の起動初回に、起動初回であることを示す情報を、ネットワークNを介して各ユニット3に送信する。
実施の形態1において、ロギング優先度情報PIは、各ユニット3の制御部32により生成されるが、コンピュータ6がユーザの操作入力を受け付けることにより生成されても良い。ロギング設定情報SI及びロギング優先度情報PIは、制御システム1を構成する全てのユニット3に記憶される。制御システム1を構成する全てのユニット3が記憶するロギング設定情報SI及びロギング優先度情報PIは、互いに等しい。
また、制御システム1の制御ユニット5は、各ユニット3の制御部32に対し被制御機器2に関する制御データCDの受信を開始するためのトリガ信号を送信する。なお、制御ユニット5がユニット3の制御部32に対し送信するトリガ信号は、制御データCDを受信する都度送信する必要はなく、任意のタイミングで送信しても良い。任意のタイミングは、ロギング開始前に各被制御機器2に関する制御データCDを記憶する記憶領域MS1を設定する時、記憶領域MS1を変更する時、共有メモリ31内に記憶した制御データCDを参照する時である。
図7は、実施の形態1に係る制御システムの制御ユニット及び各ユニットのハードウェア構成を示す図である。制御システム1の制御ユニット5は、図7に示すように、制御プログラムを実行するMPU(Micro-Processing Unit)51と、制御プログラムを記憶するメモリ52とを備える。制御ユニット5は、ネットワークNと通信インタフェース53を介して接続した通信用回路54を備える。MPU51とメモリ52と通信用回路54とは、内部バスB5を介して接続している。
制御ユニット5の機能は、MPU51がメモリ52に記憶された制御プログラムを読み出して実行することにより実現される。制御プログラムは、コンピュータにより読み出し可能なコンピュータプログラムであって、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組み合わせにより実現される。メモリ52は、制御プログラム又はデータを記憶可能な記憶領域を備える。メモリ52は、不揮発性の半導体メモリ、又は揮発性の半導体メモリにより構成される。不揮発性の半導体メモリ、又は揮発性の半導体メモリとして、RAM、ROM、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、又は、EEPROM(Electrically Erasable Programmable Read Only Memory)を用いることができる。また、メモリ52は、磁気ディスク、光ディスク、及び光磁気ディスクのうちの少なくとも一つにより構成されても良い。
通信用回路54は、それぞれ、単一回路、複合回路、プログラム化したプロセッサー、並列プログラム化したプロセッサー、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)又はこれらの二以上を組み合わせて実現される。
ユニット3は、それぞれ、図7に示すように、被制御機器2に接続した入出力インタフェース35と、入出力インタフェース35に接続したコンバータ36とを備える。ユニット3は、それぞれ、コンピュータプログラムを記憶するMPU37と、共有メモリ31と、通信用回路38と、ネットワークNに接続した通信インタフェース39とを備える。MPU37と共有メモリ31と通信用回路38とは、内部バスB3を介して接続している。
コンバータ36は、MPU37にも接続している。コンバータ36は、MPU37と被制御機器2とが互いに送受信する信号のうちアナログ信号をデジタル信号に変換するA/D(Analog/Digital)コンバータ、デジタル信号をアナログ信号に変換するD/A(Digital/Analog)コンバータ、又は、デジタルI/O(Input/Output)により実現される。通信用回路38は、通信インタフェース39と接続している。
ユニット3の制御部32の機能は、MPU37がコンピュータプログラムを実行することにより実現される。コンピュータプログラムは、ファームウェアにより実現される。共有メモリ31は、不揮発性の半導体メモリ、又は揮発性の半導体メモリにより構成される。不揮発性の半導体メモリ、又は揮発性の半導体メモリとして、RAM、ROM、フラッシュメモリ、EPROM、又は、EEPROMを用いることができる。また、共有メモリ31は、磁気ディスク、光ディスク、及び光磁気ディスクのうちの少なくとも一つにより構成されても良い。
ユニット3の制御部32のロギング設定情報SIを設定する機能及びロギングを開始する条件を設定する機能は、MPU37がコンピュータプログラムを実行することにより実現される。制御ユニット5の制御部32のロギング優先度情報PIを生成する機能は、MPU37がコンピュータプログラムを実行することにより実現される。ロギング設定部33及び優先度設定部34の機能は、共有メモリ31の記憶領域により実現される。
通信用回路38は、単一回路、複合回路、プログラム化したプロセッサー、並列プログラム化したプロセッサー、ASIC、FPGA又はこれらの二以上を組み合わせて実現される。また、各ユニット3は、経過時間を積算し、制御部32によってゼロにリセットされる回路により構成された図示しないタイマ回路を備える。
次に、実施の形態1に係る制御システムの各被制御機器2に関する制御データCDを記憶する共有メモリ31の記憶領域MSを割り当てる動作を説明する。図8は、実施の形態1に係る制御システムに関する制御データを記憶する共有メモリの記憶領域を割り当てる動作を説明するフローチャートである。
実施の形態1において、図8に示すフローチャートは、制御システム1を構成するユニット3と被制御機器2とのうち少なくとも一方の構成が変更された場合又は制御システム1の起動初回時に、各ユニット3の制御部32により実行されるが、これに限定されない。図8に示すフローチャートは、コンピュータ6によりロギング設定情報SIとロギング優先度情報PIとのうち少なくとも一方が変更された場合に、各ユニット3の制御部32により実行されても良い。
各ユニット3の制御部32は、制御システム1を構成するユニット3と被制御機器2とのうち少なくとも一方の構成が変更されたことを示す情報又は起動初回であることを示す情報をコンピュータ6から受信すると、制御ユニット5から制御システム1の構成を示す情報を取得する(ステップS100)。各ユニット3の制御部32が取得する情報は、制御ユニット5に接続されているユニット数M、各ユニット3に接続される被制御機器2の台数N、および各ユニット3の共有メモリ31の使用可能領域の容量である。実施の形態1において、各ユニット3の制御部32は、ステップS100において、各ユニット3の共有メモリ31の使用可能領域の容量とともに、各ユニット3の番号及び各被制御機器2の番号を取得する。以下、実施の形態1において、被制御機器2の台数Nは、ユニット3毎に異なるためN[M]のように定義する。例えば、ユニット3−2に接続される被制御機器2−2の台数はN[2]のように定義する。なお、実施の形態1において、ユニット3―1,3−2の双方は、被制御機器2をN台備える。
各ユニット3の制御部32は、自己のユニット3aのロギング設定部33からロギング設定情報SIを読み出し、優先度設定部34からロギング優先度情報PIを読み出す(ステップS200)。各ユニット3の制御部32は、ロギング設定情報SIを設定する要求があるか否かを判定する(ステップS300)。実施の形態1において、各ユニット3の制御部32は、制御システム1を構成するユニット3と被制御機器2とのうち少なくとも一方の構成が変更された場合又は制御システム1の起動初回時に、ロギング設定情報SIを設定する要求があると判定する(ステップS300:Yes)。各ユニット3の制御部32は、制御システム1を構成するユニット3と被制御機器2とのうち少なくとも一方の構成が変更されていない場合又は制御システム1の起動初回でない時に、ロギング設定情報SIを設定する要求がないと判定する(ステップS300:No)。
各ユニット3の制御部32は、ロギング設定情報SIを設定する要求がないと判定する(ステップS300:No)と、図8に示されたフローチャートを終了する。各ユニット3の制御部32は、ロギング設定情報SIを設定する要求があると判定する(ステップS300:Yes)と、ロギング設定処理を実行し(ステップS400)、ロギング設定部33にロギング設定情報SIが設定される。
各ユニット3の制御部32は、ロギング設定処理を実行した(ステップS400)後、ロギング優先度情報PIを設定する要求があるか否かを判定する(ステップS500)。実施の形態1において、各ユニット3の制御部32は、制御システム1を構成するユニット3と被制御機器2とのうち少なくとも一方の構成が変更された場合又は制御システム1の起動初回時に、ロギング優先度情報PIを設定する要求があると判定する(ステップS500:Yes)。各ユニット3の制御部32は、制御システム1を構成するユニット3と被制御機器2とのうち少なくとも一方の構成が変更されていない場合又は制御システム1の起動初回でない時に、ロギング優先度情報PIを設定する要求がないと判定する(ステップS500:No)。
各ユニット3の制御部32は、ロギング優先度情報PIを設定する要求があると判定する(ステップS500:Yes)と、優先度設定処理を実行し(ステップS600)、優先度設定部34にロギング優先度情報PIが設定される。各ユニット3の制御部32は、ロギング優先度情報PIを設定する要求がないと判定した後(ステップS500:No)、又は、優先度設定処理を実行した後(ステップS600)、共有メモリ31の使用可能領域を割り当てる即ち記憶領域MS1を設定する処理を実行する(ステップS700)。
ステップS700において、各ユニット3の制御部32は、ロギング設定情報SI及びロギング優先度情報PIに基づき、制御システム1の全てのユニット3の共有メモリ31の使用可能領域の合計の領域を、各被制御機器2に関する制御データCDを記憶する記憶領域MS1に設定する。実施の形態1において、制御システム1を構成するユニット3と被制御機器2とのうち少なくとも一方の構成が変更された場合又は制御システム1の起動初回時に、ロギング設定情報SI及びロギング優先度情報PIに基づき、使用可能領域の合計の領域を記憶領域MS1に設定する。
次に、各ユニット3の制御部32がステップS400において実行するロギング設定処理を説明する。図9は、図8に示されたステップS400のロギング設定処理を説明するフローチャートである。
ロギング設定処理において、各ユニット3の制御部32は、ステップS100において取得したユニット3の数Mと、各ユニット3に接続した被制御機器2の数N[1]からN[M]とを本処理内で使用する。各ユニット3の制御部32は、一時変数mにユニット3の数Mを記憶し、ユニット3の番号を示す一時変数sに1を記憶する(ステップS401)。各ユニット3の制御部32は、一時変数nにs番目のユニット3に接続される被制御機器2の数N[s]を記憶し、s番目のユニット3に接続される被制御機器2の番号を示す一時変数tに1を記憶する(ステップS402)。
各ユニット3の制御部32は、s番目のユニット3に接続されているt番目の被制御機器2のロギング設定を示す情報をコンピュータ6から受信する(ステップS403)。
各ユニット3の制御部32は、ロギング設定中のs番目のユニット3に接続した被制御機器2の数Nを示す一時変数nと一時変数tとが一致しているか否かを判定する(ステップS404)。ステップS404において、各ユニット3の制御部32は、ロギング設定中のs番目のユニット3に接続した被制御機器2の数Nを示す一時変数nと一時変数tとが一致していないと判定する(ステップS404:No)と、ステップS405において、各ユニット3の制御部32は、s番目のユニット3に接続されているt番目の被制御機器2のロギングの有効又はロギングの無効を示す情報をコンピュータ6から受信する。各ユニット3の制御部32は、ステップS403におけるロギング設定後、一時変数tを1増分する(ステップS405)。各ユニット3の制御部32は、ステップS405において、一時変数tを1増分することにより、s番目のユニット3に接続されているt番目の被制御機器2のロギング設定処理が行えるようにする。その後、ステップS403に戻り、被制御機器2の数Nを示す一時変数nと一時変数tとが一致するまで、ステップS403からステップS405を繰り返し、s番目のユニット3に接続した全ての被制御機器2のロギング設定を実行する。
各ユニット3の制御部32は、ロギング設定中のs番目のユニット3に接続した被制御機器2の数Nを示す一時変数nと一時変数tとが一致していると判定する(ステップS404:Yes)と、s番目のユニット3に接続した全ての被制御機器2に対しロギング設定が完了したとみなし、ステップS406に移行する。
各ユニット3の制御部32は、ロギング設定を行うユニット3の数Mを示す一時変数mと一時変数sとが一致しているか否かを判定する(ステップS406)。各ユニット3の制御部32は、ロギング設定を行うユニット3の数Mを示す一時変数mと一時変数sとが一致していないと判定する(ステップS406:No)と、各ユニット3の制御部32は、s番目のユニット3に接続した全ての被制御機器2に対しロギング設定が完了した後、一時変数tを1に初期化し、一時変数sを1増分する(ステップS407)。ステップS407において、各ユニット3の制御部32は、一時変数sを1増分することにより、ロギング設定が完了していないユニット3に接続した被制御機器2に対するロギング設定を可能にする。ステップS402に戻り、ユニット3の数Mを示す一時変数mと一時変数sとが一致するまで、ステップS402からステップS407を繰り返し、制御システム1を構成する全てのs番目のユニット3に接続した全ての被制御機器2のロギング設定を実行し、実施の形態1において、制御部32が図5に示すロギング設定情報SIを設定する。設定されたロギング設定情報SIは、各ユニット3のロギング設定部33即ち共用メモリ31に記憶される。
各ユニット3の制御部32は、ロギング設定を行うユニット3の数Mを示す一時変数mと一時変数sとが一致したと判定する(ステップS406:Yes)と、制御システム1を構成する全てのユニット3に接続した全ての被制御機器2のロギング設定が完了したとみなし、ロギング設定処理を終了する。
次に、各ユニット3の制御部32がステップS600において実行する優先度設定処理を説明する。図10は、図8に示されたステップS600の優先度設定処理を説明するフローチャートである。
ステップS600において、優先度設定部34にロギング優先度情報PIが未設定の場合、制御データCDは、全てのユニット3の共有メモリ31内の全ての制御データ記憶領域のうちいずれかを記憶先として選択する。優先度が未設定の場合の記憶先選択方法については実施の形態1において、特に制限を設けないが、LRU(Least Recently Used)などの公知なキャッシュアルゴリズムを使用することができる。
優先度設定処理において、各ユニット3の制御部32は、一時変数mにユニット数Mを記憶し、ユニット3の番号を示す一時変数sに1を記憶し、一時変数uに1を記憶する(ステップS601)。各ユニット3の制御部32は、一時変数nにs番目のユニット3に接続される被制御機器2の数N[s]を記憶し、一時変数uへs番目のユニット3に接続される被制御機器2の数N[s]を加算し、s番目のユニット3に接続される被制御機器2の番号を示す一時変数tには0を記憶する(ステップS602)。各ユニット3の制御部32は、s番目のユニット3に接続されているt番目の被制御機器2のs番目のユニット3に接続されている被制御機器2内の優先度を設定する(ステップS603)。実施の形態1において、優先度は、1、2、3・・・のごとく自然数により設定し、自然数が小さい方を高優先度として扱う。
各ユニット3の制御部32は、優先度設定中のs番目のユニット3の被制御機器2の数Nを示す一時変数nと一時変数tとが一致しているか否かを判定する(ステップS604)。ステップS604において、各ユニット3の制御部32は、優先度設定中のs番目のユニット3に接続した被制御機器2の数Nを示す一時変数nと一時変数tとが一致していないと判定する(ステップS604:No)と、各ユニット3の制御部32は、ステップS603における優先度設定後、一時変数tを1増分する(ステップS605)。各ユニット3の制御部32は、ステップS605において、一時変数tを1増分することにより、s番目のユニット3に接続されているt番目の被制御機器2の優先度設定処理が行えるようにする。ステップS603に戻り、被制御機器2の数Nを示す一時変数nと一時変数tとが一致するまで、ステップS603からステップS605を繰り返し、s番目のユニット3に接続した全ての被制御機器2の優先度設定を実行する。
各ユニット3の制御部32は、優先度設定中のs番目のユニット3に接続した被制御機器2の数Nを示す一時変数nと一時変数tとが一致していると判定する(ステップS604:Yes)と、s番目のユニット3に接続した全ての被制御機器2に対し優先度設定が完了したとみなし、ステップS606に移行する。
各ユニット3の制御部32は、優先度設定を行うユニット3の数Mを示す一時変数mと一時変数sとが一致しているか否かを判定する(ステップS606)。各ユニット3の制御部32は、優先度設定を行うユニット3の数Mを示す一時変数mと一時変数sとが一致していないと判定する(ステップS606:No)と、各ユニット3の制御部32は、s番目のユニット3に接続した全ての被制御機器2に対し優先度設定が完了した後、一時変数sを1増分する(ステップS607)。ステップS607において、各ユニット3の制御部32は、一時変数sを1増分することにより、優先度設定が完了していないユニット3に接続した被制御機器2に対する優先度設定を可能にする。その後、各ユニット3の制御部32は、ステップS602に戻り、ユニット3の数Mを示す一時変数mと一時変数sとが一致するまで、ステップS602からステップS607を繰り返し、制御システム1を構成する全てのs番目のユニット3毎に、各ユニット3に接続した全ての被制御機器2の優先度設定を実行する。
各ユニット3の制御部32は、優先度設定を行うユニット3の数Mを示す一時変数mと一時変数sとが一致したと判定する(ステップS606:Yes)と、制御システム1を構成する全てのs番目のユニット3毎に、各ユニット3に接続した全ての被制御機器2の優先度設定が完了したとみなす。優先度設定部34は、実施の形態1において、図11及び図12に示すユニット3別のロギング優先度情報PI−1,PI−2が制御部32により設定される。
図11は、実施の形態1に係る制御システムの一方のユニットに接続された被制御機器のロギング優先度情報を示す図である。図12は、実施の形態1に係る制御システムの他方のユニットに接続された被制御機器のロギング優先度情報を示す図である。図11に示されたロギング優先度情報PI−1は、ユニット3−1に接続した被制御機器2−1の優先度が1でかつ被制御機器2−3の優先度が2であることを示している。図12に示されたロギング優先度情報PI−2は、ユニット3−2に接続した被制御機器2−2の優先度が1であることを示している。
各ユニット3の制御部32は、ステップS606において、s番目のユニット3毎に各ユニット3に接続した全ての被制御機器2の優先度設定が完了したとみなすと、ステップS608に移行する。
ステップS608以降のステップは、ステップS601からステップS607において設定したユニット3別のロギング優先度情報PI−1,PI−2を統合し、制御システム1全体のロギング優先度情報PIを設定するステップである。まず、各ユニット3の制御部32は、ステップS602からステップS607までの処理で得られた一時変数uを使用して、自己のユニット3aの共有メモリ31に、各ユニット3別のロギング優先度情報PI−1,PI−2を記憶するための記憶領域MSを確保する(ステップS608)。なお、ステップS608において、各ユニット3の制御部32は、一時変数uが制御システム1全体の被制御機器2の数と同数となっているために、制御システム1の全ての被制御機器2の優先度を示すロギング優先度情報PI−1,PI−2を記憶可能な記憶領域MSを確保することができる。
各ユニット3の制御部32は、一時変数s、一時変数t、及び一時変数uを1に初期化する(ステップS609)。各ユニット3の制御部32は、s番目のユニット3に接続したt番目の被制御機器2の各ユニット3別の優先度を確保した共有メモリ31の記憶領域MSに記憶する(ステップS610)。
各ユニット3の制御部32は、各被制御機器2の優先度を記憶しているs番目のユニット3に接続した被制御機器2の数Nを示す一時変数nと一時変数tとが一致しているか否かを判定する(ステップS611)。ステップS611において、各ユニット3の制御部32は、各被制御機器2の優先度を記憶しているs番目のユニット3に接続した被制御機器2の数Nを示す一時変数nと一時変数tとが一致していないと判定する(ステップS611:No)と、確保した共有メモリ31の記憶領域MSにs番目のユニット3に接続した次の被制御機器2の各ユニット3別の優先度を記憶するために一時変数t及び一時変数uの双方に1増分する(ステップS612)。その後、各ユニット3の制御部32は、ステップS610に戻り、被制御機器2の数Nを示す一時変数nと一時変数tとが一致するまで、ステップS610からステップS612を繰り返し、s番目のユニット3に接続した全ての被制御機器2の優先度を記憶する。
各ユニット3の制御部32は、各被制御機器2の優先度を記憶しているs番目のユニット3に接続した被制御機器2の数Nを示す一時変数nと一時変数tとが一致していると判定する(ステップS611:Yes)と、s番目のユニット3に接続した全ての被制御機器2の優先度の記憶が完了したとみなし、ステップS612に移行する。
各ユニット3の制御部32は、ユニット3の数Mを示す一時変数mと一時変数sとが一致しているか否かを判定する(ステップS613)。各ユニット3の制御部32は、優先度設定を行うユニット3の数Mを示す一時変数mと一時変数sとが一致していないと判定する(ステップS613:No)と、一時変数tを1に初期化し、一時変数s及び一時変数uの双方を1増分する(ステップS614)。ステップS614において、各ユニット3の制御部32は、一時変数s及び一時変数uの双方を1増分することにより、ユニット3別の優先度の記憶が完了していないユニット3に接続した被制御機器2に対する優先度の記憶を可能にする。その後、各ユニット3の制御部32は、ステップS610に戻り、ユニット3の数Mを示す一時変数mと一時変数sとが一致するまで、ステップS610からステップS614を繰り返し、図11及び図12に示す制御システム1を構成する全てのユニット3別のロギング優先度情報PI−1,PI−2を共有メモリ31の記憶領域MSに記憶する。なお、ステップS610において共有メモリ31に記憶したロギング優先度情報PI−1,PI−2は、ユニット3別の被制御機器2の優先度を示すのみであり、制御システム1全ての被制御機器2の優先度を示すものではない。
各ユニット3の制御部32は、ユニット3の数Mを示す一時変数mと一時変数sとが一致したと判定する(ステップS613:Yes)と、ステップS615に移行する。各ユニット3の制御部32は、ユニット3別のロギング優先度情報PI−1,PI−2に示された被制御機器2の優先度を、制御システム1全体の全ての被制御機器2の優先度に並び替える。各ユニット3の制御部32は、制御システム1全体の図6に示すロギング優先度情報PIを設定し、自己のユニット3aの優先度設定部34即ち共有メモリ31に記憶する(ステップS615)。実施の形態1において、各ユニット3の制御部32は、ユニット3別のロギング優先度情報PI−1,PI−2の被制御機器2の番号が小さい順に優先度を高くして並び替える。各ユニット3の制御部32は、ユニット3別のロギング優先度情報PI−1,PI−2間において同一優先度の被制御機器2が存在する場合は、ユニット3の番号の小さい方の優先度を高くして並び替えた。各ユニット3の制御部32は、コンピュータ6が受け付けたユーザの操作入力に応じて、各被制御機器2の優先度を個別に設定して、ロギング優先度情報PIを個別に設定しても良い。
なお、実施の形態1において、各ユニット3の制御部32は、ロギング優先度情報PI−1においてユニット3−1に接続した被制御機器2−1の優先度が1であり、ロギング優先度情報PI−2においてユニット3−2に接続した被制御機器2−2の優先度が1であるので、制御システム1全体の優先度が1である被制御機器2をユニット3−1に接続した被制御機器2−1とし、制御システム1全体の優先度が2である被制御機器2をユニット3−2に接続した被制御機器2−2とする。各ユニット3の制御部32は、制御システム1全体の優先度が3である被制御機器2をユニット3−1に接続した被制御機器2−3とする。
こうして、実施の形態1において、各ユニット3の共有メモリ31の記憶領域MSは、図13に示すように、ロギング設定情報SIを記憶する記憶領域MS2と、ロギング優先度情報PIを記憶する記憶領域MS3とを備える。図13は、実施の形態1に係る制御システムの各ユニットの共有メモリの記憶領域を示す図である。図13は、各ユニット3の共有メモリ31の記憶領域MSのステップS100で取得した共有メモリ31の使用可能領域の容量が等しい例を示しているが、等しくなくても良い。
なお、実施の形態1において、前述したステップS700において、各ユニット3の制御部32は、ステップS100で取得した共有メモリ31の使用可能領域の容量から、ステップS610およびステップS615で各ユニット3の共有メモリ31のロギング設定情報SIを記憶する記憶領域MS2の容量とロギング優先度情報PIを記憶する記憶領域MS3の容量とを除いた容量を、全てのユニット3で合計し、更に、合計した容量を被制御機器2の数で図14に示すように等分割する。図14は、実施の形態1に係る制御システムの全体の共有メモリの記憶領域を示す図である。
実施の形態1において、図14に示すように、ユニット3−1の被制御機器2−1に関する制御データCDは、ユニット3−1の共有メモリ31の記憶領域MS1に記憶されることが設定される。ユニット3−1の被制御機器2−3に関する制御データCDは、ユニット3−2の共有メモリ31の記憶領域MS1に記憶されることが設定される。ユニット3−2の被制御機器2−2に関する制御データCDは、ユニット3−1の共有メモリ31の記憶領域MS1とユニット3−2の共有メモリ31の記憶領域MS1との双方に記憶されることが設定される。こうして、制御システム1を構成する複数のユニット3−1,3−2のうちの少なくとも一つのユニット3−2の制御部32は、自己のユニット3a(3−2)に接続された被制御機器2−2に関する制御データCDを自己のユニット3a(3−2)の第一記憶部である共有メモリ31と他のユニット3−1の第二記憶部である共有メモリ31とに割り振って記憶させることとなる。なお、本発明でいう制御データCDを割り振って記憶させるとは、制御データCDを複数に分割し、分割したものを各共有メモリ31に記憶させることをいう。即ち、本発明でいう制御データCDを割り振って記憶させるとは、割り振って制御データCDを記憶する複数の共有メモリ31が、互いに重複して制御データCDが記憶しないことをいう。
また、制御システム1は、高優先度に設定した被制御機器2に関する制御データCDを記憶する記憶領域を、低優先度の被制御機器2に関する制御データCDを記憶する記憶領域よりも多く割り当てするような重み付け設定を制御部32が優先度設定部34に設定しても良い。こうして、制御システム1は、優先度設定部34に設定された優先度であるロギング優先度情報PIに応じて、各被制御機器2の制御データCDを共有メモリ31に記憶する。
実施の形態1における制御システム1の共有メモリ31は、制御システム1の各ユニット3に設けている。制御システム1のリモートユニットであるユニット3は、共有メモリ31の記憶領域MSの容量に制約がある。共有メモリ31の記憶領域MSの容量が有限であるため、制御システム1は、制御ユニット5と、各ユニット3−1,3−2との間で制御データCDの送受信が可能な状態においては、共有メモリ31をリングバッファ形式で使用し、共有メモリ31の使用可能領域が無くなる前の任意のタイミングで、各ユニット3の共有メモリ31に記憶した制御データCDを制御ユニット5に転送する。制御システム1は、制御ユニット5への転送を完了した制御データCDを記憶していた記憶領域MS1は、新たな制御データCDにより上書きされて、新たな制御データCDを記憶する。
図15は、実施の形態1に係る制御システムのユニットの共有メモリに記憶された制御データを制御ユニットへ転送する動作を説明したフローチャートである。実施の形態1において、図15に示されたフローチャート、即ち共有メモリ31から制御ユニット5への制御データCDの転送は、予め設定された任意のタイミングである一定周期で実行されるが、一定周期で実行されなくても良い。実施の形態1において、各ユニット3の制御部32は、一定周期の割込み要因が発生したか否かを判定する(ステップS801)。各ユニット3の制御部32は、タイマ回路の積算値が一定周期と一致すると、一定周期の割込み要因が発生したと判定し(ステップS801:Yes)、タイマ回路をゼロにリセットする。各ユニット3の制御部32は、タイマ回路の積算値が一定周期と一致しないと、一定周期の割込み要因が発生していないと判定し(ステップS801:No)、タイマ回路の積算値が一定周期と一致するまで、ステップS801を繰り返して待機する。
各ユニット3の制御部32は、一定周期の割込み要因が発生したと判定すると(ステップS801:Yes)、自己のユニット3aの共有メモリ31の制御データCDを記憶する記憶領域MS1が、制御ユニット5へ転送されていない制御データCDを記憶しているか否かを判定する(ステップS802)。各ユニット3の制御部32は、制御ユニット5へ転送されていない制御データCDを記憶していないと判定する(ステップS802:No)と、図15に示されたフローチャートを終了する。各ユニット3の制御部32は、制御ユニット5へ転送されていない制御データCDを記憶していると判定する(ステップS802:Yes)と、制御データ転送フラグStに「未完」を設定し、データ転送リトライ回数Rtに0を記憶する(ステップS803)。
各ユニット3の制御部32は、自己のユニット3aの共有メモリ31の制御データCDを記憶する記憶領域MS1の制御ユニット5へ転送されていない制御データCDを制御ユニット5に転送する(ステップS804)。各ユニット3の制御部32は、ステップS804において制御ユニット5へ転送されていない制御データCDの転送が完了したか否かを判定する(ステップS805)。各ユニット3の制御部32は、制御データCDの転送が完了したと判定する(ステップS805:Yes)と、制御データ転送フラグStに「完了」を設定する(ステップS806)。各ユニット3の制御部32は、自己のユニット3aの共有メモリ31の制御ユニット5へ転送された全ての制御データCDを記憶する記憶領域MS1を使用可能領域として解放し(ステップS807)、図15に示すフローチャートを終了する。
各ユニット3の制御部32は、制御データCDの転送が完了していないと判定する(ステップS805:No)と、データ転送リトライ回数Rtに1増分する(ステップS808)。各ユニット3の制御部32は、データ転送リトライ回数Rtが予め設定された規定のリトライ回数であるか否かを判定する(ステップS809)。実施の形態1において、規定のリトライ回数は、3回であるが、3回に限定されない。各ユニット3の制御部32は、データ転送リトライ回数Rtが予め設定された規定のリトライ回数ではないと判定する(ステップS809:No)と、即ち、データ転送リトライ回数Rtが規定のリトライ回数未満と判定した場合、ステップS804に戻り、制御データCDの転送(ステップS804)と、転送が完了したか否かの判定(ステップS805)を再度実行する。
各ユニット3の制御部32は、データ転送リトライ回数Rtが予め設定された規定のリトライ回数であると判定する(ステップS809:Yes)と、即ち、データ転送リトライ回数Rtが規定のリトライ回数に達した場合、制御データ転送フラグStに「失敗」を設定し(ステップS810)、図15に示すフローチャートを終了する。
次に、実施の形態1に係る制御システム1が、少なくとも一つのユニット3から制御ユニット5への制御データCDの転送を行えない場合、共有メモリ31の記憶領域MSを再割り当てする処理を説明する。少なくとも一つのユニット3から制御ユニット5への制御データCDの転送を行えない場合は、図15に示すフローチャートのステップS810における制御データ転送フラグStが「失敗」に複数回連続して設定された場合である。図16は、実施の形態1に係る制御システムの共有メモリの記憶領域の再割り当てするフローチャートである。
各ユニット3の制御部32は、データロギング要因が発生しているか否かを判定する(ステップS901)。実施の形態1において、データロギング要因が発生しているとは、各ユニット3の制御部32が、ロギング設定部33に設定されたロギングを開始する条件を満たす制御データCDを自己のユニット3aに接続した被制御機器2から受信していることをいう。各ユニット3の制御部32は、データロギング要因が発生していないと判定する(ステップS901:No)と、図16に示されたフローチャートを終了する。
各ユニット3の制御部32は、データロギング要因が発生していると判定する(ステップS901:Yes)と、ロギングを開始する条件を満たす制御データCDを送信した被制御機器2、即ちデータロギング要因を発生させた被制御機器2[Tgt]に割り当てられた共有メモリ31の記憶領域MS1に使用可能領域があるか否かを判定する(ステップS902)。なお、符号Tgtは、データロギング要因が発生した被制御機器2の優先度を示す。また、ステップS902でいう使用可能領域は、データロギング要因を発生させた被制御機器2[Tgt]に割り当てられた共有メモリ31の記憶領域MS1から制御ユニット5への転送されていない制御データCDを記憶した記憶領域MS1を除いた残り領域のことを指す。各ユニット3の制御部32は、使用可能領域があると判定する(ステップS902:Yes)と、ステップS903に移行し、使用可能領域が無いと判定する(ステップS902:No)とステップS904に移行する。
各ユニット3の制御部32は、ステップS903において、制御データCDを記憶する記憶領域MS1を使用可能領域として解放した被制御機器2の数Dnが0であるか否かを判定する。制御データCDを記憶する記憶領域MS1を使用可能領域として解放した被制御機器2の数Dnは、制御システム1の起動時、又は初回の共有メモリ31の記憶領域MS1の割り当て時に0に初期化される。各ユニット3の制御部32は、制御データCDを記憶する記憶領域MS1を使用可能領域として解放した被制御機器2の数Dnが0でないと判定する(ステップS903:No)と、ステップS910に移行する。制御データCDを記憶する記憶領域MS1を使用可能領域として解放した被制御機器2の数Dnが0でないことは、低優先度の被制御機器2に関する制御データCDを記憶する記憶領域MS1の少なくとも一つが使用可能領域として解放されて、高優先度の被制御機器2に関する制御データCDを記憶するために再割り当てされていることを示す。
各ユニット3の制御部32は、制御データCDを記憶する記憶領域MS1を使用可能領域として解放した被制御機器2の数Dnが0であると判定する(ステップS903:Yes)と、図15に示すフローチャートで設定された制御データ転送フラグStが「失敗」であるか否かを判定する(ステップS905)。各ユニット3の制御部32は、制御データ転送フラグStが「失敗」であると判定する(ステップS905:Yes)と、ステップS910に移行する。
各ユニット3の制御部32は、制御データ転送フラグStが「失敗」でないと判定する(ステップS905:No)と、制御データ転送フラグStが「完了」であるか否かを判定する(ステップS906)。各ユニット3の制御部32は、制御データ転送フラグStが「完了」でないと判定する(ステップS906:No)と、ステップS910に移行する。制御データ転送フラグStが「失敗」であること、及び制御データ転送フラグStが「完了」でないことは、何らかの理由で制御ユニット5への制御データCDの転送が完了されておらず、転送されていない制御データCDが滞留している状態を示す。
各ユニット3の制御部32は、ステップS910において、制御ユニット5へ制御データCDへの転送が完了するまでは、ロギング優先度情報PIに変更がなく、共有メモリ31の記憶領域MS1に使用可能領域がある。このため、各ユニット3の制御部32は、ステップS910において、データロギング要因を発生させた被制御機器2[Tgt]から受信した制御データCDを、共有メモリ31の記憶領域MS1に記憶する。
各ユニット3の制御部32は、制御データ転送フラグStが「完了」であると判定する(ステップS906:Yes)と、制御ユニット5への制御データCDの転送が完了した状態である。このため、各ユニット3の制御部32は、制御データ転送フラグStが「完了」であると判定する(ステップS906:Yes)と、データロギング要因を発生させた被制御機器2よりも優先度が低い被制御機器2に関する制御データCDを記憶するために、データロギング要因を発生させた被制御機器2[Tgt]に関する制御データCDを記憶する記憶領域MS1の一部を使用可能領域として解放する(ステップS907)。各ユニット3の制御部32は、ステップS907において使用可能領域として解放された記憶領域MS1を、データロギング要因を発生させた被制御機器2よりも優先度が低い被制御機器2に関する制御データCDを記憶する記憶領域MS1に再割り当てする(ステップS908)。各ユニット3の制御部32は、記憶領域MS1の再割り当てが完了したら、記憶領域MS1を解放した被制御機器2の数Dnから1を増分し(ステップS909)、ステップS910に移行する。
各ユニット3の制御部32は、データロギング要因を発生させた被制御機器2[Tgt]に割り当てられた共有メモリ31の記憶領域MSに使用可能領域がないと判定する(ステップS902:No)と、ステップS904に移行する。各ユニット3の制御部32は、データロギング要因を発生させた被制御機器2[Tgt]の優先度が、現在共有メモリ31上に制御データCDを記憶する記憶領域MS1が割り当てられた制御システム1全体の被制御機器2の中で優先度が最も低い被制御機器2[Num−Dn]の優先度と等しいか否かを判定する(ステップS904)。各ユニット3の制御部32は、被制御機器2[Tgt]の優先度が、被制御機器2[Num−Dn]の優先度と等しくないと判定する(ステップS904:No)と、データロギング要因を発生させた被制御機器2[Tgt]よりも優先度の低い被制御機器2が存在することとなり、ステップS911に移行する。
各ユニット3の制御部32は、優先度が最も低い被制御機器2[Num−Dn]に関する制御データCDを記憶する記憶領域MS1を使用可能領域として解放する(ステップS911)。各ユニット3の制御部32は、ステップS911において、解放した記憶領域MS1を、データロギング要因を発生させた被制御機器2[Tgt]に関する制御データCDを記憶する記憶領域MS1に再割り当てる(ステップS912)。各ユニット3の制御部32は、記憶領域MS1の再割り当てが完了したら、記憶領域MS1を解放した被制御機器2の数Dnに1増分し(ステップS913)、ステップS910に移行する。
各ユニット3の制御部32は、被制御機器2[Tgt]の優先度が、被制御機器2[Num−Dn]の優先度と等しいと判定する(ステップS904:Yes)と、制御データCDをロギングする被制御機器2が1台のみの状態となっている。従って、優先度設定で共有メモリ31の記憶領域を解放する必要がないため、各ユニット3の制御部32は、データロギング要因を発生させた被制御機器2[Tgt]に割り当てられた記憶領域MS1に記憶された制御データCDのうち最も古い制御データCDを削除(ステップS914)し、ステップS910に移行する。各ユニット3の制御部32は、ステップS910においてデータロギング要因を発生させた被制御機器2[Tgt]に関する制御データCDを最も古い制御データCDが削除された記憶領域MS1に記憶する。
実施の形態1に係るユニット3及び制御システム1によれば、制御システム1を構成する複数のユニット3のうち少なくとも一つのユニット3に接続された被制御機器2に関する制御データCDが、自己のユニット3a(3−2)の共有メモリ31と他のユニット3−1の共有メモリ31とに割り振って記憶される。このため、ユニット3及び制御システム1は、制御システム1を構成する全てのユニット3の共有メモリ31の記憶領域MS1に制御データCDを記憶することができる。その結果、ユニット3及び制御システム1は、制御システム1を構成する全てのユニット3の共有メモリ31の記憶領域MS1の有効活用を図ることができる。
また、実施の形態1に係るユニット3及び制御システム1によれば、ユニット3の制御部32が制御ユニット5から受信する信号に基づいて制御データCDとしての制御信号を被制御機器2に送信する。その結果、ユニット3及び制御システム1は、制御プログラム通りに各被制御機器2を制御することができる。
また、実施の形態1に係る制御システム1によれば、ユニット3の優先度設定部34に設定され、かつ制御システム1全体の各被制御機器2に関する制御データCDを記憶する優先度であるロギング優先度情報PIに応じて、各被制御機器2に関する制御データCDを共有メモリ31の記憶領域MS1に記憶する。このため、制御システム1は、優先度に応じて適切に各被制御機器2に関する制御データCDを記憶することができ、共有メモリ31の記憶領域MS1の有効活用を図ることができる。
また、実施の形態1に係る制御システム1によれば、各ユニット3の制御部32が図10に示すフローチャートを実行して、ユニット3別の被制御機器2に制御データCDをロギングする優先度を示すロギング優先度情報PI−1,PI−2を生成する。制御システム1は、ユニット3別のロギング優先度情報PI−1,PI−2を生成した後、ユニット3別のロギング優先度情報PI−1,PI−2を統合して、制御システム1全体の全ての被制御機器2に関する制御データCDをロギングするロギング優先度情報PIを設定する。このため、制御システム1は、制御システム1を構成する全ての被制御機器2に関する制御データCDの優先度を設定することができる。
また、実施の形態1に係る制御システム1によれば、各ユニット3の制御部32が図15に示すフローチャートを実行して、共有メモリ31の使用可能領域が無くなる前の予め設定された任意のタイミングで、共有メモリ31に記憶された制御データCDを制御ユニット5に転送する。このため、制御システム1は、各被制御機器2に関する制御データCDを確実にロギングすることができる。また、制御ユニット5は、転送された制御データCDを記憶する共有メモリ31の記憶領域MS1に新たな制御データCDを上書きして記憶する。このため、制御システム1は、共有メモリ31の記憶領域MS1の有効活用を図ることができる。
また、実施の形態1に係る制御システム1によれば、各ユニット3の制御部32が図16に示すフローチャートを実行して、少なくとも一つのユニット3から制御ユニット5に制御データCDの転送が複数回失敗した場合、共有メモリ31に使用可能領域がある場合には、制御データCDの転送が完了した記憶領域MS1の一部を他の制御データCDを記憶可能な使用可能領域として解放する。このため、制御システム1は、少なくとも一つのユニット3から制御ユニット5に制御データCDの転送が複数回失敗しても、制御データCDをロギングすることができる。
また、実施の形態1に係る制御システム1によれば、各ユニット3の制御部32が図16に示すフローチャートを実行して、少なくとも一つのユニット3から制御ユニット5に制御データCDの転送が複数回失敗し、共有メモリ31に使用可能領域がない場合には、優先度の低い被制御機器2に関する制御データCDを記憶する記憶領域MS1を他の制御データCDを記憶可能な使用可能領域として解放する。このため、制御システム1は、制御部32が優先度設定部34に設定されたロギング優先度情報PIに応じて、各被制御機器2の制御データCDを共有メモリ31に記憶し、優先度の高い制御データCDをロギングすることができる。
実施の形態2.
次に、本発明の実施の形態2に係るユニット及び制御システム1−2を図面に基づいて説明する。図17は、実施の形態2に係る制御システムの構成を示す図である。図18は、実施の形態2に係る制御システムの各ユニットの共有メモリの記憶領域を示す図である。図17及び図18において、実施の形態1と同一部分には、同一符号を付して説明を省略する。
実施の形態2に係る制御システム1−2は、図17に示すように、各ユニット3がトリガ条件設定部40を備え、図17及び図18に示すように、共有メモリ31が波形記憶部MS4を備える以外は、実施の形態1と同一の構成である。
波形記憶部MS4は、共有メモリ31の記憶領域MSの一部を構成する。波形記憶部MS4は、自己のユニット3aに接続された被制御機器2の正規の動作を示し、かつ図19に示す波形データWDを記憶する。図19は、図18に示された共有メモリの波形記憶部に記憶された波形データを示す図である。
実施の形態2において、波形記憶部MS4は、被制御機器2と同数の波形データWD−1,WD−2,WD−3,WD−Nを記憶して、波形データWD−1,WD−2,WD−3,WD−Nが被制御機器2と1対1で対応している。波形記憶部MS4は、波形データWD−1,WD−2,WD−3,WD−Nが複数の被制御機器2に対応しても良い。また、実施の形態2において、全ての波形データWD−1,WD−2,WD−3,WD−Nは、正弦波である。全ての波形データWD−1,WD−2,WD−3,WD−Nは、振幅A及び波長λが互いに等しい。波形記憶部MS4の機能は、共有メモリ31により実現される。
トリガ条件設定部40は、自己のユニット3aに接続した被制御機器2に関する制御データCDが、波形記憶部MS4に記憶された対応する波形データWDに対して、予め設定されたトリガ条件を満たすか否かを判定する。即ち、トリガ条件設定部40は、ロギングを開始するトリガ条件を設定するものである。トリガ条件設定部40が設定するトリガ条件は、各被制御機器2から入力される制御データCDの波形推移と、波形データWDの振幅Aと制御データCDの振幅との差が予め設定された値VA以下であることと、波形データWDの波長λと制御データCDの波長の差が予め設定された値Vλ以下であることとのうち少なくとも一つである。予め設定された値VA,Vλは、制御データCDと波形データWDとが、実質的に等しくなる値である。トリガ条件設定部40は、ロギングを開始する条件を設定することで、不必要な制御データCDの記憶による共有メモリ31の記憶領域MS1の消費を防ぐことが可能となる。トリガ条件設定部40の機能は、MPU37がコンピュータプログラムを実行することにより実現される。
実施の形態2に係る制御システム1−2において、各ユニット3の制御部32は、トリガ条件設定部40がトリガ条件を満した制御データCDを共有メモリ31に記憶する。
次に、実施の形態2に係る制御システム1−2のユニット3のトリガ条件設定部40の動作を図面に基づいて説明する。図20は、実施の形態2に係る制御システムの波形データと被制御機器1に関する制御データとを示す図である。図21は、実施の形態2に係る制御システムの波形データと被制御機器2に関する制御データとを示す図である。図22は、実施の形態2に係る制御システムの波形データと被制御機器3に関する制御データとを示す図である。図23は、実施の形態2に係る制御システムの波形データと被制御機器Nに関する制御データとを示す図である。
実施の形態2において、ロギング設定部33が記憶したロギング設定情報SIは、被制御機器2−1,2−2,2−3のロギングが有効であることが設定され、被制御機器2−Nのロギングが無効であることが設定されている。実施の形態2において、図20に示すように、波形データWD−1の振幅Aと被制御機器2−1に関する制御データCDの振幅A−1との差が予め設定された値VA以下であり、波形データWD−1の波長λと被制御機器2−1に関する制御データCDの波長λ−1との差が予め設定された値Vλ以下である。実施の形態2において、トリガ条件設定部40は、被制御機器2−1に関する制御データCDがトリガ条件を満たしたと判定する。制御部32は、被制御機器2−1のロギング設定が有効であるので、被制御機器2−1に関する制御データCDの記憶を開始する。
実施の形態2において、図21に示すように、波形データWD−2の振幅Aと被制御機器2−2に関する制御データCDの振幅A−2との差が予め設定された値VA以上である。実施の形態2において、トリガ条件設定部40は、被制御機器2−2に関する制御データCDがトリガ条件を満たしていないと判定する。制御部32は、被制御機器2−2のロギング設定が有効であるが、振幅Aと振幅A−2との差が予め設定された値VA以上であるので、被制御機器2−2に関する制御データCDの記憶を開始しない。
実施の形態2において、図22に示すように、波形データWD−3の波長λと被制御機器2−3に関する制御データCDの波長λ−3との差が予め設定された値Vλ以上である。実施の形態2において、トリガ条件設定部40は、被制御機器2−3に関する制御データCDがトリガ条件を満たしていないと判定する。制御部32は、被制御機器2−3のロギング設定が有効であるが、波長λと波長λ−3との差が設定された値Vλ以上であるので、被制御機器2−3に関する制御データCDの記憶を開始しない。
実施の形態2において、図23に示すように、波形データWD−Nの振幅Aと被制御機器2−Nに関する制御データCDの振幅A−Nとの差が設定された値VA以下であり、波形データWD−Nの波長λと被制御機器2−Nに関する制御データCDの波長λ−Nとの差が設定された値Vλ以下である。実施の形態2において、トリガ条件設定部40は、振幅Aと振幅A−Nとの差が設定された値VA以下であり、かつ波長λと波長λ−Nとの差が設定された値Vλ以下であるので、被制御機器2−Nに関する制御データCDがトリガ条件を満たしたと判定する。制御部32は、被制御機器2−Nのロギング設定が無効であるので、被制御機器2−Nに関する制御データCDの記憶を開始しない。
実施の形態2に係るユニット3及び制御システム1−2によれば、実施の形態1と同様に、制御システムを構成する複数のユニット3のうち少なくとも一つのユニット3に接続された被制御機器2に関する制御データCDが、自己のユニット3a(3−2)の共有メモリ31と他のユニット3−1の共有メモリ31とに割り振って記憶される。その結果、実施の形態2に係るユニット3及び制御システム1−2は、実施の形態1と同様に、制御システム1−2を構成する全てのユニット3の共有メモリ31の記憶領域の有効活用を図ることができる。また、実施の形態2に係るユニット3及び制御システム1−2は、トリガ条件を満たさない制御データCDを記憶しないので、不要な制御データCDを記憶することによる共有メモリ31の記憶領域MS1の消費を低減させることが可能となる。
実施の形態3.
次に、本発明の実施の形態3に係るユニット3及び制御システム1−3を図面に基づいて説明する。図24は、実施の形態3に係る制御システムの構成を示す図である。図24において、実施の形態1と同一部分には、同一符号を付して説明を省略する。
実施の形態3に係る制御システム1−3は、実施の形態1と同様に、分散型制御システムである。実施の形態3に係る制御システム1−3のユニット3は、被制御機器2に関するアナログ信号の制御データCDを記憶する所謂リモートアナログユニットである。実施の形態3に係る制御システム1−3は、ユニット3を自然数であるN個備える。このために、図24は、N番目のユニット3に符号3−Nを付している。実施の形態3に係る制御システム1−3の制御ユニット5は、CPU装置110とフィールドバスマスタ装置120とを備えて構成され、CPU装置110とフィールドバスマスタ装置120とがバスインタフェース111,121によって接続される。
また、制御システム1−3の構成要素であるユニット3は、フィールドバスマスタ装置120が有するフィールドバスインタフェース122とフィールドバス501,504により接続される。制御システム1−3の構成要素であるユニット3は、互いにフィールドバス502,503により接続される。ここで、実施の形態3において、フィールドバス501,502,503,504の方式は、イーサネット(登録商標)、RS−232Cにより規定されたシリアル通信、RS−422により規定されたシリアル通信、又は、RS−485により規定されたシリアル通信を用いることができるが、これらに限定されない。なお、RS−232C、RS−422及びRS−485は、EIA(Electronic Industries Association:米国電子工業会)の通信規格である。また、実施の形態3において、制御システム1−3は、フィールドバスマスタ装置120を1台備えているが、フィールドバスマスタ装置120を複数台備えても良い。
各ユニット3は、ユニット3同士でフィールドバス通信を行うためのフィールドバスインタフェース201を備える。各ユニット3の入出力インタフェース35は、被制御機器2からのアナログ信号を入力するアナログ入力I/Fである。各ユニット3のコンバータ36は、入出力インタフェース35に入力したアナログ信号をデジタル信号に変換するA/Dコンバータである。各ユニット3の共有メモリ31は、コンバータ36により変換された制御データCDであるデジタル信号を記憶する。各ユニット3の入出力インタフェース35は、アナログ信号を出力する被制御機器2に接続する。
実施の形態3において、制御システム1−3は、フィールドバス501,502,503,504により接続されるユニット3は全て同一の内部構成としているが、これに限定されない。制御システム1−3は、ユニット3として、アナログ信号をデジタル信号に変換する機能を有しないリモートユニットを備えても良い。
実施の形態3に係る制御システム1−3の共有メモリ31は、各ユニット3に配置する。実施の形態3に係る制御システム1−3は、ロギング設定部33、優先度設定部34、及びトリガ条件設定部40をユニット3に配置するか、共有メモリ31の記憶領域MS内に割り当てて実行する。実施の形態3に係る制御システム1−3は、ロギング設定情報SIとロギング優先度情報PIとに基づいて、共有メモリ31の記憶領域MSの割り当てる動作が実施の形態1の動作と同様である。また、実施の形態3に係る制御システム1−3は、実施の形態2と同様に、ロギングを開始する。
実施の形態3に係るユニット3及び制御システム1−3によれば、実施の形態1と同様に、制御システム1−3を構成する複数のユニット3のうち少なくとも一つのユニット3に接続された被制御機器2に関する制御データCDが、自己のユニット3a(3−2)の共有メモリ31と他のユニット3−1の共有メモリ31とに割り振って記憶される。その結果、実施の形態3に係るユニット3及び制御システム1−3は、実施の形態1と同様に、制御システム1−3を構成する全てのユニット3の共有メモリ31の記憶領域MSの有効活用を図ることができる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。