(57)【要約】【課題】プログラマブルコントローラに格納されているシーケンスプログラムの誤った置き換えを防止する。【解決手段】シーケンスプログラム編集装置１で新しいシーケンスプログラムを編集作成したとき、該シーケンスプログラムと共に該シーケンスプログラムに置き換え可能なシーケンスプログラムの識別情報Ｖ１、Ｖ２、Ｖ３、・・・を記憶しておく。プログラマブルコントローラ２からシーケンスプログラムに付されている識別情報を検出し、該検出した識別情報が新しいシーケンスプログラムと共に記憶されている識別情報の中にあれば、プログラマブルコントローラのシーケンスプログラムを、この新しいシーケンスプログラムに置き換える。置き換える前後のシーケンスプログラムの対応を確認して置き換えるから、シーケンスプログラムの誤置き換えを防止できる。【選択図】図２
2015162179.tif 000002
【特許請求の範囲】
【請求項１】
シーケンスプログラム編集装置で新しいシーケンスプログラムを編集したとき、該編集した新しいシーケンスプログラムと共に該シーケンスプログラムに置き換え可能な別のシーケンスプログラムに固有の識別情報を記憶しておき、プログラマブルコントローラに記憶するシーケンスプログラムに固有の識別情報を検出し、前記新しいシーケンスプログラムと共に記憶された識別情報を検索して前記検出した識別情報と一致するものがあるとき、前記プログラマブルコントローラのシーケンスプログラムを、前記新しいシーケンスプログラムに置き換えるようにしたプログラマブルコントローラのシーケンスプログラム置き換え方法。
【請求項２】
シーケンスプログラムを特定する識別情報をハッシュ関数によるシーケンスプログラムのハッシュ値とし、シーケンスプログラム編集装置でシーケンスプログラムを新規に作成及びバージョンアップする毎に、この新しいシーケンスプログラムと共に識別情報の履歴に当該シーケンスプログラムの識別情報を追加して記憶しておき、
プログラマブルコントローラに記憶するシーケンスプログラムのハッシュ値を識別情報として検出し、前記新しいシーケンスプログラムと共に記憶された識別情報の履歴を検索し、検出した識別情報と一致するものがあるとき、前記プログラマブルコントローラのシーケンスプログラムを前記新しいシーケンスプログラムに置き換えるようにしたプログラマブルコントローラのシーケンスプログラム置き換え方法。
【請求項３】
前記ハッシュ値の識別情報と共に、バージョンアップでのシーケンスプログラムの修正量を記憶しておき、識別情報の履歴の中からプログラマブルコントローラに記憶するシーケンスプログラムの識別情報と一致する識別情報が検索されたとき、一致した識別情報に対応して記憶されている修正量を抽出し、該修正量が設定値以下のとき、前記プログラマブルコントローラのシーケンスプログラムを前記新しいシーケンスプログラムに置き換えるようにした請求項２に記載のプログラマブルコントローラのシーケンスプログラム置き換え方法。
【請求項４】
前記修正量が設定値を超えているとき、シーケンスプログラムの置き換えを行うか否かを表示し、オペレータにより置き換えを実行するか否かを選択できるようにした請求項３に記載のプログラマブルコントローラのシーケンスプログラム置き換え方法。
【請求項５】
シーケンスプログラム編集装置で編集した新たなシーケンスプログラムと共に記憶する識別情報を検索し、プログラマブルコントローラに記憶するシーケンスプログラムの識別情報と一致するものがない場合、シーケンスプログラムの置き換えを行うか否かを表示し、オペレータにより置き換えを実行するか否かを選択できるようにした請求項１乃至４のいずれか１項に記載のプログラマブルコントローラのシーケンスプログラム置き換え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラに記憶するシーケンスプログラムを、シーケンスプログラム編集装置で編集、作成したシーケンスプログラムに置き換える方法に関する。
【背景技術】
【０００２】
各種機器をシーケンス制御するプログラマブルコントローラを複数備えた種々のシステムが開発されており、このプログラマブルコントローラで実行するシーケンスプログラムは一台のシーケンスプログラム編集装置で編集、作成し、該編集、作成されたシーケンスプログラムを各プログラマブルコントローラに格納するようにしたものが一般的である。  各プログラマブルコントローラで実行するシーケンスプログラムは同一のものもあるが、一般的に異なったものである。そのため、シーケンスプログラム編集装置で作成、編集したシーケンスプログラムを対応するプログラマブルコントローラに誤りなく格納する必要がある。特に、シーケンスプログラムをバージョンアップする毎に、誤りなくプログラマブルコントローラに格納する必要があり、プログラマブルコントローラとシーケンスプログラムとの組み合わせの管理が、システムが大規模化しプログラマブルコントローラの数が多くなるほど、困難になっている。
【０００３】
特許文献１には、プログラムコントローラで使用するプログラムデータを編集、作成するパソコン等の開発支援ツールに、複数のプログラマブルコントローラを接続したシステムにおいて、開発支援ツール内に、各プログラマブルコントローラに対応するホルダを設け、プログラマブルコントローラに対応するプログラムデータを特定するＩＤ番号と、ホルダ番号と、転送回数や転送日時の転送履歴情報とからなる識別コードを各ホルダおよび各プログラマブルコントローラに記憶させ、かつホルダには該識別コードと共にプログラムデータを格納し、開発支援ツールからプログラマブルコントローラにプログラムデータを送るときには、少なくともホルダに記憶するＩＤ番号とプログラマブルコントローラに記憶するＩＤ番号が一致したとき、すなわちホルダに記憶するプログラムデータとプログラマブルコントローラが対応したときに転送できるようにして、プログラマブルコントローラとプログラムデータの組み合わせを管理するようにして、プログラマブルコントローラのデータ管理方法、装置が記載されている。
【０００４】
又、特許文献２にも、ユーザプログラムを作成する１台の開発支援装置に、複数のプログラマブルコントローラを接続ケーブルで接続し、各プログラマブルコントローラには当該プログラマブルコントローラの識別コードのＩＤ番号が登録されると共に、開発支援装置でユーザプログラムを作成したときには、このユーザプログラムに転送先のプログラマブルコントローラの識別コードのＩＤ番号を設定しておき、開発支援装置からプログラマブルコントローラにユーザプログラムを転送するとき、転送しようとするユーザプログラムに設定されているＩＤ番号と、プログラマブルコントローラに設定されているＩＤ番号とを比較し、一致するプログラマブルコントローラに対してだけユーザプログラムを転送するようにして、誤転送を防止するようにした開発支援装置が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−６２３７１号公報
【特許文献２】特開平８−１９０４８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
シーケンスプログラム編集装置で編集、作成されたシーケンスプログラムを、複数のプログラマブルコントローラ中のいずれかのプログラマブルコントローラに格納する場合、誤りなく対応するシーケンスプログラムをプログラマブルコントローラに格納する必要がある。そのために、前述した特許文献１、２に記載された従来技術では、シーケンスプログラムとプログラマブルコントローラに対応するＩＤ番号を設定しておき、シーケンスプログラムのＩＤ番号とプログラマブルコントローラのＩＤ番号が一致したときに、シーケンスプログラムをプログラマブルコントローラに転送できるようにしている。
【０００７】
しかし、この従来技術の方法は、シーケンスプログラムとプログラマブルコントローラとを対応つけるものである。編集したシーケンスプログラムに対して、そのシーケンスプログラムを格納すべきプログラマブルコントローラを指定するＩＤ番号を付与する必要がある。
【０００８】
一方、プログラマブルコントローラに使用されるシーケンスプログラムは、バージョンアップされた新しいシーケンスプログラムに置き換える必要性がでてくる。この場合、バージョンアップされた新しいシーケンスプログラムに置き換える際、上述した従来技術では、シーケンスプログラムを置き換えるプログラマブルコントローラをＩＤ番号等で指定しなければならず、誤動作、勘違いなどにより誤ったシーケンスプログラムを置き換えるということが生じる。すなわち、置き換え前後のシーケンスプログラムの対応が取れているかの確認がなされていないため、誤ったシーケンスプログラムの置き換えが発生する。
【０００９】
そこで、本発明の目的は、プログラマブルコントローラに格納されているシーケンスプログラムを、シーケンスプログラム編集装置で編集、作成したシーケンスプログラムに置き換える際に、誤った置き換えが発生しないようにしたシーケンスプログラム置き換え方法を提供することにある。
【課題を解決するための手段】
【００１０】
本願の請求項１に係る発明のシーケンスプログラム置き換え方法は、シーケンスプログラム編集装置で新しいシーケンスプログラムを編集したとき、該編集した新しいシーケンスプログラムと共に該シーケンスプログラムに置き換え対象とするシーケンスプログラムの識別情報を記憶しておき、プログラマブルコントローラに記憶するシーケンスプログラムの識別情報を検出し、前記新しいシーケンスプログラムと共に記憶された識別情報を検索して前記検出した識別情報と一致するものがあるとき、前記プログラマブルコントローラのシーケンスプログラムと識別情報を、前記新しいシーケンスプログラムとその識別情報に置き換えるようにしたプログラマブルコントローラのシーケンスプログラム置き換えるものとした。
【００１１】
請求項２に係る発明のシーケンスプログラム置き換え方法は、シーケンスプログラムを特定する識別情報をハッシュ関数による当該シーケンスプログラムのハッシュ値とし、シーケンスプログラム編集装置でシーケンスプログラムを新規に作成及びバージョンアップする毎に、この新しいシーケンスプログラムと共に識別情報の履歴に当該シーケンスプログラムの識別情報を追加して記憶しておき、プログラマブルコントローラに記憶するシーケンスプログラムのハッシュ値を識別情報として検出し、前記新しいシーケンスプログラムと共に記憶された識別情報の履歴を検索し、検出した識別情報と一致するものがあるとき、前記プログラマブルコントローラのシーケンスプログラムを前記新しいシーケンスプログラムに置き換えるようにしたプログラマブルコントローラのシーケンスプログラム置き換えるものとした。
【００１２】
さらに、請求項３に係る発明は、前記ハッシュ値の識別情報と共に、バージョンアップでのシーケンスプログラムの修正量を記憶しておき、識別情報の履歴の中からプログラマブルコントローラに記憶するシーケンスプログラムの識別情報と一致する識別情報が検索されたとき、該識別情報に対応して記憶されている修正量を検出し、該修正量が設定値以下のとき、前記プログラマブルコントローラのシーケンスプログラムを前記新しいシーケンスプログラムに置き換えるようにした。
【００１３】
又、請求項４に係る発明は、前記修正量が設定値を超えているとき、シーケンスプログラムの置き換えを行うか否かを表示し、オペレータにより置き換えを実行するか否かを選択できるようにした。これにより、修正量が設定値を超え多いときには、オペレータが置き換えるか否か考慮して、置き換えるか否かを決定できるようにして安全を図った。
【００１４】
又、請求項５に係る発明は、シーケンスプログラム編集装置で編集した新たなシーケンスプログラムと共に記憶する識別情報を検索し、プログラマブルコントローラに記憶するシーケンスプログラムの識別情報と一致するものがない場合、シーケンスプログラムの置き換えを行うか否かを表示し、オペレータにより置き換えを実行するか否かを選択できるようにした。これにより、プログラマブルコントローラに全く新たにシーケンスプログラムを格納するときや、または、それまでに格納されていたシーケンスプログラムとは全く異なるようなシーケンスプログラムを格納することをも可能にした。
【発明の効果】
【００１５】
本発明は、プログラマブルコントローラに記憶するシーケンスプログラムを置き換える際、置き換え前後のシーケンスプログラムの対応を確認して、置き換え可能なとき置き換えを実行するようにしたので、誤ったシーケンスプログラムの置き換えを防止できる。  
又、シーケンスプログラムを特定する識別情報をシーケンスプログラムのハッシュ値とすることによって、バージョンアップで新たなシーケンスプログラムが編集される毎に識別情報の履歴を自動的に作成できるので、人為的ミスを防止でき、誤りなくバージョンアップしたシーケンスプログラムに置き換えることができる。さらに、識別情報と共にバージョンアップで修正した修正量を記憶することによって、プログラマブルコントローラのシーケンスプログラムをバージョンアップしたシーケンスプログラム置き換えるとき、置き換え前後のシーケンスプログラムの修正量を考慮することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明のシーケンスプログラム置き換え方法を適用するシステムの一例の概要ブロック図である。
【図２】本発明の第１の実施形態の概要を説明する説明図である。
【図３】第１の実施形態におけるシーケンスプログラムの置き換え方法の動作流れ図である。
【図４】本発明の第２の実施形態の概要を説明する説明図である。
【図５】第２の実施形態におけるシーケンスプログラムの置き換え方法の動作流れ図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態を図面と共に説明する。  
図１は、本発明のシーケンスプログラム置き換え方法を適用するシステムの一例の概要ブロック図である。  
このシステムでは、一台のシーケンスプログラム編集装置１に１以上のプログラマブルコントローラが接続されており、図１に示す例では、複数のプログラマブルコントローラ２・・・が、ＲＳ−２３２Ｃ接続、Ｅｔｈｅｒｎｅｔ（登録商標）接続、ＵＳＢ接続等の通信経路３で接続されている例を示している。  
シーケンスプログラム編集装置１は、プロセッサ１１に、バス１７を介して、メモリ１２、キーボード等の入力装置１３、表示装置１４、外部記憶媒体を接続するインタフェース１５、通信インタフェース１６が接続されている。メモリ１２は、システムプログラム記憶するＲＯＭ、編集されたシーケンスプログラムや設定データ等を記憶する不揮発性メモリ、演算等に使用されるＲＡＭ等で構成されている。インタフェース１５はメモリカード、ＵＳＢメモリ等の記憶媒体と接続するためのものであり、通信インタフェース１６は、プログラマブルコントローラ２・・・と接続する通信経路３と接続するためのものである。
【００１８】
各プログラマブルコントローラ２・・・は、概略同一構成であり、１つのプログラマブルコントローラ２だけ詳述している。プロセッサ２１にはバス２８を介して、メモリ２２、キーボード等の入力装置２３、表示装置２４、外部記憶媒体を接続するインタフェース２５、通信インタフェース２６、入出力回路２７が接続されている。メモリ２２は、システムプログラム記憶するＲＯＭ、シーケンスプログラムや設定データ等を記憶する不揮発性メモリ、ＲＡＭ等で構成されている。ＲＡＭはシーケンスプログラムが実行するときの各種信号を記憶する実行用信号メモリ、又、実行するシーケンスプログラムを格納し各種演算を行うワークメモリとして使用される。インタフェース２５はメモリカード、ＵＳＢメモリなどの記憶媒体と接続するためのものであり、通信インタフェース２６はシーケンスプログラム編集装置１と通信経路３を介して接続するためのインタフェースであり、入出力回路２７は、プログラマブルコントローラ２・・・がシーケンス制御する各種機器に接続するものである。
【００１９】
上述したシーケンスプログラム編集装置１やプログラマブルコントローラ２・・・の構成は従来のものと変わりはなく、シーケンスプログラム編集装置１でシーケンスプログラムを作成編集し、各プログラマブルコントローラ２・・・は、接続された各種機器を、格納されているシーケンスプログラムを実行してシーケンス制御する点では、従来と同様である。従来と相違する点は、プログラマブルコントローラ２・・・のシーケンスプログラムをシーケンスプログラム編集装置１で編集作成したシーケンスプログラムに置き換えるとき、置き換え前後のシーケンスプログラムの対応を確認して置き換えができるようにした点である。
【００２０】
図２は本発明の第１の実施形態の概要を説明する説明図である。  
シーケンスプログラム編集装置１で、新たなシーケンスプログラムを編集、作成すると、該シーケンスプログラムに対して置き換え可能なシーケンスプログラムの識別情報Ｖ１、Ｖ２、・・・Ｖ８を設定登録する。  
プログラマブルコントローラ２で実行しているシーケンスプログラム（図２では更新前のシーケンスプログラムと記している）を、編集した新しいシーンスプログラムに置き換えようとする場合、プログラマブルコントローラ２のシーケンスプログラムに設定されている識別情報を読み出し、該識別情報が、シーケンスプログラム編集装置１で新たに編集されたシーケンスプログラムに設定登録されている識別情報の中のいずれかに一致するか比較し、一致するものがあれば、置き換え可能であることから、プログラマブルコントローラ２のシーケンスプログラムをこの新しいシーケンスプログラムに置き換える。なお、一致する識別情報がないときには、オペレータが置き換えをするか否かを選択できるようにする。これは、プログラマブルコントローラ２に新規にシーケンスプログラムを格納する場合や、プログラマブルコントローラ２に記憶されているシーケンスプログラムとは全く異なるシーケンスプログラムを、プログラマブルコントローラに格納できるようにしたものである。
【００２１】
図３は、この第１の実施形態におけるシーケンスプログラムの置き換え方法の動作流れ図である。
【００２２】
シーケンスプログラム編集装置１では、新たなシーケンスプログラムを編集したとき、該シーケンスプログラムに置き換え可能な既存のシーケンスプログラムの識別情報Ｖ１、Ｖ２、・・・Ｖ８・・を設定登録する。そして、通信経路３で接続されている複数のプログラマブルコントローラ２・・・の中からこの新しいシーケンスプログラムに置き換えるプログラマブルコントローラ２を選択し、図３に示すシーケンスプログラムの置き換え動作を開始させる。プログラマブルコントローラ２のプロセッサ２１は、現在登録されているシーケンスプログラムに付されている識別情報を読み取とり、シーケンスプログラム編集装置１に送信する（ステップＳ１０）。シーケンスプログラム編集装置１のプロセッサ１１は、新たに編集したシーケンスプログラムに対して設定されている識別情報の中に、送られてきた識別情報と一致するものがないか検索する（ステップＳ１１）。検出されると（ステップＳ１２の「Ｙｅｓ」）、置き換え可能であることから、シーケンスプログラム編集装置１が編集した新たなシーケンスプログラム及び当該シーケンスプログラムの識別情報をプログラマブルコントローラ２に送信する。プログラマブルコントローラ２のプロセッサ２１は今まで記憶していたシーケンスプログラムおよび識別情報の代わりに、送られてきたシーケンスプログラムと識別情報に置き換え記憶し（ステップＳ１３）、このシーケンスプログラムの置き換え処理を終了する。
【００２３】
一方、プログラマブルコントローラ２に記憶されているシーケンスプログラムに付されている識別情報が新たに編集したシーケンスプログラムに対して設定されている識別情報の中から検出されないと（ステップＳ１２で「Ｎｏ」）、シーケンスプログラム編集装置１のプロセッサ１１は、表示装置１４に置き換えてよいか等の確認のメッセージを表示し（ステップＳ１４）、オペレータが入力装置１３より、置き換えないことを入力すれば（ステップＳ１５の「しない」）、新たなシーケンスプログラムを送信することなく、シーケンスプログラムの置き換えも行われない。また、プログラマブルコントローラ２に新たにシーケンスプログラムを格納するときや、それまでプログラマブルコントローラ２に記憶されているシーケンスプログラムとは全く異なるシーケンスプログラムをプログラマブルコントローラに格納する等のために、オペレータが、シーケンスプログラムの置き換えることを選択すれば（ステップＳ１５の「する」）、ステップＳ１３に進み、編集した新たなシーケンスプログラム及び当該シーケンスプログラムの識別情報をプログラマブルコントローラ２に送信し、プログラマブルコントローラ２ではシーケンスプログラムおよび識別情報の置き換えを行う。
【００２４】
以上のように、本実施形態では、新たに編集されたシーケンスプログラムと、プログラマブルコントローラで使用されてきた更新前のシーケンスプログラムとの対応関係を確認して、シーケンスプログラムの置き換えを行うようにしたから、誤ったシーケンスプログラムの置き換えを確実に防止することができる。
【００２５】
図４は、本発明の第２の実施形態の概要を説明する説明図である。  
この例では、新しいシーケンスプログラムは、バージョンアップして編集作成される例を示している。又、識別情報としては、シーケンスプログラムが持つ固有の値を用いるものとしている。シーケンスプログラムの固有の値には、ハッシュ関数をシーケンスプログラム自身に適用して得られるハッシュ値を利用することができる。一般的なハッシュ関数の例としては、ＭＤ５やＳＨＡ１やＣＲＣなどがある。この実施形態ではシーケンスプログラムのハッシュ値として、巡回冗長検査（ＣＲＣ）の値を用いる。さらに、この実施形態では、前バージョンからの修正量も記憶し、修正量の大きさによってシーケンスプログラムの置き換えを行うか否かの選択をもできるようにしている。また、この修正量として変更ネット数等を用いる。
【００２６】
シーケンスプログラム編集装置１で、シーケンスプログラムを新規に作成またはバージョンアップして新たなシーケンスプログラムを編集したとき、その作成編集したシーケンスプログラムのＣＲＣの値を識別情報として、このシーケンスプログラムの識別情報の履歴に追加する。
【００２７】
図４に示す例では、４回のバージョンアップが行われて新たなシーケンスプログラムがシーケンスプログラム編集装置１で編集された状態を示している。最初（番号１）に、新規に作成されたシーケンスプログラムの識別情報として、このシーケンスプログラムの固有の値としてＣＲＣの値「０ｘ００１１２２３３」が記憶され、修正量は、新規に作成したシーケンスプログラムであるから、零の「０ｘ０」が記憶されている（ＣＲＣの値、修正量は１６進法で表している）。同様に、新規のシーケンスプログラム（１番目のシーケンスプログラム）をバージョンアップして２番目に得られたシーケンスプログラムの識別情報（ＣＲＣの値）「０ｘ０Ｆ１Ｅ２４２３」と、バージョンアップでの修正量（１番目のシーケンスプログラムからの修正量）「０ｘ０Ｆ９９」、さらにバージョンアップして３番目に得られたシーケンスプログラムの識別情報（ＣＲＣの値）「０ｘ８１８６３Ｅ２Ｆ」と、このバージョンアップでの修正量「０ｘ００８０」が記憶されており、同様に、バージョンアップして得られた４回目のシーケンスプログラムの識別情報（ＣＲＣの値）「０ｘＥ１Ｃ６３９０９」と、修正量「０ｘ０８２０」、当該バージョンアップで得られた５番目シーケンスプログラムの識別情報（ＣＲＣの値）「０ｘ２３Ｆ６５３Ｄ８」と、修正量「０ｘ００１０」が記憶されている。
【００２８】
一方、プログラマブルコントローラ２で使用していたシーケンスプログラム（図４では更新前のシーケンスプログラムと記載）を、当該バージョンアップで更新した新しいシーケンスプログラムに置き換えるとき、プログラマブルコントローラ２のプロセッサ２１は、プログラマブルコントローラ２に今まで登録されている（更新前の）シーケンスプログラムから識別情報としてのＣＲＣの値を生成し（図４では、０ｘ８１８６３Ｅ２Ｆの値が生成されたことを表している）、シーケンスプログラム編集装置１に送信する。シーケンスプログラム編集装置１のプロセッサ１１は、送られてきたＣＲＣの値の識別情報と一致する識別情報が、バージョンアップで編集されたシーケンスプログラムに付加されている識別情報の履歴の中に存在しないか検索し、存在しているときは（図４では、番号３の２回バージョンアップされたシーケンスプログラムの識別情報と一致）、置き換え可能として、当該バージョンアップで新しくなったシーケンスプログラム（５番目のシーケンスプログラム）をプログラマブルコントローラ２に送信する。プログラマブルコントローラ２のプロセッサ２１は、記憶するシーケンスプログラムをこの送られてきた新しいシーケンスプログラムに置き換える。
【００２９】
ただし、この実施形態では、シーケンスプログラムの置き換えが可能と判断されても、この更新前のシーケンスプログラムから新たなシーケンスプログラムまでのバージョンアップでの修正量が所定値を超えるような場合は、オペレータが置き換えるか否かを選択できるようにしている。
【００３０】
また、更新前のシーケンスプログラムの識別情報（ＣＲＣの値）が、シーケンスプログラム編集装置１で、バージョンアップで編集されたシーケンスプログラムに付加されている識別情報の履歴の中に存在しない場合にも、置き換えするか否かをオペレータが選択できるようにしている。
【００３１】
図５は、この第２の実施形態におけるシーケンスプログラムの置き換え方法の動作流れ図である。
【００３２】
シーケンスプログラム編集装置１では、新たなシーケンスプログラムを編集したとき、
ＣＲＣの値を求め、このＣＲＣの値を当該シーケンスプログラムの識別情報として、バージョンアップして得られた識別情報の履歴に追加する。図４で示す例では、４回のバージョンアップが行われ、新規に作成されシーケンスプログラムに対する識別情報（ＣＲＣの値）「０ｘ００１１２２３３」（１番目）から、当該４回目のバージョンアップでのシーケンスプログラムの識別情報（ＣＲＣの値）「０ｘ００２３Ｆ６５３Ｄ８」（５番目）までの識別情報の履歴が、この新たに編集されたシーケンスプログラムに対応して記憶されている。
【００３３】
そして、シーケンスプログラムを置き換えるプログラマブルコントローラ２を選択し、図５に示すシーケンスプログラムの置き換え動作を開始させる。プログラマブルコントローラ２は、現在登録されているシーケンスプログラムのＣＲＣの値を算出して識別情報を求め、シーケンスプログラム編集装置１に送信する（ステップＳ２０）。シーケンスプログラム編集装置１のプロセッサ１１は、新たに編集したシーケンスプログラムに対して設定されている識別情報（ＣＲＣの値）の履歴の中に、送られてきた識別情報（ＣＲＣの値）と一致するものがあるか検索する（ステップＳ２１）。一致するものがあると（ステップＳ２２の「Ｙｅｓ」）、一致した識別情報より後の修正量を合計する（ステップＳ２３）。すなわち、プログラマブルコントローラ２にその時点で格納されているシーケンスプログラムからシーケンスプログラム編集装置１で編集された新たなシーケンスプログラムまでバージョンアップを重ね、各バージョンアップでの修正量を合計した合計修正量を求める。図４の例では、番号３の識別情報が一致するから、プログラマブルコントローラ２はこの３番目の識別情報のシーケンスプログラムが格納されているものであり、このシーケンスプログラムより２回バージョンアップされて、５番目の識別情報を有する新たなシーケンスプログラムが編集作成されているものであるから、４番目、５番目の識別情報に対応して記憶されている修正量「０ｘ０８２０」と「０ｘ００１０」を合計して、現在のシーケンスプログラムから、置き換えようとする新たなシーケンスプログラムまでの、バージョンアップまでの修正量を求める。
【００３４】
この修正量が設定値を超えていないか判断する（ステップＳ２４）。超えていなければ、置き換え可能として、この編集して得られたこの新たなシーケンスプログラをプログラマブルコントローラ２に送信する。プログラマブルコントローラ２のプロセッサ２１は、記憶するシーケンスプログラムを、この送られてきた新しいシーケンスプログラムに置き換える（ステップＳ２５）。
【００３５】
一方、ステップＳ２３で求めた修正量が設定値を超えると判断された場合には（ステップＳ２４）、表示装置１４にシーケンスプログラムを置き換えてよいかの確認メッセージを表示し（ステップＳ２６）、オペレータが、入力装置１３より、置き換えをすると入力すれば（ステップＳ２７）、ステップＳ２５に移行し、前述したようにシーケンスプログラムの置き換えを実行する。置き換えしないと入力すれば、シーケンスプログラムの置き換えを行うことなく終了する。
【００３６】
又、ステップＳ２２で、プログラマブルコントローラ２から送られてきた識別情報と一致する識別情報が、識別情報の履歴にないと判断された場合にも、ステップＳ２６に移行し、前述したように、シーケンスプログラムの置き換えをするか否かの確認メッセージを表示装置１４に表示し、置き換えを行うか否かをオペレータに選択させる。これは、プログラマブルコントローラ２に新規にシーケンスプログラムを格納するときや、プログラマブルコントローラ２に記憶されているシーケンスプログラムとは全く異なるシーケンスプログラムをプログラマブルコントローラに格納できるようにしたものである。
【００３７】
この第２の実施形態では、通常行われているハッシュ値として巡回冗長検査（ＣＲＣ）のＣＲＣ値を識別情報としたので、特別な手段を必要とせず、シーケンスプログラム編集装置１でシーケンスプログラムのバージョンアップを行う毎に、ＣＲＣ値を求めて識別情報としてその履歴に付加するだけで、置き換え前後のシーケンスプログラムの対応をとって、誤りなくシーケンスプログラムの置き換えを実行することができるものである。
【００３８】
上述した各実施形態では、シーケンスプログラム編集装置１とプログラマブルコントローラ２が通信経路３で接続されているものであったが、この通信経路の代わり、メモリカードやＵＳＢメモリ等のリムーバブルな記憶媒体を介して、シーケンスプログラム編集装置１とプログラマブルコントローラ２間でシーケンスプログラム等のデータの送受を行うようにしてもよい。
【００３９】
この場合、シーケンスプログラム編集装置１で新たなシーケンスプログラムを編集作成したとき、図２、図４に示すように識別情報をシーケンスプログラムに付加設定したデータを作成し、これを、インタフェース１５を介してメモリカードやＵＳＢメモリ等の外部記憶媒体に記憶し、この記憶媒体をプログラマブルコントローラ２のインタフェース２５に装着し、この記憶媒体に記憶された新たなシーケンスプログラムと識別情報に基づいて、プログラマブルコントローラ２のプロセッサ２１が、図３もしくは、図５に示す動作処理を実行して、シーケンスプログラムの置き換えができるか否かの判断を行い、置き換えが可能であれば、この記憶媒体に記憶されている新たなシーケンスプログラムを（又、第１の実施形態においては識別情報も）プログラマブルコントローラ２に格納するようにすればよいものである。
【符号の説明】
【００４０】
１  シーケンスプログラム編集装置
２  プログラマブルコントローラ
３  通信経路
【図１】
2015162179.tif 000003
【図２】
2015162179.tif 000004
【図３】
2015162179.tif 000005
【図４】
2015162179.tif 000006
【図５】
2015162179.tif 000007