SA0147:異常な移動操作-strict ビットフィールドデータ型に適用されないビットシフト操作を決定します( BYTE 、 WORD 、 DWORD 、 LWORD ) それぞれ。 理由:IEC 61131-3規格では、ビットフィールドデータ型へのビットアクセスのみが許可されています。 the CODESYS ただし、コンパイラは、符号なしデータ型を使用したビットシフト演算も許可します。 重要
SA0148:異常なビットアクセス-strict ビットフィールドのデータ型に基づかないビットアクセスを決定します( BYTE 、 WORD 、 DWORD 、 LWORD ) それぞれ。 IEC 61131-3規格では、ビットフィールドデータ型へのビットアクセスのみが許可されています。 the CODESYS ただし、コンパイラは符号なしデータ型へのビットアクセスも許可します。 重要度: 低 例
SA0172: 配列の境界外へのアクセス試行の可能性 配列の境界外の配列インデックスへのアクセスの可能性を検出します。 多くの場合、配列インデックスの範囲を超えます。 FOR インデックス変数を使用して配列インデックスにアクセスするループ。 重要度: 高 例 129 . 例 PROGRAM Test VAR_TEMP iIndex: INT; arUSINT: Array[0..10] OF IN
SA0180: インデックス範囲が配列全体をカバーしていません インデックス範囲が不完全にカバーされている配列を検出します 配列はループ内で処理されることが多く、ループ インデックスによって配列にインデックスが付けられるため、配列のすべてのコンポーネントが隙間なくジャンプされます。これは、ループ インデックスと配列インデックスがすべての次元で同じである場合に与えられます。インデックス範囲が配列を完