C

  • Cファンクション/ファンクションブロックの"Hidden" パラメータとはどのようなものか
     Hidden(隠れた)パラメータは入力パラメータの一種ですが、FBDエディタ上では表示されません。そのためより簡潔なダイアグラムを作成することができます。 このパラメータはC言語ファンクション/ファンクションブロックにだけ定義できます。PLCToolsやTDBuild等のツールでC言語ファンクション類を定義するときにHidden パラメータも定義します。 FBDエディタの場合 FBDエディタからHiddenパラメータに値を設定する場合、データタイプは基本型(Bool/DINT/SINT/REAL/STRING/TIME)でなければなりません。新しい値を設定するダイアログボックスから構造体や配列を扱えないためです。 なお、Hiddenパラメータへの値の設定は、V4.03以降のバージョンのFBDエディタでのみ可能です。 Hiddenパラメータに値を設定するには: 1. FBDエディタで、Hidden パラメータを持つC言語ファンクション/ファンクションブロックを配置します。 2. 「ブロックの選択」ダイアログボックスでいったんブロックを選択し、「パラメータ」タブをクリックします。ここで Hidden パラメータに値を設定できます。 または、配置済みのブロックをダブルクリックすると、再度「ブロックの選択」ダイアログボックスが開きます。「パラメータ」タブをクリックし、パラメータに値を設定します。 LDエディタの場合 Hidden パラメータは通常の入力パラメータと同じように表示されます。 ...
  • C言語ファンクションの作成手順
    定義 まず、ワークベンチに付属する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 PROプロジェクトにインポートする定義ファイル(*.txt)を生成します。 注意:生成された定義ファイルは、1つのターゲットにしか適用できません。ファンクションを複数のターゲット上で使用する必要がある場合は、ターゲット毎に定義ファイルを生成してください。 ワークベンチ側での作業 1. ...
  • C言語ファンクション類の選択ダイアログからオンラインヘルプの特定のページを表示させる方法
     C言語ファンクション/ファンクションブロックを作成するには、ターゲットディフィニションビルダ(TDBUILDツール)を使用します。これらのファンクション類には、必要であればMicrosoft社の HTML HELP Workshopで作成したCHM形式のオンラインヘルプを起動するようなコマンドラインを付加しておくこともできます。このヘルプは、エンドユーザがファンクション類を挿入するときに参照できるようになります。 まず、TDBuildツールで"On Line info"のタブを選び、下記のコマンドラインを指定しておきます。 hh.exe -mapid 1 ..\help\MyCHelp.chm ここで MyCHelp.chm は作成したヘルプファイル名で、"1" はHTML Help Workshopで選んだファンクションに対応するエイリアス番号です。同じヘルプファイルで他のファンクション類のヘルプを表示させるのなら、例えば下記のように指定します。 hh.exe -mapid 2 ..\help\MyCHelp.chm エンドユーザがプロジェクトにこれらファンクションをインポートし、ブロックの選択時に「ヘルプ」ボタンをクリックすると、上記で指定したヘルプが表示されます。 ...
  • C言語ファンクション, C言語ファンクションブロックから直接ISaGRAF変数にアクセスする方法はあるか?
    ISaGRAF変数の値にCのルーチンが直接アクセスすることはできません。 ISaGRAFのC言語ファンクション・ファンクションブロックでやりとりできるのは,Cルーチンへの入力/出力パラメータの値のみです。 尚、外部のプログラムからISaGRAF変数をアクセスしたい場合にはIXL関数を使用してください。 ...
  • C言語ファンクションを作る手順
    バージョンによって手順が異なります。 ISaGRAF  Ver.4/5の場合 定義 まず、ワークベンチに付属するTDBuild.exe(Target Definition Builder)を使用します。これはC言語ファンクション/ファンクションブロック/変換関数をはじめ、I/Oボードやターゲットの構成を定義しするためのツールです。 TDBuildを使えば、必要なCソースファイルやワークベンチ用の定義ファイルを簡単に生成することができます。 1. TDBuildを起動します。TDBuildはワークベンチのインストールディレクトリの "Bin" フォルダにあります。 2. 新しいTDBuildの定義ファイル(*.tdb)を作成します。 3. "Insert" メニューを実行し、"C function"を新規作成します。 4. 追加するファンクションの名前を入力します。(例:MyFCT) 5. 入力パラメータ/出力パラメータ/ヘルプコメント等を定義します。 6. "Tools"-"Generate 'C' code" メニューを実行し、ソースファイル("*.c") とヘッダファイル("*.h") ファイルを生成します。 このファイルを、ターゲットのパッケージディレクトリに直接生成するか、後でそこにコピーしてください。 7. "Build"-"Send to File" メニューを実行し、ISaGRAF ...
  • CソースとTICコードのサイズ比較
    ISaGRAFが生成するアプリケーションコードは、TICコード(ISaGRAF Ver.3の場合、ISA86MまたはISA68M)形式よりも、Cソースコードの形式の方が相対的にサイズが大きくなります。 以下の例は、ISaGRAF Ver.3でSFCや他のIEC言語を使用した比較的大きなアプリケーションの機械語の実行ファイルとTICコードを比較したものです。 TICコードの場合 ターゲット(カーネル)のサイズ=180KB アプリケーションコード(TIC)サイズ=76KB 合計=256KB Cソースコードをコンパイル・リンクした場合 カーネル+アプリケーション(実行ファイル)サイズ=391KB このようにコードが大きくなる理由のひとつは、ほとんどのTICコードが、対応するCPUの命令コードよりもサイズが小さいためです。 この増分はTICコードのインタプリタ(カーネル)のどこかで吸収していることになります。また、同じ命令が処理される度にその部分が繰返し使用されるというわけでもありません。 ...
  • C言語ファンクションの戻り値はTRUEかFALSEになるが、CソースではTRUE,FALSEをどのように表現するのか?
    値の定義 TRUEは(unsigned long)1 FALSEは(unsigned long)0 です。 ありがちなミス 例えば、0をFALSE,0以外をTRUEとプログラムしてしまう場合があります。この場合、ISaGRAFのデバッガには 0.......FALSE 0以外...TRUE と表示され、一見うまく動作しているように見えます。しかし、ISaGRAFのターゲット内部ではそうではありません。0でもなく1でもない値は,TRUEでもなくFALSEでもありませんので問題が起きる場合があります。 例えば、下記のような場合、2つの条件判断はいずれも成立しません。 a:= testfunc(); (* (unsigned long)で0と1以外の値を返すファンクション *) IF a = TRUE then (* 処理1 *) ELSE IF a = FALSE ...
  • CソースとTICコードのサイズ比較
    ISaGRAFが生成するアプリケーションコードは、TICコード(ISaGRAF Ver.3の場合、ISA86MまたはISA68M)形式よりも、Cソースコードの形式の方が相対的にサイズが大きくなります。 以下の例は、ISaGRAF Ver.3でSFCや他のIEC言語を使用した比較的大きなアプリケーションの機械語の実行ファイルとTICコードを比較したものです。 TICコードの場合 ターゲット(カーネル)のサイズ=180KB アプリケーションコード(TIC)サイズ=76KB 合計=256KB Cソースコードをコンパイル・リンクした場合 カーネル+アプリケーション(実行ファイル)サイズ=391KB このようにコードが大きくなる理由のひとつは、ほとんどのTICコードが、対応するCPUの命令コードよりもサイズが小さいためです。 この増分はTICコードのインタプリタ(カーネル)のどこかで吸収していることになります。また、同じ命令が処理される度にその部分が繰返し使用されるというわけでもありません。 ...
  • C言語ファンクションの作成手順
    定義 まず、ワークベンチに付属する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. ...
  • C言語ファンクション類の選択ダイアログからオンラインヘルプの特定のページを表示させる方法
    C言語ファンクション/ファンクションブロックを作成するには、ターゲットディフィニションビルダ(TDBUILDツール)を使用します。これらのファンクション類には、必要であればMicrosoft社の HTML HELP Workshopで作成したCHM形式のオンラインヘルプを起動するようなコマンドラインを付加しておくこともできます。このヘルプは、エンドユーザがファンクション類を挿入するときに参照できるようになります。 まず、TDBuildツールで"On Line info"のタブを選び、下記のコマンドラインを指定しておきます。 hh.exe -mapid 1 ..\help\MyCHelp.chm ここで MyCHelp.chm は作成したヘルプファイル名で、"1" はHTML Help Workshopで選んだファンクションに対応するエイリアス番号です。同じヘルプファイルで他のファンクション類のヘルプを表示させるのなら、例えば下記のように指定します。 hh.exe -mapid 2 ..\help\MyCHelp.chm エンドユーザがプロジェクトにこれらファンクションをインポートし、ブロックの選択時に「ヘルプ」ボタンをクリックすると、上記で指定したヘルプが表示されます。 ...
  • C言語ファンクション, C言語ファンクションブロックから直接ISaGRAF変数にアクセスする方法はあるか?
    ISaGRAF変数の値にCのルーチンが直接アクセスすることはできません。 ISaGRAFのC言語ファンクション・ファンクションブロックでやりとりできるのは,Cルーチンへの入力/出力パラメータの値のみです。 尚、外部のプログラムからISaGRAF変数をアクセスしたい場合にはIXL関数を使用してください。 ...
  • C言語ファンクションを作る手順
    バージョンによって手順が異なります。 ISaGRAF  Ver.4の場合 定義 まず、ワークベンチに付属するTDBuild.exe(Target Definition Builder)を使用します。これはC言語ファンクション/ファンクションブロック/変換関数をはじめ、I/Oボードやターゲットの構成を定義しするためのツールです。 TDBuildを使えば、必要なCソースファイルやワークベンチ用の定義ファイルを簡単に生成することができます。 1. TDBuildを起動します。TDBuildはワークベンチのインストールディレクトリの "Bin" フォルダにあります。 2. 新しいTDBuildの定義ファイル(*.tdb)を作成します。 3. "Insert" メニューを実行し、"C function"を新規作成します。 4. 追加するファンクションの名前を入力します。(例:MyFCT) 5. 入力パラメータ/出力パラメータ/ヘルプコメント等を定義します。 6. "Tools"-"Generate 'C' code" メニューを実行し、ソースファイル("*.c") とヘッダファイル("*.h") ファイルを生成します。 このファイルを、ターゲットのパッケージディレクトリに直接生成するか、後でそこにコピーしてください。 7. "Build"-"Send to File" メニューを実行し、ISaGRAF ...
  • CソースとTICコードのサイズ比較
    ISaGRAFが生成するアプリケーションコードは、TICコード(ISaGRAF Ver.3の場合、ISA86MまたはISA68M)形式よりも、Cソースコードの形式の方が相対的にサイズが大きくなります。 以下の例は、ISaGRAF Ver.3でSFCや他のIEC言語を使用した比較的大きなアプリケーションの機械語の実行ファイルとTICコードを比較したものです。 TICコードの場合 ターゲット(カーネル)のサイズ=180KB アプリケーションコード(TIC)サイズ=76KB 合計=256KB Cソースコードをコンパイル・リンクした場合 カーネル+アプリケーション(実行ファイル)サイズ=391KB このようにコードが大きくなる理由のひとつは、ほとんどのTICコードが、対応するCPUの命令コードよりもサイズが小さいためです。 この増分はTICコードのインタプリタ(カーネル)のどこかで吸収していることになります。また、同じ命令が処理される度にその部分が繰返し使用されるというわけでもありません。 ...
  • C言語ファンクションの戻り値はTRUEかFALSEになるが、CソースではTRUE,FALSEをどのように表現するのか?
    値の定義 TRUEは(unsigned long)1 FALSEは(unsigned long)0 です。 ありがちなミス 例えば、0をFALSE,0以外をTRUEとプログラムしてしまう場合があります。 この場合、ISaGRAFのデバッガには 0.......FALSE 0以外...TRUE と表示され、一見うまく動作しているように見えます。 しかし、ISaGRAFのターゲット内部ではそうではありません。 0でもなく1でもない値は,TRUEでもなくFALSEでもありませんので問題が起きる場合があります。 例えば、下記のような場合、2つの条件判断はいずれも成立しません。 a:= testfunc(); (* (unsigned long)で0と1以外の値を返すファンクション *) IF a = TRUE then (* 処理1 *) ELSE IF a = FALSE ...

最も人気の FAQ RSS

  1. LD言語で、ある接点がFALSEの場合、それ以降のファンクションブロックを実行しないように出来るか? (44492 回の閲覧)
  2. SFC要素の「ステップ」と「トランジション」の意味と役割を教えてください。 (43303 回の閲覧)
  3. ISaGRAF WorkbenchをWindows 7で使用するにはどうしたらよいでしょうか? (40894 回の閲覧)
  4. ISaGRAFはIEC1131-3のシステム定義に準拠しているか? (38967 回の閲覧)
  5. PLCプログラムをより早く動かすにはどうすればよいですか? (38785 回の閲覧)
  6. LD言語で、立ち上がり・立ち下がりの出力はあるか? (36813 回の閲覧)
  7. VxWorksターゲットにおける変数管理の留意点について (36334 回の閲覧)
  8. 日立製作所製SHマイコン用コンパイラ使用時の注意事項 (35523 回の閲覧)
  9. Cファンクション/ファンクションブロックの"Hidden" パラメータとはどのようなものか (35498 回の閲覧)
  10. FBD/LD言語で同じ行に複数の演算がある場合の実行順序は? (33475 回の閲覧)

最近の FAQ RSS

  1. ファンクションブロックはネストできますか。 (2016-08-05 15:07)
  2. Cファンクション/ファンクションブロックの"Hidden" パラメータとはどのようなものか (2015-01-30 14:24)
  3. 前のISaGRAFで作成したプロジェクトをインポートしたら、コメントが文字化けを起こしています。 (2014-05-07 06:52)
  4. 前のバージョンで作成したプロジェクトは読み込めますか。 (2014-03-07 07:46)
  5. ISaGRAFでコンフィグレーション、リソースそれにPOUはそれぞれいくつ作成できますか。 (2014-03-07 02:06)