制御プログラム開発支援装置
【課題】あるプログラムモジュール内に使用されているメモリが他のプログラムモジュールでも使用されているかどうかを一目で理解できるような表示を提供できる制御プログラム開発支援装置を提供すること。
【解決手段】複数のプログラムモジュールで構成される制御プログラムを解析する制御プログラム開発支援装置において、制御プログラムを読み出し、使用されているメモリアドレスのプログラムモジュール間での重複使用状況を解析する解析手段と、解析手段で解析した結果を表示する解析結果表示手段とを備え、プログラムモジュール毎に他のプログラムモジュールとの使用メモリアドレスの重複使用状況を表示可能とする。
【解決手段】複数のプログラムモジュールで構成される制御プログラムを解析する制御プログラム開発支援装置において、制御プログラムを読み出し、使用されているメモリアドレスのプログラムモジュール間での重複使用状況を解析する解析手段と、解析手段で解析した結果を表示する解析結果表示手段とを備え、プログラムモジュール毎に他のプログラムモジュールとの使用メモリアドレスの重複使用状況を表示可能とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブル・コントローラ(以下、PLCと言う)の制御プログラム(ユーザプログラム)を開発する場合等に好適な制御プログラム開発支援装置に関するものである。
【背景技術】
【0002】
PLCで実行される制御プログラム(ユーザプログラム)の作成を支援するものとして制御プログラム開発支援装置(以下、開発支援装置)が知られている。この開発支援装置を使ってユーザプログラムを作成する際には、既存プログラムの流用がしばしば行なわれる。
【0003】
通常、ユーザプログラムは、複数のプログラムモジュールから構成されており、異なるプログラムモジュール間で共通に参照されるメモリアドレスが存在する。このように異なるプログラムモジュール間で共通に参照されるメモリアドレスが存在する場合は、そのプログラムモジュールを流用する際は注意が必要となる。これを怠ると、予期せぬ誤動作の原因となる。
【0004】
あるメモリアドレスがユーザプログラム内のどこに使用されているか検索するためのものとしては、クロスリファレンスと称される参照テーブルが知られている。なお、クロスリファレンスを利用する検索については、各種の公知技術が知られている(例えば、特許文献1参照)。
【0005】
クロスリファレンス表示例が図10に示されている。この例では、メモリアドレス「A200.11」がプログラム名「新規プログラム1」なるプログラムを構成するセクション名「セクション1」なるプログラムモジュール内で使用されていることを示している。さらに、そのプログラムモジュール内の使用場所として、プログラムアドレスが「0」であり、命令後「LD」のオペランドとして使用されていることを表している。
【特許文献1】特開2003−243269号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、従来のクロスリファレンス表示は、あるメモリアドレスが使用されているプログラムモジュールの名称やプログラムモジュール内での使用場所等を当該メモリアドレスを行の先頭として同一行に並べて表示するというメモリアドレスの中心の表示となっている。したがって、あるプログラムモジュール内に使用されているメモリアドレスが他のプログラムモジュールでも使用されているかどうかを一目で理解できるものではなかったため、使い勝手が悪いと言う問題点が指摘されている。また、従来より提供されている、複数のPLC間でデータの共有を行う機能(データリンク機能と呼ぶ)を使用しているPLCのユーザプログラムを流用する場合は、他のPLCとデータ共有しているメモリエリアのメモリアドレスにも注意が必要であるにもかかわらず、従来のクロスリファレンス表示では表示されないという問題も指摘されている。
【0007】
この発明は、上述の問題点に着目してなされたものであり、その目的とするところは、あるプログラムモジュール内に使用されているメモリアドレスが他のプログラムモジュールでも使用されているかどうかを一目で理解できるような表示を提供できる制御プログラム開発支援装置を提供することにある。
【課題を解決するための手段】
【0008】
この発明の制御プログラム開発支援装置は、複数のプログラムモジュールで構成される制御プログラムを解析する制御プログラム開発支援装置において、制御プログラムを読み出し、使用されているメモリアドレスのプログラムモジュール間での重複使用状況を解析する解析手段と、解析手段で解析した結果を表示する解析結果表示手段とを備え、プログラムモジュール毎に他のプログラムモジュールとの使用メモリアドレスの重複使用状況を表示可能としたものである。
【0009】
このような構成によれば、あるプログラムモジュール内で使用されているメモリアドレスが他のプログラムモジュール内でも使用されているかどうかを一目で理解できるような表示をユーザに対して行うことができる。
【0010】
この発明の好ましい実施の形態においては、解析手段は、制御プログラムが複数のPLCの制御プログラムから構成されているかどうかを解析し、解析結果表示手段は、解析手段で制御プログラムが複数のPLCの制御プログラムから構成されていると解析された場合は、プログラムモジュールをPLCごとにグループ化して使用メモリアドレスの重複使用状況を表示するものであってもよい。
【0011】
このような構成によれば、あるPLC内で使用されているメモリアドレスが他のPLC内でも使用されているかどうかを一目で理解できるような表示をユーザに対して行うことができる。
【0012】
この発明の好ましい実施の形態においては、解析結果表示手段は、プログラムモジュール毎に当該プログラムモジュール内で使用されているメモリアドレスの内、他のプログラムモジュールでも重複使用されている場合は、その重複使用しているプログラムモジュール名と対応させて使用メモリアドレスの重複使用状況を表示するのであってもよい。
【0013】
このような構成によれば、あるプログラムモジュール内で使用されているメモリアドレスがどのプログラムモジュール内でも使用されているかどうかを一目で理解できるような表示をユーザに対して行うことができる。
【0014】
この発明の好ましい実施の形態においては、解析手段は、制御プログラムを構成するプログラムモジュールに階層構造があるかどうかを解析し、階層構造があると解析された場合は、階層構造と使用メモリアドレスの重複使用状況に基づいて当該プログラムモジュールの使用メモリアドレスの重複使用度合いを演算し、解析結果表示手段は、解析手段で演算された重複使用度合いを表示するのであってもよい。
【0015】
このような構成によれば、ある階層で使用されているメモリアドレスが他の階層でも使用されているかどうかを一目で理解できるような表示をユーザに対して行うことができる。
【0016】
なお、別の一面から見た本発明は、上記の各装置の機能を実現するためのコンピュータプログラムとしても把握することができる。
【発明の効果】
【0017】
本発明によれば、あるプログラムモジュール内に使用されているメモリアドレスが他のプログラムモジュールでも使用されているかどうかを一目で理解できるような表示をユーザに対して提供することができる。
【発明を実施するための最良の形態】
【0018】
以下に、この発明の好適な実施の一形態を添付図面を参照しながら詳細に説明する。
【0019】
本発明の制御プログラム開発支援装置は、例えばパソコンに所定のアプリケーションソフトをインストールすることによって実現することができる。ここで、パソコンのハードウェア構成については種々の文献において周知であるから、この明細書においては詳細な説明は省略する。
【0020】
タスク/セクション/複数PLC間でのメモリ使用状況の説明図が図1に示されている。図1では、PLCのユーザプログラムは複数の「タスク」と呼ばれるプログラム単位で構成され、各タスクは、複数の「セクション」と呼ばれるプログラムモジュールで構成される例を示している。この例の場合は、プログラムモジュールにユーザプログラム/タスク/セクションの階層構造があると見ることができる。また、PLC内にはひとつのユーザプログラムのみ存在する場合で、かつ、複数のPLCで制御システムが構築される場合は、PLC/タスク/セクションの階層構造があると見ることができる。一般的にPLCのユーザプログラムは、その制御対象や機能の違いによって、複数のプログラム(タスク,セクション)に分割して作成することがしばしば行われる。また、これら複数のプログラム(タスク,セクション)は同一のメモリにアクセスすることもしばしば行われる。さらに、データリンク機能は、リンクするエリアを定義するパラメータによって、プログラムレスでPLC間のメモリを共有することができる。
【0021】
このデータリンク機能について図11および図12を用いて説明する。図11にはデータリンク機能の概念を説明する図が示されている。この例では、3つのノード(ノード1〜3)間でのデータリンク機能によるデータ共有を示している。ここで、ノードは、PLCに相当する。ノード1のメモリアドレスDM0から100ワード分のデータがノード2とノード3に送信される。また、ノード2のDM100から100ワード分のデータがノード1とノード3に送信される。さらに、ノード3のDM200から150ワード分のデータがノード1とノード2に送信される。以上は各ノードの他ノードへの送信についての説明である。
【0022】
次にノード1でのデータ受信について説明する。この例では、ノード1は、ノード2が送信したデータをDM100から格納し、ノード3が送信したデータをDM200から格納する。各ノードでの送信データや受信データに関する情報はデータリンクテーブルと呼ばれるテーブルによって管理されている。図12にデータリンクテーブルの例が示されている。この例は、図11のノード1のデータリンクテーブルを示したものである。ノード番号欄はデータリンク対象のノードを示しており、自ノードリンク開始メモリアドレスは自ノード(この例ではノード1)の送受信開始メモリアドレスを示しており、リンクデータサイズは送受信データサイズを示しており、他ノードリンク開始メモリアドレスは他ノードの送信開始メモリアドレスを示している。このデータリンクテーブルを参照することによりノード1は、DM0から100ワード分のデータを他ノードへ送信し、ノード2から受信したデータ(ノード2のDM100から100ワード分のデータ)をDM100から格納し、ノード3から受信したデータ(ノード3のDM200からの150ワード分のデータ)をDM200から格納すれば良いことがわかる。このようにPLCのユーザプログラムでは、複数プログラム間や複数のPLC間でメモリ共有が可能となっている。
【0023】
そして本発明の制御プログラム開発支援装置にあっては、これら複数プログラム/複数PLC間のメモリのリンク状況をユーザに対して的確に表示させることができる。
【0024】
図1には、複数プログラム/複数PLC間で同一メモリを使用している例が示されている。この例にあっては、PLC1とPLC2とからなる2台のPLCが存在する。
【0025】
PLC1のユーザプログラムには、タスク1とタスク2とからなる2つのタスクが含まれている。タスク1内には、セクション1、セクション2、セクション3からなる3個のセクションが含まれている。同様にして、タスク2内にも、セクション4とセクション5とからなる2個のセクションが含まれている。
【0026】
一方、PLC1のメモリ内には、ユーザプログラムを構成する命令語を介してアクセス可能なメモリエリアとして(A)、(B)、(C)、(D)で示される4つのエリアが設けられている。そのうち、エリア(A)はタスク1内のセクション1からのみアクセスされるエリアとされる。また、エリア(B)はタスク1内のセクション2とセクション3とから共通にアクセスされるエリアとされる。また、エリア(C)はタスク1内のセクション3とタスク2内のセクション4とから共通にアクセスされるエリアとされる。さらに、エリア(D)はPLC1のプログラム内のタスク2のセクション5からアクセスされると共にPLC2のメモリの領域(D)とデータリンクで共用されるエリアともされている。
【0027】
換言すれば、PLC1のメモリ内には、単独セクションで使用しているメモリ(A)、単独タスクの複数セクションで使用しているメモリ(B)、複数タスクのセクションで使用しているメモリ(C)、複数PLC間で使用しているメモリ(D)が存在する。
【0028】
このように、PLCのメモリの一部を様々なプログラム部分で共用しているような複雑なシステムから、プログラムの一部を流用したりあるいは改造を行おうとすると、思わぬ誤動作の原因となる。
【0029】
そこで、このような複雑なシステムから改造や流用を行うに際しては、メモリ内の各部の使用状況を分析し、共用関係を正確に把握せねばならない。
【0030】
先に述べた従来のクロスリファレンス機能は、単独セクションで使用しているメモリアドレス、単独タスクの複数セクションで使用しているメモリアドレス、複数タスクのセクションで使用しているメモリアドレス、複数PLC間で使用しているメモリアドレスなどを分析把握するためには役立つものの、そのようなメモリ分離(使用状況)をもとに改造・流用の単位となる各タスク/セクション間のメモリ共有状況(タスク/セクションの属性)を解析することはできない。
【0031】
すなわち、他セクションとメモリ共有がないセクション(例えば、セクション1)、自タスク内の他セクションとメモリ共有のあるセクション(例えば、セクション2)、他タスクとメモリ共有のあるセクション(例えば、セクション3/セクション4)、他PLCとメモリ共有のあるセクション(例えば、セクション5)を解析することは、従来のクロスリファレンス機能で実現することができない。
【0032】
これに対して、以下に述べる本発明装置にあっては、それらのメモリ共用関係を的確に分析し、ユーザに対し分かりやすく表示することができる。本発明と関連して、パソコンに組み込まれるタスク/セクション間のメモリ使用状況の解析処理のフローチャートが図2に示されている。
【0033】
同図において処理が開始されると、まずステップ201においては、ユーザプログラム内のセクション毎のメモリ使用状況の解析が行われる。すなわち、図1に示された先の例によれば、PLC1内のセクション1〜5毎のメモリ使用状況が解析される。
【0034】
続くステップ202では、別途用意されたデータリンクテーブルに基づいて、他PLC間のメモリ共有状況が解析される。すなわち、図1の例であれば、PLC1のメモリ内のエリア(D)とPLC2のメモリ内の領域(D)が共有状況にあることが解析される。このデータリンクテーブルに基づく他PLC間のメモリ共有状況の解析の詳細を図12の例で説明する。図12の例では、自ノードリンク開始メモリアドレス欄とリンクデータサイズ欄の内容を読み出すことで他のPLCと共有しているメモリアドレスが判明する。この例では、メモリアドレスDM0から100ワード分(DM0〜99)、DM100から100ワード分(DM100〜DM199)、DM200から150ワード分(DM200〜DM349)のメモリアドレスが他のPLCと共有していることが判明する。
【0035】
以上の処理が、全セクション(セクション1〜セクション5)について繰り返される(ステップ203NO)。その間に、すべてのセクション(セクション1〜セクション5)について解析処理が完了すると(ステップ203YES)、ステップ204では、セクション間で同じメモリを使用している箇所の抽出が行われる。すなわち、図1の例によれば、エリア(B),(C)に関連するセクションの抽出が行われる。
【0036】
続くステップ205では、セクションの属性の分類が行われる。図1の例であれば、それらのセクションがどのタスクまたはどのPLCに対応するかの分類などが行われる。
【0037】
続くステップ206では、セクション単位メモリ使用一覧表が作成され、これがパソコンの画面に表示される。
【0038】
次に、具体的なユーザプログラムを実例として挙げ、これに基づいて図2に示される処理を施した場合における分析結果ならびに表示態様について説明する。
【0039】
いま仮に、図3に示されるようなユーザプログラムの構造が存在すると想定する。このユーザプログラムは、PLC1のユーザプログラムを表しており、他のPLCとのメモリ共有がない場合の例を示したものである。このPLC1のユーザプログラム内には、タスク1とタスク2とからなる2つのタスクが存在する。それらのタスク1,2内にはそれぞれ1個のセクション(セクション1)が存在する。
【0040】
PLC1のタスク1/セクション1ではDM0/DM1/DM2で表されるメモリアドレスを使用している。また、PLC1のタスク2/セクション1ではDM10/EM0/WR10で表されるメモリアドレスを使用している。この例で「DM」、「EM」、「WR」は、メモリエリアの種別を表す文字列である。「DM」、「EM」、「WR」に続く数字は、当該メモリエリア種別内でのアドレスを表している。このようにメモリエリアの種別を表す文字列と、そのメモリエリア種別内でのアドレスを表す数字との組み合わせでメモリアドレスを表現することがある。
【0041】
パソコンのRAM内に保存されたデータの説明図が図4に示されている。図3に示されるユーザプログラムの構造は、図4に示されるように、パソコンのRAM内にデータとして保存される。一例として、ポインタPが指し示すデータをみると、RAMアドレス1にはメモリアドレス「DM0」とタスク1/セクション1を識別するデータ「1」が保存されている。図4の例では、タスク1/セクション1、タスク2/セクション1を識別するデータとしてそれぞれ「1」、「2」が対応している。
【0042】
解析ツールの処理のフローチャートが図5に示されている。図4に示されるデータ構造を前提として処理が開始されると、ステップ501ではタスク/セクションNoは「1」に初期設定される。
【0043】
続くステップ502では、ポインタPにタスク/セクションNoのRAMアドレスを入力する。続くステップ503では、NoカウンタNumの値を「1」に初期設定する。
【0044】
以後、ポインタPおよびカウンタNumをプラス1更新しつつ、メモリアドレスが0となるまでメモリアドレスの取得処理(ステップ504)、メモリアドレスに対応するPLCのタスク・セクションNo、カウントNo.Numの抽出処理(ステップ505)が繰り返し実行される。
【0045】
その間に、メモリアドレスが0と判定されると(ステップ507YES)、タスク/セクションNoをプラス1更新しては(ステップ508)、以上の動作(ステップ502〜508)が繰り返され、登録されているタスク/セクションNo数(図4の例では、2となる)分の繰り返しの完了(ステップ509YES)を待って処理を終了する。
【0046】
以上図5に示される処理が実行されて、プログラムが解析されると、下記のようなデータ列が得られる。
PLC1[1][1]=DM0
PLC1[1][2]=DM1
PLC1[1][3]=DM2
PLC1[2][1]=DM10
PLC1[2][2]=DM0
PLC1[2][3]=WR10
【0047】
なお、それらのデータのフォーマットは、PLC1[タスク/セクションNo][登録数]とされている。
【0048】
次に、以上得られたデータに基づく描画処理のフローチャートが図6に示されている。同図において処理が開始されると、ステップ601ではまず初期化処理(i=1,j=1)が実行される。
【0049】
続くステップ602では、描画[i][j]=PLC1[i][j]の処理が行われる。続くステップ603では、j=j+1の処理が行われる。
【0050】
続くステップ604では、PLC1[i][j]=0の判定が行われる。ここで、判定結果が0の場合(ステップ604YES)、ステップ605へ進むのに対し、判定結果が0でない場合には(ステップ604NO)、ステップ602へと戻る。
【0051】
ステップ605では、j=1,i=i+1の処理が行われる。続くステップ606では、PLC1[i][j]=0の判定が行われる。ここで判定結果が0であれば(ステップ606YES)、処理は終了するのに対し、0でない場合には(ステップ606NO)、処理はステップ602へと戻る。その後以上の動作が繰り返される。
【0052】
図6に示される描画処理の実行結果として得られた解析結果の表示例の説明図が図7に示されている。図から明らかなように、この表示例によれば、タスク/セクションNo毎に使用しているメモリが一目でわかる。図7の例では、タスク/セクションNo欄を番号表示としているが、「1」に対応する「タスク1/セクション1」、「2」に対応する「タスク2/セクション1」の文字列を表示しても良い。本発明のより具体的な実施例を以下に説明する。この場合のメモリ使用例が図8に示されている。
【0053】
図8に示されるように、この例にあっては、PLC1とPLC2とからなる2台のPLCを有する。PLC1のユーザプログラムには、タスク名称が制御Aと制御Bの2個のタスクが含まれている。制御Aのタスクには、セクション名称が制御A_1、制御A_2、制御A_3、制御A_4の4個のセクションが含まれている。制御Bのタスクには、セクション名称が制御B_1と制御B_2の2個のセクションが含まれている。
【0054】
一方、PLC1のメモリには、入出力リレー領域、内部補助リレー領域、保持リレー領域、特殊補助リレー領域、データメモリ領域、拡張データメモリなどのメモリエリアが設けられている。
【0055】
入出力リレー領域は、制御A_1(セクション)により使用されている。内部補助リレー領域は、制御A_2(セクション)と制御A_3(セクション)とにより共用されている。特殊補助リレー領域は、制御A_4(セクション)と制御B_1(セクション)とにより共用されている。拡張データメモリは、制御B_2(セクション)により使用されている。
【0056】
一方、PLC2のユーザプログラムには、タスク名称が制御aの1個のタスクが含まれており、この制御aのタスク内にはセクション名称が制御a_1の1個のセクションが含まれている。
【0057】
そして、PLC2のメモリ内の拡張データメモリは、制御a_1(セクション)により使用される。同時に、PLC1のメモリの拡張データメモリとPLC2のメモリの拡張データメモリとはデータリンク機能によって共用されている。
【0058】
換言すれば、図8に示されるシステムは、PLC1とPLC2とからなる2つのPLCを有し、PLC1のプログラムは2つのタスク(制御A,制御B)と6つのセクション(制御A_1,制御A_2,制御A_3,制御A_4,制御B_1,制御B_2)から構成される。また、PLC2のプログラムは1つのタスク(制御a)と1つのセクション(制御a_1)から構成される。
【0059】
本発明に係る分析処理を図8に示されるシステム構成に適用した際に得られた解析結果の表示例が図9に示されている。
【0060】
同図から明らかなように、この表示例にあっては、横長長方形状の領域は、左右方向3列に分割され、各列には順に「解析対象のセクション」、「リンク先のセクション」、「リンク数」が割り付けられている。
【0061】
さらに、それら3列のそれぞれは、さらに左右方向4列に分割され、各列には順に「PLC」、「タスク」、「セクション」、「セクション属性」が割り付けられている。
【0062】
一方、PLCに割り当てられた上下方向へ延びる列は、PLC毎に上下方向に分割される。また、タスクに割り付けられた上下方向の列は、各PLC毎にそれに含まれるタスク名称に割り当てられる。また、セクションに割り当てられた上下方向に延びる列は、タスク名称毎に個々のセクション名称に細別され、セクション属性に割り当てられた上下方向へ延びる列は、各セクション毎に対応してセクション属性が記述される。
【0063】
ここで、セクション属性「1」は、他セクションとメモリ共有がないセクションとされ、セクション属性「2」は自タスク内の他セクションとメモリ共有のあるセクションとされ、セクション属性「3」は他タスクとメモリ共有があるセクションとされ、セクション属性「4」は他PLCとメモリ共有のあるセクションとされる。
【0064】
このような解析結果の表示例であれば、例えば、セクション制御A_2は、自タスク内のセクション制御A_3とメモリ共有があるので、セクション属性は「2」(自タスク内の他セクションとメモリ共有のあるセクション)となり、そのメモリ共有が内部補助リレー10CH分であることが表示される。
【0065】
この実施例によれば、あるプログラムモジュール内で使用されているメモリが他のプログラムモジュール内でも使用されているかどうかを一目瞭然に理解できるような表示をユーザに対して行うことができる。
【産業上の利用可能性】
【0066】
本発明によれば、あるプログラムモジュール内に使用されているメモリが他のプログラムモジュールでも使用されているかどうかを一目で理解できるような表示をユーザに対して提供することができる。
【図面の簡単な説明】
【0067】
【図1】タスク/セクション/複数PLC間のメモリ使用状況の説明図である。
【図2】タスク/セクション間のメモリ使用状況の解析処理のフローチャートである。
【図3】ユーザプログラムの構造の一例を示す説明図である。
【図4】パソコンのRAM内に保存されたデータの説明図である。
【図5】解析ツールの処理のフローチャートである。
【図6】描画処理のフローチャートである。
【図7】解析結果の表示例の説明図である。
【図8】メモリ使用の例を示す図である。
【図9】解析結果の表示例を示す図である。
【図10】クロスリファレンス表示例を示す図である。
【図11】データリンク機能の概念を説明する図である。
【図12】データリンクテーブルの例を示す図である。
【符号の説明】
【0068】
A〜D メモリ内の記憶エリア
【技術分野】
【0001】
本発明は、プログラマブル・コントローラ(以下、PLCと言う)の制御プログラム(ユーザプログラム)を開発する場合等に好適な制御プログラム開発支援装置に関するものである。
【背景技術】
【0002】
PLCで実行される制御プログラム(ユーザプログラム)の作成を支援するものとして制御プログラム開発支援装置(以下、開発支援装置)が知られている。この開発支援装置を使ってユーザプログラムを作成する際には、既存プログラムの流用がしばしば行なわれる。
【0003】
通常、ユーザプログラムは、複数のプログラムモジュールから構成されており、異なるプログラムモジュール間で共通に参照されるメモリアドレスが存在する。このように異なるプログラムモジュール間で共通に参照されるメモリアドレスが存在する場合は、そのプログラムモジュールを流用する際は注意が必要となる。これを怠ると、予期せぬ誤動作の原因となる。
【0004】
あるメモリアドレスがユーザプログラム内のどこに使用されているか検索するためのものとしては、クロスリファレンスと称される参照テーブルが知られている。なお、クロスリファレンスを利用する検索については、各種の公知技術が知られている(例えば、特許文献1参照)。
【0005】
クロスリファレンス表示例が図10に示されている。この例では、メモリアドレス「A200.11」がプログラム名「新規プログラム1」なるプログラムを構成するセクション名「セクション1」なるプログラムモジュール内で使用されていることを示している。さらに、そのプログラムモジュール内の使用場所として、プログラムアドレスが「0」であり、命令後「LD」のオペランドとして使用されていることを表している。
【特許文献1】特開2003−243269号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、従来のクロスリファレンス表示は、あるメモリアドレスが使用されているプログラムモジュールの名称やプログラムモジュール内での使用場所等を当該メモリアドレスを行の先頭として同一行に並べて表示するというメモリアドレスの中心の表示となっている。したがって、あるプログラムモジュール内に使用されているメモリアドレスが他のプログラムモジュールでも使用されているかどうかを一目で理解できるものではなかったため、使い勝手が悪いと言う問題点が指摘されている。また、従来より提供されている、複数のPLC間でデータの共有を行う機能(データリンク機能と呼ぶ)を使用しているPLCのユーザプログラムを流用する場合は、他のPLCとデータ共有しているメモリエリアのメモリアドレスにも注意が必要であるにもかかわらず、従来のクロスリファレンス表示では表示されないという問題も指摘されている。
【0007】
この発明は、上述の問題点に着目してなされたものであり、その目的とするところは、あるプログラムモジュール内に使用されているメモリアドレスが他のプログラムモジュールでも使用されているかどうかを一目で理解できるような表示を提供できる制御プログラム開発支援装置を提供することにある。
【課題を解決するための手段】
【0008】
この発明の制御プログラム開発支援装置は、複数のプログラムモジュールで構成される制御プログラムを解析する制御プログラム開発支援装置において、制御プログラムを読み出し、使用されているメモリアドレスのプログラムモジュール間での重複使用状況を解析する解析手段と、解析手段で解析した結果を表示する解析結果表示手段とを備え、プログラムモジュール毎に他のプログラムモジュールとの使用メモリアドレスの重複使用状況を表示可能としたものである。
【0009】
このような構成によれば、あるプログラムモジュール内で使用されているメモリアドレスが他のプログラムモジュール内でも使用されているかどうかを一目で理解できるような表示をユーザに対して行うことができる。
【0010】
この発明の好ましい実施の形態においては、解析手段は、制御プログラムが複数のPLCの制御プログラムから構成されているかどうかを解析し、解析結果表示手段は、解析手段で制御プログラムが複数のPLCの制御プログラムから構成されていると解析された場合は、プログラムモジュールをPLCごとにグループ化して使用メモリアドレスの重複使用状況を表示するものであってもよい。
【0011】
このような構成によれば、あるPLC内で使用されているメモリアドレスが他のPLC内でも使用されているかどうかを一目で理解できるような表示をユーザに対して行うことができる。
【0012】
この発明の好ましい実施の形態においては、解析結果表示手段は、プログラムモジュール毎に当該プログラムモジュール内で使用されているメモリアドレスの内、他のプログラムモジュールでも重複使用されている場合は、その重複使用しているプログラムモジュール名と対応させて使用メモリアドレスの重複使用状況を表示するのであってもよい。
【0013】
このような構成によれば、あるプログラムモジュール内で使用されているメモリアドレスがどのプログラムモジュール内でも使用されているかどうかを一目で理解できるような表示をユーザに対して行うことができる。
【0014】
この発明の好ましい実施の形態においては、解析手段は、制御プログラムを構成するプログラムモジュールに階層構造があるかどうかを解析し、階層構造があると解析された場合は、階層構造と使用メモリアドレスの重複使用状況に基づいて当該プログラムモジュールの使用メモリアドレスの重複使用度合いを演算し、解析結果表示手段は、解析手段で演算された重複使用度合いを表示するのであってもよい。
【0015】
このような構成によれば、ある階層で使用されているメモリアドレスが他の階層でも使用されているかどうかを一目で理解できるような表示をユーザに対して行うことができる。
【0016】
なお、別の一面から見た本発明は、上記の各装置の機能を実現するためのコンピュータプログラムとしても把握することができる。
【発明の効果】
【0017】
本発明によれば、あるプログラムモジュール内に使用されているメモリアドレスが他のプログラムモジュールでも使用されているかどうかを一目で理解できるような表示をユーザに対して提供することができる。
【発明を実施するための最良の形態】
【0018】
以下に、この発明の好適な実施の一形態を添付図面を参照しながら詳細に説明する。
【0019】
本発明の制御プログラム開発支援装置は、例えばパソコンに所定のアプリケーションソフトをインストールすることによって実現することができる。ここで、パソコンのハードウェア構成については種々の文献において周知であるから、この明細書においては詳細な説明は省略する。
【0020】
タスク/セクション/複数PLC間でのメモリ使用状況の説明図が図1に示されている。図1では、PLCのユーザプログラムは複数の「タスク」と呼ばれるプログラム単位で構成され、各タスクは、複数の「セクション」と呼ばれるプログラムモジュールで構成される例を示している。この例の場合は、プログラムモジュールにユーザプログラム/タスク/セクションの階層構造があると見ることができる。また、PLC内にはひとつのユーザプログラムのみ存在する場合で、かつ、複数のPLCで制御システムが構築される場合は、PLC/タスク/セクションの階層構造があると見ることができる。一般的にPLCのユーザプログラムは、その制御対象や機能の違いによって、複数のプログラム(タスク,セクション)に分割して作成することがしばしば行われる。また、これら複数のプログラム(タスク,セクション)は同一のメモリにアクセスすることもしばしば行われる。さらに、データリンク機能は、リンクするエリアを定義するパラメータによって、プログラムレスでPLC間のメモリを共有することができる。
【0021】
このデータリンク機能について図11および図12を用いて説明する。図11にはデータリンク機能の概念を説明する図が示されている。この例では、3つのノード(ノード1〜3)間でのデータリンク機能によるデータ共有を示している。ここで、ノードは、PLCに相当する。ノード1のメモリアドレスDM0から100ワード分のデータがノード2とノード3に送信される。また、ノード2のDM100から100ワード分のデータがノード1とノード3に送信される。さらに、ノード3のDM200から150ワード分のデータがノード1とノード2に送信される。以上は各ノードの他ノードへの送信についての説明である。
【0022】
次にノード1でのデータ受信について説明する。この例では、ノード1は、ノード2が送信したデータをDM100から格納し、ノード3が送信したデータをDM200から格納する。各ノードでの送信データや受信データに関する情報はデータリンクテーブルと呼ばれるテーブルによって管理されている。図12にデータリンクテーブルの例が示されている。この例は、図11のノード1のデータリンクテーブルを示したものである。ノード番号欄はデータリンク対象のノードを示しており、自ノードリンク開始メモリアドレスは自ノード(この例ではノード1)の送受信開始メモリアドレスを示しており、リンクデータサイズは送受信データサイズを示しており、他ノードリンク開始メモリアドレスは他ノードの送信開始メモリアドレスを示している。このデータリンクテーブルを参照することによりノード1は、DM0から100ワード分のデータを他ノードへ送信し、ノード2から受信したデータ(ノード2のDM100から100ワード分のデータ)をDM100から格納し、ノード3から受信したデータ(ノード3のDM200からの150ワード分のデータ)をDM200から格納すれば良いことがわかる。このようにPLCのユーザプログラムでは、複数プログラム間や複数のPLC間でメモリ共有が可能となっている。
【0023】
そして本発明の制御プログラム開発支援装置にあっては、これら複数プログラム/複数PLC間のメモリのリンク状況をユーザに対して的確に表示させることができる。
【0024】
図1には、複数プログラム/複数PLC間で同一メモリを使用している例が示されている。この例にあっては、PLC1とPLC2とからなる2台のPLCが存在する。
【0025】
PLC1のユーザプログラムには、タスク1とタスク2とからなる2つのタスクが含まれている。タスク1内には、セクション1、セクション2、セクション3からなる3個のセクションが含まれている。同様にして、タスク2内にも、セクション4とセクション5とからなる2個のセクションが含まれている。
【0026】
一方、PLC1のメモリ内には、ユーザプログラムを構成する命令語を介してアクセス可能なメモリエリアとして(A)、(B)、(C)、(D)で示される4つのエリアが設けられている。そのうち、エリア(A)はタスク1内のセクション1からのみアクセスされるエリアとされる。また、エリア(B)はタスク1内のセクション2とセクション3とから共通にアクセスされるエリアとされる。また、エリア(C)はタスク1内のセクション3とタスク2内のセクション4とから共通にアクセスされるエリアとされる。さらに、エリア(D)はPLC1のプログラム内のタスク2のセクション5からアクセスされると共にPLC2のメモリの領域(D)とデータリンクで共用されるエリアともされている。
【0027】
換言すれば、PLC1のメモリ内には、単独セクションで使用しているメモリ(A)、単独タスクの複数セクションで使用しているメモリ(B)、複数タスクのセクションで使用しているメモリ(C)、複数PLC間で使用しているメモリ(D)が存在する。
【0028】
このように、PLCのメモリの一部を様々なプログラム部分で共用しているような複雑なシステムから、プログラムの一部を流用したりあるいは改造を行おうとすると、思わぬ誤動作の原因となる。
【0029】
そこで、このような複雑なシステムから改造や流用を行うに際しては、メモリ内の各部の使用状況を分析し、共用関係を正確に把握せねばならない。
【0030】
先に述べた従来のクロスリファレンス機能は、単独セクションで使用しているメモリアドレス、単独タスクの複数セクションで使用しているメモリアドレス、複数タスクのセクションで使用しているメモリアドレス、複数PLC間で使用しているメモリアドレスなどを分析把握するためには役立つものの、そのようなメモリ分離(使用状況)をもとに改造・流用の単位となる各タスク/セクション間のメモリ共有状況(タスク/セクションの属性)を解析することはできない。
【0031】
すなわち、他セクションとメモリ共有がないセクション(例えば、セクション1)、自タスク内の他セクションとメモリ共有のあるセクション(例えば、セクション2)、他タスクとメモリ共有のあるセクション(例えば、セクション3/セクション4)、他PLCとメモリ共有のあるセクション(例えば、セクション5)を解析することは、従来のクロスリファレンス機能で実現することができない。
【0032】
これに対して、以下に述べる本発明装置にあっては、それらのメモリ共用関係を的確に分析し、ユーザに対し分かりやすく表示することができる。本発明と関連して、パソコンに組み込まれるタスク/セクション間のメモリ使用状況の解析処理のフローチャートが図2に示されている。
【0033】
同図において処理が開始されると、まずステップ201においては、ユーザプログラム内のセクション毎のメモリ使用状況の解析が行われる。すなわち、図1に示された先の例によれば、PLC1内のセクション1〜5毎のメモリ使用状況が解析される。
【0034】
続くステップ202では、別途用意されたデータリンクテーブルに基づいて、他PLC間のメモリ共有状況が解析される。すなわち、図1の例であれば、PLC1のメモリ内のエリア(D)とPLC2のメモリ内の領域(D)が共有状況にあることが解析される。このデータリンクテーブルに基づく他PLC間のメモリ共有状況の解析の詳細を図12の例で説明する。図12の例では、自ノードリンク開始メモリアドレス欄とリンクデータサイズ欄の内容を読み出すことで他のPLCと共有しているメモリアドレスが判明する。この例では、メモリアドレスDM0から100ワード分(DM0〜99)、DM100から100ワード分(DM100〜DM199)、DM200から150ワード分(DM200〜DM349)のメモリアドレスが他のPLCと共有していることが判明する。
【0035】
以上の処理が、全セクション(セクション1〜セクション5)について繰り返される(ステップ203NO)。その間に、すべてのセクション(セクション1〜セクション5)について解析処理が完了すると(ステップ203YES)、ステップ204では、セクション間で同じメモリを使用している箇所の抽出が行われる。すなわち、図1の例によれば、エリア(B),(C)に関連するセクションの抽出が行われる。
【0036】
続くステップ205では、セクションの属性の分類が行われる。図1の例であれば、それらのセクションがどのタスクまたはどのPLCに対応するかの分類などが行われる。
【0037】
続くステップ206では、セクション単位メモリ使用一覧表が作成され、これがパソコンの画面に表示される。
【0038】
次に、具体的なユーザプログラムを実例として挙げ、これに基づいて図2に示される処理を施した場合における分析結果ならびに表示態様について説明する。
【0039】
いま仮に、図3に示されるようなユーザプログラムの構造が存在すると想定する。このユーザプログラムは、PLC1のユーザプログラムを表しており、他のPLCとのメモリ共有がない場合の例を示したものである。このPLC1のユーザプログラム内には、タスク1とタスク2とからなる2つのタスクが存在する。それらのタスク1,2内にはそれぞれ1個のセクション(セクション1)が存在する。
【0040】
PLC1のタスク1/セクション1ではDM0/DM1/DM2で表されるメモリアドレスを使用している。また、PLC1のタスク2/セクション1ではDM10/EM0/WR10で表されるメモリアドレスを使用している。この例で「DM」、「EM」、「WR」は、メモリエリアの種別を表す文字列である。「DM」、「EM」、「WR」に続く数字は、当該メモリエリア種別内でのアドレスを表している。このようにメモリエリアの種別を表す文字列と、そのメモリエリア種別内でのアドレスを表す数字との組み合わせでメモリアドレスを表現することがある。
【0041】
パソコンのRAM内に保存されたデータの説明図が図4に示されている。図3に示されるユーザプログラムの構造は、図4に示されるように、パソコンのRAM内にデータとして保存される。一例として、ポインタPが指し示すデータをみると、RAMアドレス1にはメモリアドレス「DM0」とタスク1/セクション1を識別するデータ「1」が保存されている。図4の例では、タスク1/セクション1、タスク2/セクション1を識別するデータとしてそれぞれ「1」、「2」が対応している。
【0042】
解析ツールの処理のフローチャートが図5に示されている。図4に示されるデータ構造を前提として処理が開始されると、ステップ501ではタスク/セクションNoは「1」に初期設定される。
【0043】
続くステップ502では、ポインタPにタスク/セクションNoのRAMアドレスを入力する。続くステップ503では、NoカウンタNumの値を「1」に初期設定する。
【0044】
以後、ポインタPおよびカウンタNumをプラス1更新しつつ、メモリアドレスが0となるまでメモリアドレスの取得処理(ステップ504)、メモリアドレスに対応するPLCのタスク・セクションNo、カウントNo.Numの抽出処理(ステップ505)が繰り返し実行される。
【0045】
その間に、メモリアドレスが0と判定されると(ステップ507YES)、タスク/セクションNoをプラス1更新しては(ステップ508)、以上の動作(ステップ502〜508)が繰り返され、登録されているタスク/セクションNo数(図4の例では、2となる)分の繰り返しの完了(ステップ509YES)を待って処理を終了する。
【0046】
以上図5に示される処理が実行されて、プログラムが解析されると、下記のようなデータ列が得られる。
PLC1[1][1]=DM0
PLC1[1][2]=DM1
PLC1[1][3]=DM2
PLC1[2][1]=DM10
PLC1[2][2]=DM0
PLC1[2][3]=WR10
【0047】
なお、それらのデータのフォーマットは、PLC1[タスク/セクションNo][登録数]とされている。
【0048】
次に、以上得られたデータに基づく描画処理のフローチャートが図6に示されている。同図において処理が開始されると、ステップ601ではまず初期化処理(i=1,j=1)が実行される。
【0049】
続くステップ602では、描画[i][j]=PLC1[i][j]の処理が行われる。続くステップ603では、j=j+1の処理が行われる。
【0050】
続くステップ604では、PLC1[i][j]=0の判定が行われる。ここで、判定結果が0の場合(ステップ604YES)、ステップ605へ進むのに対し、判定結果が0でない場合には(ステップ604NO)、ステップ602へと戻る。
【0051】
ステップ605では、j=1,i=i+1の処理が行われる。続くステップ606では、PLC1[i][j]=0の判定が行われる。ここで判定結果が0であれば(ステップ606YES)、処理は終了するのに対し、0でない場合には(ステップ606NO)、処理はステップ602へと戻る。その後以上の動作が繰り返される。
【0052】
図6に示される描画処理の実行結果として得られた解析結果の表示例の説明図が図7に示されている。図から明らかなように、この表示例によれば、タスク/セクションNo毎に使用しているメモリが一目でわかる。図7の例では、タスク/セクションNo欄を番号表示としているが、「1」に対応する「タスク1/セクション1」、「2」に対応する「タスク2/セクション1」の文字列を表示しても良い。本発明のより具体的な実施例を以下に説明する。この場合のメモリ使用例が図8に示されている。
【0053】
図8に示されるように、この例にあっては、PLC1とPLC2とからなる2台のPLCを有する。PLC1のユーザプログラムには、タスク名称が制御Aと制御Bの2個のタスクが含まれている。制御Aのタスクには、セクション名称が制御A_1、制御A_2、制御A_3、制御A_4の4個のセクションが含まれている。制御Bのタスクには、セクション名称が制御B_1と制御B_2の2個のセクションが含まれている。
【0054】
一方、PLC1のメモリには、入出力リレー領域、内部補助リレー領域、保持リレー領域、特殊補助リレー領域、データメモリ領域、拡張データメモリなどのメモリエリアが設けられている。
【0055】
入出力リレー領域は、制御A_1(セクション)により使用されている。内部補助リレー領域は、制御A_2(セクション)と制御A_3(セクション)とにより共用されている。特殊補助リレー領域は、制御A_4(セクション)と制御B_1(セクション)とにより共用されている。拡張データメモリは、制御B_2(セクション)により使用されている。
【0056】
一方、PLC2のユーザプログラムには、タスク名称が制御aの1個のタスクが含まれており、この制御aのタスク内にはセクション名称が制御a_1の1個のセクションが含まれている。
【0057】
そして、PLC2のメモリ内の拡張データメモリは、制御a_1(セクション)により使用される。同時に、PLC1のメモリの拡張データメモリとPLC2のメモリの拡張データメモリとはデータリンク機能によって共用されている。
【0058】
換言すれば、図8に示されるシステムは、PLC1とPLC2とからなる2つのPLCを有し、PLC1のプログラムは2つのタスク(制御A,制御B)と6つのセクション(制御A_1,制御A_2,制御A_3,制御A_4,制御B_1,制御B_2)から構成される。また、PLC2のプログラムは1つのタスク(制御a)と1つのセクション(制御a_1)から構成される。
【0059】
本発明に係る分析処理を図8に示されるシステム構成に適用した際に得られた解析結果の表示例が図9に示されている。
【0060】
同図から明らかなように、この表示例にあっては、横長長方形状の領域は、左右方向3列に分割され、各列には順に「解析対象のセクション」、「リンク先のセクション」、「リンク数」が割り付けられている。
【0061】
さらに、それら3列のそれぞれは、さらに左右方向4列に分割され、各列には順に「PLC」、「タスク」、「セクション」、「セクション属性」が割り付けられている。
【0062】
一方、PLCに割り当てられた上下方向へ延びる列は、PLC毎に上下方向に分割される。また、タスクに割り付けられた上下方向の列は、各PLC毎にそれに含まれるタスク名称に割り当てられる。また、セクションに割り当てられた上下方向に延びる列は、タスク名称毎に個々のセクション名称に細別され、セクション属性に割り当てられた上下方向へ延びる列は、各セクション毎に対応してセクション属性が記述される。
【0063】
ここで、セクション属性「1」は、他セクションとメモリ共有がないセクションとされ、セクション属性「2」は自タスク内の他セクションとメモリ共有のあるセクションとされ、セクション属性「3」は他タスクとメモリ共有があるセクションとされ、セクション属性「4」は他PLCとメモリ共有のあるセクションとされる。
【0064】
このような解析結果の表示例であれば、例えば、セクション制御A_2は、自タスク内のセクション制御A_3とメモリ共有があるので、セクション属性は「2」(自タスク内の他セクションとメモリ共有のあるセクション)となり、そのメモリ共有が内部補助リレー10CH分であることが表示される。
【0065】
この実施例によれば、あるプログラムモジュール内で使用されているメモリが他のプログラムモジュール内でも使用されているかどうかを一目瞭然に理解できるような表示をユーザに対して行うことができる。
【産業上の利用可能性】
【0066】
本発明によれば、あるプログラムモジュール内に使用されているメモリが他のプログラムモジュールでも使用されているかどうかを一目で理解できるような表示をユーザに対して提供することができる。
【図面の簡単な説明】
【0067】
【図1】タスク/セクション/複数PLC間のメモリ使用状況の説明図である。
【図2】タスク/セクション間のメモリ使用状況の解析処理のフローチャートである。
【図3】ユーザプログラムの構造の一例を示す説明図である。
【図4】パソコンのRAM内に保存されたデータの説明図である。
【図5】解析ツールの処理のフローチャートである。
【図6】描画処理のフローチャートである。
【図7】解析結果の表示例の説明図である。
【図8】メモリ使用の例を示す図である。
【図9】解析結果の表示例を示す図である。
【図10】クロスリファレンス表示例を示す図である。
【図11】データリンク機能の概念を説明する図である。
【図12】データリンクテーブルの例を示す図である。
【符号の説明】
【0068】
A〜D メモリ内の記憶エリア
【特許請求の範囲】
【請求項1】
複数のプログラムモジュールで構成される制御プログラムを解析する制御プログラム開発支援装置において、
制御プログラムを読み出し、使用されているメモリアドレスのプログラムモジュール間での重複使用状況を解析する解析手段と、
解析手段で解析した結果を表示する解析結果表示手段とを備え、
プログラムモジュール毎に他のプログラムモジュールとの使用メモリアドレスの重複使用状況を表示可能とすることを特徴とする制御プログラム開発支援装置。
【請求項2】
解析手段は、制御プログラムが複数のPLCの制御プログラムから構成されているかどうかを解析し、
解析結果表示手段は、解析手段で制御プログラムが複数のPLCの制御プログラムから構成されていると解析された場合は、プログラムモジュールをPLCごとにグループ化して使用メモリアドレスの重複使用状況を表示する、ことを特徴とする請求項1に記載の制御プログラム開発支援装置。
【請求項3】
解析結果表示手段は、プログラムモジュール毎に当該プログラムモジュール内で使用されているメモリアドレスの内、他のプログラムモジュールでも重複使用されている場合は、その重複使用しているプログラムモジュール名と対応させて使用メモリアドレスの重複使用状況を表示する、ことを特徴とする請求項1に記載の制御プログラム開発支援装置。
【請求項4】
解析手段は、制御プログラムを構成するプログラムモジュールに階層構造があるかどうかを解析し、階層構造があると解析された場合は、階層構造と使用メモリアドレスの重複使用状況に基づいて当該プログラムモジュールの使用メモリアドレスの重複使用度合いを演算し、・解析結果表示手段は、解析手段で演算された重複使用度合いを表示することを特徴とする請求項1に記載の制御プログラム開発支援装置。
【請求項5】
コンピュータを、
複数のプログラムモジュールで構成される制御プログラムを読み出し、使用されているメモリアドレスのプログラムモジュール間での重複使用状況を解析する解析手段と、
解析手段で解析した結果を表示する解析結果表示手段とを備え、
プログラムモジュール毎に他のプログラムモジュールとの使用メモリアドレスの重複使用状況を表示可能とする制御プログラム開発支援装置、
として機能させるためのコンピュータプログラム。
【請求項6】
解析手段は、制御プログラムが複数のPLCの制御プログラムから構成されているかどうかを解析し、
解析結果表示手段は、解析手段で制御プログラムが複数のPLCの制御プログラムから構成されていると解析された場合は、プログラムモジュールをPLCごとにグループ化して使用メモリアドレスの重複使用状況を表示する、ことを特徴とする請求項5に記載のコンピュータプログラム。
【請求項7】
解析結果表示手段は、プログラムモジュール毎に当該プログラムモジュール内で使用されているメモリアドレスの内、他のプログラムモジュールでも重複使用されている場合は、その重複使用しているプログラムモジュール名と対応させて使用メモリアドレスの重複使用状況を表示する、ことを特徴とする請求項5に記載のコンピュータプログラム。
【請求項8】
解析手段は、制御プログラムを構成するプログラムモジュールに階層構造があるかどうかを解析し、階層構造があると解析された場合は、階層構造と使用メモリアドレスの重複使用状況に基づいて当該プログラムモジュールの使用メモリアドレスの重複使用度合いを演算し、・解析結果表示手段は、解析手段で演算された重複使用度合いを表示することを特徴とする請求項5に記載のコンピュータプログラム。
【請求項1】
複数のプログラムモジュールで構成される制御プログラムを解析する制御プログラム開発支援装置において、
制御プログラムを読み出し、使用されているメモリアドレスのプログラムモジュール間での重複使用状況を解析する解析手段と、
解析手段で解析した結果を表示する解析結果表示手段とを備え、
プログラムモジュール毎に他のプログラムモジュールとの使用メモリアドレスの重複使用状況を表示可能とすることを特徴とする制御プログラム開発支援装置。
【請求項2】
解析手段は、制御プログラムが複数のPLCの制御プログラムから構成されているかどうかを解析し、
解析結果表示手段は、解析手段で制御プログラムが複数のPLCの制御プログラムから構成されていると解析された場合は、プログラムモジュールをPLCごとにグループ化して使用メモリアドレスの重複使用状況を表示する、ことを特徴とする請求項1に記載の制御プログラム開発支援装置。
【請求項3】
解析結果表示手段は、プログラムモジュール毎に当該プログラムモジュール内で使用されているメモリアドレスの内、他のプログラムモジュールでも重複使用されている場合は、その重複使用しているプログラムモジュール名と対応させて使用メモリアドレスの重複使用状況を表示する、ことを特徴とする請求項1に記載の制御プログラム開発支援装置。
【請求項4】
解析手段は、制御プログラムを構成するプログラムモジュールに階層構造があるかどうかを解析し、階層構造があると解析された場合は、階層構造と使用メモリアドレスの重複使用状況に基づいて当該プログラムモジュールの使用メモリアドレスの重複使用度合いを演算し、・解析結果表示手段は、解析手段で演算された重複使用度合いを表示することを特徴とする請求項1に記載の制御プログラム開発支援装置。
【請求項5】
コンピュータを、
複数のプログラムモジュールで構成される制御プログラムを読み出し、使用されているメモリアドレスのプログラムモジュール間での重複使用状況を解析する解析手段と、
解析手段で解析した結果を表示する解析結果表示手段とを備え、
プログラムモジュール毎に他のプログラムモジュールとの使用メモリアドレスの重複使用状況を表示可能とする制御プログラム開発支援装置、
として機能させるためのコンピュータプログラム。
【請求項6】
解析手段は、制御プログラムが複数のPLCの制御プログラムから構成されているかどうかを解析し、
解析結果表示手段は、解析手段で制御プログラムが複数のPLCの制御プログラムから構成されていると解析された場合は、プログラムモジュールをPLCごとにグループ化して使用メモリアドレスの重複使用状況を表示する、ことを特徴とする請求項5に記載のコンピュータプログラム。
【請求項7】
解析結果表示手段は、プログラムモジュール毎に当該プログラムモジュール内で使用されているメモリアドレスの内、他のプログラムモジュールでも重複使用されている場合は、その重複使用しているプログラムモジュール名と対応させて使用メモリアドレスの重複使用状況を表示する、ことを特徴とする請求項5に記載のコンピュータプログラム。
【請求項8】
解析手段は、制御プログラムを構成するプログラムモジュールに階層構造があるかどうかを解析し、階層構造があると解析された場合は、階層構造と使用メモリアドレスの重複使用状況に基づいて当該プログラムモジュールの使用メモリアドレスの重複使用度合いを演算し、・解析結果表示手段は、解析手段で演算された重複使用度合いを表示することを特徴とする請求項5に記載のコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2006−294011(P2006−294011A)
【公開日】平成18年10月26日(2006.10.26)
【国際特許分類】
【出願番号】特願2006−71854(P2006−71854)
【出願日】平成18年3月15日(2006.3.15)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】
【公開日】平成18年10月26日(2006.10.26)
【国際特許分類】
【出願日】平成18年3月15日(2006.3.15)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】
[ Back to top ]