JP5051377B2 - プログラム開発支援装置の動作仕様管理方法 - Google Patents

プログラム開発支援装置の動作仕様管理方法 Download PDF

Info

Publication number
JP5051377B2
JP5051377B2 JP2008066904A JP2008066904A JP5051377B2 JP 5051377 B2 JP5051377 B2 JP 5051377B2 JP 2008066904 A JP2008066904 A JP 2008066904A JP 2008066904 A JP2008066904 A JP 2008066904A JP 5051377 B2 JP5051377 B2 JP 5051377B2
Authority
JP
Japan
Prior art keywords
compiler
programmable controller
development support
identification information
object code
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
JP2008066904A
Other languages
English (en)
Other versions
JP2009223590A (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.)
Omron Corp
Original Assignee
Omron Corp
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 Omron Corp filed Critical Omron Corp
Priority to JP2008066904A priority Critical patent/JP5051377B2/ja
Publication of JP2009223590A publication Critical patent/JP2009223590A/ja
Application granted granted Critical
Publication of JP5051377B2 publication Critical patent/JP5051377B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

この発明は、プログラム開発支援装置の動作仕様管理方法に係り、特に、プログラマブル・コントローラ(以下、PLCと言う)のプログラム開発支援装置における動作仕様(例えば、コンパイラ又は逆コンパイラのオブジェクト生成方式)を処理対象となるソースプログラム又はオブジェクトコードに合わせて常に最適化できるようにしたプログラム開発支援装置の動作仕様管理方法に関する。
当業者にはよく知られているように、PLCのプログラム開発支援装置(以下、単に「開発支援装置」と称する)においては、所定の動作指令を与えることにより、幾つかの基本的な動作を実行するように仕組まれている。
それらの基本的な動作としては、
(1)任意のソースプログラム(ユーザプログラムに相当)をコンパイラにかけてオブジェクトコードに変換したのち、これをPLCへと転送して、PLC内の所定メモリ(一般に、不揮発性メモリで構成され、「ユーザメモリ」等と称される)に記憶させるプログラム書き込み動作(図9(a)参照)、
(2)PLC内の所定メモリから読み出されて開発支援装置へと転送されてくるオブジェクトコードを、逆コンパイラにかけてソースプログラムに復元して、例えばディスプレイに表示すると言ったプログラム読み出し動作(図9(b)参照)、
(3)PLC内の所定メモリから読み出されて開発支援装置へと転送されてくるオブジェクトコードと、任意のソースプログラム(例えば、PLC内のオブジェクトコードを生成する元となったソースプログラム)をコンパイラにかけることにより得られたオブジェクトコードとを照合して一致/不一致を判別するプログラム照合動作(図10(a)参照)、及び
(4)PLC内のオブジェクトコードを生成する元となったソースプログラムの一部をコンパイラにかけてオブジェクトコードに変換すると共に、こうして得られたオブジェクトコードの一部を稼働中のPLCへと転送して、所定メモリに記憶されたオブジェクトコードの一部を書き換えるプログラムオンラインエディット動作(図10(b)参照)等
を挙げることができる。
それらの動作を実行するために、開発支援装置内には、ユーザに使い易い言語で記述されたソースプログラムをPLCが実行可能なオブジェクトコードに変換するためのコンパイラと、逆にオブジェクトコードから元のソースプログラムを復元するための逆コンパイラとが組み込まれている。
従来、ソースプログラムを記述するための言語としては、オブジェクトコードに近い書式のプログラム言語が使用されていたため、コンパイラの有するオブジェクト生成方式は1種類に限られ、その結果、ソースプログラムとオブジェクトコードとは、常に、1対1に対応付けられるのが通例であった。
しかしながら、近年の開発支援装置では、プログラム開発者にとってより理解しやすい書式のプログラム言語がしばしば使用され、斯かるプログラム言語に適用可能なコンパイラの有するオブジェクト生成方式は1種類に限られないことから、同一のソースプログラムから複数種の形式のオブジェクトコードを生成することが可能となった。
例えば、3つの数値(A,B,C)の足し算を行う処理を、従来のプログラム言語であるニーモニックを用いると、次のように記述することができる。

+ data A data B tmp

+ tmp data C result
このようなニーモニックで記述されたソースプログラムに適用されるコンパイラの有するオブジェクト生成方式は1種類に限られ、その結果、ソースプログラムとオブジェクトコードとは、常に、1対1に対応付けられる。
一方、同様な処理を、昨今普及しつつあるプログラム言語であるストラクチャードテキストを用いると、次のように記述することができる。

result := data A + data B + data C;
このようなストラクチャードテキストで記述されたソースプログラムに適用されるコンパイラの有するオブジェクト生成方式は、例えば、実行速度の速いオブジェクトコードを生成するオブジェクト生成方式、容量ができるだけ小さくなるようなオブジェクトコードを生成するオブジェクト生成方式等々と言ったように、1種類には限られず、その結果、ソースプログラムとオブジェクトコードとは、必ずしも、1対1には対応付けられない。
なお、当然のことであるが、それらの形式の異なるオブジェクトコードは、その元となったソースプロクラムが同一である限り、PLCが実行した場合の制御動作は互いに同一となることは言うまでもない。
このように、ソースプログラムを記述するためのプログラム言語として、同一のソースプログラムから複数形式のオブジェクトコードを生成可能なプログラム言語が使用されると、上述の照合動作或いはオンラインエディット動作において、下記(1)、(2)のような問題点が生ずることが知見された。
(1)照合動作の際の問題点
書き込み動作において、オブジェクト生成方式Aを有するコンパイラでソースプログラムXをコンパイルして得られたオブジェクトコードX(A)をPLCへ転送して所定のメモリに格納する。
後日、PLCに格納されたオブジェクトコードX(A)が元のソースプログラムXと対応するものであることを確認するために、照合動作を実行させる。
このときに、比較基準となる開発支援装置側のオブジェクトコードとして、ソースコードXをオブジェクト生成方式Bを有するコンパイラでコンパイルして得られたオブジェクトコードX(B)を誤って使用すると、両者のオブジェクトコードの形式が異なるため、照合結果は不一致となる。
そのため、PLCに格納されたオブジェクトコードX(A)は元のソースプログラムXと対応するものではないと誤判定される虞がある。
(2)オンラインエディット動作の際の問題点
書き込み動作において、オブジェクト生成方式Aを有するコンパイラでソースプログラムXをコンパイルして得られたオブジェクトコードX(A)をPLCへ転送して所定のメモリに格納する。
後日、PLCに格納されたオブジェクトコードX(A)の一部を変更するために、オンラインエディット動作を実行させる。
このとき、元のソースプログラムXの一部分をコンパイラにかけて変更箇所に相当するオブジェクトコードを生成する際に、オブジェクト生成方式Bを有するコンパイラを誤って使用し、得られたオブジェクトコードX(B)をPLCに転送してオンラインエディットを実行すると、PLCのメモリ内には、オブジェクトコードX(A)とオブジェクトコードX(B)とが混在してしまう。
このように、PLCのメモリ内において、オブジェクトコードX(A)とオブジェクトコードX(B)とが混在が生ずると、以後、A又はBのいずれの方式の逆コンパイラを使用して読み出し動作を実行させても、元のソースプログラムを復元できないと言う問題点が生ずる。
なお、ソースプログラムとアセンブラとを開発支援装置内の同一箇所に格納しておくことで、ソースプログラムとアセンブラとを常に1対1に関連づけ、それによりソースプログラムが予期せぬアセンブラ(例えば、バージョンの異なるアセンブラ)で機械語オブジェクトプログラムに変換されることを回避し得るようにした従来技術も知られている(例えば、特許文献1参照)。
特開2002−189506号公報
しかしながら、上述の従来技術にあっては、
(1)各ソースプログラム毎に、そのソースプログラムに関連するアセンブラを一緒に格納する関係から、開発支援装置側には大容量のメモリが必要となること、
(2)1つのアセンブラが複数のオブジェクト生成方式をサポートする場合であっても、ソースプログラム毎にそのコンパイラの全体を重複してを格納せねばならず、メモリ容量を無駄に消費すること、
(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システムのハードウェア構成が図1に示されている。同図に示されるように、このPLCシステムは、開発支援装置1とPLC2とを転送手段として機能する通信ケーブルを介して接続して構成されている。
開発支援装置1は、この例にあっては、パーソナルコンピュータ(以下、パソコンと略称する)をベースとして、これに必要なアプリケーションプログラムを組み込むことで構成されている。
より具体的には、このパソコンには、液晶ディスプレイ等で構成される表示部101と、マウスやキーボードで構成される入力部102と、ワークエリア等として様々なプログラムやデータが格納されるRAM103と、オペレーティングシステム(OS)や各種のアプリケーションプログラムが格納されるハードディスク(HDD)104と、パソコン全体を統括制御するマイクロプロセッサ(MPU)105と、通信ケーブルが接続される通信インタフェース(通信I/F)106とが具備されている。
そして、ハードディスク(HDD)104には、のちに図5〜図8のフローチャートを参照して説明するプログラム書き込み動作、プログラム読み出し動作、プログラム照合動作、及びオンラインエディット動作の実現に必要な各種のアプリケーションプログラムが格納されることとなる。
一方、PLCとしては、この例ではビルディングブロック方式のものが採用されているため、図中符号2が付されている部分は、実際には、PLCのCPUユニット部分に相当するものである。このCPU部分には、当業者には良く知られているように、入出力データが格納される入出力メモリ(I/Oメモリ)201と、PLC全体を統括制御するためのCPU202と、制御に必要な各種のデータが格納されるデータメモリ(DATAメモリ)203と、ユーザの制御仕様を実現するためのユーザプログラム(オブジェクトコード)を格納するユーザメモリ204とが具備されている。
なお、CPU202は、システム全体を統括制御するためのシステムプログラムを格納するROMと、ROMから読み出されたシステムプログラムを実行するマイクロプロセットと、マイクロプロセッサがシステムプログラムを実行する際のワークエリアとして使用されるRAMと、ユーザメモリ204から読み出された各命令語を実行するASICとを含んで構成される。
本発明に係るプログラム開発支援装置1の機能構成図が図2に示されている。同図に示されるように、プログラム開発支援装置1は、所定のプログラム言語(例えば、ラダー図等)を使用してソースプログラムを作成又は編集するためのプログラム編集部11と、こうして作成又は編集されたソースプログラム或いはオブジェクトコードを逆コンパイラにかけて変換して得られたソースプログラムを格納するためのプログラム格納領域12と、任意のソースプログラムを予め設定されたオブジェクト生成方式の下にオブジェクトコードに変換するためのコンパイラ13と、任意のオブジェクトコードを予め設定された動作方式の下にソースプログラムに変換復元する逆コンパイラ14と、コンパイラ又は逆コンパイラの動作方式を決定するためのオブジェクト生成情報を作成又は編集するためのオブジェクト生成情報編集部15と、こうして作成又は編集されたオブジェクト生成情報を格納するためのオブジェクト生成情報格納領域16と、任意のオブジェクトコード同士を照合して両者の一致を判定する照合機能17と、ソースプログラムをコンパイラにかけて変換して得られたオブジェクトコード或いはPLCから読み出されたオブジェクトコードを格納するためのオブジェクトコード格納領域18と、PLCとの間におけるデータ転送を司る通信部19とを具備して構成される。
そして、これらの機能構成要素11〜19が適宜に協働することにより、後述する「プログラム書き込み動作」、「プログラム読み出し動作」、「プログラム照合動作」、及び「オンラインエディット動作」が実現されることとなる。
本発明に係るプログラム開発支援装置における基本的な動作の説明図(その1)が図3に、同説明図(その2)が図4にそれぞれ示されている。
本発明に係るプログラム開発支援装置における「プログラム書き込み動作」においては、図3(a)に示されるように、PLCのユーザプログラムであるソースプログラム301をコンパイラ(図2の符号13参照)にかけてPLCが実行可能なオブジェクトコード302に変換すると共に、こうして得られたオブジェクトコード302をPLC2に転送記憶させるに際して、当該コンパイラのオブジェクト生成方式を示す識別情報303についても当該PLC2に転送記憶させる。
図示例にあっては、コンパイラ(図2の符号13参照)は複数種のオブジェクト生成方式(例えば、実行速度の速いオブジェクトコードを生成するオブジェクト生成方式、容量ができるだけ小さくなるようなオブジェクトコードを生成するオブジェクト生成方式等々)をサポートするように構成されており、どのオブジェクト生成方式でコンパイラがコンパイル動作を行うかの選択は、予め設定されるオブジェクト生成情報303aの内容により決定される。オブジェクト生成情報303aの種別は、識別情報303により識別可能とされている。
上述の「プログラム書き込み動作」を実現するためのプログラム開発支援装置の処理(アプリケーションプログラム)を示すフローチャートが図5に示されている。
同図において、ステップ501においては、ユーザが「プログラム書き込み」開始の指示を出す。この指示を出すための操作は、パソコンに備え付けられたGUI機能を使用することで、マウスやキーボードを操作により行なうことができる。続くステップ502では、格納されているオブジェクト生成情報303aに従ってコンパイラ(図2の符号13参照)を作動させることにより、ソースプログラム301からオブジェクトコード302を生成する。続くステップ503においては、コンパイラ(図2の符号13参照)により生成されたオブジェクトコード302とオブジェクト生成情報303aを識別するための識別情報303とをPLC2に送出する。
すると、PLC2の側では、開発支援装置1から転送されてくるオブジェクトコード302と識別情報303とを受け取ると共に、それらを所定のメモリに格納する。このとき、オブジェクトコード302はユーザメモリ(図1の符号204参照)に格納される。一方、オブジェクト生成方式を定義するオブジェクト生成情報303aを識別するための識別情報303については、オブジェクトコード302と適宜に紐付けされて、所定のメモリ(例えば、データメモリ203、ユーザメモリ204等々)に格納される。
本発明に係るプログラム開発支援装置における「プログラム読み出し動作」においては、図3(b)に示されるように、PLC2から読み出されたオブジェクトコード302を逆コンパイラ(図2の符号14参照)にかけてソースプログラム301を復元するに際して、先ず、当該PLC2から識別情報303を読み出すと共に、これが当該開発支援装置1にて使用可能なオブジェクト生成方式に対応するものであるか否かの判定をおこなう。ここで、PLC2から読み出された識別情報303が当該開発支援装置1にて使用可能なオブジェクト生成方式に対応するものであれば、当該識別情報に基づいて当該開発支援装置1のオブジェクト生成情報を設定する。これにより、当該開発支援装置1に組み込まれた逆コンパイラ(図2の符号14参照)は、PLC2から読み出された識別情報303に基づいて設定されたオブジェクト生成情報にしたがって逆コンパイル動作を実行可能となる。しかるのち、PLC2から読み出されたオブジェクトコード302は、逆コンパイラ(図2の符号14参照)を介して元のソースプログラムに復元される。従って、こうして復元されるソースプログラムは、コンパイル時と逆コンパイル時とで同一のオブジェクト生成方式が使用されるから、再現性が保証される。
上述の「プログラム読み出し動作」を実現するためのプログラム開発支援装置の処理(アプリケーションプログラム)を示すフローチャートが図6に示されている。
同図において、ステップ601では、ユーザが「プログラム読み出し」開始の指示を出す。この指示を出すための操作は、パソコンに備え付けられたGUI機能を使用することで、マウスやキーボードを操作により行なうことができる。続くステップ602では、PLC2に格納されている識別情報303を読み出す。この読み出しは、開発支援装置1とPLC2との間で所定の送信要求コマンド及びレスポンスをやり取りすることで実現することができる。
続くステップ603においては、PLC2から読み出した識別情報303が開発支援装置1で使用できるオブジェクト生成方式に対応するものであるか否かの確認を行う。続く、ステップ604において、確認結果が「使用できない」と判定されれば、ステップ605へと移行して開発支援装置の画面上に所定のエラーメッセージを表示するのに対して、「使用できる」と判定されれば、ステップ606へと移行する。
続くステップ606においては、PLC2から読み出した識別情報303と開発支援装置1に設定されたオブジェクト生成情報303aに対応する識別情報との照合を行う。続くステップ607においては、上記の照合結果が「一致」又は「不一致」のいずれであるかの判定を行う。
ここで、「不一致」と判定される場合には、ステップ608へと進んで、例えば画面上に所定の問い合わせ表示を行うことにより、設定されたオブジェクト生成情報を更新するか否かをユーザに確認する。続くステップ609では、上記の確認結果が「更新する」であるか又は「更新しない」であるかを判定し、ユーザが「更新しない」を選択すれば、ステップ611へと移行して、画面上に所定のエラーメッセージ表示して処理は終了するのに対して、「更新する」を選択すれば、ステップ610へと移行する。ステップ610においては、PLC2から読み出された識別情報303に合わせて、オブジェクト生成情報の設定値を更新したのち、ステップ612へと移行する。これに対して、ステップ607において「一致」と判定される場合には、設定情報を更新することなく、直ちに、ステップ612へと移行する。
ステップ612においては、PLC2からオブジェクトコードを読み出す。この読み出しは、開発支援装置1とPLC2との間で所定の送信要求コマンド及びレスポンスをやり取りすることで実現することができる。
続くステップ613においては、もともと設定されていたオブジェクト生成情報又はステップ610で更新されたオブジェクト生成情報により決定されるオブジェクト生成方式を用いて、PLC2から読み出されたオブジェクトコードを逆コンパイラにかけることにより、元のソースプログラムを復元する。従って、こうして復元されるソースプログラムは、コンパイル時と逆コンパイル時とで同一の動作方式が使用されるから、再現性が保証される。
本発明に係るプログラム開発支援装置における「プログラム照合動作」においては、図4(a)に示されるように、PLCのユーザプログラムであるソースプログラム301をコンパイラ(図2の符号13参照)にかけてPLCが実行可能なオブジェクトコード302に変換すると共に、こうして得られたオブジェクトコード302bをPLC2から読み出されたオブジェクトコード302aと照合するに際して、先ず、当該PLC2から識別情報303を読み出すと共に、これが当該開発支援装置1にて使用可能なオブジェクト生成方式に対応するものであるか否かの判定をおこなう。ここで、PLC2から読み出された識別情報303が当該開発支援装置1にて使用可能なオブジェクト生成方式に対応するものであれば、当該識別情報303に基づいて当該開発支援装置1のオブジェクト生成情報303aを設定する。これにより、当該開発支援装置1に組み込まれたコンパイラ(図2の符号13参照)は、PLC2から読み出された識別情報303に基づいて設定されたオブジェクト生成情報303aにしたがってコンパイル動作を実行可能となる。
しかるのち、ソースプログラム301はコンパイラ(図2の符号13参照)を介してオブジェクトコード302bに変換されると共に、こうして得られたオブジェクトコード302bは、PLC2から読み出されたオブジェクトコード302aと照合される。
こうして照合される2つのオブジェクトコード302a,302bは、同一のオブジェクト生成方式のコンパイラを介して生成されたものであるから、照合における信頼性が向上する。
上述の「プログラム照合動作」を実現するためのプログラム開発支援装置の処理(アプリケーションプログラム)を示すフローチャートが図7に示されている。同図において、ステップ701〜712の処理内容は、図6におけるステップ601〜612の処理内容と同一であるため、重複説明は省略し、相違する部分のみ説明する。
ステップ713においては、もともと設定されていたオブジェクト生成情報又はステップ710で更新されたオブジェクト生成情報により決定されるオブジェクト生成方式を用いて、ソースプログラム301をコンパイラにかけることにより、オブジェクトコード302bを生成する。
ステップ714においては、こうして得られたオブジェクトコード302bとPLC2から読み出されたオブジェクトコード302aとが照合される。
こうして照合される2つのオブジェクトコード302a,302bは、同一のオブジェクト生成方式のコンパイラを介して生成されたものであるから、照合における信頼性が向上する。
本発明に係るプログラム開発支援装置における「オンラインエディット動作」においては、図4(b)に示されるように、ソースプログラム301の一部分をコンパイラにかけて変換することにより得られたオブジェクトコード部分302cによりPLC2に記憶されているオブジェクトコード302を書き換えるに際して、先ず、当該PLC2から識別情報303を読み出すと共に、これが当該開発支援装置1にて使用可能なオブジェクト生成方式に対応するものであるか否かの判定をおこなう。ここで、PLC2から読み出された識別情報303が当該開発支援装置1にて使用可能なオブジェクト生成方式に対応するものであれば、当該識別情報303に基づいて当該開発支援装置1のオブジェクト生成情報303aを設定する。これにより、当該開発支援装置1に組み込まれたコンパイラ(図2の符号13参照)は、PLC2から読み出された識別情報303に基づいて設定されたオブジェクト生成情報303aにしたがってコンパイル動作を実行可能となる。
しかるのち、ソースプログラム301の一部(変更希望部分)はコンパイラ(図2の符号13参照)を介してオブジェクトコード部分302cに変換されたのち、PLC2へと送出され、これにより公知の手法にて、PLC2内のオブジェクトコード302のオンラインエディットが実現される。
こうしてオンラインエディットされたPLC2内のオブジェクトコードは、当初から存在した部分も、後から追加又は変更された部分も、いずれも同一のオブジェクト生成方式を有するコンパイラを介してコンパイルされたものであるから、1つのオブジェクトコードの中に、異なるオブジェクト生成方式のコンパイラでコンパイルされたものが混在すると言う事態の発生を確実に回避することができる。
上述の「オンラインエディット動作」を実現するためのプログラム開発支援装置の処理(アプリケーションプログラム)を示すフローチャートが図8に示されている。同図において、ステップ801〜811の処理内容は、図6におけるステップ601〜611の処理内容と同一であるため、重複説明は省略し、相違する部分のみ説明する。
ステップ812においては、もともと設定されていたオブジェクト生成情報又はステップ810で更新されたオブジェクト生成情報により決定されるオブジェクト生成方式を用いて、ソースプログラム301の一部をコンパイラにかけることにより、オブジェクトコード部分302cを生成する。
ステップ813においては、こうして得られたオブジェクトコード部分302cをPLC2の側へと転送することにより、PLC2内のオブジェクトコード302の一部を部分変更する。
こうしてオンラインエディットされたPLC2内のオブジェクトコードは、当初から存在した部分も、後から追加又は変更された部分も、いずれも同一のオブジェクト生成方式を有するコンパイラを介してコンパイルされたものであるから、1つのオブジェクトコードの中に、異なるオブジェクト生成方式のコンパイラでコンパイルされたものが混在すると言う事態の発生を確実に回避することができる。
以上、図3及び図4を参照して説明したように、本発明の動作仕様管理方法は、PLCのユーザプログラムであるソースプログラム301をコンパイラ13にかけてPLCが実行可能なオブジェクトコード302に変換すると共に、こうして得られたオブジェクトコード302をPLC2に転送記憶させるようにしたプログラム開発支援装置1において、前記転送記憶の際に、当該コンパイラのオブジェクト生成方式を示す識別情報303についても当該PLC2に転送記憶させておき、前記PLC2に記憶されたオブジェクトコード302に関連して、コンパイラ13又は逆コンパイラ14の作動する動作を実行する場合には、PLC2から読み出された前記識別情報303に基づいて、当該コンパイラ13又は逆コンパイラ14の動作方式を設定する、ことを特徴とするものであり、これによりPLCに記憶されたオブジェクトコードに関連して、コンパイラ又は逆コンパイラの作動する動作を実行する場合には、PLCから読み出された前記識別情報に基づいて、当該コンパイラ又は逆コンパイラの動作方式が設定されるので、動作仕様(例えば、コンパイラ又は逆コンパイラの動作方式)を処理対象となるソースプログラム又はオブジェクトコードに合わせて常に最適化することができる。
加えて、本発明方法は、ソースプログラムとコンパイラとを紐付けするのではなく、コンパイラとオブジェクトコートとを紐付けするものであるから、同一のソースプログラムが複数のオブジェクト生成方式のいずれかでコンパイルされてPLCに保存されている場合にも、そのオブジェクトコードの元となったオブジェクト生成方式を使用してコンパイル又は逆コンパイルを行うことができる。
しかも、本発明方法は、オブジェクト生成方式を示す識別情報は、プログラム開発支援装置の側ではなくて、PLCの側に格納されるものであるから、プログラム開発支援装置のメモリ容量を増大させることもない。
本発明によれば、動作仕様(例えば、コンパイラ又は逆コンパイラの動作方式)を処理対象となるソースプログラム又はオブジェクトコードに合わせて常に最適化することができ、しかもプログラム開発支援装置側のメモリ容量を大幅に節減することが可能なプログラム開発支援装置の動作仕様管理方法、並びに、そのような方法の適用されたPLC・システムを提供することができる。
PLC・システムのハードウェア構成図である。 本発明に係るプログラム開発支援装置の機能構成図である。 本発明に係るプログラム開発支援装置における基本的な動作の説明図(その1)である。 本発明に係るプログラム開発支援装置における基本的な動作の説明図(その2)である。 プログラム書き込み動作時におけるプログラム開発支援装置の処理を示すフローチャートである。 プログラム読み出し動作時におけるプログラム開発支援装置の処理を示すフローチャートである。 プログラム照合動作時におけるプログラム開発支援装置の処理を示すフローチャートである。 プログラムオンラインエディット時におけるプログラム開発支援装置の処理を示すフローチャートである。 従来のプログラム開発支援装置における基本的な動作の説明図(その1)である。 従来のプログラム開発支援装置における基本的な動作の説明図(その2)である。
符号の説明
1 開発支援装置
2 プログラマブル・コントローラ(PLC)
11 プログラム編集部
12 プログラム格納領域
13 コンパイラ
14 逆コンパイラ
15 オブジェクト生成情報編集部
16 オブジェクト生成情報格納領域
17 照合機能
18 オブジェクトコード格納領域
19 通信部
101 表示部
102 入力部
103 RAM
104 HDD
105 MPU
106 通信I/F
201 I/Oメモリ
202 CPU
203 DATAメモリ
204 ユーザメモリ
205 通信I/F
301 ソースプログラム
302 オブジェクトコード
303 識別情報
303a オブジェクト生成情報

Claims (8)

  1. プログラマブル・コントローラのユーザプログラムであるソースプログラムをコンパイラにかけてプログラマブル・コントローラが実行可能なオブジェクトコードに変換すると共に、こうして得られたオブジェクトコードをプログラマブル・コントローラに転送記憶させるようにしたプログラム開発支援装置において、
    前記転送記憶の際に、当該コンパイラのオブジェクト生成方式を示す識別情報についても当該プログラマブル・コントローラに転送記憶させておき、前記プログラマブル・コントローラに記憶されたオブジェクトコードに関連して、コンパイラの作動する所定の動作を実行する場合には、プログラマブル・コントローラから読み出された前記識別情報とプログラム開発支援装置に設定されたオブジェクト生成方式に対応する識別情報との照合を行い、
    両者が一致すると判定された場合には、プログラム開発支援装置のオブジェクト生成方式を更新せずに前記コンパイラの作動する所定の動作を実行し、
    両者が一致しないと判定された場合には、プログラム開発支援装置のオブジェクト生成方式を前記プログラマブル・コントローラから読み出された前記識別情報に基づいて更新した後に前記コンパイラの作動する所定の動作を実行する、ことを特徴とするプログラム開発支援装置の動作仕様管理方法。
  2. 前記識別情報は、コンパイラのバージョン情報、及び/又は、オブジェクトを速度最適で生成するか若しくは容量最適で生成するかの情報である、ことを特徴とする請求項1に記載のプログラム開発支援装置の動作仕様管理方法。
  3. 前記所定の動作が、前記プログラマブル・コントローラから読み出されたオブジェクトコードと、任意のソースプログラムをコンパイラにかけて変換することにより得られたオブジェクトコードとを照合する動作であり、かつ当該変換用のコンパイラのオブジェクト生成方式が、前記プログラマブル・コントローラから読み出された前記識別情報に基づいて設定される、ことを特徴とする請求項1又は2に記載のプログラム開発支援装置の動作仕様管理方法。
  4. 前記所定の動作が、ソースプログラムの一部分をコンパイラにかけて変換することにより得られたオブジェクトコード部分により、プログラマブル・コントローラに記憶されているオブジェクトコードを書き換えるオンラインエディット動作であり、かつ前記プログラマブル・コントローラから読み出された前記識別情報と、開発支援装置に設定されたオブジェクト生成方式に対応する識別情報とが一致しないと判定された場合には、当該部分変換用コンパイラのオブジェクト生成方式が、前記プログラマブル・コントローラから読み出された前記識別情報に基づいて設定される、ことを特徴とする請求項1又は2に記載のプログラム開発支援装置の動作仕様管理方法。
  5. プログラム開発支援装置と、プログラマブル・コントローラと、それらの間でデータの転送を可能とするデータ転送手段とを具備し、
    前記プログラム開発支援装置は、所定のプログラム書き込み動作指令が与えられるのに応答して、書き込み対象となるソースプログラムをコンパイラを介してプログラマブル・コントローラが実行可能なオブジェクトコードに変換したのち、こうして得られたオブジェクトコード及び当該コンパイラのオブジェクト生成方式を示す識別情報を前記データ転送手段へと送り出すように仕組まれており、かつ
    前記プログラマブル・コントローラは、前記データ転送手段を介して受け取った前記オブジェクトコード及び前記識別情報をそれぞれ所定のメモリに記憶させると共に、前記プログラム開発支援装置から所定の読み出し指令が到来するのを待って、当該識別情報を前記メモリから読み出してデータ転送手段へと送出するように仕組まれており、さらに
    前記プログラム開発支援装置には、前記プログラマブル・コントローラに記憶されたオブジェクトコードに関連して、コンパイラの作動する所定の動作を実行する場合には、前記転送手段に対して所定の読み出し指令を送出すると共に、そのレスポンスとして前記転送手段を介して受け取った前記識別情報とプログラム開発支援装置に設定されたオブジェクト生成方式に対応する識別情報との照合を行い、
    両者が一致すると判定された場合には、プログラム開発支援装置のオブジェクト生成方式を更新せずに前記コンパイラの作動する所定の動作を実行し、
    両者が一致しないと判定された場合には、プログラム開発支援装置のオブジェクト生成方式を前記プログラマブル・コントローラから読み出された前記識別情報に基づいて更新した後に前記コンパイラの作動する所定の動作を実行するように仕組まれている、ことを特徴とするプログラマブル・コントローラ・システム。
  6. 前記識別情報は、コンパイラのバージョン情報、及び/又は、オブジェクトを速度最適で生成するか若しくは容量最適で生成するかの情報である、ことを特徴とする請求項5に記載のプログラマブル・コントローラ・システム。
  7. 前記所定の動作が、前記プログラマブル・コントローラから読み出されたオブジェクトコードと、任意のソースプログラムをコンパイラにかけて変換することにより得られたオブジェクトコードとを照合する動作であり、かつ当該変換用のコンパイラのオブジェクト生成方式が、前記プログラマブル・コントローラから読み出された前記識別情報に基づいて設定される、ことを特徴とする請求項5又は6に記載のプログラマブル・コントローラ・システム。
  8. 前記所定の動作が、ソースプログラムの一部分をコンパイラにかけて変換することにより得られたオブジェクトコード部分により、プログラマブル・コントローラに記憶されているオブジェクトコードを書き換えるオンラインエディット動作であり、かつ前記プログラマブル・コントローラから読み出された前記識別情報と、開発支援装置に設定されたオブジェクト生成方式に対応する識別情報とが一致しないと判定された場合には、当該部分変換用コンパイラのオブジェクト生成方式が、前記プログラマブル・コントローラから読み出された前記識別情報に基づいて設定される、ことを特徴とする請求項5又は6に記載のプログラマブル・コントローラ・システム。
JP2008066904A 2008-03-15 2008-03-15 プログラム開発支援装置の動作仕様管理方法 Active JP5051377B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008066904A JP5051377B2 (ja) 2008-03-15 2008-03-15 プログラム開発支援装置の動作仕様管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008066904A JP5051377B2 (ja) 2008-03-15 2008-03-15 プログラム開発支援装置の動作仕様管理方法

Publications (2)

Publication Number Publication Date
JP2009223590A JP2009223590A (ja) 2009-10-01
JP5051377B2 true JP5051377B2 (ja) 2012-10-17

Family

ID=41240296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008066904A Active JP5051377B2 (ja) 2008-03-15 2008-03-15 プログラム開発支援装置の動作仕様管理方法

Country Status (1)

Country Link
JP (1) JP5051377B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5589670B2 (ja) * 2010-08-19 2014-09-17 富士電機株式会社 デバッグ方法
WO2015136970A1 (ja) 2014-03-14 2015-09-17 オムロン株式会社 制御装置及び制御システム
JP6520545B2 (ja) 2015-08-10 2019-05-29 オムロン株式会社 サポート装置およびサポートプログラム
KR102063966B1 (ko) 2015-10-21 2020-01-09 엘에스산전 주식회사 Plc 명령어 컴파일 최적화 방법
CN111026402B (zh) * 2019-12-09 2023-05-12 贵阳永青仪电科技有限公司 一种编译型plc代码执行效率优选方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259121A (ja) * 2001-02-28 2002-09-13 Ricoh Co Ltd ソースラインデバッグ装置
JP2003157104A (ja) * 2001-11-22 2003-05-30 Fuji Electric Co Ltd プログラミング装置

Also Published As

Publication number Publication date
JP2009223590A (ja) 2009-10-01

Similar Documents

Publication Publication Date Title
US8028268B2 (en) System and method for building software package for embedded system
JP5051377B2 (ja) プログラム開発支援装置の動作仕様管理方法
JP5039428B2 (ja) プログラマブルコントローラ及びplcシステム
JP4850556B2 (ja) プログラム作成支援装置およびその方法
WO2015136970A1 (ja) 制御装置及び制御システム
JP2009146229A (ja) プログラマブルコントローラシステム
EP3159792B1 (en) Method of optimally compiling plc command
JP2009157533A (ja) プログラマブルコントローラシステム
CN110554861B (zh) 具有编译和读取-评估-打印-循环操作的软件开发环境
JP5849592B2 (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
JP2008276525A (ja) Plcの制御プログラム開発支援装置
JP2020523689A5 (ja)
JP6541902B1 (ja) プログラム管理システム、プログラミング支援装置、プログラム管理方法、およびプログラミング支援プログラム
WO2019230262A1 (ja) サポート装置、制御システム、および開発支援プログラム
JP4566904B2 (ja) システム、制御プログラムおよびそのプログラムを記録した記録媒体、ならびに画像データ作成プログラムおよびそのプログラムを記録した記録媒体
JP6205934B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラム
JP2016224559A (ja) プログラム作成支援装置、制御方法およびプログラム
JP4737441B2 (ja) Plcシステム
JP4767309B2 (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム
JP5215835B2 (ja) プログラム適用支援ツール
US20090158250A1 (en) Systems, methods and computer program products for operation history management for hpc programs optimization
JP6783034B1 (ja) プログラマブルロジックコントローラ、コンピュータ、方法、及びプログラム
JP2006276955A (ja) プログラマブルコントローラ及びそのプログラミングツール
JP5109808B2 (ja) 追加実行可能情報生成装置、情報処理装置、及びプログラム
JP2001022560A (ja) ライブラリ関数バージョンアップ方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120710

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5051377

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150803

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250