(57)【特許請求の範囲】
【請求項１】
通信ネットワークを介して他のプログラマブルコントローラと接続可能なプログラマブルコントローラであって、
シーケンスプログラムを格納する記憶部と、
制御部と、
を備え、
該制御部が、
前記シーケンスプログラムを修正するシーケンスプログラム修正部と、
修正された前記シーケンスプログラムから修正箇所及び修正内容を取得する修正情報取得部と、
修正前のシーケンスプログラムから前記修正箇所を含む予め定めた範囲の第１の回路を抽出するとともに、前記他のプログラマブルコントローラに対し、前記第１の回路に対応する回路が前記他のプログラマブルコントローラのシーケンスプログラムに含まれるか否かの問合わせを行う対応回路問合部と、
該対応回路問合部による前記問合わせに対し、前記他のプログラマブルコントローラから前記第１の回路に対応する回路を含むとの応答を受信した場合にのみ、前記他のプログラマブルコントローラに前記修正内容を送信する修正内容送信部と、
を備えるプログラマブルコントローラ。
【請求項２】
前記制御部が、
前記他のプログラマブルコントローラから、該他のプログラマブルコントローラのシーケンスプログラムに含まれる第２の回路が前記シーケンスプログラムに含まれるか否かの問合わせを受信し、前記第２の回路に対応する回路を前記シーケンスプログラムから検索し、前記第２の回路に対応する回路が前記シーケンスプログラムに含まれるか否かを前記他のプログラマブルコントローラに対して応答する対応回路検索部と、
前記他のプログラマブルコントローラから前記修正内容を受信し、該修正内容で前記シーケンスプログラムを更新するシーケンスプログラム更新部と、
を備える請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記通信ネットワークを介して互いに接続される複数台の請求項２に記載のプログラマブルコントローラを備えるシーケンスプログラムを修正するシステム。
【請求項４】
通信ネットワークを介して他のプログラマブルコントローラ及びこれらプログラマブルコントローラを統括するコントローラと接続可能なプログラマブルコントローラであって、
シーケンスプログラムを格納する記憶部と、
制御部と、
を備え、
該制御部が、
前記シーケンスプログラムを修正するシーケンスプログラム修正部と、
修正された前記シーケンスプログラムから修正箇所及び修正内容を取得する修正情報取得部と、
修正前のシーケンスプログラムから前記修正箇所を含む予め定めた範囲の回路を抽出するとともに、前記コントローラに対し、前記回路に対応する回路が、前記他のプログラマブルコントローラのシーケンスプログラムに含まれるか否かの問合わせを行う対応回路問合部と、
該対応回路問合部による前記問合わせに対し、前記コントローラから前記回路に対応する回路を備えるとの応答を受信した場合にのみ、前記他のプログラマブルコントローラに前記修正内容を送信する修正内容送信部と、
を備えるプログラマブルコントローラ。
【請求項５】
前記制御部が、
前記コントローラからの要求に応じて、前記シーケンスプログラムの写しを前記コントローラに送信するシーケンスプログラム送信部と、
前記他のプログラマブルコントローラから前記修正内容を受信し、該修正内容で前記シーケンスプログラムを更新するシーケンスプログラム更新部と、
を備える請求項４に記載のプログラマブルコントローラ。
【請求項６】
前記通信ネットワークを介して互いに接続される複数台の請求項５に記載のプログラマブルコントローラと、
該プログラマブルコントローラに前記通信ネットワークを介して接続されるとともに、前記プログラマブルコントローラを統括するコントローラと、
を備え、
該コントローラが、
一のプログラマブルコントローラから、前記問合わせを受信し、前記他のプログラマブルコントローラに前記シーケンスプログラムの写しを送信するように要求するシーケンスプログラム要求部と、
前記回路に対応する回路を前記シーケンスプログラムの写しから検索し、前記回路に対応する回路が各前記シーケンスプログラムの写しに含まれるか否かを前記一のプログラマブルコントローラ及び前記他のプログラムコントローラに応答する応答部と、
を備えるシーケンスプログラムを修正するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークを介して他のプログラマブルコントローラと接続可能なプログラマブルコントローラ及びこれを備えるシステムに関する。
【背景技術】
【０００２】
一般に、機械加工や組み立てを行う工場において、工作機械や産業用ロボット等を組み合わせた単位である加工セルの制御にはプログラマブルコントローラが使用されている。また、生産システム全体としては、システム規模にもよるが、複数のプログラマブルコントローラから構成されることが多く、各加工セルのプログラマブルコントローラは、イーサネット（登録商標）やＦＬ−ＮＥＴ等の通信ネットワークを介して他のプログラマブルコントローラと相互接続されることにより、プログラマブルコントローラ間での通信が行われている。
【０００３】
各加工セルで実行される処理が同一である場合、上述のように相互接続された各プログラマブルコントローラにシーケンスプログラムを転送する方法として、例えば、特許文献１に示されるような方法が知られている。特許文献１では、伝送路を介して複数のプログラマブルコントローラに接続されたプログラム保守ツールが、指定されたプログラマブルコントローラが他のプログラマブルコントローラと多重化されているか否かを判別する多重化判別機能を備えており、多重化された各プログラマブルコントローラへのシーケンスプログラムの転送を１回の操作によって一括して行うことが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２０２４８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、実際には、例えば、図１２（ａ）〜図１２（ｃ）に示されるように、各加工セルで実行される処理は、基本となる処理が共通であっても、各加工セルにおいて使用される工作機械や産業用ロボット等の構成に起因して処理の一部が異なることが多い。
【０００６】
特許文献１の転送方法は、各プログラマブルコントローラが多重化されたシステムを前提とするものであるため、一部のみが修正されたシーケンスプログラムを転送する場合であっても、シーケンスプログラム全体を各プログラマブルコントローラに転送する必要がある。従って、シーケンスプログラムの一部に他のプログラマブルコントローラのシーケンスプログラムと比較して差異部分がある場合には、当該差異部分が上書きされないようにシーケンスプログラムの一部である修正箇所のみを転送することができない。
【０００７】
そのため、かかるシーケンスプログラムの修正が必要な場合には、たとえ各シーケンスプログラムに含まれる共通の回路（ラダー回路）に対する修正であったとしても、各プログラマブルコントローラのシーケンスプログラムを個別に修正する必要がある。さらにこの場合、加工セルの数が増えると、シーケンスプログラムの修正の対象となるプログラマブルコントローラの確認や個々のプログラマブルコントローラにおけるシーケンスプログラムの修正に多大な時間がかかるという問題点がある。
【０００８】
本発明は、上述した事情に鑑みてなされたものであって、シーケンスプログラムの修正時間を短縮し、プログラマブルコントローラを含むシステムの保守性を高めることができるプログラマブルコントローラ及びこれを備えたシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明は以下の手段を提供する。
本発明の第１の態様は、通信ネットワークを介して他のプログラマブルコントローラと接続可能なプログラマブルコントローラであって、シーケンスプログラムを格納する記憶部と、制御部と、を備え、該制御部が、前記シーケンスプログラムを修正するシーケンスプログラム修正部と、修正された前記シーケンスプログラムから修正箇所及び修正内容を取得する修正情報取得部と、修正前のシーケンスプログラムから前記修正箇所を含む予め定めた範囲の第１の回路を抽出し、前記他のプログラマブルコントローラに対し、前記第１の回路に対応する回路が前記他のプログラマブルコントローラのシーケンスプログラムに含まれるか否かの問合わせを行う対応回路問合部と、該対応回路問合部による前記問合わせに対し、前記他のプログラマブルコントローラから前記第１の回路に対応する回路を含むとの応答を受信した場合にのみ、前記他のプログラマブルコントローラに前記修正内容を送信する修正内容送信部と、を備えるプログラマブルコントローラである。
【００１０】
上記第１の態様に係るプログラマブルコントローラによれば、シーケンスプログラム修正部によりシーケンスプログラムが修正されると、修正されたシーケンスプログラムの修正箇所及び修正内容が修正情報取得部により取得され、対応回路問合部により、修正前のシーケンスプログラムから修正箇所近傍の第１の回路が抽出され、この第１の回路に対応する回路を含むシーケンスプログラムを有するか否かの問合わせが他のプログラマブルコントローラに対して行われる。そして、問合わせの結果、第１の回路に対応する回路を含むとの応答がなされた他のプログラマブルコントローラに対してのみ修正内容送信部によって修正内容が送信される。
【００１１】
これにより、修正箇所近傍に対応する回路を有するプログラマブルコントローラに対して自動的にシーケンスプログラムの修正内容を伝達することができる。結果として、シーケンスプログラムを修正する際に、通信ネットワークで接続された複数のプログラマブルコントローラのシーケンスプログラムのそれぞれを個別に修正する必要がなくなるため、シーケンスプログラムの修正時間の短縮化を図ることができ、また、複数のプログラマブルコントローラを含むシステム全体の保守性を高めることができる。
【００１２】
上記第１の態様に係るプログラマブルコントローラにおいて、前記制御部が、前記他のプログラマブルコントローラから、該他のプログラマブルコントローラのシーケンスプログラムに含まれる第２の回路が前記シーケンスプログラムに含まれるか否かの問合わせを受信し、前記第２の回路に対応する回路を前記シーケンスプログラムから検索し、前記第２の回路に対応する回路が前記シーケンスプログラムに含まれるか否かを前記他のプログラマブルコントローラに対して応答する対応回路検索部と、前記他のプログラマブルコントローラから前記修正内容を受信し、該修正内容により前記第２の回路に対応する回路を更新するシーケンスプログラム更新部と、を備えていてもよい。
【００１３】
この構成によれば、対応回路検索部によって、第２の回路に対応する回路がシーケンスプログラムから検索され、この第２の回路に対応する回路がシーケンスプログラムに含まれるか否かの応答が他のプログラマブルコントローラに対してなされる。そして、シーケンスプログラムに含まれていた場合には、シーケンスプログラム更新部によって、他のプログラマブルコントローラから受信した修正内容により更新される。
【００１４】
これにより、他のプログラマブルコントローラで修正された第２の回路に対応する回路が自動的に更新されるため、シーケンスプログラムの修正時間を短縮することができ、また、複数のプログラマブルコントローラを含むシステム全体の保守性を高めることができる。
【００１５】
本発明の第２の態様は、前記通信ネットワークを介して互いに接続される複数台の上述のプログラマブルコントローラを備えるシーケンスプログラムを修正するシステムである。
【００１６】
本発明の第３の態様は、通信ネットワークを介して他のプログラマブルコントローラ及びこれらプログラマブルコントローラを統括するコントローラと接続可能なプログラマブルコントローラであって、シーケンスプログラムを格納する記憶部と、制御部と、を備え、該制御部が、前記シーケンスプログラムを修正するシーケンスプログラム修正部と、修正された前記シーケンスプログラムから修正箇所及び修正内容を取得する修正情報取得部と、修正前のシーケンスプログラムから前記修正箇所を含む予め定めた範囲の回路を抽出し、前記コントローラに対し、前記回路に対応する回路が、前記他のプログラマブルコントローラのシーケンスプログラムに含まれるか否かの問合わせを行う対応回路問合部と、該対応回路問合部による前記問合わせに対し、前記コントローラから前記回路に対応する回路を備えるとの応答を受信した場合にのみ、前記他のプログラマブルコントローラに前記修正内容を送信する修正内容送信部と、を備えるプログラマブルコントローラである。
【００１７】
上記第３の態様に係るプログラマブルコントローラによれば、シーケンスプログラム修正部によりシーケンスプログラムが修正されると、修正されたシーケンスプログラムの修正箇所及び修正内容が修正情報取得部により取得され、対応回路問合部により、修正前のシーケンスプログラムから修正箇所近傍の第１の回路が抽出され、この第１の回路に対応する回路を含むシーケンスプログラムを他のプログラマブルコントローラが有するか否かの問合わせがこれらプログラマブルコントローラを統括するコントローラに対して行われる。そして、問合わせの結果、第１の回路に対応する回路を含むとの応答がなされた他のプログラマブルコントローラに対してのみ修正内容送信部によって修正内容が送信される。
【００１８】
これにより、修正箇所近傍に対応する回路を有するプログラマブルコントローラに対して自動的にシーケンスプログラムの修正内容を伝達することができる。結果として、シーケンスプログラムを修正する際に、通信ネットワークで接続された複数のプログラマブルコントローラのシーケンスプログラムのそれぞれを個別に修正する必要がなくなるため、シーケンスプログラムの修正時間を短縮することができ、また、複数のプログラマブルコントローラを含むシステム全体の保守性を高めることができる。
【００１９】
上記第３の態様に係るプログラマブルコントローラにおいて、前記制御部が、前記コントローラからの要求に応じて、前記シーケンスプログラムの写しを前記コントローラに送信するシーケンスプログラム送信部と、前記他のプログラマブルコントローラから前記修正内容を受信し、該修正内容により前記シーケンスプログラムを更新するシーケンスプログラム更新部と、を備えていてもよい。
【００２０】
この構成によれば、上記第１の態様に係るプログラマブルコントローラと比較して、プログラマブルコントローラにおける実行される処理が少なくすることができるため、プログラマブルコントローラのＣＰＵ負荷を抑えることができる。
【００２１】
本発明の第４の態様は、前記通信ネットワークを介して互いに接続される複数台の上述のプログラマブルコントローラと、該プログラマブルコントローラに前記通信ネットワークを介して接続されるとともに、前記プログラマブルコントローラを統括するコントローラと、を備え、該コントローラが、一のプログラマブルコントローラから、前記問合わせを受信し、前記他のプログラマブルコントローラに前記シーケンスプログラムの写しを送信するように要求するシーケンスプログラム要求部と、前記回路に対応する回路を前記シーケンスプログラムの写しから検索し、前記回路に対応する回路が各前記シーケンスプログラムの写しに含まれるか否かを前記一のプログラマブルコントローラ及び他のプログラムコントローラに応答する応答部と、を備えるシーケンスプログラムを修正するシステムである。
【発明の効果】
【００２２】
本発明によれば、シーケンスプログラムの修正時間を短縮し、プログラマブルコントローラを含むシステムの保守性を高めることができるという効果を奏する。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態に係るプログラマブルコントローラの概略構成を示すブロック図である。
【図２】本発明の第１の実施形態に係るシステムの概略構成を示すブロック図である。
【図３】図２のシステムに備えられるプログラマブルコントローラの機能ブロックについて説明する図である。
【図４】シーケンスプログラムの一例を示す図であり、（ａ）は修正後のシーケンスプログラム、（ｂ）は修正前のシーケンスプログラムを示す図である。
【図５】図２のシステムに備えられた、シーケンスプログラムの修正が行われるプログラマブルコントローラにおける処理手順を示すフローチャートである。
【図６】図２のシステムに備えられた、シーケンスプログラムの更新が行われるプログラマブルコントローラにおける処理手順を示すフローチャートである。
【図７】本発明の第２の実施形態に係るシステムの概略構成を示すブロック図である。
【図８】図７のシステムに備えられるプログラマブルコントローラの機能ブロック図である。
【図９】図７のシステムに備えられた、シーケンスプログラムの修正が行われるプログラマブルコントローラにおける処理手順を示すフローチャートである。
【図１０】図７のシステムに備えられた、プログラマブルコントローラを統括するコントローラにおける処理手順を示すフローチャートである。
【図１１】図７のシステムに備えられた、シーケンスプログラムの更新が行われるプログラマブルコントローラにおける処理手順を示すフローチャートである。
【図１２】シーケンスプログラムの例を示す図であり、（ａ）が基本となる処理を示すラダー図であり、（ｂ）と（ｃ）は、その変形例を示すラダー図である。
【発明を実施するための形態】
【００２４】
以下に、本発明の一実施形態に係るプログラマブルコントローラ（以降、ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）という。）及びこれを備えたシステムについて図面を参照して説明する。
【００２５】
図１は、本実施形態に係るＰＬＣ１の概略構成を示すブロック図である。図１に示されるように、ＰＬＣ１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）（制御部）１１、主記憶装置であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）（記憶部）１３、補助記憶装置である不揮発性メモリ１４、外部インタフェース１５、表示コントローラ１６、ＭＤＩ（Ｍａｎｕａｌ  Ｄａｔａ  Ｉｎｐｕｔ）コントローラ１７、外部信号インタフェース１８並びに通信インタフェース１９等を備えて構成されている。ＲＡＭ１３には、シーケンスプログラムが格納されており、ＣＰＵ１１がＲＡＭ１３に格納されているシーケンスプログラムの命令を読み込んで実行することにより、種々の処理を実現させる。
【００２６】
［第１の実施形態］
図２は、本発明の第１の実施形態に係るシステム１０の概略構成を示したブロック図である。図２に示されるように、システム１０は、工作機械や産業用ロボット等からなる加工セル＃１〜加工セル＃Ｎのそれぞれに対応して、ＰＬＣ＃１〜ＰＬＣ＃Ｎによって示される複数台のＰＬＣ１を備えている。ＰＬＣ＃１〜ＰＬＣ＃ＮのＲＡＭ１３に格納されたシーケンスプログラム＃１〜シーケンスプログラム＃Ｎがそれぞれ実行されることにより、加工セル＃１〜加工セル＃Ｎの制御がそれぞれ行われる。また、ＰＬＣ＃１〜ＰＬＣ＃Ｎは、互いにイーサネット（登録商標）やＦＬ−ＮＥＴ等の通信ネットワークを介して接続されており、これによりＰＬＣ１間で種々のデータのやりとりが行われる。
なお、図２においては、説明のために、Ｎ≧４となるＮ組の加工セル及びＰＬＣ１の例を示しているが、これに限定されず、少なくとも複数の加工セル及びＰＬＣ１の組であればよい。
【００２７】
図３は、ＰＬＣ１の機能ブロックについて説明する図である。図３に示されるように、ＰＬＣ１のＣＰＵ１１は、ＲＡＭ１３のシーケンスプログラムを修正するシーケンスプログラム修正部１１１と、修正前後のシーケンスプログラムに基づいて、シーケンスプログラムの修正箇所及び修正内容を取得する修正情報取得部１１２と、修正前のシーケンスプログラムから修正箇所近傍のラダー回路を抽出し、これに対応するラダー回路が他のＰＬＣ１のシーケンスプログラムに含まれるか否かの問合わせを、通信ネットワーク２を介して接続された他のＰＬＣ１に対して行う対応回路問合部１１３と、修正内容を他のＰＬＣ１に対して送信する修正内容送信部１１４と、他のＰＬＣ１から問合わせを受けたラダー回路がシーケンスプログラムに含まれるか否かを検索し、その検索結果を他のＰＬＣ１に送信する対応回路検索部１１５と、他のＰＬＣ１からの要求に応じてＲＡＭ１３に格納されたシーケンスプログラムを更新するシーケンスプログラム更新部１１６と、を備えている。
【００２８】
このように構成された本実施形態に係るＰＬＣ１及びシステム１０の作用について以下に説明する。本実施形態では、図２に示されるＰＬＣ＃１のシーケンスプログラム＃１が修正された場合に、他のＰＬＣ＃２〜＃Ｎのシーケンスプログラム＃２〜＃Ｎが自動的に更新される処理手順について図３のブロック図並びに図５及び図６のフローチャートを参照して説明する。
【００２９】
ＰＬＣ＃１は、初期状態では、外部からシーケンスプログラム＃１の修正要求があるまで待機している（図５のステップＳＡ１）。修正要求を受けると、修正前のシーケンスプログラム＃１の複製がＲＡＭ１３内に作成される（図５のステップＳＡ２）。その後、シーケンスプログラム＃１の修正を行う（図５のステップＳＡ３）。本実施形態では、簡単のため、例えば、図４（ａ）に示されるように、最上段のラングに配された接点が論理和（ＯＲ）回路を形成するような修正が行われることを想定する。
【００３０】
シーケンスプログラム＃１の修正が終了（図５のステップＳＡ４）すると、修正情報取得部１１２において、シーケンスプログラム＃１の修正箇所及び修正内容が取得される（図５のステップＳＡ５）。修正箇所及び修正内容は、例えば、ＲＡＭ１３に複製されて格納された修正前のシーケンスプログラム＃１と修正後のシーケンスプログラム＃１とを比較することにより取得されてもよい。
【００３１】
次に、対応回路問合部１１３において、修正情報取得部１１２で取得された修正箇所とＲＡＭ１３に格納された修正前のシーケンスプログラム＃１とに基づいて、修正前のシーケンスプログラム＃１から修正箇所近傍のラダー回路（第１の回路）を抽出し、他のＰＬＣ＃２〜ＰＬＣ＃Ｎに対して、このラダー回路と対応するラダー回路が他のＰＬＣ＃２〜ＰＬＣ＃Ｎのシーケンスプログラムに含まれているか否かの問合わせを行う（図５のステップＳＡ６）。
その後、ＰＬＣ＃２〜＃Ｎの全てから、問合わせに対する回答を受信するまで、ＰＬＣ＃１は待機状態となる（図５のステップＳＡ７）。
【００３２】
本実施形態においては、修正箇所近傍のラダー回路として、図４（ｂ）に示されるように、修正箇所を含む２本のラング部分を設定しているが、これに限定されることなく、シーケンスプログラムの中のどの範囲のラダー回路を更新するか等に応じて変更可能である。
【００３３】
また、シーケンスプログラムが複数のプログラムによって構成される場合には、修正箇所近傍のラダー回路を抽出する代わりに、修正されたプログラムのプログラム名を抽出し、他のＰＬＣ＃２〜ＰＬＣ＃Ｎに対して、このプログラム名を有するプログラムが他のＰＬＣ＃２〜ＰＬＣ＃Ｎのシーケンスプログラムに含まれているかの問合わせを行うこととしてもよい。
【００３４】
ＰＬＣ＃１から上記問合わせを通信ネットワーク２を介して受信すると、ＰＬＣ＃２は待機状態を解除（図６のステップＳＢ１）し、対応回路検索部１１５において、ＰＬＣ＃２に格納されたシーケンスプログラム＃２の内部を検索（図６のステップＳＢ２）し、ＰＬＣ＃１から問合わせを受けたラダー回路（第２の回路）に対応するラダー回路が含まれているか否かを判定する（図６のステップＳＢ３）。
【００３５】
対応回路検索部１１５では、原則として、シーケンスプログラム＃１から抽出されたラダー回路を構成する要素の全てがシーケンスプログラム＃２に含まれるラダー回路と同一である場合に、シーケンスプログラム＃２がシーケンスプログラム＃１に対応するラダー回路を含むと判定されるが、これに限定されることなく、シーケンスプログラム＃１から抽出されたラダー回路を構成する要素の一部がシーケンスプログラム＃２の一部と同一である場合に、シーケンスプログラム＃２に対応するラダー回路が含まれると判定されることとしてもよい。
【００３６】
また、複数のプログラムによって構成されるシーケンスプログラムにおいて、上記問合わせが、指定されたプログラム名を有するプログラムが含まれているか否かの問合わせであった場合には、指定されたプログラム名と同一のプログラム名を有するプログラムがシーケンスプログラム＃２の中に存在するときに、シーケンスプログラム＃２に対応するラダー回路が含まれていると判定される。
【００３７】
対応回路検索部１１５において、ＰＬＣ＃１から問合わせを受けたラダー回路に対応するラダー回路を含むとの判定がなされた場合には、ＰＬＣ＃２は、ＰＬＣ＃１に対して、対応するラダー回路を含む旨の応答を送信（図６のＳＢ４）し、ＰＣＬ＃１から修正内容が送信されるまで待機状態となる（図６のＳＢ６）。一方、対応するラダー回路を含まないとの判定がなされた場合には、ＰＬＣ＃２は、ＰＬＣ＃１に対して、対応するラダー回路を含まない旨の応答を送信（図６のＳＢ５）し、処理を終了する。
【００３８】
図示されていないが、同様に、ＰＬＣ＃１から問合わせを受けたＰＬＣ＃３〜ＰＬＣ＃Ｎも、対応回路検索部１１５において、ＰＬＣ＃３〜ＰＬＣ＃Ｎに格納されたシーケンスプログラム＃３〜シーケンスプログラム＃Ｎの内部をそれぞれ検索し、ＰＬＣ＃１から問合わせを受けたラダー回路に対応するラダー回路が含まれているか否かを判定する。そして、対応回路検索部１１５において、ＰＬＣ＃１から問合わせを受けたラダー回路に対応するラダー回路を含むとの判定がなされた場合には、ＰＬＣ＃３〜ＰＬＣ＃Ｎは、ＰＬＣ＃１に対して、対応するラダー回路を含む旨の応答をそれぞれ送信し、ＰＣＬ＃１から修正内容が送信されるまで待機状態となる。一方、対応するラダー回路を含まないとの判定がなされた場合には、ＰＬＣ＃３〜ＰＬＣ＃Ｎは、ＰＬＣ＃１に対して、対応する回路を含まない旨の応答を送信（図６のＳＢ５）し、処理を終了する。
【００３９】
次に、待機状態にあったＰＬＣ＃１は、他のＰＬＣ＃２〜ＰＬＣ＃Ｎの全てから問合わせに対する応答を受信すると、待機状態を解除（図５のステップＳＡ７）し、修正内容送信部１１４において、ＰＬＣ＃２〜ＰＬＣ＃Ｎのうち、対応する回路を含む旨の応答のあったＰＬＣに対してのみ、修正情報取得部１１２で取得した修正内容を送信する（図５のステップＳＡ８）。
【００４０】
ＰＬＣ＃２〜＃Ｎのうち待機状態にあったＰＬＣは、ＰＬＣ＃１からの修正内容を受信すると、シーケンスプログラム更新部１１６において、受信した修正内容により対応する回路を更新する（図６のステップＳＢ７）。
【００４１】
このように、本実施形態では、シーケンスプログラム＃１の一部のラダー回路を修正したＰＬＣ＃１が、他のＰＬＣ＃２〜＃Ｎに対して、シーケンスプログラム＃１の一部のラダー回路に対応するラダー回路を有するか否かを問合わせ、シーケンスプログラム＃１の一部のラダー回路に対応する回路を有するＰＬＣに対してのみ修正内容を送信する。
【００４２】
これにより、通信ネットワークを介して接続された複数台のＰＬＣ１において、一のＰＬＣ１のシーケンスプログラムの一部のラダー回路が修正された場合に、これに対応する他のＰＬＣ１のシーケンスプログラムの一部のラダー回路も自動的に修正することができる。そのため、ＰＬＣ毎に個別にシーケンスプログラムを修正する必要がなくなるため、シーケンスプログラムの修正に必要とされる時間を大幅に短縮することができる。また、どのＰＬＣのどの箇所に共通するラダー回路が含まれるかを管理する必要がなくなり、シーケンスプログラムを修正する際の保守性を向上することができる。
【００４３】
［第２の実施形態］
次に、本発明の第２の実施形態に係るシステム２０について、図７〜１１に基づいて説明する。なお、図７及び図８において、図２及び図３に示す第１の実施形態の構成と同様の部分には同じ符号を付し、その詳細な説明は省略する。
【００４４】
図７は、システム２０の概略構成を示したブロック図である。図７に示されるように、システム２０は、ＰＬＣ＃１〜ＰＬＣ＃Ｎによって示される複数台のＰＬＣ１を統括するコントローラ３が通信ネットワーク２を介してＰＬＣ＃１〜ＰＬＣ＃Ｎと接続されている点で、第１の実施形態と異なっている。
なお、コントローラ３は、パーソナルコンピュータであってもよいし、専用の制御機器であってもよい。
【００４５】
図８は、ＰＬＣ１の機能ブロックについて説明する図である。図８に示されるように、本実施形態のＣＰＵ１１は、ＲＡＭ１３のシーケンスプログラムを修正するシーケンスプログラム修正部１１１と、修正前後のシーケンスプログラムに基づいて、シーケンスプログラムの修正箇所及び修正内容を取得する修正情報取得部１１２と、修正前のシーケンスプログラムから修正箇所近傍のラダー回路を抽出し、これに対応するラダー回路が他のＰＬＣ１のシーケンスプログラムに含まれるか否かの問合わせを、通信ネットワーク２を介して接続されたコントローラ３に対して行う対応回路問合部１１７と、修正内容を他のＰＬＣ１に対して送信する修正内容送信部１１８と、シーケンスプログラム送信部１１９と、他のＰＬＣ１からの要求に応じてＲＡＭ１３に格納されたシーケンスプログラムを更新するシーケンスプログラム更新部１１６と、を備えている。
【００４６】
また、図示していないが、コントローラ３は、一のＰＬＣ１から上記問合わせを受信し、他のＰＬＣ１にシーケンスプログラムの写しを送信するように要求するシーケンスプログラム要求部と、送信された他のＰＬＣ１のシーケンスプログラムの写しに一のＰＬＣ１のシーケンスプログラムから抽出されたラダー回路に対応するラダー回路が含まれるかい否かを検索し、その結果を一のＰＬＣ及び他のＰＬＣ１に対して応答する応答部と、を備えている。
【００４７】
このように構成された本実施形態に係るＰＬＣ１及びこれを備えるシステム２０の作用について以下に説明する。本実施形態では、ＰＬＣ＃１のシーケンスプログラム＃１が修正された場合に、他のＰＬＣ＃２〜ＰＬＣ＃Ｎのシーケンスプログラム＃２〜シーケンスプログラム＃Ｎが自動的に更新される処理手順について図８のブロック図並びに図９〜図１１のフローチャートを参照して説明する。
【００４８】
図９のステップＳＣ１〜ＳＣ５は、第１の実施形態と同様に、シーケンスプログラム修正部１１１及び修正情報取得部１１２において実行される処理手順であり、図５に示されるステップＳＡ１〜ＳＡ５と同一であるため説明を省略する。
【００４９】
ステップＳＣ５に続いて、対応回路問合部１１７において、修正情報取得部１１２で取得された修正箇所とＲＡＭ１３に格納された修正前のシーケンスプログラム＃１とに基づいて、修正前のシーケンスプログラム＃１から修正箇所近傍のラダー回路を抽出し、ＰＬＣ１を統括するコントローラ３に対し、このラダー回路に対応するラダー回路が、シーケンスプログラムの修正を行っていないＰＬＣ１、すなわち、ＰＬＣ＃１以外のＰＬＣ＃２〜＃Ｎのシーケンスプログラムに含まれているか否かの問合わせを行う（図９のステップＳＣ６）。その後、コントローラ３から、問合わせに対する応答である検索結果を受信するまで、ＰＬＣ＃１は待機状態となる（図９のステップＳＣ７）。
【００５０】
コントローラ３は、シーケンスプログラムが修正されたＰＬＣ＃１からの問合わせを受ける（図１０のステップＳＤ１）と、待機状態を解除し、シーケンスプログラム送信要求部において、シーケンスプログラムの修正が行われていないＰＬＣ、すなわちＰＬＣ＃２〜ＰＬＣ＃Ｎに対し、それぞれのＰＬＣのシーケンスプログラムの写しを送信するように要求する（図１０のステップＳＤ２）。
【００５１】
ＰＬＣ＃２は、コントローラ３から上記要求を受信する（図１１のステップＳＥ１）と、シーケンスプログラム送信部１１９において、シーケンスプログラム＃２をコントローラ３に送信する（図１１のステップＳＥ２）。ＰＬＣ＃２は、コントローラ３から検索結果を受信するまで、待機状態となる（図１１のステップＳＥ３）。
図示されていないが、同様に、コントローラ３から上記要求を受信したＰＬＣ＃３〜ＰＬＣ＃Ｎも、シーケンスプログラム送信部１１９において、シーケンスプログラム＃３〜シーケンスプログラム＃Ｎをコントローラ３にそれぞれ送信し、検索結果を受信するまで待機状態となる（図１１のステップＳＥ３）。
【００５２】
コントローラ３は、シーケンスプログラムの写しを送信するように要求されたＰＬＣ＃２〜ＰＬＣ＃Ｎの全てからシーケンスプログラム＃２〜シーケンスプログラム＃Ｎの写しを受信する（図１０のステップＳＤ３）と、待機状態を解除し、受信したシーケンスプログラム＃２〜シーケンスプログラム＃Ｎの内部を検索し、シーケンスプログラム＃１から抽出されたラダー回路に対応するラダー回路が含まれているか否かを判定する（図１０のステップＳＤ４）。
【００５３】
そして、コントローラ３は、応答部において、シーケンスプログラム＃１から抽出されたラダー回路に対応するラダー回路を含むか否かの検索結果をＰＬＣ＃１〜ＰＬＣ＃Ｎに送信（図１０のステップＳＤ５）し、処理を終了する。
【００５４】
待機状態にあったＰＬＣ＃１は、コントローラ３から、上記の検索結果を受信すると、待機状態を解除し、修正内容送信部１１８において、シーケンスプログラム＃１から抽出されたラダー回路に対応するラダー回路を含む旨の応答のあったＰＬＣに対してのみ、修正情報取得部１１２で取得した修正内容を送信する（図９のステップＳＣ８）。
【００５５】
待機状態にあったＰＬＣ＃２〜＃Ｎは、コントローラ３からの検索結果を受信すると、待機状態を解除し、シーケンスプログラム＃１から抽出されたラダー回路に対応するラダー回路が含まれていたか検索結果を確認、前記ラダー回路に対応するラダー回路を含まないシーケンスプログラムを有するＰＬＣ１は処理を終了し、再びコントローラ３からの要求を受信するまで待機状態に移行する（図１１のステップＳＥ４）。前記ラダー回路に対応するラダー回路を含むシーケンスプログラムを有するＰＬＣ１は、ＰＬＣ＃１からの修正内容を受信するまで、待機状態に移行する（図１１のステップＳＥ５）。ＰＬＣ＃１から修正内容を受信すると待機状態を解除し、シーケンスプログラム更新部１１６において、受信した修正内容により対応する回路を更新する（図１１のステップＳＥ６）。
【００５６】
このように、本実施形態では、シーケンスプログラム＃１の一部のラダー回路を修正したＰＬＣ＃１が、複数のＰＬＣを統括するコントローラ３に対して、ＰＬＣ＃２〜ＰＬＣ＃Ｎのシーケンスプログラム＃２〜＃Ｎは前記シーケンスプログラム＃１の一部のラダー回路に対応するラダー回路を有するかを問合わせる。問合せを受けたコントローラ３は、ＰＬＣ＃２〜ＰＬＣ＃Ｎのシーケンスプログラム＃２〜＃Ｎから上記一部のラダー回路に対応するラダー回路を検索し、検索結果をＰＬＣ＃１〜＃Ｎに送信する。そして、ＰＬＣ＃１は、その検索結果に基づいて、シーケンスプログラム＃１の一部のラダー回路に対応するラダー回路を有するＰＬＣに対してのみ修正内容を送信する。
【００５７】
これにより、通信ネットワークを介して接続された複数台のＰＬＣ１において、一のＰＬＣ１のシーケンスプログラムの一部のラダー回路が修正された場合に、これに対応する他のＰＬＣ１のシーケンスプログラムの一部のラダー回路も自動的に修正することができる。そのため、ＰＬＣ毎に個別にシーケンスプログラムを修正する必要がなくなるため、シーケンスプログラムの修正に必要とされる時間を大幅に短縮することができる。また、どのＰＬＣのどの箇所に共通するラダー回路が含まれるかを管理する必要がなくなり、シーケンスプログラムを修正する際の保守性を向上することができる。さらに、対応する回路を抽出する処理をコントローラ３が行っているため、第１の実施形態に係るＰＬＣと比較して、ＰＬＣにおけるにおける実行される処理が少なくすることができるため、プログラマブルコントローラのＣＰＵ負荷を抑えることができる。
【００５８】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこれらの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【００５９】
例えば、上記実施形態におけるシーケンスプログラムは、ラダー回路で記述されているが、これに限定されるものではなく、ＦＢＤ（ファンクション・ブロック・ダイアグラム）等で記述されるものであってもよい。
【符号の説明】
【００６０】
１  プログラマブルコントローラ
２  通信ネットワーク
１１  ＣＰＵ（制御部）
１３  ＲＡＭ（記憶部）
１１１  シーケンスプログラム修正部
１１２  修正情報取得部
１１３，１１７  対応回路問合部
１１４，１１８  修正内容送信部
１１５  対応回路検索部
１１６  シーケンスプログラム更新部
１１９  シーケンスプログラム送信部
【図１】
0006533170.tif 000002
【図２】
0006533170.tif 000003
【図３】
0006533170.tif 000004
【図４】
0006533170.tif 000005
【図５】
0006533170.tif 000006
【図６】
0006533170.tif 000007
【図７】
0006533170.tif 000008
【図８】
0006533170.tif 000009
【図９】
0006533170.tif 000010
【図１０】
0006533170.tif 000011
【図１１】
0006533170.tif 000012
【図１２】
0006533170.tif 000013