Vai al contenuto
PLC Forum


Rete Mpi Xsend , Xrecive


depi

Messaggi consigliati

ho un problema su una rete mpi composta da 6 partecipanti dovrei sapere quando un partecipante del bus cade

ad esempio se la stazione mpi n-°3 è spenta .

nb. ho utilizzato le sfc siemens xsend e xrecive per la trasmissione dei dati tra le varie cpu

grazie anticipate

Link al commento
Condividi su altri siti


Gabriele Corrieri

Ciao,

se stai, come penso usando SFB 8 e9, oppure 12 e 13, oppure 14 e 15 di S7300 (penso che tu stia usando S7300, se usi S7200 il discorso è diverso) ci sono due flags ERROR e STATUS che di danno una info del blocco e degli errori intervenuti

ERROR    STATUS (decimale)    Spiegazione
0    11    Messaggio di avviso: il nuovo job non è valido perché il precedente non è ancora terminato.
0    25    È stata avviata la comunicazione. Il job è in corso di esecuzione.
1    1    Problemi di comunicazione, ad es.·    descrizione del collegamento non caricata (locale o remoto)·    collegamento interrotto ( p. es. cavo, CPU spenta, CP in STOP)·    collegamento con il partner non ancora creato
1    2    Conferma negativa dal dispositivo partner. Non è possibile eseguire la funzione.
1    4    Errore nei visualizzatori dell'area di ricezione SD_i riguardanti la lunghezza o il tipo dei dati.
1    8    Errore di accesso nella CPU partner
1    10    L'accesso alla memoria utente locale non è possibile (ad es. accesso a un DB cancellato)
1    12    Per il richiamo di SFB/FB ·    è stato indicato un DB di istanza che non appartiene all'SFB/FB 15·    è stato indicato un DB globale al posto di un DB di istanza·    non è stato trovato alcun DB di istanza (caricamento di un nuovo DB di istanza dal PG)
1    20    La memoria di lavoro non è sufficiente·    Sistema H: primo richiamo dell'SFB durante l'aggiornamento·    S7-300:
- Numero massimo di job paralleli/istanze superato 
- Le istanze sono state sovraccaricate da CPU-RUN 
- Possibile con il primo richiamo
(è molto sformattato, se guardi l'. di S7 lo leggi meglio) comunque con uno status 1 ed error 1 sai che la cpu verso la quale hai lanciato il job è spenta o non raggiugibile. Se usi SFC65/66, 67/68, 72/73il discorso è ancora diverso
Le "vere" informazioni di errore per le SFC dalla 65 alla 74 riportate, tra le altre, nella tabella seguente si possono classificare come segue:

Codice errore(W#16# ...)    Spiegazione
809x    Errore sulla CPU, sulla quale è in esecuzione la SFC
80Ax    Errore di comunicazione permanente
80Bx    Errore nel partner di comunicazione
80Cx    Errore temporaneo
Informazioni specifiche per le SFC da 65 a 74:

Codice errore (W#16# ...)    Spiegazione (generale)    Spiegazione (specifica per SFC)
0000    L'elaborazione è stata conclusa senza errori.    SFC 69 "X_ABORT" e SFC 74 "I_ABORT":REQ=1, e il collegamento indicato non è creato.
SFC 66 "X_RCV":EN_DT=1 e RD=NIL
00xy    -    SFC 66 "X_RCV" con NDA=1 e RD<>NIL:RET_VAL contiene la lunghezza del blocco dati ricevuto (con EN_DT=0) oppure copiato in RD (con EN_DT=1).
SFC 67 "X_GET":RET_VAL contiene la lunghezza del blocco dati ricevuto.
SFC 72 "I_GET":RET_VAL contiene la lunghezza del blocco dati ricevuto.
7000    -    SFC 65 "X_SEND", SFC 67 "X_GET", SFC 68 "X_PUT"; SFC 69 "X_ABORT", SFC 72 "I_GET", SFC 73 "I_PUT" e SFC 74 "I_ABORT": richiamo con REQ = 0 (richiamo senza elaborazione). BUSY ha il valore 0, non c'è alcun trasferimento dati attivo.
SFC 66 "X_RCV": EN_DT=0/1 e NDA=0
7001    Primo richiamo con REQ=1: trasferimento dati avviato; BUSY ha il valore 1.    -
7002    Richiamo intermedio (REQ irrilevante): trasferimento dati già attivo;  BUSY ha il valore 1.    SFC 69 "X_ABORT" e SFC 74 "I_ABORT":Richiamo intermedio con REQ=1
8090    L'indirizzo di destinazione indicato del partner di comunicazione non è valido, p. es.·    IOID errato·    presenza indirizzo di base errato·    indirizzo MPI (> 126) errato    -
8092    Errore in SD o RD, p. es.: l'indirizzamento dell'area dati locale non è ammissibile.    SFC 65 "X_SEND", p. es.·    lunghezza di SD non ammissibile·    SD=NIL non è ammissibile
SFC 66 "X_RCV", p. es.sono stati ricevuti più dati rispetto a quanti ne possono entrare nell'area definita mediante RD.RD è il tipo dei dati BOOL, la lunghezza dei dati ricevuti è tuttavia superiore ad un byte.
SFC 67 "X_GET" e SFC 72 "I_GET", per. es.lunghezza non ammissibile per RDla lunghezza o il tipo dei dati di RD non corrisponde ai dati ricevutiRD=NIL non è ammissibile
SFC 68 "X_PUT" e SFC 73 "I_PUT", p. es.lunghezza non ammissibile per SDSD=NIL non è ammissibile
8095    Il blocco viene già elaborato in una classe di priorità con priorità più bassa.    -
80A0    Errore nella conferma di acknowledge ricevuta    SFC 68 "X_PUT" e SFC 73 "I_PUT":Il tipo dei dati indicato nel parametro SD della CPU mittente non è supportato dal  partner di comunicazione.
80A1    Problemi di comunicazione: richiamo SFC dopo annullamento di un collegamento esistente.    -
80B0    L'oggetto non è accessibile, p. es. DB non caricato    possibile per SFC 67 "X_GET" e SFC 68 "X_PUT" e SFC 72 "I_GET" e SFC 73 "I_PUT"
80B1    Errore nel puntatore ANY. La lunghezza dell'area dati da trasferire è errata.    -
80B2    Errore hardware: unità non presente·    il posto connettore progettato non è occupato·    il tipo di unità attuale non è uguale al tipo di unità prefissato·    la periferia decentrata non è disponibile·    nell'SDB corrispondente non vi è alcuna registrazione per l'unità.    possibile per SFC 67 "X_GET" e SFC 68 "X_PUT" e SFC 72 "I_GET" e SFC 73 "I_PUT"
80B3    I dati possono essere o soltanto letti oppure solo scritti, p. es. DB protetto da scrittura    possibile per SFC 67 "X_GET" e SFC 68 "X_PUT" e SFC 72 "I_GET" e SFC 73 "I_PUT"
80B4    Errore del tipo dei dati per puntatore ANY, o ARRAY del tipo dei dati indicato non consentito.  SFC 67 "X_GET" e SFC 68 "X_PUT" e SFC 72 "I_GET" e SFC 73 "I_PUT":  il tipo dei dati indicato in VAR_ADDR non viene supportato dal partner di comunicazione.
80B5    Elaborazione negata a causa dello stato di funzionamento non consentito.    possibile per SFC 65 "X_SEND"
80B6    Nella conferma di acknowledge ricevuta c'è un codice di errore sconosciuto.    -
80B7    Il tipo dei dati e/o la lunghezza dei dati trasferiti non sono adatti all'area nella CPU partner nella quale si deve scrivere.    possibile per SFC 68 "X_PUT" e SFC 73 "I_PUT"
80B8    -    SFC 65 "X_SEND": la SFC 66 "X_RCV" del partner di comunicazione ha negato la conferma dei dati (RD=NIL).
80B9    -    SFC 65 "X_SEND": il blocco dati è stato identificato dal partner di comunicazione (richiamo della SFC 66 "X_RCV" con EN_DT=0), tuttavia non è ancora stato confermato nel programma utente a causa dello stato di funzionamento.
80BA    La risposta del partner di comunicazione non entra nel telegramma di comunicazione.    -
80C0    Il collegamento indicato è già occupato da un altro job.    -
80C1    Mancanza di risorse nella CPU sulla quale è in esecuzione la SFC, p. es.:·    il numero massimo di diversi job di trasmissione dell'unità viene già elaborato·    la risorsa di collegamento è p. es. occupata dalla ricezione.    -
80C2    Temporanea mancanza di risorse del partner di comunicazione, p. es.:·    il partner di comunicazione elabora momentaneamente il massimo dei job·    le risorse necessarie (memoria, ecc.) sono occupate·    memoria di lavoro disponibile insufficiente (avviare un processo di compressione).    -
80C3    Errore nella struttura del collegamento, p. es.:··    la propria stazione S7 non si trova sulla sotto-rete MPI·    la propria stazione è stata indirizzata sulla sotto-rete MPI·    il partner di comunicazione non è più accessibile·    temporanea mancanza di risorse del partner di comunicazione.    -
Qui se ritrovi nella RETVAL un codice 80C3 la cpu che interroghi non è disponibile, ma non è detto che non sia spento ... può avere anche raggiunto il numero massimo di collegamenti dinamici ad altri partner. Se usi S7 200 è molto più semplice nel primo byte della tabella, i 4 bit meno significativi (B0-B3) ti indicano un possibile errore, come indicato qui:
Codice errore    Descrizione    
  0    Nessun errore.    
  1    Errore di timeout; la stazione remota non risponde    
  2    Errore di ricezione; errore di parità, di framing o di somma di controllo nella risposta    
  3    Errore di off line; collisioni causate da più indirizzi di stazioni uguali o da un guasto hardware    
  4    Errore di overflow della coda di attesa; sono attivi più di 8 box NETR/NETW    
  5    Violazione protocollo; tentativo di eseguire NETR/NETW senza abilitazione di PPI+ in SMB30    
  6    Parametro non valido; la tabella NETR/NETW contiene un valore non ammesso o non valido    
  7    Nessuna risorsa; stazione remota occupata (sequenza di caricamento in PC/PLC in corso)    
  8    Errore di layer 7; violazione del protocollo di applicazione    
  9    Errore di messaggio; indirizzo o lunghezza dati errati

Se nonostante tutto ti trovi in difficoltà specifica bene il tuo hardware che magari riesco ad allestire un piccolo esperimento sul banco.

Ciao

Modificato: da Gabriele Corrieri
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...