Değişkenleri aşağıdaki konumlarda bildirebilirsiniz:
-
Bir POU'nun beyan kısmı
«Declare Variable» iletişim kutusu bu konuda size yardımcı olur.
TIP:
Bir değişkeni tablo bildirim düzenleyicisinde tanımlarsanız, doğru sözdizimi otomatik olarak üretilir.
-
GVL veya NVL düzenleyicisinin beyan kısmı
-
Bir G/Ç cihaz nesnesinin G/Ç eşleme yapılandırması
Sözdizimi
( <pragma> )*
<scope> ( <type qualifier> )?
<identifier> (AT <address> )? : <data type> ( := <initial value> )? ;
END_VAR
|
Beyanname |
||
|
<pragma> |
Pragma (yok, bir veya birden fazla) Not: Bir pragma ekleyerek, bir veya daha fazla değişkenin davranışını ve özelliklerini etkileyebilirsiniz. |
|
|
|
Kapsam
|
|
|
|
Tip niteleyici
|
|
|
|
Tanımlayıcı, değişken adı Not: Bir tanımlayıcı atanırken "Tanımlayıcılar" bölümünde listelenen kurallara istisnasız uyulmalıdır. Buna ek olarak, tek tip isimlendirme için öneriler bulacaksınız. |
|
|
|
Giriş, çıkış veya bayrak bellek aralığında bir adresin atanması (I, Q veya M)
Örnek
|
|
|
|
Veri Tipi
|
|
|
|
İlk Değer
|
|
|
|
Opsiyonel |
|
|
|
İsteğe bağlı tekrarlama |
Örnek
GVL
{attribute 'qualified_only'}
{attribute 'linkalways'}
VAR_GLOBAL CONSTANT
g_ciMAX_A : INT := 100;
g_ciSPECIAL : INT := g_ciMAX_A - 10;
END_VAR
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
FB_DoIt (FB)
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;
PLC_PRG (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
-
Değişken başlatma