SA0008:サブエリアタイプを確認してください
サブレンジタイプのレンジ違反を検出します。割り当てられたリテラルは、コンパイラによってすでにチェックされています。定数が割り当てられている場合、値は定義された範囲内にある必要があります。変数をマップする場合、データ型は同じである必要があります。
理由:サブエリアタイプを使用する場合は、このサブエリアが終了しないようにする必要があります。コンパイラーは、定数割り当てについてそのようなサブ範囲違反のみをチェックします。
重要度:低
ヒント
コード構造で許可されていないため、CFCオブジェクトのチェックは実行されません。
例 20. 例
VAR_GLOBAL iVarGlob:INT; END_VAR
PROGRAM PLC_PRG VAR iSubr1: INT (INT#1..INT#10); iSubr2: INT (INT#1..INT#1000); iCount: INT; by_SubType : BYTE (BYTE#0..BYTE#11); iVar : INT (-4095..4095); END_VAR
iSubr1 := nCount; // SA0008 iSubr1 := subr2; // SA0008 iSubr1 := gvl.iVarGlob; // SA0008 //byBYTE_SubType := BYTE#123; //already detected by compiler, error "Cannot convert type..."
での出力 メッセージ ビュー:
SA0008: 部分範囲変数 'iSubr1' が許容範囲外である可能性があります