(57)【要約】【課題】ログデータの保存の信頼性を個乗させることができる。【解決手段】実施形態の一例は、記憶部を有する、複数のプログラマブルコントローラで構成されるシステムに含まれるプログラマブルコントローラであって、演算処理部と、送信部と、を備える。演算処理部は、システムで行われる処理に関する演算処理を行う。送信部は、システムを構成するプログラマブルコントローラのうち、自装置と比べて演算処理部による演算負荷が少ない他のプログラマブルコントローラの記憶部に、演算処理部による演算処理に関するログデータを記憶させるために、当該ログデータを当該他のプログラマブルコントローラに送信するための制御を行う。【選択図】図１
2015215803.tif 000002
【特許請求の範囲】
【請求項１】
記憶部を有する、複数のプログラマブルコントローラで構成されるシステムに含まれるプログラマブルコントローラであって、
前記システムで行われる処理に関する演算処理を行う演算処理部と、
前記システムを構成するプログラマブルコントローラのうち、自装置と比べて前記演算処理部による演算負荷が少ない他のプログラマブルコントローラの前記記憶部に、前記演算処理部による演算処理に関するログデータを記憶させるために、当該ログデータを当該他のプログラマブルコントローラに送信するための制御を行う送信部と、
を備えるプログラマブルコントローラ。
【請求項２】
演算処理を行う稼働系のプログラマブルコントローラと、稼働系のプログラマブルコントローラが演算処理を行わなくなった場合に演算処理を行う待機系のプログラマブルコントローラで構成された前記システムに含まれるプログラマブルコントローラであって、
前記送信部は、自装置と比べて前記演算処理部による演算負荷が少ない待機系のプログラマブルコントローラに対して、前記ログデータを送信するための制御を行う、
請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記送信部は、演算処理を行う稼働系のプログラマブルコントローラを含むシステムが複数存在し、当該複数のシステム間が通信ネットワークで接続されている場合に、前記通信ネットワークを介して、他のシステムに含まれる、自装置と比べて前記演算処理部による演算負荷が少ない他のプログラマブルコントローラに対して、前記ログデータを送信するための制御を行う、
請求項１に記載のプログラマブルコントローラ。
【請求項４】
前記送信部は、前記通信ネットワークを介して、前記複数のシステムに含まれる複数の他のプログラマブルコントローラに対して、前記ログデータを分けて送信するための制御を行う、
請求項３に記載のプログラマブルコントローラ。
【請求項５】
外部記憶部と接続可能な接続インターフェースと演算処理部とを有する、複数のプログラマブルコントローラで構成されるシステムに含まれるプログラマブルコントローラであって、
前記システムを構成するプログラマブルコントローラのうち、自装置と比べて前記演算処理部による演算負荷が高い他のプログラマブルコントローラから、当該他のプログラマブルコントローラの前記演算処理部による演算に関するログデータを受信するための制御を行う受信部と、
前記受信部により受信された前記ログデータを、自装置の前記記憶部に書き込む書込部と、
を備えるプログラマブルコントローラ。
【請求項６】
演算処理を行う稼働系のプログラマブルコントローラと、稼働系のプログラマブルコントローラが演算処理を行わなくなった場合に演算処理を行う待機系のプログラマブルコントローラで構成された前記システムに含まれるプログラマブルコントローラであって、
前記受信部は、自装置と比べて前記演算処理部による演算負荷が高い稼働系のプログラマブルコントローラから、前記ログデータを受信するための制御を行う、
請求項５に記載のプログラマブルコントローラ。
【請求項７】
前記受信部は、演算処理を行う稼働系のプログラマブルコントローラと、稼働系のプログラマブルコントローラが演算処理を行わなくなった場合に演算処理を行う待機系のプログラマブルコントローラと、で構成されたシステムが複数存在し、当該複数のシステム間が通信ネットワークで接続されている場合に、前記通信ネットワークを介して、他のシステムに含まれる、自装置と比べて前記演算処理部による演算負荷が高い他のプログラマブルコントローラから、前記ログデータを受信するための制御を行う、
請求項５に記載のプログラマブルコントローラ。
【請求項８】
外部記憶部と接続可能な接続インターフェースと演算処理部とを有する、複数のプログラマブルコントローラで構成されるシステムであって、
前記システムに含まれるプログラマブルコントローラのうち、演算負荷が高いプログラマブルコントローラが、
前記システムで行われる処理に関する演算処理を行う演算処理部と、
前記システムを構成するプログラマブルコントローラのうち、自装置と比べて前記演算処理部による演算負荷が少ない他のプログラマブルコントローラの前記記憶部に、前記演算処理部による演算処理に関するログデータを記憶させるために、当該ログデータを当該他のプログラマブルコントローラに送信するための制御を行う送信部と、を備え、
前記システムに含まれるプログラマブルコントローラのうち、演算負荷が低いプログラマブルコントローラが、
前記システムを構成するプログラマブルコントローラのうち、自装置と比べて前記演算処理部による演算負荷が高い他のプログラマブルコントローラから、当該他のプログラマブルコントローラの前記演算処理部による演算に関するログデータを受信するための制御を行う受信部と、
前記受信部により受信された前記ログデータを、自装置の前記記憶部に書き込む書込部と、を備える、
演算処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、プログラマブルコントローラ、及び演算処理システムに関する。
【背景技術】
【０００２】
工場や公共設備に設けられた自動機械や、身近な機械などの様々な機械の制御を行うためにプログラマブルコントローラが用いられている。プログラマブルコントローラは、機械に設けられたセンサなどの情報を入力情報として取り込み、演算し、当該機械のアクチュエータへ命令値として出力する仕組みを備えている。
【０００３】
プログラマブルコントローラが設置されるシステムや場所は様々である。例えば、システムの欠損や、予想していない電動ノイズ、又は他雷災害などに起因する外部ノイズによる環境の一時的な影響等で、プログラマブルコントローラが扱っているデータ化けや処理の異常が生じる可能性がある。このような状況を抑止して、稼働性を安定させるためには、プログラマブルコントローラが行う処理に関するログデータを保存し、解析する手法が考えられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１７６５４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術においては、システム内で稼働性が高いプログラマブルコントローラほど、ログデータを解析する必要性が高くなるが、当該プログラマブルコントローラは処理負担が高い以上、さらにログデータを保存させるための処理でさらに処理負担を大きくするのは難しい。
【課題を解決するための手段】
【０００６】
実施形態の一例は、記憶部を有する、複数のプログラマブルコントローラで構成されるシステムに含まれるプログラマブルコントローラであって、演算処理部と、送信部と、を備える。演算処理部は、システムで行われる処理に関する演算処理を行う。送信部は、システムを構成するプログラマブルコントローラのうち、自装置と比べて演算処理部による演算負荷が少ない他のプログラマブルコントローラの記憶部に、演算処理部による演算処理に関するログデータを記憶させるために、当該ログデータを当該他のプログラマブルコントローラに送信するための制御を行う。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態のシステム構成例を示した図である。
【図２】図２は、第１の実施形態のプログラマブルコントローラのＣＰＵが不揮発性メモリのプログラムを読み出すことで実現されるプログラム構成を示したブロック図である。
【図３】図３は、第１の実施形態のシステムにおけるログデータの保存処理の手順を示すフローチャートである。
【図４】図４は、第２の実施形態のシステムの概要を例示した図である。
【図５】図５は、第２の実施形態のシステム構成例を示した図である。
【図６】図６は、第２の実施形態のプログラマブルコントローラのＣＰＵが不揮発性メモリのプログラムを読み出すことで実現されるプログラム構成を示したブロック図である。
【発明を実施するための形態】
【０００８】
（第１の実施形態）
図１は、第１の実施形態のシステム構成例を示した図である。図１に示されるように、システムは、システムバス１８０を介して、第１のプログラマブルコントローラ１００＿１と、第２のプログラマブルコントローラ１００＿２と、入力モジュール１８１と、出力モジュール１８２と、を接続している。
【０００９】
入力モジュール１８１は、プログラマブルコントローラ１００＿１、１００＿２で処理を行うために必要な入力データを受け渡すためのモジュールとする。出力モジュール１８２は、プログラマブルコントローラ１００＿１、１００＿２から受け渡された出力データに従って処理を行うモジュールとする。
【００１０】
図１に示されるように、第１のプログラマブルコントローラ１００＿１は、不揮発性メモリ１０１＿１と、システム用メモリ１０２＿１と、ＣＰＵ１０３＿１と、メモリ用Ｉ／Ｆ１０４＿１と、演算処理用ＡＳＩＣ１０５＿１と、データ転送処理部１０６＿１と、停止用スイッチ１０７＿１と、スイッチ群１０８＿１と、内部バス用Ｉ／Ｆ１０９＿１と、を備えている。
【００１１】
本実施形態のシステムは、第１のプログラマブルコントローラ１００＿１、及び第２のプログラマブルコントローラ１００＿２を、用いて二重化したシステム構成を実現している。本実施形態の二重化されたプログラマブルコントローラの各々は、互いの状態を監視し、自装置が稼働系又は待機系であるかを把握している。
【００１２】
本実施形態では、第１のプログラマブルコントローラ１００＿１を稼働系として、当該システムにおける処理を行う構成とし、第２のプログラマブルコントローラ１００＿２を待機系として、第１のプログラマブルコントローラ１００＿１が処理をできなくなった場合に代わりに処理を行う構成とする。本実施形態にかかる構成では、二重化システムとすることで、安定制御を実現できる。
【００１３】
プログラマブルコントローラにおいて、システムの稼働の安定性を向上させるために、プログラマブルコントローラが行った処理を検証するために、（入力データや出力データを含む）ログデータを保存するのが好ましい。
【００１４】
しかしながら、稼働系である第１のプログラマブルコントローラ１００＿１はシステムを稼働させるための様々な処理を行うことで、処理負担が大きい。このため、稼働系の第１のプログラマブルコントローラ１００＿１でログデータの保存処理を行うのは難しい場合が考えられる。
【００１５】
それに対して、待機系である第２のプログラマブルコントローラ１００＿２は、第１のプログラマブルコントローラ１００＿１が稼働している間は処理を行わないため、通常は処理負担が小さい。
【００１６】
そこで、本実施形態では第１のプログラマブルコントローラ１００＿１が処理を行っている間、当該第１のプログラマブルコントローラ１００＿１が行った処理に関するログデータを、第２のプログラマブルコントローラ１００＿２が、第２の外部メモリ１５２に記録させることとした。
【００１７】
なお、ログデータは、第１のプログラマブルコントローラ１００＿１による演算処理に必要な入力データ、第１のプログラマブルコントローラ１００＿１の演算処理結果である出力データ、第１のプログラマブルコントローラ１００＿１の演算中に出力された中間データ、さらには演算処理に用いられるシステムパラメータなど、システムによる処理を検証可能なデータであれば、どのようなデータでも良い。本実施形態では、入力データと、出力データと、をログデータとして格納する例について説明する。
【００１８】
本実施形態では、稼働系であるプログラマブルコントローラ（例えば、第１のプログラマブルコントローラ１００＿１）が、システムバス１８０に接続される入力モジュール１８１及び出力モジュール１８２へのアクセス権を有する。待機系のプログラマブルコントローラ（例えば、プログラマブルコントローラ１００＿２）は、システムバス１８０へのアクセス権を持たない。このため、稼働系であるプログラマブルコントローラ（例えば、第１のプログラマブルコントローラ１００＿１）のみが入力モジュール１８１にアクセスし、入力データを得られるとともに、出力モジュール１８２にアクセスして、演算結果である出力データを設定し、出力モジュール１８２による出力制御を実現できる。
【００１９】
システム用メモリ１０２＿１は、第１のプログラマブルコントローラ１００＿１のＣＰＵ１０３＿１が処理を行う際に作業領域として用いられる。
【００２０】
ＣＰＵ１０３＿１は、第１のプログラマブルコントローラ１００＿１全体を制御する。例えば、ＣＰＵ１０３＿１は、バスを介して接続されている不揮発性メモリ１０１＿１、システム用メモリ１０２＿１、演算処理用ＡＳＩＣ１０５＿１、スイッチ群１０８＿１等の制御を行う。また、ＣＰＵ１０３＿１は、不揮発性メモリ１０１＿１から読み出されたプログラムに従って、様々な制御を行う。
【００２１】
メモリ用Ｉ／Ｆ１０４＿１は、第１の外部メモリ１５１等と接続可能な接続インターフェース部として機能し、ＣＰＵ１０３＿１は、メモリ用Ｉ／Ｆ１０４＿１に接続された第１の外部メモリ１５１等を検出可能とする。
【００２２】
演算処理用ＡＳＩＣ１０５＿１は、システムで行われる処理に関する演算処理を行うためであって、第１のプログラマブルコントローラ１００＿１が、機械を制御するための演算を行うために設けられた電子回路とする。
【００２３】
データ転送処理部１０６＿１は、内蔵メモリ１１６＿１を備え、ケーブル１８５で接続された第２のプログラマブルコントローラ１００＿２との間でデータを送受信するためのインターフェース制御部とする。本実施形態では、内部メモリ１１６＿１にデータが書き込まれた場合に、第２のプログラマブルコントローラ１００＿２が、内部メモリ１１６＿１に書き込まれたデータを参照可能となり、第２のプログラマブルコントローラ１００＿２からの制御によりデータの転送を実現できる。内蔵メモリ１１６＿１は、第１の外部メモリ１５１と比べて高速に読み出し及び書き出し可能なメモリとし、例えばＳＲＡＭ(Static  Random  Access  Memory)を用いることが考えられる。そして、内蔵メモリ１１６＿１に書き込まれたデータは、第２のプログラマブルコントローラ１００＿２からの制御に従って、データ転送処理部１０６＿１が内蔵メモリ１１６＿１に書き込まれたデータの転送制御を行うことができる。
【００２４】
これにより、本実施形態においては、ログデータを、第２のプログラマブルコントローラ１００＿２に転送することが可能となる。転送する際の処理負担も、第１の外部メモリ１５１に書き込む処理と比べて軽いため、処理負担を高めることなく、ログデータの保存を実現できる。
【００２５】
停止用スイッチ１０７＿１は、第１のプログラマブルコントローラ１００＿１、又は第１のプログラマブルコントローラ１００＿１が制御している機器等を緊急停止させるためのスイッチとする。スイッチ群１０８＿１は、プログラマブルコントローラ１００を制御するためのスイッチ群とする。
【００２６】
内部バス用Ｉ／Ｆ１０９＿１は、システム内部を接続するシステムバス１８０と接続するためのインターフェースとする。
【００２７】
不揮発性メモリ１０１＿１は、第１のプログラマブルコントローラ１００＿１が実行するプログラム等が格納されたメモリとする。本実施形態では、第１のプログラマブルコントローラ１００＿１の起動時に、不揮発性メモリ１０１＿１に格納されたプログラムを、ＣＰＵ１０３＿１が実行することで、各種構成が実現される。
【００２８】
図２は、ＣＰＵ１０３＿１が不揮発性メモリ１０１＿１のプログラムを読み出すことで実現されるプログラム構成を示したブロック図である。図２に示されるように、ＣＰＵ１０３＿１は、プログラムを実行することで、送信制御部２０１と、受信制御部２０２と、書込制御部２０３と、が実現される。なお、本実施形態のプログラムは、稼働系と待機系が入れ替わっても処理できるように、稼働系が行うべき構成と、待機系が行うべき構成と、を含んでいる。例えば、稼働系が行うべき構成として、送信制御部２０１を含み、待機系が行うべき構成として、受信制御部２０２と書込制御部２０３とを含んでいる。
【００２９】
送信制御部２０１は、システムを構成するプログラマブルコントローラのうち、自装置と比べて演算処理用ＡＳＩＣによる演算負荷が少ない他のプログラマブルコントローラ（本実施形態では待機系の第２のプログラマブルコントローラ１００＿２）の外部メモリに、演算処理用ＡＳＩＣによる演算処理に関するログデータを記憶させるために、ログデータを他のプログラマブルコントローラに送信するための制御を行う。
【００３０】
第１のプログラマブルコントローラ１００＿１の送信制御部２０１は、データ転送処理部１０６＿１の内蔵メモリ１１６＿１に、ログデータ（例えば、入力データ、及び出力データ）を書き込むことで、送信するための制御を実現している。本実施形態では、ＣＰＵ１０３＿１の送信制御部２０１が、第１の外部メモリ１５１よりも高速に書き込みが行えるデータ転送処理部１０６＿１の内蔵メモリ１１６＿１にログデータを書き込んだ場合に、第２のプログラマブルコントローラ１００＿２のデータ転送処理部１０６＿２が、第１のプログラマブルコントローラ１００＿１のデータ転送処理部１０６＿１に対して指示することで、ログデータの送信制御が行われる。
【００３１】
このログデータの送信制御は、データ転送処理部１０６＿１、１０６＿２内の（図示しない）処理装置で制御が行われるため、第１のプログラマブルコントローラ１００＿１のＣＰＵ１０３＿１は特に処理を行わなくても良い。そして、ログデータが送信された後、第２のプログラマブルコントローラ１００＿２が、ログデータを、第２の外部メモリ１５２に書き込む制御を行う。これにより、第１のプログラマブルコントローラ１００＿１に処理負担を掛けずに、ログデータの書き込み制御を実現できる。
【００３２】
受信制御部２０２は、システムを構成するプログラマブルコントローラのうち、自装置と比べて演算処理用ＡＳＩＣによる演算負荷が高い他のプログラマブルコントローラから、当該他のプログラマブルコントローラの演算処理用ＡＳＩＣによる演算に関するログデータを受信するための制御を行う。本実施形態では、待機系である第２のプログラマブルコントローラ１００＿２の受信制御部２０２が、稼働系である第１のプログラマブルコントローラ１００＿１からログデータを受信するための制御を行う。
【００３３】
例えば、第２のプログラマブルコントローラ１００＿２のデータ転送処理部１０６＿２が、第１のプログラマブルコントローラ１００＿１のデータ転送処理部１０６＿１の内蔵メモリ１１６＿１にログデータが格納されていることを検出した場合に、第２のプログラマブルコントローラ１００＿２の受信制御部２０２は、データ転送処理部１０６＿２に対して、ログデータを受信するように指示する。これによりログデータの受信制御が行われる。
【００３４】
書込制御部２０３は、受信制御部２０２からの指示に従ってデータ転送処理部１０６＿２が受信したログデータを、自装置のメモリ用Ｉ／Ｆ１０４＿２を介して接続された外部メモリに書き込む。
【００３５】
上述した構成を稼働系と待機系とで実現することで、稼働系の演算処理に関するログデータを、待機系の外部メモリに格納できる。
【００３６】
図１に戻り、第２のプログラマブルコントローラ１００＿２は、不揮発性メモリ１０１＿２と、システム用メモリ１０２＿２と、ＣＰＵ１０３＿２と、メモリ用Ｉ／Ｆ１０４＿２と、演算処理用ＡＳＩＣ１０５＿２と、内蔵メモリ１１６＿２を有するデータ転送処理部１０６＿２と、停止用スイッチ１０７＿２と、スイッチ群１０８＿２と、内部バス用Ｉ／Ｆ１０９＿２と、を備えている。第２のプログラマブルコントローラ１００＿２の構成は、第１のプログラマブルコントローラ１００＿１と同様の構成を備えているものとして説明を省略する。
【００３７】
次に、本実施形態のシステムにおけるログデータの保存処理について説明する。図３は、本実施形態のシステムにおける上述した処理の手順を示すフローチャートである。
【００３８】
まず、稼働系である第１のプログラマブルコントローラ１００＿１のＣＰＵ１０３＿１が、入力モジュール１８１にアクセスして、入力データを、システム用メモリ１０２＿１に格納する（ステップＳ３０１）。
【００３９】
次に、演算処理用ＡＳＩＣ１０５＿１が、システム用メモリ１０２＿１に格納された入力データを用いて、演算処理を行う（ステップＳ３０２）。
【００４０】
そして、演算処理用ＡＳＩＣ１０５＿１が、演算処理した結果である出力データを、システム用メモリ１０２＿１に格納する（ステップＳ３０３）。
【００４１】
そして、ＣＰＵ１０３＿１の送信制御部２０１が、システム用メモリ１０２＿１に格納されている入力データ、及び出力データを、データ転送処理部１０６＿１の内蔵メモリ１１６＿１に転送する（ステップＳ３０４）。これにより、待機系である第２のプログラマブルコントローラ１００＿２が転送制御を行うことが可能となる。
【００４２】
一方、第２のプログラマブルコントローラ１００＿２のデータ転送処理部１０６＿２は、ケーブル１８５を介して、第１のプログラマブルコントローラ１００＿１のデータ転送処理部１０６＿１の内蔵メモリ１１６＿１を参照する（ステップＳ３１１）。
【００４３】
そして、第２のプログラマブルコントローラ１００＿２の受信制御部２０２は、データ転送処理部１０６＿２からの通知に基づいて、第１のプログラマブルコントローラ１００＿１のデータ転送処理部１０６＿１の内蔵メモリ１１６＿１にデータが入っているか否か判断する（ステップＳ３１２）。入っていないと判断した場合（ステップＳ３１２：Ｎｏ）、処理を終了する。
【００４４】
一方、受信制御部２０２が、内蔵メモリ１１６＿１にデータが入っていると判断した場合（ステップＳ３１２：Ｙｅｓ）、データ転送処理部１０６＿２に対してデータを受信するように指示する。データ転送処理部１０６＿２は、当該指示に従って、第１のプログラマブルコントローラ１００＿１のデータ転送処理部１０６＿１に読み出し命令を受け渡す。
【００４５】
そして、第１のプログラマブルコントローラ１００＿１のデータ転送処理部１０６＿１は、読み出し命令に応じて、内蔵メモリ１１６＿１に格納されていた入力データ、及び出力データを、第２のプログラマブルコントローラ１００＿２に送信し（ステップＳ３０５）、処理を終了する。
【００４６】
一方、第２のプログラマブルコントローラ１００＿２のデータ転送処理部１０６＿２は、データ転送処理部１０６＿１の内蔵メモリ１１６＿１から、ログデータ（入力データ、及び出力データ）を受信する（ステップＳ３１３）。
【００４７】
そして、第２のプログラマブルコントローラ１００＿２のＣＰＵ１０３＿２の書込制御部２０３が、受信したログデータ（入力データ、及び出力データ）を、第２の外部メモリ１５２に書き込む制御を行う（ステップＳ３１４）。
【００４８】
本実施形態では、プログラマブルコントローラが上述した構成を備えることで、稼働系のプログラマブルコントローラの負荷を大きくすることなく、ログデータを記録することができる。
【００４９】
（第２の実施形態）
第１の実施形態では、多重化したシステムにおいて、待機系のプログラマブルコントローラで、ログデータを記録する例について説明した。しかしながら、ログデータを記録するプログラマブルコントローラを、多重化したうちの待機系に制限するものではない。そこで、第２の実施形態では、多重化した複数のシステムがネットワークで接続された場合にログデータを記録する例について説明する。
【００５０】
図４は、第２の実施形態のシステムの概要を例示した図である。図４に示されるように、第１のシステムは、第１のユニット４０１と、第２のユニット４０２と、第１のハブ４６１と、第１のネットワーク４５１と、制御機器４７１〜４７４と、で構成されている。
【００５１】
第１のシステムでは、制御機器４７１〜４７４を、第１のユニット４０１及び第２のユニット４０２のうちいずれか一つで制御を行う。第１のハブ４６１は、稼働系と待機系とを切り替える制御を行う。通常は、第１のユニット４０１を稼働系とし、第２のユニット４０２を待機系とする。
【００５２】
本実施形態においては、複数の稼働系のプログラマブルコントローラ間で、ログデータを送受信する。例えば、複数の稼働系のプログラマブルコントローラのうち、処理負担が高い方の稼働系のプログラマブルコントローラが、ログデータを送信し、処理負担が低い方の稼働系のプログラマブルコントローラが、ログデータを受信し、当該ログデータを外部メモリに書き込む制御を行う。なお、システム間のログデータの送受信を、稼働系のプログラマブルコントローラ間の処理に制限するものではなく、待機系のプログラマブルコントローラを用いても良い。
【００５３】
第１のユニット４０１は、第１のプログラマブルコントローラ４１１と、伝送モジュール４１２と、入力モジュール４１３と、出力モジュール４１４と、で構成されている。そして、第１のユニット４０１は、これらの構成を内蔵バス４１５で接続している。同様に第２のユニット４０２も、第２のプログラマブルコントローラ４２１を含む構成とする。
【００５４】
そして、駆動系である第１のプログラマブルコントローラ４１１は、制御機器４７１〜４７４の制御を行う。この第１のプログラマブルコントローラ４１１は、多く機器を制御するため負荷が高い。
【００５５】
一方、第２のシステムは、第３のユニット４０３と、第４のユニット４０４と、第２のハブ４６２と、第２のネットワーク４５２と、制御機器４８１と、で構成されている。
【００５６】
第２のシステムでは、制御機器４８１を、第３のユニット４０３及び第４のユニット４０４のうちいずれか一つで制御を行う。第２のハブ４６２は、稼働系と待機系とを切り替える制御を行う。通常は、第３のユニット４０３を稼働系とし、第４のユニット４０４が待機系とする。
【００５７】
第３のユニット４０３は、第３のプログラマブルコントローラ４３１と、入力モジュール４３２と、伝送モジュール４３３と、出力モジュール４３４と、で構成されている。そして、第３のユニット４０３は、これらの構成を内蔵バス４３５で接続している。
【００５８】
そして、稼動系である第３のプログラマブルコントローラ４３１は、制御機器４８１の制御を行う。この第３のプログラマブルコントローラ４３１は、制御対象となる機器が一つのため、第１のプログラマブルコントローラ４１１と比べて処理負担が小さい。
【００５９】
また、各システムを構成するユニット群は、通信ネットワーク４０５を介して接続されている。
【００６０】
そこで、本実施形態では、第１のプログラマブルコントローラ４１１の演算処理に関するログデータを、第３のプログラマブルコントローラ４３１が記録する。
【００６１】
なお、図４に示す例では、二重化されたプログラマブルコントローラを含むシステムを２個記載したが、実際にはさらに多くのプログラマブルコントローラを含むシステムが接続されているものとする。
【００６２】
図５は、第２の実施形態のシステム構成例を示した図である。図５に示されるように、第１のユニット４０１は、内蔵バス４１５を介して、第１のプログラマブルコントローラ４１１と、伝送モジュール４１２と、入力モジュール４１３と、出力モジュール４１４と、を接続している。
【００６３】
なお、第１のプログラマブルコントローラ４１１は、不揮発性メモリ１０１＿１と、システム用メモリ１０２＿１と、ＣＰＵ１０３＿１と、メモリ用Ｉ／Ｆ１０４＿１と、演算処理用ＡＳＩＣ１０５＿１と、データ転送処理部１０６＿１と、停止用スイッチ１０７＿１と、スイッチ群１０８＿１と、内部バス用Ｉ／Ｆ１０９＿１と、を備え、第１の実施形態と同様の構成を備えている。また、入力モジュール４１３、及び出力モジュール４１４も、入力モジュール１８１、及び出力モジュール１８２と同様の構成とする。
【００６４】
伝送モジュール４１２は、伝送用メモリ５５１を備え、通信ネットワーク４０５を介して接続された機器と通信するためのモジュールとする。
【００６５】
また、第３のプログラマブルコントローラ４３１は、不揮発性メモリ１０１＿３と、システム用メモリ１０２＿３と、ＣＰＵ１０３＿３と、メモリ用Ｉ／Ｆ１０４＿３と、演算処理用ＡＳＩＣ１０５＿３と、データ転送処理部１０６＿３と、停止用スイッチ１０７＿３と、スイッチ群１０８＿３と、内部バス用Ｉ／Ｆ１０９＿３と、を備え、符号は異なるが、第１の実施形態の第１のプログラマブルコントローラ１００＿１と同様の構成を備えている。入力モジュール４３２、及び出力モジュール４３４も、第１の実施形態の入力モジュール１８１、及び出力モジュール１８２と同様の構成とする。なお、メモリ用Ｉ／Ｆ１０４＿３に接続可能な外部メモリとして、第３の外部メモリ１５３を用いているが、第１の外部メモリ１５１等を接続してもよい。
【００６６】
また、伝送モジュール４３３は、伝送用メモリ５６１を備え、通信ネットワーク４０５を介して接続された機器と通信するためのモジュールとする。
【００６７】
第１の実施形態との違いは、第１のプログラマブルコントローラ４１１、及び第３のプログラマブルコントローラ４３１で実行されるプログラムが、第１の実施形態の第１のプログラマブルコントローラ１００＿１、及び第２のプログラマブルコントローラ１００＿２で実行されるプログラムと異なる点とする。
【００６８】
次に、第１のプログラマブルコントローラ４１１、及び第３のプログラマブルコントローラ４３１で実行されるプログラムについて説明する。
【００６９】
図６は、ＣＰＵ１０３＿１が不揮発性メモリ１０１＿１のプログラムを読み出す、又はＣＰＵ１０３＿３が不揮発性メモリ１０１＿３のプログラムを読み出すことで実現されるプログラム構成を示したブロック図である。図６に示されるように、ＣＰＵ１０３＿１、１０３＿３は、プログラムを実行することで、送信制御部６０１と、受信制御部６０２と、書込制御部２０３と、が実現される。なお、書込制御部２０３は、第１の実施形態と同様の処理を行うものとして説明を省略する。
【００７０】
送信制御部６０１は、処理負担が高いプログラマブルコントローラ（例えば第１のプログラマブルコントローラ４１１）側が利用する構成であり、受信制御部６０２、及び書込制御部２０３は、処理負担が低いプログラマブルコントローラ（例えば第３のプログラマブルコントローラ４３１）側が利用する構成とする。
【００７１】
送信制御部６０１は、通信ネットワーク４０５を介して、他のシステムに含まれる、自装置と比べて演算処理用ＡＳＩＣによる演算負荷が少ない他のプログラマブルコントローラ（例えば第３のプログラマブルコントローラ４３１）に対して、ログデータを送信するための制御を行う。当該送信するための制御は、どのようなタイミングで行っても良いが、演算処理用ＡＳＩＣ１０５＿１の演算処理の合間などが考えられる。
【００７２】
本実施形態の送信制御部６０１は、演算負荷が少ない他のプログラマブルコントローラ（例えば、第３のプログラマブルコントローラ４３１）に対して、ログデータを送信するための制御として、内部バス用Ｉ／Ｆ１０９＿１から、内蔵バス４１５を介して接続された伝送モジュール４１２にログデータを送信し、伝送モジュール４１２の伝送用メモリ５５１にログデータを記録させる。
【００７３】
伝送モジュール４１２は、コントローラ間の通信ネットワーク４０５にリンク接続されている伝送モジュール（例えば、伝送モジュール３３２）に対して、伝送用メモリの内容を同報送信する機能を有する。これにより、伝送用メモリ５５１に格納されたログデータは、通信ネットワーク４０５に接続される伝送モジュール（例えば、伝送モジュール４３３）に転送される。
【００７４】
そして、プログラマブルコントローラ（例えば、第３のプログラマブルコントローラ４３１）が、伝送モジュール（例えば伝送モジュール４３３）の伝送用メモリに、他の伝送モジュール（例えば伝送モジュール４１２）から伝送されたデータが格納されている場合に、受信制御部６０２が、伝送モジュールの伝送用メモリから、ログデータを受信するための制御を行う。通信ネットワーク４０５を介してログデータを取得できる。
【００７５】
書込制御部２０３が、取得したログデータを用いて、第１の実施の形態と同様の処理を行うことで、外部メモリにログデータが書き込まれる。
【００７６】
プログラマブルコントローラが伝送モジュールの伝送用モジュールデータが含まれているか否かの確認は非同期でも良い。また、通信ネットワーク４０５に複数のシステム（例えば、３個以上）が存在する場合、他の複数のシステムの各々から出力されたログデータを、一つの伝送用メモリに格納できる。
【００７７】
本実施形態の送信制御部６０１は、通信ネットワーク４０５を介して、複数のシステムに含まれる複数のプログラマブルコントローラに対して、ログデータを分けて送信するように制御してもよい。例えば、本実施形態の送信制御部６０１が、ログデータを分割し、分割したログデータ毎に、異なるプログラマブルコントローラに送信するように、伝送モジュール（例えば伝送モジュール４１２）に命令するなどが考えられる。
【００７８】
このように、複数のプログラマブルコントローラにログデータを分けて保存する場合に、プログラマブルコントローラの演算負荷に応じて、外部メモリに記憶させるログデータの量を分担しても良い。各プログラマブルコントローラに格納されるログデータが、時系列順ではなくなるが、解析する際に、合成等の処理を行えば良い。
【００７９】
また、本実施形態では、任意のプログラマブルコントローラ（例えば第１のプログラマブルコントローラ）のログデータを複数のプログラマブルコントローラ（例えば、第３のプログラマブルコントローラ、及び（図示しない）第５のプログラマブルコントローラ）の外部メモリに書き込むように制御しても良い。その際に、それぞれの外部メモリに格納されるログデータをハッシュ化しても良い。これにより、外部メモリに格納されたいずれか一方のログデータを第三者に抜き取られたとしても、復元するために読み取ることを抑止することができる。さらには、通信ネットワーク４０５でログデータを送受信する際に、ログデータを符号化しても良い。これらを行うことで、安全性を向上させることができる。
【００８０】
本実施形態では、ログデータを分割することで、複数のプログラマブルコントローラには、それぞれ異なるログデータが保存される例について説明したが、複数のプログラマブルコントローラの外部メモリに同一のログデータが記録されるように制御しても良い。
【００８１】
本実施形態においても、外部メモリにログデータを書き込むよりも、伝送モジュールの伝送メモリに、ログデータを出力する方が、処理負担が小さい。これにより、処理負担が大きいプログラマブルコントローラにおいて、処理負担をそれほど高めることなく、ログデータの記録が可能となる。
【００８２】
上述した実施形態で示したように、通常、システムは、プログラマブルコントローラ単体で構成されるわけでなく、複数のプログラマブルコントローラで構成される。プログラマブルコントローラにおいて、利用される入力データ及び出力データ量は大量となるため、毎スキャンごとに収集されるため、ログデータも大容量となる。この大容量のログデータを、処理負担が大きいプログラマブルコントローラで保存するのは難しかった。
【００８３】
上述した実施形態では、外部メモリとしては、例えば、ＮＯＲ型のフラッシュメモリを使用することが考えられる。ＮＯＲ型のフラッシュメモリは、データの信頼性が高い反面、デバイスへの書込み処理速度が遅いため、書込み完了待ちが長かった。このため、外部メモリに書き込み処理を行うだけでは、処理負担の多いプログラマブルコントローラでは、結果演算処理のリソースが不足する可能性があった。
【００８４】
さらには、外部記憶媒体への書込み処理速度は遅いだけでなく、デバイスのリフレッシュ処理等に重なると前回データの書込み完了まで次データが書き込めなくなる可能性がある。この場合に、ログデータが書き込まれずに、次の処理に移行する必要が生じる可能性がある。この場合に、ログデータに欠落が生じる可能性があった。
【００８５】
これに対して、上述した実施形態のプログラマブルコントローラでは、上述した構成を備えることで、処理負担が大きいプログラマブルコントローラについては処理負担を軽減し、処理負担が小さいプログラマブルコントローラにログデータの書き込み制御を行わせることとした。これにより演算処理のリソースが不足することを軽減するとともに、ログデータが欠落する可能性を抑止できる。このように、ログデータの保存の信頼性を個乗させることができる。
【００８６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８７】
１００＿１…第１のプログラマブルコントローラ、１００＿２…第２のプログラマブルコントローラ、１０１＿１、１０１＿２、１０１＿３…不揮発性メモリ、１０２＿１、１０２＿２、１０２＿３…システム用メモリ、１０３＿１、１０３＿２、１０３＿３…ＣＰＵ、１０４＿１、１０４＿２、１０４＿３…メモリ用Ｉ／Ｆ、１０５＿１、１０５＿２、１０５＿３…演算処理用ＡＳＩＣ、１０６＿１、１０６＿２、１０６＿３…データ転送処理部、１０７＿１、１０７＿２、１０７＿３…停止用スイッチ、１０８＿１、１０８＿２、１０８＿３…スイッチ群、１０９＿１、１０９＿２、１０９＿３…内部バス用Ｉ／Ｆ、１１６＿１、１１６＿２…内蔵メモリ、１５１…第１の外部メモリ、１５２…第２の外部メモリ、１８０…システムバス、１８１…入力モジュール、１８２…出力モジュール、１８５…ケーブル、２０１、６０１…送信制御部、２０２、６０２…受信制御部、２０３…書込制御部、４０１…第１のユニット、４０２…第２のユニット、４０３…第３のユニット、４０４…第４のユニット、４０５…通信ネットワーク、４１１…第１のプログラマブルコントローラ、４１２…伝送モジュール、４１３…入力モジュール、４１４…出力モジュール、４１５…内蔵バス、４２１…第２のプログラマブルコントローラ、４３１…第３のプログラマブルコントローラ、４３２…入力モジュール、４３３…伝送モジュール、４３４…出力モジュール、４３５…内蔵バス、４５１…第１のネットワーク、４５２…第２のネットワーク、４６１…第１のハブ、４６２…第２のハブ、４７１〜４７４…制御機器、４８１…制御機器、５５１…伝送用メモリ、５６１…伝送用メモリ。
【図１】
2015215803.tif 000003
【図２】
2015215803.tif 000004
【図３】
2015215803.tif 000005
【図４】
2015215803.tif 000006
【図５】
2015215803.tif 000007
【図６】
2015215803.tif 000008