属性: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;