SA0014:インスタンスへの割り当て
機能ブロックインスタンスへの割り当てを決定します。ポインタ変数または参照変数を持つインスタンスの場合、これらの割り当てにはリスクが伴う可能性があります。
理由:これはパフォーマンスの警告です。インスタンスが別のインスタンスに割り当てられている場合、すべての要素とサブ要素が1つのインスタンスから別のインスタンスにコピーされます。データへのポインタもコピーされますが、参照データはコピーされないため、ターゲットインスタンスとソースインスタンスには、割り当て後に同じデータが含まれます。インスタンスのサイズによっては、このような割り当てに時間がかかる場合があります。たとえば、インスタンスを処理のために関数に渡す場合は、インスタンスへのポインタを渡す方がはるかに効率的です。
あるインスタンスから別のインスタンスに値を選択的にコピーする場合は、コピーメソッドが便利です:
inst_First.Copy_From(inst_Second)
重要性:中
例 27. 例
PROGRAM PLC_PRG VAR inst_First : My_FB; inst_Second : My_FB; END_VAR
inst_First(); inst_Second := inst_First; // SA0014
での出力 メッセージ ビュー:
SA0014: インスタンスの割り当て