Sözdizimi Permalink

( <pragma> )
<scope> ( <type qualifier> )
    <identifier> (AT <address> ) : <data type> := <initial value>;
END_VAR

<pragma>

Tekrarlanan isteğe bağlı (hiçbir zaman, bir kez veya birden fazla kez)

Pragma

Pragma, derleyici deyisidir (örneğin, bellek gereksinimleri veya çalışma zamanı iyileştirmeleri gibi optimizasyonları sağlamak amacıyla kullanılır).

‎<scope>‎

Gerekli
Kapsam

  • ‎VAR‎

  • ‎VAR_CONFIG‎

    Not: Eksik adres bilgisine sahip değişkenler fonksiyon bloklarında bildirilirse (örneğin, ‎AT %I*‎), ‎VAR_CONFIG‎ değişken bildirimindeki değişkenler tam olarak bildirilmelidir. Bu değişkenlere yalnızca bu yapıldığında lokal bir örnekte erişebilirsiniz.

  • ‎VAR_EXTERNAL‎

  • ‎VAR_GLOBAL‎

  • ‎VAR_INPUT‎

  • ‎VAR_INST‎

  • ‎VAR_IN_OUT‎

  • ‎VAR_OUTPUT‎

  • ‎VAR_STAT‎

  • ‎VAR_TEMP‎

‎<type qualifier>‎

İsteğe bağlı
Tür belirleyicisi

  • ‎CONSTANT‎

  • ‎RETAIN‎

  • ‎PERSISTENT‎

‎<identifier>‎

Gerekli

Tanımlayıcı, değişken adı

Not: Bir tanımlayıcı atanırken, “Tanımlayıcı Belirleme” başlıklı bölümde yer alan kurallara istisnasız olarak uyulmalıdır. Buna ek olarak, tek tip isimlendirme için öneriler bulacaksınız.

‎AT %<address>‎

Opsiyonel

Adres şu şekilde oluşur:

<bellek alanı> <isteğe bağlı boyut önek> <bellek konumu>

Bellek alanı, giriş bellek alanı, çıkış bellek alanı veya bayrak bellek alanı (I, Q veya M) olarak alt bölümlere ayrılmıştır.

Örnek

Örnek

  • ‎AT %I* // Incomplete address‎

  • ‎AT %I7.5‎

  • ‎AT %IW0‎

  • ‎AT %QX7.5‎

  • ‎AT %MD48‎

‎<data type>‎

Zorunlu
Veri Türü

  • ‎<elementary data type>‎

  • ‎<custom data type>‎

  • ‎<function block >‎

‎<initial value>‎

Opsiyonel

Başlangıç değeri; sabit, değişken veya ifade olarak başlatma

Örnek

Küresel değişken listesi ‎GVL‎

{attribute 'qualified_only'}
{attribute 'linkalways'}
VAR_GLOBAL CONSTANT
        g_ciMAX_A : INT := 100;
        g_ciSPECIAL : INT := g_ciMAX_A - 10;
END_VAR

Yapılandırma değişkenleri ‎GVL_CONFIG‎

{attribute 'qualified_only'}
VAR_CONFIG
        // Generated instance path of variable at incomplete address
        PLC_PRG.fbDoItNow.XLOCINPUT AT %I*: BOOL := TRUE;
END_VAR

İşlev bloğu ‎FB_DoIt‎

METHOD METH_Last : INT
VAR_INPUT
  iVar : INT;
END_VAR
VAR_INST
  iLast : INT := 0;
END_VAR

METH_Last := iLast;
iLast := iVar;

FUNCTION_BLOCK FB_DoIt
VAR_INPUT
    wInput AT %IW0 : WORD; (* Input variable *)
END_VAR
VAR_OUTPUT
    wOutput AT %QW0 : WORD; (* Output variable *)
END_VAR
VAR_IN_OUT
    aData_A : ARRAY[0..1] OF DATA_A; // Formal variable
END_VAR
VAR_EXTERNAL
        GVL.g_ciMAX_A : INT; // Declared in object GVL
END_VAR
VAR_STAT
    iNumberFBCalls : INT;
END_VAR
VAR
        iCounter: INT;
        xLocInput AT %I* : BOOL := TRUE; // VAR_CONFIG
END_VAR

iNumberFBCalls := iNumberFBCalls + 1;

IEC programı ‎PLC_PRG‎

PROGRAM PLC_PRG
VAR
        iLoop: INT;
        iTest: INT;
        fbDoItNow : FB_DoIt;
        iTest_200: INT;
        aData_Now : ARRAY[0..1] OF DATA_A := [(iA_1 := 1, iA_2 := 10, dwA_3 := 16#00FF),(iA_1 := 2, iA_2 := 20, dwA_3 := 16#FF00)];
END_VAR

iTest := GVL.g_ciMAX_A;
iTest_200 :=  2 * GVL.g_ciMAX_A;
fbDoItNow(aData_A := aData_Now);
FOR iLoop := 0 TO GVL.g_ciSPECIAL DO
        ;
END_FOR