Skip to main content

属性:init_on_onlchange

高速オンライン変更中の初期化コードなし

コンパイラ バージョン >= 3.5.0.0 以降、マイナーな変更に対して「高速オンライン変更」が実行されます。高速オンライン変更では、変更された POU のみがコンパイルおよびダウンロードされます。特に、初期化コードは生成されません。

変数の場合、 init_on_onlchange 属性、これはまた、 いいえ 初期化コードが生成されます。通常のシナリオでは、属性は通常アドレスで変数を初期化するために使用されるため、影響はありません。ただし、高速オンライン変更中に、変数がそのアドレスを変更することはあり得ません。

ただし、その影響を確認するために、 init_on_onlchange 属性は、アプリケーション コード全体に適用されます。一般に、アプリケーションでは、 no_fast_online_change コンパイラは、高速オンライン変更を無効にするように定義します。これを行うには、デバイス ツリーでアプリケーション オブジェクトを選択し、 プロパティ コンテキストメニューで。以下の 建てる タブで、 no_fast_online_change コンパイラ定義。

詳細については、次を参照してください。 建てる

このプラグマの効果は、プラグマが適用される変数がオンラインでの変更ごとに初期化されることです。

構文:

{attribute 'init_on_onlchange' }

挿入場所:変数が宣言されている行の上の行。

273.
VAR_GLOBAL    
    {attribute 'init_on_onlchange'}    
    g_fastOnlineChange : BOOL := FALSE;
END_VAR
{attribute 'call_after_online_change_slot' := '4567'}
FUNCTION FUNC_OnlineChangeDetection : BOOL
VAR_INPUT
END_VAR
VAR
END_VAR 

IF GVL_OnlineChangeDetection.g_fastOnlineChange THEN    
    // here you know that you are inside a FastOnlineChange
END_IF
// reset for next detection
GVL_OnlineChangeDetection.g_fastOnlineChange := TRUE;