SA0073:非一時的なカウンター変数の使用 の非一時変数の使用を検出します FOR -グラインド。 理由:これはパフォーマンスの警告です。カウンタ変数は、プログラミングブロックが呼び出されるたびに常に初期化されます。このような変数を一時変数として使用できます( VAR_TEMP )、アクセスが高速になる可能性があり、変数は永続的なメモリスペースを占有しません。 重要性:中 PLCopenルール:
SA0075:ELSEがありません 決定 CASE -なしの指示 ELSE -ブランチ。 理論的根拠:防御的なプログラミングには、 ELSE それぞれに CASE -命令。もし私が ELSE -何もすることがない場合は、コメントでマークする必要があります。そうすれば、コードの読者には、事件が単に忘れられたのではないことが明らかになります。 重要度:低 PLCopenルール:L17 重要 For C
SA0077:CASE式のデータ型の不一致 条件のデータ型がdesのデータ型と一致しないコード位置を検索します CASE -ブランチの一致。 理由:データ型が CASE -変数と CASE -一致しない場合は、エラーを示している可能性があります。 重要度:低 例 83 . 例 TYPE My_Enum : ( eins := 1, zwei := 2, drei := 3, vier := 4 )
SA0078:CASEブランチのないCASEステートメント 決定 CASE -なしの指示 CASE -ブランチと1つだけ ELSE -命令。 理由: A CASE ケースのないステートメントは実行時間が無駄になり、読みにくくなります。 重要性:中 例 84 . 例 PROGRAM PLC_PRG VAR iVar : INT; xTemp : BOOL; END_VAR iVar := iVar
SA0039:nullポインタの逆参照の可能性 nullポインタが逆参照される可能性のあるコードを決定します。 正当性: ポインターは、各逆参照の前にチェックして、ゼロに等しくないことを確認する必要があります。そうしないと、実行時にアクセス違反が発生する可能性があります。 重要性:高い 例 113 . 例 PROGRAM PLC_PRG VAR ptiVar1:POINTER TO INT; pt
SA0122:式として定義された配列インデックス 配列インデックスを宣言するときの式の使用を検出します。 理由:すべてのシステムが式を配列境界として許可しているわけではありません。 重要度:低 例 105 . 例 PROGRAM PLC_PRG VAR CONSTANT c_iValue : INT := INT#15; END_VAR VAR arr : ARRAY [0..c_iValue +
CANopen診断 この章では、CANopenプロトコルによって提供される診断オプションについて説明します。 CANopen州 CANopenネットワークは、NMTマスター(ネットワーク管理)とNMTスレーブで構成されています。この場合、NMTマスターはすべてのデバイスを制御し、それらの通信状態を変更できます。 CANopenデバイスは、次の4つの状態のいずれかになります。 初期化:スイッチをオン
CANopen診断 この章では、CANopenプロトコルによって提供される診断オプションについて説明します。 CANopen州 CANopenネットワークは、NMTマスター(ネットワーク管理)とNMTスレーブで構成されています。この場合、NMTマスターはすべてのデバイスを制御し、それらの通信状態を変更できます。 CANopenデバイスは、次の4つの状態のいずれかになります。 初期化:スイッチをオン
スイッチポイント(H機能) 関数 :スイッチポイント機能またはH機能は、バイナリのパス依存スイッチをアクティブにします。最大3つのスイッチポイント( MAX_SWITCHES )パス要素ごとに処理できます。 構文 [G-Befehl] H O/L 最初に、スイッチポイント番号H <number>が定義され、次にパス要素内のスイッチポイントの位置が絶対(L <position>ワード)または相対(O
コマンド: 連絡先を挿入 シンボル: 、エディターで ショートカット: コントロール + K 関数 : このコマンドは、ネットワーク内の連絡先を、選択した要素の左側に挿入します。要素をツールボックスから実装パーツにドラッグすると、カーソルのプラス記号 ( ) は、可能な挿入位置を認識するのに役立ちます。 電話 : ラダー メニュー; コンテキスト メニュー 要件 :回線または連絡先が選択されていま