JP6843823B2 - Plcプログラム処理装置 - Google Patents

Plcプログラム処理装置 Download PDF

Info

Publication number
JP6843823B2
JP6843823B2 JP2018235819A JP2018235819A JP6843823B2 JP 6843823 B2 JP6843823 B2 JP 6843823B2 JP 2018235819 A JP2018235819 A JP 2018235819A JP 2018235819 A JP2018235819 A JP 2018235819A JP 6843823 B2 JP6843823 B2 JP 6843823B2
Authority
JP
Japan
Prior art keywords
program
block
modified
plc
plc program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018235819A
Other languages
English (en)
Other versions
JP2019194837A (ja
Inventor
パク、ジョ−ドン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LS Electric Co Ltd
Original Assignee
LS Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LS Electric Co Ltd filed Critical LS Electric Co Ltd
Publication of JP2019194837A publication Critical patent/JP2019194837A/ja
Application granted granted Critical
Publication of JP6843823B2 publication Critical patent/JP6843823B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/11Plc I-O input output
    • G05B2219/1103Special, intelligent I-O processor, also plc can only access via processor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13114Use of relative addresses for program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13152Modification of program

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Programmable Controllers (AREA)

Description

本発明は、PLCプログラム処理装置に関する。
産業現場の工場自動化システム等では、PLC(Programmable Logic Controller)のような統合制御装置が用いられる。
PLCには、各種装置を制御するための初期化プログラム、スキャンプログラム、割り込みプログラムのようなPLCプログラムが貯蔵されている。かかるPLCプログラムは、PC(Personal Computer)のようなクライアント装置に設けられるPADT(Programming And Dubugging Tool)のような専用アプリケーションによって作成又は修正される。
図1は、一般的なPLCプログラムの処理過程を示すフロー図である。
PLC運転が始まると、先ず、PLC内部の初期化が行われる(102)。初期化は、PLCに内蔵したMPU(Main Processing Unit)又は他のモジュールのハードウェア的な初期化、及びPLCプログラムを行うための変数などに対するソフトウェア的な初期化を含む。
次に、入力イメージ領域に対するリフレッシュが行われる(104)。PLC運転が始まると、入力モジュールを介して入力されるデータがメモリのような貯蔵部の入力領域に入力され、これらデータは、さらに入力イメージ領域にコピーされて、演算が行われる間の入力データとして用いられる。このように、入力領域のデータが入力イメージ領域にコピーされる動作を入力リフレッシュ(Input Refresh)と言う。
次に、PLCは、前に行われた初期化が完了したか否かを確認する(106)。確認の結果、初期化が完了していないと、PLCは、予め貯蔵された初期化プログラムを行い、初期化を行う(108)。確認の結果、初期化が完了していると、PLCは、予め貯蔵されたスキャンプログラムを行う(110)。スキャンプログラムを行う途中に割り込み信号が発生すると、PLCは、スキャンプログラム実行を中断して、予め貯蔵された割り込みプログラムを行った後(112)、さらにスキャンプログラムを再開する(110)。
初期化プログラム又はスキャンプログラムの実行が完了すると、出力イメージ領域に対するリフレッシュが行われる(114)。出力リフレッシュ(Output Refresh)は、初期化プログラム又はスキャンプログラムにより導出されたデータが出力イメージ領域にコピーされる動作を意味する。出力イメージ領域のリフレッシュが完了すると、PLCは、入力イメージ領域のリフレッシュ動作(104)に復帰して、前述した過程を繰り返して行う。
一方、従来技術によれば、PLCが運転中であるとき、使用者は、PCのようなクライアント装置を介してPLCに接続して、PLC内部に貯蔵されたPLCプログラム(初期化プログラム、スキャンプログラム、割り込みプログラム等)を修正することができる。このように、PLCが運転中であるとき、PLCプログラムを修正する機能を「RUN中修正」と言う。
図2は、PLC運転中に行われるRUN中修正の過程を示すフロー図である。
PLCが運転中であるとき、使用者は、クライアント装置に設けられたPADTのようなPLCプログラム修正のためのアプリケーションを行い、PLCプログラム修正のため新しいプロジェクトファイルをオープンする(202)。使用者は、クライアント装置とPLCとの間の通信機能を介してPLCに接続する(204)。このような接続によって、PLCプログラム修正のためのアプリケーションによるRUN中修正機能が始まり(206)、PLCでは、プログラム修正の要否を確認するためのモニタリング機能が行われる(208)。
使用者は、PLCプログラム修正のためのアプリケーションを用いて所望のPLCプログラムを修正する(210)。修正が完了すると、修正されたPLCプログラムがPLCに転送され、PLCは、修正されたPLCプログラムを貯蔵部に貯蔵して、既存のPLCプログラムをアップデートする(212)。これによって、RUN中修正機能が終了する。
図3は、従来技術によるプログラムブロックテーブルを示す。また、図4は、PLCプログラムのRUN中修正によるプログラムブロックテーブルのアップデート結果を示す。
前述したRUN中修正機能を行うため、PLCプログラム修正のためのアプリケーションは、図3に示したようなプログラムブロックテーブルを参照する。従来技術によれば、プログラムブロックテーブルは、PLC貯蔵部に貯蔵されている各プログラムの貯蔵位置を定義するためのデータであって、PLCプログラムの種類(例えば、初期化/スキャン/割り込み)、各PLCプログラムのブロック番号(例えば、1、2、...、14)、各PLCプログラムが貯蔵された位置の開始アドレス及び終了アドレス(例えば、0x0000、0x00FF)で構成される。
従来技術によれば、PLCプログラム修正のためのアプリケーションは、図3のようなプログラムブロックテーブルを介して、使用者が修正したいPLCプログラムのブロック番号(例えば、6番)に対応する開始アドレス(0x1000)及び終了アドレス(0x10FF)を確認して、該PLCプログラムをクライアント装置にダウンロードする。ここで、開始アドレス及び終了アドレスは、6番ブロックのプログラムが貯蔵部内に貯蔵された物理的な位置を示すアドレスである。
PLCプログラム修正が完了すると、PLCプログラム修正のためのアプリケーションは、使用者がRUN中修正によって修正を完了した、修正されたPLCプログラムをPLCへ転送すると同時に、修正されたPLCプログラムと対応するようにプログラムブロックテーブルをアップデートする。
例えば、PLC運転中に使用者がPLC貯蔵部の6番ブロックに貯蔵されたスキャンプログラムを修正した結果、該スキャンプログラムサイズが0x200バイトだけ増加した場合、PLCプログラム修正のためのアプリケーションは、図4のように、6番ブロックの終了アドレスを0x200だけ増加されて0x12FFにアップデートする。このように、6番ブロックの終了アドレスが0x200だけ増加するにつれて、6番ブロックより大きいブロック番号を有するブロック、すなわち、7番〜14番ブロックの開始アドレス及び終了アドレスがそれぞれ0x200だけ増加することになる。RUN中修正の完了によって、PLCは、予めバックアップされた7番〜14番ブロックのプログラムを、図4のように新たに変更された開始アドレス及び終了アドレスに対応する貯蔵位置にさらに貯蔵する。
ところが、従来技術によれば、複数の使用者が1つのPLCに同時に接続して、それぞれPLCプログラムを修正する場合が発生する。例えば、第1の使用者と第2の使用者が同時にPLCに接続し、図3のようなプログラムブロックテーブルを参照して、異なるブロックのPLCプログラムを修正する場合、第1の使用者のPLCプログラム修正が先に完了して、図4のように、プログラムブロックテーブルのアップデートが行われると、第2の使用者によって修正されたPLCプログラムは、図3のような既存のプログラムブロックテーブルを参照して誤った位置に貯蔵され得る。
このような状況を防止するため、従来には、複数の使用者がPLCプログラム修正を要請する場合、一人の使用者によるPLCプログラム修正及びそれによるプログラムブロックテーブルのアップデートが完了するまで、他の使用者は、PLCプログラム修正が不可能であった。
結局、従来技術によれば、PLC運転中に、複数の使用者がPLCに接続して、PLCプログラムを同時に修正することが不可能であるという問題がある。
本発明は、PLC運転中に複数の使用者が同時にPLCに接続して、PLCプログラムを修正するようにするPLCプログラム処理装置を提供することを目的とする。
本発明の目的は、以上で言及した目的に制限されず、言及していない本発明の他の目的及び長所は、下記の説明によって理解されるし、本発明の実施形態によってより明らかに理解される。また、本発明の目的及び長所は、特許請求の範囲に示した手段及びその組み合わせによって実現できることが分かる。
課題を解決しようとする手段
本発明の一実施形態によるPLCプログラム処理装置は、ブロック単位に貯蔵されるPLCプログラム、及び前記PLCプログラムの貯蔵位置を定義するプログラムブロックテーブルが貯蔵される貯蔵部、及び修正されたPLCプログラムのブロック番号、前記修正されたPLCプログラムサイズ情報及び前記プログラムブロックテーブルを参照して、前記修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスを決定し、前記開始アドレスを参照して、前記修正されたPLCプログラムを前記貯蔵部に貯蔵する制御部を含む。
本発明の一実施形態において、前記プログラムブロックテーブルは、それぞれのPLCプログラムに対応するブロック番号及びそれぞれのPLCプログラムサイズ情報を含む。
また、本発明の一実施形態において、前記修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスは、前記修正されたPLCプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズを加えて決定される。
また、本発明の一実施形態において、前記制御部は、前記修正されたPLCプログラムを受信すると、前記修正されたPLCプログラムより大きいブロック番号を有するPLCプログラムをバックアップして、前記修正されたPLCプログラムの貯蔵が完了した後、前記修正されたPLCプログラムブロックの次のブロックの開始アドレスを参照してバックアップされたPLCプログラムを前記貯蔵部に貯蔵する。
また、本発明の一実施形態において、前記修正されたPLCプログラムの次のブロックの開始アドレスは、前記修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスを、前記修正されたPLCプログラムサイズだけ増加させることによって決定される。
また、本発明の一実施形態において、前記修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスは、前記修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラムの次のブロックの開始アドレスを、前記修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラム及び前記修正されたPLCプログラム間のブロックに貯蔵されたプログラムサイズだけ増加させることによって決定される。
本発明によれば、PLC運転中に複数の使用者が同時にPLCに接続して、PLCプログラムを修正できる長所がある。
一般的なPLCプログラムの処理過程を示すフロー図である。 PLC運転中に行われるRUN中修正過程を示すフロー図である。 従来技術によるプログラムブロックテーブルを示す。 PLCプログラムのRUN中修正によるプログラムブロックテーブルのアップデート結果を示す。 本発明の一実施形態によるPLCプログラム処理装置の構成を示す。 本発明の一実施形態によるPLCプログラム処理過程において参照される新しいプログラムブロックテーブルの構成を示す。 本発明によるPLCプログラムのRUN中修正によるプログラムブロックテーブルのアップデート結果を示す。
前述した目的、特徴及び長所は、添付の図面を参照して詳細に後述されており、これによって、本発明が属する技術分野で通常の知識を有する者が本発明の技術思想を容易に実施することができる。本発明を説明するにおいて、本発明に係る公知技術に対する具体的な説明が本発明の要旨を曖昧にすると判断される場合には詳説を省略する。以下では、添付の図面を参照して、本発明による好ましい実施形態を詳説する。図面における同じ参照符号は、同一又は類似の構成要素を指すものに使われる。
図5は、本発明の一実施形態によるPLCプログラム処理装置の構成を示す。
図5を参照すれば、本発明の一実施形態によるPLCプログラム処理装置は、制御部30及び貯蔵部32を含む。
制御部30は、PLC運転のため貯蔵部32に貯蔵されたPLCプログラム312を行う。実施形態に従って、制御部30は、貯蔵部32に貯蔵されたPLCプログラム312を機械語又は中間言語に翻訳するためのコンパイラ(compiler)を含んでいてもよい。
制御部30は、貯蔵部32に貯蔵されたそれぞれのPLCプログラム312を呼び出すため、貯蔵部32に貯蔵されたプログラムブロックテーブル322を参照してもよい。プログラムブロックテーブル322は、貯蔵部32に貯蔵されたそれぞれのPLCプログラム312の貯蔵位置を定義するためのテーブルである。本発明によるプログラムブロックテーブル322は、前述した従来のプログラムブロックテーブルとは異なる新しい構造を有するが、これについては後述する。
また、制御部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プログラムをダウンロードすることもできる。
また、使用者がPLCプログラム修正を完了すると、制御部30は、クライアント装置(34_1、34_2、...、34_n)から修正されたPLCプログラム、修正されたPLCプログラムのブロック番号、修正されたPLCプログラムサイズ情報を受信する。制御部30は、修正されたPLCプログラムのブロック番号、修正されたPLCプログラムサイズ情報に基づいて、プログラムブロックテーブル322をアップデートする。
また、制御部30は、修正されたPLCプログラムのブロック番号、修正されたPLCプログラムサイズ情報及びアップデートされたプログラムブロックテーブル322を参照して、使用者によって修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスを決定する。
ここで、修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスは、修正されたPLCプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズだけ増加させることによって決定される。制御部30は、決定された開始アドレスを参照して、修正されたPLCプログラムを貯蔵部32に貯蔵する。
特に、複数のPLCプログラムが同時に修正される場合、修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスは、修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラムの次のブロックの開始アドレスを、修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラム及び修正されたPLCプログラム間のブロックに貯蔵されたプログラムサイズだけ増加させることによって決定される。
また、制御部30は、クライアント装置(34_1、34_2、...、34_n)から修正されたPLCプログラムを受信すると、修正されたPLCプログラムより大きいブロック番号を有するPLCプログラムをバックアップして、修正されたPLCプログラムの貯蔵が完了した後、修正されたPLCプログラムブロックの次のブロックの開始アドレスを参照してバックアップされたPLCプログラムを貯蔵部32に貯蔵する。
ここで、修正されたPLCプログラムの次のブロックの開始アドレスは、修正されたPLCプログラムが貯蔵される貯蔵位置の開始アドレスをPLCプログラムサイズだけ増加させることによって決定される。
以下では、図5〜図7を参照して、本発明の一実施形態によるPLCプログラム処理装置のRUN中修正機能を説明する。
図6は、本発明の一実施形態によるPLCプログラム処理過程において参照される新しいプログラムブロックテーブルの構成を示す。また、図7は、本発明によるPLCプログラムのRUN中修正によるプログラムブロックテーブルのアップデート結果を示す。
図6に示したように、本発明によるPLCプログラム処理装置に貯蔵されるプログラムブロックテーブルは、貯蔵部32に貯蔵されたPLCプログラムの種類(例えば、初期化/スキャン/割り込み)、それぞれのPLCプログラムが貯蔵されたブロックのブロック番号(例えば、1〜14)、それぞれのブロックに貯蔵されたPLCプログラムサイズ(例えば、0x0100)を含む。すなわち、従来技術と異なり、本発明のプログラムブロックテーブルは、それぞれのPLCプログラムが貯蔵された位置の開始アドレス及び終了アドレスを含まないで、ただそれぞれのPLCプログラムが占める空間の大きさのみを含む。
先ず、最初の実施形態として、PLC運転中に一人の使用者によって6番ブロックに貯蔵されたスキャンプログラムが修正される過程を説明すれば、次のとおりである。
使用者が貯蔵部32の6番ブロックに該当する位置に貯蔵されたスキャンプログラムに対する修正を要請すると、クライアント装置(34_1)は、制御部30を介して貯蔵部32の6番ブロックに貯蔵されたスキャンプログラムをダウンロードする。
このとき、制御部30は、図6に示したようなプログラムブロックテーブルに記録された6番ブロックに対応するプログラムサイズ(0x0100)を参照して6番ブロックの開始アドレス及び終了アドレスを決定し、決定された開始アドレス及び終了アドレスを参照して6番ブロックに対応するスキャンプログラムを呼び出す。
制御部30は、使用者が修正を要請したPLCプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズを加えて、6番ブロックの開始アドレスを決定してもよい。例えば、制御部30は、使用者が修正を要請したスキャンプログラムブロックである6番ブロックの以前ブロック、すなわち、1番〜5番ブロックに貯蔵されたPLCプログラムサイズ(0x0000、0x0100、0x0E00)を全て加えることによって、6番ブロックの開始アドレスを決定することができる。
制御部30は、このように決定された6番ブロックの開始アドレスを参照して、貯蔵部32の6番ブロックからスキャンプログラムを呼び出し、呼び出したスキャンプログラムをクライアント装置(34_1)に転送する。
使用者がクライアント装置(34_1)を介して貯蔵部32の6番ブロックに該当する位置に貯蔵されたスキャンプログラムに対する修正を完了すると、クライアント装置(34_1)は、修正されたスキャンプログラムとともに修正されたスキャンプログラムのブロック番号(6番)及び修正されたスキャンプログラムサイズ(0x0200)を制御部30に転送する。
修正されたスキャンプログラムを受信した制御部30は、図7のように、プログラムブロックテーブルの6番ブロックのプログラムサイズを修正されたスキャンプログラムサイズである0x0200にアップデートする。それから、制御部30は、修正されたスキャンプログラムを貯蔵部32に貯蔵するために「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」を決定する。
より具体的には、制御部30は、修正されたPLCプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズを加えて、「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」を決定する。例えば、制御部30は、修正されたスキャンプログラムブロックである6番ブロックの以前ブロック、すなわち、1番〜5番ブロックに貯蔵されたPLCプログラムサイズ(0x0000、0x0100、0x0E00)を全て加えることによって、修正されたスキャンプログラムが貯蔵される6番ブロックの開始アドレスを決定することができる。
制御部30は、このように決定される開始アドレスを参照して、貯蔵部32に修正されたスキャンプログラムを貯蔵する。
一方、制御部30は、クライアント装置(34_1)から修正されたPLCプログラムを受信すると、修正されたPLCプログラムより大きいブロック番号を有するPLCプログラムをバックアップする。例えば、制御部30は、修正されたスキャンプログラムブロックである6番ブロックより大きいブロック番号である7番〜14番ブロックに貯蔵されたそれぞれのPLCプログラムを貯蔵部32又は貯蔵部32ではない別途貯蔵空間にバックアップする。
このように、7番〜14番ブロックに貯蔵されたそれぞれのPLCプログラムをバックアップした後、前述したように、修正されたスキャンプログラムの貯蔵が完了すると、制御部30は、修正されたスキャンプログラムブロック(6番ブロック)の次のブロックである7番ブロックの開始アドレスを参照してバックアップされた7番〜14番ブロックのPLCプログラムを順次に貯蔵部32に貯蔵する。
ここで、制御部30は、前に決定された「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」、すなわち、6番ブロックの開始アドレスを修正されたスキャンプログラムサイズ(0x0200)だけ増加させることによって、「修正されたPLCプログラムブロックの次のブロックの開始アドレス」、すなわち、7番ブロックの開始アドレスを決定することができる。
前述のような過程によって、PLC運転中に、6番ブロックに貯蔵されたスキャンプログラムに対するRUN中修正が完了する。
次に、PLC運転中に二人の使用者によって6番ブロックに貯蔵されたスキャンプログラムと、10番ブロックに貯蔵された割り込みプログラムとが同時に修正される過程を説明すれば、次のとおりである。
まず、制御部30は、クライアント装置(34_1)から6番ブロックに貯蔵されたスキャンプログラムに対する修正を要請されると同時に、クライアント装置(34_2)から10番ブロックに貯蔵された割り込みプログラムに対する修正を要請される。
制御部30は、このような修正要請に応じて、図6に示したプログラムブロックテーブルを参照して、6番ブロックの開始アドレス及び10番ブロックの開始アドレスをそれぞれ決定する。前述したように、制御部30は、1番〜5番ブロックのプログラムサイズを全て加えて6番ブロックの開始アドレスを決定し、1番〜9番ブロックのプログラムサイズを全て加えて10番ブロックの開始アドレスを決定する。
制御部30は、6番ブロックの開始アドレス及び10番ブロックの開始アドレスをそれぞれ参照して、6番ブロックに貯蔵されたスキャンプログラム及び10番ブロックに貯蔵された割り込みプログラムをそれぞれ呼び出す。制御部30は、呼び出したそれぞれのPLCプログラムをクライアント装置(34_1)及びクライアント装置(34_2)にそれぞれ転送する。
その後、制御部30は、クライアント装置(34_1)から修正されたスキャンプログラム、修正されたスキャンプログラムのブロック番号及びサイズを受信すると同時に、クライアント装置(34_2)から修正された割り込みプログラム、修正された割り込みプログラムのブロック番号及びサイズを受信する。参考までに、制御部30がクライアント装置(34_1)及びクライアント装置(34_2)からそれぞれ一定の時間差をおいて修正されたPLCプログラムを受けた場合には、前述した1つの修正プログラムの貯蔵過程がそれぞれ順次に行われる。
次に、制御部30は、図7に示したように、6番ブロックの修正されたスキャンプログラムサイズ及び10番ブロックの修正された割り込みプログラムサイズをアップデートする。
次に、制御部30は、図7に示したプログラムブロックテーブルを参照して、修正されたPLCプログラムが貯蔵される6番ブロック及び10番ブロックの開始アドレスをそれぞれ決定する。
より具体的には、制御部30は、修正されたPLCプログラムブロックの以前ブロックに貯蔵されたあらゆるプログラムサイズを加えて、「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」を決定する。例えば、制御部30は、修正されたスキャンプログラムブロックである6番ブロックの以前ブロック、すなわち、1番〜5番ブロックに貯蔵されたPLCプログラムサイズ(0x0000、0x0100、0x0E00)を全て加えることによって、修正されたスキャンプログラムが貯蔵される6番ブロックの開始アドレスを決定することができる。
また、制御部30は、修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラムの次のブロックの開始アドレスを、修正されたPLCプログラムより小さいブロック番号を有する、修正されたPLCプログラム及び修正されたPLCプログラム間のブロックに貯蔵されたプログラムサイズだけ増加させることによって、10番ブロックの開始アドレスを決定する。
例えば、制御部30は、修正された割り込みプログラム(10番)より小さいブロック番号を有する、修正されたスキャンプログラム(6番)の次ブロック(7番ブロック)の開始アドレスを先に決定する。前述したように、制御部30は、前に決定された「修正されたスキャンプログラムが貯蔵される貯蔵位置の開始アドレス」、すなわち、6番ブロックの開始アドレスを修正されたスキャンプログラムサイズ(0x0200)だけ増加させることによって、「修正されたPLCプログラムブロックの次のブロックの開始アドレス」、すなわち、7番ブロックの開始アドレスを決定することができる。
制御部30は、このように決定された7番ブロックの開始アドレスを修正された割り込みプログラム(10番)より小さいブロック番号を有する、修正されたスキャンプログラム(6番)及び修正された割り込みプログラム(10)間のブロック、すなわち、7番〜9番ブロックに貯蔵されたプログラムサイズ(0x0100、0x1E10)だけ増加させることによって、10番ブロックの開始アドレスを決定することができる。
また、制御部30は、10番ブロックの開始アドレスを、修正された割り込みプログラムサイズ(0x0150)だけ増加させることによって、11番ブロックの開始アドレスを決定することができる。
制御部30は、このような過程によって決定された6番ブロックの開始アドレス及び10番ブロックの開始アドレスを参照して、修正されたスキャンプログラム及び修正された割り込みプログラムを同時に貯蔵部32に貯蔵する。
一方、修正されたスキャンプログラム及び修正された割り込みプログラムをそれぞれ貯蔵部32に貯蔵する前に、制御部30は、前述した方法を用いて修正されなかった他のPLCプログラム、すなわち、1番〜5番ブロック、7番〜9番ブロック、11番〜14番ブロックに貯蔵されたPLCプログラムを予めバックアップすることができる。
制御部30によって修正されたスキャンプログラム及び修正された割り込みプログラムをそれぞれ貯蔵部32に貯蔵した後、制御部30は、前に決定された6番ブロックの開始アドレス、7番ブロックの開始アドレス、10番ブロックの開始アドレス、11番ブロックの開始アドレスをそれぞれ参照して、前にバックアップされた1番〜5番ブロック、7番〜9番ブロック、11番〜14番ブロックのPLCプログラムを貯蔵部32にさらに貯蔵することができる。
従来技術によれば、PLCは、貯蔵部に貯蔵されたそれぞれのPLCプログラムを呼び出すか、修正されたPLCプログラムを貯蔵するにおいて、それぞれのPLCプログラムが貯蔵される位置の開始アドレスをプログラムブロックテーブルから直接確認する。しかし、本発明によるPLCプログラム処理装置は、プログラムブロックテーブルに含まれたブロック番号及びプログラムサイズのみを参照して、それぞれのPLCプログラムが貯蔵される位置の開始アドレスを直接に算出する。
従って、本発明によるPLCプログラム処理装置を用いる場合、複数の使用者がPLCプログラムを同時に修正できる長所がある。
前述した本発明は、本発明が属する技術分野で通常の知識を有する者にとって、本発明の技術思想を脱しない範囲内で様々な置換、変形及び変更が可能であるため、前述した実施形態及び添付の図面によって限定されるものではない。

Claims (5)

  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プログラム処理装置。
JP2018235819A 2018-05-03 2018-12-17 Plcプログラム処理装置 Active JP6843823B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180051265A KR102434126B1 (ko) 2018-05-03 2018-05-03 Plc 프로그램 처리 장치
KR10-2018-0051265 2018-05-03

Publications (2)

Publication Number Publication Date
JP2019194837A JP2019194837A (ja) 2019-11-07
JP6843823B2 true JP6843823B2 (ja) 2021-03-17

Family

ID=64746276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018235819A Active JP6843823B2 (ja) 2018-05-03 2018-12-17 Plcプログラム処理装置

Country Status (5)

Country Link
US (1) US10824128B2 (ja)
EP (1) EP3564764A1 (ja)
JP (1) JP6843823B2 (ja)
KR (1) KR102434126B1 (ja)
CN (1) CN110442074B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102300334B1 (ko) 2021-05-06 2021-09-09 김정훈 링커 서버를 이용한 다수의 클라이언트 제어 시스템

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63177205A (ja) * 1987-01-19 1988-07-21 Toshiba Corp プログラマブルコントロ−ラのプログラミング装置
JP2001142510A (ja) * 1999-11-11 2001-05-25 Omron Corp コントローラシステム及びプログラミングツール並びにコントローラ
US7487316B1 (en) * 2001-09-17 2009-02-03 Rockwell Automation Technologies, Inc. Archive and restore system and methodology for on-line edits utilizing non-volatile buffering
KR100453053B1 (ko) * 2002-06-10 2004-10-15 삼성전자주식회사 플래쉬 메모리용 파일 시스템
JP2006202233A (ja) * 2005-01-24 2006-08-03 Fuji Electric Fa Components & Systems Co Ltd コントローラ、そのプログラム
CN101281470B (zh) * 2008-05-09 2010-12-08 浙江大学 多核体系结构下elf文件格式改造的方法
US20120117029A1 (en) * 2010-11-08 2012-05-10 Stephen Gold Backup policies for using different storage tiers
KR20130104453A (ko) 2012-03-14 2013-09-25 엘에스산전 주식회사 피엘시 시스템의 cpu 모듈, 피엘시 시스템의 프로그램 업데이트 처리 방법
JP5683518B2 (ja) 2012-03-27 2015-03-11 三菱電機株式会社 ファームウェア更新装置およびその方法
JP6136493B2 (ja) * 2013-04-10 2017-05-31 ブラザー工業株式会社 データ作成装置およびデータ作成プログラム
CN103593321B (zh) 2013-10-16 2016-05-04 北京航天自动控制研究所 一种支持梯形图功能块指令扩展的双核plc系统
KR101771289B1 (ko) * 2014-05-19 2017-08-24 엘에스산전 주식회사 Plc 프로그램 관리 장치
CN104391496A (zh) * 2014-12-09 2015-03-04 北京四方继保自动化股份有限公司 一种工业控制系统数据内存的管理方法
CN104751050A (zh) * 2015-04-13 2015-07-01 成都睿峰科技有限公司 一种客户端应用程序管理方法

Also Published As

Publication number Publication date
EP3564764A1 (en) 2019-11-06
CN110442074B (zh) 2022-07-22
KR102434126B1 (ko) 2022-08-18
CN110442074A (zh) 2019-11-12
JP2019194837A (ja) 2019-11-07
US20190339663A1 (en) 2019-11-07
KR20190127110A (ko) 2019-11-13
US10824128B2 (en) 2020-11-03

Similar Documents

Publication Publication Date Title
JP5491675B2 (ja) 情報処理装置及び情報処理装置制御方法
JP2014126989A (ja) 制御装置、制御方法、及び、プログラム
JPWO2015136970A1 (ja) 制御装置及び制御システム
JP6843823B2 (ja) Plcプログラム処理装置
JP2010022175A (ja) インバータ制御システム,インバータ装置の周辺機器
JP5908175B2 (ja) 制御システム、マスタ局、およびリモート局
JP2012093961A (ja) 制御装置及び方法、並びにプログラム書込システム
JP2007102632A (ja) シミュレーション装置
JP5224923B2 (ja) 制御装置
JP5459601B2 (ja) ロボットコントロール・システム、ロボットコントロール方法
JP2015005224A (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ、プログラム
JP2000293210A (ja) 制御プログラムの開発環境装置、制御プログラムを実行する制御装置、並びに、それらを実現するプログラムの記録媒体
JP6455096B2 (ja) コントロールシステム、その支援装置、プログラマブルコントロール装置
JP5158883B2 (ja) ファームウェア更新方法及びファームウェア更新装置
JP2007241570A (ja) プログラマブルコントローラ間通信のための共有メモリの設定方式
JPH03248204A (ja) プログラマブルコントローラの制御方法
JP2006126938A (ja) データ転送システム及びそのデータ転送方法
JP7168487B2 (ja) 転送制御装置、情報処理装置及び工作機械
WO2020213059A1 (ja) プログラム作成支援装置、プログラム作成支援方法およびプログラム
JP2006276955A (ja) プログラマブルコントローラ及びそのプログラミングツール
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP6790541B2 (ja) ロジック更新装置及びロジック更新方法
JP4037941B2 (ja) 制御装置
JP2008198001A (ja) 修正パッチ選択支援システム及び支援方法
JP2007188366A (ja) コンパイル装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201009

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210224

R150 Certificate of patent or registration of utility model

Ref document number: 6843823

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250