MaChePLC Inserito: 4 aprile Segnala Share Inserito: 4 aprile Buongiorno, da come è possibile vedere dall'allegato il risultato finale dell’operazione è 900, ma nella variabile viene scritto 768. Questo non è un problema di visualizzazione, vedo lo stesso risultato anche nel valore della DB. La cosa assurda è che se, tenendo sempre sotto controllo il valore nella DB, faccio sparire dal video quella parte di codice, nella DB il valore della variabile si aggiorna correttamente e da 768 passa a 900! Altra assurdità è che se tolgo il commento che vedete sempre nell'immagine fa le cose correttamente e il risultato appare correttamente anche se non faccio sparire dal video quella parte di codice. Ho provato a sostituire anche la CPU (Open controller CPU 1505SP FW: V21.) ma il problema non cambia. Se lascio girare il programma senza attivare il debug (occhialini) il problema non si evidenzia!!! Me ne sono accorto perchè durante il debug arrivavano dei valori assurdi all'inverter a cui spedivo i dati. Sto utilizzando TIA18 Upd3 Grazie a chiunque possa darmi il suo pensiero. Link al commento Condividi su altri siti More sharing options...
drn5 Inserita: 4 aprile Segnala Share Inserita: 4 aprile (modificato) Non è che quella DW è scritta parzialmente da qualche altra parte? Perché guarda caso la differenza tra i due valori sta proprio in un byte.... Modificato: 4 aprile da drn5 Link al commento Condividi su altri siti More sharing options...
MaChePLC Inserita: 4 aprile Autore Segnala Share Inserita: 4 aprile Grazie @drn5 per l'interessamento. Ma perchè dici che la differenza sta in un byte? 900-768=132 Mi sto perdendo qualcosa? E comunque non sarebbe giustificato il fatto che se tolgo il commento tutto si mette a posto. Link al commento Condividi su altri siti More sharing options...
drn5 Inserita: 4 aprile Segnala Share Inserita: 4 aprile (modificato) Sulla affermazione del byte ho detto una caz..ta. avevo fatto una conversione in binario alla svelta.... Quindi se fai un doppio trasferimento (T) o togli in debug va? Allora boh! Sarebbe interessante riscriverlo in scl o in ladder o da solo in altro segmento.... Modificato: 4 aprile da drn5 Link al commento Condividi su altri siti More sharing options...
MaChePLC Inserita: 4 aprile Autore Segnala Share Inserita: 4 aprile Confermo che con doppio trasferimento funziona. Idem se esco dal debug. Mistero misterioso targato Siemens! Certo che una cosa del genere è inaccettabile. Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 4 aprile Segnala Share Inserita: 4 aprile (modificato) 1 ora fa, MaChePLC ha scritto: Confermo che con doppio trasferimento funziona. Idem se esco dal debug. Mistero misterioso targato Siemens! Certo che una cosa del genere è inaccettabile. E’ da debuggare il codice, per debuggare non intendo quello tre righe, intendo tutto il codice… L’AWL esiste da 30 anni…non diamo colpe cosi a naso, lo facevo pure io a suo tempo, poi il 99% degli errori (tipo questo) erano nel mio codice, non bachi intrinsechi del PLC. Modificato: 4 aprile da dina_supertramp Link al commento Condividi su altri siti More sharing options...
batta Inserita: 4 aprile Segnala Share Inserita: 4 aprile 1 ora fa, dina_supertramp ha scritto: L’AWL esiste da 30 anni…non diamo colpe cosi a naso, lo facevo pure io a suo tempo, poi il 99% degli errori (tipo questo) erano nel mio codice, non bachi intrinsechi del PLC. Concordo. Mi sento di escludere un baco del PLC, ma è impossibile capire dov'è il problema guardando solo quelle 4 righe. Per esempio, se le metti all'inizio di OB1 e subito dopo ci metti un BEA, ed escludendo eventuali OB ad interrupt, cosa succede? Oppure, se al posto di DB316.DBD88 ci metti una variabile temporanea, cosa succede? O, ancora, se subito prima di DB316.DBD88 ci metti una riga con: L 900, cosa succede? L'ipotesi più probabile (per non dire l'unica) è che dei bit appartenenti alla DB316.DBD88 siano usati da qualche altra parte nel programma. Link al commento Condividi su altri siti More sharing options...
MaChePLC Inserita: 4 aprile Autore Segnala Share Inserita: 4 aprile @dina_supertramp e @batta Grazie dei consigli; domani farò certamente altre prove per avere qualche dato in più su cui ragionare. Inizialmente anche io escludevo un baco del PLC, ma non so se sono stato chiaro nella spiegazione. Se possibile allegherò un filmato, ma tanto per capirci: divido in 2 lo schermo per poter disporre le finestre in modo ottimale a sinistra la DB in modalità "Controlla tutto" quindi sotto la colonna "valore di controllo" vedo in diretta il valore della variabile a destra l'FC in modalità "Controllo" che mi fa vedere i registri mostrati nell'allegato del mio primo post in queste condizioni ho il problema; ossia il conto dell'operazione è sbagliato e posso stare qui un'eternità e il valore è sempre quello. Sia in DB, sia nei registri dell'FC con lo scroll del mouse o con la barra di scorrimento faccio scomparire il codice incriminato andando a visualizzare altro codice sotto l'FC così il problema si risolve e nella DB il valore si aggiorna con il valore corretto dell'operazione. Capite che fatico a credere sia un problema di codice? Se lo fosse avrei il difetto sempre e comunque, indipendentemente dalla porzione di codice che sto visualizzando. Grazie Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 5 aprile Segnala Share Inserita: 5 aprile Io penso come @drn5 e @batta che stai scrivendo parte della DB316.DBD88 da altre parti. 8 ore fa, MaChePLC ha scritto: con lo scroll del mouse o con la barra di scorrimento faccio scomparire il codice incriminato andando a visualizzare altro codice sotto l'FC così il problema si risolve e nella DB il valore si aggiorna con il valore corretto dell'operazione. Mai sentita una cosa cosi fino ad ora, poi mai dire mai.... Puoi condividere il programma? Link al commento Condividi su altri siti More sharing options...
MaChePLC Inserita: 5 aprile Autore Segnala Share Inserita: 5 aprile @dina_supertramp Dato che oggi non ne ho cavato un ragno dal buco, lunedì verrò affiancato dal sig. Siemens 😉 con la speranza che ci capisca qualcosa. Appena scopro qualcosa aggiornerò la community. Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 5 aprile Segnala Share Inserita: 5 aprile 4 ore fa, MaChePLC ha scritto: @dina_supertramp Dato che oggi non ne ho cavato un ragno dal buco, lunedì verrò affiancato dal sig. Siemens 😉 con la speranza che ci capisca qualcosa. Appena scopro qualcosa aggiornerò la community. Facci sapere perché questa è bella, avevo tralasciato il discorso della visualizzazione…come anche il fatto che è un software controller la CPU 1505. Non succede…ma se succede che è un baco del PLC…eheheh Link al commento Condividi su altri siti More sharing options...
MaChePLC Inserita: 8 aprile Autore Segnala Share Inserita: 8 aprile Sig. Siemens incredulo! Riporterà il tutto in Germania e ci farà sapere 🤞 Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 9 aprile Segnala Share Inserita: 9 aprile 23 ore fa, MaChePLC ha scritto: Sig. Siemens incredulo! Riporterà il tutto in Germania e ci farà sapere 🤞 Pensa te....questa è bella. Il baco è diventato farfalla 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