Vai al contenuto
PLC Forum


Variabile Locale E Variabile Globale - Come si idendificano?


noviltec

Messaggi consigliati

Salve,

Su un libro di programmazione PLC, vengono indicate l'esistenza di due tipi di variabili

Quelle Globali, che sono attive in tutto il programma e sottoprogrammi e quelle locali, che sono attive solo nel specifico sottoprogramma dove sono dichiarate.

In microwin, come si dichiara una variabile globale ed una locale?

Grazie

Link al commento
Condividi su altri siti


Le variabili globali sono le VBxxx, VWxxx, VDxxx ed i merker.

Le variabili locali sono quelle che dichiari nella tabella in alto, all'interno dei blocchi di programma.

Ricordati sempre che le variabili locali "muoiono" quando esci dal blocco di programma al quale appartengono.

Quindi, se tu in un blocco di programma effettui una lettura della variabile prima di averle assegnato un valore, quello che leggerai sarà del tutto casuale.

Link al commento
Condividi su altri siti

Tutto chiaro eccetto una cosa, se la variabile è di tipo bit (booleana), come faccio ad assegnarli un valore? (0-1)? lo acquisisce automaticamente nel momento che assegno ad un contato il nome della variabile locale?

Spero di essermi spiegato

Ciao

Link al commento
Condividi su altri siti

Salve,

non so se ho capito bene il tuo pensiero:

come faccio ad assegnarli un valore? (0-1)?

se intendi che l'assegnazione del valore non deve essere RLC dipendente, ma deve assumere un valore sempre = 0 o =1, allora puoi definire due variabili locali di tipo BOOL che andrai a gestire nel primo segmento della routine, il cui risultato logico dipende dal bit di sistema SM0.0 opportunamente trattato come da codice a seguire:

LD     SM0.0
=      #_On:L0.0
NOT
=      #_Off:L0.1

Però tutto questo non avrebbe molto senso, dal momento che potresti usare il bit di sistema SM0.0 negato o diretto.

lo acquisisce automaticamente nel momento che assegno ad un contato il nome della variabile locale?

Direi di no, leggendo da quanto hai postato qui sopra. L'acquisizione se intendi il valore 0 o 1 di una variabile non avviene in "automatico", ma sempre come risultato di una combinazione logica.

In questo caso invece se devono essere RLC dipendenti, allora come postato anche da batta devi far attenzione che la variabile/i BOOL in uso, non sia/no utilizzata/e in qualche segmento precedente a quello che ha generato il suo RLC (Risultato Logico Combinatorio).

Altrimenti corri il rischio di ottenere dei risultati che non sono consoni a quello che ti saresti aspettato.

Link al commento
Condividi su altri siti

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...