Vai al contenuto
PLC Forum


Trasferire un intero su una mw


Linotix

Messaggi consigliati

Salve,vorrei che qualcuno risolvesse questo mio dubbio. Trasferisco un intero su una mw, e nel caso non esista la condizione per la quale il trasferimento venga effettuato, sulla mw mi esce un valore decimale  di -16384. Se il trasferimento è in atto invece il valore esce corretto. Perché? Anche se la azzero prima, se tolgo la condizione torna a -16384. Ho provato anche a trasferire un dint su una mw ma è la stessa cosa. Grazie

Link al commento
Condividi su altri siti


Mah non mi sembra   E comunque ho provato anche a cambiare mw ed usarne un’altra con lo stesso risultato. Il valore lo prendo all’uscita di una fb e viene caricato da una db di istanza dove è salvato. Da lì lo trasferisco alla mw

Modificato: da Linotix
Link al commento
Condividi su altri siti

Mi sono accorto che questo valore viene caricatoi da una memoria temporanea della fb, che se non resettata prima di usarla genera questo valore negativo. È normale? Le temporanee vanno quindi resettate ??

Link al commento
Condividi su altri siti

Io ho un software su un s7-300 che uso come una calcolatrice di trigonometria, ma a farlo andare bene con le variabili temporanee ho sudato 7 camice delle volte si verificano delle cose inspiegabili, sono comode e utili da utilizzare sui blocchi fb ma roba da usare con le pinzette, sopratutto nei software con molti blocchi...

Link al commento
Condividi su altri siti

  • 2 weeks later...

Secondo me non così impossibile, basta ricordarsi che se uso una var TEMP, prima devo scriverla e poi usarla, per tutti gli altri casi uso una "STAT".

Buon anno

Link al commento
Condividi su altri siti

il 28/12/2018 at 11:29 , Linotix scrisse:

Mi sono accorto che questo valore viene caricatoi da una memoria temporanea della fb, che se non resettata prima di usarla genera questo valore negativo. È normale? Le temporanee vanno quindi resettate ??

Le temp sono per definizione delle variabili temporanee e, se non sono azzerate, possono assumere praticamente qualunque valore a seconda di come è costruito il tuo codice.  Ti consiglio o di inizializzarla da qualche parte nel programma se a causa di qualche salto nel codice questa variabile non dovesse assumere il valore che ci vuoi impostare . Ricordati anche che se scrivi un valore dentro una variabile temporanea, la variabile temp "memorizzerà" il valore appena scritto per una scansione del plc. Se alla successiva scansione non ci scrivi pià nulla, hai già perso il dato precedentemente memorizzato.

Link al commento
Condividi su altri siti

Quote

Ti consiglio o di inizializzarla da qualche parte nel programma se a causa di qualche salto nel codice questa variabile non dovesse assumere il valore che ci vuoi impostare . Ricordati anche che se scrivi un valore dentro una variabile temporanea, la variabile temp "memorizzerà" il valore appena scritto per una scansione del plc. Se alla successiva scansione non ci scrivi pià nulla, hai già perso il dato precedentemente memorizzato.

Attento quanto hai scritto è vero in parte, in quanto la tua affermazione è vero solo se c'è un unico FC o FB, con più FC richiamati, la var temp è valida solo all'interno della FC che sta ciclando in quel momento.

 

Saluti

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