Vai al contenuto
PLC Forum


Cp341 - Diagnostica - Capire quando SF è attivo


Messaggi consigliati

Inserito:

Salve a tutti,

ho realizzato una comunicazione modbus tramite la CP341 e vorrei fare in modo che quando il cavo si stacca dalla scheda e la spia SF si accende mi si attivi un bit dentro il plc.

La cp è situata su un ET200M ed ho effettuato la diagnostica del remoto tramite l' SFC13. Nei manuali Siemens ho trovato scritto che per ogni slot ho 2 bit che a secondo della combinazione binaria di questi si risale allo stato dello slot (0/0 slot ok 0/1 SF 1/0 KO e 1/1 scheda non progettata o mancante)

a primo impatto ho preso la combinazione dei bit 0/1 che corrisponde al SF ma quando stacco il cavo la spia SF diventa rossa ma ne il primo, ne il secondo bit della diagnostica cambiano stato.

Vorei quindi sapere se esiste un modo di estrapolare l'SF dalla scheda modbus.

Grazie della risposta


Inserita: (modificato)

Salve,

credo che quando menzioni il led SF, la cui accensione avviene quando stacchi il cavo di comunicazione della scheda verso lo /gli slave/s, tu faccia riferimento al led del processore di comunicazione CP341.

Se è di questo led di cui stai parlando, allora nella configurazione hardware della scheda CP341, dovresti scegliere il SI, nel campo denominato generazione dell'allarme.

In questo modo ogni qualvolta si accende il led SF della scheda CP341, viene elaborato il blocco OB82.

Una volta che il blocco OB82 viene richiamato, per essere certi che ad aver generato l'errore sia stato il CP341, andrai a leggere il valore OB82_MDL_ADDR nella lista delle variabili temporanee, e confrontare tale valore con quello indirizzato sempre nella configurazione hardware della CP341.

A questo punto sè il confronto è "soddisfatto", intraprendi le azioni che vuoi mediante il set di qualche bit etc. etc.

Attenzione però che questa è un'informazione generica, nel senso che il led SF potrebbe accendersi anche per altre cause indipendenti la rimozione del cavo.

In tal senso, per avere un dettaglio maggiore dell'errore, dovresti andare allora ad interpretare i 4 byte di diagnostica della CP341.

Per maggiori indicazioni in merito consulta la pagina 206 di questo manuale

Modificato: da cagliostro
Inserita: (modificato)

il link al manuale, nel precedente post non funziona,

questo si

Modificato: da cagliostro
Inserita:

Guardando sul manuale da te linkato ho trovato questo particolare passaggio che fa al mio caso (fondo pagina 206):

Informazione di diagnostica (come combinazione di bit)

Il CP 341 mette a disposizione 4 byte di informazioni di diagnostica. Per la visualizzazione dell'errore, i 4 byte di diagnostica vengono configurati nel modo seguente: [...]

Ora la mia domanda è dove si trovano questi 4 Byte che la scheda mette a disposizione?

L'OB82 non posso utilizzarlo dato che a me serve un controllo continuo sul SF dato che nel mio sistema sono presenti 2 schede modbus, ed io devo "switchare" i dati tra le due schede nel caso la scheda primaria si trovi in FAULT o non comunichi.

Ho un sistema Master/Slave, dalla parte del master riesco a switchare grazie ai bit presenti nei blocchetti FB7 - FB8 e nel caso specifico grazie ai bit SND_ERR e RCV_ERR.

Ma sullo slave come faccio a dire Cambia Sceda modbus se la prima è in errore?

Inserita: (modificato)
Ora la mia domanda è dove si trovano questi 4 Byte che la scheda mette a disposizione?

I quattro byte trattati nel manuale fanno riferimento alle variabili locali contenute nel blocco OB82.

Vorei quindi sapere se esiste un modo di estrapolare l'SF dalla scheda modbus.

Il modo che io conosco è quello di lavorare su OB82,se vuoi eventualmente avere informazioni aggiuntive, in OB82 richiama la SFC13 inserendo nel campo LADDR il valore contenuto nella variabile locale di OB82 denominata OB82_MDL_ADDR. Non ne sono sicuro, ma credo che il problema

la spia SF diventa rossa ma ne il primo, ne il secondo bit della diagnostica cambiano stato.

dipenda dal fatto che non hai abilitato la diagnostica nella configurazione hardware nei processori CP341 e richiamato correttamente la SFC13

ed io devo "switchare" i dati tra le due schede nel caso la scheda primaria si trovi in FAULT o non comunichi.

Ma sullo slave come faccio a dire Cambia Sceda modbus se la prima è in errore?

non ho proprio compreso alla lettera in base alle nuove informazioni che hai dato nel tuo ultimo post, del tipo di di ridondanza che vuoi creare nei moduli slave. Ma non è che a seconda del modulo in fault, di cui conosci l'indirizzo attraverso il valore di OB82_MDL_ADDR, puoi eventualmente con le apposite funzioni abortire la comunicazione per riprenderla, passando i set di dati necessari alle FB,FC o SFC di comunicazione del nuovo modulo slave; subentrato a quello primario che è andato in errore ??

Ovviamente questa rimane una mia personale considerazione, sulla base di quello che ho capito dal tuo ultimo post.

Se poi non è cosi, magari con qualche informazione o esempio in più, si riesce a centrare meglio il problema, rispetto a quello che chiedevi nel primo post, cioè estrapolare il led SF della scheda modbus.

Modificato: da cagliostro
Inserita:

Praticamente io ho 4 schede modbus che sono in continua comunicazione tra di loro (2 master e 2 slave).

Queste si scambiano dei dati e sono situate su due remoti differenti. Quando arrivano i dati e la comunicazione è effettuata, effettuo i miei controlli di CRC nelle DB in modo da verificare la coerenza dei dati.

Se i dati che mi trovo nelle db di scambio 1 e 2 (prima coppia di CP341) sono coerenti e non ho errori sulla scheda, allora li muovo nelle db che metto a disposizione di un PC (queste hanno una particolare formattazione e non posso mettere a dispoisizione quelle che mi provengono direttamente dalla comunicazione modbus).

Se questi dati nelle db 1 e 2 non sono coerenti o il modulo modbus è in errore allora prendo le db 3 e 4 (seconda coppia di CP341) e le muovo nella db che metto a disposizione.

Ho gestito tutto tranne la gestione della scheda in errore. Per questo chiedevo se c'era modo di estrapolare il SF in modo da poter fare il famoso scambio di db sulle quali puntare.

Inserita:

ciao

io per cose simili (mai fatto un caso come il tuo) uso SFC51, molto ostico ma so che dice tutto, praticamnte è lo stato dell' unità. Sul sito del support preferibilmente in inglese ci sono spiegazioni ed approfondimenti.

bye

Inserita:
Ho gestito tutto tranne la gestione della scheda in errore. Per questo chiedevo se c'era modo di estrapolare il SF in modo da poter fare il famoso scambio di db sulle quali puntare.

Come nei precedenti post la possibilità c'è......Parametrizzazione di OB82 ed eventualmente impiego della SFC13 in esso.

Poichè l'interrupt di diagnostica viene eseguito immediatamente, se interpreti il valore di OB82_MDL_ADDR corrispondente alla scheda in fault, attivi un bit che effettua lo switch dei set di dati contenuti in DB3 e DB4 verso il PC.

Nel momento in cui il led SF si spegne viene richiamato OB82 come evento uscente e quindi puoi resettare il bit precedentemente impostato a seguito del fault della scheda, ritornando così a "depositare" i dati verso il PC prendendo le DB1 e DB2.

In tutto questo contesto, non mi è ancora chiaro perchè tu non puoi utilizzare OB82 come scritto nei precedenti post.....

Puoi eventualmente pensare anche come scritto da GixRamones, di utilizzare l'estrazione delle liste parziali (SZL) mediante utilizzo delle SFC51.

Resto comunque dell'idea che per estrapolare la condizione del led SF il modo più semplice sia quello di abilitare l'interrupt diagnostico e di usare OB82.

Poi mi ripeto non mi è chiaro perchè tu non possa farlo, sicuramente sono io che non ho centrato bene il tuo problema, ma alla fine se devi estrapolare le condizioni del led SF le vie sono queste, OB82-SFC13-SFC51 etc. etc.

Inserita:
Nel momento in cui il led SF si spegne viene richiamato OB82 come evento uscente e quindi puoi resettare il bit precedentemente impostato a seguito del fault della scheda, ritornando così a "depositare" i dati verso il PC prendendo le DB1 e DB2.

Ho risolto...alla fine ho richiamto l'OB82. Non sapevo che venisse richiamato anche quando c'è un evento uscente per questo dicevo che non riuscivo a gestirlo...è da poco che programmo plc Siemens quindi chiedo venia se mi sfuggono queste nozioni di base.

Grazie a tutti per l'aiuto.

Inserita:
quindi chiedo venia

e perchè dovresti?? Essendo da poco un utilizzatore di Siemens penso sia più che comprensibile.

Credo che lo scopo di un forum, sia anche quello di indirizzare o consigliare, in base alle proprie conoscenze ed esperienze pregresse, quell'utente che si scontra con le normali probelmatiche, tipiche di chi approccia verso un nuovo prodotto.

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