(57)【特許請求の範囲】
【請求項１】
プログラマブルコントローラ支援装置から入力されたアプリケーションプログラムのソースコードをコンパイルして実行可能ファイルを生成した後、プログラマブルコントローラに供給して実行するプログラマブルコントローラシステムにおいて、
前記プログラマブルコントローラ支援装置は、
前記アプリケーションプログラムのソースコードの入力を受けるアプリケーションプログラム入力手段と、
前記アプリケーションプログラムのソースコードをコンパイルして、実行可能ファイルを生成するコンパイル手段と、
前記アプリケーションプログラムのソースコードに含まれている変数のうち、予め設定された初期値によって初期化される初期化変数と、値０によって初期化されるその他の変数とを弁別し、初期化変数とその初期値のみを抽出する初期化変数抽出手段と、
前記初期化変数抽出手段によって抽出された初期化変数の初期値から初期化パターンファイルを生成する初期化パターンファイル生成手段と、
前記コンパイル手段によって生成された実行可能ファイルと、前記初期化パターンファイル生成手段によって生成された初期化パターンファイルとを前記プログラマブルコントローラに送信する送信手段と、
前記送信手段によって送信された実行可能ファイルを起動する起動手段とを有し、
前記プログラマブルコントローラは、
前記プログラマブルコントローラ支援装置から送信された前記実行可能ファイルと、前記初期化パターンファイルとを受信する受信手段と、
前記受信手段によって受信された前記実行可能ファイルを格納する実行可能ファイル格納手段と、
前記受信手段によって受信された前記初期化パターンファイルを格納する初期化パターンファイル格納手段と、
前記実行可能ファイルが起動された場合に、各種変数の値が格納される変数値格納手段と、
前記起動手段によって前記実行可能ファイルが起動された場合には、前記初期化パターンファイルを前記変数値格納手段の所定の領域にマッピングするマッピング手段と、
前記初期化パターンファイルにより予め定められた初期値によって初期化される前記初期化変数以外の変数に対応する前記変数値格納手段の所定の領域を値０によって初期化する初期化手段と、
を有することを特徴とするプログラマブルコントローラシステム。
【請求項２】
前記起動手段は、
前記変数値格納手段に格納されている各種変数値のうち、リテイン変数の変数値を保存した状態で前記実行可能ファイルを再起動するウォーム起動と、
前記変数値格納手段に格納されている全ての変数の値を初期化した状態で前記実行可能ファイルを起動するコールド起動の何れか一方により前記実行可能ファイルを起動し、
前記マッピング手段は、
前記ウォーム起動が実行された場合には、前記リテイン変数以外の変数値をマッピングし、
前記コールド起動が実行された場合には、前記初期化パターンファイルを全てマッピングすることを特徴とする請求項１記載のプログラマブルコントローラシステム。
【請求項３】
前記プログラマブルコントローラ支援装置は、前記アプリケーションプログラムのソースコードに、共通の初期化パターンを有する宣言文が繰り返し出現する場合には、その共通初期化パターンを抽出して、共通初期化パターンファイルを生成する共通初期化パターンファイル生成手段と、
前記共通初期化パターンファイルが前記マッピング手段によってマッピングされる際に参照されるマッピング情報を生成するマッピング情報生成手段とを更に有し、
前記プログラマブルコントローラの前記マッピング手段は、前記マッピング情報を参照して、前記共通初期化パターンファイルをマッピングすることを特徴とする請求項１記載のプログラマブルコントローラシステム。
【請求項４】
前記プログラマブルコントローラ支援装置は、前記共通初期化パターンファイル生成手段によって生成された初期化パターンを有する変数群のそれぞれがリテイン変数であるか否かを示す属性情報を生成する属性情報生成手段を更に有し、
前記起動手段は、
前記変数値格納手段に格納されている各種変数値のうち、リテイン変数の変数値を保存した状態で前記実行可能ファイルを再起動するウォーム起動と、
前記変数値格納手段に格納されている全ての変数の値を初期化した状態で前記実行可能ファイルを起動するコールド起動の何れか一方により前記実行可能ファイルを起動し、
前記プログラマブルコントローラの前記マッピング手段は、
前記ウォーム起動が実行された場合には、前記属性情報を参照して前記リテイン変数以外の変数値を前記共通初期化パターンファイルから抽出してマッピングし、
前記コールド起動が実行された場合には、前記属性情報を参照して前記共通初期化パターンファイルを全てマッピングすることを特徴とする請求項３記載のプログラマブルコントローラシステム。
【請求項５】
入力されたアプリケーションプログラムのソースコードをコンパイルして実行可能ファイルを生成した後、プログラマブルコントローラに供給して実行させるプログラマブルコントローラ支援装置おいて、
前記アプリケーションプログラムのソースコードの入力を受けるアプリケーションプログラム入力手段と、
前記アプリケーションプログラムのソースコードをコンパイルして、実行可能ファイルを生成するコンパイル手段と、
前記アプリケーションプログラムのソースコードに含まれている変数のうち、予め設定された初期値によって初期化される初期化変数と、値０によって初期化されるその他の変数とを弁別し、初期化変数とその初期値のみを抽出する初期化変数抽出手段と、
前記初期化変数抽出手段によって抽出された初期化変数の初期値から初期化パターンファイルを生成する初期化パターンファイル生成手段と、
前記コンパイル手段によって生成された実行可能ファイルと、前記初期化パターンファイル生成手段によって生成された初期化パターンファイルとを前記プログラマブルコントローラに送信する送信手段と、
前記送信手段によって送信された実行可能ファイルを起動する起動手段と、
を有することを特徴とするプログラマブルコントローラ支援装置。
【請求項６】
入力されたアプリケーションプログラムのソースコードをコンパイルして実行可能ファイルを生成した後、プログラマブルコントローラに供給して実行させる処理をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータを、
前記アプリケーションプログラムのソースコードの入力を受けるアプリケーションプログラム入力手段、
前記アプリケーションプログラムのソースコードをコンパイルして、実行可能ファイルを生成するコンパイル手段、
前記アプリケーションプログラムのソースコードに含まれている変数のうち、予め設定された初期値によって初期化される初期化変数と、値０によって初期化されるその他の変数とを弁別し、初期化変数とその初期値のみを抽出する初期化変数抽出手段、
前記初期化変数抽出手段によって抽出された初期化変数の初期値から初期化パターンファイルを生成する初期化パターンファイル生成手段、
前記コンパイル手段によって生成された実行可能ファイルと、前記初期化パターンファイル生成手段によって生成された初期化パターンファイルとを前記プログラマブルコントローラに送信する送信手段、
前記送信手段によって送信された実行可能ファイルを起動する起動手段、
として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
プログラマブルコントローラ支援装置がアプリケーションプログラムのソースコードをコンパイルして生成した実行可能ファイルを入力して実行するプログラマブルコントローラにおいて、
前記プログラマブルコントローラ支援装置から送信された前記実行可能ファイルと、前記初期化パターンファイルとを受信する受信手段と、
前記受信手段によって受信された前記実行可能ファイルを格納する実行可能ファイル格納手段と、
前記受信手段によって受信された前記初期化パターンファイルを格納する初期化パターンファイル格納手段と、
前記実行可能ファイルが起動された場合に、各種変数の値が格納される変数値格納手段と、
前記起動手段によって前記実行可能ファイルが起動された場合には、前記初期化パターンファイルを前記変数値格納手段の所定の領域にマッピングするマッピング手段と、
前記初期化パターンファイルにより予め定められた初期値によって初期化される前記初期化変数以外の変数に対応する前記変数値格納手段の所定の領域を値０によって初期化する初期化手段と、
を有することを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプログラマブルコントローラシステム、プログラマブルコントローラ支援装置、プログラマブルコントローラ、および、記録媒体に関し、特に、プログラマブルコントローラ支援装置から入力されたアプリケーションプログラムのソースコードをコンパイルして実行可能ファイルを生成した後、プログラマブルコントローラに供給して実行するプログラマブルコントローラシステム、プログラマブルコントローラシステムを構成するプログラマブルコントローラ支援装置とプログラマブルコントローラ、および、コンピュータをプログラマブルコントローラ支援装置として機能させるプログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
制御仕様が簡単に変更できることを特徴とするプログラマブルコントローラ（ＰＣ：Ｐｒｏｇｌａｍａｂｌｅ  Ｃｏｎｔｒｏｌｌｅｒ）が、その低価格化と高性能化に牽引されて、数多の現場で使用されるようになってきた。
【０００３】
一般的に、プログラマブルコントローラは、パーソナルコンピュータと同様に、ＣＰＵ、ＲＯＭ、ＲＡＭ、および、インターフェースなどによって構成されており、プログラマブルコントローラ支援装置から供給されたアプリケーションプログラムに応じて、制御対象であるモジュール群を制御する。
【０００４】
ところで、プログラマブルコントローラで実行するアプリケーションプログラムは、プログラマブルコントローラ支援装置において、例えば、高級言語や図形言語などを用いて記述する。そして、このアプリケーションプログラムを実行する場合には、プログラムをコンパイルして実行可能ファイルを生成した後、その実行可能ファイルをプログラマブルコントローラに送信して実行させる。
【０００５】
なお、アプリケーションプログラムをコンパイルする際は、アプリケーションプログラムで使用されている各種変数の初期値を格納した初期化パターンファイルが生成され、実行可能ファイルとともに、プログラマブルコントローラに送信される。
【０００６】
図１２は、従来のプログラマブルコントローラによって生成される初期化パターンファイルの一例を示す図である。
この図において、アプリケーションプログラムＰ１は、ソースコードであり、この例では、ＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ  ）１１３１−３規格に準拠した高級言語で記述されている。
【０００７】
ところで、このＩＥＣ１１３１−３規格に準拠した高級言語で使用可能な変数は、次の４種類である。なお、これらの変数は、ユーザが指定した初期値を有するか否かと、後述するウォーム起動とコールド起動における初期化の取り扱いの相違と、によって分類される。
（１）通常変数：起動方法に拘わらず値０に初期化される
（２）初期化変数：起動方法に拘わらず所定の初期値を有する
（３）リテイン変数：コールド起動では値０に初期化され、ウォーム起動では前回実行時の値が保持される
（４）初期化リテイン変数：コールド起動では所定の値に初期化され、ウォーム起動では前回実行時の値が保持される
ここで、ウォーム起動とは、前回実行時におけるリテイン変数（初期化リテイン変数も含む）の値を保持した状態で再起動することであり、また、コールド起動とは、リテイン変数を初期化した状態で起動することである。
【０００８】
このアプリケーションプログラムＰ１がプログラマブルコントローラ支援装置によってコンパイルされると、実行可能ファイル（プログラム）が生成されるとともに、初期化パターンファイルｉ１と属性情報ａ１とが生成される。
【０００９】
ここで、初期化パターンファイルｉ１は、アプリケーションプログラムに含まれている変数を初期化する際の初期値を格納している。また、属性情報ａ１は、初期化パターンファイルｉ１に格納されている初期値に対応する変数がリテイン変数であるか否かをそのビットの状態によって示す。
【００１０】
この例では、アプリケーションプログラムＰ１の「ＶＡＲ」および「ＥＮＤ＿ＶＡＲ」によって囲繞されている領域内に変数の宣言がなされている。例えば、第３行目には、正数（Ｉｎｔｅｇｅｒ  ）型の変数「ＡＡＡ」が宣言されており、その初期値は定義されていない。その下の行には、整数型の変数「ＢＢＢ」が宣言されており、その初期値は１６進数の“４４４”である。なお、「ＶＡＲ」および「ＥＮＤ＿ＶＡＲ」によって囲繞されている領域内に変数のうち、初期値が代入されていない変数が通常変数であり、初期値が代入されている変数が初期化変数である。
【００１１】
また、「ＶＡＲ  ＲＥＴＡＩＮ」および「ＥＮＤ＿ＶＡＲ」によって囲繞されている領域内で宣言されている変数は、リテイン変数である。例えば、第８行目には、整数型のリテイン変数「ＤＤＤ」が宣言されており、その初期値は１６進数の“４５６”である。「ＶＡＲ  ＲＥＴＡＩＮ」および「ＥＮＤ＿ＶＡＲ」によって囲繞されている領域内で宣言されている変数のうち、初期値が代入されていない変数がリテイン変数であり、初期値が代入されている変数が初期化リテイン変数である。
【００１２】
従って、アプリケーションプログラムＰ１の第３行目に宣言されている整数型の通常変数ＡＡＡは、その初期値が０であるので、初期化パターンファイルの第１行目には“０”が格納されており、また、メモリ属性情報の第１行目には、リテイン変数ではないこと示す“０”が格納されている。
【００１３】
このようにして生成された、初期化パターンファイルｉ１と属性情報ａ１とは、プログラマブルコントローラに送信され、そこで格納される。
そして、例えば、コールド起動がかけられた場合には、図１３に示すように、初期化パターンファイルの全てがユーザメモリ（プログラム実行中に各変数の値を格納するメモリ）ｍ１に転送される。
【００１４】
また、ウォーム起動がかけられた場合には、図１４に示すように、属性情報の値が“０”であるものだけ（リテイン変数以外の変数）が、ユーザメモリｍ１に転送される。
【００１５】
そして、アプリケーションプログラムが実行され、制御対象に対する制御が開始されることになる。
以上のような構成によれば、例えば、アプリケーションプログラムのデバッグ時にはウォーム起動を行って、適宜プログラムを停止させながら動作を確認するといったように、目的に応じた形態でプログラムを実行させることができる。
【００１６】
【発明が解決しようとする課題】
しかしながら、このような従来の方法では、全ての変数の初期値を格納した初期化パターンファイルを作成するとともに、それに対応した属性情報を作成しなければならず、これら２つのファイル容量が大きくなる。その結果、プログラマブルコントローラ支援装置からプログラマブルコントローラに対してアプリケーションプログラムを転送するのに時間を要するという問題点があった。
【００１７】
本発明はこのような点に鑑みてなされたものであり、初期化パターンファイルおよびそれに対応した属性情報のファイル容量を縮小化することを可能とするプログラマブルコントローラシステム、プログラマブルコントローラ支援装置、プログラマブルコントローラ、および、コンピュータに前述のような処理を実行させるプログラムを記録した記録媒体を提供することを目的とする。
【００１８】
【課題を解決するための手段】
本発明では上記課題を解決するために、プログラマブルコントローラ支援装置から入力されたアプリケーションプログラムのソースコードをコンパイルして実行可能ファイルを生成した後、プログラマブルコントローラに供給して実行するプログラマブルコントローラシステムにおいて、前記プログラマブルコントローラ支援装置は、前記アプリケーションプログラムのソースコードの入力を受けるアプリケーションプログラム入力手段と、前記アプリケーションプログラムのソースコードをコンパイルして、実行可能ファイルを生成するコンパイル手段と、前記アプリケーションプログラムのソースコードに含まれている変数のうち、予め設定された初期値によって初期化される初期化変数と、値０によって初期化されるその他の変数とを弁別し、初期化変数とその初期値のみを抽出する初期化変数抽出手段と、前記初期化変数抽出手段によって抽出された初期化変数の初期値から初期化パターンファイルを生成する初期化パターンファイル生成手段と、前記コンパイル手段によって生成された実行可能ファイルと、前記初期化パターンファイル生成手段によって生成された初期化パターンファイルとを前記プログラマブルコントローラに送信する送信手段と、前記送信手段によって送信された実行可能ファイルを起動する起動手段とを有し、前記プログラマブルコントローラは、前記プログラマブルコントローラ支援装置から送信された前記実行可能ファイルと、前記初期化パターンファイルとを受信する受信手段と、前記受信手段によって受信された前記実行可能ファイルを格納する実行可能ファイル格納手段と、前記受信手段によって受信された前記初期化パターンファイルを格納する初期化パターンファイル格納手段と、前記実行可能ファイルが起動された場合に、各種変数の値が格納される変数値格納手段と、前記起動手段によって前記実行可能ファイルが起動された場合には、前記初期化パターンファイルを前記変数値格納手段の所定の領域にマッピングするマッピング手段と、前記初期化パターンファイルにより予め定められた初期値によって初期化される前記初期化変数以外の変数に対応する前記変数値格納手段の所定の領域を値０によって初期化する初期化手段と、を有することを特徴とするプログラマブルコントローラシステムが提供される。
【００１９】
ここで、プログラマブルコントローラ支援装置において、アプリケーションプログラム入力手段は、アプリケーションプログラムのソースコードの入力を受ける。コンパイル手段は、アプリケーションプログラムのソースコードをコンパイルして、実行可能ファイルを生成する。初期化変数抽出手段は、アプリケーションプログラムのソースコードに含まれている変数のうち、予め設定された初期値によって初期化される初期化変数と、値０によって初期化されるその他の変数とを弁別し、初期化変数とその初期値のみを抽出する。初期化パターンファイル生成手段は、初期化変数抽出手段によって抽出された初期化変数の初期値から初期化パターンファイルを生成する。送信手段は、コンパイル手段によって生成された実行可能ファイルと、初期化パターンファイル生成手段によって生成された初期化パターンファイルとをプログラマブルコントローラに送信する。起動手段は、送信手段によって送信された実行可能ファイルを起動する。プログラマブルコントローラにおいて、受信手段は、プログラマブルコントローラ支援装置から送信された実行可能ファイルと、初期化パターンファイルとを受信する。実行可能ファイル格納手段は、受信手段によって受信された実行可能ファイルを格納する。初期化パターンファイル格納手段は、受信手段によって受信された初期化パターンファイルを格納する。変数値格納手段は、実行可能ファイルが起動された場合に、各種変数の値が格納される。マッピング手段は、起動手段によって実行可能ファイルが起動された場合には、初期化パターンファイルを変数値格納手段の所定の領域にマッピングする。初期化手段は、初期化パターンファイルにより予め定められた初期値によって初期化される初期化変数以外の変数に対応する変数値格納手段の所定の領域を値０によって初期化する。
【００２０】
また、入力されたアプリケーションプログラムのソースコードをコンパイルして実行可能ファイルを生成した後、プログラマブルコントローラに供給して実行させるプログラマブルコントローラ支援装置おいて、前記アプリケーションプログラムのソースコードの入力を受けるアプリケーションプログラム入力手段と、前記アプリケーションプログラムのソースコードをコンパイルして、実行可能ファイルを生成するコンパイル手段と、前記アプリケーションプログラムのソースコードに含まれている変数のうち、予め設定された初期値によって初期化される初期化変数と、値０によって初期化されるその他の変数とを弁別し、初期化変数とその初期値のみを抽出する初期化変数抽出手段と、前記初期化変数抽出手段によって抽出された初期化変数の初期値から初期化パターンファイルを生成する初期化パターンファイル生成手段と、前記コンパイル手段によって生成された実行可能ファイルと、前記初期化パターンファイル生成手段によって生成された初期化パターンファイルとを前記プログラマブルコントローラに送信する送信手段と、前記送信手段によって送信された実行可能ファイルを起動する起動手段と、を有することを特徴とするプログラマブルコントローラ支援装置が提供される。
【００２１】
ここで、アプリケーションプログラム入力手段は、アプリケーションプログラムのソースコードの入力を受ける。コンパイル手段は、アプリケーションプログラムのソースコードをコンパイルして、実行可能ファイルを生成する。初期化変数抽出手段は、アプリケーションプログラムのソースコードに含まれている変数のうち、予め設定された初期値によって初期化される初期化変数と、値０によって初期化されるその他の変数とを弁別し、初期化変数とその初期値のみを抽出する。初期化パターンファイル生成手段は、初期化変数抽出手段によって抽出された初期化変数の初期値から初期化パターンファイルを生成する。送信手段は、コンパイル手段によって生成された実行可能ファイルと、初期化パターンファイル生成手段によって生成された初期化パターンファイルとをプログラマブルコントローラに送信する。起動手段は、送信手段によって送信された実行可能ファイルを起動する。
【００２２】
更に、プログラマブルコントローラ支援装置がアプリケーションプログラムのソースコードをコンパイルして生成した実行可能ファイルを入力して実行するプログラマブルコントローラにおいて、前記プログラマブルコントローラ支援装置から送信された前記実行可能ファイルと、前記初期化パターンファイルとを受信する受信手段と、前記受信手段によって受信された前記実行可能ファイルを格納する実行可能ファイル格納手段と、前記受信手段によって受信された前記初期化パターンファイルを格納する初期化パターンファイル格納手段と、前記実行可能ファイルが起動された場合に、各種変数の値が格納される変数値格納手段と、前記起動手段によって前記実行可能ファイルが起動された場合には、前記初期化パターンファイルを前記変数値格納手段の所定の領域にマッピングするマッピング手段と、前記初期化パターンファイルにより予め定められた初期値によって初期化される前記初期化変数以外の変数に対応する前記変数値格納手段の所定の領域を値０によって初期化する初期化手段と、を有することを特徴とするプログラマブルコントローラが提供される。
【００２３】
ここで、受信手段は、プログラマブルコントローラ支援装置から送信された実行可能ファイルと、初期化パターンファイルとを受信する。実行可能ファイル格納手段は、受信手段によって受信された実行可能ファイルを格納する。初期化パターンファイル格納手段は、受信手段によって受信された初期化パターンファイルを格納する。変数値格納手段は、実行可能ファイルが起動された場合に、各種変数の値が格納される。マッピング手段は、起動手段によって実行可能ファイルが起動された場合には、初期化パターンファイルを変数値格納手段の所定の領域にマッピングする。初期化手段は、初期化パターンファイルにより予め定められた初期値によって初期化される初期化変数以外の変数に対応する変数値格納手段の所定の領域を値０によって初期化する。
【００２４】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１において、プログラマブルコントローラ支援装置１は、アプリケーションプログラムをコンパイルするとともに、初期化パターンファイルを生成し、バス２を介してプログラマブルコントローラ３に供給する。
【００２５】
プログラマブルコントローラ３は、アプリケーションプログラムが起動されると、プログラマブルコントローラ支援装置１から供給された初期化パターンファイルによって、アプリケーションプログラムに記述されている変数の初期値を設定した後、プログラムを実行する。
【００２６】
プログラマブルコントローラ３は、アプリケーションプログラムに応じて、制御対象となるモジュール５−１〜５−ｎを制御する。
ここで、プログラマブルコントローラ支援装置１は、アプリケーションプログラム入力手段１ａ、コンパイル手段１ｂ、初期化変数抽出手段１ｃ、初期化パターンファイル生成手段１ｄ、共通初期化パターンファイル生成手段１ｅ、マッピング情報生成手段１ｆ、送信手段１ｇ、および、起動手段１ｈによって構成されている。
【００２７】
アプリケーションプログラム入力手段１ａは、アプリケーションプログラムの入力を受ける。コンパイル手段１ｂは、アプリケーションプログラム入力手段１ａから入力されたプログラムをコンパイルし、実行可能ファイルを生成する。
【００２８】
初期化変数抽出手段１ｃは、アプリケーションプログラムのソースコードに含まれている変数のうち、初期化変数と初期化リテイン変数とを抽出するとともに、それらの初期値を抽出する。
【００２９】
初期化パターンファイル生成手段１ｄは、初期化変数抽出手段１ｃによって抽出された初期化変数と初期化リテイン変数の初期値から初期化パターンファイルを生成する。
【００３０】
共通初期化パターンファイル生成手段１ｅは、アプリケーションプログラムのソースコードに、共通の初期化パターンを有する宣言文が繰り返し出現する場合には、その共通初期化パターンを抽出して共通初期化パターンファイルを生成する。
【００３１】
マッピング情報生成手段１ｆは、共通初期化パターンファイルが後述するマッピング手段３ｄによってマッピングされる際に参照されるマッピング情報を生成する。
【００３２】
送信手段１ｇは、コンパイル手段１ｂによって生成された実行可能ファイル、初期化パターンファイル生成手段１ｄによって生成された初期化パターンファイル、共通初期化パターンファイル生成手段１ｅによって生成された共通初期化パターンファイル、および、マッピング情報生成手段１ｆによって生成されたマッピング情報をプログラマブルコントローラ３に送信する。
【００３３】
起動手段１ｈは、プログラマブルコントローラ３に所定の制御信号を送り、アプリケーションプログラムを起動させる。
また、プログラマブルコントローラ３は、受信手段３ａ、実行可能ファイル格納手段３ｂ、初期化パターンファイル格納手段３ｃ、マッピング手段３ｄ、変数値格納手段３ｅ、および、初期化手段３ｆによって構成されている。
【００３４】
受信手段３ａは、プログラマブルコントローラ支援装置１から送信された実行可能ファイル、初期化パターンファイル、共通初期化パターンファイル、および、マッピング情報を受信する。
【００３５】
実行可能ファイル格納手段３ｂは、受信手段３ａによって受信された実行可能ファイルを格納する。
初期化パターンファイル格納手段３ｃは、受信手段３ａによって受信された初期化パターンファイル、共通初期化パターンファイル、および、マッピング情報とを格納する。
【００３６】
マッピング手段３ｄは、起動手段１ｈによって実行可能ファイルが起動された場合には、初期化パターンファイルを変数値格納手段３ｅの特定の領域にマッピングするとともに、マッピング情報を参照して共通初期化パターンファイルを変数値格納手段３ｅの特定の領域（初期化パターンファイルがマッピングされる領域とは異なる領域）にマッピングする。
【００３７】
変数値格納手段３ｅは、実行可能ファイル格納手段３ｂに格納されているアプリケーションプログラムが起動された場合に、各種変数の値を格納する。
初期化手段３ｆは、通常変数およびリテイン変数を値０によって初期化する。
【００３８】
次に、以上の原理図の動作について説明する。
いま、アプリケーションプログラム入力手段１ａからアプリケーションプログラムが入力され、コンパイル手段１ｂによってコンパイルが開始されたとすると、初期化変数抽出手段１ｃは、コンパイル手段１ｂのコンパイル結果を参照して、アプリケーションプログラムから初期化変数（および初期化リテイン変数）を抽出する。
【００３９】
初期化変数抽出手段１ｃによって抽出された初期化変数は、初期化パターンファイル生成手段１ｄに供給され、そこで、初期化パターンファイルに変換される。即ち、初期化パターンファイル生成手段１ｄは、初期化変数および初期化リテイン変数の初期値のみからなる初期化パターンファイルを生成する。
【００４０】
また、共通初期化パターンファイル生成手段１ｅは、アプリケーションプログラムに繰り返し出現する共通な初期化パターンを抽出して共通初期化パターンファイルを生成する。なお、共通初期化パターンは、例えば、初期値のみが異なる関数やサブルーチンがアプリケーションプログラム中で繰り返し使用されている場合に出現する。
【００４１】
マッピング情報生成手段１ｆは、共通初期化パターンファイルをマッピング手段３ｄがマッピングする場合に必要な情報（マッピングするアドレス、マッピングの繰り返し回数等に関する情報）を生成して出力する。
【００４２】
送信手段１ｇは、コンパイル手段１ｂによって生成されたアプリケーションプログラムの実行可能ファイル、初期化パターンファイル生成手段１ｄによって生成された初期化パターンファイル、共通初期化パターンファイル生成手段１ｅによって生成された共通初期化パターンファイル、および、マッピング情報生成手段１ｆによって生成されたマッピング情報をプログラマブルコントローラ３に送信する。
【００４３】
プログラマブルコントローラ３の受信手段３ａは、プログラマブルコントローラ支援装置１から送信された以上の情報を受信する。
実行可能ファイル格納手段３ｂは、受信手段３ａが受信した情報から実行可能ファイルを抽出して格納する。
【００４４】
初期化パターンファイル格納手段３ｃは、受信手段３ａが受信した情報から初期化パターンファイル、共通初期化パターンファイル、および、マッピング情報を抽出して格納する。
【００４５】
このような状態において、プログラマブルコントローラ支援装置１の起動手段１ｈがアプリケーションプログラムを起動する制御信号を送信した場合には、実行可能ファイル格納手段３ｂに格納されているアプリケーションプログラムが起動されることになる。
【００４６】
そのとき、マッピング手段３ｄは、初期化パターンファイル格納手段３ｃに格納されている初期化パターンファイルを、変数値格納手段３ｅの特定の領域にマッピングするとともに、マッピング情報を参照して共通初期化パターンファイルを変数値格納手段３ｅの初期化パターンファイルがマッピングされる領域とは異なる特定の領域にマッピングする。
【００４７】
例えば、マッピング情報に共通初期化パターンファイルを５回繰り返してマッピングすることが指示されている場合には、マッピング手段３ｄは、共通初期化パターンファイルを特定のアドレスから５回連続してマッピングする。
【００４８】
初期化手段３ｆは、変数値格納手段３ｅの通常変数とリテイン変数が格納される領域に“０”を書き込み、これらの変数を値０に初期設定する。
そして、実行可能ファイル格納手段３ｂに格納されているアプリケーションプログラムが実際に動作を開始すると、変数値格納手段３ｅに格納されている変数値が適宜参照されながら、バス４を介して制御対象であるモジュール５−１〜５−ｎが制御されることになる。
【００４９】
以上に示した本発明によれば、初期化変数をアプリケーションプログラムから抽出して、それらを初期化する際に必要な初期化パターンファイルを生成し、変数値格納手段３ｅの特定の領域にマッピングするようにしたので、全ての初期値を送信する必要がなくなり、その結果、プログラマブルコントローラ支援装置１からプログラマブルコントローラ３に送信されるファイルの容量を縮小化することが可能となる。
【００５０】
また、アプリケーションプログラムから共通初期化パターンを抽出し、そのマッピング情報とともにプログラマブルコントローラ３に送信し、プログラマブルコントローラ３側では、マッピング情報を参照して共通初期化パターンを変数値格納手段３ｅにマッピングするようにしたので、アプリケーションプログラム中に同一の初期化パターンが繰り返し出現する場合には、共通パターンを１つだけ送信するようにすることができるので、前述の場合と同様にプログラマブルコントローラ支援装置１からプログラマブルコントローラ３に送信されるファイルの容量を縮小化することが可能となる。
【００５１】
次に、図２を参照して本発明の実施の形態について説明する。
この図に示すように、プログラマブルコントローラ支援装置２０は、ＣＰＵ２０ａ、ＲＯＭ２０ｂ、ＲＡＭ２０ｃ、インターフェース２０ｄ，２０ｅにより構成されており、入力装置１０より入力されたアプリケーションプログラムをコンパイルするとともに、アプリケーションプログラムに含まれている変数の初期化パターンファイルを生成してしてプログラマブルコントローラ３０に送信する。また、必要に応じて、プログラマブルコントローラ３０を制御し、アプリケーションプログラムを起動する。
【００５２】
プログラマブルコントローラ３０は、ＣＰＵ３０ａ、ＲＯＭ３０ｂ、ＲＡＭ３０ｃ、インターフェース３０ｄ，３０ｅにより構成されており、プログラマブルコントローラ支援装置２０より送信されたアプリケーションプログラムに応じて、モジュール５−１〜５−ｎを制御する。
【００５３】
ここで、入力装置１０は、例えば、キーボードやＨＤＤ装置などであり、アプリケーションプログラムをプログラマブルコントローラ支援装置２０に対して供給する。
【００５４】
プログラマブルコントローラ支援装置２０のＣＰＵ２０ａは、装置の各部を制御するとともに、所定の演算処理を行う。ＲＯＭ２０ｂは、ＣＰＵ２０ａにおいて実行される基本的なプログラム等を格納している。ＲＡＭ２０ｃは、ＣＰＵ２０ａが所定の処理を実行する場合に、演算途中のデータや実行途中のプログラム等を一時的に格納する。
【００５５】
インターフェース２０ｄは、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）やＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ  ）などであり、入力装置１０からアプリケーションプログラムを入力する。インターフェース２０ｄは、ＲＳ（Ｒｅｃｏｍｍｅｎｄｅｄ  Ｓｔａｎｄａｒｄ）２３２Ｃなどのシリアルバスであり、プログラマブルコントローラ支援装置２０において作成されたアプリケーションプログラムや初期化パターンファイルをプログラマブルコントローラ３０に伝送したり、プログラマブルコントローラ３０の動作状況をプログラマブルコントローラ支援装置２０に伝送する。
【００５６】
バス４は、プログラマブルコントローラ３０とモジュール５−１〜５−ｎを相互に接続し、これらの間でデータの授受を可能とする。
モジュール５−１〜５−ｎは、制御対象を直接制御する機器であり、例えば、ディジタル入力・出力、アナログ入力・出力、および、通信デバイスなどによって構成されている。
【００５７】
次に、図３を参照して以上の実施の形態の動作を説明する。
図３は、図２に示すプログラマブルコントローラ支援装置２０において実行される処理の一例を説明するフローチャートである。このフローチャートが開始されると、以下の処理が実行されることになる。
［Ｓ１］ＣＰＵ２０ａは、入力装置１０からアプリケーションプログラムを入力し、ＲＡＭ２０ｃの所定の領域に格納する。
［Ｓ２］ＣＰＵ２０ａは、入力装置１０から所定のコマンドが入力され、コンパイルの実行が指示されたか否かを判定し、コンパイルの実行が指示された場合にはステップＳ３に進み、それ以外の場合にはステップＳ２に戻る。
［Ｓ３］ＣＰＵ２０ａは、コンパイル処理を実行する。
【００５８】
なお、このコンパイル処理は、例えば、ＲＡＭ２０ｃに格納されているコンパイラプログラムに従って実行される。
［Ｓ４］ＣＰＵ２０ａは、アプリケーションプログラムに含まれている初期化変数を抽出する。
【００５９】
初期化変数を抽出する様子を図４に示す。この図に示すユーザプログラム４０は、図５に示すユーザプログラムとともに、アプリケーションプログラムの一部であり、プログラムが起動された場合には一度しか実行されない部分である。
【００６０】
この図において、「ＶＡＲ」および「ＥＮＤ＿ＶＡＲ」によって囲繞された部分のうち、初期値が代入されているもの（変数「ＢＢＢ」および変数「ＣＣＣ」）がステップＳ４において抽出される初期化変数である。
［Ｓ５］ＣＰＵ２０ａは、ステップＳ４において抽出した初期化変数に対応する初期化パターンファイルを生成する。
【００６１】
図４の例では、初期化パターンファイル４１が生成される。
［Ｓ６］ＣＰＵ２０ａは、アプリケーションプログラムに含まれている初期化リテイン変数を抽出する。
【００６２】
この図において、「ＶＡＲ  ＲＥＴＡＩＮ」および「ＥＮＤ＿ＶＡＲ」によって囲繞された部分のうち、初期値が代入されている変数（変数「ＤＤＤ」、変数「ＥＥＥ」、および、変数「ＦＦＦ」）がステップＳ６において抽出される初期化リテイン変数である。
【００６３】
ここで、「Ｆ＿１：  ｆｕｎｃＡ」は、インスタンス（初期化領域）名が「Ｆ＿１」であるファンクションブロック（詳細は後述する）を宣言している文である。
［Ｓ７］ＣＰＵ２０ａは、ステップＳ６において抽出した初期化リテイン変数に対応する初期化パターンファイルを生成する。
【００６４】
図４の例では、初期化パターンファイル４２が生成される。
［Ｓ８］ＣＰＵ２０ａは、ファンクションブロックから共通初期化パターンを抽出し、共通初期化パターンファイルを生成する。
【００６５】
ここで、ファンクションブロックとは、所定の入力が与えられた場合に、その入力に応じた所定の処理を実行し、得られた結果を出力する機能ブロックを意味している。これは、例えば、サブルーチンや関数と同等である。
【００６６】
この例では、図４に示すように、ユーザプログラム４０のメインブロックに、インスタンス名が「Ｆ＿１」〜「Ｆ＿３」である３つのファンクションブロック「ｆｕｎｃＡ」が宣言されており、それらのファンクションブロックは、第１６行目以降に示すように、入力パラメータが代入される変数ＡＡＡに対して初期値“１２３”が代入されて呼び出されている（例えば、Ｆ＿１（ＡＡＡ：＝１２３））。
【００６７】
なお、例えば、文「ＤＤＤ：＝Ｆ＿１．ＦＦＦ」は、インスタンス名Ｆ＿１のファンクションブロック「ｆｕｎｃＡ」の出力パラメータ「ＦＦＦ」の値を変数ＤＤＤに入力する処理である。
【００６８】
ところで、ファンクションブロック「ｆｕｎｃＡ」において使用されている変数は、インスタンス名に拘わらず共通であるので、アプリケーションプログラムが実行される場合には、これらのファンクションブロックに対応するユーザメモリ領域には共通の初期化パターンが３回マッピングされることになる。
【００６９】
このように、インスタンス名が異なる同一のファンクションブロックが存在する場合には、ステップＳ８の処理において、この共通初期化パターンが抽出されて共通初期化パターンファイル５１（図５参照）が生成される。
［Ｓ９］ＣＰＵ２０ａは、マッピング情報を生成する。
【００７０】
図５の例では、ファンクションブロック「ｆｕｎｃＡ」の共通初期化パターンは、アドレス「００００１２００」番地から、３回連続してマッピングされることが示されている。
［Ｓ１０］ＣＰＵ２０ａは、属性情報を生成する。
【００７１】
ここで、属性情報とは共通初期化パターンファイルに格納されている変数（ワード単位で格納されている）がリテイン変数であるか否かをビットの状態で示した情報である。ビットが“１”である場合には、対応する情報がリテイン変数の初期値であることを示している。
【００７２】
図５の例では、第５〜第６行目が“１”となっており、共通初期化パターンファイルの“０４５６”および“０５６７”がリテイン変数の初期値であることが分かる。なお、これらの変数は、ユーザプログラム５０の第１０〜第１１行目に記述された変数ＤＤＤおよび変数ＥＥＥに対応している。
［Ｓ１１］ＣＰＵ２０ａは、生成された実行可能ファイル、初期化パターンファイル、共通初期化パターンファイル、マッピング情報、および、属性情報をプログラマブルコントローラ３０に送信する。
【００７３】
以上の処理により、アプリケーションプログラムを実行する際に必要な実行可能ファイル、初期化パターンファイル、共通初期化パターンファイル、マッピング情報、および、属性情報が生成され、プログラマブルコントローラ３０に供給される。
【００７４】
次に、図６〜図８を参照して、プログラマブルコントローラ３０において実行される処理の一例について説明する。
図６は、プログラマブルコントローラ支援装置２０から送信されたアプリケーションプログラムを実行する場合にプログラマブルコントローラ３０において実行される処理の一例を説明するフローチャートである。このフローチャートが開始されると、以下の処理が実行される。
［Ｓ２１］ＣＰＵ３０ａは、プログラマブルコントローラ支援装置２０から、アプリケーションプログラムの起動が要請されたか否かを判定し、起動が要請された場合にはステップＳ２２に進み、その他の場合にはステップＳ２１に戻る。
［Ｓ２２］ＣＰＵ３０ａは、ウォーム起動が要請されたか否かを判定し、ウォーム起動が要請された場合にはステップＳ２３に進み、それ以外の場合（コールド起動が要請された場合）にはステップＳ２４に進む。
［Ｓ２３］ＣＰＵ３０ａは、ウォーム起動処理を実行する。
【００７５】
なお、この処理の詳細については図７を参照して後述する。
［Ｓ２４］ＣＰＵ３０ａは、コールド起動処理を実行する。
なお、この処理の詳細については図８を参照して後述する。
【００７６】
図７は、図６に示すウォーム起動処理の詳細を説明するフローチャートである。このフローチャートが開始されると、以下の処理が実行される。
［Ｓ３１］ＣＰＵ３０ａは、通常メモリ領域を値０によって初期化する。
【００７７】
なお、通常メモリ領域とは通常変数が格納されるＲＡＭ３０ｃ上の領域である。
即ち、ＲＡＭ３０ｃのユーザメモリ領域（変数の値が格納される領域）は、図９に示すように、通常変数の値が格納される通常メモリ領域６１、初期化変数の値が格納される初期化メモリ領域６２、リテイン変数の値が格納されるリテインメモリ領域６３、初期化リテイン変数の値が格納される初期化リテインメモリ領域６４、および、ファンクションブロックの変数の値が格納されるフリーメモリ領域６５に分割されている。
［Ｓ３２］ＣＰＵ３０ａは、初期化パターンファイル４１を初期化メモリ領域６２にマッピングする。
【００７８】
この様子を図１０に示す。この例に示すように、初期化変数の初期化パターンファイル４１は、ユーザメモリ領域の初期化メモリ領域（初期化変数の値が格納される領域）６２にマッピングされる。
［Ｓ３３］ＣＰＵ３０ａは、マッピング情報５２と属性情報５３とを参照して、共通初期化パターンファイル５１をフリーメモリ領域６５にマッピングする。
【００７９】
即ち、図１０に示すように、ＣＰＵ３０ａは、マッピング情報５２を参照して、属性情報が“０”とされている変数（通常変数および初期化変数）に対応する領域に対して、共通初期化パターンファイルの初期値を書き込み、初期化を行う。
［Ｓ３４］ＣＰＵ３０ａは、ＲＡＭ３０ｃに格納されているアプリケーションプログラムを実行し、図６の処理に復帰（リターン）する。
【００８０】
以上の処理により、リテイン変数および初期化リテイン変数の前回値（前回起動されたときの変数の最終値）を保存した状態で、アプリケーションプログラムを再起動させることができる。
【００８１】
次に、図８を参照して、図６に示すコールド起動処理の詳細な処理について説明する。図８に示すフローチャートが開始されると、以下の処理が実行される。
［Ｓ４１］ＣＰＵ３０ａは、通常メモリ領域６１およびリテインメモリ領域６３を値０によって初期化する。
［Ｓ４２］ＣＰＵ３０ａは、初期化パターンファイル４１を初期化メモリ領域６２にマッピングする。
【００８２】
即ち、図１１に示すように、ＣＰＵ３０ａは、初期化変数の初期化パターンファイル４１を、ユーザメモリ領域の初期化メモリ領域６２にマッピングする。
［Ｓ４３］ＣＰＵ３０ａは、初期化パターンファイル４２を初期化リテインメモリ領域６４にマッピングする。
【００８３】
即ち、図１１に示すように、ＣＰＵ３０ａは、初期化リテイン変数の初期化パターンファイル４２を、ユーザメモリ領域の初期化メモリ領域６４にマッピングする。
［Ｓ４４］ＣＰＵ３０ａは、マッピング情報５２を参照して、共通初期化パターンファイル５１を、フリーメモリ領域６５にマッピングする。
【００８４】
即ち、図１１に示すように、ＣＰＵ３０ａは、ファンクションブロックの全ての変数の初期値が格納された共通初期化パターンファイル５１を、マッピング情報５２を参照して、ユーザメモリ領域のフリーメモリ領域６５にマッピングする。
［Ｓ４５］ＣＰＵ３０ａは、ＲＡＭ３０ｃに格納されているアプリケーションプログラムを実行し、図６の処理に復帰（リターン）する。
【００８５】
以上の処理により、全ての変数を初期化した状態で、アプリケーションプログラムを起動させることができる。
以上の実施の形態によれば、プログラマブルコントローラ支援装置２０においてアプリケーションプログラムをコンパイルする際に、初期化変数および初期化リテイン変数の初期化パターンファイルを生成し、プログラマブルコントローラ３０ではこれらの初期化パターンファイルによって変数を初期化するとともに、その他の変数は、一括して、値０に初期化するようにしたので、プログラマブルコントローラ支援装置２０からプログラマブルコントローラ３０に送信される初期化パターンファイルおよび属性情報の容量を削減することが可能となる。
【００８６】
また、本実施の形態によれば、アプリケーションプログラム中に、異なるインスタンス名を有するファンクションブロックが複数存在している場合には、共通初期化パターンファイル５１を生成するとともに、マッピング情報５２を生成し、プログラマブルコントローラ３０では、マッピング情報５２を参照して、共通初期化パターンファイル５１をフリーメモリ領域６５に展開するようにしたので、プログラマブルコントローラ支援装置２０からプログラマブルコントローラ３０に送信される初期化パターンファイルおよび属性情報の容量を削減することが可能となる。
【００８７】
更に、本実施の形態によれば、ウォーム起動が実行された場合には、リテイン変数および初期化リテイン変数を初期化しないようにしたので、目的に応じて、アプリケーションプログラムの起動形態を変更することができる。
【００８８】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、プログラマブルコントローラ支援装置が有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述されており、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。
【００８９】
市場に流通させる場合には、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）  やフロッピーディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行するようにすればよい。
【００９０】
【発明の効果】
以上説明したように本発明では、プログラマブルコントローラ支援装置においてアプリケーションプログラムをコンパイルする際に、予め設定された初期値によって初期化される変数の初期化パターンファイルを生成し、プログラマブルコントローラではこれらの初期化パターンファイルによって変数を初期化するとともに、その他の変数は、一括して、値０に初期化するようにしたので、プログラマブルコントローラ支援装置からプログラマブルコントローラに送信される初期化パターンファイルおよび属性情報の容量を削減することが可能となる。
【００９１】
また、本実施の形態によれば、アプリケーションプログラム中に、共通の初期化パターンを有する宣言文が繰り返し出現する場合には、共通初期化パターンファイルを生成するとともに、マッピング情報を生成し、プログラマブルコントローラでは、マッピング情報を参照して、共通初期化パターンファイルをマッピングするようにしたので、プログラマブルコントローラ支援装置からプログラマブルコントローラに送信される初期化パターンファイルおよび属性情報の容量を削減することが可能となる。
【００９２】
更に、本実施の形態によれば、ウォーム起動が実行された場合には、リテイン変数を初期化しないようにしたので、目的に応じて、アプリケーションプログラムの起動形態を変更することができる。
【図面の簡単な説明】
【図１】本発明の原理を説明する原理図である。
【図２】本発明の実施の形態の構成例を示すブロック図である。
【図３】図２に示すプログラマブルコントローラ支援装置において実行される処理の一例を説明するフローチャートである。
【図４】図３の処理により生成される初期化変数の初期化パターンファイルと、初期化リテイン変数の初期化パターンファイルの一例を示す図である。
【図５】図３の処理により生成される共通初期化パターンファイル、マッピング情報、および、属性情報の一例を示す図である。
【図６】図２に示すプログラマブルコントローラにおいて実行される処理の一例を説明するフローチャートである。
【図７】図６に示すウォーム起動処理の詳細を説明するフローチャートである。
【図８】図６に示すコールド起動処理の詳細を説明するフローチャートである。
【図９】図２に示すＲＡＭ上のユーザメモリ領域の分割の態様を示す図である。
【図１０】図７に示す処理が実行された場合における、ユーザメモリ領域の初期化の一例を示す図である。
【図１１】図８に示す処理が実行された場合における、ユーザメモリ領域の初期化の一例を示す図である。
【図１２】従来における初期化パターンファイルと属性情報の生成方法の一例を示す図である。
【図１３】従来におけるコールド起動の際に、初期化パターンファイルがユーザメモリにマッピングされる様子を示す図である。
【図１４】従来におけるウォーム起動の際に、初期化パターンファイルがユーザメモリにマッピングされる様子を示す図である。
【符号の説明】
１  プログラマブルコントローラ支援装置
１ａ  アプリケーションプログラム入力手段
１ｂ  コンパイル手段
１ｃ  初期化変数抽出手段
１ｄ  初期化パターンファイル生成手段
１ｅ  共通初期化パターンファイル生成手段
１ｆ  マッピング情報生成手段
１ｇ  送信手段
１ｈ  起動手段
２  バス
３  プログラマブルコントローラ
３ａ  受信手段
３ｂ  実行可能ファイル格納手段
３ｃ  初期化パターンファイル格納手段
３ｄ  マッピング手段
３ｅ  変数値格納手段
３ｆ  初期化手段
４  バス
５−１〜５−ｎ  モジュール
【図１】
0003629947.tif 000002
【図２】
0003629947.tif 000003
【図３】
0003629947.tif 000004
【図４】
0003629947.tif 000005
【図５】
0003629947.tif 000006
【図６】
0003629947.tif 000007
【図７】
0003629947.tif 000008
【図８】
0003629947.tif 000009
【図９】
0003629947.tif 000010
【図１０】
0003629947.tif 000011
【図１１】
0003629947.tif 000012
【図１２】
0003629947.tif 000013
【図１３】
0003629947.tif 000014
【図１４】
0003629947.tif 000015