ISaGRAF PRO 〜Ｃソースコードの生成と Target への組み込み〜

1/9

ISaGRAF PRO
C コンパイル型実行モードの実行方法〜Ｃソースコードの生成と Target への組み込み〜

1. はじめに
ISaGRAF PRO では作成したプロジェクトを C ソースコードに変換できます。それをコンパイルし、カーネルに直接組み込むことによって、Target で高速に実行することができます。これを C コンパイル型実行モードと呼んでいます。
本書では例として実際に NT-Target でサンプルプロジェクト Project1 を C コンパイル型実行モードで実行するための方法を説明します。

2. 準備
ISaGRAF PRO には C コンパイルの機能がないため、コンパイラは別途用意する必要があります。NT−Target では Microsoft VC++（Ver.5.0 以上）を使用します。
またリンクのためのライブラリは IO 開発キット(KDS-PIO) でサポートされていますので、これをインストールする必要があります。（開発ツールキット(KDS-PRDK) は IO 開発キットを含んでいます。）◊

注意：ワークベンチソフト（KDS-PRL,KDS-PRD,KDS-PRU)にはライブラリはサポートされていません。

3. 作業の流れ
実際の作業の流れは以下の様になります。
1 連の作業はすべてリソースごとに行います。
1.

ターゲット／コード設定を C コンパイル型に変更します。

2.

C ソースコードを生成します。

3.

C ソースコードをコンパイルし、実行ファイルを生成します。

4.

実行ファイルおよびリソースファイルの名前を変更し、IVCxxxx.exe、IVCxxxx.exe、ISPxxx01、ISPxxx01、ISPxxx03、ISPxxx03、ISPffe0d を準備します。

5.

上記ファイルをターゲットのフォルダに格納し、ターゲットを実行します。

ISaGRAF PRO 〜Ｃソースコードの生成と Target への組み込み〜

2/94. 例) Project1 を C コンパイル実行モードで実行する
4.1. ディレクトリ構造
ディレクトリ構造
この例では以下のようなディレクトリ構造を取っています。ディレクトリ構造はインストール時の設定などによって異なることがありますので、実際には開発者の作業がしやすい構造をとってください。

〔ディレクトリ構造〕
ISaGRAF PRO ワークベンチはD:¥
D:¥ISaGRAF PRO¥PRO¥ISaGRAF̲PRO̲Jにインストールされています。
ワークベンチで生成したファイルは−¥Prj¥
Prj¥Project1の下に格納されます。

IO 開発キットはD:¥
D:¥ISaGRAF PRO¥PRO¥IODev̲NTにインストールされています。

MakVMC.dsw は Make ファイルです。
Io.txt は IO 開発キットの ReadMe ファイルです。
−¥IsaKer、IsaKer、IsaSys、IsaSys、Lib はライブラリです。
−¥IsaVm は Make の雛形です。
− ¥Cmds はターゲットの実行環境が格納されており、ここに実行ファイルを組み込みます。

ISaGRAF PRO 〜Ｃソースコードの生成と Target への組み込み〜

3/9

4.2. C ソースコードの生成
4.2.1. ターゲット／コード設定
各リソースで、メニューから [ﾌﾟﾛｼﾞｪｸﾄ]−[ﾀｰｹﾞｯﾄ/ｺｰﾄﾞ設定] を選びます。
ﾘｿｰｽﾌﾟﾛﾊﾟﾃｨが開くので、[[ﾀｰｹﾞｯﾄ/「Structured C source code」
ﾀｰｹﾞｯﾄ/ｺｰﾄﾞ
ｺｰﾄﾞ]ﾄﾞ]で「code」を選びます。このとき、｢ｼﾐｭﾚｰｼｮﾝ用ｺｰﾄﾞ｣｢ｼﾐｭﾚｰｼｮﾝ用ｺｰﾄﾞ｣のﾁｪｯｸははずします。
｢ｼﾐｭﾚｰｼｮﾝ用ｺｰﾄﾞ｣
また、[[実行]実行] で [ｵﾝﾗｲﾝ]ｵﾝﾗｲﾝ] を選択します。

4.2.2. アプリケーションコードの生成アプリケーションコードを生成します。

ISaGRAF PRO 〜Ｃソースコードの生成と Target への組み込み〜

4/9

すると、−¥Prj￥Project1 の下に Config とリソース名のフォルダができ、生成されたｺｰﾄﾞが収納されます。
この中で使用するのは C ソースファイル、C ヘッダーファイル、xcc ファイルです。

ISaGRAF PRO 〜Ｃソースコードの生成と Target への組み込み〜

5/9

4.3. Target への組み込みへの組み込み
4.3.1. ワークフォルダの準備
本例では作業をわかりやすくするために …¥IODevKit̲NT の下にワークフォルダを作り、実行ファイルのビルドなどの作業を行います。実際は、直接 −¥IsaVM 上で作業するなど、自由な方法で作業ができます。
① …¥IODevKit̲NT の下に ﾌﾟﾛｼﾞｪｸﾄ名のワークフォルダ(WProject1)を作成します。
② WProject1 フォルダに各リソース名のフォルダ（Main、TEST）を作成します。
③ 各リソースフォルダに…¥IsaVM¥
IsaVM¥IsaVMC.dsp をコピーします。最初は読取専用ファイルとなっているので、これを解除しておきます。
④ 各リソースフォルダにワークベンチで生成した C ソースファイル、C ヘッダファイルコピーします。
⑤ 各リソースフォルダにワークベンチで生成した xcc ファイルの内、以下のファイルをコピーします。
ﾘｿｰｽ名̲Conf.xcc,
ﾘｿｰｽ名̲Pou̲ﾌﾟﾛｸﾞﾗﾑ名.xcc⑥ …Prj¥Prj¥Project1¥
Project1¥Config1¥
Config1¥コンフィグ名̲NetworkConf.xcc を WProject1 にコピーします。

ISaGRAF PRO 〜Ｃソースコードの生成と Target への組み込み〜

6/9

4.3.2. 実行ファイルのビルド
各リソース毎に実行ファイル IsaVMC.exe を作ります。
…¥IODevKit̲NT¥
IODevKit̲NT¥MakVMC.dsw を立ちあげて、目的のリソースフォルダの IsaVMC.dsp を挿入します。

ISaGRAF PRO 〜Ｃソースコードの生成と Target への組み込み〜

7/9

C ソースファイルと C ヘッダーファイルを挿入します。

ビルドの環境をディレクトリ構造に合わせて変更します。ここでは Release ﾓｰﾄﾞを使用します。
変更するのは C/C++／ﾌﾟﾘﾌﾟﾛｾｯｻ／ｲﾝｸﾙｰﾄﾞﾌｧｲﾙのﾊﾟｽ
C/C++／ﾌﾟﾘﾌﾟﾛｾｯｻ／ｲﾝｸﾙｰﾄﾞﾌｧｲﾙのﾊﾟｽ、ﾘﾝｸ／ｲﾝﾌﾟｯﾄ／追加ﾗｲﾌﾞﾗﾘのﾊﾟｽ／ﾌﾟﾘﾌﾟﾛｾｯｻ／ｲﾝｸﾙｰﾄﾞﾌｧｲﾙのﾊﾟｽ ﾘﾝｸ／ｲﾝﾌﾟｯﾄ／追加ﾗｲﾌﾞﾗﾘのﾊﾟｽ、がﾘﾝｸ／ｲﾝﾌﾟｯﾄ／追加ﾗｲﾌﾞﾗﾘのﾊﾟｽ考えられます。また、実行ファイル名は後で変更しますが、ここで直接設定してもかまいません。

ISaGRAF PRO 〜Ｃソースコードの生成と Target への組み込み〜8/9リリースモードでビルドします。

するとワークホルダに IsaVMC.exe が生成されます。
これをリソース毎に行います。

4.3.3. 実行ファイルとリソースファイルの準備
いままで生成されたファイルから、ISaGRAF PRO ﾀｰｹﾞｯﾄに組み込むためのファイルを作ります。
これらはリソース毎に必要です。
IVMxxxx.exe

各リソースの IsaVMC.exe を名前を変えて IVMxxxx.exe とします。
“xxxx”の部分はリソース番号が 16 進数で入ります。

ISPxxx01
ISPxxx01

リソースフォルダにコピーした、” ﾘｿｰｽ名 ̲Pou̲ ﾌﾟﾛｸﾞﾗﾑ名 .xcc”.xcc を連結してISPxxx01 にします。
連結には DOS の copy コマンドの /B オプションが使えます。連結は appli.hに書いてある順序で行ってください。
“xxx”の部分はリソース番号が 16 進数で入ります。

ISPxxx03

リソースフォルダの” ﾘｿｰｽ名 ̲Conf.xcc”
̲Conf.xcc を ISPxxx03 としてコピーします。
“xxx”の部分はリソース番号が 16 進数で入ります。

また、プロジェクトにつき１つ、次のファイルを用意します。
ISPffe0d

ワークフォルダの ”ｺﾝﾌｨｸﾞ名̲NetworkConf.xcc” を ISPffe0d としてコピーします。

ISaGRAF PRO 〜Ｃソースコードの生成と Target への組み込み〜

9/9

これらの作業はバッチファイルを作って行うと便利です。
バッチファイルの例@rem リソース１：MAIN の処理
copy .¥MAIN¥IsaVMC.exe .¥IVM0001.exe
copy /B .¥MAIN¥MAIN_Pou_ADDITION.xcc+.¥MAIN¥MAIN_Pou_MAIN.xcc+.¥MAIN¥MAIN_Pou_CO
MPLEXTEST.xcc .¥ISP00101
copy .¥MAIN¥MAIN_Conf.xcc .¥ISP00103@rem リソース 2：TEST の処理
copy .¥TEST¥IsaVMC.exe .¥IVM0002.exe
copy /B .¥TEST¥TEST_Pou_SIMULATE.xcc+.¥TEST¥TEST_Pou_MULTIPLICATION.xcc .¥ISP00201
copy .¥TEST¥TEST_Conf.xcc .¥ISP00203@rem コンフィグ：コンフィグ１の処理
copy .¥CONFIG1_NetworkConf.xcc .¥ISPffe0d

4.3.4. ターゲットの実行
以上のファイルをﾀｰｹﾞｯﾄﾌｫﾙﾀﾞ(ここでは Cmds) にコピーし、ISaGRAF.exe を実行します。