 辞書エディタの使い方

辞書エディタにより内部変数、Ｉ／Ｏ変数、ファンクションブロックのインスタンス更にアプリケーションでの定義ワードを宣言、編集することができます。

基本

辞書エディタメインウィンドウ

変数の管理

変数、定義ワード、FBインスタンスの記述

クイック変数登録

SCADA Modbus アドレスマップ

他のアプリケーションとのデータ交換

その他のツール

プロテクションの設定


基本

　変数、ファンクションブロックインスタンス、定義ワードはソースコードなどで使われる前に宣言（登録）されていなければなりません。ＦＢＤ、Ｑｕｉｃｋ　ＬＤダイアグラムの中で使われるＦＢは特に宣言することなく使用できます。 （プログラムエディタが自動的にインスタンスを宣言します。）

変数

定義ワード

ファンクションブロックのインスタンス

ネットワークアドレス


変数

変数には適用範囲とタイプが存在します。

変数の範囲は２つあります。

 グローバル	プロジェクト内のどのプログラムからも使える

 ローカル	一つのプログラムからのみ使える

変数のタイプには以下のものがあります。

 ブール型	TRUE/FALSE値を持つブール値

 整数／実数型	整数、実数値

 タイマ型	タイマ値

 可変長文字列型	可変長文字列

変数は名前、コメント、属性、ネットワークアドレスなどのフィールドがあります。属性には以下の３種類が存在します。

内部	メモリ内部変数

入力	入力デバイスにリンクされたＩ／Ｏ変数

出力	出力デバイスにリンクされたＩ／Ｏ変数

定数	リードオンリーの内部変数（初期値付き）

注意： タイマーは常に内部変数であり、入力、出力変数は常にグローバル変数となります。


定義ワード

定義ワードは対象範囲によって分類されています。基本の範囲は以下の３つです。

 共通	どのプロジェクトからでも扱えます

 グローバル	プロジェクト内のどのプログラムからでも扱えます

 ローカル	一つのプログラムからのみ扱えます

定義ワードは名前、コメントによって定義されます。


ファンクションブロックのインスタンス

ＳＴとＩＬプログラムの中でファンクションブロックを扱う場合は、ファンクションブロックのインスタンスを必ず辞書の中で宣言しておかなければなりません。これは、ファンクションブロックは内部のスタティックデータ（"hidden"データ）を持っているために、個々のファンクションブロックでこのスタティックデータが異なるからです。ファンクションブロックのインスタンスはそれぞれ宣言される必要があります。以下にライブラリに登録されている"R_TRIG" (立ち上がり検出)が別の変数として使われている例を示します。　各々のファンクションブロックのインスタンスはユニークな名前で区別される必要があります。ファンクションブロックはライブラリユーティリティで入出力パラメータを宣言しておく必要があります。

ライブラリでの定義：

ＦＢ名:	R_TRIG

パラメータ:	Input=CLK

Output=Q

ファンクションブロックのインスタンスの名前は辞書エディタで定義されます。

辞書でのインスタンスの宣言：

インスタンス名:	TRIG_B1	ＦＢ名:	R_TRIG

インスタンス名:	TRIG_B2	ＦＢ名:	R_TRIG

インスタンスはＳＴプログラムの中で次のように使われます。

ＳＴ言語での使用：

TRIG_B1 (b1);

edge_b1 := TRIG_B1.Q;	(* b1 変数立ち上がり検出　*)

TRIG_B2 (b2);

edge_b2 := TRIG_B2.Q;	(* b2 変数立ち上がり検出　*)

ファンクションブロックインスタンスはグローバル又はローカルとして定義されます。　ＦＢＤ言語においてファンクションブロックを使用する場合は別途宣言する必要はありません。なぜなら、ISaGRAFのＦＢＤエディタでは内部で自動的にインスタンスを宣言しているからです。

ＦＢＤ言語での使用例：

(* ファンクションブロック名は常にライブラリの名称と同じになります。ＦＢＤとQuick LDエディタではファンクションブロックがダイアグラムに挿入されるたびにインスタンスを自動的に宣言しています。　*)

ＦＢＤエディタで使用されるファンクションブロックは常にローカルの定義になります。


ネットワークアドレス

ネットワークアドレスはオプションでつけることが出来ます。変数のネットワークアドレスに０以外の数字を割り当てると、ISaGRAF稼動中に外部、例えばＭＯＤＢＵＳプロトコルのＳＣＡＤＡシステムなどから、変数を個別にモニタすることが出来ます。つまり、ネットワークアドレスは外部からモニタしたい個々の変数に対してつけられるものです。ネットワークアドレスに変数名は定義できません。


辞書エディタメインウィンドウ

辞書エディタのメインウィンドウでは、同一タイプで同一範囲の変数のリストが表示されています。変数のタイプと範囲は常にウィンドウのタイトルバーに表示されています。

このウィンドウでは変数に関する主なフィールドを示しています。即ち、名前、属性、ネットワークアドレス、テキストコメントです。個々の変数の完全な記述はウィンドウ下部のステータスバーに表示されます。また、各フィールドの幅はフィールド間をマウスでドラッグ（ [image] マークが表示）することで幅変更ができます。

以下のツールバーアイコンによって、変数の範囲を選択できます。

共通	どのプロジェクトからでも扱えます

グローバル	プロジェクト内のどのプログラムからでも扱えます

LOCAL	一つのプログラムからのみ扱えます

変数のタイプは、タイトルバーの下に表示されている「タブ」によって選択できます。

ツールバーアイコン左側のテキスト入力フィールドにテキストを入力することで入力されたテキストが先頭に含まれる変数名の検索が行われます。検索の対象は表示中の変数全てです。「編集」－「検索」コマンドにより検索したい文字列を含む変数名又はコメント内容を検索します。変数が見つかればフォーカスがリストの中で検索された変数名に移ります。検索には大文字、小文字の区別はありません。


変数の管理

「ファイル」－「その他」コマンドにより、選択中の変数の範囲やタイプを変更することができます。

変数の印刷

変数の新規作成

変数の編集

 	「切り取り」、「貼り付け」コマンド

変数のソート

ネットワークアドレス番号取り直し

「TRUE/FALSE定義のインポート」


変数の印刷

「ファイル」－「印刷」コマンドにより、現在表示されている変数（又は定義ワード）を通常のWindowsプリンターへ印刷できます。印刷は、ISaGRAFのドキュメントジェネレータによって行われます。印刷内容は、変数や定義ワードに関する全ての記述になります。


変数の新規作成

「編集」－「新規作成」コマンドにより、新しく変数、ファンクションブロックのインスタンス、定義ワードを作成することができます。新しい変数はリスト上では現在選択中の変数の前に挿入されます。このコマンドが選択されると、変数定義のダイアログボックスが開きます。必要事項の記述終了後、“保存”ボタンを押すと、変数がリストに追加されます。ダイアログボックスは自動的に再オープンされ、引き続き変数の追加を行えます。“キャンセル”ボタンで変数宣言をキャンセルします。


数の編集
変数の編集

「編集」－「編集」コマンドにより、リストの中で選択中の変数の記述の修正を行うことが出来ます。「新規作成」コマンドと同様に変数の記述の入力を行います。“保存”、“キャンセル”ボタン以外に“次へ”及び“前へ”ボタンがあり、引き続き変数の修正を行うことが出来ます。


 	「切り取り」、「貼り付け」コマンド

ISaGRAF辞書エディタでは複数行の同時選択が可能であり、選択された内容に対して以下のコマンドも扱うことが出来ます。

コピー	選択された複数の変数を辞書のクリップボードへコピーします。

切り取り	選択された複数の変数を辞書のクリップボードへコピーし、編集リストから削除します。

削除	選択された複数の変数を編集リストから削除します。

貼り付け	辞書のｸﾘｯﾌﾟボードの内容をリストに挿入します。

コピー／切り取り／貼り付けコマンドは同一タイプ、属性の変数間での操作に限られます。


変数のソート

「ツール」－「ソート」コマンドにより、編集中の変数や定義ワードを並び替えることが出来ます。　並び替えのキーは変数の属性となります。

•	最初は内部変数

•	次は入力変数

•	最後は出力変数

なお、同一属性内の変数はアルファベット順になります。　ただ、定義ワードは常にアルファベット順となります。


ネットワークアドレスの番号取り直し

「ツール」－「アドレスの取り直し」コマンドにより、ネットワークアドレスの番号付けを自動で行えます。このコマンド実行の前に番号を付けたい変数をリスト中から事前に選択しておく必要があります。１６進数でベースアドレス（グループの先頭アドレス）を入力すると、選択された変数が連続番号で割り付けられます。ベースアドレスに０を入力することで選択中の変数のネットワークアドレスは全て０にセットされます。


「TRUE/FALSE定義のインポート」コマンド

定義ワードの編集中に「ツール」－「TREU/FALSE定義のインポート」コマンドにより、ブール型変数に割り付けられたTRUE, FALSE状態のキーワードを定義ワードとして置き換えることができます。これらの変数（TRUE,FALSEと定義された）は主にデバッグ時に使用されます。プログラム中にこれらの変数が使われるようであれば定義ワードとして用意しておく必要があります。

このコマンドは宣言済みのブール型変数の中でTRUE/FALSE文字列を検索することでTRUE/FALSE定義ワードを作成します。


変数、定義ワード、ＦＢインスタンスの記述

辞書オブジェクト（変数、ﾌｧﾝｸｼｮﾝﾌﾞﾛｯｸｲﾝｽﾀﾝｽ、定義ワード）の記述はもれなく行われる必要があります。記述のフィールドは個々のオブジェクトのタイプでも異なります。

以下に変数に対する共通なフィールドを示します。

名前	変数名のことで、最初の文字は半角英文字（a-z）で後半角英文字、数字、_ 　のいずれかである必要があります。

ﾈｯﾄﾜｰｸｱﾄﾞﾚｽ	１６進数のネットワークアドレスはオプション扱いです。ゼロ以外の数字が入力された変数はターゲットが実行時に外部のＳＣＡＤＡシステムからのモニタが可能です。

コメント	変数のコメントの自由領域

保持	保持指定は、バッテリバックアップされたメモリに対してスキャン毎に変数が保管されることを意味します。（入力、出力変数にはこの保持指定は出来ません）

ブール型変数に必要なフィールドの追加

属性	内部、入力、出力、定数のいずれかを持ちます

"False" 文字列	デバッグ時にFALSE状態の時に代入される文字列

"True" 文字列	デバッグ時にTRUE状態の時に代入される文字列

初期化時にTrue	オプションをＯＮにすることで初期化値をＴＲＵＥにすることも可能です

整数型／実数型変数に必要なフィールドの追加

属性	内部、入力、出力、定数のいずれかを持ちます

ﾌｫｰﾏｯﾄ	整数又は実数の選択。このフォーマットはデバッグ時にも活用できます

ユニット	デバッグ時に使える物理的な単位

変換	入力・出力変数に限り変換テーブルの名称を割り当てることが出来ます

初期値	変数の初期値（整数、実数のﾌｫｰﾏｯﾄをあわせる必要があります）

タイマ型変数に必要なフィールドの追加

属性	内部、定数のいずれかを持ちます

初期値	変数の初期値（整数、実数のﾌｫｰﾏｯﾄをあわせる必要があります）

可変長文字列型変数に必要なフィールドの追加

属性	内部、入力、出力、定数のいずれかを持ちます

最大長	メッセージに入れられる最大文字列長さを指定します

初期値	初期メッセージ（最大文字列長さを越えない）

定義ワードに必要なフィールドの追加

名前	ＳＴステートメントに使われる名称、最初の文字は半角英文字（a-z）で後半角英文字、数字、_ 　のいずれかである必要があります。

定義	ＳＴ言語の文法にあった文字列で定義ワードをコンパイル前にこの文字列で置き換えます

例：  Name = PI  -  Equivalence = 3.14159

コメント	自由コメント

ファンクションブロックインスタンスに必要なフィールドの追加

名前	インスタンス名、ＳＴステートメントで使われます。最初の文字は半角英文字（a-z ）で後半角英文字、数字、_ 　のいずれかである必要があります。

ﾀｲﾌﾟ(FB名)	対応するライブラリ内のファンクションブロック名

コメント	自由コメント


他のアプリケーションとのデータ交換

ISaGRAF辞書エディタには他のアプリケーション（ワープロ、スプレッドシート、データベースなど）との情報交換の目的でインポート／とエキスポートを備えています。「ツール」－「テキストファイルへエキスポート」コマンドにより、変数リストをアスキーテキスト記述に変換しクリップボードあるいはファイル形式で保管します。「ツール」－「テキストのインポート」コマンドにより、アスキーテキストフォーマットでクリップボードあるいはファイルに保管された内容から変数宣言内容のフィールドを取り出します。

「テキストファイルへエキスポート」コマンド

「テキストのインポート」コマンド

テキストフォーマットの例

キーワード


「テキストのエキスポート」コマンド
「テキストファイルへエキスポート」コマンド

「テキストファイルへエキスポート」コマンドによりエキスポートテキストダイアログボックスが開かれます。ここでエキスポートメカニズムを設定します。

“全リスト”をＯＮにすることで現在選択されている変数リストは無視され、リスト全部がエキスポートされます。“選択された変数”をＯＮにすることで選択された（ハイライト部分）変数のみがエキスポートされます。

“クリップボード”をＯＮにすることでエキスポートされる情報はアスキーテキストフォーマットでウィンドウズのクリップボードに保管されます。このあと“ペースト”コマンドで他のアプリケーションで取り出すことが出来ます。“ファイル”をＯＮにすることでエキスポートされる情報はアスキーファイルとして保管されます。この際、パス名付きのファイル名を指定する必要があります。“一覧”ボタンによってディレクトリ内容をチェックすることもできます。

更に、エキスポートアスキーテキストのフォーマットを選択します。フォーマットの種類については後で述べます。“ＯＫ”ボタンでエキスポートがなされ、“キャンセル”ボタンでエキスポートはなされずにダイアログボックスを閉じます。

エキスポートされたデータにはフィールド名が追加されています。データの最初の行はフィールド名を表しています。個々の変数オブジェクトデータは１行のテキストで表現されています。行の終わりはＭＳ－ＤＯＳ標準の“0d-0a”となります。最初の行のフィールド名と呼ばれる項目は“キーワード”ボタンを選択することで変更が可能です。“キーワード”に関しては後で述べます。何もしない場合はディフォルトのフィールド名が付いています。


「テキストのインポート」コマンド

「テキストのインポート」コマンドによりインポートテキストダイアログボックスが開きます。ここでインポートメカニズムを設定することが出来ます。

“クリップボード”をＯＮにすることでインポートされる情報はアスキーテキストフォーマットの状態でウィンドウズのクリップボードから取り出されます。“ファイル”をＯＮにすることでインポートされる情報はアスキーファイルから読み出されます。この際、パス名付きのファイル名を指定する必要があります。“一覧”ボタンによってディレクトリ内容をチェックすることもできます。

更に、インポートアスキーテキストで使われているセパレータは自動的に認識されて取り出されます。フォーマットの種類については後で述べます。“ＯＫ”ボタンでインポートがなされ、“キャンセル”ボタンでインポートはなされずにダイアログボックスを閉じます。

インポートされるデータにはフィールド名が追加されていなければなりません。データの最初の行はフィールド名を表しています。個々の変数オブジェクトデータは１行のテキストで表現されています。行の終わりはＭＳ－ＤＯＳ標準の“0d-0a”となります。

フィールド名の並んでいる順は特に指定はありません。もし、フィールドが抜けていた場合はそのフィールドのデータにはデフォルト値が入ります。　もし、インポートされるデータが既にリストの中に存在している場合は上書きするかどうかはチェックする必要があります。この際に抜けているフィールドがあればそのフィールドのデータは更新されません。

最初の行のフィールド名と呼ばれる項目は“キーワード”ボタンを選択することで変更が可能です。“キーワード”に関しては後で述べます。何もしない場合はディフォルトのフィールド名が付いています。


テキストフォーマットの例

以下に、エキスポートコマンドにより作られるテキストファイルの例を示します。インポートコマンドではフォーマットは自動認識されます。

•	タブ セパレータ

説明:	フィールド間がタブで区切られる

例: 	Name	Attribute	Comment

level	internal	internal calculated water level

alrm1	output	main alarm output

•	コンマ セパレータ

説明:	フィールド間がコンマで区切られる

例:	Name,Attribute,Comment

level,internal,internal calculated water level

alrm1,output,main alarm output

•	セミコロン セパレータ

説明:	フィールド間がセミコロンで区切られる

例:	Name;Attribute;Comment

level;internal;internal calculated water level

alrm1;output;main alarm output

•	コンマとダブルコート

説明:	フィールド間がコンマで区切られる

各フィールド名はダブルコートに挟まれる

例:	"Name","Attribute","Comment"

"level","internal","internal calculated water level"

"alrm1","output","main alarm output"


キーワード

インポート、エキスポートデータの最初の行はフィールド名と呼ばれています。これはキーワードに登録されています。なお、“キーワード”ボタンで“キーワード”ダイアログボックスが開き、ここで変更することが出来ます。キーワードダイアログボックスではオブジェクト名とキーワードが関連づけられています。キーワードを変更する場合は変更したいフィールドを選択して“修正”ボタンを選択します。　ここで新しいキーワードを入力します。“ディフォルト”ボタンは元のキーワードに変更します。このキーワードの付け方には以下のルールがあります。

 １６半角文字以内

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

 続く文字は英文字、数字、＿　のいずれか

 同一のキーワードは異なるフィールドには適用出来ません。

以下にISaGRAFのディフォルトのキーワード（太字体）を示します。

変数名	Name

テキストコメント	Comment

ネットワークアドレス	Address

属性（内部、入力、出力）	Attribute

ブール型 'False' 文字列	False

ブール型 'True' 文字列	True

整数／実数フォーマット	Format

整数／実数単位	Unit

数値変換名	Conversion

文字列最大長	MaxLength

ＦＢライブラリタイプ	Library

公式の定義	Equivalence

内部属性	Internal

入力属性	Input

出力属性	Output

定数属性	Constant

実数型フォーマット	Real

整数型フォーマット	Integer


その他のツール

「ツール」メニューには、ISaGRAFの便利な変数管理のツールが用意されています。

「Ｉ／Ｏ接続」メニューで、Ｉ／Ｏ接続エディタをオープンします。辞書エディタで現在選ばれている変数がすでにＩ／Ｏ接続されていた場合は、該当するボードが開かれます。

「変換テーブル」メニューで、変換テーブルエディタのダイアログボックスが開きます。変換テーブルは、辞書に登録されている入／出力属性の実数または整数型の変数に割り当てることができます。

「クロスリファレンス」メニューで、現在オープン中のプロジェクトのクロスリファレンスエディタが開きます。


クイック変数登録

「ツール」－「クイック変数登録」で、複数の変数を一度に定義できます。クイック変数登録で作成された変数には、通し番号がつけられます。以下の項目を設定してください：

-変数に振られる最初と最後の番号

-変数名の頭と終りに付けられる文字列

-変数名に使用される数字の数（文字数）

更に、変数の基本属性（内部、入力、出力）と変数タイプによる固有の情報（整数・実数型の「保持」や可変文字列の文字列最大長など）も設定できます。

変数名は数字で始めることはできないので、必ず変数名の頭に文字列を設定しなければいけません。「桁数」（数字の文字数）がautoになっていたら、自動的に最小の文字数が割り当てられます。「桁数」が設定されると、頭から0を付加して桁数があわせられます。このように、変数名の文字数が固定になるようにしておくと、ソート時に便利です。以下に使用例を上げます：

例１：文字数が変わる例

この設定では、以下の３つの変数ができます：

Var9xx	Var10xx	var11xx

例２：文字数が固定になる例

この例では、MyVar001からMyVar100までの１００個の変数が作成されます。


SCADA Modbus アドレスマップ

「ネットワークアドレス」は、ISaGRAFとSCADAソフトとの間などで、Modbusプロトコルを使用して通信する場合に使われます。この場合、SCADAソフトの方がマスタになり、ISaGRAFターゲットがスレーブになります。ネットワークアドレスは、SCADA側からコントロールされる変数の仮想マッピングとして使用されます。「ツール」－「SCADA Modbusアドレスマップ」を使うと、各変数を簡単にマッピングできます。

SCADA Modbusアドレスマップダイアログボックスには２つのリストがあります。上のリストは１セグメント（0～*FFF=4096個）分のマッピング情報で、ネットワークアドレスが割り付けられている変数が表示されます。下のリストには、マッピングされていない変数が表示されます。ネットワークアドレス0には変数をマッピングできません。

「編集」－「選択変数のマップ」と「マップから削除」で変数をリスト間で移動して、マッピングを行います。リストされている変数をダブルクリックしても同様の処理が行えます。“セグメント”ドロップダウンリストボックスから他のセグメントのリストに切り替えることができます。

「オプション」メニューで、アドレスの１０進／１６進表示を切り替えます。

「編集」－「検索」メニューで、変数がマッピングされているかどうか、検索することができます。


プロテクションの設定

ISaGRAFワークベンチでは、階層化パスワードによるプロテクション機能を提供しています。パスワードによって、変数宣言にグローバルなプロテクションがかけられます。これに加え、個々の変数にもプロテクションがかけられます：

変数単位でプロテクションをかける場合、プロジェクト管理エディタの「プロジェクト」－「パスワードセット」ですでにパスワードが設定されていることが前提となります。また、グローバルな変数プロテクションよりも変数単位の方が高いレベルのプロテクションになります。

変数に個別プロテクションがかかっている場合、変数辞書ウィンドウで、変数名の前に小さなアイコンが表示されます。

「編集」－「プロテクションの設定」と「プロテクションの解除」で、選択された変数にプロテクションを設定したり、解除することができます。どちらのコマンドの場合も、変数にあるレベルのプロテクションをかけるために、それにあった適切なパスワードを入力します。従って、個別プロテクションがかけられている変数を変更する都度、適切なプロテクションレベルのパスワードを入力しなくてはなりません。

注意：変数がプロテクションをかけられていて、対応するパスワードが削除された場合、それより高いレベルのパスワードが定義されていないと、その変数は、十分に高いレベルのパスワードが新たに定義されない限り変更することができなくなります。