×
Siemens Industry Online Support
Siemens AG
Tipo di articolo: Esempio di applicazione ID articolo: 6175256, Data articolo: 09/03/2008
(0)
Valuta

Accesso ad una multi-istanza

  • Articolo
  • Riguarda prodotto/i





DOMANDA:
Come si può rilevare l'indirizzo di una variabile in un blocco funzionale multi-istanza?

RISPOSTA:
In un blocco funzionale multi-istanza, nel caso dei parametri di blocco e dei dati locali statici, viene caricato l'indirizzo assoluto relativo al registro indirizzi AR2. Se si vuole rilevare l'indirizzo assoluto delle variabili in un blocco dati di istanza, si deve sommare il puntatore interno al campo (solo l'indirizzo di AR2) all'indirizzo caricato della variabile.

Esempio:

TAR2

// Carica registro indirizzi nell'ACCU 1 (offset)

UD DW#16#00FF_FFFF

// Maschera il codice di campo 

L P##variable

// Carica indirizzo delle variabili

+D

// Somma offset e indirizzo variabile

LAR1

// Salva il risultato nel registro indirizzi AR1

L'indirizzo assoluto si trova così disponibile in AR1 per una ulteriore elaborazione.
Questo metodo deve essere sempre utilizzato quando si richiamano i blocchi funzionali come istanza locale, cioè i blocchi funzionali vengono creati come variabile statica del tipo "FB" in un blocco funzionale. In questo modo tutti i dati delle istanze richiamate (blocco funzionale) vengono depositati in un blocco dei dati di istanza. L'offset relativa alle singole istanze si trova in AR2. Se i blocchi funzionali non vengono richiamati come istanza locale, si può evitare il calcolo. Nel registro indirizzi AR2 c'è allora il valore '0'.
Avvertenza:
Se nel programma si modifica il registro indirizzi AR2, allora si modifica anche l'indirizzo di offset delle variabili. Un accesso corretto alle variabili non è più garantito. Per ciò prima si deve memorizzare lo AR2 e, dopo l'elaborazione del programma, riportarlo nuovamente nella situazione iniziale.

Ulteriori informazioni sull'argomento si trovano nell'articolo

  • "Perché i richiami indiretti con l'impiego dello AR2 dopo la memorizzazione del blocco vengono sostituiti da dati locali statici?"
    nell’articolo con ID: 22531225.

Avvertenza
Altre informazioni sul funzionamento di multi-istanze si trovano nella Guida in linea STEP 7 sotto Multi-istanza. La si trovano diverse rubriche su questo argomento. Lo stesso vale anche per il tipo dati ANY, che si trova nella Guida in linea STEP 7 sotto
"? > Argomenti della guida > Indice > Formato: BLOCK > Tipo parametro ANY" .
Sotto "? > Argomenti della guida > Indice > ANY, Parametro: descrizione ed impiego"
si trova un esempio di come si può indicare indirettamente il campo dati.

Descrizione dell'esempio:
Nell'esempio viene richiamato due volte il blocco funzionale FB2 come istanza locale tramite il blocco funzionale FB1. Il blocco funzionale FB2 mostra in modi diversi come si può rilevare l'indirizzo delle variabili. Per rappresentare o capire meglio il calcolo dell'indirizzo, gli indirizzi sono disponibili come parametri di uscita. Qui si può capire meglio il comportamento (offset di AR2) sulla base di indirizzi attualmente in uscita. Come referenza vale anche l'attribuzione indirizzi nel DB di istanza. Inoltre la correttezza della funzionalità opp. del calcolo degli indirizzi viene confermato dai comandi di inserzione/disinserzione.

Parametri del blocco funzionale FB2:

 Dichiarazione

Nome

Tipo

Commento

In

Left

POINTER

Trasferimento di una variabile pointer ("1" imposta la variabile "ON_L")

In

Right

POINTER

Trasferimento di una variabile pointer ("1" imposta la variabile "ON_R")

In

OFF

BOOL

Trasferimento di una variabile del tipo BOOL ("1" resetta le variabili "ON_L" e "ON_R")

Out

ON_L

BOOL

Visualizza ("True" se In_Left e non In_Right e non In OFF)

Out

ON_R

BOOL

Visualizza ("True" se non OFF)

Out

FB_OFFSET_ADR

INT

Qui viene emesso l'indirizzo assoluto della variabile "OFFSET_ADR" all'interno dell'FB (N. byte)

Out

FB_MI_OFFSET_ADR

INT

Qui viene emesso l'indirizzo assoluto relativo all'istanza della variabile "OFFSET_ADR" (N. byte)

Out

ADR_Left

DWORD

Indirizzo di campo del parametro "Left"

Out

ADR_Right

DWORD

Indirizzo di campo del parametro "Right"

Out

ADR_OFF

DWORD

Indirizzo di campo del parametro "OFF"

Stat

OFFSET_ADR

WORD

Variabile di test per il rilevamento dell'indirizzo assoluto.


Software a pagamento (pagamento tramite SIMATIC Card)
L'esempio contiene un progetto STEP 7 V5 con la descrizione dei blocchi funzionali. È inoltre contenuto un richiamo di esempio dal blocco organizzativo OB1 ed una tabella delle variabili. I blocchi funzionali possono essere adattati liberamente alle proprie esigenze.

Kostenpflichtiger Download AdrMi.exe (52 KB, 25 unità)

Copiare il file "AdrMi.exe" in una directory separata ed avviarlo con un doppio clic. Il progetto STEP 7 V5 viene scompattato automaticamente con tutte le subdirectory corrispondenti. Poi si può aprirlo ed elaborarlo con il SIMATIC Manager .

Ricerca:
Programmazione dell’indirizzamento, puntatore indirizzi

Avvertenze di sicurezza
Per proteggere l’infrastruttura tecnica, i sistemi, i macchinari e le reti da minacce cyber, è necessario implementare (e salvaguardare continuamente) un concetto IT Security complessivo che sia conforme agli standard della tecnica correnti. I prodotti e le soluzioni di Siemens formano solo una parte di tale concetto. Ulteriori informazioni sulla Cyber Security si trovano sotto
https://www.siemens.com/cybersecurity#Ouraspiration.
Valuta articolo
nessuna valutazione
Richieste e feedback
Come vuoi procedere?
Avvertenza: il feedback si riferisce sempre all'articolo/al prodotto attuale. Il tuo messaggio verrà inviato ai redattori dell'Online Support. Se il tuo feedback lo richiede riceverai una risposta entro qualche giorno. Se non sono necessari ulteriori chiarimenti non ti invieremo alcun messaggio.