mautomazione Inserito: 12 novembre 2010 Segnala Share Inserito: 12 novembre 2010 (modificato) Sto cercando di capire l'assegnazione di variabili globali. Cerco di spiegarmi.Consideriamo di avere in SCL un FB8 cosi fatto:FUNCTION_BLOCK FB8VAR valore1: int;END_VARvalore1:= 100;DB10.DW2:=valore1;END_FUNCTION_BLOCKIl DB10 è un blocco dati globale e all'inirizzo 2.0 è definita una variabile var1 di tipo INT.La compilazione mi da errore perchè mi dice tipo di dati non valido. Forse non è possibile fare l'assegnazione quando i dati sono INT?Altra domanda:Ho il seguente FB9:FUNCTION_BLOCK FB9VAR valore1: INT;END_VARvalore1:= 20;MW0:=valore1;END_FUNCTION_BLOCKanche questa assegnazione mi da errore. Dove sbaglio?Grazie Modificato: 12 novembre 2010 da mautomazione Link al commento Condividi su altri siti More sharing options...
amed Inserita: 13 novembre 2010 Segnala Share Inserita: 13 novembre 2010 Io non conosco SLC, però così ad occhio proverei a scrivere :valore1: DWord;visto che la destinazione è una doppia word.valore1: Word;visto che questa volta la destinazione è la word MW0.Ciao Link al commento Condividi su altri siti More sharing options...
mautomazione Inserita: 13 novembre 2010 Autore Segnala Share Inserita: 13 novembre 2010 Ok. ma se la variabile variabile1 è di tipo INT e la voglio assegnare ad una variabile di un DB globale sempre di tipo INT non è possibile?grazie Link al commento Condividi su altri siti More sharing options...
amed Inserita: 13 novembre 2010 Segnala Share Inserita: 13 novembre 2010 Il tuo numero intero "valore1=100" va, secondo me, scritto in una doppia word perchè va a finire in una doppia word della DB d'istanza. devi provare. Ciao Link al commento Condividi su altri siti More sharing options...
amed Inserita: 13 novembre 2010 Segnala Share Inserita: 13 novembre 2010 Puoi provare anche ascrivere:valore1: DInt Link al commento Condividi su altri siti More sharing options...
mautomazione Inserita: 13 novembre 2010 Autore Segnala Share Inserita: 13 novembre 2010 ho provato ma la scrittura DB10.DINT 2:= valore; mi da errore, facendo F1 sull'errore mi dice che probabilmente sto tentando l'accesso ad una struttura che non esiste. Link al commento Condividi su altri siti More sharing options...
amed Inserita: 14 novembre 2010 Segnala Share Inserita: 14 novembre 2010 ho sbagliato, miha tratto in inganno l'indirizzo DB10.DW2:=valore1;che dovrebbe essere DB10.DBW2:=valore1Ho provato il tuo FB9 i Step7 e a me funziona.Ciao Link al commento Condividi su altri siti More sharing options...
mautomazione Inserita: 14 novembre 2010 Autore Segnala Share Inserita: 14 novembre 2010 ok la mia scrittura errata ma da sempre errore perchè tento di assegnare tramite DB10.DBW2:=valore1 un valore INT ad un una WORD.per FB9 questo sotto mi da errore:FUNCTION_BLOCK FB9VARvalore1: INT;END_VARvalore1:= 20;MW0:= valore1;END_FUNCTION_BLOCKdove sbaglio? Link al commento Condividi su altri siti More sharing options...
gaserma Inserita: 17 novembre 2010 Segnala Share Inserita: 17 novembre 2010 (modificato) Non conosco SCL, ma credo che l'assegnazione DB10.DBW2:=valore1 corrisponda ad un MOVE valore 1 in DB10.DBW2.Se è così Ti chiedo: - ma il Blocco Dati globale DB10 l'hai creato e inserito nel progetto ?- hai assegnato a DB10.DBW2 il tipo dati INT ? Modificato: 17 novembre 2010 da gaserma 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