(57)【要約】【課題】プログラム変更時にプログラマブルコントローラへ書き込む情報量が少ないプログラム変更方法を得ること。【解決手段】同一の機能ブロック回路を複数有するシーケンスプログラムを備えたプログラマブルコントローラのシーケンスプログラムのプログラム変更方法において、プログラマブルコントローラと接続された外部装置から、シーケンスプログラムを変更するためのプログラム変更情報５０を送信するステップと、プログラム変更情報５０をプログラマブルコントローラが記憶するステップと、記憶したプログラム変更情報５０に基づいて、プログラマブルコントローラのシーケンスプログラムの変更を行なうステップと、を含み、プログラム変更情報５０は、変更される機能ブロック回路に関する回路変更情報５１、シーケンスプログラム内で変更される機能ブロック回路を格納する複数の先頭アドレスを有する。【選択図】        図４−１
2006031462.tif 000002
【特許請求の範囲】
【請求項１】
同一の機能ブロック回路を複数有するシーケンスプログラムを備えたプログラマブルコントローラの前記シーケンスプログラムのプログラム変更方法において、
前記プログラマブルコントローラと接続された外部装置から、前記シーケンスプログラムを変更するためのプログラム変更情報を送信するプログラム送信ステップと、
前記外部装置から送信された前記プログラム変更情報を前記プログラマブルコントローラが記憶するプログラム記憶ステップと、
記憶した前記プログラム変更情報に基づいて、前記プログラマブルコントローラのシーケンスプログラムの変更を行なうプログラム変更ステップと、
を含み、
前記プログラム変更情報は、変更される機能ブロック回路に関する情報および前記シーケンスプログラム内で前記変更される機能ブロック回路を格納する複数のアドレスに関する情報を有することを特徴とするプログラム変更方法。
【請求項２】
前記プログラム変更情報は、変更前の機能ブロック回路のサイズおよび変更後の機能ブロック回路のサイズに関する情報をさらに有することを特徴とする請求項１に記載のプログラム変更方法。
【請求項３】
同一の機能ブロック回路を複数有するシーケンスプログラムを実行するプログラマブルコントローラにおいて、
シーケンスプログラムの編集を行なう外部装置から、前記シーケンスプログラムを変更するためのプログラム変更情報を受信する情報受信部と、
前記外部装置から受信した前記プログラム変更情報を記憶するプログラム記憶部と、
記憶した前記プログラム変更情報に基づいて、前記シーケンスプログラムの変更を行なうプログラム変更部と、
を備え、
前記プログラム変更情報は、変更される機能ブロック回路に関する情報および前記シーケンスプログラム内で前記変更される機能ブロック回路を格納する複数のアドレスに関する情報を有することを特徴とするプログラマブルコントローラ。
【請求項４】
プログラマブルコントローラが実行するシーケンスプログラムの編集を行なうプログラム編集装置において、
前記プログラマブルコントローラのシーケンスプログラムを変更するための情報をプログラム変更情報として作成する変更情報作成部を備え、
前記シーケンスプログラムは同一の機能ブロック回路を複数有し、かつ前記プログラム変更情報は変更される機能ブロック回路に関する情報および前記シーケンスプログラム内で前記変更される機能ブロック回路を格納する複数のアドレスに関する情報を有することを特徴とするプログラム編集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラのプログラム変更方法、プログラマブルコントローラおよびプログラム編集装置に関するものである。
【背景技術】
【０００２】
プログラマブルコントローラのシーケンスプログラムを変更する際、変更する回路の存在する先頭アドレス、変更前の回路サイズ、変更後の回路サイズ、変更後の回路に関する情報などが必要となる。
【０００３】
従来、ロジックをまとめた部品回路であるファンクションブロック（ＦＢ（Function Block））を使用せずにシーケンスプログラムの変更を行なっていた。この場合、変更する回路はそれぞれ回路の内容が異なるため、変更する回路毎に回路の変更位置の先頭アドレスや、変更前の回路サイズ、変更後の回路サイズ、変更後の回路などの回路変更に関する情報をプログラマブルコントローラに書き込み、シーケンスプログラムを変更する必要がある。
【０００４】
特許文献１に記載の、プログラマブルコントローラのプログラム変更方法では、同時に変更すべき複数のモジュールを一旦プログラムメモリ上の空き領域に作成しておき、操作者の指令に基づいて一括活性化させることとしている。この活性化は実行モジュールの先頭番地などを保持しているディレクトリを書き換えることによって行なわれ、バッファメモリ内の複数のモジュールが活性化されると同時にそれまで有効だった対応するモジュールを無効化している。
【０００５】
【特許文献１】特開平５−２２４７０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記従来の技術によれば、複数のモジュールをオンラインで同時に変更可能することは可能となるが、変更するモジュールが複数箇所ある場合、この変更するモジュールが同一のものであっても、モジュール毎にモジュール変更に関する情報を、プログラマブルコントローラに書き込む必要がある。このため、プログラマブルコントローラに書き込むモジュール変更に関する情報の情報量が増大し、モジュール変更に関する情報の書込み時間に長時間を要するとともに、モジュール変更に関する情報を書き込むために多くのメモリ容量が必要になるといった問題があった。
【０００７】
本発明は、上記に鑑みてなされたものであって、プログラム変更時にプログラマブルコントローラへ書き込む情報量が少ないプログラム変更方法、プログラマブルコントローラおよびプログラム編集装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、同一の機能ブロック回路を複数有するシーケンスプログラムを備えたプログラマブルコントローラの前記シーケンスプログラムのプログラム変更方法において、前記プログラマブルコントローラと接続された外部装置から、前記シーケンスプログラムを変更するためのプログラム変更情報を送信するプログラム送信ステップと、前記外部装置から送信された前記プログラム変更情報を前記プログラマブルコントローラが記憶するプログラム記憶ステップと、記憶した前記プログラム変更情報に基づいて、前記プログラマブルコントローラのシーケンスプログラムの変更を行なうプログラム変更ステップと、を含み、前記プログラム変更情報は、変更される機能ブロック回路に関する情報および前記シーケンスプログラム内で前記変更される機能ブロック回路を格納する複数のアドレスに関する情報を有することを特徴とする。
【０００９】
この発明によれば、シーケンスプログラムを変更するためのプログラム変更情報は、同一の機能ブロック回路を複数箇所で変更する場合であっても、この同一の機能ブロック回路に関する回路変更情報は１つであるため、外部装置からプログラマブルコントローラへ書き込む情報量を小さくすることが可能となる。
【発明の効果】
【００１０】
この発明によれば、外部装置からプログラマブルコントローラへ書き込む情報量を小さくすることが可能となるので、外部装置からプログラマブルコントローラにシーケンスプログラムを変更するためのプログラム変更情報を書き込む時間が短くなるとともに、プログラム変更情報を格納するメモリのサイズを小さくすることが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明にかかるプログラム変更方法、プログラマブルコントローラおよびプログラム編集装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態
図１は、本発明の実施の形態に係るプログラム変更システムの構成を示す図である。プログラム変更システムは、プログラマブルコントローラ１０、シーケンスプログラム編集装置２０からなり、プログラマブルコントローラ１０とシーケンスプログラム編集装置２０は通信手段４０によって接続されている。プログラマブルコントローラ１０は、演算装置（プログラム変更部）１１、メモリ部（プログラム記憶部）３０、編集装置用Ｉ／Ｆ部（情報受信部）１５、デバイス情報用Ｉ／Ｆ部１６からなる。
【００１３】
編集装置用Ｉ／Ｆ部１５は、シーケンスプログラム編集装置２０で作成されたプログラム（後述するシーケンスプログラム７０）やシーケンスプログラム７０を変更する際のプログラム変更に関する情報（後述するプログラム変更情報５０など）などを受信する通信インタフェースである。
【００１４】
デバイス情報用Ｉ／Ｆ部１６は、図示しない外部デバイスと情報の送受信を行なう通信インタフェースである。デバイス情報用Ｉ／Ｆ部１６は、外部デバイスから外部デバイスの状態に関する情報として外部デバイスのスイッチのＯＮ/ＯＦＦなどの情報を受信する。
【００１５】
メモリ部３０は、変更情報格納部１２、シーケンスプログラム格納部１３、デバイス記憶部１４を備える。変更情報格納部１２は、プログラム変更情報５０を格納（記憶）するメモリである。シーケンスプログラム格納部１３は、シーケンスプログラム編集装置２０などで作成された、外部デバイスを制御するシーケンスプログラム７０を格納するメモリである。デバイス記憶部１４は、外部デバイスの状態に関する情報や演算装置１１によるシーケンスプログラムの演算結果を記憶するデバイスメモリである。
【００１６】
演算装置１１は、シーケンスプログラム格納部１３に格納されたシーケンスプログラムを実行する。演算装置１１は、シーケンスプログラムの実行結果をデバイス記憶部１４に設定し、設定した実行結果をデバイス情報用Ｉ／Ｆ部１６を介して、外部デバイスに出力する。プログラマブルコントローラ１０は、この演算装置１１による処理を繰り返すことによって外部デバイスのシーケンス制御を行う。演算装置１１は、変更情報格納部１２に格納されたプログラム変更情報５０に基づいてシーケンスプログラム格納部１３に格納されたシーケンスプログラムの変更を行なう。この演算装置１１によるプログラムの変更処理が特許請求の範囲に記載のプログラム変更部の処理に対応する。
【００１７】
シーケンスプログラム編集装置２０は、シーケンスプログラム７０などの作成や編集を行なう装置であり、例えばパーソナルコンピュータからなる。シーケンスプログラム編集装置２０は、プログラム作成部２１、変更情報作成部２２、通信Ｉ／Ｆ部２３を備える。
【００１８】
プログラム作成部２１は、プログラマブルコントローラ１０が実行するシーケンスプログラム７０の作成を行なう。変更情報作成部２２は、シーケンスプログラム７０を変更する際のプログラム変更情報５０を作成する。通信Ｉ／Ｆ部２３は、プログラマブルコントローラ１０と情報の送受信を行う通信インタフェースである。通信Ｉ／Ｆ部２３はプログラム作成部２１で作成したシーケンスプログラムや変更情報作成部２２で作成したプログラム変更情報５０をプログラマブルコントローラ１０に送信する。
【００１９】
通信手段４０は、プログラマブルコントローラ１０とシーケンスプログラム編集装置２０間の情報の送受信を行う機能を備えている。通信手段４０は、ＬＡＮ（Local Area Network）やインターネット等の通信ネットワークであってもよいし、プログラマブルコントローラ１０とシーケンスプログラム編集装置２０を直接接続する構成としてもよい。
【００２０】
つぎに、プログラム変更システムのプログラム変更の処理手順を説明する。図２は、シーケンスプログラムの変更の処理手順を示すフローチャートである。シーケンスプログラム編集装置２０のプログラム作成部２１は、プログラマブルコントローラ１０が実行するシーケンスプログラム７０を作成し、通信Ｉ／Ｆ部２３、通信手段４０を介してプログラマブルコントローラ１０にシーケンスプログラム７０を送信する。
【００２１】
プログラマブルコントローラ１０は、シーケンスプログラム格納部１３にこのシーケンスプログラム（変更前のシーケンスプログラム）７０を記憶するとともに、このシーケンスプログラム７０に基づいて動作する。この後、シーケンスプログラム７０を変更する必要が生じると、シーケンスプログラム編集装置２０のプログラム作成部２１で新たなシーケンスプログラム７０を作成する。そして、変更情報作成部２２は変更前のシーケンスプログラムと新たなシーケンスプログラムに基づいてプログラム変更情報５０を作成する。
【００２２】
シーケンスプログラム編集装置２０の通信Ｉ／Ｆ部２３は、プログラマブルコントローラ１０のシーケンスプログラムを変更するためのプログラム変更情報５０を、通信手段４０を介してプログラマブルコントローラ１０に送信する。
【００２３】
図３は、シーケンスプログラムの一例を示す図である。図３に示すように、シーケンスプログラム７０は複数のプログラムからなる。シーケンスプログラム７０において、アドレスＡ〜アドレス（Ａ＋１）とアドレスＢ〜アドレス（Ｂ＋１）には同じ回路が格納されている。ここでは、アドレスＡ〜アドレス（Ａ＋１）とアドレスＢ〜アドレス（Ｂ＋１）に格納されている回路が、「ＬＤ  Ｍ０、ＯＵＴ  Ｍ２」である場合を示している。この回路において、ＬＤは接点入力命令を示し、ＯＵＴはコイル出力命令を示し、Ｍは内部デバイスの種類を示している。この回路は、「Ｍ０デバイスがＯＮの時にＭ２デバイスをＯＮにし、Ｍ０デバイスがＯＦＦ時にＭ２デバイスをＯＦＦにせよ」といった内容のシーケンスプログラムの回路である。
【００２４】
シーケンスプログラム編集装置２０からのプログラム変更情報５０は、プログラマブルコントローラ１０の編集装置用Ｉ／Ｆ部１５を介して変更情報格納部１２に書き込まれる（ステップＳ１００）。
【００２５】
ここで、プログラム変更情報５０の構成について説明する。図４−１は、実施の形態に係るプログラム変更情報の構成を示す図である。ここでは、図３に示したシーケンスプログラム７０のアドレスＡ〜アドレス（Ａ＋１）とアドレスＢ〜アドレス（Ｂ＋１）の回路を「ＬＤ  Ｍ１、ＯＵＴ  Ｍ２」に変更する場合のプログラム変更情報５０を示している。本実施の形態においては、アドレスＡ〜アドレス（Ａ＋１）とアドレスＢ〜アドレス（Ｂ＋１）に格納される同一の回路をまとめて変更する。
【００２６】
プログラム変更情報５０は、変更回路数、回路変更情報５１(変換前回路サイズ、変更後回路サイズ、変更後回路)、変更回路数分の先頭アドレスで構成されている。変更回路数は、シーケンスプログラム内において変更される回路の数を示す。ここでは、システムプログラム内において変更される回路の数が２つ（アドレスＡ〜アドレス（Ａ＋１）とアドレスＢ〜アドレス（Ｂ＋１））であるため変更回路数として「２」を示している。
【００２７】
変換前回路サイズは、シーケンスプログラム内において変更される回路（変更前回路）がシーケンスプログラム格納部１３や変更情報格納部１２において使用しているメモリのサイズを示している。ここでは、変更前回路のサイズが「２」（バイト）である場合を示している。
【００２８】
変更後回路サイズは、シーケンスプログラム内において変更する回路（変更後回路）がシーケンスプログラム格納部１３や変更情報格納部１２において使用しているメモリサイズを示している。ここでは、変更前回路のサイズが「２」（バイト）である場合を示している。本実施の形態では、ＬＤ命令、ＯＵＴ命令が、それぞれメモリサイズ１バイト必要であるものとして変更前回路のサイズ、変更後回路のサイズを２バイトと記述している。
【００２９】
変更後回路はシーケンスプログラム７０の変更後の回路であり、ここでは、アドレスＡ〜アドレス（Ａ＋１）とアドレスＢ〜アドレス（Ｂ＋１）に格納されている回路が同一であるため、アドレスＡ〜アドレス（Ａ＋１）とアドレスＢ〜アドレス（Ｂ＋１）に格納されている回路は同一の回路「ＬＤ  Ｍ１、ＯＵＴ  Ｍ２」によって変更される。先頭アドレスは、変更される回路の先頭のアドレスを示している。ここでは、変更される回路「ＬＤ  Ｍ０、ＯＵＴ  Ｍ２」の先頭アドレスＡと先頭アドレスＢを示している。
【００３０】
ここで、本実施の形態における変更情報と従来用いられていた変更情報の構成の差異を明確にするため、従来用いられていた変更情報の構成について説明する。図４−２は、変更回路数分の回路変更情報を有するプログラム変更情報の構成を示す図であり、従来用いられていたプログラム変更情報の構成を示している。
【００３１】
図４−２に示すように、従来のプログラム変更情報６０は、変更回路数、変更回路数分の回路変更情報６１Ａ，６１Ｂ、変更回路数分の先頭アドレスで構成されている。ここでは、変更回路数は「２」である。そして、１つめの回路の変更に関する情報として先頭アドレスと回路変更情報６１Ａが含まれ、２つめの回路の変更に関する情報として先頭アドレスと回路変更情報６１Ｂが含まれている。
【００３２】
１つめの回路の回路変更情報６１Ａは、先頭アドレス（Ａ）、変更前回路サイズ（「２」）、変更後回路サイズ（「２」）、変更後回路（「ＬＤ  Ｍ１、ＯＵＴ  Ｍ２」）を含んでいる。
【００３３】
２つめの回路の回路変更情報６１Ｂは、先頭アドレス（Ｂ）、変更前回路サイズ（「２」）、変更後回路サイズ（「２」）、変更後回路（「ＬＤ  Ｍ１、ＯＵＴ  Ｍ２」）を含んでいる。
【００３４】
このように、従来のプログラム変更情報６０は、同一の回路を複数箇所で変更する場合、変更回路数分の回路変更情報が必要であった。一方、図４−１に示した本実施の形態に係るプログラム変更情報５０は、同一の回路を複数箇所で変更する場合、この同一の回路に対する回路変更情報は１つである。これにより、シーケンスプログラム編集装置２０からプログラマブルコントローラ１０へ書き込む情報を小さくすることが可能となる。
【００３５】
シーケンスプログラム編集装置２０からのプログラム変更情報５０が、プログラマブルコントローラ１０の変更情報格納部１２に書き込まれると、演算装置１１はプログラム変更情報５０に基づいてシーケンスプログラム格納部１３のシーケンスプログラム７０を変更する（ステップＳ１１０）。
【００３６】
図５は、シーケンスプログラムの設定変更の処理手順を示すフローチャートである。シーケンスプログラム格納部１３のシーケンスプログラム７０を変更するため、演算装置１１は変更情報格納部１２に書き込まれたプログラム変更情報５０から変更を行なう回路を抽出する。例えば、図３に示した「ＬＤ  Ｍ０、ＯＵＴ  Ｍ２」の回路を変更する場合、先頭アドレスＡに対応する「ＬＤ  Ｍ０、ＯＵＴ  Ｍ２」の回路、先頭アドレスＢに対応する「ＬＤ  Ｍ０、ＯＵＴ  Ｍ２」の回路の２つの回路を抽出する。そして、抽出した変更回路に対して順番に回路の変更処理を行う（変更処理を繰り返す）。ここでは、ｎ（ｎは自然数）個目の回路の設定変更処理を行う際に参照する先頭アドレス情報を先頭アドレスｎとして説明する。回路の変更処理に際し、まず演算装置１１は変更回路数分の処理が全て完了したか否かを確認する（ステップＳ２００）。
【００３７】
演算装置１１は変更回路数分の処理が完了していないと判断すると、ｎ回目の設定変更処理（ループ処理）を開始する。まず、ｎ個目の変更回路に対して変更前回路サイズと変更後回路サイズを比較し、変更前回路サイズが変更後回路サイズより小さいか否か（変更前回路サイズ＜変更後回路サイズ）を判断する（ステップＳ２１０）。ここでの、変更前回路サイズと変更後回路サイズは、プログラム変更情報５０の回路変更情報５１から抽出し比較される。
【００３８】
演算装置１１によって、変更前回路サイズが変更後回路サイズより小さくないと判断されると（ステップＳ２１０、Ｎｏ）、変更前回路サイズが変更後回路サイズより大きいか否か（変更前回路サイズ＞変更後回路サイズ）を判断する（ステップＳ２２０）。
【００３９】
変更前回路サイズと変更後回路サイズが同じサイズである場合（変更前回路サイズが変更後回路サイズより大きくない場合）（ステップＳ２２０、Ｎｏ）、回路変更情報５１から変更後回路を抽出し、シーケンスプログラム格納部１３上のシーケンスプログラムの先頭アドレスｎの位置にこの変更後回路の回路をコピーする（ステップＳ２３０）。この後、次の回路の設定変更処理を行うためにステップＳ２００の処理を行なう。
【００４０】
演算装置１１によって、変更前回路サイズが変更後回路サイズより大きいと判断された場合（ステップＳ２２０、Ｙｅｓ）、シーケンスプログラム格納部１３上のシーケンスプログラムの先頭アドレスｎの位置に変更後回路の回路をコピーする（ステップＳ２４０）。そして、ステップＳ２４０においてコピーした回路に連続して次のプログラムが配置されるよう、シーケンスプログラム格納部１３上において、「先頭アドレスｎ＋変更前回路サイズ」のアドレス位置からプログラムの最終位置までのプログラム（データ）全体を「先頭アドレスｎ＋変更後回路サイズ」のアドレス位置に移動させる（ステップＳ２５０）。換言すると、「先頭アドレスｎ＋変更前回路サイズ」のアドレス位置からプログラムの最終位置までのプログラム全体が、「先頭アドレスｎ＋変更後回路サイズ」分だけ移動する。
【００４１】
「先頭アドレスｎ＋変更前回路サイズ」のアドレス位置からプログラムの最終位置までのプログラム全体を移動させたことによって、変更処理が済んでいない回路の回路変更情報の先頭アドレスがずれる。変更処理が済んでいない回路の回路変更情報の先頭アドレスを修正するため、変更処理が済んでいない回路に対して順番に先頭アドレスの修正処理を行なう（修正処理を繰り返す）。すなわち、まず演算装置１１は修正処理の必要な回路数分のアドレス修正処理が全て完了したか否かを確認する（ステップＳ２６０）。ここでは、ｍ（ｍは自然数）個目の回路のアドレス修正処理を行う際に参照する先頭アドレス情報を先頭アドレスｍとして説明する。
【００４２】
演算装置１１は修正処理の必要な回路数分のアドレス修正処理が全て完了していないと判断すると、ｍ個目のアドレス修正処理（ループ処理）を開始する。アドレス修正処理に際し、まず演算装置１１が先頭アドレスｍの値が先頭アドレスｎの値より大きいか否か（先頭アドレスｍ＞先頭アドレスｎ）を確認する（ステップＳ２７０）。
【００４３】
演算装置１１が先頭アドレスｍの値が先頭アドレスｎの値より大きくないと判断した場合（ステップＳ２７０、Ｎｏ）は、先頭アドレスｍの修正をする必要がないためアドレス修正処理を行なわない。この場合は、次の回路の先頭アドレス（ｍ＋１）のアドレス修正処理を行うためにステップＳ２６０の処理を行なう。
【００４４】
演算装置１１が先頭アドレスｍの値が先頭アドレスｎの値より大きいと判断すると（ステップＳ２７０、Ｙｅｓ）、ステップＳ２５０の処理でプログラムを移動させた分だけ、先頭アドレスｍの値を修正するため、先頭アドレスｍの値に「変更後回路サイズ−変更前回路サイズ」の値を加える。そして、次の回路の先頭アドレス（ｍ＋１）のアドレス修正処理を行うためにステップＳ２６０の処理を行なう。
【００４５】
ステップＳ２６０において、演算装置１１が修正処理の必要な回路数分のアドレス修正処理が全て完了したと判断するまで、ステップＳ２７０とステップＳ２８０の処理を繰り返す（処理中のｎ個目の回路変更情報の次（ｎ＋１個目）の回路変更情報から最後の回路変更情報までループする）。
【００４６】
ステップＳ２６０において、演算装置１１が修正処理の必要な回路数分のアドレス修正処理が全て完了したと判断すると、次の回路の設定変更処理を行うためにステップＳ２００の処理を行なう。
【００４７】
演算装置１１によって、変更前回路サイズが変更後回路サイズより大きくないと判断された場合（ステップＳ２１０、Ｙｅｓ）、シーケンスプログラム格納部１３上において、「先頭アドレスｎ＋変更前回路サイズ」のアドレス位置からプログラムの最終位置までのプログラム全体を「先頭アドレスｎ＋変更後回路サイズ」のアドレス位置に移動させる（ステップＳ２９０）。そして、シーケンスプログラム格納部１３上のシーケンスプログラムの先頭アドレスｎの位置に変更後回路の回路をコピーする（ステップＳ３００）。
【００４８】
この後、ステップＳ２６０〜ステップＳ２８０の処理を行なう。すなわち、演算装置１１は修正処理の必要な回路数分のアドレス修正処理が全て完了したか否かを確認し（ステップＳ２６０）、修正処理の必要な回路数分のアドレス修正処理が全て完了していないと判断すると、ｍ個目の回路のアドレス修正処理を行なう。アドレス修正処理に際し、まず演算装置１１が先頭アドレスｍの値が先頭アドレスｎの値より大きいか否かを確認する（ステップＳ２７０）。
【００４９】
演算装置１１が先頭アドレスｍの値が先頭アドレスｎの値より大きくないと判断した場合は（ステップＳ２７０、Ｎｏ）、先頭アドレスｍの修正をする必要がないためアドレス修正処理を行なわない。
【００５０】
演算装置１１が先頭アドレスｍの値が先頭アドレスｎの値より大きいと判断すると（ステップＳ２７０、Ｙｅｓ）、ステップ３００の処理でプログラムを移動させた分だけ先頭アドレスｍの値を修正するため、先頭アドレスｍの値に「変更後回路サイズ−変更前回路サイズ」の値を加える。ここでは、変更前回路サイズが変更後回路サイズより小さいため、「変更後回路サイズ−変更前回路サイズ」の値は負の値となる。
【００５１】
そして、ステップＳ２６０において演算装置１１が修正処理の必要な回路数分のアドレス修正処理が全て完了したと判断するまで、ステップＳ２７０とステップＳ２８０の処理を繰り返す。
【００５２】
ステップＳ２６０において演算装置１１が修正処理の必要な回路数分のアドレス修正処理が全て完了したと判断すると次の回路の設定変更処理を行うためにステップＳ２００の処理を行なう。
【００５３】
ステップＳ２００において、演算装置１１が抽出した変更回路に対して変更処理が全て完了したと判断するまで、ステップＳ２１０〜ステップＳ３００の処理を繰り返す。ステップＳ２００において、演算装置１１が変更処理の必要な回路数分の変更処理が全て完了したと判断するとプログラムの設定変更処理を終了する。
【００５４】
このように、プログラム変更情報５０は、同一の回路を複数箇所で変更する場合であっても、この同一の回路に対する回路変更情報５１は１つであるため、シーケンスプログラム編集装置２０からプログラマブルコントローラ１０へ書き込む情報を小さくすることが可能となる。
【００５５】
このように実施の形態によれば、シーケンスプログラム編集装置２０からプログラマブルコントローラ１０へ書き込む情報量を小さくすることが可能となるので、シーケンスプログラム編集装置２０から変更情報格納部１２にプログラム変更情報５０を書き込む時間が短くなるとともに、変更情報格納部１２のメモリサイズを小さくすることが可能となる。
【産業上の利用可能性】
【００５６】
以上のように、本発明にかかるプログラム変更方法は、プログラマブルコントローラのシーケンスプログラムの変更に適している。
【図面の簡単な説明】
【００５７】
【図１】実施の形態に係るプログラム変更システムの構成を示す図である。
【図２】シーケンスプログラムの変更の処理手順を示すフローチャートである。
【図３】シーケンスプログラムの一例を示す図である。
【図４−１】実施の形態に係るプログラム変更情報の構成を示す図である。
【図４−２】変更回路数分の回路変更情報を有するプログラム変更情報の構成を示す図である。
【図５】シーケンスプログラムの設定変更の処理手順を示すフローチャートである。
【符号の説明】
【００５８】
１０  プログラマブルコントローラ
１１  演算装置
１２  変更情報格納部
１３  シーケンスプログラム格納部
１４  デバイス記憶部
１５  編集装置用Ｉ／Ｆ部
１６  デバイス情報用Ｉ／Ｆ部
２０  シーケンスプログラム編集装置
２１  プログラム作成部
２２  変更情報作成部
２３  通信Ｉ／Ｆ部
３０  メモリ部
４０  通信手段
５０，６０  プログラム変更情報
５１，６１Ａ，６１Ｂ  回路変更情報
７０  シーケンスプログラム
【図１】
2006031462.tif 000003
【図２】
2006031462.tif 000004
【図３】
2006031462.tif 000005
【図４−１】
2006031462.tif 000006
【図４−２】
2006031462.tif 000007
【図５】
2006031462.tif 000008