Vai al contenuto
PLC Forum


S7-300 Debug - Debug con punti di arresto


savi1983

Messaggi consigliati

Buongiorno a tutti, è la prima volta che scrivo e non sono neanche sicuro di avere fatto la procedura corretta.

Il mio quesito è molto semplice per chi lo sa:

Scritto un programma per il plc siemens 313c come faccio a debuggarlo? esiste una barra chiamata dei punti d'arresto ma che non mi consente di inserire breakpoint e procedere step by step o altro perchè risulta oscurata.

Esiste la possibilità di effettuare il debug?

Grazie dell'attenzione.

Link al commento
Condividi su altri siti


Ho letto attentamente il link inviatomi e sono riuscito ad utilizzare il tool dei punti di arresto...quest'ultimo mi ha lasciato un pò basito:

scritto un programma in awl e inserendo qualche punto di arresto quando si fa girare il programma ovviamente si ferma sui punti di arresto indicati, perchè lo "spazzolino" del programma processa riga per riga.

A questo punto ho creato salti nel programma con l'istruzione sbp e sbpn e messo il punto di arresto al richiamo del salto ma in ogni caso ad ogni giro lo spazzolino del programma processa anche questa istruzione anche se dovrebbe saltarla ma semplicemente non la esegue.

In definitiva che senso ha inserire un punto di arresto (tanto ad ogni giro passa sopra a tutti i punti di arresto)? come fare affinchè il tool sia utile?

Vi ringrazio in anticipo e mi scuso per la mia ignoranza.

Modificato: da Livio Migliaresi
adeguato carattere
Link al commento
Condividi su altri siti

Io non ho capito qual è il problema.

Prova a spiegarti meglio, magari con qualche esempio.

In ogni caso, anche se penso non ci sia bisogno di dirlo tanto è evidente, bisogna prestare molta attenzione all'uso che si fa dei punti di arresto.

Se si tratta di debuggare il programma in ufficio, non c'è problema. Se si è sull'impianto, con i punti di arresto si possono causare danni irreparabili.

Link al commento
Condividi su altri siti

Scusa se non si capisce, provo a riformularti la domanda in maniera diversa.

Volevo solo dire che scrivendo un programma awl...il plc scorre istruzione per istruzione....quindi che utilità hanno i breakpoint se non posso utilizzare IF, SALTI, FOR?

Inserendo un punto di arresto, ovviamente il programma si ferma, passando sopra a quella istruzione (siccome le passa tutte) ad ogni ciclo.

Per ovviare ho inserito memorie aggiuntive con salti, perchè speravo che l'istruzione al richiamo del salto, venisse eseguita o scansionata solo se il salto era stato effettuato in questo modo il programma girava continuamente finchè la condizione del salto non era stata verificata....ma non è cosi siccome il plc scansiona tutte le righe sempre.

Un ultima cosa....perchè possono capitare danni irreparabili usando il debug in campo? e quali tipi di danni?

Qual'è il metodo piu pratico ed efficiente per debuggare un programma con blocchi di sistema e funzioni del plc che ricevono ingressi e uscite?

Grazie dell' attenzione e dell'interessamento

Link al commento
Condividi su altri siti

Volevo solo dire che scrivendo un programma awl...il plc scorre istruzione per istruzione....quindi che utilità hanno i breakpoint se non posso utilizzare IF, SALTI, FOR?

Inserendo un punto di arresto, ovviamente il programma si ferma, passando sopra a quella istruzione (siccome le passa tutte) ad ogni ciclo.

Sono queste tue affermazioni che non capisco.

Cerchiamo prima di fare un po' di chiarezza: in un punto d'arresto il programma si ferma e basta, non gli "passa sopra". Rimane fermo lì fino a quando non gli dai istruzione di proseguire.

Quando darai il comando di proseguire (non importa se solo fino alla riga successiva, fino al successivo punto d'arresto o se si torna alla normale elaborazione) verrà eseguita l'istruzione.

Se c'è un'istruzione di salto, se le condizioni dicono che il salto deve essere fatto, il programma proseguirà dall'etichetta di fine salto; se le condizioni dicono che non si deve saltare, la prossima istruzione elaborata sarà quella immediatamente successiva all'istruzione di salto.

Insomma, non succede nulla di diverso da quello che accade quando il programma gira regolarmente.

Solo che, potendo eseguire le istruzioni una alla volta, in alcuni casi è più facile capire cosa succede.

Per ovviare ho inserito memorie aggiuntive con salti, perchè speravo che l'istruzione al richiamo del salto, venisse eseguita o scansionata solo se il salto era stato effettuato in questo modo il programma girava continuamente finchè la condizione del salto non era stata verificata....ma non è cosi siccome il plc scansiona tutte le righe sempre.

Continuo a non capire cosa vuoi dire.

Se c'è un'istruzione di salto attiva, le istruzioni successive al salto vengono... saltate.

Se, con i punti di arresto attivi, fai avanzare il programma riga per riga (Esegui istruzione successiva), vedrai chiaramente quello che succede.

Un ultima cosa....perchè possono capitare danni irreparabili usando il debug in campo? e quali tipi di danni?

Non è usando il debug che si possono causare danni, ma con i punti d'arresto.

Con i punti d'arresto l'elaborazione del programma viene bloccata nel punto d'arresto.

Se c'è, per fare un esempio banale, un organo che sta traslando ed arriva a finecorsa, se l'istruzione di arresto sul finecorsa non viene letta perché il programma è bloccato su un punto d'arresto... Lascio a te trarre le conclusioni.

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