pedropony Inserito: 1 febbraio 2023 Segnala Inserito: 1 febbraio 2023 Buongiorno ho un problema con una macchina appena installata, a seguito di un evento safe (fungo di emergenza, protezioni aperte, ecc.) a volte la CPU va in STOP. FB50011 che "sembra" essere l'origine del problema non è utilizzato nel programma, non riesco ad eliminarlo perché non si può.. Grazie
drn5 Inserita: 2 febbraio 2023 Segnala Inserita: 2 febbraio 2023 E l'OB600 dacui sembra nascere il problema?
Livio Orsini Inserita: 2 febbraio 2023 Segnala Inserita: 2 febbraio 2023 La causa sembrerebbe essere la corruzione dei dati nel blocco programma "Safety". Se ci sono dati corrotti è ovvio che la CPU vada in Stop.
beppeconti Inserita: 2 febbraio 2023 Segnala Inserita: 2 febbraio 2023 Se non l'hai già fatto ti suggerirei un ricompilazione completa del progetto con successivo download. In alternativa potresti anche provare a cancellare l'F-runtime group e ricrearlo nel Safety Administrator e poi compili e ricarichi tutto.
Mattia Spoldi Inserita: 2 febbraio 2023 Segnala Inserita: 2 febbraio 2023 domanda, per caso passi dei dati non safety dentro al blocco safety?
pedropony Inserita: 2 febbraio 2023 Autore Segnala Inserita: 2 febbraio 2023 @beppeconti ho provato a ricompilare hardware e software completo ma non ho risolto @Mattia Spoldi si mi sono accorto che alzo delle uscite "normali" nel programma safe, cosa che in altri progetti non faccio. Se questa potrebbe essere l'origine del problema provo a spostarle Grazie a tutti
Mattia Spoldi Inserita: 2 febbraio 2023 Segnala Inserita: 2 febbraio 2023 spiego brevissimamente come viene elaborato il programma safety, nel caso non lo sapessi. Il programma safety viene compilato 2 volte, una volta in un modo che chiameremo(male) "diritto", mentre la seconda volta viene compilato in una maniera "doppiamente negata", perdona i termini poco tecnici, ma al momento mi sfuggono i nomi. poi, al momento dell'esecuzione vengono eseguite entrambi i risultati delle 2 compilazioni, ovviamente devono dare in uscita lo stesso risultato, se per un qualsiasi motivo, che può essere memoria corrotta, hacker che ti si attaccano al processore del plc, il plc ti dice che ci sono dei dati corrotti e si pianta in stop Un altro motivo, molto più banalmente, usi dati non safety nel programma safety, questi dati per nmila motivi tra un esecuzione e l'altra potrebbero variare e il safety trova una corruzione dei dati con il risultato sopra. La miglior soluzione, secondo me, è usare i 2 blocchi di pre e post processing, dichiari 2 fc o fb, e dentro il pre-processing prendi tutti i vari dati non safe da leggere e li appoggi su dei dati ad uso esclusivo safe, nel post-processing, fai l'opposto, prendi tutti i dati elaborati dal safe che non vano su uscite o memorie safe e li scrivi sulle tue uscite non safe ti allego un esempio fatto male, l 2 merker sono i tuoi ingressi e uscite non safe, il db è quello ad uso esclusivo del safety, dentro il safety scrivi il tuo programma usando il db e ti dimentichi delle memorie originali, in questo modo non dovresti avere corruzione dei dati Spero si capisca qualcosa di quello che ho scritto
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