JP6356736B2 - コントローラシステムおよび制御方法 - Google Patents
コントローラシステムおよび制御方法 Download PDFInfo
- Publication number
- JP6356736B2 JP6356736B2 JP2016128493A JP2016128493A JP6356736B2 JP 6356736 B2 JP6356736 B2 JP 6356736B2 JP 2016128493 A JP2016128493 A JP 2016128493A JP 2016128493 A JP2016128493 A JP 2016128493A JP 6356736 B2 JP6356736 B2 JP 6356736B2
- Authority
- JP
- Japan
- Prior art keywords
- controller
- buffer memory
- output
- plc
- controllers
- 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/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/052—Linking several PLC's
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/11—Plc I-O input output
- G05B2219/1105—I-O
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Safety Devices In Control Systems (AREA)
Description
本発明は、複数のコントローラと、複数のコントローラを制御して管理する上位制御装置とを備えるコントローラシステムおよび制御方法に関する。
下記特許文献1には、産業機器として用いられる複数のPLCと、複数のPLCを管理する共有サーバとを備えるマルチコントローラシステムが開示されている。この複数のPLCの各々は、I/O装置を介してPLCの制御対象と接続されている。そして、マルチコントローラシステムの共有サーバは、異常なPLCを検出すると、負荷の小さいPLC、つまり、プログラムを追加しても実行が可能なPLCを選定する。そして、選定されたPLCが異常と判断されたPLCが実行していたプログラムをロードして、異常なPLCの代わりにプログラムを実行させるというものである。
一般に、I/O装置(I/O機器)の入出力信号等のデータは、PLC内のメインメモリに格納されている。したがって、あるPLCに異常が発生した場合に、異常が発生したPLCの制御対象の制御を他のPLCが引き継ぐ場合は、これまでの実行結果と矛盾が生じないデータを、その制御対象に接続されているI/O装置に出力する必要がある。そのため、メインメモリに記憶されているデータをそのまま制御を引き継ぐ他のPLCにコピーしなければならない。
この入出力信号等は、数百キロバイト〜数メガバイトとサイズが大きい。そのため、異常が発生したPLCのメインメモリからEthernet(登録商標)経由で他のPLCにデータをコピーする場合は、コピー時間が、PLCがプログラムを実行する1つの実行周期を大きく上回る。したがって、制御対象の制御を継続して行うことができない。また、PLCの制御部等に異常が発生した場合は、メインメモリに記憶されたデータの信憑性も低いため、このデータを他のPLCにコピーして、異常が発生したPLCの制御対象の制御を継続させるのは好ましくない。
したがって、上記した特許文献1に記載の技術では、制御対象を制御するPLCを切り換える際に、制御対象の制御が中断したり、これまでの実行結果と矛盾するデータを制御対象に出力する可能性を回避することができない。
そこで、本発明は、安定した状態で制御対象の制御を続けながら、制御対象の制御主体を切り換えることができるコントローラシステムおよび制御方法を提供することを目的とする。
第1の本発明は、複数のコントローラと、前記複数のコントローラの各々の制御対象と前記複数のコントローラの各々とを接続し、前記制御対象と前記コントローラとの間で必要な情報を伝送する複数のI/O機器と、前記複数のコントローラを制御して管理する上位制御装置とを備えるコントローラシステムであって、前記上位制御装置は、前記複数のコントローラの各々が実行する複数のプログラムを記憶した記憶部と、前記複数のコントローラの各々が前記I/O機器を介して自己に接続された前記制御対象を制御するように、前記記憶部に記憶された前記複数のプログラムを自己プログラムとして前記複数のコントローラに割り当てるとともに、前記記憶部に記憶された前記複数のプログラムの全てまたは一部が、1つの実行周期内で2重に並行して実行されるように、前記複数のプログラムの全てまたは一部を他プログラムとして前記上位制御装置および前記複数のコントローラにさらに割り当てるプロセッサと、を有し、前記複数のコントローラの各々は、前記I/O機器を介して自己に接続された前記制御対象から送信された入力データを記憶する第1入力用バッファメモリと、前記I/O機器を介して自己に接続された前記制御対象を制御するために自己に割り当てられた前記自己プログラムを実行して得られた第1の出力データを記憶する第1出力用バッファメモリと、前記I/O機器を介して自己に接続された前記制御対象を制御するために前記上位制御装置または他の前記コントローラに割り当てられた前記他プログラムを、前記上位制御装置または他の前記コントローラが実行することで得られた第2の出力データを記憶する第2出力用バッファメモリと、を有する通信部を有し、前記上位制御装置から送信された選択情報に基づいて、前記第1出力用バッファメモリに記憶されている前記第1の出力データおよび前記第2出力用バッファメモリに記憶されている前記第2の出力データの一方を、前記I/O機器を介して自己に接続された前記制御対象に出力する。
この構成により、制御対象を制御する制御主体を切り換えた場合であっても、これまでの実行結果と矛盾が生じない出力データを、その制御対象に接続されたI/O機器に出力することができる。したがって、安定した状態で制御対象の制御を続けながら、制御対象の制御主体を切り換えることができる。
第1の本発明は、前記コントローラシステムであって、前記複数のコントローラの各々は、前記I/O機器を介して自己に接続された前記制御対象から送信された前記入力データに基づいて、自己に割り当てられた前記自己プログラムを実行することで前記第1の出力データを生成し、前記I/O機器を介して他の前記コントローラに接続された前記制御対象であって、自己に割り当てられた前記他プログラムによって制御される前記制御対象から送信された前記入力データに基づいて、自己に割り当てられた前記他プログラムを実行することで前記第2の出力データを生成するプロセッサをさらに有してもよい。これにより、コントローラは、制御対象が送信した入力データに基づいてプログラム(自己プログラムまたは他プログラム)を実行して、入力データを送信した制御対象に出力する出力データを生成することができ、安定した状態で制御対象を制御することができる。
第1の本発明は、前記コントローラシステムであって、前記上位制御装置の前記プロセッサは、自己に割り当てられた前記他プログラムによって制御される前記制御対象から送信された前記入力データに基づいて、自己に割り当てられた前記他プログラムを実行することで前記第2の出力データを生成してもよい。これにより、上位制御装置は、制御対象が送信した入力データに基づいて他プログラムを実行して、入力データを送信した制御対象に出力する出力データを生成することができ、安定した状態で制御対象を制御することができる。
第1の本発明は、前記コントローラシステムであって、前記上位制御装置の前記プロセッサは、正常と判断した前記コントローラが、前記第1出力用バッファメモリに記憶された前記第1の出力データを前記I/O機器を介して自己に接続された前記制御対象に出力し、異常と判断された前記コントローラが、前記第2出力用バッファメモリに記憶された前記第2の出力データを前記I/O機器を介して自己に接続された前記制御対象に出力するように、前記選択情報を前記複数のコントローラに出力してもよい。これにより、コントローラに異常が発生した場合であっても、異常と判断されたコントローラに代わって他の正常なコントローラが、異常と判断されたコントローラに接続された制御対象を制御することができる。したがって、安定した状態で異常と判断されたコントローラに接続された制御対象の制御を続けながら、異常と判断されたコントローラに接続された制御対象の制御主体を切り換えることができる。
第1の本発明は、前記コントローラシステムであって、前記上位制御装置の前記プロセッサは、前記複数のコントローラから取得した前記複数のコントローラの各々のエラー情報および生存信号の少なくとも一方に基づいて、前記複数のコントローラの各々が正常か異常かを判断してもよい。これにより、上位制御装置は、コントローラが正常か異常かを精度よく判断することができる。
第1の本発明は、前記コントローラシステムであって、前記コントローラの前記通信部は、前記選択情報に基づいて、前記I/O機器を介して自己に接続されている前記制御対象に出力する出力データとして、前記第1出力用バッファメモリに記憶されている前記第1の出力データおよび前記第2出力用バッファメモリに記憶されている前記第2の出力データの一方を選択するセレクタをさらに有してもよい。これにより、容易に、I/O機器に出力する出力データを切り換えることができる。
第1の本発明は、前記コントローラシステムであって、前記上位制御装置の前記プロセッサは、前記複数のコントローラの前記通信部を介して、前記複数のコントローラの各々が前記自己プログラムを実行する際の負荷を示す負荷情報を取得し、取得した前記負荷情報に基づいて前記他プログラムを割り当ててもよい。これにより、複数のコントローラの各々によるプログラムの処理が1実行周期内で収まるように、他プログラムを割り当てることができる。
第1の本発明は、前記コントローラシステムであって、前記上位制御装置は、自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された前記コントローラの前記第1入力用バッファメモリに記憶された前記入力データを受信し、自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された前記コントローラに前記第2の出力データを送信してもよい。これにより、上位制御装置は、これまでの実行結果と矛盾が生じない第2の出力データをコントローラに送信することができ、I/O機器を介してPLCに接続された制御対象を制御することができる。
第1の本発明は、前記コントローラシステムであって、前記複数のコントローラの各々は、他の前記コントローラに前記I/O機器を介して接続された前記制御対象であって、自己に割り当てられた前記他プログラムによって制御される前記制御対象から送信された前記入力データを記憶する第2入力用バッファメモリと、他の前記コントローラに前記I/O機器を介して接続された前記制御対象を制御するために自己に割り当てられた前記他プログラムを実行して得られた前記第2の出力データを記憶する第3出力用バッファメモリと、をさらに備え、自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された他の前記コントローラの前記第1入力用バッファメモリに記憶された前記入力データを前記上位制御装置を介して受信し、受信した前記入力データを前記第2入力用バッファメモリに記憶するとともに、自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された他の前記コントローラに、前記上位制御装置を介して前記第3出力用バッファメモリに記憶された前記第2の出力データを送信してもよい。これにより、コントローラは、これまでの実行結果と矛盾が生じない第2の出力データを他のコントローラに送信することができ、I/O機器を介して他のコントローラに接続された制御対象を制御することができる。
第2の本発明は、複数のコントローラと、前記複数のコントローラの各々の制御対象と前記複数のコントローラの各々とを接続し、前記制御対象と前記コントローラとの間で必要な情報を伝送する複数のI/O機器と、前記複数のコントローラを制御して管理する上位制御装置とを備えるコントローラシステムにおける制御方法であって、前記上位制御装置は、前記複数のコントローラの各々が実行する複数のプログラムを記憶した記憶部を備え、前記複数のコントローラの各々は、第1入力用バッファメモリ、第1出力用バッファメモリ、および、第2出力用バッファメモリを有する通信部を備え、上位制御装置が、前記複数のコントローラの各々が前記I/O機器を介して自己に接続された前記制御対象を制御するように、前記記憶部に記憶された前記複数のプログラムを自己プログラムとして前記複数のコントローラに割り当てるとともに、前記記憶部に記憶された前記複数のプログラムの全てまたは一部が、1つの実行周期内で2重に並行して実行されるように、前記複数のプログラムの全てまたは一部を他プログラムとして前記上位制御装置および前記複数のコントローラにさらに割り当てる、割当ステップと、前記複数のコントローラの各々が、前記I/O機器を介して自己に接続された前記制御対象から送信された入力データを前記第1入力用バッファメモリに記憶する、第1入力記憶ステップと、前記複数のコントローラの各々が、前記I/O機器を介して自己に接続された前記制御対象を制御するために自己に割り当てられた前記自己プログラムを実行して得られた第1の出力データを前記第1出力用バッファメモリに記憶する、第1出力記憶ステップと、前記複数のコントローラの各々が、前記I/O機器を介して自己に接続された前記制御対象を制御するために前記上位制御装置または他の前記コントローラに割り当てられた前記他プログラムを、前記上位制御装置または他の前記コントローラが実行することで得られた第2の出力データを前記第2出力用バッファメモリに記憶する、第2出力記憶ステップと、前記複数のコントローラの各々が、前記上位制御装置から送信された選択情報に基づいて、前記第1出力用バッファメモリに記憶されている前記第1の出力データおよび前記第2出力用バッファメモリに記憶されている前記第2の出力データの一方を、前記I/O機器を介して自己に接続された前記制御対象に出力する、出力ステップと、を含む。
この構成により、制御対象を制御する制御主体を切り換えた場合であっても、これまでの実行結果と矛盾が生じない出力データを、その制御対象に接続されたI/O機器に出力することができる。したがって、安定した状態で制御対象の制御を続けながら、制御対象の制御主体を切り換えることができる。
第2の本発明は、前記制御方法であって、前記コントローラが、前記I/O機器を介して自己に接続された前記制御対象から送信された前記入力データに基づいて、自己に割り当てられた前記自己プログラムを実行することで前記第1の出力データを生成する、第1生成ステップと、前記コントローラが、他の前記コントローラに前記I/O機器を介して接続された前記制御対象であって、自己に割り当てられた前記他プログラムによって制御される前記制御対象から送信された前記入力データに基づいて、自己に割り当てられた前記他プログラムを実行することで前記第2の出力データを生成する、第2生成ステップと、前記上位制御装置が、自己に割り当てられた前記他プログラムによって制御される前記制御対象から送信された前記入力データに基づいて、自己に割り当てられた前記他プログラムを実行することで前記第2の出力データを生成する、第3生成ステップと、をさらに含んでもよい。これにより、コントローラは、制御対象が送信した入力データに基づいてプログラム(自己プログラムまたは他プログラム)を実行して、入力データを送信した制御対象に出力する出力データを生成することができ、安定した状態で制御対象を制御することができる。また、上位制御装置は、制御対象が送信した入力データに基づいて他プログラムを実行して、入力データを送信した制御対象に出力する出力データを生成することができ、安定した状態で制御対象を制御することができる。
第2の本発明は、前記制御方法であって、前記通信部は、セレクタをさらに有し、前記上位制御装置が、前記複数のコントローラから取得した前記複数のコントローラの各々のエラー情報および生存信号の少なくとも一方に基づいて、前記複数のコントローラの各々が正常か異常かを判断する、異常判断ステップと、前記上位制御装置が、正常と判断した前記コントローラが、前記第1出力用バッファメモリに記憶された前記第1の出力データを前記I/O機器を介して自己に接続された前記制御対象に出力し、異常と判断された前記コントローラが、前記第2出力用バッファメモリに記憶された前記第2の出力データを前記I/O機器を介して自己に接続された前記制御対象に出力するように、前記選択情報を前記複数のコントローラに出力する、選択出力ステップと、前記複数のコントローラの各々の前記通信部の前記セレクタが、前記選択情報に基づいて、前記I/O機器を介して自己に接続されている前記制御対象に出力する出力データとして、前記第1出力用バッファメモリに記憶されている前記第1の出力データおよび前記第2出力用バッファメモリに記憶されている前記第2の出力データの一方を選択する、選択ステップと、をさらに含んでもよい。これにより、上位制御装置は、コントローラが正常か異常かを精度よく判断することができる。また、コントローラに異常が発生した場合であっても、異常と判断されたコントローラに代わって他の正常なコントローラが、異常と判断されたコントローラに接続された制御対象を制御することができる。したがって、安定した状態で異常と判断されたコントローラに接続された制御対象の制御を続けながら、異常と判断されたコントローラに接続された制御対象の制御主体を切り換えることができる。また、通信部は、容易に、I/O機器に出力する出力データを切り換えることができる。
第2の本発明は、前記制御方法であって、前記上位制御装置が、前記複数のコントローラの前記通信部を介して、前記複数のコントローラの各々が前記自己プログラムを実行する際の負荷を示す負荷情報を取得する、取得ステップをさらに含み、前記割当ステップは、取得した前記負荷情報に基づいて前記他プログラムを割り当ててもよい。これにより、複数のコントローラの各々によるプログラムの処理が1実行周期内で収まるように、他プログラムを割り当てることができる。
第2の本発明は、前記制御方法であって、前記上位制御装置が、自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された前記コントローラの前記第1入力用バッファメモリに記憶された前記入力データを受信する、受信ステップと、前記上位制御装置が、自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された前記コントローラに前記第2の出力データを送信する、第1送信ステップと、をさらに含んでもよい。これにより、上位制御装置は、これまでの実行結果と矛盾が生じない第2の出力データをコントローラに送信することができ、I/O機器を介してPLCに接続された制御対象を制御することができる。
第2の本発明は、前記制御方法であって、前記通信部は、第2入力用バッファメモリと第3出力用バッファメモリとをさらに有し、前記複数のコントローラの各々が、他の前記コントローラに前記I/O機器を介して接続された前記制御対象であって、自己に割り当てられた前記他プログラムによって制御される前記制御対象から送信された前記入力データを前記第2入力用バッファメモリに記憶する、第2入力記憶ステップと、前記複数のコントローラの各々が、他の前記コントローラに前記I/O機器を介して接続された前記制御対象を制御するために自己に割り当てられた前記他プログラムを実行して得られた前記第2の出力データを前記第3出力用バッファメモリに記憶する、第3出力記憶ステップと、前記複数のコントローラの各々が、自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された他の前記コントローラに、前記上位制御装置を介して前記第3出力用バッファメモリに記憶された前記第2の出力データを送信する第2送信ステップと、をさらに含み、前記第2入力記憶ステップは、前記複数のコントローラの各々が、自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された他の前記コントローラの前記第1入力用バッファメモリに記憶された前記入力データを前記上位制御装置を介して受信し、受信した前記入力データを前記第2入力用バッファメモリに記憶してもよい。これにより、コントローラは、これまでの実行結果と矛盾が生じない第2の出力データを他のコントローラに送信することができ、I/O機器を介して他のコントローラに接続された制御対象を制御することができる。
本発明によれば、制御対象を制御する制御主体を切り換えた場合であっても、これまでの実行結果と矛盾が生じない出力データを、その制御対象に接続されたI/O機器に出力することができる。したがって、安定した状態で制御対象の制御を続けながら、制御対象の制御主体を切り換えることができる。
本発明に係るコントローラシステムおよび制御方法について、好適な実施の形態を掲げ、添付の図面を参照しながら以下、詳細に説明する。
図1は、実施の形態におけるPLC(コントローラ)システム10の全体概略構成図である。PLCシステム10は、上位制御装置であるPC12と、PC12とデイジーチェーンで接続された複数(本実施の形態では、5個)のPLC(プログラマブルロジックコントローラ)14n(ただし、n=1、2、・・・、5)と、複数のPLC14n(PLC141〜PLC145)の各々にデイジーチェーンで接続された複数のI/O機器(外部信号入出力機器)16nとを備える。また、複数のI/O機器16nには、複数のPLC14nの制御対象18nが接続されている。つまり、複数のI/O機器16nは、複数のPLC14nの各々の制御対象18nと、複数のPLC14nの各々とを接続し、制御対象18nとPLC14nとの間で、必要な情報(データ)を伝送するものである。
本説明では、PLC141にデイジーチェーンで接続された複数のI/O機器16nを161で表し、同様に、PLC142〜145の各々にデイジーチェーンで接続された複数のI/O機器16nを162〜165で表す。また、I/O機器161に接続された制御対象18nを181で表し、同様に、I/O機器162〜165に接続された制御対象18nを182〜185で表す。したがって、制御対象181は、I/O機器161を介してPLC141に接続されており、同様に、制御対象182〜185は、I/O機器162〜165を介してPLC142〜PLC145に接続されている。制御対象18nとしては、例えば、モータやポンプ等が挙げられる。
PC12、複数のPLC14n、および、複数のI/O機器16nは、EtherCAT(登録商標)システムによって接続されている。そのため、PC12およびPLC14nは、データ(信号)を送信する場合は、送信先となるPCまたはPLC14nのアドレス情報と送信するデータをフレームに書き込んで送信する。PC12が、PLC14nにデータを送信する場合は、送信先となるPLC14nのアドレス情報と送信するデータとが書き込まれたフレームをPC12の後段に接続されたPLC141に送信する。PLC14nは、前段に接続されたPC12またはPLC14nからフレームが送られてくると、フレームに含まれるアドレス情報に基づいて自己に送信されたものであるか否かを判断する。PLC14nは、送られてきたフレームが自己宛てに送信されたものであると判断した場合は、フレームに書き込まれたデータを取り込み、自己宛てに送信されたものではないと判断した場合は、そのまま送られてきたフレームを後段に接続されたPLC14nに送信する。また、各PLC14nからPC12にデータを送信する場合も同様であり、PLC14nは、後段から送られてきたPC12宛てのフレームを前段に接続されたPC12またはPLC14nに送信する。なお、PLC14n間での送受信は、PC12を介して行われる。例えば、PLC142がPLC144にデータを送信する場合は、一旦PLC142からデータを含むフレームがPC12に送られた後、PC12からPLC144に送信される。
図2は、PC12の概略構成図、図3は、PLC14nの概略構成図である。PC12は、CPU等のプロセッサ20と、メインメモリ(記憶部)22と、通信部24とを備える。PLC14nは、CPU等のプロセッサ30と、メインメモリ(記憶部)32と、通信部34とを備える。この複数のPLC14nの通信部34が、PC12の通信部24とデイジーチェーンで接続されている(図1参照)。PC12のメインメモリ22は、複数のPLC14nの各々で実行(処理)される複数のプログラムPnを記憶している。このプログラムPnは、制御対象18nを制御するためのプログラムである。本説明では、I/O機器161を介してPLC141に接続された制御対象181を制御するためのプログラムPnをP1で表し、同様に、I/O機器162〜165を介してPLC142〜PLC145に接続された制御対象182〜185を制御するためのプログラムPnをP2〜P5で表す。
PC12のプロセッサ20は、メインメモリ22に記憶された複数のプログラムPn(P1〜P5)をPC12および複数のPLC14n(PLC141〜PLC145)に割り当てる。割り当てられたプログラムPnは、割当対象となったPLC14nにロードされる。つまり、プロセッサ20は、通信部24を介してプログラムPnを送信し、割当対象となったPLC14nのプロセッサ30は、通信部34を介して割り当てられたプログラムPnを取得して、メインメモリ32に記憶する。
以下、PLCシステム10のプログラムPnの割り当て動作を、図4のフローチャートを用いて詳しく説明する。
PLCシステム10の起動時、または、所定のタイミングで、PC12のプロセッサ20は、ステップS1の動作を行う。プロセッサ20は、ステップS1で、複数のPLC14nの各々がI/O機器16nを介して自己に接続された制御対象18nを制御するように、メインメモリ22に記憶された複数のプログラムPnを複数のPLC14nに割り当てる。以下、説明を簡単にするため、I/O機器16nを介して自己に接続された制御対象18nを制御するために、PLC14nに割り当てられたプログラムPnを自己プログラムPnと呼ぶ場合がある。これにより、図5に示すように、PLC141には自己プログラムPnであるプログラムP1が割り当てられ、同様に、PLC142〜PLC145には自己プログラムP2〜P5が割り当てられる。複数のPLC14n(PLC141〜PLC145)は、PLC14nの1つの実行周期(以下、1実行周期と呼ぶ。)内で自己プログラムPn(P1〜P5)の実行を完了する。
これらのプログラムPn(P1〜P5)のデータサイズ(ステップ数)が互いに異なる場合は、プログラムPnを実行するのにかかる時間(実行時間、処理時間)、および、負荷(または負荷率)も互いに異なる。図6に示す例では、5つのプログラムPn(P1〜P5)の実行時間および負荷(または負荷率)は、P4<P1<P3=P5<P2、の関係を有するものとする。負荷または負荷率等を示す情報を負荷情報と呼ぶ。なお、図6は、複数のPLC14nの各々による自己プログラムPn(図5に示す割り当てによって割り当てられた自己プログラムPn)の実行(処理)を示すタイムチャートである。
次いで、PC12のプロセッサ20は、図5に示すように、割り当てた複数の自己プログラムPn(P1〜P5)を複数のPLC14n(141〜145)にロードさせる(ステップS2)。次いで、複数のPLC14nの各々のプロセッサ30は、自己プログラムPnの実行を開始し(ステップS3)、自己プログラムPnの実行による負荷情報を算出してPC12のプロセッサ20に送信する(ステップS4)。PC12のプロセッサ20は、複数のPLC14n(141〜145)からプロセッサ30の負荷情報を全て取得すると、複数のPLC14n(141〜145)による自己プログラムPnの実行を全て停止させる(ステップS5)。プロセッサ20は、通信部24、通信部34を介して全てのPLC14n(141〜145)のプロセッサ30に停止信号を出力することで、全てのPLC14n(141〜145)のプロセッサ30に自己プログラムPnの実行を停止させる。
プロセッサ20は、ステップS4で収集した全てのPLC14n(141〜145)の負荷情報に基づいて、メインメモリ22に記憶された複数のプログラムPnの全てまたは一部が、1実行周期内で2重に並行して実行されるように、複数のプログラムPnの全てまたは一部をPC12および複数のPLC14nにさらに割り当てる(ステップS6)。したがって、PLC14nには、I/O機器16nを介して自己に接続された制御対象18n以外の制御対象18n、つまり、I/O機器16nを介して他のPLC14nに接続された制御対象18nを制御するためのプログラムPnが割り当てられる。また、PC12にも、プログラムPnが割り当てられる場合がある。このとき、プロセッサ20は、同一のプログラムPnが同一のPLC14nで2重に実行されないように割り当てる。以下、説明を簡単にするため、I/O機器16nを介して他のPLC14nに接続された制御対象18nを制御するために、PC12およびPLC14nに割り当てられたプログラムPnを他プログラムPnと呼ぶ場合がある。
図7は、メインメモリ22に記憶された全てのプログラムPn(P1〜P5)が1実行周期内で2重に並行して実行されるように、全てのプログラムPn(P1〜P5)を、PC12および複数のPLC14nに割り当てた例を示す図である。また、図8は、複数のPLC14nの各々によるプログラムPn(図7に示す割り当てによって割り当てられた自己プログラムPnおよび他プログラムPn)の実行(処理)を示すタイムチャートである。図7に示すように、PLC141には他プログラムP4がさらに割り当てられ、PLC144には他プログラムP1がさらに割り当てられている。また、PC12には、PLC14nに割り当てることができなかった他プログラムP2、P3、P5が割り当てられている。PLC142、143、145に割り当てられている自己プログラムP2、P3、P5は、負荷(または負荷率)が高いため、さらに別の他プログラムPnが割り当てられていない。この他プログラムPnの割り当てについては後で詳しく説明する。
次いで、PC12のプロセッサ20は、図7に示すように、複数のPLC14n(141、144)に割り当てた他プログラムPn(P4、P1)を、複数のPLC14n(PLC141、PLC144)にロードさせる(ステップS7)。なお、既に割り当てた自己プログラムPnを再び複数のPLC14nにロードさせるとともに、割り当てた他プログラムPnを複数のPLC14nにロードさせてもよい。
そして、PC12および複数のPLC14n(141〜145)は、割り当てられたプログラムPn(自己プログラムPnおよび他プログラムPnを含む)を実行する(ステップS8)。このとき、図8では、PLC14n(141、144)は、自己プログラムPn(P1、P4)を実行した後、他プログラムPn(P4、P1)を実行するようにしたが、実行するプログラムPnの順番は逆であってもよい。
次に、ステップS6における他プログラムPnの割り当て処理について詳しく説明する。ここで、1実行周期内でPC12のプロセッサ20にかけることができる最大負荷をLpmaxとし、1実行周期内で各PLC14nのプロセッサ30にかけることができる最大負荷をLmaxとする。各PLC14nのプロセッサ30の処理能力は同一ものとし、PC12のプロセッサ20の処理能力は、PLC14nのプロセッサ30の処理能力よりも高いものとする。したがって、Lpmax>Lmax、となる。また、プログラムPn(P1〜P5)の実行にかかる負荷を、それぞれ、Ln(L1〜L5)とし、PC12のプロセッサ20の1実行周期にかかる固有の負荷をLpcとする。この負荷Ln(L1〜L5)は、図4のステップS4で収集した各PLC14nの負荷情報に基づく。なお、PLC14nの負荷率とは、PLC14nにかかる負荷を最大負荷Lmaxで除算した値である。例えば、プログラムP1の実行によってかかる負荷の負荷率は、L1/Lmax、となり、同様に、プログラムP2〜P5の実行によってかかる負荷の負荷率は、L2/Lmax、L3/Lmax、L4/Lmax、L5/Lmax、となる。
まず、並行して実行するプログラムPnの優先順位を考慮し、優先順位の高いプログラムPnから順に割り当てていく。本実施の形態では、優先順位は、P1→P2→P3→P4→P5、とするので、この順番でプログラムPnを他プログラムPnとして他のPLC14n(141〜145)に割り当てていく。
図9は、図4のステップS6の処理動作を示すサブフローチャートである。まず、PC12のプロセッサ20は、優先順位の最も高いプログラムを選択する(ステップS11)。本実施の形態では、優先順位は、P1→P2→P3→P4→P5、の順番となっているので、ステップS11ではプログラムP1を選択する。
次いで、プロセッサ20は、図4のステップS4で収集した各PLC14nの負荷情報を用いて、PC12および複数のPLC14n(141〜145)の各々が受け入れることができる負荷を算出する(ステップS12)。この受入れることができる負荷とは、1実行周期内でさらに処理が可能な負荷のことである。プロセッサ20は、PC12および複数のPLC14n(141〜145)の各々に現在割り当てられているプログラムPnを基に、PC12および複数のPLC14n(141〜145)の各々が受入れることができる負荷を算出する。このタイミングでは、PC12に割り当てられているプログラムPnはなく、複数のPLC14nには、自己プログラムPnしか割り当てられていない。
したがって、PC12が受け入れることができる負荷(以下、受入負荷LLpと呼ぶ。)は、LLp=Lpmax−Lpc、となる。また、PLC141が受け入れることができる負荷(以下、受入負荷LL1と呼ぶ。)は、LL1=Lmax−L1、となる。同様に、PLC142〜PLC145が受け入れることができる負荷(以下、受入負荷LL2〜LL5と呼ぶ。)は、LL2=Lmax−L2、LL3=Lmax−L3、LL4=Lmax−L4、LL5=Lmax−L5、となる。
そして、プロセッサ20は、現在選択しているプログラムP1を他プログラムP1として受け入れる余裕があるPLC14nがあるか否かを判断する(ステップS13)。本実施の形態では、LL2<L1、LL3<L1、LL4>L1、LL5<L1、となるので(図8参照)、プロセッサ20は、PLC144にプログラムP1を他プログラムP1として受入れる余裕があると判断する。
なお、プログラムP1は、PLC141に対して自己プログラムP1となってしまうので、PLC141にプログラムP1を受入れることができるか否かの判断は行わない。また、現在選択しているプログラムPnを他プログラムPnとして受け入れる余裕があるPLC14nがある場合であっても、他プログラムPnを受入れた結果、そのPLC14nの負荷率が閾値(例えば、90%)以上となってしまう場合は、そのPLC14nは、他プログラムPnとして受け入れる余裕がないと判断してもよい。
ステップS13で、PLC144にプログラムP1を受入れる余裕があると判断すると、プロセッサ20は、現在選択しているプログラムP1を他プログラムP1としてPLC144に割り当てて(ステップS14)、ステップS15に進む。
ステップS15に進むと、プロセッサ20は、まだ選択していないプログラムPnがあるか否かを判断する。ステップS15で、まだ選択していないプログラムPnがあると判断すると、次に優先順位の高いプログラムPnを新たに選択して(ステップS16)、ステップS12に戻る。これにより、選択されるプログラムPnがプログラムP1からプログラムP2に切り換わる。つまり、プログラムP1の次に優先順位の高いプログラムPnはプログラムP2なので、このタイミングでは、ステップS16で、プログラムP2が新たに選択されることになる。
ステップS12では、上述したように、PC12および複数のPLC14n(141〜145)の各々が受け入れることができる受入負荷LLp、LL1〜LL5が算出される。先のステップS14でPLC144には他プログラムP1が新たに割り当てられたので、PLC144が受け入れることができる受入負荷LL4は、LL4=Lmax−L4−L1、に変更される。なお、それ以外のPLC141〜143、145が受け入れることができる受入負荷LL1〜LL3、LL5は、前回と同じであり、PC12が受け入れることができる受入負荷LLpも前回と同じである。
次いで、ステップS13で、プロセッサ20によって、現在選択しているプログラムP2を他プログラムP2として受け入れる余裕があるPLC14nがあるか否かが判断される。本実施の形態では、LL1<L2、LL3<L2、LL4<L2、LL5<L2、となるので(図8参照)、プロセッサ20は、プログラムP2を他プログラムP2として受入れる余裕があるPLC14nはないと判断する。
ステップS13で、プログラムP2を他プログラムP2として受入れる余裕があるPLC14nがないと判断すると、プロセッサ20は、PC12に現在選択しているプログラムP2を他プログラムP2として受入れる余裕があるか否かを判断する(ステップS17)。本実施の形態では、LLp>L2、となるので(図8参照)、プロセッサ20は、PC12にプログラムP2を他プログラムP2として受入れる余裕があると判断する。
ステップS17で、PC12にプログラムP2を他プログラムP2として受入れる余裕があると判断すると、プロセッサ20は、現在選択しているプログラムP2を他プログラムP2としてPC12に割り当てて(ステップS18)、ステップS15に進む。以上のような動作を繰り返すことで、図7に示すように、複数のプログラムPn(P1〜P5)が他プログラムPn(P1〜P5)として、PC12および複数のPLC14nに割り当てられることになる。
ステップS15で、まだ選択していないプログラムPnが他にないと判断すると、処理を終了して、図4のステップS7に進む。また、ステップS17で、PC12に現在選択しているプログラムPnを他プログラムPnとして受入れる余裕がないと判断すると、そのままステップS15に進む。これにより、複数のPLC14nおよびPC12に受け入れられない他プログラムPnは、複数のPLC14nおよびPC12のいずれにも割り当てられないことになる。
なお、ステップS17で、PC12に現在選択しているプログラムPnを他プログラムPnとして受入れる余裕がないと判断すると、処理を終了して、図4のステップS7に進んでもよい。また、プログラムPnの優先順位がない場合は、予め決められた順番でまたはランダムにプログラムPnを選択して、複数のPLC14nおよびPC12のいずれかに選択したプログラムPnを他プログラムPnとして割り当ててもよい。
このように、1実行周期内で、同一のプログラムPnが並行して実行されるので、PLC14nに異常または故障が発生した場合であっても、異常または故障が発生したPLC(以下、異常PLCと呼ぶ場合がある。)14nの自己プログラムPnを他プログラムPnとして実行している他のPLC14nが、異常PLC14nにI/O機器16nを介して接続されている制御対象18nを制御することができる。例えば、図10に示すように、PLC143に異常(または故障)が発生した場合であっても、PC12は、PLC143の自己プログラムP3を他プログラムP3として実行しているので、I/O機器163を介して異常PLC143に接続された制御対象183を制御することができる。したがって、安定した状態で制御対象183の制御を継続しながら、制御対象183を制御する主体を切り換えることができる。異常が発生したPLC14nがあるか否かの判断については、後で説明する。
次に、図11および図12を用いて、PLC14nおよびPC12の構成(特に、通信部34、24の要部構成)について具体的に説明する。
図11は、PLC141の詳細構成図である。なお、各PLC14nは、互いに同一の構成を有するので、ここでは、PLC141を例に挙げて説明する。PLC141の通信部34は、プロセッサ30と通信を行うためのシステムバスI/F40、第1入力用バッファメモリ42、第2入力用バッファメモリ44、第1出力用バッファメモリ46、第2出力用バッファメモリ48、第3出力用バッファメモリ50、自己に接続されたI/O機器161と通信を行うためのMAC52、PC12および自己以外の他のPLC142と通信を行うためのMAC54、セレクタ56、および、レジスタ58を有する。
システムバスI/F40とプロセッサ30とはシステムバス60によって接続されている。MAC52は、MII(メディア・インデペンデント・インターフェース)62を介してPHYチップ64と接続されている。このPHYチップ64を介して通信部34は、自己のI/O機器161と接続されている。MAC54は、MII66を介してPHYチップ68、70に接続されている。通信部34は、PHYチップ68を介して前段に設けられたPC12の通信部24と接続され、PHYチップ70を介して後段(次段)に設けられた他のPLC142の通信部34と接続されている。なお、PLC142〜145の場合は、PHYチップ68は、PC12ではなく、PLC141〜144と接続される。また、最後段のPLC145の場合は、PHYチップ70は、いずれのPLC14nとも接続されていない。
MAC52は、PHYチップ64等を介して自己に接続されているI/O機器161から送られてきた入力データを含むフレームを受信する。この入力データは、I/O機器161に接続された制御対象181から送信されたものである。MAC52は、受信したフレームから入力データを取り出し、取り出した入力データを第1入力用バッファメモリ42に記憶する。PLC141のプロセッサ30は、システムバスI/F40およびシステムバス60を介して、第1入力用バッファメモリ42に記憶された入力データを読み出し、読み出した入力データをメインメモリ32に記憶する。
プロセッサ30は、メインメモリ32(第1入力用バッファメモリ42)に記憶された入力データに基づいて自己プログラムP1を実行して得られた出力データ(以下、第1の出力データと呼ぶ場合がある。)をメインメモリ32に記憶する。そして、プロセッサ30は、メインメモリ32に記憶した第1の出力データを、システムバス60等を介して第1出力用バッファメモリ46に記憶する。
MAC54は、PHYチップ68を介して、PLC144に接続されたI/O機器164から送られてきた入力データを含むフレームをPC12を介して受信する。このI/O機器164から送られて入力データは、自己に割り当てられた他プログラムP4(図7参照)によって制御される制御対象184から送信されたものである。MAC54は、受信したフレームから入力データを取り出し、取り出した入力データを第2入力用バッファメモリ44に記憶する。PLC141のプロセッサ30は、システムバスI/F40およびシステムバス60を介して、第2入力用バッファメモリ44に記憶された入力データを読み出し、読み出した入力データをメインメモリ32に記憶する。なお、メインメモリ32および第2入力用バッファメモリ44は、自己(PLC141)に割り当てられた他プログラムPnが複数ある場合は、他プログラムPn毎(入力データを出力したI/O機器16n毎またはPLC14n毎)に入力データを記憶する。
プロセッサ30は、メインメモリ32(第2入力用バッファメモリ44)に記憶された入力データ(制御対象184からの入力データ)に基づいて他プログラムP4を実行して得られた出力データ(以下、第2の出力データと呼ぶ場合がある。)をメインメモリ32に記憶する。そして、プロセッサ30は、メインメモリ32に記憶した第2の出力データを、システムバス60等を介して第3出力用バッファメモリ50に記憶する。なお、メインメモリ32および第3出力用バッファメモリ50は、自己に割り当てられた他プログラムPnが複数ある場合は、その他プログラムPn毎(第2の出力データの出力対象となるI/O機器16n毎またはPLC14n毎)に第2の出力データを記憶する。
MAC54は、第3出力用バッファメモリ50に記憶された第2の出力データをPLC144に送信するために、第2の出力データをフレームに書き込み、書き込んだフレームをPHYチップ68を介して、PC12に送信する。このフレームには、送信先となるPLC144のアドレス情報が付加されている。PC12は、受信したこのフレームに選択情報を書き込んでPLC144に送信する。このフレームに含まれる第2の出力データは、PLC144の第2出力用バッファメモリ48に記憶され、選択情報は、PLC144のレジスタ58に記憶される。これにより、PLC141は、I/O機器164を介してPLC144に接続された制御対象184を制御することが可能となる。
なお、選択情報は、PLC14nがI/O機器16nに出力(送信)する出力データとして、第1出力用バッファメモリ46に記憶されている第1の出力データと、第2出力用バッファメモリ48に記憶されている第2の出力データとのどちらを選択するかを示す情報である。本実施の形態では、この選択情報は1ビットのデータとする。そして、選択情報が論理値「0」の場合は、PLC14nが第1出力用バッファメモリ46に記憶されている第1の出力データをI/O機器16nに出力することを意味し、選択情報が論理値「1」の場合は、PLC14nが第2出力用バッファメモリ48に記憶されている第2の出力データをI/O機器16nに出力することを意味する。
MAC54は、自己に割り当てられた自己プログラムP1を、他プログラムP1として割り当てられたPLC144に対して(図7参照)、第1入力用バッファメモリ42に記憶された入力データを送信するために、この入力データをフレームに書き込み、書き込んだフレームをPHYチップ68を介して、PC12に送信する。このフレームには、送信先となるPLC144のアドレス情報が付加されている。PC12は、受信したこのフレームをPLC144に送信する。このフレームに含まれる入力データは、PLC144の第2入力用バッファメモリ44に記憶される。
MAC54は、PHYチップ68を介して、自己に割り当てられた自己プログラムP1を他プログラムP1として割り当てられたPLC144から送られてきた第2の出力データを含むフレームをPC12を介して受信する。このPLC144がPLC141に送信する第2の出力データは、PLC144の第3出力用バッファメモリ50に記憶されているデータである。MAC54は、受信したフレームから第2の出力データおよび選択情報を取り出し、取り出した第2の出力データを第2出力用バッファメモリ48に、取り出した選択情報をレジスタ58にそれぞれ記憶する。これにより、PLC144は、I/O機器161を介してPLC141に接続された制御対象181を制御することが可能となる。
セレクタ56は、レジスタ58に記憶された選択情報に基づいて、第1出力用バッファメモリ46に記憶されている第1の出力データおよび第2出力用バッファメモリ48に記憶されている第2の出力データの一方を選択してMAC52に送信する。セレクタ56は、選択情報が論理値「0」の場合は第1の出力データをMAC52に送信し、選択情報が論理値「1」の場合は第2の出力データをMAC52に送信する。
MAC52は、セレクタ56から送られてきた出力データをフレームに書き込んで、書き込んだフレームをI/O機器161に出力(送信)する。I/O機器161は、送られてきたフレームから出力データを取り出し、取り出した出力データを制御対象181に出力する。このように、セレクタ56およびレジスタ58によって、I/O機器161を介してPLC141に接続された制御対象181をPLC141で制御するのか、PLC144で制御するのかを切り換えることができる。
なお、MAC54は、PHYチップ68を介してフレームを受信するが、このフレームが自己宛てに送信されたものではないときは、そのまま受信したフレームをPHYチップ70を介して後段に接続されたPLC142に送信する。同様に、MAC54は、PHYチップ70を介してフレームを受信するが、このフレームが自己宛てに送信されたものではないときは、そのまま受信したフレームをPHYチップ68を介して前段に接続されたPC12に送信する。つまり、MAC54は、自己宛てに送られてきたフレームの場合のみ、入力データまたは第2の出力データをフレームから取り出す。
図12は、PC12の詳細構成図である。PC12の通信部24は、プロセッサ20と通信を行うためのシステムバスI/F80、入力用バッファメモリ82、出力用バッファメモリ84、および、PLC141と通信を行うためのMAC86を有する。
システムバスI/F80とプロセッサ20とはシステムバス88によって接続されている。MAC86は、MII90を介してPHYチップ92と接続されている。このPHYチップ92を介して通信部24は、後段に接続されたPLC141の通信部34と接続されている。
MAC86は、PHYチップ92を介して複数のPLC14n(141〜145)、つまり、複数のI/O機器16n(161〜165)から送られてきた入力データを含むフレームを受信する。この入力データは、複数のI/O機器16nを介して複数のPLC14nに接続された複数の制御対象18n(181〜185)から送信されたものである。MAC86は、少なくとも、自己宛てに送信されたフレームから入力データを取り出し、取り出した入力データを入力用バッファメモリ82に記憶する。PC12に割り当てられた他プログラムP2、P3、P5(図7参照)によって制御される制御対象182、183、185に接続されたPLC142、143、145は、送信先のアドレス情報としてPC12を指定してフレーム(入力データを含むフレーム)を送信する。PC12のプロセッサ20は、システムバスI/F80およびシステムバス88を介して、入力用バッファメモリ82に記憶された入力データを読み出し、読み出した入力データをメインメモリ22に記憶する。メインメモリ22および入力用バッファメモリ82は、入力データを送信したPLC142、143、145毎またはI/O機器16n毎(他プログラムPn毎)に入力データを記憶する。
プロセッサ20は、メインメモリ22に記憶されたPLC142、143、145毎(I/O機器162、163、165毎)の入力データに基づいて他プログラムP2、P3、P5を実行して得られ第2の出力データをメインメモリ22に記憶する。そして、プロセッサ20は、メインメモリ22に記憶した第2の出力データを、システムバス88等を介して出力用バッファメモリ84に記憶する。メインメモリ22および出力用バッファメモリ84は、他プログラムPn毎(第2の出力データの出力対象となるPLC14n毎またはI/O機器162、163、165毎)に第2の出力データを記憶する。
MAC86は、出力用バッファメモリ84に記憶された第2の出力データをフレームに書き込み、書き込んだフレームをPHYチップ92を介して、PLC142、143、145に送信する。このとき、MAC86は、プロセッサ20の制御の下、送信するフレームに選択情報も書き込む。これにより、PC12は、PLC142、143、145に接続されたI/O機器162、163、165を制御することが可能となる。なお、MAC86は、PC12を介してPLC14nから他のPLC14nに送信される第2の出力データを含むフレームに関しても、フレームに選択情報を書き込んで、送信先となる他のPLC14nに送信する。
次に、PC12による選択情報の論理値の決定処理を図13のフローチャートを用いて説明する。図13に示す処理は、1実行周期毎に行われる。なお、原則として、PC12のプロセッサ20は、各PLC14n(141〜145)に送信されるフレームに論理値「0」の選択情報を書き込むものとする。本実施の形態では、この選択情報が書き込まれるフレームは、複数のPLC14n(PLC141〜145)の各々に送信される第2の出力データを含むフレームとするが、選択情報が書き込まれるフレームは、第2の出力データを含むフレームとは別のフレームであってもよい。
まず、PC12のプロセッサ20は、通信部24および複数のPLC14n(141〜145)の通信部34を介して複数のPLC14n(141〜145)から送られてくる状態情報を収集する(ステップS21)。なお、複数のPLC14n(141〜145)の各々のプロセッサ30は、生存信号およびエラー情報等の状態情報を、図示しない専用回線を介してPC12に送信する。複数のPLC14n(141〜145)の各々のプロセッサ30は、自身が正常に動作している場合は、生存信号をPC12に送信する。この生存信号は、1実行周期毎に送信される。エラー情報としては、例えば、メインメモリ32が故障した旨のエラー情報、および、I/O機器16nを介して自己(PLC14n)に接続される制御対象18nとの接続が断線した旨のエラー情報等がある。PLC14nは、これらのエラーが発生すると、エラー情報をPC12に出力する。
プロセッサ20は、収集した複数のPLC14n(141〜145)の各々の状態情報(生存信号やエラー情報等)に基づいて、異常PLC14n(異常または故障が発生しているPLC14n)があるか否かを判断する(ステップS22)。例えば、プロセッサ20は、生存信号を出力していないPLC14nがある場合は、生存信号を出力してないそのPLC14nを異常PLC14nであると判断する。また、プロセッサ20は、エラー情報を出力しているPLC14nがある場合は、エラー情報を出力しているそのPLC14nを異常PLC14nであると判断する。
ステップS22で、異常PLC14nがないと判断するとそのまま処理を終了する。このときは、PC12は、上述した原則通り、論理値が「0」の選択情報をフレーム(第2の出力データを含むフレーム)に書き込んで複数のPLC14n(PLC141〜145)の各々に送信する。
一方、ステップS22で、異常PLC14nがあると判断すると、プロセッサ20は、異常PLC14nに割り当てられた自己プログラムPnが他プログラムPnとしてPC12または他の正常なPLC14nで並行して実行されているか否かを判断する(ステップS23)。ステップS23で、PC12または他のPLC14nによって並行して実行されていると判断するとステップS24に進む。
ステップS24に進むと、プロセッサ20は、異常PLC14nの自己プログラムを他プログラムとして実行しているPC12または他のPLC14nによって、I/O機器16nを介して異常PLC14nに接続されている制御対象18nを継続して制御することができるか否かを判断する。例えば、プロセッサ30は、異常PLC14nの状態情報として断線のエラー情報が含まれる場合は、異常PLC14nに接続されている制御対象18nを継続して制御することができないと判断する。逆に、異常PLC14nのメインメモリ32が単に故障した場合や、生存信号が送られてこないだけの場合は、プロセッサ30は、異常PLC14nに接続されている制御対象18nを継続して制御することができると判断する。
ステップS24で、異常PLC14nに接続されている制御対象18nを継続して制御することができると判断すると、プロセッサ20は、異常PLC14nに出力するフレーム(第2の出力データを含むフレーム)に、論理値「1」の選択情報を書き込んで、異常PLC14nに送信する(ステップS25)。この異常PLC14nに出力する第2の出力データは、異常PLC14nにI/O機器16nを介して接続された制御対象18nを制御するための他プログラムPnをPC12または他のPLC14nが実行することによって得られた出力データである。したがって、このフレームに論理値「1」の選択情報を付加することで、I/O機器16nを介して異常PLC14nに接続された制御対象18nに第2の出力データを出力することができる。これにより、異常PLC14nに接続された制御対象18nを異常PLC14n以外の他の正常なPLC14nが制御することができる。これにより、制御対象18nを制御する制御主体を切り換えた場合であっても、これまでの実行結果と矛盾が生じない出力データを、異常PLC14nに接続されたI/O機器16nに出力することができる。したがって、安定した状態で制御対象18nの制御を続けながら、制御対象18nの制御主体を切り換えることができる。
例えば、図10に示すような状態の場合は、ステップS22で、PLC143が異常と判断され、ステップS23で、他プログラムP3がPC12で並行して実行されていると判断される。そして、ステップS24で、制御対象183を継続して制御できると判断されると、ステップS25で、PC12は、論理値が「1」の選択情報をフレームに書き込んで、異常PLC143に送信する。このようにして、異常PLC14nが発生した場合であっても、PC12または他の正常なPLC14nが異常PLC14nに接続された制御対象18nを継続して制御することができる。なお、異常PLC14n以外の他の正常なPLC14nに対しては、上述した原則通り、論理値が「0」の選択情報が書き込まれたフレームがPC12から送信される。
一方、ステップS23で、異常PLC14nに割り当てられた自己プログラムPnが他プログラムPnとしてPC12または他の正常なPLC14nで並行して実行されていないと判断した場合、または、ステップS24で、異常PLC14nに接続されている制御対象18nを継続して制御することができないと判断すると、ステップS26で、プロセッサ20は、図示しない表示部(例えば、液晶ディスプレイ)にその旨を表示する。つまり、エラー表示を行う。また、プロセッサ20は、図示しないスピーカから警告音を出力してもよい。
次に、図14に示すタイムチャートを用いて、正常なPLC14nと、PC12および正常なPLC14nに接続されたI/O機器16nとの間におけるデータの授受ための処理を説明する。そして、その後に、図15に示すタイムチャートを用いて、異常PLC14nと、PC12および異常PLC14nに接続されたI/O機器16nとの間におけるデータの授受のための処理を説明する。図14および図15においては、説明をわかり易くするため、正常なPLC14nおよび異常PLC14nをともにPLC142とする。したがって、PLC142に接続されているI/O機器16nはI/O機器162となる。また、PC12は、PLC142に送信する第2の出力データを含むフレームに選択情報を書き込むものとする。
なお、図14および図15においてはプログラムP2の実行に関してのみ説明する。つまり、プログラムP2は、PLC142にとっては自己プログラムP2となり、PC12にとっては他プログラムP2となる(図7参照)。また、PC12およびPLC142は、プログラムP2の実行が完了して全ての出力データが確定した段階で通信を開始するものとする。PC12およびPLC142は、入力データをI/O機器162から全て受信してから次の実行周期におけるプログラムP2の実行を開始するものとする。PLC142とI/O機器162との通信が終了した後に、PC12とPLC142との通信が行なわれる。この場合は、PC12とPLC142とに、同一時刻を示す図示しないクロック等を設けることで、PC12とPLC142との間で同期をとることができる。
<正常なPLC142とI/O機器162との通信(図14参照)>
PLC142のプロセッサ30は、1実行周期の自己プログラムP2の実行が完了した後、自己プログラムP2の実行によって生成された第1の出力データをメインメモリ32に記憶する。そして、PLC142のプロセッサ30は、メインメモリ32に記憶した第1の出力データを通信部34の第1出力用バッファメモリ46に記憶する。これにより、メインメモリ32および第1出力用バッファメモリ46に記憶されている第1の出力データが更新される。なお、この自己プログラムP2の実行は、第1入力用バッファメモリ42に現在記憶されている入力データに基づいて行われる。
PLC142のプロセッサ30は、1実行周期の自己プログラムP2の実行が完了した後、自己プログラムP2の実行によって生成された第1の出力データをメインメモリ32に記憶する。そして、PLC142のプロセッサ30は、メインメモリ32に記憶した第1の出力データを通信部34の第1出力用バッファメモリ46に記憶する。これにより、メインメモリ32および第1出力用バッファメモリ46に記憶されている第1の出力データが更新される。なお、この自己プログラムP2の実行は、第1入力用バッファメモリ42に現在記憶されている入力データに基づいて行われる。
その後、PLC142の通信部34は、第1出力用バッファメモリ46に記憶されている第1の出力データをフレームに書き込んでI/O機器162に送信する(レジスタ58に記憶されている論理値は「0」)。これにより、第1の出力データが、I/O機器162を介して制御対象182に出力される。また、PLC142の通信部34は、I/O機器162(制御対象182)から送信された入力データを含むフレームを受信し、受信したフレームから入力データを取り出して、第1入力用バッファメモリ42に記憶する。その後、PLC142のプロセッサ30は、第1入力用バッファメモリ42に記憶した入力データをメインメモリ32に記憶する。これにより、第1入力用バッファメモリ42およびメインメモリ32に記憶されている入力データ(I/O機器162が送信した入力データ)が更新される。PLC142のプロセッサ30は、次の実行周期が到来するタイミングで自己プログラムP2の実行を開始する。
<PC12と正常なPLC142との通信(図14参照)>
PC12のプロセッサ20は、1実行周期の他プログラムP2の実行が完了した後、他プログラムP2の実行によって生成された第2の出力データをメインメモリ22に記憶する。そして、PC12のプロセッサ20は、メインメモリ22に記憶した第2の出力データを通信部24の出力用バッファメモリ84に記憶する。これにより、メインメモリ22および出力用バッファメモリ84に記憶されている第2の出力データ(I/O機器162に出力する第2の出力データ)が更新される。なお、他プログラムP2の実行は、入力用バッファメモリ82に現在記憶されている入力データ(I/O機器162が送信した入力データ)に基づいて行われる。
PC12のプロセッサ20は、1実行周期の他プログラムP2の実行が完了した後、他プログラムP2の実行によって生成された第2の出力データをメインメモリ22に記憶する。そして、PC12のプロセッサ20は、メインメモリ22に記憶した第2の出力データを通信部24の出力用バッファメモリ84に記憶する。これにより、メインメモリ22および出力用バッファメモリ84に記憶されている第2の出力データ(I/O機器162に出力する第2の出力データ)が更新される。なお、他プログラムP2の実行は、入力用バッファメモリ82に現在記憶されている入力データ(I/O機器162が送信した入力データ)に基づいて行われる。
その後、PC12の通信部24は、出力用バッファメモリ84に記憶されている第2の出力データをフレームに書き込んでPLC142に送信する。このときは、PC12は、PLC142に送信する第2の出力データを含むフレームに、論理値が「0」の選択情報も書き込んで送信する。PLC142の通信部34は、PC12から送られてきたフレームから第2の出力データ(I/O機器162に出力する第2の出力データ)を取り出し、取り出した第2の出力データを第2出力用バッファメモリ48に記憶する。これにより、第2出力用バッファメモリ48に記憶されている第2の出力データ(I/O機器162に出力する第2の出力データ)が更新される。また、PLC142の通信部34は、PC12から送られてきたフレームから選択情報を取り出し、取り出した選択情報の論理値「0」をレジスタ58に記憶する。これにより、PLC142のセレクタ56は、I/O機器162に送信する出力データとして、第1出力用バッファメモリ46に記憶されている第1の出力データを選択する。
また、PLC142の通信部34は、第1入力用バッファメモリ42に記憶されている入力データをフレームに書き込んでPC12に送信する。PC12の通信部24は、PLC142から送られてきた入力データ(I/O機器162が送信した入力データ)を含むフレームを受信し、受信したフレームから入力データを取り出して、入力用バッファメモリ82に記憶する。PC12のプロセッサ20は、入力用バッファメモリ82に記憶した入力データをメインメモリ22に記憶する。これにより、入力用バッファメモリ82およびメインメモリ22に記憶されている入力データ(I/O機器162が送信した入力データ)が更新される。PC12のプロセッサ20は、次の実行周期が到来するタイミングで他プログラムP2の実行を開始する。
<異常PLC142とI/O機器162との通信(図15参照)>
異常PLC142のプロセッサ30は、エラーを検出すると、エラー情報を生成し、前記した専用回線を介して生成したエラー情報をPC12に送信する。このときは、異常PLC142のプロセッサ30は、自己プログラムP2の実行を行わないことから、第1出力用バッファメモリ46に記憶されている第1の出力データの更新は行われない。
異常PLC142のプロセッサ30は、エラーを検出すると、エラー情報を生成し、前記した専用回線を介して生成したエラー情報をPC12に送信する。このときは、異常PLC142のプロセッサ30は、自己プログラムP2の実行を行わないことから、第1出力用バッファメモリ46に記憶されている第1の出力データの更新は行われない。
異常PLC142の通信部34は、第1出力用バッファメモリ46に記憶されている第1の出力データをフレームに書き込んでI/O機器162に送信する(このときのレジスタ58に記憶されている論理値は「0」)。このときは、第1出力用バッファメモリ46に記憶されている第1の出力データの更新が行なわれていないので、前回送信した第1の出力データが再びI/O機器162に送信される。異常PLC142の通信部34は、I/O機器162から送信された入力データを含むフレームを受信し、受信したフレームから入力データを取り出して、第1入力用バッファメモリ42に記憶する。その後、異常PLC142のプロセッサ30は、第1入力用バッファメモリ42に記憶した入力データをメインメモリ32に記憶する。これにより、第1入力用バッファメモリ42およびメインメモリ32に記憶されている入力データ(I/O機器162が送信した入力データ)が更新される。
<PC12と異常PLC142との通信(図15参照)>
PC12のプロセッサ20は、1実行周期の他プログラムP2の実行が完了した後、他プログラムP2の実行によって生成された第2の出力データをメインメモリ22に記憶する。そして、PC12のプロセッサ20は、メインメモリ22に記憶した第2の出力データを通信部24の出力用バッファメモリ84に記憶する。これにより、メインメモリ22および出力用バッファメモリ84に記憶されている第2の出力データ(I/O機器162に出力する第2の出力データ)が更新される。なお、他プログラムP2の実行は、入力用バッファメモリ82に現在記憶されている入力データ(I/O機器162が送信した入力データ)に基づいて行われる。
PC12のプロセッサ20は、1実行周期の他プログラムP2の実行が完了した後、他プログラムP2の実行によって生成された第2の出力データをメインメモリ22に記憶する。そして、PC12のプロセッサ20は、メインメモリ22に記憶した第2の出力データを通信部24の出力用バッファメモリ84に記憶する。これにより、メインメモリ22および出力用バッファメモリ84に記憶されている第2の出力データ(I/O機器162に出力する第2の出力データ)が更新される。なお、他プログラムP2の実行は、入力用バッファメモリ82に現在記憶されている入力データ(I/O機器162が送信した入力データ)に基づいて行われる。
その後、PC12の通信部24は、出力用バッファメモリ84に記憶されている第2の出力データをフレームに書き込んで異常PLC142に送信する。このときは、PC12は、異常PLC142に送信する第2の出力データを含むフレームに、論理値が「1」の選択情報も書き込んで送信する。異常PLC142の通信部34は、PC12から送られてきたフレームから第2の出力データ(I/O機器162に出力する第2の出力データ)を取り出し、取り出した第2の出力データを第2出力用バッファメモリ48に記憶する。これにより、第2出力用バッファメモリ48に記憶されている第2の出力データ(I/O機器162に出力する第2の出力データ)が更新される。また、異常PLC142の通信部34は、PC12から送られてきたフレームから選択情報を取り出し、取り出した選択情報の論理値「1」をレジスタ58に記憶する。これにより、異常PLC142のセレクタ56は、I/O機器162に送信する出力データとして、第2出力用バッファメモリ48に記憶されている第2の出力データを選択する。したがって、次にPLC142とI/O機器162とが通信を行うときに、第2出力用バッファメモリ48に記憶されている第2の出力データがI/O機器162に出力される。これにより、I/O機器162を制御する制御主体を、異常PLC142からPC12に切り換えることができる。
また、異常PLC142の通信部34は、第1入力用バッファメモリ42に記憶されている入力データをフレームに書き込んでPC12に送信する。PC12の通信部24は、異常PLC142から送られてきた入力データ(I/O機器162が送信した入力データ)を含むフレームを受信し、受信したフレームから入力データを取り出して、入力用バッファメモリ82に記憶する。PC12のプロセッサ20は、入力用バッファメモリ82に記憶した入力データをメインメモリ22に記憶する。これにより、入力用バッファメモリ82およびメインメモリ22に記憶されている入力データ(I/O機器162が送信した入力データ)が更新される。PC12のプロセッサ20は、次の実行周期が到来する他プログラムP2の実行を開始する。
このように、PLC142に異常が発生するとI/O機器162を制御する制御主体が異常PLC142からPC12に切り換わるが、I/O機器162からの入力データに対する出力データの応答(更新)が正常時に比べ1実行周期だけ遅れることになる。これを回避するために、異常PLC142の第2出力用バッファメモリ48の更新が行なわれてから現在の1実行周期内でもう一度異常PLC142とI/O機器162の間の通信を再び実行すればよい。
なお、図14および図15では、PLC14nと、PLC14nの自己プログラムPnを他プログラムPnとして割り当てられたPC12との間におけるデータの授受を例に挙げて説明したが、PLC14nと、PLC14nの自己プログラムPnを他プログラムPnとして割り当てられた他のPLC14nとの間におけるデータの授受の場合も同様にして行うことができる。以下、図14および図15を参照して、PLC141とPLC144との間におけるデータの授受のための処理を簡単に説明する。なお、図14および図15のPLC142、PC12を、PLC141、PLC144に置き換えるものとし、プログラムP1の実行に関してのみ説明する。
<正常なPLC141とI/O機器161との通信(図14参照)>
PLC141のプロセッサ30は、1実行周期の自己プログラムP1(図7参照)の実行が完了した後、自己プログラムP1の実行によって生成された第1の出力データをメインメモリ32に記憶する。そして、PLC141のプロセッサ30は、メインメモリ32に記憶した第1の出力データを通信部34の第1出力用バッファメモリ46に記憶する。これにより、メインメモリ32および第1出力用バッファメモリ46に記憶されている第1の出力データが更新される。なお、この自己プログラムP1の実行は、第1入力用バッファメモリ42に現在記憶されている入力データに基づいて行われる。
PLC141のプロセッサ30は、1実行周期の自己プログラムP1(図7参照)の実行が完了した後、自己プログラムP1の実行によって生成された第1の出力データをメインメモリ32に記憶する。そして、PLC141のプロセッサ30は、メインメモリ32に記憶した第1の出力データを通信部34の第1出力用バッファメモリ46に記憶する。これにより、メインメモリ32および第1出力用バッファメモリ46に記憶されている第1の出力データが更新される。なお、この自己プログラムP1の実行は、第1入力用バッファメモリ42に現在記憶されている入力データに基づいて行われる。
その後、PLC141の通信部34は、第1出力用バッファメモリ46に記憶されている第1の出力データをフレームに書き込んでI/O機器161に送信する(レジスタ58に記憶されている論理値は「0」)。これにより、第1の出力データが、I/O機器161を介して制御対象181に出力される。また、PLC141の通信部34は、I/O機器161(制御対象181)から送信された入力データを含むフレームを受信し、受信したフレームから入力データを取り出して、第1入力用バッファメモリ42に記憶する。その後、PLC141のプロセッサ30は、第1入力用バッファメモリ42に記憶した入力データをメインメモリ32に記憶する。これにより、第1入力用バッファメモリ42およびメインメモリ32に記憶されている入力データ(I/O機器161が送信した入力データ)が更新される。PLC141のプロセッサ30は、次の実行周期が到来するタイミングで自己プログラムP1の実行を開始する。
<正常なPLC141と正常なPLC144との通信(図14参照)>
PLC144のプロセッサ30は、1実行周期の他プログラムP1(図7参照)の実行が完了した後、他プログラムP1の実行によって生成された第2の出力データをメインメモリ32に記憶する。そして、PLC144のプロセッサ30は、メインメモリ32に記憶した第2の出力データを通信部34の第3出力用バッファメモリ50に記憶する。これにより、メインメモリ32および第3出力用バッファメモリ50に記憶されている第2の出力データ(I/O機器161に出力する第2の出力データ)が更新される。なお、他プログラムP1の実行は、第2入力用バッファメモリ44に現在記憶されている入力データ(I/O機器161が送信した入力データ)に基づいて行われる。
PLC144のプロセッサ30は、1実行周期の他プログラムP1(図7参照)の実行が完了した後、他プログラムP1の実行によって生成された第2の出力データをメインメモリ32に記憶する。そして、PLC144のプロセッサ30は、メインメモリ32に記憶した第2の出力データを通信部34の第3出力用バッファメモリ50に記憶する。これにより、メインメモリ32および第3出力用バッファメモリ50に記憶されている第2の出力データ(I/O機器161に出力する第2の出力データ)が更新される。なお、他プログラムP1の実行は、第2入力用バッファメモリ44に現在記憶されている入力データ(I/O機器161が送信した入力データ)に基づいて行われる。
その後、PLC144の通信部34は、第3出力用バッファメモリ50に記憶されている第2の出力データをフレームに書き込んで、PC12を介してPLC141に送信する。このときは、PC12は、PLC141に送信する第2の出力データを含むフレームに、論理値が「0」の選択情報も書き込む。PLC141の通信部34は、PLC144から送られてきたフレームから第2の出力データ(I/O機器161に出力する第2の出力データ)を取り出し、取り出した第2の出力データを第2出力用バッファメモリ48に記憶する。これにより、第2出力用バッファメモリ48に記憶されている第2の出力データ(I/O機器161に出力する第2の出力データ)が更新される。また、PLC141の通信部34は、PC12を介してPLC144から送られてきたフレームから選択情報を取り出し、取り出した選択情報の論理値「0」をレジスタ58に記憶する。これにより、PLC141のセレクタ56は、I/O機器161に送信する出力データとして、第1出力用バッファメモリ46に記憶されている第1の出力データを選択する。
また、PLC141の通信部34は、第1入力用バッファメモリ42に記憶されている入力データをフレームに書き込んで、PC12を介してPLC144に送信する。PLC144の通信部34は、PC12を介してPLC141から送られてきた入力データ(I/O機器161が送信した入力データ)を含むフレームを受信し、受信したフレームから入力データを取り出して、第2入力用バッファメモリ44に記憶する。PLC144のプロセッサ30は、第2入力用バッファメモリ44に記憶した入力データをメインメモリ32に記憶する。これにより、第2入力用バッファメモリ44およびメインメモリ32に記憶されている入力データ(I/O機器161が送信した入力データ)が更新される。メインメモリ32のプロセッサ30は、次の実行周期が到来するタイミングで他プログラムP1の実行を開始する。
<異常PLC141とI/O機器161との通信(図15参照)>
異常PLC141のプロセッサ30は、エラーを検出すると、エラー情報を生成し、前記した専用回線を介して生成したエラー情報をPC12に送信する。このときは、異常PLC141のプロセッサ30は、自己プログラムP1の実行を行わないことから、第1出力用バッファメモリ46に記憶されている第1の出力データの更新は行われない。
異常PLC141のプロセッサ30は、エラーを検出すると、エラー情報を生成し、前記した専用回線を介して生成したエラー情報をPC12に送信する。このときは、異常PLC141のプロセッサ30は、自己プログラムP1の実行を行わないことから、第1出力用バッファメモリ46に記憶されている第1の出力データの更新は行われない。
異常PLC141の通信部34は、第1出力用バッファメモリ46に記憶されている第1の出力データをフレームに書き込んでI/O機器161に送信する(このときのレジスタ58に記憶されている論理値は「0」)。このときは、第1出力用バッファメモリ46に記憶されている第1の出力データの更新が行なわれていないので、前回送信した第1の出力データが再びI/O機器161に送信される。異常PLC141の通信部34は、I/O機器161から送信された入力データを含むフレームを受信し、受信したフレームから入力データを取り出して、第1入力用バッファメモリ42に記憶する。その後、異常PLC141のプロセッサ30は、第1入力用バッファメモリ42に記憶した入力データをメインメモリ32に記憶する。これにより、第1入力用バッファメモリ42およびメインメモリ32に記憶されている入力データ(I/O機器161が送信した入力データ)が更新される。
<異常PLC141と正常なPLC144との通信(図15参照)>
PLC144のプロセッサ30は、1実行周期の他プログラムP1の実行が完了した後、他プログラムP1の実行によって生成された第2の出力データをメインメモリ32に記憶する。そして、PLC144のプロセッサ30は、メインメモリ32に記憶した第2の出力データを通信部34の第3出力用バッファメモリ50に記憶する。これにより、メインメモリ32および第3出力用バッファメモリ50に記憶されている第2の出力データ(I/O機器161に出力する第2の出力データ)が更新される。なお、他プログラムP1の実行は、第2入力用バッファメモリ44に現在記憶されている入力データ(I/O機器161が送信した入力データ)に基づいて行われる。
PLC144のプロセッサ30は、1実行周期の他プログラムP1の実行が完了した後、他プログラムP1の実行によって生成された第2の出力データをメインメモリ32に記憶する。そして、PLC144のプロセッサ30は、メインメモリ32に記憶した第2の出力データを通信部34の第3出力用バッファメモリ50に記憶する。これにより、メインメモリ32および第3出力用バッファメモリ50に記憶されている第2の出力データ(I/O機器161に出力する第2の出力データ)が更新される。なお、他プログラムP1の実行は、第2入力用バッファメモリ44に現在記憶されている入力データ(I/O機器161が送信した入力データ)に基づいて行われる。
その後、PLC144の通信部34は、第3出力用バッファメモリ50に記憶されている第2の出力データをフレームに書き込んで、PC12を介して異常PLC141に送信する。このときは、PC12は、異常PLC141に送信する第2の出力データを含むフレームに、論理値が「1」の選択情報も書き込んで送信する。異常PLC141の通信部34は、PC12を介してPLC144から送られてきたフレームから第2の出力データ(I/O機器161に出力する第2の出力データ)を取り出し、取り出した第2の出力データを第2出力用バッファメモリ48に記憶する。これにより、第2出力用バッファメモリ48に記憶されている第2の出力データ(I/O機器161に出力する第2の出力データ)が更新される。また、異常PLC141の通信部34は、PC12を介してPLC144から送られてきたフレームから選択情報を取り出し、取り出した選択情報の論理値「1」をレジスタ58に記憶する。これにより、異常PLC141のセレクタ56は、I/O機器161に送信する出力データとして、第2出力用バッファメモリ48に記憶されている第2の出力データを選択する。したがって、次にPLC141とI/O機器161とが通信を行うときに、第2出力用バッファメモリ48に記憶されている第2の出力データがI/O機器161に出力される。これにより、I/O機器161を制御する制御主体を異常PLC141からPLC144に切り換えることができる。
また、異常PLC141の通信部34は、第1入力用バッファメモリ42に記憶されている入力データをフレームに書き込んで、PC12を介してPLC144に送信する。PLC144の通信部34は、PC12を介して異常PLC141から送られてきた入力データ(I/O機器161が送信した入力データ)を含むフレームを受信し、受信したフレームから入力データを取り出して、第2入力用バッファメモリ44に記憶する。PLC144のプロセッサ30は、第2入力用バッファメモリ44に記憶した入力データをメインメモリ32に記憶する。これにより、第2入力用バッファメモリ44およびメインメモリ32に記憶されている入力データ(I/O機器161が送信した入力データ)が更新される。PLC144のプロセッサ30は、次の実行周期が到来する他プログラムP2の実行を開始する。
このように、PLC141に異常が発生するとI/O機器161を制御する制御主体が異常PLC141からPLC144に切り換わるが、I/O機器161からの入力データに対する出力データの応答(更新)が正常時に比べ1実行周期だけ遅れることになる。これを回避するために、第2出力用バッファメモリ48の更新が行なわれてから現在の1実行周期内でもう一度異常PLC141とI/O機器161との間の通信を再び実行すればよい。
なお、第1入力用バッファメモリ42および第2入力用バッファメモリ44を、1つの記憶媒体で構成してもよい。この場合は、1つの記憶媒体の記憶領域を少なくとも2つに区分けし、一方の記憶領域を第1入力用バッファメモリ42として機能させ、他方を第2入力用バッファメモリ44として機能させればよい。また、第1出力用バッファメモリ46、第2出力用バッファメモリ48、および、第3出力用バッファメモリ50も同様に、1つの記憶媒体で構成してもよい。この場合も、1つの記憶媒体の記憶領域を少なくとも3つに区分けし、区分けされた3つの記憶領域のそれぞれを、第1出力用バッファメモリ46、第2出力用バッファメモリ48、第3出力用バッファメモリ50として機能させればよい。さらに、第1入力用バッファメモリ42、第2入力用バッファメモリ44、第1出力用バッファメモリ46、第2出力用バッファメモリ48、および、第3出力用バッファメモリ50を1つの記憶媒体で構成してもよい。
異常PLC14nが発生した場合に、I/O機器16nを介して異常PLC14nに接続されている制御対象18nを制御する制御主体を切り換えるようにしたが、異常PLC14nが発生していない場合であっても、制御主体を切り換えるようにしてもよい。つまり、I/O機器16nを介して正常なPLC14nに接続されている制御対象18nをPC12または他の正常なPLC14nが制御するように、制御主体を切り換えてもよい。
上記実施の形態で説明したPLCシステム(コントローラシステム)10は、複数のPLC(コントローラ)14nと、複数のPLC14nの各々の制御対象18nと複数のPLC14nの各々とを接続し、制御対象18nとPLC14nとの間で必要な情報を伝送する複数のI/O機器16nと、複数のPLC14nを制御して管理するPC(上位制御装置)12とを備える。PC12は、メインメモリ(記憶部)22とプロセッサ20とを有する。メインメモリ22は、複数のPLC14nの各々が実行する複数のプログラムPnを記憶している。プロセッサ20は、複数のPLC14nの各々がI/O機器16nを介して自己に接続された制御対象18nを制御するように、メインメモリ22に記憶された複数のプログラムPnを自己プログラムPnとして複数のPLC14nに割り当てる。また、プロセッサ20は、メインメモリ22に記憶された複数のプログラムPnの全てまたは一部が、1つの実行周期内で2重に並行して実行されるように、複数のプログラムPnの全てまたは一部を他プログラムPnとしてPC12および複数のPLC14nにさらに割り当てる。複数のPLC14nの各々は、第1入力用バッファメモリ42、第1出力用バッファメモリ46、および、第2出力用バッファメモリ48を有する。第1入力用バッファメモリ42は、I/O機器16nを介して自己に接続された制御対象18nから送信された入力データを記憶する。第1出力用バッファメモリ46は、I/O機器16nを介して自己に接続された制御対象18nを制御するために自己に割り当てられた自己プログラPnを実行して得られた第1の出力データを記憶する。第2出力用バッファメモリ48は、I/O機器16nを介して自己に接続された制御対象18nを制御するためにPC12または他のPLC14nに割り当てられた他プログラムPnを、PC12または他のPLC14nが実行することで得られた第2の出力データを記憶する。複数のPLC14nの各々は、PC12から送信された選択情報に基づいて、第1出力用バッファメモリ46に記憶されている第1の出力データおよび第2出力用バッファメモリ48に記憶されている第2の出力データの一方を、I/O機器16nを介して自己に接続された制御対象18nに出力する。これにより、制御対象18nを制御する制御主体を切り換えた場合であっても、これまでの実行結果と矛盾が生じない出力データを、その制御対象18nに接続されたI/O機器16nに出力することができる。したがって、安定した状態で制御対象18nの制御を続けながら、制御対象18nの制御主体を切り換えることができる。
複数のPLC14nの各々は、プロセッサ30をさらに有する。プロセッサ30は、I/O機器16nを介して自己に接続された制御対象18nから送信された入力データに基づいて、自己に割り当てられた自己プログラムPnを実行することで第1の出力データを生成する。また、複数のPLC14nの各々は、I/O機器16nを介して他のPLC14nに接続された制御対象18nであって、自己に割り当てられた他プログラムPnによって制御される制御対象18nから送信された入力データに基づいて、自己に割り当てられた他プログラムPnを実行することで第2の出力データを生成する。このように、PLC14nは、制御対象18nが送信した入力データに基づいてプログラムPn(自己プログラムPnまたは他プログラムPn)を実行して、入力データを送信した制御対象18nに出力する出力データを生成するので、安定した状態で制御対象18nを制御することができる。
PC12のプロセッサ20は、自己に割り当てられた他プログラムPnによって制御される制御対象18nから送信された入力データに基づいて、自己に割り当てられた他プログラムPnを実行することで第2の出力データを生成する。このように、PC12は、制御対象18nが送信した入力データに基づいて他プログラムPnを実行して、入力データを送信した制御対象18nに出力する出力データを生成するので、安定した状態で制御対象18nを制御することができる。
PC12のプロセッサ20は、正常と判断したPLC14nが、第1出力用バッファメモリ46に記憶された第1の出力データをI/O機器16nを介して自己に接続された制御対象18nに出力し、異常と判断されたPLC14nが、第2出力用バッファメモリ48に記憶された第2の出力データをI/O機器16nを介して自己に接続された制御対象18nに出力するように、選択情報を複数のPLC14nに出力する。これにより、PLC14nに異常が発生した場合であっても、異常PLC14nに代わって他の正常なPLC14nが、I/O機器16nを介して異常PLC14nに接続された制御対象18nを制御することができる。したがって、安定した状態でI/O機器16nを介して異常PLC14nに接続された制御対象18nの制御を続けながら、異常PLC14nに接続された制御対象18nの制御主体を切り換えることができる。
PC12のプロセッサ20は、複数のPLC14nから取得した複数のPLC14nの各々のエラー情報および生存信号の少なくとも一方に基づいて、複数のPLC14nの各々が正常か異常かを判断する。これにより、PC12は、PLC14nが正常か異常かを精度よく判断することができる。
PLC14nの通信部34は、選択情報に基づいて、I/O機器16nを介して自己に接続されている制御対象18nに出力する出力データとして、第1出力用バッファメモリ46に記憶されている第1の出力データおよび第2出力用バッファメモリ48に記憶されている第2の出力データの一方を選択するセレクタ56をさらに有する。これにより、容易に、I/O機器16nに出力する出力データを切り換えることができる。
PC12のプロセッサ20は、複数のPLC14nの通信部34を介して、複数のPLC14nの各々が自己プログラムPnを実行する際の負荷を示す負荷情報を取得し、取得した負荷情報に基づいて他プログラムPnを割り当てる。これにより、複数のPLC14nの各々によるプログラムPnの処理が1実行周期内で収まるように、他プログラムPnを割り当てることができる。
PC12は、自己に割り当てられた他プログラムPnによって制御される制御対象18nにI/O機器16nを介して接続されたPLC14nの第1入力用バッファメモリ42に記憶された入力データを受信し、自己に割り当てられた他プログラムPnによって制御される制御対象18nにI/O機器16nを介して接続されたPLC14nに第2の出力データを送信する。これにより、PC12は、これまでの実行結果と矛盾が生じない第2の出力データをPLC14nに送信することができ、I/O機器16nを介してPLC14nに接続された制御対象18nを制御することができる。
複数のPLC14nの各々は、第2入力用バッファメモリ44と第3出力用バッファメモリ50とをさらに有する。第2入力用バッファメモリ44は、他のPLC14nにI/O機器16nを介して接続された制御対象18nであって、自己に割り当てられた他プログラムPnによって制御される制御対象18nから送信された入力データを記憶する。第3出力用バッファメモリ50は、他のPLC14nにI/O機器16nを介して接続された制御対象18nを制御するために自己に割り当てられた他プログラムPnを実行して得られた第2の出力データを記憶する。複数のPLC14nの各々は、自己に割り当てられた他プログラムPnによって制御される制御対象18nにI/O機器16nを介して接続された他のPLC14nの第1入力用バッファメモリ42に記憶された入力データをPC12を介して受信し、受信した入力データを第2入力用バッファメモリ44に記憶する。また、複数のPLC14nの各々は、自己に割り当てられた他プログラムPnによって制御される制御対象18nにI/O機器16nを介して接続された他のPLC14nに、PC12を介して第3出力用バッファメモリ50に記憶された第2の出力データを送信する。これにより、PLC14nは、これまでの実行結果と矛盾が生じない第2の出力データを他のPLC14nに送信することができ、I/O機器16nを介して他のPLC14nに接続された制御対象18nを制御することができる。
10…PLCシステム 12…PC
14n(141〜145)…PLC 16n(161〜165)…I/O機器
20、30…プロセッサ 22、32…メインメモリ
24、34…通信部 40、80…システムバスI/F
42…第1入力用バッファメモリ 44…第2入力用バッファメモリ
46…第1出力用バッファメモリ 48…第2出力用バッファメモリ
50…第3出力用バッファメモリ 52、54、86…MAC
56…セレクタ 58…レジスタ
60、88…システムバス 62、66、90…MII
64、68、70、92…PHYチップ 82…入力用バッファメモリ
84…出力用バッファメモリ
14n(141〜145)…PLC 16n(161〜165)…I/O機器
20、30…プロセッサ 22、32…メインメモリ
24、34…通信部 40、80…システムバスI/F
42…第1入力用バッファメモリ 44…第2入力用バッファメモリ
46…第1出力用バッファメモリ 48…第2出力用バッファメモリ
50…第3出力用バッファメモリ 52、54、86…MAC
56…セレクタ 58…レジスタ
60、88…システムバス 62、66、90…MII
64、68、70、92…PHYチップ 82…入力用バッファメモリ
84…出力用バッファメモリ
Claims (15)
- 複数のコントローラと、前記複数のコントローラの各々の制御対象と前記複数のコントローラの各々とを接続し、前記制御対象と前記コントローラとの間で必要な情報を伝送する複数のI/O機器と、前記複数のコントローラを制御して管理する上位制御装置とを備えるコントローラシステムであって、
前記上位制御装置は、
前記複数のコントローラの各々が実行する複数のプログラムを記憶した記憶部と、
前記複数のコントローラの各々が前記I/O機器を介して自己に接続された前記制御対象を制御するように、前記記憶部に記憶された前記複数のプログラムを自己プログラムとして前記複数のコントローラに割り当てるとともに、前記記憶部に記憶された前記複数のプログラムの全てまたは一部が、1つの実行周期内で2重に並行して実行されるように、前記複数のプログラムの全てまたは一部を他プログラムとして前記上位制御装置および前記複数のコントローラにさらに割り当てるプロセッサと、
を有し、
前記複数のコントローラの各々は、
前記I/O機器を介して自己に接続された前記制御対象から送信された入力データを記憶する第1入力用バッファメモリと、
前記I/O機器を介して自己に接続された前記制御対象を制御するために自己に割り当てられた前記自己プログラムを実行して得られた第1の出力データを記憶する第1出力用バッファメモリと、
前記I/O機器を介して自己に接続された前記制御対象を制御するために前記上位制御装置または他の前記コントローラに割り当てられた前記他プログラムを、前記上位制御装置または他の前記コントローラが実行することで得られた第2の出力データを記憶する第2出力用バッファメモリと、
を有する通信部を有し、
前記上位制御装置から送信された選択情報に基づいて、前記第1出力用バッファメモリに記憶されている前記第1の出力データおよび前記第2出力用バッファメモリに記憶されている前記第2の出力データの一方を、前記I/O機器を介して自己に接続された前記制御対象に出力する
ことを特徴とするコントローラシステム。 - 請求項1に記載のコントローラシステムであって、
前記複数のコントローラの各々は、前記I/O機器を介して自己に接続された前記制御対象から送信された前記入力データに基づいて、自己に割り当てられた前記自己プログラムを実行することで前記第1の出力データを生成し、前記I/O機器を介して他の前記コントローラに接続された前記制御対象であって、自己に割り当てられた前記他プログラムによって制御される前記制御対象から送信された前記入力データに基づいて、自己に割り当てられた前記他プログラムを実行することで前記第2の出力データを生成するプロセッサをさらに有する
ことを特徴とするコントローラシステム。 - 請求項1または2に記載のコントローラシステムであって、
前記上位制御装置の前記プロセッサは、自己に割り当てられた前記他プログラムによって制御される前記制御対象から送信された前記入力データに基づいて、自己に割り当てられた前記他プログラムを実行することで前記第2の出力データを生成する
ことを特徴とするコントローラシステム。 - 請求項1〜3のいずれか1項に記載のコントローラシステムであって、
前記上位制御装置の前記プロセッサは、正常と判断した前記コントローラが、前記第1出力用バッファメモリに記憶された前記第1の出力データを前記I/O機器を介して自己に接続された前記制御対象に出力し、異常と判断された前記コントローラが、前記第2出力用バッファメモリに記憶された前記第2の出力データを前記I/O機器を介して自己に接続された前記制御対象に出力するように、前記選択情報を前記複数のコントローラに出力する
ことを特徴とするコントローラシステム。 - 請求項4に記載のコントローラシステムであって、
前記上位制御装置の前記プロセッサは、前記複数のコントローラから取得した前記複数のコントローラの各々のエラー情報および生存信号の少なくとも一方に基づいて、前記複数のコントローラの各々が正常か異常かを判断する
ことを特徴とするコントローラシステム。 - 請求項1〜5のいずれか1項に記載のコントローラシステムであって、
前記コントローラの前記通信部は、前記選択情報に基づいて、前記I/O機器を介して自己に接続されている前記制御対象に出力する出力データとして、前記第1出力用バッファメモリに記憶されている前記第1の出力データおよび前記第2出力用バッファメモリに記憶されている前記第2の出力データの一方を選択するセレクタをさらに有する
ことを特徴とするコントローラシステム。 - 請求項1〜6のいずれか1項に記載のコントローラシステムであって、
前記上位制御装置の前記プロセッサは、前記複数のコントローラの前記通信部を介して、前記複数のコントローラの各々が前記自己プログラムを実行する際の負荷を示す負荷情報を取得し、取得した前記負荷情報に基づいて前記他プログラムを割り当てる
ことを特徴とするコントローラシステム。 - 請求項1〜7のいずれか1項に記載のコントローラシステムであって、
前記上位制御装置は、
自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された前記コントローラの前記第1入力用バッファメモリに記憶された前記入力データを受信し、
自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された前記コントローラに前記第2の出力データを送信する
ことを特徴とするコントローラシステム。 - 請求項1〜8のいずれか1項に記載のコントローラシステムであって、
前記複数のコントローラの各々は、
他の前記コントローラに前記I/O機器を介して接続された前記制御対象であって、自己に割り当てられた前記他プログラムによって制御される前記制御対象から送信された前記入力データを記憶する第2入力用バッファメモリと、
他の前記コントローラに前記I/O機器を介して接続された前記制御対象を制御するために自己に割り当てられた前記他プログラムを実行して得られた前記第2の出力データを記憶する第3出力用バッファメモリと、
をさらに備え、
自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された他の前記コントローラの前記第1入力用バッファメモリに記憶された前記入力データを前記上位制御装置を介して受信し、受信した前記入力データを前記第2入力用バッファメモリに記憶するとともに、自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された他の前記コントローラに、前記上位制御装置を介して前記第3出力用バッファメモリに記憶された前記第2の出力データを送信する
ことを特徴とするコントローラシステム。 - 複数のコントローラと、前記複数のコントローラの各々の制御対象と前記複数のコントローラの各々とを接続し、前記制御対象と前記コントローラとの間で必要な情報を伝送する複数のI/O機器と、前記複数のコントローラを制御して管理する上位制御装置とを備えるコントローラシステムにおける制御方法であって、
前記上位制御装置は、前記複数のコントローラの各々が実行する複数のプログラムを記憶した記憶部を備え、
前記複数のコントローラの各々は、第1入力用バッファメモリ、第1出力用バッファメモリ、および、第2出力用バッファメモリを有する通信部を備え、
上位制御装置が、前記複数のコントローラの各々が前記I/O機器を介して自己に接続された前記制御対象を制御するように、前記記憶部に記憶された前記複数のプログラムを自己プログラムとして前記複数のコントローラに割り当てるとともに、前記記憶部に記憶された前記複数のプログラムの全てまたは一部が、1つの実行周期内で2重に並行して実行されるように、前記複数のプログラムの全てまたは一部を他プログラムとして前記上位制御装置および前記複数のコントローラにさらに割り当てる、割当ステップと、
前記複数のコントローラの各々が、前記I/O機器を介して自己に接続された前記制御対象から送信された入力データを前記第1入力用バッファメモリに記憶する、第1入力記憶ステップと、
前記複数のコントローラの各々が、前記I/O機器を介して自己に接続された前記制御対象を制御するために自己に割り当てられた前記自己プログラムを実行して得られた第1の出力データを前記第1出力用バッファメモリに記憶する、第1出力記憶ステップと、
前記複数のコントローラの各々が、前記I/O機器を介して自己に接続された前記制御対象を制御するために前記上位制御装置または他の前記コントローラに割り当てられた前記他プログラムを、前記上位制御装置または他の前記コントローラが実行することで得られた第2の出力データを前記第2出力用バッファメモリに記憶する、第2出力記憶ステップと、
前記複数のコントローラの各々が、前記上位制御装置から送信された選択情報に基づいて、前記第1出力用バッファメモリに記憶されている前記第1の出力データおよび前記第2出力用バッファメモリに記憶されている前記第2の出力データの一方を、前記I/O機器を介して自己に接続された前記制御対象に出力する、出力ステップと、
を含むことを特徴とする制御方法。 - 請求項10に記載の制御方法であって、
前記コントローラが、前記I/O機器を介して自己に接続された前記制御対象から送信された前記入力データに基づいて、自己に割り当てられた前記自己プログラムを実行することで前記第1の出力データを生成する、第1生成ステップと、
前記コントローラが、他の前記コントローラに前記I/O機器を介して接続された前記制御対象であって、自己に割り当てられた前記他プログラムによって制御される前記制御対象から送信された前記入力データに基づいて、自己に割り当てられた前記他プログラムを実行することで前記第2の出力データを生成する、第2生成ステップと、
前記上位制御装置が、自己に割り当てられた前記他プログラムによって制御される前記制御対象から送信された前記入力データに基づいて、自己に割り当てられた前記他プログラムを実行することで前記第2の出力データを生成する、第3生成ステップと、
をさらに含むことを特徴とする制御方法。 - 請求項10または11に記載の制御方法であって、
前記通信部は、セレクタをさらに有し、
前記上位制御装置が、前記複数のコントローラから取得した前記複数のコントローラの各々のエラー情報および生存信号の少なくとも一方に基づいて、前記複数のコントローラの各々が正常か異常かを判断する、異常判断ステップと、
前記上位制御装置が、正常と判断した前記コントローラが、前記第1出力用バッファメモリに記憶された前記第1の出力データを前記I/O機器を介して自己に接続された前記制御対象に出力し、異常と判断された前記コントローラが、前記第2出力用バッファメモリに記憶された前記第2の出力データを前記I/O機器を介して自己に接続された前記制御対象に出力するように、前記選択情報を前記複数のコントローラに出力する、選択出力ステップと、
前記複数のコントローラの各々の前記通信部の前記セレクタが、前記選択情報に基づいて、前記I/O機器を介して自己に接続されている前記制御対象に出力する出力データとして、前記第1出力用バッファメモリに記憶されている前記第1の出力データおよび前記第2出力用バッファメモリに記憶されている前記第2の出力データの一方を選択する、選択ステップと、
をさらに含むことを特徴とする制御方法。 - 請求項10〜12のいずれか1項に記載の制御方法であって、
前記上位制御装置が、前記複数のコントローラの前記通信部を介して、前記複数のコントローラの各々が前記自己プログラムを実行する際の負荷を示す負荷情報を取得する、取得ステップをさらに含み、
前記割当ステップは、取得した前記負荷情報に基づいて前記他プログラムを割り当てる
ことを特徴とする制御方法。 - 請求項10〜13のいずれか1項に記載の制御方法であって、
前記上位制御装置が、自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された前記コントローラの前記第1入力用バッファメモリに記憶された前記入力データを受信する、受信ステップと、
前記上位制御装置が、自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された前記コントローラに前記第2の出力データを送信する、第1送信ステップと、
をさらに含むことを特徴とする制御方法。 - 請求項10〜14のいずれか1項に記載の制御方法であって、
前記通信部は、第2入力用バッファメモリと第3出力用バッファメモリとをさらに有し、
前記複数のコントローラの各々が、他の前記コントローラに前記I/O機器を介して接続された前記制御対象であって、自己に割り当てられた前記他プログラムによって制御される前記制御対象から送信された前記入力データを前記第2入力用バッファメモリに記憶する、第2入力記憶ステップと、
前記複数のコントローラの各々が、他の前記コントローラに前記I/O機器を介して接続された前記制御対象を制御するために自己に割り当てられた前記他プログラムを実行して得られた前記第2の出力データを前記第3出力用バッファメモリに記憶する、第3出力記憶ステップと、
前記複数のコントローラの各々が、自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された他の前記コントローラに、前記上位制御装置を介して前記第3出力用バッファメモリに記憶された前記第2の出力データを送信する第2送信ステップと、
をさらに含み、
前記第2入力記憶ステップは、前記複数のコントローラの各々が、自己に割り当てられた前記他プログラムによって制御される前記制御対象に前記I/O機器を介して接続された他の前記コントローラの前記第1入力用バッファメモリに記憶された前記入力データを前記上位制御装置を介して受信し、受信した前記入力データを前記第2入力用バッファメモリに記憶する
ことを特徴とする制御方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016128493A JP6356736B2 (ja) | 2016-06-29 | 2016-06-29 | コントローラシステムおよび制御方法 |
DE102017005879.2A DE102017005879B4 (de) | 2016-06-29 | 2017-06-22 | Steuerungssystem und Steuerverfahren |
US15/636,011 US10606232B2 (en) | 2016-06-29 | 2017-06-28 | Controller system and control method |
CN201710516973.4A CN107544240B (zh) | 2016-06-29 | 2017-06-29 | 控制系统以及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016128493A JP6356736B2 (ja) | 2016-06-29 | 2016-06-29 | コントローラシステムおよび制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018005372A JP2018005372A (ja) | 2018-01-11 |
JP6356736B2 true JP6356736B2 (ja) | 2018-07-11 |
Family
ID=60662572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016128493A Active JP6356736B2 (ja) | 2016-06-29 | 2016-06-29 | コントローラシステムおよび制御方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10606232B2 (ja) |
JP (1) | JP6356736B2 (ja) |
CN (1) | CN107544240B (ja) |
DE (1) | DE102017005879B4 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7226103B2 (ja) * | 2019-05-29 | 2023-02-21 | オムロン株式会社 | 制御システム、サポート装置およびサポートプログラム |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06266685A (ja) * | 1993-03-15 | 1994-09-22 | Toshiba Corp | 分散形制御システム |
JP3611894B2 (ja) * | 1995-03-30 | 2005-01-19 | 富士通株式会社 | 二重化構成をもつシステム制御装置 |
US20020023117A1 (en) * | 2000-05-31 | 2002-02-21 | James Bernardin | Redundancy-based methods, apparatus and articles-of-manufacture for providing improved quality-of-service in an always-live distributed computing environment |
JP3478386B2 (ja) * | 2000-05-26 | 2003-12-15 | 村田機械株式会社 | 搬送車システム |
JP2004362133A (ja) * | 2003-06-03 | 2004-12-24 | Omron Corp | Plcシステムおよびそのバックアップ方法 |
BRPI0411824A (pt) * | 2003-06-24 | 2006-08-08 | Bosch Gmbh Robert | processo para a comutação entre, pelo menos, dois modos de operação de uma unidade de processamento, bem como, unidade de processamento correspondente |
US7328370B2 (en) * | 2003-09-12 | 2008-02-05 | Rockwell Automation Technologies, Inc. | Safety controller with simplified interface |
US7676281B2 (en) * | 2005-05-13 | 2010-03-09 | Rockwell Automation Technologies, Inc. | Distributed database in an industrial automation environment |
JP4791909B2 (ja) | 2006-08-21 | 2011-10-12 | 株式会社東芝 | 高速入出力機能を備える制御装置、及びその制御データの制御方法 |
US7821220B2 (en) * | 2006-09-29 | 2010-10-26 | Rockwell Automation Technologies, Inc. | Motor having integral programmable logic controller |
US8856522B2 (en) | 2007-02-27 | 2014-10-07 | Rockwell Automation Technologies | Security, safety, and redundancy employing controller engine instances |
US7684876B2 (en) * | 2007-02-27 | 2010-03-23 | Rockwell Automation Technologies, Inc. | Dynamic load balancing using virtual controller instances |
JP5141905B2 (ja) * | 2007-12-28 | 2013-02-13 | オムロン株式会社 | 安全マスタ |
JP4950243B2 (ja) * | 2009-04-13 | 2012-06-13 | 三菱電機株式会社 | プラント監視制御システム |
JP4809497B2 (ja) | 2010-02-25 | 2011-11-09 | ファナック株式会社 | 複数の独立したシーケンスプログラムを並列実行するプログラマブルコントローラ |
EP2660670A4 (en) * | 2010-12-28 | 2018-03-07 | Hitachi, Ltd. | Motion controller |
JP4957853B1 (ja) * | 2011-03-15 | 2012-06-20 | オムロン株式会社 | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 |
US8566816B2 (en) * | 2011-11-01 | 2013-10-22 | Lsi Corporation | Code synchronization |
JP2013168090A (ja) | 2012-02-17 | 2013-08-29 | Hitachi Ltd | マルチコントローラシステム、制御方法及びプログラム |
US20160381127A1 (en) * | 2012-09-10 | 2016-12-29 | William James Gibson | Systems and methods for dynamic networked peer-to-peer content distribution |
CN103941648A (zh) | 2014-03-07 | 2014-07-23 | 东莞市升力智能科技有限公司 | 多轴运动控制系统及其控制方法 |
EP3101494B1 (en) * | 2014-03-14 | 2018-06-20 | Omron Corporation | Control apparatus and control system |
US10095202B2 (en) * | 2014-03-26 | 2018-10-09 | Rockwell Automation Technologies, Inc. | Multiple controllers configuration management interface for system connectivity |
CN105393241B (zh) | 2014-04-24 | 2017-09-22 | 三菱电机株式会社 | 控制系统、主控站点以及远程站点 |
US11513477B2 (en) * | 2015-03-16 | 2022-11-29 | Rockwell Automation Technologies, Inc. | Cloud-based industrial controller |
US10437212B2 (en) | 2015-04-28 | 2019-10-08 | Schneider Electric Systems Usa, Inc. | Distributed computing in a process control environment |
US20180095441A1 (en) * | 2016-02-15 | 2018-04-05 | Mitsubishi Electric Corporation | Load distribution device |
-
2016
- 2016-06-29 JP JP2016128493A patent/JP6356736B2/ja active Active
-
2017
- 2017-06-22 DE DE102017005879.2A patent/DE102017005879B4/de active Active
- 2017-06-28 US US15/636,011 patent/US10606232B2/en active Active
- 2017-06-29 CN CN201710516973.4A patent/CN107544240B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20180004182A1 (en) | 2018-01-04 |
CN107544240B (zh) | 2019-07-30 |
DE102017005879A1 (de) | 2018-01-04 |
US10606232B2 (en) | 2020-03-31 |
CN107544240A (zh) | 2018-01-05 |
DE102017005879B4 (de) | 2022-11-10 |
JP2018005372A (ja) | 2018-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9110843B2 (en) | Rack and method thereof for simultaneously updating basic input output systems | |
US7685325B2 (en) | Synchronous bus controller system | |
JP6563187B2 (ja) | 分散制御システム、制御装置及び制御方法 | |
JP6275320B2 (ja) | 通信装置、通信方法及びプログラム | |
KR101318004B1 (ko) | 접속 장치, 스토리지 장치, 접속 장치에 있어서의 처리 방법, 및 처리 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 | |
CN110580235B (zh) | 一种sas扩展器通信方法及装置 | |
JP2006309345A (ja) | 並列型監視制御システム、同システムの並列型コントローラのファームウェアの更新方法 | |
JP6356736B2 (ja) | コントローラシステムおよび制御方法 | |
CN114531373A (zh) | 节点状态检测方法、节点状态检测装置、设备及介质 | |
JP6304048B2 (ja) | 制御システム、および制御装置 | |
CN112422704B (zh) | 用于多设备的地址分配方法、装置及存储介质 | |
US20050149802A1 (en) | Multi nodal computer system and method for handling check stops in the multi nodal computer system | |
JP4442613B2 (ja) | ユニット増設システム | |
JP2008226111A (ja) | 2重化コントローラシステム、その稼動系コントローラ | |
WO2013101091A1 (en) | Advanced programmable interrupt controller identifier (apic id) assignment for a multi-core processing unit | |
JP2017062758A (ja) | 制御システムおよび制御方法 | |
JP2006236371A (ja) | 制御システム | |
CN111164523A (zh) | 分散控制系统 | |
JP2014016907A (ja) | 通信システムおよびアドレス割当て方法 | |
CN110806719B (zh) | 一种plc系统及其控制方法 | |
CN114338358A (zh) | 一种数据交互方法、设备、存储介质及plc | |
JP2013038741A (ja) | コンフィグレーション装置及びコンフィグレーション方法 | |
JP2023141625A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP6401114B2 (ja) | プラント監視制御システム及びアクセス管理方法 | |
JP4854598B2 (ja) | データ転送制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20180522 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180524 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180614 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6356736 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |