Skip to main content

Indirizzi

Attenzione

Se si utilizzano puntatori agli indirizzi, il contenuto degli indirizzi può essere spostato durante una modifica online. Se si utilizzano indirizzi assoluti, il contenuto degli indirizzi non cambia durante una modifica online.

Sintassi:

% <numero dell'area di memoria> <prefisso di dimensione> <numero di posizione > .<numero di posizione del bit>

% <indirizzo>

Richiesto

Indirizzo nell'area di memoria

% <prefisso dell'area di memoria> <prefisso di dimensione> <posizione di memoria>

<prefisso dell'area di memoria>

Richiesto

  • I: Area di memoria di input

    Area di memoria per segnali di ingresso e ingressi

    Per ingressi fisici tramite driver di ingresso e sensori

  • Q: Area di memoria di uscita

    Area di memoria per segnali di uscita e uscite

    Per uscite fisiche tramite driver di uscita e attuatori

  • M: Contrassegna l'area di memoria

<prefisso di dimensione>

Facoltativo

  • Nessun prefisso di dimensione: bit

    Singolo bit

  • X: Bit

    Singolo bit

  • B: Byte

    Larghezza dati a 8 bit

  • W: Parola

    Larghezza dati a 16 bit

  • D: Spada

    Larghezza dati a 32 bit

<posizione di memoria>

<numero di posizione > . <numero di posizione del bit>

Esempio: %IB2.4 rappresenta il quinto bit del terzo byte

<numero di posizione>

Richiesto

La numerazione dipende dal sistema di destinazione e inizia da 0.

. <numero di posizione del bit>

Facoltativo

0.. 7 per un byte

Quando si definisce un indirizzo, si utilizzano stringhe specifiche per esprimere la posizione e la dimensione della memoria. Un indirizzo è contrassegnato dal segno di percentuale (%), seguito dal prefisso dell'intervallo di memoria, dal prefisso della dimensione opzionale e dalla posizione dell'intervallo di memoria. La numerazione utilizzata per indirizzare la posizione di memoria dipende dal sistema di destinazione.

Esempio 202. Esempi

%QX7.5

%Q7.5

Indirizzo a bit singolo del bit di uscita 7.5

%IW215

Indirizzo word della word di ingresso 215

%QB7

Indirizzo del byte del byte di uscita 7

%MD48

Indirizzo di una doppia parola nella posizione di memoria 48 nella memoria flag

%IW2.5.7.1

Indirizzo word di una word di ingresso; interpretazione dipendente dalla configurazione del controller corrente

VAR 
    wVar AT %IW0 : WORD; 
END_VAR

Dichiarazione di variabile con informazioni sull'indirizzo di una parola di ingresso

VAR 
    xActuator AT %QW0 : BOOL; 
END_VAR

Dichiarazione di variabile booleana

Nota: per le variabili booleane, un byte viene allocato internamente se non viene specificato un indirizzo a bit singolo. Una variazione del valore di xActuator influisce sulla gamma da QX0.0 a QX0.7.

VAR 
    xSensor AT %IX7.5 : BOOL; 
END_VAR

Dichiarazione di variabile booleana con specifica esplicita di un indirizzo a bit singolo

All'accesso viene letto solo il bit di ingresso 7.5.



Posizione di memoria

Assicurati che l'indirizzo sia valido come segue:

Per mappare un indirizzo valido in un'applicazione, devi prima conoscere la posizione richiesta nell'immagine del processo. Ciò significa l'area di memoria applicabile: area di memoria di input (I), area di memoria di uscita (Q) o contrassegna l'area di memoria (M) (vedi sopra). Inoltre, è necessario specificare il prefisso di dimensione richiesto: bit BYTE, WORD, DWORD (vedi sopra: X, B, W, D)

La configurazione e le impostazioni del dispositivo attualmente utilizzate (struttura hardware, descrizione del dispositivo, impostazioni I/O) svolgono un ruolo decisivo.

Presta particolare attenzione alle differenze nell'interpretazione degli indirizzi bit tra dispositivi con indirizzamento a byte e dispositivi con indirizzamento IEC orientato alle parole.

Nel caso dell'indirizzo bit %IX5.5, il numero prima del punto indica il byte 5 in un dispositivo con indirizzo in byte e la parola 5 in un dispositivo con indirizzo word.

Al contrario, l'indirizzamento con un indirizzo di parola o byte è indipendente dal tipo di dispositivo: con %IW5, la parola 5 è sempre indirizzata e con un indirizzo in byte %IB5 sempre byte 5. A seconda delle dimensioni e della modalità di indirizzamento, è quindi possibile indirizzare celle di memoria diverse con le stesse informazioni di indirizzo

La tabella seguente mostra il confronto tra l'indirizzamento a byte e l'indirizzamento IEC orientato alle parole per bit, byte, parole e parole doppie. Mostra inoltre le aree di memoria sovrapposte per l'indirizzamento dei byte. Vedi l'esempio alla fine della tabella.

Per quanto riguarda la sintassi, si noti che l'indirizzamento IEC è sempre orientato alle parole. Il numero della parola si trova prima del punto e il numero di bit dopo il

_cds_img_memorycells.png

n = numero di byte

Esempio 203. Esempio di aree di memoria sovrapposte per l'indirizzamento dei byte

D0 contiene B0 - B3. W0 contiene B0 e B1. W1 contiene B2 e B3. W2 contiene B4 e B5.

W1, ma anche D1, D2, e D3 non deve essere utilizzato per l'indirizzamento. In questo modo si evitano sovrapposizioni