SFC要素、親プログラムからチャイルドプログラムを起動する際、必ず初期ステップから実行させる=自動的にチャイルドプログラム自身で自分を停止させる にはどのようにしたらよいか


まず、前提条件として、次のようなものがあります。
    • プログラムの起動・停止は親SFCからのみ行えます。言い換えると、プログラムは自分自身を停止できません。プログラムの起動はgstart命令で行うが、その際プログラムがすでに活動中であれば、命令は無意味になります。

そこで、ご希望の動作をさせるには次のような工夫が必要です。
(1)まず、グローバル変数
child_flag:論理値、チャイルドプログラムを動作・停止させるフラグを定義します。
(2)次に、チャイルドプログラムの内容を下記のようにします。


(3)親プログラムを下記のように記述します。
    (a)初期ステップ
      チャイルドプログラムをgstartする。
    (b)チャイルドの処理を見かけ上起動するとき
      パルスアクションで変数 Child_flagをtrueにする。
    (c)チャイルドの処理を見かけ上停止するとき
      1.変数 Child_flagをfalseにし、
      2.gkill(チャイルドプログラム)し、
      3.gstrat(チャイルドプログラム)する。

このようにすれば、実際にはチャイルドは常に動作しているものの、処理そのものを止めたり初期ステップから起動することが出来ます。

注意事項
ISaGRAF ver.4/5では gkill,gstart 命令はサポートしていません。
最終更新:
2009-03-19 11:54
改訂:
1.1
評価点数:0 (0 件の投票)
Chuck Norris has counted to infinity. Twice.

最も人気の FAQ RSS

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

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