c_timTransmissionRate
通常、永続変数リストを使用して初期化される入力変数があります。関数ブロックの永続変数リストのデフォルト値はTxRaw
、インスタンス化関数ブロック「TxDbc」によって上書きされます。これもまた、永続変数リスト自体でオーバーライドされるアプリケーション固有のものです。
いくつかのケースでは、実行時c_timTransmissionRate
にインスタンス化機能ブロックによって値が動的に提供さTxTsc1
れます。
私の問題は、現在TIME#0ms
、永続変数リストで指定された値ではなく、デバッガーに常に元の値が表示されることです。
現在のコードの抜粋:
FUNCTION_BLOCK TxRaw
VAR_INPUT PERSISTENT CONSTANT
c_timTransmissionRate : TIME := T#0ms;
END_VAR
(* instructions *)
END_FUNCTION_BLOCK
FUNCTION_BLOCK Tx
VAR
tx : TxRaw;
END_VAR
(* instructions *)
tx();
(* instructions *)
END_FUNCTION_BLOCK
FUNCTION_BLOCK TxTsc1 EXTENDS Tx
(* instructions *)
tx.c_timTransmissionRate := PI()*THUMB();
SUPER^();
END_FUNCTION_BLOCK
FUNCTION BLOCK TxDbc EXTENDS Tx
VAR
tx : TX := (c_timTransmissionRate := T#20ms);
END_VAR
(* instructions *)
SUPER^();
END_FUNCTION_BLOCK