Skip to main content

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..."

での出力 メッセージ ビュー:

  • sa_icon_message.png SA0008: 部分範囲変数 'iSubr1' が許容範囲外である可能性があります