Giangi94 Inserito: 11 gennaio 2017 Segnala Share Inserito: 11 gennaio 2017 Buongiorno a tutti, non riesco a capire come gestire le eccezioni generate per esempio dalla mancanza di connessione al plc; ho trovato la funzione get_connected() che mi restituisce true nel caso sia collegato e penso false nel caso non sia collegato, ma non ho potuto verificarlo poiché viene generata un eccezione del tipo TCP di snap7; è possibile manipolare le eccezioni in maniera tale che se viene persa la connessione o per il cavo o per altri motivi, si ritenta nuovamente la connessione senza far terminare il programma con l'eccezione ? Grazie mille, Gianluca Link al commento Condividi su altri siti More sharing options...
dan64100 Inserita: 11 gennaio 2017 Segnala Share Inserita: 11 gennaio 2017 Premetto che non conosco python e che non ho (com'è giusto che sia) nessun controllo sui fork o sui wrapper di terze parti del progetto. La libreria di per se non genera eccezioni, tutte le funzioni ritornano un numero intero identificativo del codice di errore, 0 se è tutto ok. Sarà che ho un modo "anziano" di vedere la programmazione, formato con l'assembler ed il c/pascal quando le eccezioni non esistevano, ma secondo me chiamare un "raise" ogni qualvolta qualcosa non è andato per il verso giusto per poi dover trappolare l'eccezione nel codice è una str...ta. I codici di errore si testano e si prendono le decisioni in modo programmatico, bisognerebbe trappolare solo gli errori del sistema operativo o delle librerie runtime. Detto questo, per un client TCP/IP (quindi anche per Snap7) non c'è modo di capire se il cavo è scollegato finquando una transazione non genera un errore. quì trovi qualche informazione aggiuntiva con un piccolo esempio in C# su come gestire comunicazione/errori/riconnessioni. Ti consiglio innanzitutto di modificare la funzione check_error() in common.py e quindi di far ritornare alle funzioni python il codice di errore da testare. Anche tutti quei logger.info() danno tanto di robaccia "vintage", cosa loggare deve essere deciso a livello di applicazione non in una libreria d'interfaccia. Link al commento Condividi su altri siti More sharing options...
BAN003 Inserita: 4 febbraio 2017 Segnala Share Inserita: 4 febbraio 2017 Buonasera a tutti Vorrei anche io utilizzare la libreria snap7 in pythin 3.5 ma non riesco ad importarla. Mi sapete dire che istruzione utilizzare? Import snap7.dll mi da sempre errore. Grazie mille 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