Vai al contenuto
PLC Forum


Errore su rete profinet


Mister_X_

Messaggi consigliati

Buongiorno a tutti, volevo sapere se c’è un modo per avere il feedback dello stato della rete profinet.

Ovvero ho x dispositivi collegati in profinet,  se almeno uno mi va in errore (es. scollego il cavo) vorrei ricevere un feedback in modo da poter adottare alcune misure (fermare l’impianto per esempio)

La mia idea è di mandare direttamente in stop la cpu però non saprei come procedere.

 

Diciamo che un modo per fermare tutto l’ho gia trovato, usando il device state con il primo bit dell’array però volevo qualcosa di più “corretto”.

 

Grazie 

Link al commento
Condividi su altri siti


Non conoscendo il processo che devi gestire, penso che mandare in stop la cpu a seguito di un evento dato da un errore di uno dei dispositivi connessi alla rete/i profinet, mi sembra una azione eccessiva.  

 

Tuttavia se è questo quello che devi fare, allora a seguito di un errore di uno o più dispositivi connessi ala rete profinet puoi usare l'istruzione STP.

Devi comunque tenere presente che tale istruzione dovrà essere elaborata tenendo conto di alcune condizioni che si presenteranno specialmente alla messa in tensione del quadro elettrico; in quanto potresti trovarti con la cpu perennemente in stop perchè durate l'avvio della cpu sicuramente i dispositivi in profinet non saranno "online" all'istante con le logiche conseguenze del caso.

 

Poi va considerato anche il riavvio del PLC a seguito dello stop dovuto all'errore sul nodo/i. 

Deve avvenire via software da HMI? Oppure dal selettore posto sulla CPU (che come saprai non è possibile nella serie S/-1200).

 

L'uso del DEVICE_STATE a mio avviso può andar bene per stabilire lo stato del/i nodo/i profinet, Poi dipende da quello che devi stabilire in funzione dell' ID che assegni per stabilire se 

i nodi sono disattivati, non disponibili, in allarme etc. etc.

 

Altra possibile via per rilevare un malfunzionamento dei nodi, si può fare mediante i blocchi OB di errore, andando ad interpretare i codici restituiti relativi all ID entrante ed uscente dell'evento, impiegando poi altre istruzioni di libreria. Trovi comunque ampia documentazione ed esempi nel sito di Siemens

 

Buon lavoro

Link al commento
Condividi su altri siti

Come Cagliostro, anch'io non conosco cos stai gestendo, ma la scelta di mandare in stop la cpu, a mio avviso è la più sbaglata che si possa prendere.
Con la cpu in stop non gestisci più nulla, tutto si ferma in modo incontrollato, e non hai nemmeno la disgnostica funzionante.
Piuttosto, gestisi l'errore come un comando di arresto, o un'emergenza. Non potrai controllare i dispositivi in errore, ma tutto il resto sì.
E ti rimane attiva la diagnostica!
Per rilevare quale dispositivo sia in errore, con "DeviceStates" puoi fare una diagnosi molto dettagliata, quindi non mi complicherei la vita con gli OB.
Ma potrebbe andare bene anche rilevare un errore generale (primo bit, come stai facendo), questo dipende da come è suddiviso il tuo impianto/macchina.
Ma ripeto: abbandona l'idea di mandare in stop la cpu, questa sarebbe solo una grande porcata.

Link al commento
Condividi su altri siti

Grazie delle risposte 

Praticamente ho una cpu 1510 f con due periferiche im155 (con entrambe diverse schede i/o ed una tm count per encoder incrementale) ed un gateway profinet-modbus per comandare inverter

 

I problemi sono due, il primo è che se stacco e riattacco il cavo profinet di una periferica, l’impianto va in allarme e poi riparte tutto ma i valori encoder vengono resettati quindi mi ritrovo con la quota errata (per risolvere ciò ho usato il device atte ed il bit relativo alla periferica incriminata per resetettare bit di home ok)

 

Il secondo problema riguarda il gateway che mi gestisce la comunicazione modbus con gli inverter

Se stacco il cavo profinet l’inverter non mi va in errore e si ferma dopo circa 20 secondi in caso di run motore

(devo capire se nelle impostazioni c’è qualche riferimento per mettere a 0 tutte le variabili in caso di mancanza comunicazione profinet)

 

La mia idea di mandare in stop la cpu era per fermare appunto tutto

 

Ho parzialmente risolto mettendo in serie ai funghì di emergenza nella FB safety della cpu il contatto del device state in questo modo se mi casca la connessione è come se premesso un fungo 

 

So che è una soluzione molto spartana ma non ho altre idee

Link al commento
Condividi su altri siti

23 minuti fa, Mister_X_ ha scritto:

Se stacco il cavo profinet l’inverter non mi va in errore e si ferma dopo circa 20 secondi in caso di run motore

Questo, probabilmente, dipende dall'inverter che, se ho ben capito, è comandato in Modbus.
È uno dei motivi per i quali evito di dare i comandi di start/stop via Modbus. Le pochissime volte che mi è capitato di gestire inverter in Modbus, i comandi start/stop li hogestiti con segnali cablati.
Se l'inverter rimane in marcia per 20 secondi anche in caso di comunicazione interrotta, sei proprio sicuro che, se mandi in stop la cpu, si fermi all'istante?
 

 

29 minuti fa, Mister_X_ ha scritto:

Ho parzialmente risolto mettendo in serie ai funghì di emergenza nella FB safety della cpu il contatto del device state in questo modo se mi casca la connessione è come se premesso un fungo 

Non ci trovo nulla di male.

Link al commento
Condividi su altri siti

2 hours ago, batta said:
Se l'inverter rimane in marcia per 20 secondi anche in caso di comunicazione interrotta, sei proprio sicuro che, se mandi in stop la cpu, si fermi all'istante?

 

 

Ho dovuto usare modbus per mancanza di schede

 

Comunque se mando in stop la cpu mi cade il safety e di conseguenza mi manda in sto gli inverte fermandoli all’istante, questa era l’idea 

Link al commento
Condividi su altri siti

11 ore fa, Mister_X_ ha scritto:

Comunque se mando in stop la cpu mi cade il safety e di conseguenza mi manda in sto gli inverte fermandoli all’istante, questa era l’idea 

Sì ma, come hai già fatto, il safety cade lo stesso, senza bisogno di mandare in stop la cpu.
Mandare in stop la cpu è la cosa più sbagliata che si possa fare, anche senza considerare le problematiche legate al come rimetterla in run.
Lo stop della cpu è da valutare solo nel caso di errori che rendono il programma incontrollabile.

Modificato: da batta
Link al commento
Condividi su altri siti

6 hours ago, batta said:

Sì ma, come hai già fatto, il safety cade lo stesso, senza bisogno di mandare in stop la cpu.
Mandare in stop la cpu è la cosa più sbagliata che si possa fare, anche senza considerare le problematiche legate al come rimetterla in run.
Lo stop della cpu è da valutare solo nel caso di errori che rendono il programma incontrollabile.

Capisco

 

Grazie mille

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