SA0019:暗黙のポインタ変換 暗黙的に生成されたポインタ変換を取得します。 位置揃え: で CODESYS 、ポインタは厳密に型指定されておらず、任意の方法で相互に割り当てることができます。これは頻繁に使用されるため、コンパイラによって報告されません。ただし、誤って予期しないアクセスが発生する可能性もあります。を割り当てると、 POINTER TO BYTE に POINTER TO DWOR
SA0130: 暗黙的な拡張変換 算術演算中に小さいデータ型から大きいデータ型への変換が暗黙的に実行されるコードの位置を検出します。 理由: ソース型の値の範囲がターゲット型の値の範囲内に完全に含まれている場合、コンパイラは異なる型の代入を許可します。ただし、コンパイラは、できる限り遅いタイミングでコードへの変換を構築します。タイプの割り当ての場合 lint := dint * dint の場合、
SA0133:明示的なナローイング変換 大きいデータ型から小さいデータ型への明示的に実行された変換を決定します。 根拠: 多数の型変換が行われる場合は、変数に間違ったデータ型を選択したことを示している可能性があります。このため、データ型変換の明示的な理由を要求するプログラミング ガイドラインがあります。 重要度:低 例 55 . 例 PROGRAM SA0133 VAR siVar:SINT; d
SA0134:明示的な符号付き/符号なし変換 明示的に実行された、符号付きデータ型から符号なしデータ型への変換、およびその逆の変換を検出します。 正当性: 型変換を過度に使用すると、変数に対して間違ったデータ型が選択された可能性があります。このため、データ型変換の明示的な理由を要求するプログラミング ガイドラインがあります。 重要度:低 例 56 . 例 PROGRAM PLC_PRG VAR b
SA0005:無効なアドレスとデータ型 無効なアドレスとデータ型の指定を検出します。アドレス内の有効なサイズプレフィックス:X for BOOL 、Bは1バイトのデータ型、Wは2バイトのデータ型、Dは4バイトのデータ型です。 理由:直接アドレスにある変数は、データ型の範囲に対応するアドレスに関連付ける必要があります。たとえば、次の場合、コードの読者を混乱させる可能性があります。 DWORD に B
SA0047:直接アドレスへのアクセス 実装コードでの直接アドレスアクセスを決定します。 理由:シンボリックプログラミングが常に望ましい:変数には意味を持つこともできる名前があります。アドレスが何に使用されているかはわかりません。 重要性:高い PLCopenルール:N1 / CP1 例 58 . 例 PROGRAM PLC_PRG VAR xVar : BOOL; byVar : BYTE; E
SA0048:直接アドレスのAT宣言 決定 AT -直接アドレスに関する宣言。 コード内で直接アドレスを使用すると、アドレスが複数の場所に出現するため問題が発生します。 最初のコントローラー構成では、物理オブジェクトのアドレスへの割り当てが定義されます。 プログラムの 2 番目では、変数がこれらのアドレスに割り当てられます。 構成の変更によりアドレスが再配置された場合は、プログラム内のまったく別の
オペレーターのためのルール このセクションの内容 :