Değişken: SÜREKLİ Permalink

Kalıcı değişkenler bildirim bölümünde ‎VAR_GLOBAL RETAIN PERSISTENT‎ kalıcı global değişken listesinde bildirilir. Kalıcılık düzenleyicisinin dışında ‎PERSISTENT‎ anahtar sözcüğü ile işaretlenen değişkenler için örnek yolları buraya eklenir.

CODESYS V3.3.0.1 sürümünden itibaren, ‎RETAIN PERSISTENT‎ veya ‎PERSISTENT‎ ile yapılan değişken bildirimi ile aynı etkiye sahiptir.

Bir fonksiyon bloğunda, yalnızca ‎PERSISTENT‎ ile yapılan herhangi bir değişken bildirimi olmamalıdır; sadece ‎PERSISTENT RETAIN‎ veya ‎RETAIN PERSISTENT‎ ile yapılan bildirimler bulunmalıdır.

Global kalıcı değişken listesindeki bildirimin sözdizimi ‎PersistentVars‎

VAR_GLOBAL PERSISTENT RETAIN
    <identifier> : <data type> (:= <initialization>)?;
 <instance path to POU variable>
END_VAR

POU'lardaki beyanın sözdizimi

<scope> PERSISTENT RETAIN
    <identifier> : <data type> ( := <initialization> )?; // ( ... )? : Optional
END_VAR
<scope> : VAR | VAR_INPUT | VAR_OUTPUT | VAR_IN_OUT | VAR_STAT | VAR_GLOBAL

Girişlerin, çıkışların veya bellek adreslerinin ‎AT‎ anahtar sözcüğü ile atanmasına izin verilmez.

Kalıcı değişken listelerinde asla ‎POINTER TO‎ veri türünü kullanmayın. Uygulama tekrar indirilirse adresleri değişebilir. İlgili derleyici uyarıları mesaj penceresinde gösterilir.

Kalıcı değişkenlerin adlarını veya veri türlerini sık sık değiştiriyorsanız, bunları yalnızca ‎RETAIN‎ anahtar sözcüğüyle kalıcı değişkenler olarak bildirmek daha iyidir.

NOT

NOT
NOT
NOT

NOT

NOT

Örnek yolları eklemekten kaçının çünkü bu durumda iki kat daha fazla bellek kullanılır ve daha yüksek bir döngü süresi oluşabilir. Bunun yerine, değişkenleri kalıcı değişkenler listesinde bildirin.

Örnek

‎PersistentVars‎ kalıcı değişken listesindeki bildirim

{attribute 'qualified_only'}
VAR_GLOBAL PERSISTENT RETAIN
        g_iCounter : INT;
        // Generated instance path of persistent variable
        PLC_PRG.fb_A.iPersistentCounter_A: INT;
END_VAR

‎FB_A‎ fonksiyon bloğundaki bildirim

FUNCTION_BLOCK FB_A
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR PERSISTENT RETAIN
        iPersistentCounter_A : INT;
END_VAR

‎PLC_PRG‎ programında beyan

VAR
        fb_A1 : FB_A;
END_VAR

Olası beyan yerleri

Açıklama

Doğrudan kalıcı global değişken listesinde

Değişken kalıcıdır ve korumalı bellek alanında bulunur.

Kalıcı değişken listesinde bir örnek yolu bulunan bir programda lokal olarak

Kalıcı değişken listesinde bir örnek yolu bulunan bir fonksiyon bloğunda lokal olarak

Değişken kalıcıdır ve korumalı bellek alanında ve bellekte bulunur (çift tahsis).

Bir programda yalnızca lokal olarak

Sadece lokal olarak bir fonksiyon bloğunda

Değişken kalıcı değildir. Mesaj penceresinde bir uyarı gösterilir.

TIP:

Değişkenleri kalıcı değişken listesine almak için «Declarations  Add All Instance Paths» öğesine tıklayın.

Bir fonksiyon içinde lokal olarak

Bu tür bir beyanın herhangi bir etkisi yoktur. Değişken kalıcı değildir.

Kalıcılık düzenleyicisinde, lokal değişkenler ‎PERSISTENT‎ olarak işaretlenmişse «Bildirimler  Tüm Örnek Yollarını Ekle» öğesine tıklayın.

Mümkün olduğunca, bir fonksiyon bloğunda bildirilen değişkenleri ‎PERSISTENT‎ olarak işaretlemekten kaçının. Bunun nedeni, işlev bloğu örneğinin yalnızca işaretli değişkende değil, tamamen kalıcı bellekte depolanmasıdır.