Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Differenze Tra Variabili Stat E Variabili Temp


Messaggi consigliati

Inserito: (modificato)

Salve a tutti, avrei bisogno di chiarimenti in merito alle variabili statiche e temporanee e soprattutto quando utilizzare le une e le altre nella programmazione PLC.

Grazie in anticipo.

Franco.

Modificato: da Franco d

Inserita:

Le variabili temporanee vengono utilizzate all'interno di un blocco (es. FC per siemens Lad per AB) ed hanno valore soltanto all'interno del blocco che in quel momneto viene elaborato, mentre le altre sono variabili, che non definirei statiche, ma ben si globali (Staticho è un qualcosa che non cambia mentre il nome variabile dice il contrario) sono quelle visibili in tutto il programma indipendentemente dal blocco in esecuzione.

Spero di essere stato abbastanza chiaro.

Per il loro usa non eseiste una regola assoluta, dipende dal utilizzo che ne voi fare della variabile.

Per la siemens qualche differenza esiste, bel senso che una variabile globale occupa "una parte della memoria" per sempre, mentre una variabile temporanea viene allocata soltatnto quando viene richiamato il blocco che la usa, ecco xchè si consiglia di assegnarne il valore ogni volta che si esegue il blocco.

Inserita:
Le variabili temporanee vengono utilizzate all'interno di un blocco (es. FC per siemens Lad per AB) ed hanno valore soltanto all'interno del blocco che in quel momneto viene elaborato

Anche le variabili formali sono valide all'interno di un blocco FB. Tuttavia, mentre queste ultime vengono memorizzate nel DB di istanza, le variabili temporanee vengono eliminate (in quanto memorizzate nello stack dei dati globali).

mentre le altre sono variabili, che non definirei statiche, ma ben si globali

Le variabili statiche sono variabili memorizzate nel DB di istanza, ma valide SOLO nel blocco ad esse associato.

Le variabili globali, sono valide in tutto il programma.

Inserita:

Ringrazio Varlux e TravelMen per aver preso in considerazione i miei dubbi. Quindi in definitiva possiamo dire che all'interno di una FB (almeno per il PLC della Siemens dovrebbe essere così) posso definire variabili locali sia statiche che temporanee. Mentre il valore delle seconde viene azzerato non appena il PLC finisce l'elaborazione dell'FB, il valore delle prime vengono conservate nel blocco dati di istanza associato alla FB anche dopo che il PLC ha terminato l'elaborazione dell'FB. A questo punto però il mio ulteriore dubbio è: si possono definire dei criteri, seppur molto generali, in base ai quali si possa decidere, quando ho bisogno di definire una variabile locale all'interno di una FB, se usare una statica o una temporanea?

Grazie ancora.

Franco d.

Inserita:
posso definire variabili locali sia statiche che temporanee

In realtà le tue variabili locali possono essere anche "IN"; "OUT"; "IN\OUT"

si possono definire dei criteri, seppur molto generali, in base ai quali si possa decidere, quando ho bisogno di definire una variabile locale all'interno di una FB, se usare una statica o una temporanea?

Tutto dipende dalle esigenze della tua applicazione

Grazie ancora

E' stato un piacere. :)

Inserita:
posso definire variabili locali sia statiche che temporanee

In realtà le tue variabili locali possono essere anche "IN"; "OUT"; "IN\OUT"

Se parliamo di FB le variabili "IN"; "OUT": "IN/OUT" sono statiche xchè se vai ad aprire la DB di istanza relativa al FB le trovi, mentre se parliamo di FC le variabili "IN" "OUT" "IN/OUT" sono locali all'interno dalla FC stessa.

Per cui se all'interno di un FC valessi leggere e scrivere una variablie, la devo passare all'FC come "IN/OUT", mentre se si tratta di un FB leggo e scrivo anche quelle definite come "IN" "OUT" xchè appoggiate alla DB di istanza del FB ;)

Inserita:

se vuoi un consiglio , cerca di avitare l'uso di tanti FB con relativi Db di istanza .

Sono pesanti da digerire per la cpu .

Puoi sempre creare degli FC con i relativi DB .

Basta che ne scrivi uno di DB , oppure scrivi un UDT e poi copi ed incolli .

E' molto piu snello cosi ....

Ogni cosa e' da ritenersi puramente casuale e senza riferimento alcuno .

ciao

walter

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...