noviltec Inserito: 21 maggio 2010 Segnala Share Inserito: 21 maggio 2010 Salve, Su un libro di programmazione PLC, vengono indicate l'esistenza di due tipi di variabiliQuelle 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 More sharing options...
batta Inserita: 21 maggio 2010 Segnala Share Inserita: 21 maggio 2010 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 More sharing options...
noviltec Inserita: 22 maggio 2010 Autore Segnala Share Inserita: 22 maggio 2010 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 spiegatoCiao Link al commento Condividi su altri siti More sharing options...
cagliostro Inserita: 22 maggio 2010 Segnala Share Inserita: 22 maggio 2010 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.1Però 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 More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora