-
まず、ワークベンチに付属するTDBuild.exe(TargetDefinition Builder)を使用します。これはC言語ファンクション/ファンクションブロック/変換関数をはじめ、I/Oボードやターゲットの構成を定義しするためのツールです。TDBuildを使えば、必要なCソースファイルやワークベンチ用の定義ファイルを簡単に生成することができます。
-
1. TDBuildを起動します。TDBuildはワークベンチのインストールディレクトリの "Bin" フォルダにあります。
2. 新しいTDBuildの定義ファイル(*.tdb)を作成します。
3. "Insert" メニューを実行し、"Cfunction" を新規作成します。
4. 追加するファンクションの名前を入力します。(例:MyFCT)
5. 入力パラメータ/出力パラメータ/ヘルプコメント等を定義します。
6. "Tools"-"Generate 'C' code" メニューを実行し、ソースファイル("*.c") とヘッダファイル("*.h") ファイルを生成します。
このファイルを、ターゲットのパッケージディレクトリに直接生成するか、後でそこにコピーしてください。
7. "Build"-"Send to File" メニューを実行し、ISaGRAF Ver.4プロジェクトにインポートする定義ファイル(*.txt)を生成します。
注意:生成された定義ファイルは、1つのターゲットにしか適用できません。ファンクションを複数のターゲット上で使用する必要がある場合は、ターゲット毎に定義ファイルを生成してください。
-
1. 新しいプロジェクトを作成します。
2. 「リソースのプロパティ」でC言語ファンクションの定義を追加するターゲットを選択します。
3. "ファイル" - "インポート" - "PLC定義" を実行し、TDBuildで生成した定義ファイルを選択します。
4. IECプログラムから定義したCファンクションをコールします。
5. プロジェクトをビルドします。
6. Cファンクションを使用しているプロジェクトをターゲットにダウンロードします。
C言語ファンクションブロック/変換ファンクションの実装手順も同じです。
-
生成されたCソースファイル内の、以下の関数をコーディングします。
- サンプルパッケージを使用する場合は、"CjCSmpl.mak" を使用してパッケージを生成します。
ファイルは \Target\Targets\Target_name\PkgSmpl\CjCSmpl\ にあります。 - 自作のパッケージを使用する場合は、\Target_name\IsaVMにある"package.h" に以下のようにパッケージ名を追加します。
#define MyPack.h
また、同じファイルに以下のような書式でパッケージの宣言を追加します。
#define ISA_DECLARE_ALLPACKAGES \
ISA_DECLARE_MyPack
void [ファンクション名]UsfCall( void* pvBfData, /* In: データ */ strParamVa* InParam, /* In: 入力パラータ */ uchar cuNbInParam, /* In: 入力パラメータの数 */ strParamVa* OutParam /* In: 出力パラメータ */ ) |
注意: ISaGRAF Ver.4開発ツールキットのCD-ROMからこのファイルをコピーして使う場合、ファイルの属性はすべて書きこみ禁止になっています。ファイルの操作をする前に、属性を変更しておいてください。
コンパイルやリンクの手順はターゲットの種類によって異なります。
WindowsNTターゲットのコンパイル手順
-
WindowsNTではダイナミックリンクライブラリ(DLL)を利用できるため、ターゲット全体をリンクしなおす必要はありません。
以下はMicrosoft Visual C++ 6.0でコンパイルする場合の作業手順の例です。
-
1. 以下の場所にある ワークスペース CjCSmpl.dswを開きます。(サンプルとして提供されています)
\Target\Targets\WinNT_XXX\PkgSmpl\CjCSmpl
2. プロジェクトのウィンドウの"File View"でこのCファンクションをプロジェクトに追加します。CjCSmpl.dswプロジェクトのウィンドウのワークスペース上で右クリックして、"ファイルをプロジェクトへ追加" を実行します。
3. ファンクションをコンパイルします。
4. CjCSmpl.dllをビルドします。
5. 生成された dll ファイルをターゲットの"CMDS"フォルダにコピーします。
注意:パッケージ名を変更する場合には(例:MyPack)、CjCSmpl.cファイルの名前をMyPack.c と変更し、"プロジェクト"-"設定"の、プロジェクト設定ダイアログの "リンク"で、コンパイルパラメータのDLL名(出力ファイル名)を変更してください。(CjCSmpl.dll → MyPack.dll)
一般的なターゲットのコンパイル手順
-
サンプルで提供されているパッケージを使用しても、自作しても、どちらでも実装が可能です。
-
1. C言語ファンクションのライブラリを生成します。
まず、メイクファイルMypack.mak(またはCjCSmpl.mak)のエントリにこのファンクションを追加します。
2. コンパイルとリンクをおこないます。サンプルのリンク用バッチファイルとしてLibMyPack.bat(または LibCjCSmpl.bat)が付属します。
VxWorksターゲットの場合、LIB\MyPack.oというライブラリファイルが作成されます。
3. ターゲットを生成します。
まず、メイクファイルISaGRAF.makに新しいライブラリMyPack.o(前述の例の場合) を追加します。
4. リンクを行います。サンプルのリンク用バッチファイルとしてMakIsa.batが付属します。