SFCプログラムからFBD言語のサブプログラムを起動するには、どのように記述するのか?


例として、以下のように記述すると、エラー008-0035(変数の型の不一致)が発生してしまう。

action(P):
    sw:=output();
end_action;
(* sw...論理値型変数、output....FBDサブプログラム *)

 上記のプログラムは、文法的には問題はありません。上記のエラーは、文法以外の所にエラーがあります。


考えられる原因
プログラムの2行目の,代入時の型が異なっている可能性があります。左辺swが論理値型であるのに、右辺のサブプログラムが論理値型でないからかもしれません。
とくに、ISaGRAF Ver.3では新規にサブプログラムやファンクションを作ると、出力パラメータの型(タイプ)は、デフォルトでは整数型になりますので注意が必要です。

対処
サブプログラムの出力パラメータの型を修正します。サブプログラムの編集時に,メニューの「ファイル」-「パラメータ」を実行してください。パラメータのなかに、サブプログラムと同じ名前のものがあります。これを正しい型にします。
今回の例では,outputを「論理値」にしてください。
下の図を見てください。サブプログラムは、デフォルトの出力パラメータが整数型になっています。出力のパラメータが重要でない(親プログラムで必要としない)プログラムを作る場合、型の変更を忘れがちですので注意が必要です。
最終更新:
2009-03-19 15:46
改訂:
1.0
評価点数:0 (0 件の投票)
Chuck Norris has counted to infinity. Twice.

このカテゴリー内のレコード

タグ