(57)【要約】      （修正有）【課題】ＰＬＣ運転中に、複数の使用者が同時にＰＬＣに接続してＰＬＣプログラムを修正できるＰＬＣプログラム処理装置を提供する。【解決手段】本発明のＰＬＣプログラム処理装置は、ブロック単位に貯蔵されるＰＬＣプログラム、及び前記ＰＬＣプログラムの貯蔵位置を定義するプログラムブロックテーブルが貯蔵される貯蔵部、及び修正されたＰＬＣプログラムのブロック番号、前記修正されたＰＬＣプログラムサイズ情報及び前記プログラムブロックテーブルを参照して、前記修正されたＰＬＣプログラムが貯蔵される貯蔵位置の開始アドレスを決定し、前記開始アドレスを参照して、前記修正されたＰＬＣプログラムを前記貯蔵部に貯蔵する制御部を含む。【選択図】図５
2019194837.tif 000002
【特許請求の範囲】
【請求項１】
ブロック単位に貯蔵されるＰＬＣプログラム及び前記ＰＬＣプログラムの貯蔵位置を定義するプログラムブロックテーブルが貯蔵される貯蔵部；及び、
ＰＬＣ運転中にＰＬＣプログラムが修正されると、修正されたＰＬＣプログラムのブロック番号、前記修正されたＰＬＣプログラムサイズ情報及び前記プログラムブロックテーブルを参照して、前記修正されたＰＬＣプログラムが貯蔵される貯蔵位置の開始アドレスを決定し、前記開始アドレスを参照して、前記修正されたＰＬＣプログラムを前記貯蔵部に貯蔵する制御部を含む、
ＰＬＣプログラム処理装置。
【請求項２】
前記プログラムブロックテーブルは、
それぞれのＰＬＣプログラムに対応するブロック番号及びそれぞれのＰＬＣプログラムサイズ情報を含む、
請求項１に記載のＰＬＣプログラム処理装置。
【請求項３】
前記修正されたＰＬＣプログラムが貯蔵される貯蔵位置の開始アドレスは、
修正されたＰＬＣプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズだけ増加させることによって決定される、
請求項１に記載のＰＬＣプログラム処理装置。
【請求項４】
前記制御部は、
前記修正されたＰＬＣプログラムを受信すると、前記修正されたＰＬＣプログラムより大きいブロック番号を有するＰＬＣプログラムをバックアップして、前記修正されたＰＬＣプログラムの貯蔵が完了した後、前記修正されたＰＬＣプログラムブロックの次のブロックの開始アドレスを参照してバックアップされたＰＬＣプログラムを前記貯蔵部に貯蔵する、
請求項１に記載のＰＬＣプログラム処理装置。
【請求項５】
前記修正されたＰＬＣプログラムの次のブロックの開始アドレスは、
前記修正されたＰＬＣプログラムが貯蔵される貯蔵位置の開始アドレスを、前記修正されたＰＬＣプログラムサイズだけ増加させることによって決定される、
請求項４に記載のＰＬＣプログラム処理装置。
【請求項６】
前記修正されたＰＬＣプログラムが貯蔵される貯蔵位置の開始アドレスは、
前記修正されたＰＬＣプログラムより小さいブロック番号を有する、修正されたＰＬＣプログラムの次のブロックの開始アドレスを、前記修正されたＰＬＣプログラムより小さいブロック番号を有する、修正されたＰＬＣプログラム及び前記修正されたＰＬＣプログラム間のブロックに貯蔵されたプログラムサイズだけ増加させることによって決定される、
請求項１に記載のＰＬＣプログラム処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＬＣプログラム処理装置に関する。
【背景技術】
【０００２】
産業現場の工場自動化システム等では、ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）のような統合制御装置が用いられる。
【０００３】
ＰＬＣには、各種装置を制御するための初期化プログラム、スキャンプログラム、割り込みプログラムのようなＰＬＣプログラムが貯蔵されている。かかるＰＬＣプログラムは、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）のようなクライアント装置に設けられるＰＡＤＴ（Ｐｒｏｇｒａｍｍｉｎｇ  Ａｎｄ  Ｄｕｂｕｇｇｉｎｇ  Ｔｏｏｌ）のような専用アプリケーションによって作成又は修正される。
【０００４】
図１は、一般的なＰＬＣプログラムの処理過程を示すフロー図である。
【０００５】
ＰＬＣ運転が始まると、先ず、ＰＬＣ内部の初期化が行われる（１０２）。初期化は、ＰＬＣに内蔵したＭＰＵ（Ｍａｉｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）又は他のモジュールのハードウェア的な初期化、及びＰＬＣプログラムを行うための変数などに対するソフトウェア的な初期化を含む。
【０００６】
次に、入力イメージ領域に対するリフレッシュが行われる（１０４）。ＰＬＣ運転が始まると、入力モジュールを介して入力されるデータがメモリのような貯蔵部の入力領域に入力され、これらデータは、さらに入力イメージ領域にコピーされて、演算が行われる間の入力データとして用いられる。このように、入力領域のデータが入力イメージ領域にコピーされる動作を入力リフレッシュ（Ｉｎｐｕｔ  Ｒｅｆｒｅｓｈ）と言う。
【０００７】
次に、ＰＬＣは、前に行われた初期化が完了したか否かを確認する（１０６）。確認の結果、初期化が完了していないと、ＰＬＣは、予め貯蔵された初期化プログラムを行い、初期化を行う（１０８）。確認の結果、初期化が完了していると、ＰＬＣは、予め貯蔵されたスキャンプログラムを行う（１１０）。スキャンプログラムを行う途中に割り込み信号が発生すると、ＰＬＣは、スキャンプログラム実行を中断して、予め貯蔵された割り込みプログラムを行った後（１１２）、さらにスキャンプログラムを再開する（１１０）。
【０００８】
初期化プログラム又はスキャンプログラムの実行が完了すると、出力イメージ領域に対するリフレッシュが行われる（１１４）。出力リフレッシュ（Ｏｕｔｐｕｔ  Ｒｅｆｒｅｓｈ）は、初期化プログラム又はスキャンプログラムにより導出されたデータが出力イメージ領域にコピーされる動作を意味する。出力イメージ領域のリフレッシュが完了すると、ＰＬＣは、入力イメージ領域のリフレッシュ動作（１０４）に復帰して、前述した過程を繰り返して行う。
【０００９】
一方、従来技術によれば、ＰＬＣが運転中であるとき、使用者は、ＰＣのようなクライアント装置を介してＰＬＣに接続して、ＰＬＣ内部に貯蔵されたＰＬＣプログラム（初期化プログラム、スキャンプログラム、割り込みプログラム等）を修正することができる。このように、ＰＬＣが運転中であるとき、ＰＬＣプログラムを修正する機能を「ＲＵＮ中修正」と言う。
【００１０】
図２は、ＰＬＣ運転中に行われるＲＵＮ中修正の過程を示すフロー図である。
【００１１】
ＰＬＣが運転中であるとき、使用者は、クライアント装置に設けられたＰＡＤＴのようなＰＬＣプログラム修正のためのアプリケーションを行い、ＰＬＣプログラム修正のため新しいプロジェクトファイルをオープンする（２０２）。使用者は、クライアント装置とＰＬＣとの間の通信機能を介してＰＬＣに接続する（２０４）。このような接続によって、ＰＬＣプログラム修正のためのアプリケーションによるＲＵＮ中修正機能が始まり（２０６）、ＰＬＣでは、プログラム修正の要否を確認するためのモニタリング機能が行われる（２０８）。
【００１２】
使用者は、ＰＬＣプログラム修正のためのアプリケーションを用いて所望のＰＬＣプログラムを修正する（２１０）。修正が完了すると、修正されたＰＬＣプログラムがＰＬＣに転送され、ＰＬＣは、修正されたＰＬＣプログラムを貯蔵部に貯蔵して、既存のＰＬＣプログラムをアップデートする（２１２）。これによって、ＲＵＮ中修正機能が終了する。
【００１３】
図３は、従来技術によるプログラムブロックテーブルを示す。また、図４は、ＰＬＣプログラムのＲＵＮ中修正によるプログラムブロックテーブルのアップデート結果を示す。
【００１４】
前述したＲＵＮ中修正機能を行うため、ＰＬＣプログラム修正のためのアプリケーションは、図３に示したようなプログラムブロックテーブルを参照する。従来技術によれば、プログラムブロックテーブルは、ＰＬＣ貯蔵部に貯蔵されている各プログラムの貯蔵位置を定義するためのデータであって、ＰＬＣプログラムの種類（例えば、初期化／スキャン／割り込み）、各ＰＬＣプログラムのブロック番号（例えば、１、２、...、１４）、各ＰＬＣプログラムが貯蔵された位置の開始アドレス及び終了アドレス（例えば、０ｘ００００、０ｘ００ＦＦ）で構成される。
【００１５】
従来技術によれば、ＰＬＣプログラム修正のためのアプリケーションは、図３のようなプログラムブロックテーブルを介して、使用者が修正したいＰＬＣプログラムのブロック番号（例えば、６番）に対応する開始アドレス（０ｘ１０００）及び終了アドレス（０ｘ１０ＦＦ）を確認して、該ＰＬＣプログラムをクライアント装置にダウンロードする。ここで、開始アドレス及び終了アドレスは、６番ブロックのプログラムが貯蔵部内に貯蔵された物理的な位置を示すアドレスである。
【００１６】
ＰＬＣプログラム修正が完了すると、ＰＬＣプログラム修正のためのアプリケーションは、使用者がＲＵＮ中修正によって修正を完了した、修正されたＰＬＣプログラムをＰＬＣへ転送すると同時に、修正されたＰＬＣプログラムと対応するようにプログラムブロックテーブルをアップデートする。
【００１７】
例えば、ＰＬＣ運転中に使用者がＰＬＣ貯蔵部の６番ブロックに貯蔵されたスキャンプログラムを修正した結果、該スキャンプログラムサイズが０ｘ２００バイトだけ増加した場合、ＰＬＣプログラム修正のためのアプリケーションは、図４のように、６番ブロックの終了アドレスを０ｘ２００だけ増加されて０ｘ１２ＦＦにアップデートする。このように、６番ブロックの終了アドレスが０ｘ２００だけ増加するにつれて、６番ブロックより大きいブロック番号を有するブロック、すなわち、７番〜１４番ブロックの開始アドレス及び終了アドレスがそれぞれ０ｘ２００だけ増加することになる。ＲＵＮ中修正の完了によって、ＰＬＣは、予めバックアップされた７番〜１４番ブロックのプログラムを、図４のように新たに変更された開始アドレス及び終了アドレスに対応する貯蔵位置にさらに貯蔵する。
【００１８】
ところが、従来技術によれば、複数の使用者が１つのＰＬＣに同時に接続して、それぞれＰＬＣプログラムを修正する場合が発生する。例えば、第１の使用者と第２の使用者が同時にＰＬＣに接続し、図３のようなプログラムブロックテーブルを参照して、異なるブロックのＰＬＣプログラムを修正する場合、第１の使用者のＰＬＣプログラム修正が先に完了して、図４のように、プログラムブロックテーブルのアップデートが行われると、第２の使用者によって修正されたＰＬＣプログラムは、図３のような既存のプログラムブロックテーブルを参照して誤った位置に貯蔵され得る。
【００１９】
このような状況を防止するため、従来には、複数の使用者がＰＬＣプログラム修正を要請する場合、一人の使用者によるＰＬＣプログラム修正及びそれによるプログラムブロックテーブルのアップデートが完了するまで、他の使用者は、ＰＬＣプログラム修正が不可能であった。
【００２０】
結局、従来技術によれば、ＰＬＣ運転中に、複数の使用者がＰＬＣに接続して、ＰＬＣプログラムを同時に修正することが不可能であるという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【００２１】
本発明は、ＰＬＣ運転中に複数の使用者が同時にＰＬＣに接続して、ＰＬＣプログラムを修正するようにするＰＬＣプログラム処理装置を提供することを目的とする。
【００２２】
本発明の目的は、以上で言及した目的に制限されず、言及していない本発明の他の目的及び長所は、下記の説明によって理解されるし、本発明の実施形態によってより明らかに理解される。また、本発明の目的及び長所は、特許請求の範囲に示した手段及びその組み合わせによって実現できることが分かる。
【課題を解決しようとする手段】
【００２３】
本発明の一実施形態によるＰＬＣプログラム処理装置は、ブロック単位に貯蔵されるＰＬＣプログラム、及び前記ＰＬＣプログラムの貯蔵位置を定義するプログラムブロックテーブルが貯蔵される貯蔵部、及び修正されたＰＬＣプログラムのブロック番号、前記修正されたＰＬＣプログラムサイズ情報及び前記プログラムブロックテーブルを参照して、前記修正されたＰＬＣプログラムが貯蔵される貯蔵位置の開始アドレスを決定し、前記開始アドレスを参照して、前記修正されたＰＬＣプログラムを前記貯蔵部に貯蔵する制御部を含む。
【００２４】
本発明の一実施形態において、前記プログラムブロックテーブルは、それぞれのＰＬＣプログラムに対応するブロック番号及びそれぞれのＰＬＣプログラムサイズ情報を含む。
【００２５】
また、本発明の一実施形態において、前記修正されたＰＬＣプログラムが貯蔵される貯蔵位置の開始アドレスは、前記修正されたＰＬＣプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズを加えて決定される。
【００２６】
また、本発明の一実施形態において、前記制御部は、前記修正されたＰＬＣプログラムを受信すると、前記修正されたＰＬＣプログラムより大きいブロック番号を有するＰＬＣプログラムをバックアップして、前記修正されたＰＬＣプログラムの貯蔵が完了した後、前記修正されたＰＬＣプログラムブロックの次のブロックの開始アドレスを参照してバックアップされたＰＬＣプログラムを前記貯蔵部に貯蔵する。
【００２７】
また、本発明の一実施形態において、前記修正されたＰＬＣプログラムの次のブロックの開始アドレスは、前記修正されたＰＬＣプログラムが貯蔵される貯蔵位置の開始アドレスを、前記修正されたＰＬＣプログラムサイズだけ増加させることによって決定される。
【００２８】
また、本発明の一実施形態において、前記修正されたＰＬＣプログラムが貯蔵される貯蔵位置の開始アドレスは、前記修正されたＰＬＣプログラムより小さいブロック番号を有する、修正されたＰＬＣプログラムの次のブロックの開始アドレスを、前記修正されたＰＬＣプログラムより小さいブロック番号を有する、修正されたＰＬＣプログラム及び前記修正されたＰＬＣプログラム間のブロックに貯蔵されたプログラムサイズだけ増加させることによって決定される。
【発明の効果】
【００２９】
本発明によれば、ＰＬＣ運転中に複数の使用者が同時にＰＬＣに接続して、ＰＬＣプログラムを修正できる長所がある。
【図面の簡単な説明】
【００３０】
【図１】一般的なＰＬＣプログラムの処理過程を示すフロー図である。
【図２】ＰＬＣ運転中に行われるＲＵＮ中修正過程を示すフロー図である。
【図３】従来技術によるプログラムブロックテーブルを示す。
【図４】ＰＬＣプログラムのＲＵＮ中修正によるプログラムブロックテーブルのアップデート結果を示す。
【図５】本発明の一実施形態によるＰＬＣプログラム処理装置の構成を示す。
【図６】本発明の一実施形態によるＰＬＣプログラム処理過程において参照される新しいプログラムブロックテーブルの構成を示す。
【図７】本発明によるＰＬＣプログラムのＲＵＮ中修正によるプログラムブロックテーブルのアップデート結果を示す。
【発明を実施するための形態】
【００３１】
前述した目的、特徴及び長所は、添付の図面を参照して詳細に後述されており、これによって、本発明が属する技術分野で通常の知識を有する者が本発明の技術思想を容易に実施することができる。本発明を説明するにおいて、本発明に係る公知技術に対する具体的な説明が本発明の要旨を曖昧にすると判断される場合には詳説を省略する。以下では、添付の図面を参照して、本発明による好ましい実施形態を詳説する。図面における同じ参照符号は、同一又は類似の構成要素を指すものに使われる。
【００３２】
図５は、本発明の一実施形態によるＰＬＣプログラム処理装置の構成を示す。
【００３３】
図５を参照すれば、本発明の一実施形態によるＰＬＣプログラム処理装置は、制御部３０及び貯蔵部３２を含む。
【００３４】
制御部３０は、ＰＬＣ運転のため貯蔵部３２に貯蔵されたＰＬＣプログラム３１２を行う。実施形態に従って、制御部３０は、貯蔵部３２に貯蔵されたＰＬＣプログラム３１２を機械語又は中間言語に翻訳するためのコンパイラ（ｃｏｍｐｉｌｅｒ）を含んでいてもよい。
【００３５】
制御部３０は、貯蔵部３２に貯蔵されたそれぞれのＰＬＣプログラム３１２を呼び出すため、貯蔵部３２に貯蔵されたプログラムブロックテーブル３２２を参照してもよい。プログラムブロックテーブル３２２は、貯蔵部３２に貯蔵されたそれぞれのＰＬＣプログラム３１２の貯蔵位置を定義するためのテーブルである。本発明によるプログラムブロックテーブル３２２は、前述した従来のプログラムブロックテーブルとは異なる新しい構造を有するが、これについては後述する。
【００３６】
また、制御部３０は、クライアント装置（３４_１、３４_２、...、３４_ｎ）との通信を介して、使用者が修正しようとするＰＬＣプログラム３１２をクライアント装置（３４_１、３４_２、...、３４_ｎ）に転送することができる。実施形態によっては、使用者のＰＬＣプログラム修正の要請に応じて、クライアント装置（３４_１、３４_２、...、３４_ｎ）が直接に貯蔵部３２に貯蔵されたプログラムブロックテーブル３２２を参照して、使用者が修正を要請したＰＬＣプログラムをダウンロードすることもできる。
【００３７】
また、使用者がＰＬＣプログラム修正を完了すると、制御部３０は、クライアント装置（３４_１、３４_２、...、３４_ｎ）から修正されたＰＬＣプログラム、修正されたＰＬＣプログラムのブロック番号、修正されたＰＬＣプログラムサイズ情報を受信する。制御部３０は、修正されたＰＬＣプログラムのブロック番号、修正されたＰＬＣプログラムサイズ情報に基づいて、プログラムブロックテーブル３２２をアップデートする。
【００３８】
また、制御部３０は、修正されたＰＬＣプログラムのブロック番号、修正されたＰＬＣプログラムサイズ情報及びアップデートされたプログラムブロックテーブル３２２を参照して、使用者によって修正されたＰＬＣプログラムが貯蔵される貯蔵位置の開始アドレスを決定する。
【００３９】
ここで、修正されたＰＬＣプログラムが貯蔵される貯蔵位置の開始アドレスは、修正されたＰＬＣプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズだけ増加させることによって決定される。制御部３０は、決定された開始アドレスを参照して、修正されたＰＬＣプログラムを貯蔵部３２に貯蔵する。
【００４０】
特に、複数のＰＬＣプログラムが同時に修正される場合、修正されたＰＬＣプログラムが貯蔵される貯蔵位置の開始アドレスは、修正されたＰＬＣプログラムより小さいブロック番号を有する、修正されたＰＬＣプログラムの次のブロックの開始アドレスを、修正されたＰＬＣプログラムより小さいブロック番号を有する、修正されたＰＬＣプログラム及び修正されたＰＬＣプログラム間のブロックに貯蔵されたプログラムサイズだけ増加させることによって決定される。
【００４１】
また、制御部３０は、クライアント装置（３４_１、３４_２、...、３４_ｎ）から修正されたＰＬＣプログラムを受信すると、修正されたＰＬＣプログラムより大きいブロック番号を有するＰＬＣプログラムをバックアップして、修正されたＰＬＣプログラムの貯蔵が完了した後、修正されたＰＬＣプログラムブロックの次のブロックの開始アドレスを参照してバックアップされたＰＬＣプログラムを貯蔵部３２に貯蔵する。
【００４２】
ここで、修正されたＰＬＣプログラムの次のブロックの開始アドレスは、修正されたＰＬＣプログラムが貯蔵される貯蔵位置の開始アドレスをＰＬＣプログラムサイズだけ増加させることによって決定される。
【００４３】
以下では、図５〜図７を参照して、本発明の一実施形態によるＰＬＣプログラム処理装置のＲＵＮ中修正機能を説明する。
【００４４】
図６は、本発明の一実施形態によるＰＬＣプログラム処理過程において参照される新しいプログラムブロックテーブルの構成を示す。また、図７は、本発明によるＰＬＣプログラムのＲＵＮ中修正によるプログラムブロックテーブルのアップデート結果を示す。
【００４５】
図６に示したように、本発明によるＰＬＣプログラム処理装置に貯蔵されるプログラムブロックテーブルは、貯蔵部３２に貯蔵されたＰＬＣプログラムの種類（例えば、初期化／スキャン／割り込み）、それぞれのＰＬＣプログラムが貯蔵されたブロックのブロック番号（例えば、１〜１４）、それぞれのブロックに貯蔵されたＰＬＣプログラムサイズ（例えば、０ｘ０１００）を含む。すなわち、従来技術と異なり、本発明のプログラムブロックテーブルは、それぞれのＰＬＣプログラムが貯蔵された位置の開始アドレス及び終了アドレスを含まないで、ただそれぞれのＰＬＣプログラムが占める空間の大きさのみを含む。
【００４６】
先ず、最初の実施形態として、ＰＬＣ運転中に一人の使用者によって６番ブロックに貯蔵されたスキャンプログラムが修正される過程を説明すれば、次のとおりである。
【００４７】
使用者が貯蔵部３２の６番ブロックに該当する位置に貯蔵されたスキャンプログラムに対する修正を要請すると、クライアント装置（３４_１）は、制御部３０を介して貯蔵部３２の６番ブロックに貯蔵されたスキャンプログラムをダウンロードする。
【００４８】
このとき、制御部３０は、図６に示したようなプログラムブロックテーブルに記録された６番ブロックに対応するプログラムサイズ（０ｘ０１００）を参照して６番ブロックの開始アドレス及び終了アドレスを決定し、決定された開始アドレス及び終了アドレスを参照して６番ブロックに対応するスキャンプログラムを呼び出す。
【００４９】
制御部３０は、使用者が修正を要請したＰＬＣプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズを加えて、６番ブロックの開始アドレスを決定してもよい。例えば、制御部３０は、使用者が修正を要請したスキャンプログラムブロックである６番ブロックの以前ブロック、すなわち、１番〜５番ブロックに貯蔵されたＰＬＣプログラムサイズ（０ｘ００００、０ｘ０１００、０ｘ０Ｅ００）を全て加えることによって、６番ブロックの開始アドレスを決定することができる。
【００５０】
制御部３０は、このように決定された６番ブロックの開始アドレスを参照して、貯蔵部３２の６番ブロックからスキャンプログラムを呼び出し、呼び出したスキャンプログラムをクライアント装置（３４_１）に転送する。
【００５１】
使用者がクライアント装置（３４_１）を介して貯蔵部３２の６番ブロックに該当する位置に貯蔵されたスキャンプログラムに対する修正を完了すると、クライアント装置（３４_１）は、修正されたスキャンプログラムとともに修正されたスキャンプログラムのブロック番号（６番）及び修正されたスキャンプログラムサイズ（０ｘ０２００）を制御部３０に転送する。
【００５２】
修正されたスキャンプログラムを受信した制御部３０は、図７のように、プログラムブロックテーブルの６番ブロックのプログラムサイズを修正されたスキャンプログラムサイズである０ｘ０２００にアップデートする。それから、制御部３０は、修正されたスキャンプログラムを貯蔵部３２に貯蔵するために「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」を決定する。
【００５３】
より具体的には、制御部３０は、修正されたＰＬＣプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズを加えて、「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」を決定する。例えば、制御部３０は、修正されたスキャンプログラムブロックである６番ブロックの以前ブロック、すなわち、１番〜５番ブロックに貯蔵されたＰＬＣプログラムサイズ（０ｘ００００、０ｘ０１００、０ｘ０Ｅ００）を全て加えることによって、修正されたスキャンプログラムが貯蔵される６番ブロックの開始アドレスを決定することができる。
【００５４】
制御部３０は、このように決定される開始アドレスを参照して、貯蔵部３２に修正されたスキャンプログラムを貯蔵する。
【００５５】
一方、制御部３０は、クライアント装置（３４_１）から修正されたＰＬＣプログラムを受信すると、修正されたＰＬＣプログラムより大きいブロック番号を有するＰＬＣプログラムをバックアップする。例えば、制御部３０は、修正されたスキャンプログラムブロックである６番ブロックより大きいブロック番号である７番〜１４番ブロックに貯蔵されたそれぞれのＰＬＣプログラムを貯蔵部３２又は貯蔵部３２ではない別途貯蔵空間にバックアップする。
【００５６】
このように、７番〜１４番ブロックに貯蔵されたそれぞれのＰＬＣプログラムをバックアップした後、前述したように、修正されたスキャンプログラムの貯蔵が完了すると、制御部３０は、修正されたスキャンプログラムブロック（６番ブロック）の次のブロックである７番ブロックの開始アドレスを参照してバックアップされた７番〜１４番ブロックのＰＬＣプログラムを順次に貯蔵部３２に貯蔵する。
【００５７】
ここで、制御部３０は、前に決定された「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」、すなわち、６番ブロックの開始アドレスを修正されたスキャンプログラムサイズ（０ｘ０２００）だけ増加させることによって、「修正されたＰＬＣプログラムブロックの次のブロックの開始アドレス」、すなわち、７番ブロックの開始アドレスを決定することができる。
【００５８】
前述のような過程によって、ＰＬＣ運転中に、６番ブロックに貯蔵されたスキャンプログラムに対するＲＵＮ中修正が完了する。
【００５９】
次に、ＰＬＣ運転中に二人の使用者によって６番ブロックに貯蔵されたスキャンプログラムと、１０番ブロックに貯蔵された割り込みプログラムとが同時に修正される過程を説明すれば、次のとおりである。
【００６０】
まず、制御部３０は、クライアント装置（３４_１）から６番ブロックに貯蔵されたスキャンプログラムに対する修正を要請されると同時に、クライアント装置（３４_２）から１０番ブロックに貯蔵された割り込みプログラムに対する修正を要請される。
【００６１】
制御部３０は、このような修正要請に応じて、図６に示したプログラムブロックテーブルを参照して、６番ブロックの開始アドレス及び１０番ブロックの開始アドレスをそれぞれ決定する。前述したように、制御部３０は、１番〜５番ブロックのプログラムサイズを全て加えて６番ブロックの開始アドレスを決定し、１番〜９番ブロックのプログラムサイズを全て加えて１０番ブロックの開始アドレスを決定する。
【００６２】
制御部３０は、６番ブロックの開始アドレス及び１０番ブロックの開始アドレスをそれぞれ参照して、６番ブロックに貯蔵されたスキャンプログラム及び１０番ブロックに貯蔵された割り込みプログラムをそれぞれ呼び出す。制御部３０は、呼び出したそれぞれのＰＬＣプログラムをクライアント装置（３４_１）及びクライアント装置（３４_２）にそれぞれ転送する。
【００６３】
その後、制御部３０は、クライアント装置（３４_１）から修正されたスキャンプログラム、修正されたスキャンプログラムのブロック番号及びサイズを受信すると同時に、クライアント装置（３４_２）から修正された割り込みプログラム、修正された割り込みプログラムのブロック番号及びサイズを受信する。参考までに、制御部３０がクライアント装置（３４_１）及びクライアント装置（３４_２）からそれぞれ一定の時間差をおいて修正されたＰＬＣプログラムを受けた場合には、前述した１つの修正プログラムの貯蔵過程がそれぞれ順次に行われる。
【００６４】
次に、制御部３０は、図７に示したように、６番ブロックの修正されたスキャンプログラムサイズ及び１０番ブロックの修正された割り込みプログラムサイズをアップデートする。
【００６５】
次に、制御部３０は、図７に示したプログラムブロックテーブルを参照して、修正されたＰＬＣプログラムが貯蔵される６番ブロック及び１０番ブロックの開始アドレスをそれぞれ決定する。
【００６６】
より具体的には、制御部３０は、修正されたＰＬＣプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズを加えて、「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」を決定する。例えば、制御部３０は、修正されたスキャンプログラムブロックである６番ブロックの以前ブロック、すなわち、１番〜５番ブロックに貯蔵されたＰＬＣプログラムサイズ（０ｘ００００、０ｘ０１００、０ｘ０Ｅ００）を全て加えることによって、修正されたスキャンプログラムが貯蔵される６番ブロックの開始アドレスを決定することができる。
【００６７】
また、制御部３０は、修正されたＰＬＣプログラムより小さいブロック番号を有する、修正されたＰＬＣプログラムの次のブロックの開始アドレスを、修正されたＰＬＣプログラムより小さいブロック番号を有する、修正されたＰＬＣプログラム及び修正されたＰＬＣプログラム間のブロックに貯蔵されたプログラムサイズだけ増加させることによって、１０番ブロックの開始アドレスを決定する。
【００６８】
例えば、制御部３０は、修正された割り込みプログラム（１０番）より小さいブロック番号を有する、修正されたスキャンプログラム（６番）の次ブロック（７番ブロック）の開始アドレスを先に決定する。前述したように、制御部３０は、前に決定された「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」、すなわち、６番ブロックの開始アドレスを修正されたスキャンプログラムサイズ（０ｘ０２００）だけ増加させることによって、「修正されたＰＬＣプログラムブロックの次のブロックの開始アドレス」、すなわち、７番ブロックの開始アドレスを決定することができる。
【００６９】
制御部３０は、このように決定された７番ブロックの開始アドレスを修正された割り込みプログラム（１０番）より小さいブロック番号を有する、修正されたスキャンプログラム（６番）及び修正された割り込みプログラム（１０）間のブロック、すなわち、７番〜９番ブロックに貯蔵されたプログラムサイズ（０ｘ０１００、０ｘ１Ｅ１０）だけ増加させることによって、１０番ブロックの開始アドレスを決定することができる。
【００７０】
また、制御部３０は、１０番ブロックの開始アドレスを、修正された割り込みプログラムサイズ（０ｘ０１５０）だけ増加させることによって、１１番ブロックの開始アドレスを決定することができる。
【００７１】
制御部３０は、このような過程によって決定された６番ブロックの開始アドレス及び１０番ブロックの開始アドレスを参照して、修正されたスキャンプログラム及び修正された割り込みプログラムを同時に貯蔵部３２に貯蔵する。
【００７２】
一方、修正されたスキャンプログラム及び修正された割り込みプログラムをそれぞれ貯蔵部３２に貯蔵する前に、制御部３０は、前述した方法を用いて修正されなかった他のＰＬＣプログラム、すなわち、１番〜５番ブロック、７番〜９番ブロック、１１番〜１４番ブロックに貯蔵されたＰＬＣプログラムを予めバックアップすることができる。
【００７３】
制御部３０によって修正されたスキャンプログラム及び修正された割り込みプログラムをそれぞれ貯蔵部３２に貯蔵した後、制御部３０は、前に決定された６番ブロックの開始アドレス、７番ブロックの開始アドレス、１０番ブロックの開始アドレス、１１番ブロックの開始アドレスをそれぞれ参照して、前にバックアップされた１番〜５番ブロック、７番〜９番ブロック、１１番〜１４番ブロックのＰＬＣプログラムを貯蔵部３２にさらに貯蔵することができる。
【００７４】
従来技術によれば、ＰＬＣは、貯蔵部に貯蔵されたそれぞれのＰＬＣプログラムを呼び出すか、修正されたＰＬＣプログラムを貯蔵するにおいて、それぞれのＰＬＣプログラムが貯蔵される位置の開始アドレスをプログラムブロックテーブルから直接確認する。しかし、本発明によるＰＬＣプログラム処理装置は、プログラムブロックテーブルに含まれたブロック番号及びプログラムサイズのみを参照して、それぞれのＰＬＣプログラムが貯蔵される位置の開始アドレスを直接に算出する。
【００７５】
従って、本発明によるＰＬＣプログラム処理装置を用いる場合、複数の使用者がＰＬＣプログラムを同時に修正できる長所がある。
【００７６】
前述した本発明は、本発明が属する技術分野で通常の知識を有する者にとって、本発明の技術思想を脱しない範囲内で様々な置換、変形及び変更が可能であるため、前述した実施形態及び添付の図面によって限定されるものではない。
【図１】
2019194837.tif 000003
【図２】
2019194837.tif 000004
【図３】
2019194837.tif 000005
【図４】
2019194837.tif 000006
【図５】
2019194837.tif 000007
【図６】
2019194837.tif 000008
【図７】
2019194837.tif 000009