Vai al contenuto
PLC Forum


Assegnazione Di Variabili Gloabali


Messaggi consigliati

Inserito: (modificato)

Sto cercando di capire l'assegnazione di variabili globali. Cerco di spiegarmi.

Consideriamo di avere in SCL un FB8 cosi fatto:

FUNCTION_BLOCK FB8

VAR

valore1: int;

END_VAR

valore1:= 100;

DB10.DW2:=valore1;

END_FUNCTION_BLOCK

Il 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 FB9

VAR

valore1: INT;

END_VAR

valore1:= 20;

MW0:=valore1;

END_FUNCTION_BLOCK

anche questa assegnazione mi da errore.

Dove sbaglio?

Grazie

Modificato: da mautomazione

Inserita:

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

Inserita:

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

Inserita:

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

Inserita:

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.

Inserita:

ho sbagliato, miha tratto in inganno l'indirizzo

DB10.DW2:=valore1;

che dovrebbe essere DB10.DBW2:=valore1

Ho provato il tuo FB9 i Step7 e a me funziona.

Ciao

Inserita:

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 FB9

VAR

valore1: INT;

END_VAR

valore1:= 20;

MW0:= valore1;

END_FUNCTION_BLOCK

dove sbaglio?

Inserita: (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: da gaserma

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