(57)【要約】      （修正有）【課題】プログラムを容易かつ短時間に書き換えることができるプログラマブルコントローラを提供する。【解決手段】制御対象の動作を規定するシーケンスプログラムを格納する第１の記憶部１７と、制御対象の動作を制御するためにシーケンスプログラムを実行する演算処理部１０と、外部と通信接続可能なインタフェース３０とを備えたプログラマブルコントローラであって、演算処理部は、シーケンスプログラムを用いて制御対象の動作を制御する通常モード、第１の記憶部に格納されたシーケンスプログラムの書換えを許可する書換えモード、あるいは、他のプログラマブルコントローラのシーケンスプログラムを書き換えるために、第１の記憶部に格納されたシーケンスプログラムをインタフェースから出力する出力モードのいずれかに設定される。【選択図】図１
2014016947.tif 000002
【特許請求の範囲】
【請求項１】
制御対象の動作を規定するシーケンスプログラムを格納する第１の記憶部と、
前記制御対象の動作を制御するために前記シーケンスプログラムを実行する演算処理部と、
外部と通信接続可能なインタフェースとを備えたプログラマブルコントローラであって、
前記演算処理部は、前記シーケンスプログラムを用いて前記制御対象の動作を制御する通常モード、前記第１の記憶部に格納された前記シーケンスプログラムの書換えを許可する書換えモード、あるいは、他のプログラマブルコントローラのシーケンスプログラムを書き換えるために、前記第１の記憶部に格納された前記シーケンスプログラムを前記インタフェースから出力する出力モードのいずれかに設定されることを特徴とするプログラマブルコントローラ。
【請求項２】
前記演算処理部のモードを前記通常モード、前記書換えモードあるいは前記出力モードのいずれかに設定するスイッチをさらに備えたことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
当該プログラマブルコントローラおよび前記他のプログラマブルコントローラは、同一の構成を有することを特徴とする請求項１または請求項２に記載のプログラマブルコントローラ。
【請求項４】
前記出力モードにおいて、
前記インタフェースは、前記書換えモードに設定された他のプログラマブルコントローラに通信可能に接続され、
前記演算処理部は、前記インタフェースを介して前記第１の記憶部の前記シーケンスプログラムを前記他のプログラマブルコントローラへ出力することを特徴とする請求項１から請求項３のいずれか一項に記載のプログラマブルコントローラ。
【請求項５】
前記出力モードにおいて、
前記インタフェースは、複数の他のプログラマブルコントローラに通信可能に接続され、
前記演算処理部は、前記インタフェースを介して前記第１の記憶部の前記シーケンスプログラムを複数の前記他のプログラマブルコントローラへ出力することを特徴とする請求項１から請求項３のいずれか一項に記載のプログラマブルコントローラ。
【請求項６】
前記出力モードにおいて、
前記インタフェースは、前記書換えモードに設定された他のプログラマブルコントローラに通信可能に接続され、
前記演算処理部は、前記インタフェースを介して前記第１の記憶部の前記シーケンスプログラムを前記他のプログラマブルコントローラの記憶部へ書き込むことを特徴とする請求項１から請求項３のいずれか一項に記載のプログラマブルコントローラ。
【請求項７】
前記第１の記憶部よりも書込み速度の速い第２の記憶部をさらに備え、
前記書換えモードにおいて、
前記演算処理部は、外部から受け取ったシーケンスプログラムを前記第２の記憶部に一旦格納し、その後、前記第２の記憶部から前記第１の記憶部へ前記シーケンスプログラムを書き込むことを特徴とする請求項１から請求項６のいずれか一項に記載のプログラマブルコントローラ。
【請求項８】
前記インタフェースは、シリアル通信、パラレル通信、または、ネットワーク通信によって前記他のプログラマブルコントローラと通信可能に接続されていることを特徴とする請求項１から請求項７のいずれか一項に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明による実施形態は、プログラマブルコントローラに係り、例えば、シーケンス制御用のプログラムを格納するプログラマブルコントローラに関する。
【背景技術】
【０００２】
プログラマブルコントローラ（以下、ＰＬＣ（Programmable Logic Controller） とも言う） は、ユーザにより作成されたアプリケーションプログラム（シーケンスプログラム）を実行することによって、該ＰＬＣに接続された制御対象を自動でシーケンス制御する。
【０００３】
ＰＬＣで実行されるシーケンスプログラムは、通常、プログラミング装置を用いて作成され、マシンコードに変換された後にＰＬＣに転送される。ＰＬＣは、システムプログラムを基層のプログラムとして作動し、プログラミング装置から転送されたシーケンスプログラムを演算実行する。これにより、ＰＬＣは、制御対象の自動シーケンス制御することができる。
【０００４】
このようなＰＬＣのシーケンスプログラムは、必要に応じて書き換えられる場合がある。シーケンスプログラムを書き換える場合、従来、パーソナルコンピュータ等の書換えツールを用いて、ＰＬＣのシーケンスプログラムを書き換えていた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１０００２８号公報
【特許文献２】特開平６−９５７１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、複数のＰＬＣのシーケンスプログラムを書換える場合、ユーザは、書換えツールを個々のＰＬＣに接続してシーケンスプログラムを繰し返し書き換える必要があった。
【０００７】
また、ネットワークを介して複数のＰＬＣのプログラムを同時に書換えることが考えられる。しかし、この場合には、書換え対象のＰＬＣはネットワークで相互に接続されていなければならず、また、書換えの際には、書換えツールは全てのＰＬＣに対して並列に接続されていなければならない。ネットワークに接続されていない独立したＰＬＣについては、プログラムの書換え時にユーザはネットワークに接続するか、あるいは、書換えツールを個々の独立したＰＬＣに接続してプログラムの書換え実行する必要がある。従って、従来からシーケンスプログラムの書換えには、手間および時間が掛かっていた。
【０００８】
そこで、本発明は、上記問題点を解決するためになされたもので、プログラムを容易かつ短時間に書き換えることができるプログラマブルコントローラを提供することである。
【課題を解決するための手段】
【０００９】
本実施形態によるプログラマブルコントローラは、制御対象の動作を規定するシーケンスプログラムを格納する第１の記憶部と、制御対象の動作を制御するためにシーケンスプログラムを実行する演算処理部と、外部と通信接続可能なインタフェースとを備えたプログラマブルコントローラであって、演算処理部は、シーケンスプログラムを用いて制御対象の動作を制御する通常モード、第１の記憶部に格納されたシーケンスプログラムの書換えを許可する書換えモード、あるいは、他のプログラマブルコントローラのシーケンスプログラムを書き換えるために、第１の記憶部に格納されたシーケンスプログラムをインタフェースから出力する出力モードのいずれかに設定される。
【００１０】
当該プログラマブルコントローラは、演算処理部のモードを通常モード、書換えモードあるいは出力モードのいずれかに設定するスイッチをさらに備えていてもよい。
【００１１】
当該プログラマブルコントローラおよび他のプログラマブルコントローラは、同一の構成を有していてもよい。
【００１２】
出力モードにおいて、インタフェースは、書換えモードに設定された他のプログラマブルコントローラに通信可能に接続され、演算処理部は、インタフェースを介して第１の記憶部のシーケンスプログラムを他のプログラマブルコントローラへ出力してもよい。
【００１３】
出力モードにおいて、インタフェースは、複数の他のプログラマブルコントローラに通信可能に接続され、演算処理部は、インタフェースを介して第１の記憶部のシーケンスプログラムを複数の他のプログラマブルコントローラへ出力してもよい。
【００１４】
出力モードにおいて、インタフェースは、書換えモードに設定された他のプログラマブルコントローラに通信可能に接続され、演算処理部は、インタフェースを介して第１の記憶部のシーケンスプログラムを他のプログラマブルコントローラの記憶部へ書き込んでもよい。
【００１５】
当該プログラマブルコントローラは、第１の記憶部よりも書込み速度の速い第２の記憶部をさらに備え、書換えモードにおいて、演算処理部は、外部から受け取ったシーケンスプログラムを第２の記憶部に一旦格納し、その後、第２の記憶部から第１の記憶部へシーケンスプログラムを書き込んでもよい。
【００１６】
インタフェースは、シリアル通信、パラレル通信、または、ネットワーク通信によって他のプログラマブルコントローラと通信可能に接続されていてもよい。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態によるＰＬＣの構成例を示す図。
【図２】シーケンスプログラムの書換え時におけるＰＬＣ１００およびＰＬＣ２００の接続関係を示す図。
【図３】ＰＬＣ１００、２００の動作を示すフロー図。
【図４】ＰＬＣ１００、２００の動作を示すフロー図。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明に係る実施形態を説明する。本実施形態は、本発明を限定するものではない。
【００１９】
（第１の実施形態）
図１は、第１の実施形態によるＰＬＣの構成例を示す図である。ＰＬＣ１００は、ＣＰＵ（Central Processing Unit）モジュール１０と、通信モジュール２０と、インタフェース３０、５０と、Ｉ／Ｏモジュール４０とを備えている。Ｉ／Ｏモジュール４０は、制御対象と通信可能に接続されており、ＣＰＵモジュール１０は、Ｉ／Ｏモジュール４０を介して制御対象（図示せず）のシーケンス制御を行なう。
【００２０】
ＣＰＵモジュール１０は、内部のシステムバス１９によって互いに接続された各構成要素１１〜１８を備えている。ＣＰＵ１１は、システムメモリ１５に記憶されたシステムプログラムを実行し、ＣＰＵモジュール１０内の各構成要素の動作制御を行う。それとともに、ＣＰＵ１１は、第１の記憶部としてのシーケンスメモリ１７に記憶されたシーケンスプログラムを実行して制御対象のシーケンス制御を行う。
【００２１】
システムメモリ１５は、システムプログラムを格納している。システムプログラムは、シーケンスプログラム等のユーザアプリケーションプログラムを実行するためのＯＳ（Operating System）として機能する。システムメモリ１５は、例えば、フラッシュメモリを用いて構成されている。
【００２２】
第１の記憶部としてのシーケンスメモリ１７は、インタフェース３０から受信したユーザのシーケンスプログラムを格納している。シーケンスプログラムは、システムプログラム上において実行されるユーザアプリケーションであり、制御対象の動作を規定する。通常、シーケンスプログラムは、制御対象を任意に動作させるためにユーザが作成し、インタフェース３０を介してシーケンスメモリ１７に格納される。制御対象の動作を変更するときには、ユーザは、シーケンスメモリ１７内のシーケンスプログラムを書き換えればよい。シーケンスメモリ１７は、例えば、フラッシュメモリを用いて構成されている。
【００２３】
第２の記憶部としてのワークメモリ１６は、ＣＰＵ１１がシステムプログラムおよびシーケンスプログラムに基づいて実行する制御処理に関連するデータを一時的に格納するメモリである。ワークメモリ１６は、例えば、ＳＲＡＭを用いて構成されている。
【００２４】
ドライバ／レシーバ１３は、インタフェース３０を介して外部からシーケンスプログラム等を送受信する。
【００２５】
バスインタフェース１４は、Ｉ／Ｏモジュール４０とシステムバス１９との間に接続されており、制御対象をシーケンス制御するために制御に関する情報を入力または出力する。
【００２６】
モードスイッチ１８は、ＣＰＵモジュール１０の動作モードを切り替えるスイッチである。ＣＰＵモジュール１０の動作モードは、例えば、通常モード、書換えモード、および、出力モードを含む。通常モードは、シーケンスプログラムを用いて制御対象をシーケンス制御するモードである。書換えモードは、シーケンスメモリ１７に格納されたシーケンスプログラムの書換えを許可するモードである。出力モードは、他のプログラマブルコントローラのシーケンスプログラムを書き換えるために、シーケンスメモリ１７に格納されたシーケンスプログラムをインタフェース３０から出力するモードである。
【００２７】
モードスイッチ１８は、ＣＰＵモジュール１０を、通常モード、書換えモード、および、出力モードのいずれかのモードに設定することができる。モードスイッチ１８は、例えば、ディップスイッチを用いて構成されている。この場合、ユーザがディップスイッチのＯＮ／ＯＦＦを操作することによって上記モードを切り替えることができる。
【００２８】
書換えモードにおいて、ＰＬＣ１００は、出力要求信号または書換えモードであることを示すモード信号を出力する。これにより、ＰＬＣ１００に接続された他のＰＬＣまたは書換えツールは、ＰＬＣ１００が書換えモードであり、シーケンスメモリ１７内のシーケンスプログラムを書き換えることができる状態にある、ということを知ることができる。
【００２９】
また、出力モードにおいては、ＰＬＣ１００は、書換え要求信号または出力モードであることを示すモード信号を出力する。これにより、ＰＬＣ１００に接続された他のＰＬＣは、ＰＬＣ１００が出力モードであり、シーケンスメモリ１７内のシーケンスプログラムを出力することができる状態にある、ということを知ることができる。
【００３０】
通信モジュール２０は、インタフェース５０を介してネットワーク（例えば、インターネット、ＬＡＮ等）に接続可能である。
【００３１】
図２は、シーケンスプログラムの書換え時におけるＰＬＣ１００およびＰＬＣ２００の接続関係を示す図である。ＰＬＣ２００は、ＰＬＣ１００と同一の構成を有する。ただし、ＰＬＣ１００とＰＬＣ２００との各構成要素を区別するために、図２において、ＰＬＣ１００の構成要素の参照番号には“ａ”を付加し、ＰＬＣ２００の構成要素の参照番号には“ｂ”を付加している。
【００３２】
ＰＬＣ１００のインタフェース３０ａとＰＬＣ２００のインタフェース３０ｂとは、通信線３００によって通信可能に接続されている。通信線３００は、シリアル通信、パラレル通信、または、ネットワーク通信のいずれでもよい。通信線３００は、有線、無線のいずれでもよく、例えば、電話回線、インターネット、ＬＡＮ等のいずれでもよい。
【００３３】
例えば、ＰＬＣ１００が書換えモードに設定されており、ＰＬＣ２００が出力モードに設定されているものとする。この場合、ＰＬＣ２００は、ＰＬＣ１００のシーケンスプログラムを書き換えるために、シーケンスメモリ１７ｂに格納されたシーケンスプログラムをインタフェース３０ｂから出力する。
【００３４】
ＰＬＣ１００は、書換えモードに設定されているので、ＰＬＣ２００からの新しいシーケンスプログラムを受け取ると、ＣＰＵ１１ａは、その新しいシーケンスプログラムでシーケンスメモリ１７ａ内のシーケンスプログラムを書き換える。
【００３５】
逆に、ＰＬＣ２００が書換えモードに設定されており、ＰＬＣ１００が出力モードに設定されている場合、ＰＬＣ１００は、ＰＬＣ２００のプログラマブルコントローラのシーケンスプログラムを書き換えるために、シーケンスメモリ１７ａに格納されたシーケンスプログラムをインタフェース３０ａから出力する。
【００３６】
ＰＬＣ２００は、書換えモードに設定されているので、ＰＬＣ１００からの新しいシーケンスプログラムを受け取ると、ＣＰＵ１１ｂは、その新しいシーケンスプログラムでシーケンスメモリ１７ｂ内のシーケンスプログラムを書き換える。
【００３７】
このように、本実施形態によるＰＬＣ１００、２００は、通常モードの他に、書換えモードおよび出力モードを有する。これにより、ＰＬＣ１００、２００は、同一の構成を有するものの、それらの一方が他方のシーケンスプログラムを書き換えることができる。
【００３８】
勿論、ＰＬＣ１００とＰＬＣ２００との間でシーケンスプログラムの書換えを行なうためには、最初にＰＬＣ１００または２００のいずれかが新しいシーケンスプログラムを格納している必要がある。最初にＰＬＣ１００または２００のいずれかに新しいシーケンスプログラムを書き込むために、パーソナルコンピュータ等の書換えツール４００が用いられる。
【００３９】
図３および図４は、ＰＬＣ１００、２００の動作を示すフロー図である。図３および図４を参照して、ＰＬＣ１００、２００の動作をより詳細に説明する。図３は、書換えモードにおけるＰＬＣ１００、２００の動作を示す。図４は出力モードにおけるＰＬＣ１００、２００の動作を示す。
【００４０】
［通常モード］
通常モードでは、ＰＬＣ１００は、シーケンスメモリ１７ａ内のシーケンスプログラムに基づいて、制御バスインタフェース１４ａ、Ｉ／Ｏモジュール４０ａを介して制御対象をシーケンス制御する。即ち、ＰＬＣ１００は、通常動作を実行する（Ｓ２）。
【００４１】
［書換えモード（図３）］
ＰＬＣ１００のシーケンスプログラムを書き換えるために、ユーザがモードスイッチ１８ａを書換えモードに切り替えると、ＰＬＣ１００は、書換えモードに入る（Ｓ３）。書換えモードでは、ＣＰＵ１１ａは、シーケンスメモリ１７ａ内のシーケンスプログラムを書換え可能にする。また、ＰＬＣ１００は、外部からのシーケンスプログラムの書換え要求信号を待機する。
【００４２】
次に、インタフェース３０ａには、出力モードに設定された他のＰＬＣ２００または書換えツール４００が接続される（図２参照）（Ｓ２０）。
【００４３】
ＰＬＣ２００または書換えツール４００がシーケンスプログラムの書換え要求信号または出力モード信号を出力する（Ｓ３０）と、ＰＬＣ１００は、インタフェース３０ａおよびドライバ／レシーバ１３ａを介して書換え要求信号または出力モード信号を受け取る。ＰＬＣ１００は、書換え要求信号または出力モード信号に対して、出力要求信号または書換えモード信号を返信する（Ｓ４０）。尚、書換え要求信号または出力モード信号、および、出力要求信号または書換えモード信号には、送信元および送信先の識別子（例えば、アドレス）が含まれている。
【００４４】
ＰＬＣ２００または書換えツール４００が出力要求信号または書換えモード信号を受け取ると、ＰＬＣ２００または書換えツール４００は、自己のメモリ（例えば、シーケンスメモリ１７ｂ）に格納された新しいシーケンスプログラムを一群ずつ送信する（Ｓ５０）。
【００４５】
尚、ＰＬＣ２００または書換えツール４００が書換え要求信号または出力モード信号を出力するタイミング、および、ＰＬＣ１００が出力要求信号または書換えモード信号を出力するタイミングは、いずれが先であってもよい。即ち、ＰＬＣ１００およびＰＬＣ２００（または書換えツール４００）がそれぞれ書換えモードおよび出力モードに設定されており、それらがシーケンスプログラムの出力および書換えの準備ができていることを相互に知ることができればよい。
【００４６】
ＰＬＣ１００が新しいシーケンスプログラムを受け取ると、ＣＰＵ１１ａは、新しいシーケンスプログラムをシーケンスメモリ１７ａに格納し、シーケンスメモリ１７ａ内の既存のシーケンスプログラムを新しいシーケンスプログラムで書き換える（Ｓ６０）。このとき、ＰＬＣ１００は、受け取った新しいシーケンスプログラムを第２の記憶部としてのワークメモリ１６ａに一旦格納した後に、ワークメモリ１６ａからシーケンスメモリ１７ａへその新しいシーケンスプログラムを格納してもよい。
【００４７】
その後、ＰＬＣ１００、ＰＬＣ２００または書換えツール４００は、ＰＬＣ１００に格納された新しいシーケンスプログラムのベリファイを行なう（Ｓ７０）。シーケンスプログラムが正常に書き換えられていることを確認した後に、ＰＬＣ１００とＰＬＣ２００または書換えツール４００との通信は終了する。
【００４８】
さらに、ユーザがモードスイッチ１８ａ、１８ｂを通常モードへ戻すことによって、ＰＬＣ１００および２００は、それぞれ通常モードに戻る。
【００４９】
［出力モード（図４）］
ＰＬＣ１００のシーケンスプログラムを他のＰＬＣ２００へ出力するために、ユーザは、ＰＬＣ１００のモードスイッチ１８ａを出力モードに切り替える（Ｓ１１）。
【００５０】
次に、書換えモードに設定された他のＰＬＣ２００がＰＬＣ１００のインタフェース３０ａに接続される（Ｓ２１）。
【００５１】
ＰＬＣ１００がシーケンスプログラムの書換え要求信号または出力モード信号を出力する（Ｓ３１）と、ＰＬＣ２００は、インタフェース３０ｂおよびドライバ／レシーバ１３ｂを介して書換え要求信号または出力モード信号を受け取る。ＰＬＣ２００は、書換え要求信号または出力モード信号に対して、出力要求信号または書換えモード信号を返信する（Ｓ４１）。
【００５２】
ＰＬＣ１００が出力要求信号または書換えモード信号を受け取ると、ＰＬＣ１００のＣＰＵモジュール１０ａは、自己のシーケンスメモリ１７ａに格納された新しいシーケンスプログラムを一群ずつ送信する（Ｓ５１）。
【００５３】
ＰＬＣ２００が新しいシーケンスプログラムを受け取ると、ＣＰＵ１１ｂは、シーケンスメモリ１７ｂ内の既存のシーケンスプログラムを新しいシーケンスプログラムで書き換える（Ｓ６１）。
【００５４】
その後、ＰＬＣ１００またはＰＬＣ２００は、ＰＬＣ２００に格納された新しいシーケンスプログラムのベリファイを行なう（Ｓ７１）。シーケンスプログラムが正常に書き換えられていることを確認した後に、ＰＬＣ１００とＰＬＣ２００との通信は終了する。
【００５５】
さらに、ユーザがモードスイッチ１８ａ、１８ｂを通常モードへ戻すことによって、ＰＬＣ１００および２００は、それぞれ通常モードに戻る。
【００５６】
尚、ステップＳ２０、Ｓ２１においてＰＬＣ１００、２００が接続されたときに、一方が通常モードである場合には、シーケンスプログラムの書換え時に必要な書換え要求信号（あるいは出力モード信号）、出力要求信号（あるいは書換えモード信号）が出力されない。従って、ＰＬＣ１００、２００が誤ってシーケンスプログラムを出力し、あるいは、シーケンスプログラムを書き換えることはない。
【００５７】
本実施形態によれば、ＰＬＣ１００、２００のシーケンスプログラムの書換えにおいて、書換えツール４００は最初の１回のみである。その後、シーケンスプログラムの書換えは、ＰＬＣ１００、２００同士におけるシーケンスプログラムの授受によって実行される。従って、本実施形態によれば、書換えツール４００の使用は可及的に少なく、書換えツール４００を複数のＰＬＣ１００、２００のそれぞれに接続する必要がない。書換えツール４００の台数も可及的に少なくて済む。
【００５８】
また、書換えツール４００は、複数のＰＬＣ１００、２００に並列に接続されている必要もない。例えば、ＰＬＣ１００およびＰＬＣ２００がＬＡＮ等のネットワークで相互に接続されている場合、書換えツール４００は、インターネット等を介して新しいシーケンスプログラムをＰＬＣ１００または２００の一方に書き込めばよい。その後、ＬＡＮに接続されたＰＬＣ同士が、互いにシーケンスプログラムを書き換えることができる。これにより、書換えツール４００の使用時間が短縮され、かつ、シーケンスプログラムの書換え時間も短縮され得る。その結果、本実施形態によるＰＬＣは、シーケンスプログラムを容易かつ短時間に書き換えることができる。
【００５９】
さらに、上述の通り、書換えモードにおいて、ＰＬＣ１００は、受け取った新しいシーケンスプログラムを第２の記憶部としてのワークメモリ１６ａに一旦格納した後に、ワークメモリ１６ａからシーケンスメモリ１７ａへその新しいシーケンスプログラムを格納してもよい。ワークメモリ１６ａは、例えば、ＳＲＡＭであり、フラッシュメモリで構成されたシーケンスメモリ１７ａよりも書込み速度が速い。従って、シーケンスプログラムをワークメモリ１６ａに一旦格納することによって、ＰＬＣ１００とＰＬＣ２００（または書換えツール）との通信時間が短くなる。即ち、シーケンスプログラムをＰＬＣ１００に書込む時間が、見かけ上、短縮される。
【００６０】
上記実施形態において、ＰＬＣ１００は、１つのＰＬＣ２００に接続されている。しかし、ＰＬＣ１００は、複数のＰＬＣ２００に接続されていてもよい。ＰＬＣ１００を出力モードに設定し、かつ、複数のＰＬＣ２００を総て書換えモードに設定することによって、１つのＰＬＣ１００のＣＰＵ１１ａは、シーケンスメモリ１７ａ内のシーケンスプログラムを複数の他のＰＬＣ２００へ出力することができる。これにより、１つのＰＬＣ１００は、複数のＰＬＣ２００のシーケンスプログラムを同時に書き換えることができる。
【００６１】
また、ＰＬＣ１００に接続された複数のＰＬＣ２００のうちシーケンスプログラムを書き換える必要の無いＰＬＣ２００のモードスイッチ１８ｂは、通常モードに設定しておけばよい。上述の通り、ＰＬＣ１００が接続されたときに、ＰＬＣ２００が通常モードである場合には、ＰＬＣ２００は、出力要求信号または書換えモード信号を出力しない。書換えの必要なＰＬＣ２００は、書換えモードになっているので、出力要求信号または書換えモード信号を出力する。このとき、出力要求信号または書換えモード信号は、送信元であるＰＬＣ２００の識別子および送信先であるＰＬＣ１００の識別子を含む。従って、ＰＬＣ１００は、出力要求信号または書換えモード信号に応じて、書換えの必要なＰＬＣ２００へシーケンスプログラムを正確に出力することができる。このとき、書換え不要なＰＬＣ２００のシーケンスプログラムは書き換えられない。
【００６２】
（第２の実施形態）
第１の実施形態では、書換えモードに設定されたＰＬＣ１００が新しいシーケンスプログラムを受け取ると、ＣＰＵ１１ａがその新しいシーケンスプログラムをワークメモリ１６ａに一旦格納し、その後、ワークメモリ１６ａからシーケンスメモリ１７ａにシーケンスプログラムを書き込んでいる。
【００６３】
第２の実施形態では、出力モードに設定されたＰＬＣ２００が、インタフェース３０ａを介してＰＬＣ１００のシーケンスメモリ１７ａへシーケンスプログラムを直接書き込む。この場合、ＰＬＣ２００のＣＰＵ１１ｂがＰＬＣ１００のシーケンスメモリ１７ａへシーケンスプログラムを書き込むので、書換えモードに設定されたＰＬＣ１００のＣＰＵ１ａに掛かる負荷が小さくなる。
【００６４】
勿論、ＰＬＣ１００が出力モードであり、ＰＬＣ２００が書換えモードである場合には、ＰＬＣ１００のＣＰＵ１１ａがＰＬＣ２００のシーケンスメモリ１７ｂへシーケンスプログラムを直接書き込む。
【００６５】
このように、第２の実施形態によれば、ＰＬＣのＣＰＵの負荷を考慮して、出力モード側のＰＬＣのＣＰＵが、書換えモード側のＰＬＣのシーケンスプログラムを書き換えてもよい。
【００６６】
（第３の実施形態）
第３の実施形態において、モードスイッチ１８は、ソフトウェアスイッチである。即ち、モードスイッチ１８は、ＢＩＯＳ（Basic Input/Output System）のようにシステムプログラムに組み込まれたプログラムでもよい。
【００６７】
この場合、例えば、ＰＬＣ１００のインタフェース３０ａに何も接続されていない場合、ＰＬＣ１００は、通常モードにあるものとして動作する。
【００６８】
ＰＬＣ１００のインタフェース３０ａにＰＬＣ２００が接続された場合、ＰＬＣ１００は、その接続を検知してシーケンスメモリ１７ａに格納されたシーケンスプログラムのバージョン情報をＰＬＣ２００へ送信する。このとき、ＰＬＣ２００も、ＰＬＣ１００の接続を検知し、シーケンスメモリ１７ｂに格納されたシーケンスプログラムのバージョン情報をＰＬＣ１００へ送信する。ＰＬＣ１００およびＰＬＣ２００のＣＰＵ１１ａ、１１ｂは、互いのシーケンスプログラムのバージョン情報を比較する。このような動作を実行するように、シーケンスプログラムは構成されている。そして、古いシーケンスプログラムを有するＰＬＣが書換えモードになり、新しいシーケンスプログラムを有するＰＬＣが出力モードになる。例えば、ＰＬＣ１００に格納されているシーケンスプログラムがＰＬＣ２００に格納されているシーケンスプログラムよりも古いバージョンである場合、ＰＬＣ１００が書換えモードとなり、ＰＬＣ２００が出力モードになる。そして、ＰＬＣ２００が自己のシーケンスプログラムを出力し、ＰＬＣ１００がＰＬＣ２００から受け取ったシーケンスプログラムでシーケンスメモリ１７ａのシーケンスプログラムを書き換える。
【００６９】
ＰＬＣ１００、２００の各モードが決定された後、ＰＬＣ１００、２００は、図３に示すステップＳ３０以降のステップまたは図４に示すステップＳ３１以降のステップを実行すればよい。これにより、ＰＬＣ１００のシーケンスプログラムが新しいバージョンのシーケンスプログラムに書き換えられる。
【００７０】
第３の実施形態によれば、ＰＬＣは、他のＰＬＣと接続されたときに、相互のシーケンスプログラムのバージョンを自動で比較する。従って、シーケンスプログラムの書換えをする場合、ユーザは、単にＰＬＣを他のＰＬＣに接続するだけでよく、モードスイッチ１８ａ、１８ｂを切り替える必要がない。即ち、ユーザは、ＰＬＣのモードを意識する必要がない。さらに、第３の実施形態は、第１の実施形態の効果も得ることができる。
【符号の説明】
【００７１】
１００・・・ＰＬＣ、１０・・・ＣＰＵモジュール、２０・・・通信モジュール、３０・・・インタフェース、４０・・・Ｉ／Ｏモジュール、１１・・・ＣＰＵ、１３・・・ドライバ／レシーバ、１４・・・バスインタフェース、１５・・・システムメモリ、１６・・・ワークメモリ、１７・・・シーケンスメモリ、１８・・・モードスイッチ
【図１】
2014016947.tif 000003
【図２】
2014016947.tif 000004
【図３】
2014016947.tif 000005
【図４】
2014016947.tif 000006