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
CODESYS Development System
ST 式 式は、評価後に値を返す構造です。 式は演算子とオペランドで構成されます。で 拡張構造化テキスト (ExST) 、代入を式として使用することもできます。 オペランドには、定数、変数、関数呼び出し、または別の式を指定できます。 特別な ST 式には次のようなものもあります。 アクセス に 配列変数の要素 構造体変数の構成要素 ファンクションブロックインスタンスまたはプログラムの変数 メソッド
CODESYS Development System
属性:monitoring_display 宣言におけるこのプラグマ ファンクションブロック または 構造 指定されたメンバーの現在の値( 財産 oder Variable)もモニタリングに表示されます。 次に、機能ブロックまたは構造体メンバーの値が、機能ブロックまたは構造体のタイプの変数の監視の最上行に表示されます。 構文: {attribute 'monitoring_display' :=
CODESYS Development System
演算子:__ VARINFO 演算子は、IEC61131-3規格の拡張です。 演算子は、変数に関する情報を生成します。データ型の変数にデータ構造として情報を保存できます __SYSTEM.VAR_INFO 。 宣言の構文 <name of the info variable> : __SYSTEM.VAR_INFO; // Data structure for info variable 呼び出し
CODESYS Development System
演算子:__XADD マルチコア演算子は、IEC61131-3規格の拡張です。 演算子は、アトミックカウンターを実装するために使用できます。整数変数が通常の加算によってインクリメントされる場合、たとえば iTest := iTest + 1; 、この場合、この操作はアトミックに実行されません。変数への別のアクセスは、変数の読み取りと書き込みの間に行われる可能性があります。 カウンターが複数のタスク