特許第6843823号(P6843823)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エルエス産電株式会社の特許一覧

<>
  • 特許6843823-PLCプログラム処理装置 図000002
  • 特許6843823-PLCプログラム処理装置 図000003
  • 特許6843823-PLCプログラム処理装置 図000004
  • 特許6843823-PLCプログラム処理装置 図000005
  • 特許6843823-PLCプログラム処理装置 図000006
  • 特許6843823-PLCプログラム処理装置 図000007
  • 特許6843823-PLCプログラム処理装置 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6843823
(24)【登録日】2021年2月26日
(45)【発行日】2021年3月17日
(54)【発明の名称】PLCプログラム処理装置
(51)【国際特許分類】
   G05B 19/05 20060101AFI20210308BHJP
【FI】
   G05B19/05 A
【請求項の数】5
【全頁数】13
(21)【出願番号】特願2018-235819(P2018-235819)
(22)【出願日】2018年12月17日
(65)【公開番号】特開2019-194837(P2019-194837A)
(43)【公開日】2019年11月7日
【審査請求日】2018年12月17日
(31)【優先権主張番号】10-2018-0051265
(32)【優先日】2018年5月3日
(33)【優先権主張国】KR
(73)【特許権者】
【識別番号】593121379
【氏名又は名称】エルエス、エレクトリック、カンパニー、リミテッド
【氏名又は名称原語表記】LS ELECTRIC CO., LTD.
(74)【代理人】
【識別番号】100091982
【弁理士】
【氏名又は名称】永井 浩之
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100082991
【弁理士】
【氏名又は名称】佐藤 泰和
(74)【代理人】
【識別番号】100105153
【弁理士】
【氏名又は名称】朝倉 悟
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100137523
【弁理士】
【氏名又は名称】出口 智也
(72)【発明者】
【氏名】パク、ジョ−ドン
【審査官】 大古 健一
(56)【参考文献】
【文献】 特開昭63−177205(JP,A)
【文献】 特開2006−202233(JP,A)
【文献】 特開2001−142510(JP,A)
【文献】 米国特許第07487316(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/04−19/05
(57)【特許請求の範囲】
【請求項1】
ブロック単位に貯蔵されるPLCプログラム及び前記PLCプログラムの貯蔵位置を定義するプログラムブロックテーブルが貯蔵される貯蔵部;及び、
PLC運転中にPLCプログラムが修正されると、修正されたPLCプログラムのブロック番号、前記修正されたPLCプログラムサイズ情報及び前記プログラムブロックテーブルを参照して、前記修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスを決定し、前記開始アドレスを参照して、前記修正されたPLCプログラムを前記貯蔵部に貯蔵し、前記修正されたPLCプログラムのブロック番号及び前記修正されたPLCプログラムのサイズ情報に基づいて前記プログラムブロックテーブルをアップデートする制御部を含み、
前記修正されたPLCプログラムが貯蔵される前記貯蔵位置の前記開始アドレスは、修正されたPLCプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズだけ増加させることによって決定される、
PLCプログラム処理装置。
【請求項2】
前記プログラムブロックテーブルは、
それぞれのPLCプログラムに対応するブロック番号及びそれぞれのPLCプログラムサイズ情報を含む、
請求項1に記載のPLCプログラム処理装置。
【請求項3】
前記制御部は、
前記修正されたPLCプログラムを受信すると、前記修正されたPLCプログラムより大きいブロック番号を有するPLCプログラムをバックアップして、前記修正されたPLCプログラムの貯蔵が完了した後、前記修正されたPLCプログラムブロックの次のブロックの開始アドレスを参照してバックアップされたPLCプログラムを前記貯蔵部に貯蔵する、
請求項1に記載のPLCプログラム処理装置。
【請求項4】
前記修正されたPLCプログラムの次のブロックの開始アドレスは、
前記修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスを、前記修正されたPLCプログラムサイズだけ増加させることによって決定される、
請求項に記載のPLCプログラム処理装置。
【請求項5】
前記修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスは、
前記修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラムの次のブロックの開始アドレスを、前記修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラム及び前記修正されたPLCプログラム間のブロックに貯蔵されたプログラムサイズだけ増加させることによって決定される、
請求項1に記載のPLCプログラム処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、PLCプログラム処理装置に関する。
【背景技術】
【0002】
産業現場の工場自動化システム等では、PLC(Programmable Logic Controller)のような統合制御装置が用いられる。
【0003】
PLCには、各種装置を制御するための初期化プログラム、スキャンプログラム、割り込みプログラムのようなPLCプログラムが貯蔵されている。かかるPLCプログラムは、PC(Personal Computer)のようなクライアント装置に設けられるPADT(Programming And Dubugging Tool)のような専用アプリケーションによって作成又は修正される。
【0004】
図1は、一般的なPLCプログラムの処理過程を示すフロー図である。
【0005】
PLC運転が始まると、先ず、PLC内部の初期化が行われる(102)。初期化は、PLCに内蔵したMPU(Main Processing Unit)又は他のモジュールのハードウェア的な初期化、及びPLCプログラムを行うための変数などに対するソフトウェア的な初期化を含む。
【0006】
次に、入力イメージ領域に対するリフレッシュが行われる(104)。PLC運転が始まると、入力モジュールを介して入力されるデータがメモリのような貯蔵部の入力領域に入力され、これらデータは、さらに入力イメージ領域にコピーされて、演算が行われる間の入力データとして用いられる。このように、入力領域のデータが入力イメージ領域にコピーされる動作を入力リフレッシュ(Input Refresh)と言う。
【0007】
次に、PLCは、前に行われた初期化が完了したか否かを確認する(106)。確認の結果、初期化が完了していないと、PLCは、予め貯蔵された初期化プログラムを行い、初期化を行う(108)。確認の結果、初期化が完了していると、PLCは、予め貯蔵されたスキャンプログラムを行う(110)。スキャンプログラムを行う途中に割り込み信号が発生すると、PLCは、スキャンプログラム実行を中断して、予め貯蔵された割り込みプログラムを行った後(112)、さらにスキャンプログラムを再開する(110)。
【0008】
初期化プログラム又はスキャンプログラムの実行が完了すると、出力イメージ領域に対するリフレッシュが行われる(114)。出力リフレッシュ(Output Refresh)は、初期化プログラム又はスキャンプログラムにより導出されたデータが出力イメージ領域にコピーされる動作を意味する。出力イメージ領域のリフレッシュが完了すると、PLCは、入力イメージ領域のリフレッシュ動作(104)に復帰して、前述した過程を繰り返して行う。
【0009】
一方、従来技術によれば、PLCが運転中であるとき、使用者は、PCのようなクライアント装置を介してPLCに接続して、PLC内部に貯蔵されたPLCプログラム(初期化プログラム、スキャンプログラム、割り込みプログラム等)を修正することができる。このように、PLCが運転中であるとき、PLCプログラムを修正する機能を「RUN中修正」と言う。
【0010】
図2は、PLC運転中に行われるRUN中修正の過程を示すフロー図である。
【0011】
PLCが運転中であるとき、使用者は、クライアント装置に設けられたPADTのようなPLCプログラム修正のためのアプリケーションを行い、PLCプログラム修正のため新しいプロジェクトファイルをオープンする(202)。使用者は、クライアント装置とPLCとの間の通信機能を介してPLCに接続する(204)。このような接続によって、PLCプログラム修正のためのアプリケーションによるRUN中修正機能が始まり(206)、PLCでは、プログラム修正の要否を確認するためのモニタリング機能が行われる(208)。
【0012】
使用者は、PLCプログラム修正のためのアプリケーションを用いて所望のPLCプログラムを修正する(210)。修正が完了すると、修正されたPLCプログラムがPLCに転送され、PLCは、修正されたPLCプログラムを貯蔵部に貯蔵して、既存のPLCプログラムをアップデートする(212)。これによって、RUN中修正機能が終了する。
【0013】
図3は、従来技術によるプログラムブロックテーブルを示す。また、図4は、PLCプログラムのRUN中修正によるプログラムブロックテーブルのアップデート結果を示す。
【0014】
前述したRUN中修正機能を行うため、PLCプログラム修正のためのアプリケーションは、図3に示したようなプログラムブロックテーブルを参照する。従来技術によれば、プログラムブロックテーブルは、PLC貯蔵部に貯蔵されている各プログラムの貯蔵位置を定義するためのデータであって、PLCプログラムの種類(例えば、初期化/スキャン/割り込み)、各PLCプログラムのブロック番号(例えば、1、2、...、14)、各PLCプログラムが貯蔵された位置の開始アドレス及び終了アドレス(例えば、0x0000、0x00FF)で構成される。
【0015】
従来技術によれば、PLCプログラム修正のためのアプリケーションは、図3のようなプログラムブロックテーブルを介して、使用者が修正したいPLCプログラムのブロック番号(例えば、6番)に対応する開始アドレス(0x1000)及び終了アドレス(0x10FF)を確認して、該PLCプログラムをクライアント装置にダウンロードする。ここで、開始アドレス及び終了アドレスは、6番ブロックのプログラムが貯蔵部内に貯蔵された物理的な位置を示すアドレスである。
【0016】
PLCプログラム修正が完了すると、PLCプログラム修正のためのアプリケーションは、使用者がRUN中修正によって修正を完了した、修正されたPLCプログラムをPLCへ転送すると同時に、修正されたPLCプログラムと対応するようにプログラムブロックテーブルをアップデートする。
【0017】
例えば、PLC運転中に使用者がPLC貯蔵部の6番ブロックに貯蔵されたスキャンプログラムを修正した結果、該スキャンプログラムサイズが0x200バイトだけ増加した場合、PLCプログラム修正のためのアプリケーションは、図4のように、6番ブロックの終了アドレスを0x200だけ増加されて0x12FFにアップデートする。このように、6番ブロックの終了アドレスが0x200だけ増加するにつれて、6番ブロックより大きいブロック番号を有するブロック、すなわち、7番〜14番ブロックの開始アドレス及び終了アドレスがそれぞれ0x200だけ増加することになる。RUN中修正の完了によって、PLCは、予めバックアップされた7番〜14番ブロックのプログラムを、図4のように新たに変更された開始アドレス及び終了アドレスに対応する貯蔵位置にさらに貯蔵する。
【0018】
ところが、従来技術によれば、複数の使用者が1つのPLCに同時に接続して、それぞれPLCプログラムを修正する場合が発生する。例えば、第1の使用者と第2の使用者が同時にPLCに接続し、図3のようなプログラムブロックテーブルを参照して、異なるブロックのPLCプログラムを修正する場合、第1の使用者のPLCプログラム修正が先に完了して、図4のように、プログラムブロックテーブルのアップデートが行われると、第2の使用者によって修正されたPLCプログラムは、図3のような既存のプログラムブロックテーブルを参照して誤った位置に貯蔵され得る。
【0019】
このような状況を防止するため、従来には、複数の使用者がPLCプログラム修正を要請する場合、一人の使用者によるPLCプログラム修正及びそれによるプログラムブロックテーブルのアップデートが完了するまで、他の使用者は、PLCプログラム修正が不可能であった。
【0020】
結局、従来技術によれば、PLC運転中に、複数の使用者がPLCに接続して、PLCプログラムを同時に修正することが不可能であるという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【0021】
本発明は、PLC運転中に複数の使用者が同時にPLCに接続して、PLCプログラムを修正するようにするPLCプログラム処理装置を提供することを目的とする。
【0022】
本発明の目的は、以上で言及した目的に制限されず、言及していない本発明の他の目的及び長所は、下記の説明によって理解されるし、本発明の実施形態によってより明らかに理解される。また、本発明の目的及び長所は、特許請求の範囲に示した手段及びその組み合わせによって実現できることが分かる。
【課題を解決しようとする手段】
【0023】
本発明の一実施形態によるPLCプログラム処理装置は、ブロック単位に貯蔵されるPLCプログラム、及び前記PLCプログラムの貯蔵位置を定義するプログラムブロックテーブルが貯蔵される貯蔵部、及び修正されたPLCプログラムのブロック番号、前記修正されたPLCプログラムサイズ情報及び前記プログラムブロックテーブルを参照して、前記修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスを決定し、前記開始アドレスを参照して、前記修正されたPLCプログラムを前記貯蔵部に貯蔵する制御部を含む。
【0024】
本発明の一実施形態において、前記プログラムブロックテーブルは、それぞれのPLCプログラムに対応するブロック番号及びそれぞれのPLCプログラムサイズ情報を含む。
【0025】
また、本発明の一実施形態において、前記修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスは、前記修正されたPLCプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズを加えて決定される。
【0026】
また、本発明の一実施形態において、前記制御部は、前記修正されたPLCプログラムを受信すると、前記修正されたPLCプログラムより大きいブロック番号を有するPLCプログラムをバックアップして、前記修正されたPLCプログラムの貯蔵が完了した後、前記修正されたPLCプログラムブロックの次のブロックの開始アドレスを参照してバックアップされたPLCプログラムを前記貯蔵部に貯蔵する。
【0027】
また、本発明の一実施形態において、前記修正されたPLCプログラムの次のブロックの開始アドレスは、前記修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスを、前記修正されたPLCプログラムサイズだけ増加させることによって決定される。
【0028】
また、本発明の一実施形態において、前記修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスは、前記修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラムの次のブロックの開始アドレスを、前記修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラム及び前記修正されたPLCプログラム間のブロックに貯蔵されたプログラムサイズだけ増加させることによって決定される。
【発明の効果】
【0029】
本発明によれば、PLC運転中に複数の使用者が同時にPLCに接続して、PLCプログラムを修正できる長所がある。
【図面の簡単な説明】
【0030】
図1】一般的なPLCプログラムの処理過程を示すフロー図である。
図2】PLC運転中に行われるRUN中修正過程を示すフロー図である。
図3】従来技術によるプログラムブロックテーブルを示す。
図4】PLCプログラムのRUN中修正によるプログラムブロックテーブルのアップデート結果を示す。
図5】本発明の一実施形態によるPLCプログラム処理装置の構成を示す。
図6】本発明の一実施形態によるPLCプログラム処理過程において参照される新しいプログラムブロックテーブルの構成を示す。
図7】本発明によるPLCプログラムのRUN中修正によるプログラムブロックテーブルのアップデート結果を示す。
【発明を実施するための形態】
【0031】
前述した目的、特徴及び長所は、添付の図面を参照して詳細に後述されており、これによって、本発明が属する技術分野で通常の知識を有する者が本発明の技術思想を容易に実施することができる。本発明を説明するにおいて、本発明に係る公知技術に対する具体的な説明が本発明の要旨を曖昧にすると判断される場合には詳説を省略する。以下では、添付の図面を参照して、本発明による好ましい実施形態を詳説する。図面における同じ参照符号は、同一又は類似の構成要素を指すものに使われる。
【0032】
図5は、本発明の一実施形態によるPLCプログラム処理装置の構成を示す。
【0033】
図5を参照すれば、本発明の一実施形態によるPLCプログラム処理装置は、制御部30及び貯蔵部32を含む。
【0034】
制御部30は、PLC運転のため貯蔵部32に貯蔵されたPLCプログラム312を行う。実施形態に従って、制御部30は、貯蔵部32に貯蔵されたPLCプログラム312を機械語又は中間言語に翻訳するためのコンパイラ(compiler)を含んでいてもよい。
【0035】
制御部30は、貯蔵部32に貯蔵されたそれぞれのPLCプログラム312を呼び出すため、貯蔵部32に貯蔵されたプログラムブロックテーブル322を参照してもよい。プログラムブロックテーブル322は、貯蔵部32に貯蔵されたそれぞれのPLCプログラム312の貯蔵位置を定義するためのテーブルである。本発明によるプログラムブロックテーブル322は、前述した従来のプログラムブロックテーブルとは異なる新しい構造を有するが、これについては後述する。
【0036】
また、制御部30は、クライアント装置(34_1、34_2、...、34_n)との通信を介して、使用者が修正しようとするPLCプログラム312をクライアント装置(34_1、34_2、...、34_n)に転送することができる。実施形態によっては、使用者のPLCプログラム修正の要請に応じて、クライアント装置(34_1、34_2、...、34_n)が直接に貯蔵部32に貯蔵されたプログラムブロックテーブル322を参照して、使用者が修正を要請したPLCプログラムをダウンロードすることもできる。
【0037】
また、使用者がPLCプログラム修正を完了すると、制御部30は、クライアント装置(34_1、34_2、...、34_n)から修正されたPLCプログラム、修正されたPLCプログラムのブロック番号、修正されたPLCプログラムサイズ情報を受信する。制御部30は、修正されたPLCプログラムのブロック番号、修正されたPLCプログラムサイズ情報に基づいて、プログラムブロックテーブル322をアップデートする。
【0038】
また、制御部30は、修正されたPLCプログラムのブロック番号、修正されたPLCプログラムサイズ情報及びアップデートされたプログラムブロックテーブル322を参照して、使用者によって修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスを決定する。
【0039】
ここで、修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスは、修正されたPLCプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズだけ増加させることによって決定される。制御部30は、決定された開始アドレスを参照して、修正されたPLCプログラムを貯蔵部32に貯蔵する。
【0040】
特に、複数のPLCプログラムが同時に修正される場合、修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスは、修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラムの次のブロックの開始アドレスを、修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラム及び修正されたPLCプログラム間のブロックに貯蔵されたプログラムサイズだけ増加させることによって決定される。
【0041】
また、制御部30は、クライアント装置(34_1、34_2、...、34_n)から修正されたPLCプログラムを受信すると、修正されたPLCプログラムより大きいブロック番号を有するPLCプログラムをバックアップして、修正されたPLCプログラムの貯蔵が完了した後、修正されたPLCプログラムブロックの次のブロックの開始アドレスを参照してバックアップされたPLCプログラムを貯蔵部32に貯蔵する。
【0042】
ここで、修正されたPLCプログラムの次のブロックの開始アドレスは、修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスをPLCプログラムサイズだけ増加させることによって決定される。
【0043】
以下では、図5図7を参照して、本発明の一実施形態によるPLCプログラム処理装置のRUN中修正機能を説明する。
【0044】
図6は、本発明の一実施形態によるPLCプログラム処理過程において参照される新しいプログラムブロックテーブルの構成を示す。また、図7は、本発明によるPLCプログラムのRUN中修正によるプログラムブロックテーブルのアップデート結果を示す。
【0045】
図6に示したように、本発明によるPLCプログラム処理装置に貯蔵されるプログラムブロックテーブルは、貯蔵部32に貯蔵されたPLCプログラムの種類(例えば、初期化/スキャン/割り込み)、それぞれのPLCプログラムが貯蔵されたブロックのブロック番号(例えば、1〜14)、それぞれのブロックに貯蔵されたPLCプログラムサイズ(例えば、0x0100)を含む。すなわち、従来技術と異なり、本発明のプログラムブロックテーブルは、それぞれのPLCプログラムが貯蔵された位置の開始アドレス及び終了アドレスを含まないで、ただそれぞれのPLCプログラムが占める空間の大きさのみを含む。
【0046】
先ず、最初の実施形態として、PLC運転中に一人の使用者によって6番ブロックに貯蔵されたスキャンプログラムが修正される過程を説明すれば、次のとおりである。
【0047】
使用者が貯蔵部32の6番ブロックに該当する位置に貯蔵されたスキャンプログラムに対する修正を要請すると、クライアント装置(34_1)は、制御部30を介して貯蔵部32の6番ブロックに貯蔵されたスキャンプログラムをダウンロードする。
【0048】
このとき、制御部30は、図6に示したようなプログラムブロックテーブルに記録された6番ブロックに対応するプログラムサイズ(0x0100)を参照して6番ブロックの開始アドレス及び終了アドレスを決定し、決定された開始アドレス及び終了アドレスを参照して6番ブロックに対応するスキャンプログラムを呼び出す。
【0049】
制御部30は、使用者が修正を要請したPLCプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズを加えて、6番ブロックの開始アドレスを決定してもよい。例えば、制御部30は、使用者が修正を要請したスキャンプログラムブロックである6番ブロックの以前ブロック、すなわち、1番〜5番ブロックに貯蔵されたPLCプログラムサイズ(0x0000、0x0100、0x0E00)を全て加えることによって、6番ブロックの開始アドレスを決定することができる。
【0050】
制御部30は、このように決定された6番ブロックの開始アドレスを参照して、貯蔵部32の6番ブロックからスキャンプログラムを呼び出し、呼び出したスキャンプログラムをクライアント装置(34_1)に転送する。
【0051】
使用者がクライアント装置(34_1)を介して貯蔵部32の6番ブロックに該当する位置に貯蔵されたスキャンプログラムに対する修正を完了すると、クライアント装置(34_1)は、修正されたスキャンプログラムとともに修正されたスキャンプログラムのブロック番号(6番)及び修正されたスキャンプログラムサイズ(0x0200)を制御部30に転送する。
【0052】
修正されたスキャンプログラムを受信した制御部30は、図7のように、プログラムブロックテーブルの6番ブロックのプログラムサイズを修正されたスキャンプログラムサイズである0x0200にアップデートする。それから、制御部30は、修正されたスキャンプログラムを貯蔵部32に貯蔵するために「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」を決定する。
【0053】
より具体的には、制御部30は、修正されたPLCプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズを加えて、「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」を決定する。例えば、制御部30は、修正されたスキャンプログラムブロックである6番ブロックの以前ブロック、すなわち、1番〜5番ブロックに貯蔵されたPLCプログラムサイズ(0x0000、0x0100、0x0E00)を全て加えることによって、修正されたスキャンプログラムが貯蔵される6番ブロックの開始アドレスを決定することができる。
【0054】
制御部30は、このように決定される開始アドレスを参照して、貯蔵部32に修正されたスキャンプログラムを貯蔵する。
【0055】
一方、制御部30は、クライアント装置(34_1)から修正されたPLCプログラムを受信すると、修正されたPLCプログラムより大きいブロック番号を有するPLCプログラムをバックアップする。例えば、制御部30は、修正されたスキャンプログラムブロックである6番ブロックより大きいブロック番号である7番〜14番ブロックに貯蔵されたそれぞれのPLCプログラムを貯蔵部32又は貯蔵部32ではない別途貯蔵空間にバックアップする。
【0056】
このように、7番〜14番ブロックに貯蔵されたそれぞれのPLCプログラムをバックアップした後、前述したように、修正されたスキャンプログラムの貯蔵が完了すると、制御部30は、修正されたスキャンプログラムブロック(6番ブロック)の次のブロックである7番ブロックの開始アドレスを参照してバックアップされた7番〜14番ブロックのPLCプログラムを順次に貯蔵部32に貯蔵する。
【0057】
ここで、制御部30は、前に決定された「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」、すなわち、6番ブロックの開始アドレスを修正されたスキャンプログラムサイズ(0x0200)だけ増加させることによって、「修正されたPLCプログラムブロックの次のブロックの開始アドレス」、すなわち、7番ブロックの開始アドレスを決定することができる。
【0058】
前述のような過程によって、PLC運転中に、6番ブロックに貯蔵されたスキャンプログラムに対するRUN中修正が完了する。
【0059】
次に、PLC運転中に二人の使用者によって6番ブロックに貯蔵されたスキャンプログラムと、10番ブロックに貯蔵された割り込みプログラムとが同時に修正される過程を説明すれば、次のとおりである。
【0060】
まず、制御部30は、クライアント装置(34_1)から6番ブロックに貯蔵されたスキャンプログラムに対する修正を要請されると同時に、クライアント装置(34_2)から10番ブロックに貯蔵された割り込みプログラムに対する修正を要請される。
【0061】
制御部30は、このような修正要請に応じて、図6に示したプログラムブロックテーブルを参照して、6番ブロックの開始アドレス及び10番ブロックの開始アドレスをそれぞれ決定する。前述したように、制御部30は、1番〜5番ブロックのプログラムサイズを全て加えて6番ブロックの開始アドレスを決定し、1番〜9番ブロックのプログラムサイズを全て加えて10番ブロックの開始アドレスを決定する。
【0062】
制御部30は、6番ブロックの開始アドレス及び10番ブロックの開始アドレスをそれぞれ参照して、6番ブロックに貯蔵されたスキャンプログラム及び10番ブロックに貯蔵された割り込みプログラムをそれぞれ呼び出す。制御部30は、呼び出したそれぞれのPLCプログラムをクライアント装置(34_1)及びクライアント装置(34_2)にそれぞれ転送する。
【0063】
その後、制御部30は、クライアント装置(34_1)から修正されたスキャンプログラム、修正されたスキャンプログラムのブロック番号及びサイズを受信すると同時に、クライアント装置(34_2)から修正された割り込みプログラム、修正された割り込みプログラムのブロック番号及びサイズを受信する。参考までに、制御部30がクライアント装置(34_1)及びクライアント装置(34_2)からそれぞれ一定の時間差をおいて修正されたPLCプログラムを受けた場合には、前述した1つの修正プログラムの貯蔵過程がそれぞれ順次に行われる。
【0064】
次に、制御部30は、図7に示したように、6番ブロックの修正されたスキャンプログラムサイズ及び10番ブロックの修正された割り込みプログラムサイズをアップデートする。
【0065】
次に、制御部30は、図7に示したプログラムブロックテーブルを参照して、修正されたPLCプログラムが貯蔵される6番ブロック及び10番ブロックの開始アドレスをそれぞれ決定する。
【0066】
より具体的には、制御部30は、修正されたPLCプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズを加えて、「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」を決定する。例えば、制御部30は、修正されたスキャンプログラムブロックである6番ブロックの以前ブロック、すなわち、1番〜5番ブロックに貯蔵されたPLCプログラムサイズ(0x0000、0x0100、0x0E00)を全て加えることによって、修正されたスキャンプログラムが貯蔵される6番ブロックの開始アドレスを決定することができる。
【0067】
また、制御部30は、修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラムの次のブロックの開始アドレスを、修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラム及び修正されたPLCプログラム間のブロックに貯蔵されたプログラムサイズだけ増加させることによって、10番ブロックの開始アドレスを決定する。
【0068】
例えば、制御部30は、修正された割り込みプログラム(10番)より小さいブロック番号を有する、修正されたスキャンプログラム(6番)の次ブロック(7番ブロック)の開始アドレスを先に決定する。前述したように、制御部30は、前に決定された「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」、すなわち、6番ブロックの開始アドレスを修正されたスキャンプログラムサイズ(0x0200)だけ増加させることによって、「修正されたPLCプログラムブロックの次のブロックの開始アドレス」、すなわち、7番ブロックの開始アドレスを決定することができる。
【0069】
制御部30は、このように決定された7番ブロックの開始アドレスを修正された割り込みプログラム(10番)より小さいブロック番号を有する、修正されたスキャンプログラム(6番)及び修正された割り込みプログラム(10)間のブロック、すなわち、7番〜9番ブロックに貯蔵されたプログラムサイズ(0x0100、0x1E10)だけ増加させることによって、10番ブロックの開始アドレスを決定することができる。
【0070】
また、制御部30は、10番ブロックの開始アドレスを、修正された割り込みプログラムサイズ(0x0150)だけ増加させることによって、11番ブロックの開始アドレスを決定することができる。
【0071】
制御部30は、このような過程によって決定された6番ブロックの開始アドレス及び10番ブロックの開始アドレスを参照して、修正されたスキャンプログラム及び修正された割り込みプログラムを同時に貯蔵部32に貯蔵する。
【0072】
一方、修正されたスキャンプログラム及び修正された割り込みプログラムをそれぞれ貯蔵部32に貯蔵する前に、制御部30は、前述した方法を用いて修正されなかった他のPLCプログラム、すなわち、1番〜5番ブロック、7番〜9番ブロック、11番〜14番ブロックに貯蔵されたPLCプログラムを予めバックアップすることができる。
【0073】
制御部30によって修正されたスキャンプログラム及び修正された割り込みプログラムをそれぞれ貯蔵部32に貯蔵した後、制御部30は、前に決定された6番ブロックの開始アドレス、7番ブロックの開始アドレス、10番ブロックの開始アドレス、11番ブロックの開始アドレスをそれぞれ参照して、前にバックアップされた1番〜5番ブロック、7番〜9番ブロック、11番〜14番ブロックのPLCプログラムを貯蔵部32にさらに貯蔵することができる。
【0074】
従来技術によれば、PLCは、貯蔵部に貯蔵されたそれぞれのPLCプログラムを呼び出すか、修正されたPLCプログラムを貯蔵するにおいて、それぞれのPLCプログラムが貯蔵される位置の開始アドレスをプログラムブロックテーブルから直接確認する。しかし、本発明によるPLCプログラム処理装置は、プログラムブロックテーブルに含まれたブロック番号及びプログラムサイズのみを参照して、それぞれのPLCプログラムが貯蔵される位置の開始アドレスを直接に算出する。
【0075】
従って、本発明によるPLCプログラム処理装置を用いる場合、複数の使用者がPLCプログラムを同時に修正できる長所がある。
【0076】
前述した本発明は、本発明が属する技術分野で通常の知識を有する者にとって、本発明の技術思想を脱しない範囲内で様々な置換、変形及び変更が可能であるため、前述した実施形態及び添付の図面によって限定されるものではない。
図1
図2
図3
図4
図5
図6
図7