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>
| Richiesto Indirizzo nell'area di memoria
|
<prefisso dell'area di memoria> | Richiesto
|
<prefisso di dimensione> | Facoltativo
|
<posizione di memoria> | <numero di posizione > Esempio: |
<numero di posizione> | Richiesto La numerazione dipende dal sistema di destinazione e inizia da 0. |
| 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.
| Indirizzo a bit singolo del bit di uscita 7.5 |
| Indirizzo word della word di ingresso 215 |
| Indirizzo del byte del byte di uscita 7 |
| Indirizzo di una doppia parola nella posizione di memoria 48 nella memoria flag |
| 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 |
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

n = numero di 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