IXLクライアントからISaGRAF Ver.4/5ターゲットにリクエストを送信したい。応答があるまで多少時間がかかるが、その間、クライアント側に他の処理をさせたい。


IXLクライアントアプリケーションでは、ターゲットへのリクエストの送信にノンブロッキングメソッドを使うこともできます。
この方法では、あらかじめコールバック関数を準備しておきます。
そして、IXLの初期化の段階でコールバック関数のアドレスをセットしておきます。
クライアントは、リクエストを送信した後、できるだけ頻繁に ixlCallbackActive() 関数をコールするようにします。
リクエストが完了した時点でコールバック関数がコールされるので、クライアントはそれまでの間、他の処理を行うことができます。

アンサーの準備ができた時点でコールバック関数はコールされます。コールバック関数内では受信した応答は、
  • 指定したリクエストコード通知識別子対応する ixlOnNotifXxx() 関数
を使って処理するようにします。

下記はクライアントプログラムの一例です。

main ()
{
    ... ixlInit(... ,dtstIxlCallback,....);
    .... ドライバ初期化 ....
    ... 接続 ...
    ... ダイアログの確立 ...

    while (....)
    {
      if (.... ) /* 読みこみを行う場合 */
      {
        ixlRead(...);
        ...
      }
      else if (..) /* リソース情報の取得を行う場合 */
      {
        ixlResInfoGet(...);
        ...
      }
      else
      {
        ixlCallBackActive (...); /* この関数をできるだけ頻繁にコールする */
      }
    }

void dTstIxlCallBack( ..,cuRqCode,..)
{
    ....リクエストコード cuRqCode で分岐する....
    ...
    else if (cuRqCode == ISA_RQ_READ)
    {
      if (ixlOnNotifRC (..) == 0)
      ixlOnNotifReadL( …,_tIXLVarDesc…);
    }
    else if (cuRqCode == ISA_RQ_RES_INFOGET)
    {
      if (ixlOnNotifRC (..) == 0)
      ixlOnNotifResInfoGet( …, _IXLRESINFO …)

      }
    }
    :
    :
    :
最終更新:
2008-07-31 12:25
改訂:
1.1
評価点数:0 (0 件の投票)
Chuck Norris has counted to infinity. Twice.

最も人気の FAQ RSS

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

最近の 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)