DUT con elementi sovrapposti

Occupazione di memoria:

Tutti gli elementi dello stesso tipo di dato (BOOL, WORD, INT, DWORD, DINT, REAL e STRING con la stessa lunghezza di stringa) vengono raggruppati insieme e allocati uno dopo l'altro a partire da un indirizzo iniziale comune. Anche gli array di dati vengono allocati a questo indirizzo iniziale comune.

Le seguenti condizioni si applicano a questo indirizzo iniziale: Se una DUT è composta da elementi di tipo BOOL o ARRAY OF BOOL, viene memorizzata in un'area di memoria riservata per bit; diversamente, viene memorizzata in un'area di memoria riservata per word a 16-bit.

Per evitare ambiguità durante l'inizializzazione, non è consentita alcuna inizializzazione. Vengono eseguite le seguenti inizializzazioni di default:

Tipo di dato

Valore iniziale

BOOL

FALSE

WORD, INT, UINT, DWORD, DINT, UDINT

0

REAL

0.0

STRING

'' (stringa vuota)

NOTA
  • L'indirizzo occupato dalla lunghezza massima della stringa viene inizializzato con la lunghezza massima della stringa che è maggiore o uguale a zero. Il resto della stringa è inizializzato con degli zeri.

  • Tutte le variabili degli elementi del tipo di dato STRING devono essere posizionate alla fine della dichiarazione.

  • In generale è necessario prestare attenzione a come l'area di memoria è occupata dai tipi di dati utilizzati.

  • Specialmente quando si utilizzano elementi STRING, ricordiamo che il modo particolare di occupare la memoria permette loro di essere sovrascritti ripetutamente con l'aiuto di altri elementi.

  • Assicurarsi che la lunghezza massima della stringa e la lunghezza corrente della stringa siano valori validi prima di utilizzare i comandi di stringa.

  • Una DUT non può essere utilizzata come una variabile di una DUT con elementi sovrapposti.

Esempio 1:

DUT senza elementi del tipo di dato BOOL DUTwithoutBOOLs:

In che modo le DUT con elementi sovrapposti occupano la memoria?

Area dati a 16 bit

       

DT100

WORD1

DWORD1

INT1

DINT1

REAL1

STRING1

DT101

WORD2

INT2

DT102

DWORD2

DINT2

DT103

STRING2

NOTA

Le variabili STRING1 e STRING2 devono avere la stessa lunghezza e trovarsi alla fine della dichiarazione.

DUT DUTwithBOOLs con elementi del tipo di dato BOOL (nessun indirizzo definito dall'utente):

In che modo le DUT con elementi sovrapposti occupano la memoria?

Area di bit

           

WR10

Bool14

Bools[04]

WORD1

DWORD1

INT1

DINT1

REAL1

STRING1

WR11

WORD2

INT2

WR12

DWORD2

DINT2

WR13

NOTA

La variabile STRING1 deve essere posizionata alla fine della dichiarazione.

DUT con array di dati:

In che modo le DUT con elementi sovrapposti occupano la memoria?

Area dati a 16 bit

     

DT100

String1_Max

String_Parts[1,1]

String1

StringS[1]

DT101

String1_Act

String_Parts[1,2]

DT102

String1_Char12

String_Parts[1,3]

DT103

String1_Char34

String_Parts[1,4]

DT104

String2_Max

String_Parts[2,1]

String2

StringS[2]

DT105

String2_Act

String_Parts[2,2]

DT106

String2_Char12

String_Parts[2,3]

DT107

String2_Char34

String_Parts[2,4]

NOTA

Le variabili String1, String2 e Strings devono avere la stessa lunghezza e trovarsi alla fine della dichiarazione.

Le DUT con elementi sovrapposti sono già predefinite nella FP tool library.

Argomenti correlati

L'ultima revisione: 2021-06-01Feedback su questa paginaPanasonic hotline