 ライブラリ管理ユーティリティの使い方

 ISaGRAFライブラリ管理ユーティリティは各種タイプのライブラリ群を管理しています。Ｉ／Ｏボードドライバからユーザ定義ＦＢまでをカバーしています。ライブラリ管理を使ってユーザが作成するドライバ、ファンクションなどのオブジェクトのパラメータ等を定義して登録しておくことができます

ライブラリエレメントの管理：「ファイル」メニューコマンド

Ｉ／Ｏ 構成ライブラリ

Ｉ／Ｏ 装置機器ライブラリ

Ｉ／Ｏボードパラメータ

ＩＥＣ言語によるファンクション、ファンクションブロック

Ｃ言語ファンクションとファンクションブロック

Ｃ言語数値変換関数

ライブラリエレメントのアーカイブ

ISaGRAFライブラリ管理の左側のウィンドウには選択されたライブラリのエレメントリストを表示し、右側のウィンドウには選択されたエレメントの技術メモを表示します。ライブラリ管理のメニューには選択されたライブラリのエレメントの作成、定義、変更のためのコマンドを含んでいます。 ISaGRAFライブラリの選択は「ファイル」－「他のライブラリ」コマンド又はツールバーの左側のコンボボックスから行うことができます。


ライブラリエレメントの管理：「ファイル」メニューコマンド

「ファイル」メニューにはオブジェクトとしてのライブラリを管理するコマンドが含まれています。

新規エレメントの作成

既存のエレメントの管理

パスワードプロテクションの設定

ファンクション、ファンクションブロックのベリファイ（コンパイル）

技術メモ

ライブラリエレメントのパラメータ

ライブラリエレメントのソースコード


新規エレメントの作成

「ファイル」－「新規作成」コマンドにより、選択中のライブラリに新しいエレメントを追加します。以下のルールでエレメント名を入力します。

•	最大８半角文字

•	最初の文字は英文字（ａ－ｚ）

•	以降の文字は英文字、数字、＿　のいずれか

•	ライブラリエレメント名には大文字小文字の区別はありません

テキストによるエレメントに対するコメント（技術メモ）が入力できます。以下の内容は必ず技術メモに含める必要があります。

•	Ｉ／Ｏ構成の定義、

•	Ｉ／Ｏボードに対するパラメータ、

•	関数やファンクションブロックに対するユーザインタフェース

Ｃ変換関数、Ｃファンクション、Ｃファンクションブロックが定義されるとソースコードのテンプレートが自動で作られます。


既存のエレメントの管理

「ファイル」－「名前の変更」コマンドにより、エレメントの名前を変更できます。「コピー」コマンドにより、同一ライブラリないでのコピーエレメントを作成します。既に同じ名前のエレメントが存在している場合は上書きされます。「削除」コマンドにより、エレメントが削除されます。「名前の変更」、「コピー」、「削除」コマンドによりエレメントの以下のコンポーネントが対象になります。

•	  技術メモ

•	  Ｉ／Ｏ構成の定義

•	  Ｉ／Ｏボード、構成機器のパラメータ

•	  ファンクション、ファンクションブロックのインタフェース定義

•	  ＩＥＣ言語で書かれたファンクション、ファンクションブロックのソースコード

•	  Ｃ変換関数、Ｃファンクション、Ｃファンクションブロックのソースコードtechnical note

注意: 「名前の変更」、「コピー」コマンドでは、エレメントがＣ変換関数、Ｃ関数、Ｃファンクションブロックの技術メモ、ソースコード内部の名前は自動的には更新されません。

注意: 「名前の変更」、「コピー」コマンドでは、ＩＥＣ言語で記述されたファンクションの出力パラメータ（戻り値）は自動的には更新されません。


パスワードプロテクションの設定

「ファイル」－「パスワードセット」コマンドにより、ライブラリ内の選択されたエレメントに対して各種レベルのパスワードプロテクションが行えます。パスワードは選択されているエレメントのみに対して有効で、これは他のエレメントや他のライブラリに対しては無効となります。パスワードプロテクションに関しては別の章を参照願います。


ファンクション、ファンクションブロックのベリファイ（コンパイル）

ライブラリでＩＥＣ言語によるファンクション、ファンクションブロックが選択されている場合、「ファイル」－「ベリファイ（コンパイル）」コマンドにより、選択された関数エレメントの文法チェックを行い、対応したオブジェクトコードを生成します。これらは、ISaGRAFプロジェクト内で使われる前にエラーなしでコンパイルされている必要があります。ＩＥＣ言語によるファンクション、ファンクションブロック以外のライブラリが選択されいる場合はこのコマンドは使えません。


技術メモ

「編集」－「技術メモ」コマンドにより、選択されているエレメントに対する技術メモの入力、修正がISaGRAFテキストエディタを使って行えます。技術メモはオンラインヘルプ的にISaGRAFプロジェクトのプログラム作成時にエディタから“情報”として呼び出すことができます。技術メモには、エレメントの主な目的、プログラム入出力パラメータインタフェース、制限、その他の必要な情報を含んでいる必要があります。「ツール」－「標準技術メモフォーマット」コマンドにより、選択中ライブラリの全エレメントの作成に対して有効な標準技術メモフォーマットを作成できます。新規のエレメントを作成する場合にここでのフォーマットが技術メモのテンプレートとして使われます。ユーザオリジナルの技術メモフォーマットが作成できます。


ライブラリエレメントのパラメータ

  「編集」－「パラメータ」コマンドにより、ライブラリエレメントのパラメータを修正できます。ライブラリエレメントのパラメータはISaGRAFプログラムでのエレメントのインタフェース部分を定義しています。ライブラリ毎にパラメータの持つ意味が異なります。

Ｉ／Ｏ構成のパラメータ

Ｉ／Ｏボードの集合体の構成を定義していて、Ｉ／Ｏチャネルにはディフォルト名が付いています。

Ｉ／Ｏボード、Ｉ／Ｏ装置機器のパラメータ

ボードの物理的、論理的な構成を定義しています。

ファンクション、ファンクションブロックのパラメータ

エレメントのＳＴ言語で記述した場合の引数に相当するインタフェース部を定義します。

変換関数のパラメータ

標準の設定済みのインタフェースを使うため存在しません。


ライブラリエレメントのソースコード

ライブラリ管理ユーティリティにより、変換関数、ファンクション、ファンクションブロックのライブラリエレメントのソースコードを管理できます。

ファンクションのソースコードはIEC言語（ＬＤ、ＦＢＤ、ＳＴ、ＩＬ）で書かれています。

Ｃ言語ファンクション、Ｃ言語ファンクションブロック、Ｃ言語変換関数のソースコードは２つのファイルに分かれています。１つ目はソースヘッダーでエレメントのパラメータ定義からくるインタフェース部分を定義しています。２つ目は本来のソースコードでエレメントの処理の実現部分を定義しています。

Ｃファンクション、Ｃファンクションブロックのソースコードの場合、新しいライブラリエレメントが作成されるとライブラリ管理ユーティリティはソースコードのテンプレートファイルを自動生成します。パラメータ定義に基づいたソースヘッダーも自動生成します。ISaGRAFテキストエディタでソースコードを完成させることができます。Ｃ言語ソースファイルの定義に関しては、ターゲットマニュアル（Ｃプログラミングテクニック）を参照願います。

ライブラリ管理ユーティリティはＩ／Ｏボードに関するソースコードの管理を含んでいません。


Ｉ／Ｏ 構成ライブラリ

 Ｉ／Ｏ構成ライブラリにより設定済みのＩ／Ｏ構成を編集、作成することができます。　ここでは、以下の内容を定義します。

•	Ｉ／Ｏボードの取り込み

•	Ｉ／Ｏボードパラメータ用のディフォルト値

•	Ｉ／Ｏチャネル用のディフォルト名

新規のISaGRAFプロジェクトがライブラリのＩ／Ｏ構成を選択した場合、Ｉ／Ｏボードチャネルに使用されているＩ／Ｏ変数名の辞書登録、変数のＩ／Ｏ接続が自動的に行われます。

 Ｉ／Ｏ構成の定義

Ｉ／Ｏ構成の定義はISaGRAFのＩ／Ｏ接続エディタ（詳細はＩ／Ｏ接続エディタの使用方法参照）で行ないます。Ｉ／Ｏ構成に新しいＩ／Ｏボードを挿入する際にボードの全チャネルにディフォルト変数名が割り当てられます。（プロジェクト作成時のＩ／Ｏ接続エディタにおいては各チャネルに手動で変数を割り当てる必要があります。）標準のディフォルト変数名のフォーマットは以下のようになります。

<方向><タイプ><スロット番号>_<チャネル番号>

＜方向＞

最初の文字はＩ／Ｏチャネルの方向を示します。

"I"	入力チャネル

"O"	出力チャネル

＜タイプ＞

２番目の文字はＩ／Ｏチャネルのタイプを示します。

"X"	ブール型

"D"	整数型

"M"	可変長文字列型

例として以下に標準的なＩ／Ｏ変数名を示します。

IX0_7	ブール型入力でスロット番号０、チャネル番号７

QD2_4	整数型出力でスロット番号２、チャネル番号４

「編集」－「ボードパラメータ／チャネルのセット」コマンド（あるいはチャネル部分のダブルクリック）により、Ｉ／Ｏチャネルに割り当てられているディフォルト変数名を変更できます。


Ｉ／Ｏ 装置機器ライブラリ

 Ｉ／Ｏ装置機器とは異なったタイプや方向を持ったＩ／Ｏボードが組み合わされたＩ／Ｏデバイスを指します。個々のボードは同一タイプ（ブール型、整数型、可変長文字列型）でかつ同一方向（入力、出力）を持ちます。　Ｉ／Ｏ装置機器は複数のＩ／Ｏボードを持ちますが、ラック内の１つのスロットしか占有しない装置です。

 Ｉ／Ｏ装置機器の定義

Ｉ／Ｏ装置機器の定義をするにはまず、複数のＩ／Ｏボードのリストを定義する必要があります。それぞれのＩ／Ｏボードに対してＩ／Ｏボードパラメータダイアログボックスを使って詳細なパラメータを入力する必要があります。

Ｉ／Ｏボードのリストを作成する場合はＩ／Ｏ機器ダイアログボックスで、“追記”ボタンによりＩ／Ｏボードリストの最後に新しいボードを追加することができます。“挿入”ボタンにより選択されているボードの前に新しいボードを挿入します。“削除”は選択されているボードの削除を、“名前の変更”は選択されているボードの名前の変更を行います。“パラメータ”ボタンにより、選択されたボードのパラメータ変更を行います。パラメータ設定は以下の項を参照願います。Ｉ／Ｏ装置機器は最大１６のＩ／Ｏボードを持つことができます。Ｉ／Ｏ装置機器内のそれぞれのボードの名前は最大で半角８文字です。


Ｉ／Ｏボードライブラリ

 Ｉ／Ｏボードライブラリはアプリケーションプログラムの変数とターゲットハードウェア（Ｉ／Ｏ）との間のインタフェースを行う部分です。プロジェクトアプリケーションを作成時に全入出力変数はＩ／Ｏボードのチャネルに割り当てられます。Ｉ／Ｏボードは名前とボードのサプライヤを示すＯＥＭキーコードを持っています。この他、Ｉ／Ｏボードのチャネル数、方向、タイプが記述されています。

Ｉ／Ｏボードパラメータ

ＯＥＭパラメータ


Ｉ／Ｏボードパラメータ

  Ｉ／Ｏボードパラメータには２つの部分があります。共通的な部分とボード固有な部分です。共通的な部分に関してはどのＩ／Ｏライブラリボードに対しても必要であり、Ｉ／Ｏボードパラメータ定義ボックスの上部で入力されます。ボード固有な部分はハードウェアサプライヤによって提供されるものです。

“ＯＥＭキーコード”はハードウェアサプライヤを定義する番号です。同じサプライヤは同一のＯＥＭキーコードを持つ必要があります。ＯＥＭキーコードは１６ビット unsigned word　で、１６進数で表現される必要があります。ＣＪインターナショナル社で予約されている番号は１です。

“チャネル数”はボードで扱えるチャネル数です。　“タイプ”はチャネルに接続される変数のタイプです。“方向”は接続される変数が入力か出力かを示します。

注意: １枚のボードで異なったタイプ、方向をもつチャネルを持つことはできません。


ＯＥＭパラメータ

 Ｉ／Ｏボードパラメータ定義ボックスの下部のＯＥＭパラメータはボードのサプライヤにより定義されるものです。ボード固有のパラメータとなります。１枚のボードあたり最大１６個のＯＥＭパラメータ（割り込み番号、Ｉ／Ｏアドレス、メモリアドレス、．．など）がセットできます。ボードによってはＯＥＭパラメータが不要な場合もあります。各々のパラメータのフォーマットや識別子はハードウェアサプライヤが定義する必要があります。

左側のグループボックスにはＯＥＭパラメータのリストが表示されます。個々のパラメータはパラメータ名と論理番号（０－１５）を持ちます。右側には選択されているパラメータの記述が表示されます。“消去”ボタンにより選択中のＯＥＭパラメータを削除できます。

定義されたＯＥＭパラメータへのデータ入力は、入出力変数とＩ／Ｏを接続するためのＩ／Ｏ接続エディタで行われます。　パラメータ名は以下のルールに従う必要があります。

 パラメータ名の最大長１６半角文字

 最初の文字は英文字（ａ－ｚ）

 以降の文字は英文字、数字、＿　のいずれか

ＯＥＭパラメータの内部フォーマットを指定します。ＯＥＭパラメータの内部フォーマットとＩ／Ｏ接続エディタを使用中にＯＥＭパラメータへのデータ入力の際の入力フォーマットは異なります。

以下に内部フォーマット例を示します。

word	unsigned 16 bit word

long	unsigned 32 bit word

word hexa	unsigned 16 bit word

long hexa	unsigned 32 bit word

ブール型	unsigned 16 bit word (最下位ビットのみが使われます）

文字	unsigned 16 bit word (最下位バイトのみが使われます）

可変長文字列	１６バイトの文字列配列でＮｕｌｌで切れている

浮動小数	single precision 32 bit floating value

Ｉ／Ｏ接続エディタ使用時の入力フォーマットは以下のようになります。

word	unsigned decimal word

long	decimal long word

word hexa	unsigned hexadecimal word

long hexa	unsigned hexadecimal long word

ブール型	"true" or "false"

文字	single character

可変長文字列	ascii string (15 characters max)

浮動小数	single precision floating value

“ユーザ定義”チェックボックスにより、ユーザが定義するパラメータなのか、それとも設定済みなのかを決めることができます。　チェックボックスがチェックされるとＩ／Ｏ接続エディタを使用時にユーザが入力する必要があります。

“リードオンリー”チェックボックスにより、ユーザはＩ／Ｏ接続エディタでパラメータを見れますが、変更はできません。

“隠れた”チェックボックスにより、ユーザはＩ／Ｏ接続エディタでパラメータを見ることができません。

“ディフォルト”値はＩ／Ｏ接続エディタの入力フィールドに書かれる初期値を示します。チェックボックスがチェックされていない場合はパラメータ値は定数（ディフォルト値として入力された値）であり、かつＩ／Ｏ接続エディタに表示されません。

ディフォルト値として入力される値のタイプはフォーマットで選択したタイプと一致している必要があります。


ＩＥＣ言語によるファンクション、ファンクションブロック

ISaGRAFはＩＥＣ言語で書かれたファンクションやファンクションブロックのライブラリを持つことができます。扱える言語はＦＢＤ、ＬＤ（ラダーダイアグラム）、ＳＴ（構造化テキスト）、ＩＬ（命令リスト）のいずれかです。　ＦＢＤとＬＤは混在して扱うことができます。　ＳＦＣ言語は関数には扱うことができません。なお、扱う言語はファンクションやファンクションブロックを作成時に選択しますが、途中で変更することはできません。

ファンクション、ファンクションブロックのコンパイル

ソースコードの入力

ローカル変数の辞書

インターフェースの定義


ファンクション、ファンクションブロックのコンパイル

ＩＥＣ言語で書かれたファンクション、ファンクションブロックのライブラリはISaGRAFプロジェクトの中で使われる前にコンパイル（ベリファイ）されていなければなりません。登録された後はＬＤ／ＦＢＤエディタでのファンクションを選択するボックス内に含まれます。

ファンクションからライブラリ内の別のファンクションを呼び出すことはできますが、自分自身を呼び出すようなリカーシブ性はサポートされていません。

また、ＩＥＣ言語で記述されたファンクションブロックは別のファンクションブロック（ＣあるいはＩＥＣ言語）から読み出せません。即ち、ファンクションブロックの階層は２つとなります。


ソースコードの入力

ＩＥＣ言語のファンクションやファンクションブロックのソースコード、即ち、プログラムは言語にあわせたエディタで入力します。コード生成は直接エディタから呼び出してライブラリファンクションやファンクションブロックのコンパイルを行うことができます。


ローカル変数の辞書

ライブラリファンクション、ファンクションライブラリはローカル変数、ローカル定義ワードを持つことができます。変数の宣言のためにはエディタウィンドウから「ファイル」－「辞書」メニューを使う必要があります。

ライブラリファンクション、ファンクションブロックはグローバル変数やグローバルファンクションブロックインスタンスにはアクセスできません。また、ファンクション内で使われるローカル変数はファンクションのボディーで初期化される必要があります。

ＩＥＣ言語で記述されたファンクションブロックのローカル変数は、プロジェクト内でブロックが使われる毎に、インスタンスとしてコピーされます。ブロックが次に読み出されるまでコピーされた値をHiddenインスタンスとして保持しています。


インタフェースの定義

新しいライブラリファンクション、ファンクションブロックが作成されると、呼び出しインタフェース、即ち、入出力パラメータを定義する必要があります。入力・出力パラメータの名前とタイプを定義するためにパラメータ定義ボックスが使われます。「編集」メニューの「パラメータ」コマンドにより、合計最大３２の入力パラメータと出力パラメータを定義します。（ファンクションでは１つの出力パラメータのみ）

パラメータダイアログボックスの上部のウィンドウには関数のパラメータ（入力、出力パラメータ）が示されています。　下部のウィンドウには現在選択されているパラメータに関する詳細情報を示しています。

•	  パラメータ名

•	  パラメータの方向（入力、出力）

•	  パラメータタイプ

次のいかなるタイプもパラメータとして扱うことができます。

•	  ブール型

•	  整数型

•	  実数型

•	  タイマ型

•	  可変長文字列型

出力パラメータはパラメータリストの最後である必要があります。パラメータ名には以下のルールがあります。

•	 パラメータ名最大長は半角１６文字

•	 最初の文字は英文字（ａ－ｚ）

•	 以降の文字は英文字、数字、＿　のいずれか

•	 大文字、小文字の区別なし

一つのファンクションやファンクションブロックで同一のパラメータ名は許されません。同一のパラメータ名は異なるファンクションでは扱うことができます。出力パラメータ名と、ファンクション名とは同一である必要があります。

“挿入”ボタンは新しいパラメータを選択中のパラメータの前に挿入します。“削除”ボタンは選択中のパラメータを削除します。　“アレンジ”ボタンは自動でパラメータの順番を並び替えて出力パラメータが最後にくるようにします。“ＯＫ”ボタンはパラメータの定義を保管してダイアログボックスを終了します。“キャンセル”ボタンはパラメータ定義の変更を保管せずにダイアログボックスを閉じます。


Ｃ言語ファンクションとファンクションブロック

ＩＥＣ言語によるファンクションインタフェースの定義と同様にＣ言語で書かれたファンクション、ファンクションブロックはアプリケーションのＦＢＤやＳＴ言語から呼び出されます。

ISaGRAFのアプリケーションはこれらの関数が呼び出されると関数の処理が終わるまでは待機状態となります。処理が終了すれば再びISaGRAFのアプリケーションが実行されます。

  新しいライブラリファンクション、ファンクションブロックが作成されると、呼び出しインタフェース、即ち、入出力パラメータを定義する必要があります。入力・出力パラメータの名前とタイプを定義するためにパラメータ定義ボックスが使われます。「編集」－「パラメータ」コマンドにより、合計最大３２の入力パラメータと出力パラメータを定義します。（ファンクションの場合は、出力パラメータは１つのみ）

パラメータ定義はＩＥＣ言語によるファンクション、ファンクションブロックと同様に行いますが、以下にＣ言語による場合の相違部分を記述します。

Ｃ言語によるファンクションやファンクションブロックの場合パラメータのタイプに関してISaGRAFでのタイプとＣ言語でのタイプの対応も以下に示します。

ブール型	unsigned long	unsigned 32 bit word: 1=true / 0=false
整数型	long	signed integer 32 bit word
実数型	float	単精度浮動小数値
タイマ型	unsigned long	unsigned integer 32 bit word(単位は１ｍｓ)
可変長文字列型	char *	character string.

メッセージタイプの場合、Ｎｕｌｌキャラクタを含めることはできません。ＣコードではＮｕｌｌキャラクタはメッセージ（文字列）の終了を意味します。

Ｃ言語ファンクション、ファンクションブロックの詳細はターゲットユーザガイドの「Ｃ言語プログラミング」を参照願います。


Ｃ言語数値変換関数

アナログ入出力変数に付加される数値変換関数はISaGRAFのＩ／Ｏドライバが呼び出されます。

数値変換関数を入出力変数に割り当てるためには、変数辞書の定義を行います。

変換関数では電気的な値（外部）をアプリケーション値（内部）へ変換します。即ち、アナログ入力変換及びアナログ出力変換の２つに分けることができます。

変換関数では整数アナログ、実数アナログ値のどちらも扱えます。内部的には関数は浮動小数点処理をしています。どの変換関数でも関数のインタフェース部分は同じです。変換関数のＣ言語によるインタフェース部分はGRCN0DEF.Hヘッダーファイル内に記述されています。

マニュアルの「Ｃ言語プログラミング」にはＣ言語関数、ファンクションブロックのISaGRAF上での管理、組み込みに関して解説されています。


ライブラリエレメントのアーカイブ

「ツール－アーカイブ」コマンドによって、ライブラリエレメントのセーブ／復元を行う為に、ISaGRAFのアーカイブマネージャを起動する事ができます。まず、初めにライブラリを選択してから、アーカイブコマンドを使用して下さい。この時、選択されたライブラリのリストが表示されます。