JP6205934B2 - プログラマブルコントローラシステム、その支援装置、プログラム - Google Patents

プログラマブルコントローラシステム、その支援装置、プログラム Download PDF

Info

Publication number
JP6205934B2
JP6205934B2 JP2013149942A JP2013149942A JP6205934B2 JP 6205934 B2 JP6205934 B2 JP 6205934B2 JP 2013149942 A JP2013149942 A JP 2013149942A JP 2013149942 A JP2013149942 A JP 2013149942A JP 6205934 B2 JP6205934 B2 JP 6205934B2
Authority
JP
Japan
Prior art keywords
program
variable
new
information
address information
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
JP2013149942A
Other languages
English (en)
Other versions
JP2015022511A (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.)
Fuji Electric Co Ltd
Original Assignee
Fuji 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2013149942A priority Critical patent/JP6205934B2/ja
Publication of JP2015022511A publication Critical patent/JP2015022511A/ja
Application granted granted Critical
Publication of JP6205934B2 publication Critical patent/JP6205934B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、プログラマブルコントローラのプログラム更新に伴う変数のデータの再配置方法等に関する。
従来、プログラマブルコントローラと支援装置を有するプログラマブルコントローラシステムが知られている。プログラマブルコントローラ(PLC)は、任意の制御プログラムを保持し、この制御プログラムを例えば定周期で実行することで、任意の制御対象の制御・監視等を実行する。支援装置は、ユーザが任意の制御プログラムのソースコードを作成するのを支援する支援機能や、このソースコードをコンパイルしてPLCで実行可能な形式(機械語オブジェクト)に変換するコンパイラ等の各種機能を有する。コンパイラは、コンパイルの際に、ソースコードに記述される各変数に対して任意のメモリアドレスを割り当てる。
ここで、作成された新規ソースコードが、PLCで運用中の制御プログラムの更新版である場合、新規ソースコードは、既存のソースコードをベースにして作成されるので、既存のソースコードに存在する変数(既存の変数)が含まれる場合が多い。この様な既存の変数に関しては、上記PLCで運用中の制御プログラム実行により、その割当メモリアドレスに何らかのデータが格納されている状態であり、プログラム更新の際にこのデータを引き継ぐ必要がある。
これに対して、コンパイルの際の各変数の割当メモリアドレスを記憶しておき、後に制御プログラム更新の際にこの記憶内容を参照することで、既存の変数と同じ変数に関しては、同じメモリアドレスが割り当てられるようにすることが考えられる。しかしながら、何らかの事情により、既存の変数の割当アドレスとは異なるアドレスを割り当てる必要がある場合もある。
尚、上記既存のソースコードとは、基本的には、PLCで運用中の制御プログラムのソースコードであるはずであるが、その保証はない。
ユーザが、上記支援装置において、例えば、既存のソースコードに基づいて更新版ソースコードを作成するプログラミングを実施し、更新版ソースコードをコンパイルした結果、変数のアドレス割付けに変更があった場合、この変数に係わるデータを、旧アドレスから新アドレスへと移動する必要がある。この様な従来技術として、例えば特許文献1に記載の従来技術が知られている。
特許文献1に開示されている従来技術では、支援装置によるコンパイル毎に、今回の変数割付情報を前回の変数割付情報と比較することにより、変数のアドレス割付けに変更が発生した箇所を検出する。そして、検出箇所毎に、前回の割付アドレスからデータを読み出して、このデータを今回の割付アドレスに書き込むことで、アドレス割付けに変更があった変数に係わるデータを移動する。
例えば上記特許文献1等の従来技術の動作は、例えば図7に示すようになると見做せる。図7は、従来のプログラマブルコントローラシステムの概略構成・動作を示す図である。
図示の例では、支援装置100において、任意のPLCのプロジェクトを更新する毎に、不図示のコンパイラが当該プロジェクトのプログラムをコンパイルする。尚、ここでは特に図示しないが、支援装置100は、複数のPLC110それぞれの制御プログラムを格納・管理している。各PLC毎に、そのPLC用の1または複数の制御プログラムを作成し、これをグループ化して管理しており、このグループ(各PLC用の制御プログラム群)を上記“プロジェクト”と呼ぶ。但し、以下の説明では、「プログラム」は、基本的に、1つの制御プログラムまたは複数の制御プログラム(プロジェクト)を意味するものとし、基本的に“プロジェクト”という用語は記述しないものとする。
図7において、支援装置100は、各PLCのプログラム毎に、そのプログラムに係わる各変数へのアドレス割当情報である変数アドレス情報に関して、その前回値を保持している。すなわち、支援装置100は、新たな更新版の制御プログラム(そのソースコード)がユーザにより作成されて、それをコンパイルする際に、既存の変数アドレス情報101を退避させて新たな“前回変数アドレス情報”102として保持すると共に、今回のコンパイル処理による変数アドレス割当情報を、新たな変数アドレス情報101として保持する。
そして、上記新たな制御プログラム(その機械語オブジェクト)をPLC110にダウンロードする際等に、“前回変数アドレス情報”102に基づいて各変数毎にPLC110の不図示のメモリの旧アドレスからデータを読み出す。尚、この様な移動元の変数データの読出しを“バックアップ”と記す。続いて、このバックアップデータを、変数アドレス情報101に基づいて、新アドレスに格納する。尚、この様な移動先への変数データの書込みをリストアと記す。
尚、制御プログラムのソースコードには、各種変数が含まれており、コンパイルの際には各変数にメモリアドレスを割り当てる。これより、コンパイラは、例えば変数名に対応付けてその変数の割当アドレス等を記録したテーブル等を作成し得るものであり、これが図示の変数アドレス情報である。
そして、図示の例の従来例の場合、既存のプログラムの更新版等のような新たなプログラムについてコンパイルする際には、まず、既存のプログラムに係わる既存の上記変数アドレス情報101を、新たな“前回変数アドレス情報”102として退避させる。そして、上記更新版等のプログラムに係わる変数アドレス割当情報を、新たな変数アドレス情報101として記憶する。
尚、既に述べたように、本説明では、プログラムとは、1つの制御プログラムまたは制御プログラム群(プロジェクト)を意味するものとする。
ここで、図7で説明したような従来の動作は、プログラム更新対象となるPLC110と支援装置100とを接続した状態(オンライン状態)で、プログラム一致確認、プログラム編集、コンパイル、ダウンロード、上記バックアップ、上記リストア等の一連の処理を実行する必要がある。プログラム編集は、ここでは、支援装置100が保持している既存の制御プログラム(そのソースコード)に対して修正・変更等を行うことで、更新版プログラムを作成するものである。
更に、このような従来の方法では、プログラム編集前に、編集対象の既存のプログラムが、PLC側で運用中のプログラムと同じであるか否かをチェックする必要がある。もし異なるならば、上記“前回変数アドレス情報”102等を用いたデータ移動処理が、正常に行えないからである。
この様に、従来では、オンライン状態で、上記チェックによりプログラム一致確認したうえで、プログラム編集、コンパイル、ダウンロード、上記バックアップ、上記リストア等の一連の処理を実行する必要がある。この様な従来の処理の一例を図8に示す。
図8は、従来の支援装置の処理フローチャート図を示す。
図8の処理は、オンライン状態で実行される。オンライン状態とは、ネットワークを介して支援装置100とPLC110とが接続中の状態である。また、本処理開始時点では、支援装置100側では、未だ、更新版等のプログラムの作成作業自体が、開始されていない。よって、支援装置100側には、既存のプログラムが格納されているが、その更新版のプログラムは未だ存在していない状態である。尚、以下、既存のプログラムをプログラムr、その更新版のプログラムをプログラムwと記すものとする。
上記オンライン状態で、支援装置100は、まず、更新処理対象のPLC110が現在保持・実行しているプログラムが、上記既存のプログラムrと同一であるか否かをチェックする(ステップS51)。同一であるならば、それはPLC側で運用中のプログラム実行による各変数データの格納位置が、上記“前回変数アドレス情報”102が示す各変数データの格納位置と同じであることを意味している。よって、この場合、“前回変数アドレス情報”102に基づいてバックアップ処理を行えば、正常に各変数の現在のデータを取得できることになる。
尚、図示していないが、もし同一ではないならば、何らかの所定の警告メッセージを報知する等して本処理を終了する。
支援装置100は、上記プログラム一致を確認したら、ユーザが既存のプログラムrに基づいてその更新版のプログラムを作成することを許可する。そして、ユーザが任意の更新版のプログラムw(そのソースコード)を作成したら、これをコンパイルすることで、PLCで実行可能な形式である機械語オブジェクトに変換する(ステップS52)。コンパイルの際には、よく知られているように、各変数のメモリアドレス割当てが行われる。
尚、上述したことから、ステップS52の処理も、引き続きオンライン中に行われる。つまり、支援装置100は、ステップS51の処理の時点からずっと、更新処理対象のPLC110と接続中の状態となっている。ステップS51の処理後にオフラインにして更新版のプログラムの作成作業を行うと、ステップS51で照合を行った意味が無くなるからである。
尚、ステップS52の処理が行われることで、支援装置100には、プログラムwのみが存在し、プログラムrは無くなっていることになる。換言すれば、プログラムrがプログラムwへと変更されたことになる。
また、上記ステップS52のコンパイル処理に伴って、更新版であるプログラムwの各変数のメモリアドレス割当が行われて変数アドレス情報が生成される。その際、上記図7で説明したように、既存の変数アドレス情報101を退避させて新たな前回変数アドレス情報102とすると共に、生成された変数アドレス割当情報を新たな変数アドレス情報101とする。この処理によって、上記一例では、前回変数アドレス情報102はプログラムrに係わるもの(旧アドレス)、変数アドレス情報101はプログラムwに係わるもの(新アドレス)となる。
尚、上記の通り、新アドレスは旧アドレスとは異なる場合もある。例えば、図8の図上右側に示す例では、変数Aに関しては、旧アドレスは‘0000’であるが、新アドレスは‘0002’となっている。
続いて、バックアップ処理を実行する(ステップS53)。これは、前回変数アドレス情報102に基づいて、PLC110の不図示のメモリ等から、各変数の旧アドレスからデータを取得して一時的に記憶する処理である。
これは、例えばまず、上記変数アドレス情報101と前回変数アドレス情報102とに基づいて、図示のデータ再配置情報120を作成しておく。但し、この段階では未だ図示の値124にはデータは格納されていない状態となっている。そして、このデータ再配置情報120に基づいてステップS53のバックアップ処理や後述するステップS55のリストア処理を行う。
ここで、図8の図上右側に示す例のデータ再配置情報120は、変数名121、旧アドレス122、新アドレス123、値124の各データ項目から成る。上記変数アドレス情報101と前回変数アドレス情報102を参照することで、各変数の変数名と旧アドレス、新アドレスが分かるので、これらを変数名121、旧アドレス122、新アドレス123に格納することで、データ再配置情報120の一部が作成できる。
そして、各変数毎に、その旧アドレス122によってPLC110のメモリからのデータ取得を行って、この取得データを値124に格納するという上記バックアップ処理を行うことで、データ再配置情報120が完成する。後に、この完成したデータ再配置情報120を参照して、後述するリストア処理を実行する。尚、上記PLC110のメモリの旧アドレスからデータを取得したら、当該アドレスの記憶領域を‘0’クリア等するようにしてもよい。
続いて、コンパイル後のプログラムw(機械語オブジェクト)を、PLC110にダウンロードする(ステップS54)。これによって、PLC110側では、既存のプログラムrは削除されて、新たなプログラムwに置き換わることになる。
その後、リストア処理を実行する(ステップS55)。すなわち、各変数毎に上記データ再配置情報120に退避させてあったデータを、その変数の新アドレスに格納する処理を行う。つまり、データ再配置情報120の各レコード毎に、その値124の格納データを、その新アドレス123が示す記憶領域に格納する。
この様にして、PLCの制御プログラムの更新に伴って変数の割当アドレスが変わっても、当該変数のデータを問題なく引き継ぐことができる。
尚、上記ステップS51〜S55の一連の処理は、オンライン状態で行われる。
尚、図8の処理中は、更新対象のPLCの制御プログラム実行は中断している。
特開2001−255913号公報
上述したように、従来の方法では、支援装置100において、オンライン状態で、更新対照の既存プログラムがPLC110側のプログラムと同一であることを確認したうえで、引き続き、プログラム編集、コンパイル、ダウンロード、上記バックアップ、上記リストア等の一連の処理を実行する必要がある。この様にすることで、新旧プログラムで変数の割当アドレスが変わっても、旧アドレスから新アドレスへのデータ移動を正しく行うことができ、データ引継ぎが問題なく行われる。
しかしながら、これは、逆に言えば、プログラム編集作業を含めた一連の処理を、支援装置100とPLC110とを常に接続した状態で行って、PLC110側のプログラム更新を完了させなければならない。
しかしながら、稼働中のシステムに対するプログラムの更新は、安全のため、稼働中のPLC内のデータをバックアップし、稼働中のシステムとは別の環境で新規作成プログラムの動作検証等を行った後、PLCのプログラム更新を実施する方法が一般的である。
しかしながら、この方法を上記図7、図8の従来技術に適用することができない。上記の通り、従来では、既存のプログラムrの更新版のプログラムwの作成作業を、上記オンラインの状態で行う必要がある。この為、作成されたプログラムwの検証作業等を別環境で行いたくても、出来なかった。
つまり、この場合、例えば、上記ステップS52の処理を、事前に、更に場合によっては別環境で行った後、作成した更新版等の新規制御プログラム(上記プログラムw等)について、別環境で上記動作検証等を行った後、オンライン状態で上記図8の処理を行うことになる。但し、この場合、ステップS52の処理は特に行う必要はない。
しかしながら、このとき、支援装置100には、新規プログラムwは存在するが、既存のプログラムrは存在していない。この為、ステップS51の照合では、PLC110側のプログラムと一致しない為、それ以降の処理は出来ないことになる。つまり、PLC110側のプログラムを更新することが出来ないことになる。また、仮に、プログラム不一致であっても強制的に上記ステップS53,S54,S55の処理を行ってPLC側のプログラム更新を強行するようにした場合、変数のデータの引継ぎが正しく行われる保証はないことになる。
しかしながら、図8の処理方法では、作成したプログラムwの動作検証を行わないまま、稼動中のPLCプログラムをプログラムwへと更新してそのまま運用させることになり、PLCの動作に何らかの異常が生じる可能性がある。
上述した従来技術の問題を解消することが望まれる。すなわち、例えば、オフライン状態で、既存プログラムに基づく更新版プログラムの編集作業や別環境での上記動作検証等を行ってから、オンライン状態で、変数のデータの引継ぎが正しく行われることを保証しつつPLC側のプログラム更新が行われるようにすることが望まれる。
本発明の課題は、オンライン状態で既存プログラムの一致確認と既存プログラムの更新版のプログラムの作成等の一連の処理を行わなくても、プログラム更新に伴う各変数の割当アドレスの変更に対応する変数データの再配置を正常に行うことができ、更に更新版プログラムの動作検証等を別環境等で行うことができるプログラマブルコントローラシステム、その支援装置等を提供することである。
本発明のプログラマブルコントローラシステムは、支援装置とプログラマブルコントローラを有するシステムであって、支援装置は、下記の各構成を有する。
・既存のプログラムに基づいて作成された任意の新規プログラムを記憶するプログラム記憶手段;
・前記新規プログラムをコンパイルする際に、該新規プログラムの各変数のメモリ割当情報を生成すると共に、ユニークなキー情報を生成するコンパイラ手段;
・前記既存プログラムに係わる変数アドレス情報を前回変数アドレス情報として退避させると共に、前記キー情報を付与したメモリ割当情報を新たな前記変数アドレス情報として記憶する新旧変数アドレス情報管理手段;
・前記プログラマブルコントローラ側で保持するキー情報が、前記前回変数アドレス情報に付与されているキー情報と一致するか否かを判定する一致判定手段;
・該一致判定手段により前記2つのキー情報が一致すると判定された場合に、前記新たな変数アドレス情報と前記前回変数アドレス情報とに基づいて、前記プログラマブルコントローラにおける前記各変数のデータを再配置する変数データ再配置手段。
本発明のプログラマブルコントローラシステム、その支援装置等によれば、オンライン状態で既存プログラムの一致確認と既存プログラムの更新版のプログラムの作成等の一連の処理を行わなくても、プログラム更新に伴う各変数の割当アドレスの変更に対応する変数データの再配置を正常に行うことができ、更に更新版プログラムの動作検証等を別環境等で行うことができる。
本例のプログラマブルコントローラシステムのシステム構成図である。 支援装置の全体処理フローチャート図である。 図2のステップS4の詳細フローチャート図である。 図2のステップS5の詳細フローチャート図である。 図2のステップS6の詳細フローチャート図である。 本例の支援装置の機能ブロック図である。 従来のプログラマブルコントローラシステムの概略構成・動作を示す図である。 従来の支援装置の処理フローチャート図である。
以下、図面を参照して本発明の実施の形態について説明する。
尚、上記従来の説明等と同様、以下の本説明においても、「プログラム」は、基本的に、1つの制御プログラムまたは複数の制御プログラム(プロジェクト)を意味するものとし、基本的に上記“プロジェクト”という用語は記述しないものとする。
図1は、本例のプログラマブルコントローラシステムのシステム構成図である。
本例においても、従来例と同様に、プログラマブルコントローラシステムは、基本的に、支援装置10とPLC(プログラマブルコントローラ)20を有する。
ここで、支援装置10は、例えばパソコン等の汎用コンピュータにより実現される。支援装置10は、一般的なパソコン等の構成を有する。すなわち、支援装置10は、ハードウェア構成としては、例えば、不図示のCPU等の演算プロセッサ、メモリ、ハードディスク等の記憶部、キーボード、マウス等の入力操作部、ディスプレイ等の表示部、通信機能部等を有している。不図示の通信機能部は、不図示の通信線/ネットワーク等に接続している。PLC20も不図示の通信線/ネットワークに接続している。これより、不図示の通信線/ネットワークを介して、支援装置10とPLC20とが通信できる。
また、支援装置10の上記不図示の記憶部には、予め所定のアプリケーションプログラムが記憶されている。支援装置10の上記不図示のCPU等が、このアプリケーションプログラムを実行することにより、後述する支援装置10の各種処理機能、特に図2〜図5の各フローチャート図の処理、図6に示す各機能部の処理機能などが、実現される。尚、図6に示す各種処理機能は、後述するが、例えば、プログラム記憶部51、コンパイラ部52、新旧変数アドレス情報管理部53、一致判定部54、変数データ再配置部55、ダウンロード部56、プログラム作成支援部57等である。
また、PLC20も、プログラマブルコントローラとしての一般的なハードウェア構成を有しており、例えば不図示のCPU、メモリ等の記憶部、通信機能部等を有している。この記憶部に予め記憶されているアプリケーションプログラムを、CPUが実行することにより、後述するPLC20の処理機能、例えば図6に示す記憶部61、制御部62等の処理機能が、実現される。
支援装置10は、基本的な機能は、上記従来の支援装置100と略同様と見做してもよい。すなわち、支援装置10は、上記ユーザによる任意の制御プログラムのソースコードの作成を支援する機能や、このソースコードをコンパイルして機械語オブジェクトに変換すると共に、その際の変数アドレス割当情報を管理するコンパイラ等を有する。
そして、本例の支援装置10では、更に、このコンパイル処理に伴って、既存の変数アドレス情報11を退避させて新たな“前回変数アドレス情報”12として保持すると共に、コンパイルによる新たな変数のアドレス割当情報を、新たな変数アドレス情報11として保持する機能なども有する。
そして、本例の支援装置10は、上記処理機能に加えて、キー情報に係わる各種処理・管理を行うものである。すなわち、支援装置10は、例えば、各制御プログラム(そのソースコード)をコンパイルする毎に、ユニークなキー情報を生成して、このキー情報を上記新たな変数のアドレス割当情報に付与する。よって、上記のことから、変数アドレス情報11にはキー情報が付与されていることになり、既存の変数アドレス情報11を退避させて成る上記“前回変数アドレス情報”12にもキー情報が付与されていることになる。ユニークなキー情報であるので、ある時点における変数アドレス情報11のキー情報と“前回変数アドレス情報”12のキー情報とは、相互に異なることになる。また、支援装置10は、上記コンパイルの際に生成したキー情報を、当該コンパイル結果である機械語オブジェクトと共にPLC20にダウンロードして記憶させる。
上述した動作について、図1の図上左側には、ダウンロード操作時&コンパイル時の動作を示す。これについて、上記従来で説明したプログラムr、プログラムwを例にして説明する。
図1の図上左側には、プログラムrのダウンロード時と、その後にプログラムrに基づいて作成された更新版のプログラムwのコンパイル時とが、混在して示されている。
まず、プログラムrに応じたキー情報として図示のキー情報“Key_r”が生成されたものとする。図には示していないが、このとき、プログラムrのコンパイル処理に伴う各変数のメモリアドレス割当情報にキー情報“Key_r”が付与されて、新たな変数アドレス情報11として保持されることになる。また、コンパイル結果である“プログラムrの機械語オブジェクト”をPLC20にダウンロードする際に、このキー情報“Key_r”も一緒にダウンロードして保持させる。これより、PLC20側には図示のようにキー情報“Key_r”が保持された状態となっている。尚、特に図示していないが、当然、ダウンロード後は、PLC20側ではプログラムrによって制御実行している状態となっている。
その後、任意のときに、プログラムrの更新版のプログラムwが作成されたものとする。そして、このプログラムwのコンパイル処理の際に、既存の変数アドレス情報11が退避されて新たな前回変数アドレス情報12として保持される。このときの既存の変数アドレス情報11は、上記プログラムrに係わるものであり上記の通りキー情報“Key_r”が付与されているので、上記退避後には前回変数アドレス情報12は図示の状態となっている。つまり、前回変数アドレス情報12は、上記プログラムrに係わる変数アドレス情報となっており、よって、キー情報“Key_r”が付与されたものとなっている。
更に、上記更新版のプログラムwに対しては、キー情報“Key_w”が生成されたものとする。これより、プログラムwのコンパイル処理に伴う各変数のメモリアドレス割当情報にキー情報“Key_w”が付与されて、新たな変数アドレス情報11として保持されることになる。つまり、図示の状態となることになる。
ここで、本手法では、上記プログラムwの作成やそのコンパイル処理等は、オフライン状態で行っても構わない。オフライン状態とは、PLC20と支援装置10とが接続されていない状態である。従って、別環境においてプログラムwの動作検証等を行うこともできる。その後、例えば、動作検証済みのプログラムwを保持していると共に、変数アドレス情報11と前回変数アドレス情報12が図1の図上左側に示す状態となっている支援装置10を、オンライン状態する。オンライン状態とは、PLC20と支援装置10とが接続されている状態である。そして、オンライン状態で、図1の図上右側に示す「バックアップ&リストア操作時」の動作を行って、変数のデータの再配置を行うと共に、プログラムwを上記キー情報“Key_w”と共にPLC20にダウンロードすることになる。
尚、図1の図上右側に示す「バックアップ&リストア」動作の際、PLC20側の状態は、図上右下側に示すように、最初はプログラムrが保持され、これに伴って図示のようにキー情報“Key_r”が保持された状態になっている。その後、新たなプログラムwがダウンロードされると、プログラムwが保持され、これに伴って図示のようにキー情報“Key_w”が保持された状態になる。また、図上右下側には、「バックアップ&リストア」動作に伴うPLC20のメモリの変数割当アドレスの格納データの状態変化も示すが、これについては後述する。
図上右側に示す「バックアップ&リストア」動作では、まず最初に、前回変数アドレス情報12のキー情報が、PLC20側で保持しているキー情報と一致するか否かをチェックする。図示の例では上記の通りPLC20側ではキー情報“Key_r”が保持されており、前回変数アドレス情報12のキー情報は“Key_r”であるので、キー情報は一致することになる。
キー情報が一致する場合には、PLC20側における現在の各変数のデータ格納位置は、現在の“前回変数アドレス情報”12が示すデータ格納位置と一致しているものと見做してよいことになる。従って、キー情報が一致する場合には、“前回変数アドレス情報”12に基づいてバックアップ処理を実行すれば、正常にデータ取得が出来ることになる。“前回変数アドレス情報”12は、従来の“前回変数アドレス情報”102と同様、各変数名に旧アドレスが対応付けられているので、この旧アドレスからデータを取得する。尚、バックアップ処理自体は、従来と略同様である。
尚、図示のバックアップデータ14は、上記バックアップ処理によって取得したデータでは無い。バックアップデータ14は、PLC20の不図示のメモリの全データのコピー等であり、上記バックアップ処理の前に作成しておくものである。これによって、上記バックアップ処理の際に、逐一PLC20のメモリから該当データを取得する必要なく、バックアップデータ14から該当データを取得すれば済むことになる。
上記バックアップ処理の後、リストア処理を実行する。このリストア処理自体も、従来と略同様である。つまり、変数アドレス情報11は、各変数名に新アドレスが対応付けられており、上記バックアップ処理で各変数名に対応するデータを取得しているので、このデータを新アドレスに格納する。
尚、PLC20側には変数名の情報は存在していない。換言すれば、ソースコードには変数名が記述され、機械語オブジェクトには各変数に割り当てられたアドレスが記述されることになる。よって、PLC20側では、各割当アドレスとその現在のデータを知ることは出来るが、どのアドレスがどの変数(変数名)に対応するものであるかまでは分からない。
尚、上記従来のデータ再配置情報120と同様の図示のデータ再配置情報30を作成し、これに基づいて上記バックアップ&リストア処理を実行するようにしてもよい。データ再配置情報30は、変数名31、旧アドレス32、新アドレス33、値34等から成り、バックアップ処理で旧アドレス32からの取得データを値34に格納し、リストア処理では値34のデータを新アドレス33に格納する。
勿論、これは一例であり、必ずしもデータ再配置情報30を作成しなくてもよい。旧アドレスからデータを取得してこのデータを新アドレスに格納することが出来れば、方法は何でも良い。
上記「バックアップ&リストア」動作によって、例えば図上下側に示すように、例えば旧アドレス‘0x0000’のデータ‘1’は、新アドレス‘0x0010’に移動することになる。
尚、図上右下側に示すように、PLC20側の状態は、バックアップ処理の際にはキー情報“Key_r”があるのでプログラムrが保持されており、リストア処理の後にはキー情報“Key_w”があるのでプログラムwが保持された状態になっていることになる。つまり、従来と略同様に、バックアップ処理の後あるいはリストア処理の後などに、プログラムwとそのキー情報“Key_w”が、PLC20にダウンロードされている。尚、逐一述べないが、当然、PLC20側にダウンロードされて保持されるプログラムは、コンパイル後、すなわち機械語オブジェクトである。
図2〜図5に、支援装置10の処理フローチャート図を示す。
図2は、支援装置10の全体処理フローチャート図である。
ここで、図2に示すステップS1の処理は、図2の処理に含まれないものと見做してもよい。すなわち、ステップS1の処理は、例えばプログラムの初期版に係わる処理である。初期版であるので、PLC20側には未だプログラムは存在していない。これより、特にチェック等は必要なく、変数データを引継ぐ必要もないのでバックアップ&リストア処理等も必要なく、ユーザは任意の環境下で自由に初期版のプログラムの作成や検証等を行うことができ、そのコンパイル処理も行うことができる。そして、支援装置10を処理対象のPLC20に接続してオンライン状態にして、コンパイル後のプログラムを当該PLC20にダウンロードして保持させる。PLC20は、このプログラムを用いて各種制御を実行する。
上記初期版に係る処理に関して、従来と異なる点は、上記コンパイル処理に伴ってユニークなキー情報を生成して、このキー情報が付与された変数アドレス情報11が生成される点である。尚、このときは未だ、前回変数アドレス情報12は存在していない。
尚、更新版の場合も、コンパイル処理に伴って作成される上述した変数アドレス割当情報に上述した新たなキー情報を付与したものを、新たな変数アドレス情報11として記憶するが、その前に、上記のように、既存の変数アドレス情報11を退避させて新たな前回変数アドレス情報12として記憶する。
ここで、本手法では、コンパイル処理に伴って新たな変数アドレス情報を生成する毎に、ユニークなキー情報を生成して、これを生成した変数アドレス情報に付随させる。キー情報は、同じものが生成されないようにすれば何でもよい。このキー情報は、PLC20にダウンロードするプログラムにも付随させる。尚、PLC20にダウンロードするプログラムは、当然、上記コンパイル処理によって得られる機械語オブジェクトである。
上記ステップS1の処理によって初期版に係る各種処理が実行され、その後、任意のときに、新たな更新版プログラムを作成する際に、ステップS2やステップS3〜S6の処理が実行される。
ここで、本説明では、図1の例を利用して、ステップS2では、その時点での既存のプログラムrに基づいて、その更新版等である新たなプログラムwが作成されるものとする。プログラムrは、例えばステップS1で作成された初期版であるかもしれないし、前回の図2の処理実行時にステップS2で作成されたプログラムかもしれない。また、図1と同様、プログラムrに対してはキー情報“Key_r”が生成されており、プログラムwに対してはキー情報“Key_w”が生成されるものとする。
そして、基本的には、以前に、プログラムrがキー情報“Key_r”と共にPLC20にダウンロードされており、PLC20側ではその時点からプログラムrにより運用開始したはずである。しかしながら、現在もPLC20側ではプログラムrにより運用中であるという保証はない。尚、図1には正常な場合を示しているので、PLC20にキー情報“Key_r”が保持されている状態を示してある。つまり、本手法では、正常な状態であれば、以下に説明するステップS2〜S6の処理を実行する際には、PLC20側にはキー情報“Key_r”が記憶された状態となっている。
上記のように、PLC20側で現在運用中のプログラムが、支援装置10側の上記既存のプログラムrと同一であるという保証は無い。その為、従来では上記ステップS51のチェック処理を行ったが、本手法では上記キー情報を用いた後述するステップS3のチェック処理を行う。詳しくは後述する。
また、ステップS2の処理開始前の段階では、支援装置10側にはプログラムrが格納されていると共に、キー情報“Key_r”が付随された変数アドレス情報は、図1とは異なり、未だ「前回変数アドレス情報」12にはなっておらず、上記変数アドレス情報11として記憶されている状態となっている。尚、プログラムrが初期版である例では、ステップS2の処理開始前の段階では、「前回変数アドレス情報」12は存在しておらず、キー情報“Key_r”が付随された変数アドレス情報11のみが存在していることになる。
上記ステップS1の初期版に係わる処理後、任意のときに、プログラムの更新等を行う際に、その都度、ステップS2〜S6の処理が行われる。
まず、本処理では更新の際に上記ステップS51の処理は行わない。よって、支援装置10において、オフラインの状態でユーザが所望のプログラム編集を行って、更新版等の新たなプログラムwを作成するものであってよい。また、別環境で、新たなプログラムwの動作検証等を行って、新たなプログラムwが問題なく動作することを確認するようにしてもよい。
このように、ステップS2では、例えばオフラインで、上記プログラム編集や動作検証を行って、正常に動作することが確認された上記プログラムwが、ユーザによって作成されることになる。更に、作成したプログラムwをコンパイルして、PLC20で実行可能な形式(機械語オブジェクト)に変換する。また、これに伴って、プログラムwに対応するキー情報“Key_w”が生成されたうえで変数アドレス情報の更新を行うことで、変数アドレス情報は例えば図1の上記「バックアップ&リストア操作」時の状態になるものとする。
すなわち、現在の変数アドレス情報11を「前回変数アドレス情報」12として退避させて、新たなプログラムwに係わる変数アドレス情報を新たな現在の変数アドレス情報11とする。これは、本例では、例えば図1の図上左側に示すように、キー情報“Key_r”付随の変数アドレス情報を新たな「前回変数アドレス情報」12として退避させて、キー情報“Key_w”付随の変数アドレス情報を、新たな現在の変数アドレス情報11として記憶することになる。
その後、任意のときに、オンライン状態、すなわち支援装置10を更新対象のPLC20に接続して通信可能な状態にして、ステップS3〜S6の処理を実行する。
まず、「前回変数アドレス情報」12のキー情報(本例では“Key_r”)を読出すと共に、PLC20側のキー情報を読出して両者が一致するか否かを確認する(ステップS3)。尚、特に図示していないが不一致の場合には、警告メッセージを報知する等して本処理を終了する。つまり、この場合、PLC20の変数データ再配置やプログラム更新は行えない。一方、キー情報が一致する場合には、本例ではPLC20側で現時点において運用中のプログラムが、プログラムrであると見做してよい。よって、PLC20内の不図示のメモリにおける各変数データの格納位置も、「前回変数アドレス情報」12が示す各アドレスとなっていると見做してよい。
本例ではステップS2においてプログラムrに基づいてその更新版であるプログラムwを作成しているが、この作成に伴ってプログラムrは無くなっている。従って、ステップS3の処理の時点では、従来のステップS51に相当する処理は行えない。しかし、「前回変数アドレス情報」12のキー情報を用いることで、ステップS51の略同様の確認が行える。すなわち、支援装置10に現在存在するプログラムwが、PLC20側の現在のプログラムの更新版等であることが確認できる。
ステップS3で一致確認したら、続いて、バックアップ処理を実行する(ステップS4)。ここで、ステップS4のバックアップ処理の詳細例を、図3に示す。尚、図3に示す例では、キー情報は上述した図1に示す例を用いている。
まず、「前回変数アドレス情報」12のキー情報“Key_r”を読出す(ステップS21)。更に、PLC20からキー情報を読み出す(ステップS22)。但し、PLC20にキー情報が存在しない場合には(ステップS23、NO)、更新不可等を示す所定の警告を報知して(ステップS26)、本処理を終了する。
一方、PLC20にキー情報が存在して(ステップS23,YES)これをステップS22で取得できた場合には、当該PLC20側のキー情報が、上記「前回変数アドレス情報」12のキー情報“Key_r”と一致するか否かを判定する(ステップS24)。図1に示す例では、一致するはずであるが、もし、キー情報が不一致ならば(ステップS24,NO)上記ステップS26の処理を実行して本処理を終了する。
キー情報が一致することを確認したら(ステップS24,YES)、前回変数アドレス情報12に登録されている各アドレス(旧アドレス)に基づいて、PLC20内の不図示のメモリの旧アドレスからデータを読み出して、これを旧アドレスと新アドレスとに対応付けて一時的に記憶する(ステップS25、S27、S28)。これは、上記従来のデータ再配置情報120の生成処理と略同様の処理を実行するものと見做してもよい。尚、本説明では、データ再配置情報の具体例は、上記従来のデータ再配置情報120と同様のデータ再配置情報30を用いるものとする。
尚、上記新アドレスとは、変数アドレス情報11に登録されている各アドレスのことである。尚、変数アドレス情報11の各レコードは、上述したように、変数名に応じた割当アドレス等から成り、本例では現在のプログラムwに係わる各変数の変数名と割当アドレスが格納されることになる。また、前回変数アドレス情報12は、既存の変数アドレス情報11を退避させたものであるので、そのデータ構造自体は変数アドレス情報11と同じである。
上記ステップS25、S27等の処理について、以下、図2等に示すデータ再配置情報30を用いて、一例について具体的に説明する。
例えば、前回変数アドレス情報12の各レコードを順次処理対象として、ステップS25,S27の処理を実行する。
まず、前回変数アドレス情報12における処理対象レコードの変数名と割当アドレス(上記旧アドレス)を取得する(ステップS25)。そして、PLC20内の不図示のメモリから当該旧アドレスの格納データを読み出して、この読出データを上記処理対象レコードの変数名と割当アドレス(旧アドレス)に紐付けて記憶する。つまり、処理対象レコードの変数名と割当アドレス(旧アドレス)と読出データを、データ再配置情報30の新規追加レコードの変数名31と旧アドレス32と値34とにそれぞれ格納する(ステップS27)。
ステップS27では、更に、変数アドレス情報11における上記変数名31に対応する割当アドレス(新アドレス)を取得して、これを上記新規追加レコードの新アドレス33に格納する処理も行う。これによって、データ再配置情報30の1レコードが作成完了することになる。
前回変数アドレス情報12の全てのレコードについて上記ステップS25、S27の処理を実行するまで、上記ステップS25、S27の処理を繰り返す。そして、全レコードについて処理実行したら(ステップS28,YES)本処理を終了する。
尚、図3の処理の開始前に、例えば図1に示すようにPLC20側の保持データを取得してバックアップデータ14として支援装置10側に保持しておき、ステップS22、S27の処理では、PLC20からデータを取得するのではなく、バックアップデータ14からデータ取得するようにしてもよい。
上記ステップS4の処理によってデータ再配置情報30の作成が完了したら、上記更新版等の新たなプログラムwを、そのキー情報(本例では“Key_w”)と共に、PLC20にダウンロードする(ステップS5)。
図4に、ステップS5の詳細フローチャート図を示す。
上記更新版等のプログラムwを、キー情報“Key_w”を付してPLC20にダウンロードする(ステップS11)。これは、例えば、上記ステップS2で作成された更新版等のプログラムwを、当該ステップS2のコンパイル処理に伴って生成した上記キー情報“Key_w”を付してPLC20にダウンロードする。
これによって、次回のプログラム更新の際には、例えば図3の処理を実行する時点では、「前回変数アドレス情報」12は、上記キー情報“Key_w”付随の変数アドレス情報になっていると共に、正常であればPLC20側のキー情報も“Key_w”であるはずである。
上記ステップS5のダウンロード処理後、リストア処理を行う(ステップS6)。
図5は、ステップS6の詳細フローチャート図である。
図5において、まず、変数アドレス情報11に付随のキー情報(本例では“Key_w”)を読出すと共に(ステップS31)、PLC20からキー情報を読み出す(ステップS32)。図4の処理により、PLC20側に特に異常が無ければ、PLC20側で保持するキー情報は、“Key_w”となっているはずである。しかし、PLC20側に何らかの異常があって、PLC20側にキー情報が存在しなかったり(ステップS33,NO)、PLC20側のキー情報が、ステップS31で読み出したキー情報“Key_w”と不一致の場合には(ステップS34,NO)、リストア操作不可である旨の警告を報知する等して(ステップS36)、本処理を終了する。
一方、PLC20側のキー情報が、上記変数アドレス情報11に付随のキー情報“Key_w”と一致することを確認したならば(ステップS34,YES)、上記データ再配置情報30の各レコードを順次参照して、リストア処理を実行する。
すなわち、データ再配置情報30の任意のレコードを参照して(ステップS35)、そのレコードの値34のデータを、当該レコードの新アドレス33の記憶領域に格納する(ステップS37)。当該ステップS35、S37の処理を、データ再配置情報30の全レコードについて順次実行していき、全レコードについて実行完了したら(ステップS38,YES)本処理を終了する。
尚、オンライン状態にしてステップS3でキー情報一致を確認したら、引き続きオンライン状態のままでステップS4、S5、S6の処理を実行する。尚、ステップS5の実行タイミングは、図2に示す例に限らず、例えばステップS6の処理後に実行してもよい。但し、その場合には、ステップS11,S12の「新たなキー情報生成と該キー情報を変数アドレス情報11に付与する処理」は、例えばステップS2の処理の際に行っておく。
また、上記ステップS31〜S34の処理は、必ずしも必要ないものである。すなわち、上記ステップS31〜S34の処理は、ダウンロード処理後にリストア処理を行う例に対応するものであり、ダウンロードが正常に行われたことを確認する為の処理である。よって、必ずしも必要ない処理であり、更に例えばリストア処理後にダウンロード処理を行う例の場合には必要ない処理である。
図6は、本例の支援装置10とPLC20の機能ブロック図である。
まず、支援装置10は、プログラム記憶部51、コンパイラ部52、新旧変数アドレス情報管理部53、一致判定部54、変数データ再配置部55、ダウンロード部56等を有する。支援装置10は、更に、プログラム作成支援部57等を有するものであってもよい。
プログラム記憶部51は、既存のプログラムに基づいて作成された任意の新規プログラムを記憶する。
コンパイラ部52は、上記新規プログラムをコンパイルする。すなわち、新規プログラムのソースコードをコンパイルして機械語オブジェクトに変換する。更に、このコンパイル処理に伴って、該新規プログラムの各変数のメモリ割当情報を生成すると共に、ユニークなキー情報を生成する。
新旧変数アドレス情報管理部53は、上記既存プログラムに係わる変数アドレス情報を前回変数アドレス情報として退避させると共に、上記キー情報を付与したメモリ割当情報を新たな上記変数アドレス情報として記憶する。尚、この様に、変数アドレス情報はキー情報が付与されているので、これを退避させて成る上記前回変数アドレス情報にも、当然、キー情報が付与されていることになる。ユニークなキー情報であるので、当然、前回変数アドレス情報に付与されているキー情報は、新たな変数アドレス情報に付与されているキー情報とは、異なることになる。
一致判定部54は、PLC20側で保持するキー情報が、上記前回変数アドレス情報に付与されているキー情報と一致するか否かを判定する。
変数データ再配置部55は、一致判定部54により上記2つのキー情報が一致すると判定された場合に、上記新たな変数アドレス情報と上記前回変数アドレス情報とに基づいて、PLC20内の不図示のメモリにおける各変数のデータを再配置する。
ダウンロード部56は、上記一致判定部54により上記2つのキー情報が一致すると判定された場合に、上記コンパイル後の新規プログラムを上記生成したキー情報と共にPLC20にダウンロードして記憶させる。
プログラム作成支援部57は、上記既存のプログラムに基づく任意の新規プログラムの作成作業を支援する。この機能自体は既存の一般的な機能である。
そして、プログラム作成支援部57による新規プログラムの作成作業や、その動作検証作業等は、PLC20と接続していないオフライン状態で実施される。その一方で、一致判定部54の上記判定処理と変数データ再配置部55による上記各変数のデータを再配置する処理は、PLC20と接続したオンライン状態で例えば連続して実行される。
また、上記新たな変数アドレス情報と上記前回変数アドレス情報は、何れも、各変数に応じたPLC20内のメモリへの割当アドレスを有している。ここでは、各変数毎に、上記新たな変数アドレス情報における割当アドレスを新アドレス、上記前回変数アドレス情報における割当アドレスを旧アドレスとする。上記各変数のデータの再配置は、例えば、PLC20内の上記メモリについて旧アドレスから読み出したデータを新アドレスに書き込む処理である。
また、例えば、上記新規プログラムは、上記既存プログラムの更新版であり、該新規プログラムが作成されることで該既存プログラムは無くなる。つまり、新規プログラムが作成済みの状態では、既存プログラムは支援装置10には記憶されていない。但し、このとき、既存プログラムは、PLC20には記憶されており動作中かもしれない。そうであれば、PLC20側における各変数の格納アドレスは、実質的に上記前回変数アドレス情報に応じたものとなっていることになる。よって、上記旧アドレスからデータを読み出せば、各変数に応じた現状の正常なデータが取得できることになる。
また、PLC20は、例えば、記憶部61、制御部62等を有する。
記憶部61は、上記ダウンロード部56によりダウンロードされる上記コンパイル後の新規プログラムと上記キー情報とを記憶する。
制御部62は、記憶部61に記憶された上記コンパイル後の新規プログラムを実行することで所定の制御を行う。
尚、PLC20に関しては、記憶部61に記憶されるプログラムに、キー情報が付与されている点を除けば、従来と同様と見做してよいので、これ以上は説明しない。
上述したように、本手法によれば、支援装置10側でオフライン状態で更新版プログラムの作成等を行う場合でも、現在のPLC20側のプログラムが、更新元のプログラムと同一であるか否かを、キー情報に基づいて判別できる。換言すれば、現在のPLC20側における各変数のメモリ割当てが、「前回変数アドレス情報」12と同一であることを、キー情報が一致することによって確認できる。キー情報が一致するならば、「前回変数アドレス情報」12に基づいてPLC20のメモリの各旧アドレスのデータを読み出して、このデータを新たな変数アドレス情報11に基づいて新アドレスに書き込むことで、各変数に係わるデータの移動を正常に行うことができる。つまり、割当アドレスが変わっても、データの引継ぎを正常に行えることになる。そして、更新版プログラムをPLC20にダウンロードして実行させることになる。
そして、上記のように更新版プログラムの作成は、オフライン状態で行うことができるので、従って作成したプログラムの動作検証等も別環境などで行うことができる。よって、動作検証済みの更新版プログラムをPLC20にダウンロードすることができ、PLC20側で更新後の動作が異常になることを防止できる。
従来では、プログラム一致確認、プログラム編集、ダウンロード、データのバックアップおよびリストアといった一連の操作を、オンライン状態のまま継続して行う必要があった。これに対して、本手法では上記のように、オンライン状態で既存プログラムの一致確認と既存プログラムに基づく更新版のプログラムの作成等の上記一連の処理を行わなくても、プログラム更新に伴う各変数の割当アドレスの変更に対応する変数データの再配置を正常に行うことができ、更にオフライン状態で別環境等で、プログラム編集や動作検証等を行うことができる。オフラインで更新版プログラムの動作検証を行った後に、その更新元のプログラムにて稼働中のPLC20に対して更新処理を行える。このように、PLC内のデータ更新を安全に行えるようになるとともに、エンジニアリングの効率化を図れるという効果を有する。
尚、PLC20のプログラムの更新やそれに伴う変数データ再配置は、更新対象のPLCの稼動中に行われるが、ステップS3〜S6の処理中は、更新対象のPLC20の制御プログラム実行は中断している。
10 支援装置
11 変数アドレス情報
12 前回変数アドレス情報
14 バックアップデータ
20 PLC(プログラマブルコントローラ)
30 データ再配置情報
31 変数名
32 旧アドレス
33 新アドレス
34 値
51 プログラム記憶部
52 コンパイラ部
53 新旧変数アドレス情報管理部
54 一致判定部
55 変数データ再配置部
56 ダウンロード部
57 プログラム作成支援部
61 記憶部
62 制御部

Claims (8)

  1. 支援装置とプログラマブルコントローラを有するシステムであって、
    前記支援装置は、
    既存のプログラムに基づいて作成された任意の新規プログラムを記憶するプログラム記憶手段と、
    前記新規プログラムをコンパイルする際に、該新規プログラムの各変数のメモリ割当情報を生成すると共に、ユニークなキー情報を生成するコンパイラ手段と、
    前記既存プログラムに係わる変数アドレス情報を前回変数アドレス情報として退避させると共に、前記キー情報を付与したメモリ割当情報を新たな前記変数アドレス情報として記憶する新旧変数アドレス情報管理手段と、
    前記プログラマブルコントローラ側で保持するキー情報が、前記前回変数アドレス情報に付与されているキー情報と一致するか否かを判定する一致判定手段と、
    該一致判定手段により前記2つのキー情報が一致すると判定された場合に、前記新たな変数アドレス情報と前記前回変数アドレス情報とに基づいて、前記プログラマブルコントローラにおける前記各変数のデータを再配置する変数データ再配置手段と、
    を有することを特徴とするプログラマブルコントローラシステム。
  2. 前記支援装置は、
    前記一致判定手段により前記2つのキー情報が一致すると判定された場合に、前記コンパイル後の新規プログラムを前記生成したキー情報と共に前記プログラマブルコントローラにダウンロードして記憶させるダウンロード手段を更に有することを特徴とする請求項1記載のプログラマブルコントローラシステム。
  3. 前記支援装置は、前記既存のプログラムに基づく任意の新規プログラムの作成を支援するプログラム作成支援手段を更に有し、
    該プログラム作成支援手段による新規プログラムの作成は、前記プログラマブルコントローラと接続していないオフライン状態で実施され、
    前記一致判定手段の判定処理と前記変数データ再配置手段による前記各変数のデータを再配置する処理は、前記プログラマブルコントローラと接続したオンライン状態で実行されることを特徴とする請求項1または2記載のプログラマブルコントローラシステム。
  4. 前記新たな変数アドレス情報と前記前回変数アドレス情報は、何れも、各変数に応じた前記プログラマブルコントローラ内のメモリへの割当アドレスを有し、
    前記各変数のデータの再配置は、前記各変数毎に、前記新たな変数アドレス情報における前記割当アドレスを新アドレス、前記前回変数アドレス情報における前記割当アドレスを旧アドレスとして、前記プログラマブルコントローラ内の前記メモリについて旧アドレスから読み出したデータを新アドレスに書き込む処理であることを特徴とする請求項1〜3の何れかに記載のプログラマブルコントローラシステム。
  5. 前記新規プログラムは前記既存プログラムの更新版であり、該新規プログラムが作成されることで該既存プログラムは無くなることを特徴とする請求項1〜4の何れかに記載のプログラマブルコントローラシステム。
  6. 前記プログラマブルコントローラは、
    前記ダウンロード手段によりダウンロードされる前記コンパイル後の新規プログラムと前記キー情報とを記憶する記憶手段と、
    該記憶手段に記憶された前記コンパイル後の新規プログラムを実行することで所定の制御を行う制御手段と、
    を有することを特徴とする請求項2記載のプログラマブルコントローラシステム。
  7. 支援装置とプログラマブルコントローラを有するシステムにおける該支援装置であって、
    既存のプログラムに基づいて作成された任意の新規プログラムを記憶するプログラム記憶手段と、
    前記新規プログラムをコンパイルする際に、該新規プログラムの各変数のメモリ割当情報を生成すると共に、ユニークなキー情報を生成するコンパイラ手段と、
    前記既存プログラムに係わる変数アドレス情報を前回変数アドレス情報として退避させると共に、前記キー情報を付与したメモリ割当情報を新たな前記変数アドレス情報として記憶する新旧変数アドレス情報管理手段と、
    前記プログラマブルコントローラ側で保持するキー情報が、前記前回変数アドレス情報に付与されているキー情報と一致するか否かを判定する一致判定手段と
    該一致判定手段により前記2つのキー情報が一致すると判定された場合に、前記新たな変数アドレス情報と前記前回変数アドレス情報とに基づいて、前記プログラマブルコントローラにおける前記各変数のデータを再配置する変数データ再配置手段と、
    を有することを特徴とするプログラマブルコントローラシステムの支援装置。
  8. 支援装置とプログラマブルコントローラを有するシステムにおける該支援装置のコンピュータを、
    既存のプログラムに基づいて作成された任意の新規プログラムを記憶するプログラム記憶手段と、
    前記新規プログラムをコンパイルする際に、該新規プログラムの各変数のメモリ割当情報を生成すると共に、ユニークなキー情報を生成するコンパイラ手段と、
    前記既存プログラムに係わる変数アドレス情報を前回変数アドレス情報として退避させると共に、前記キー情報を付与したメモリ割当情報を新たな前記変数アドレス情報として記憶する新旧変数アドレス情報管理手段と、
    前記プログラマブルコントローラ側で保持するキー情報が、前記前回変数アドレス情報に付与されているキー情報と一致するか否かを判定する一致判定手段と
    該一致判定手段により前記2つのキー情報が一致すると判定された場合に、前記新たな変数アドレス情報と前記前回変数アドレス情報とに基づいて、前記プログラマブルコントローラにおける前記各変数のデータを再配置する変数データ再配置手段、
    として機能させる為のプログラム。
JP2013149942A 2013-07-18 2013-07-18 プログラマブルコントローラシステム、その支援装置、プログラム Active JP6205934B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013149942A JP6205934B2 (ja) 2013-07-18 2013-07-18 プログラマブルコントローラシステム、その支援装置、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013149942A JP6205934B2 (ja) 2013-07-18 2013-07-18 プログラマブルコントローラシステム、その支援装置、プログラム

Publications (2)

Publication Number Publication Date
JP2015022511A JP2015022511A (ja) 2015-02-02
JP6205934B2 true JP6205934B2 (ja) 2017-10-04

Family

ID=52486909

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013149942A Active JP6205934B2 (ja) 2013-07-18 2013-07-18 プログラマブルコントローラシステム、その支援装置、プログラム

Country Status (1)

Country Link
JP (1) JP6205934B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2568368B (en) * 2017-09-13 2022-08-24 Fisher Rosemount Systems Inc Assistant application for a modular control system
WO2019215919A1 (ja) * 2018-05-11 2019-11-14 三菱電機株式会社 コンパイラおよびプログラミング支援装置
WO2023152890A1 (ja) * 2022-02-10 2023-08-17 三菱電機株式会社 プログラマブルコントローラシステム、開発支援装置、メモリ割当方法およびプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001255913A (ja) * 2000-03-14 2001-09-21 Fuji Electric Co Ltd プログラマブルコントローラの支援装置
JP4865634B2 (ja) * 2007-05-14 2012-02-01 株式会社キーエンス プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム

Also Published As

Publication number Publication date
JP2015022511A (ja) 2015-02-02

Similar Documents

Publication Publication Date Title
JP5095013B2 (ja) プログラマブルコントローラシステムおよび開発システム
JP4973867B2 (ja) Plc制御プログラム開発装置及びプログラム
JP5957936B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラム
JP6786984B2 (ja) プログラム処理装置およびプログラム
US8397055B2 (en) Method and system for post-build modification of firmware binaries to support different hardware configurations
CN106970806B (zh) 用于对正在控制工业过程的控制程序进行更新的***
JP5790128B2 (ja) プログラマブルコントローラ・システム、その支援装置
US10295976B2 (en) System development device, system development method, and system development program
JP6205934B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラム
JP2016506559A (ja) Hmiデバイスにおいてオブジェクトを変化させるための方法およびデバイス
JP2007102625A (ja) Nc工作機械の制御プログラムの更新方法及び装置
JP5849592B2 (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
JP6541902B1 (ja) プログラム管理システム、プログラミング支援装置、プログラム管理方法、およびプログラミング支援プログラム
JP6299095B2 (ja) 共有データ定義支援システム、そのマスタ装置、ローカル端末、プログラム
JP2016001376A (ja) プログラマブルコントローラシステム、その支援装置
CN110647349A (zh) 一种实现iOS APP持续交付的方法
JP6455096B2 (ja) コントロールシステム、その支援装置、プログラマブルコントロール装置
JP2000284815A (ja) プログラム作成装置
JP2016170547A (ja) 制御システム、その管理サーバ装置、支援装置
US20150346713A1 (en) Method for Processing an Automation Project Using a Plurality of Processing Stations
JP5978775B2 (ja) プログラマブルコントローラ、その支援装置、プログラム、プログラム転送方法
JP2016151973A (ja) 制御コントロールシステム、その開発支援装置、制御装置
JP2010176594A (ja) ソースコードバージョン管理プログラム及びソースコードバージョン管理方法
JP5481267B2 (ja) 制御プログラム作成装置および制御プログラム作成装置の駆動方法
TW201516707A (zh) 開發系統與終端裝置以及開發方法與程式產品

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170721

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: 20170808

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170821

R150 Certificate of patent or registration of utility model

Ref document number: 6205934

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250