Colonial54 Inserito: 1 dicembre 2012 Segnala Inserito: 1 dicembre 2012 Salve a tutti Nei mesi recenti ho riscontrato alcuni problemi coi REAL Siemens S7 - 300; Utilizzo la versione V5.5 con HF3, se utilizzo le variabili TEMP delle FC come appoggio, spesso sbaglia clamorosamente i calcoli, per cui dove possibile mi appoggio a degli MD; In questo momento sto provando un sw di dosaggio con le seguenti operazioni: U( L DB230.DBD 10 //Actual loaded L DB230.DBD 40 //Set minus queue >=R ) O DB230.DBX 116.4 //Stop immediate SPBN C100 L 8 T DB230.DBB 0 C100: NOP 0 Se DB230.DBD10 = 240.0 e DB230.DBD 40 = 240.0 dovrei avere un risultato, nel caso entrare nella routinetta successiva, invece lo ottengo SOLO se metto DB23.DBD10 = ad almeno 240.01; Sulle VAT DB230.DBD10 e' inserito esattamente come 240.0, mentre sulla supervisione, solo in lettura, mi appare come 240.000015; di li il problema. Il sistema operativo del mio pc e' Windows XP SP3; Sono io che alla mia non piu' verde eta' sbaglio qualcosa? Un grazie anticipato a tutti
batta Inserita: 1 dicembre 2012 Segnala Inserita: 1 dicembre 2012 se utilizzo le variabili TEMP delle FC come appoggio, spesso sbaglia clamorosamente i calcoli Io faccio larghissimo uso delle variabili TEMP, e non ho mai avuto problemi. Dovresti postare un esempio dove hai riscontrato gli errori di cui parli. Sulle VAT DB230.DBD10 e' inserito esattamente come 240.0, mentre sulla supervisione, solo in lettura, mi appare come 240.000015 Ma il valore 240.0, come viene assegnato a DB230.DBD10? E' il risultato di un calcolo? Se è il risultato di un calcolo il valore reale potrebbe essere veramente 240.000015, anche se sulla VAT non vengono visualizzate tutte le cifre. Lo stesso discorso vale per DB230.DBD40. Se è il risultato di un calcolo, il valore reale potrebbe essere, per esempio, 240.000016, da cui il risultato apparentemente errato della comparazione.
77andreagas Inserita: 1 dicembre 2012 Segnala Inserita: 1 dicembre 2012 Ciao, molto strana la cosa....... anche io uso molto spesso real e variabili Temp ma non ho mai riscontrato questo problema! Concordo con Batta, posta il codice che vediamo se ci sono stranezze Comunque in tanti anni di lavoro ho provato parecchie volte a dare la colpa al firmaware, al sistema operativo, ma poi mi accorgevo sempre ch il 99.9999% delle volte era colpa mia...................
Colonial54 Inserita: 2 dicembre 2012 Autore Segnala Inserita: 2 dicembre 2012 Anche a me sembra strano, ma posso garantirvi che anche in altri sw, es. controllo assi, ho dovuto sostituire i TEMP, utilizzati da sempre, con degli MD oppure creare una DB con appoggi. Comunque di seguito il codice "incriminato": U DB250.DBX 52.0 //White included L 0.000000e+000 SPBN B004 L DB250.DBD 2 //White actual weight L DB250.DBD 6 //White initial tare -R ABS B004: T DB250.DBD 10 Il peso attuale DB250.DBD2, normalmente letto attraverso vari passagi da celle di carico e' qui totalmente simulato in una VAT, utilizzando valori tondi.. 100.0, 120.0 160.0 etc.Kg DB250.DBD 6 non e' altro che DB250.DBD2 memorizzato ad inizio ciclo; Questo e' il codice dove avviene l'errore: L DB250.DBB 0 L 6 ==I SPBN C100 SET S DB250.DBX 52.1 //Start FWD R DB250.DBX 52.2 //Stop REV U( L DB250.DBD 10 //Actual loaded L DB250.DBD 40 //Set minus queue >=R ) O DB250.DBX 116.4 //Stop immediate SPBN C100 L 8 T DB250.DBB 0 C100: NOP 0 DB250.DBD 40, set - coda (o volo che dir si voglia) e' anche qui un numero tondo,senza decimali e nelle prove la "coda" e' bloccata a zero. Ho sollevato la discussione anche perche' alcuni colleghi mi hanno confermato la presenza di questi problemi giustificandoli in un possible errore dovuto al fatto che S7 puo' funzionare sia su 32 che su 64 bit. Ho esaminato i sw riga per riga e posso garantire che questi valori non sono modificati in nessun altro punto, neppure attraverso puntatori, che potrebbero eventualmente sfuggire. L'idea sarebbe cercare di capire che sta succedendo per porvi poi rimedio. GraziePS. sul primo messaggio ho citato DB230, mentre sull'ultimo DB250; si tratta in realta' di 4 blocchi gemelli, ognuno riguardante un diverso dispositivo ma tutti afflitti dallo stesso problema.
batta Inserita: 2 dicembre 2012 Segnala Inserita: 2 dicembre 2012 Anche a me sembra strano, ma posso garantirvi che anche in altri sw, es. controllo assi, ho dovuto sostituire i TEMP, utilizzati da sempre, con degli MD oppure creare una DB con appoggi. Comunque di seguito il codice "incriminato": Ma le "TEMP" dove sono? Ti posso assicurare che, se usate correttamente, le TEMP funzionano benissimo. Se le hai dovute sostituire con MD o variabili di DB, significa che hai sbagliato qualcosa.
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