Vai al contenuto

Richieste Multiple a strumento Modbus TCP


Messaggi consigliati

 Elettro_Elettro
Inserito:

Ciao a tutti, ho necessità di comunicare con uno strumento modbus tcp tramite una cpu s7 1511. Ho problemi a scrivere le richieste usando la funzione Modbus Client. La prima richiesta funziona e riesco a leggere i dati mentre la seconda e la terza non vanno a buon fine e quindi non riesco a scrivere i valori che vorrei allo strumento. Non ho codice di errore ma il bit di done non si attiva mai e lo status passa da 7000 a 7004.

In internet non ho trovato esempi o manuali a cui attingere per poter scrivere meglio la mia richiesta in tia portal.

Allego come sto facendo le richieste.

Avete documenti da condividere per piacere?

 

Grazie mille a chi ha del tempo da dedicarmi.

 

richiesta.png

1_richiesta.png

2_richiesta.png

Inserita: (modificato)

Hai dato un occhio alla documentazione  qui ? C'è anche un progetto che ti può essere utile.

Se è tutto li il ciclo di lettura/scrittura è un pò scarno. Ti serve il monitoraggio degli esiti e il controllo degli errori delle chiamate, con dei tempi di copertura.

Modificato: da drn5
 Elettro_Elettro
Inserita:
19 minuti fa, drn5 ha scritto:

Hai dato un occhio alla documentazione  qui ? C'è anche un progetto che ti può essere utile.

Se è tutto li il ciclo di lettura/scrittura è un pò scarno. Ti serve il monitoraggio degli esiti e il controllo degli errori delle chiamate, con dei tempi di copertura.

grazie mille. Purtroppo il progetto è con tia portal 13 e io ho il 19 quindi non me lo apre. Il file l'ho visto ma non capisco come possa fare al caso mio.

Con modbus client leggo e con modbus server scrivo? non credo.. 

 

Ciaoo

Inserita: (modificato)

Usi Mb_client se il tuo plc è client, sia per leggere che per scrivere i partner.

 

Nel codice che hai postato dai per scontato che ogni secondo puoi intervistare un partner diverso. Sarebbe giusto farlo sempre che il client in uso abbia terminato il suo job e nel caso attendere un tempo T da definire. La gestione degli errori è un'altra cosa che va implementata. Questo iter dovrebbe essere seguito anche tra la lettura e la scrittura del singolo partner. La tua "macchina a stati" deve insomma procedere con delle verifiche tra stato e stato.

 

Scrivi che il primo partner funziona e i successivi no, ma è sempre vero qualsiasi sia il primo partner oppure funziona solo con quel partner specifico? Hai provato a invertire l'ordine dei partner? Sei certo degli indirizzi dei partner?

Se succede con qualsiasi partner è la logica da perfezionare (vedi sopra) se invece funziona sempre con un partner specifico allora è l'impostazione sbagliata dei dati dei partner da controllare.

 

se hai dei dubbi qui puoi trovare delle info in più.

Modificato: da drn5
Inserita:

La prima cosa da fare è provare il funzionamento SENZA la logica che hai postato. assicurati che il REQ sia abilitato da una condizione vincolata solamente da un iput che setti da una tabella di variabili. se l'operazione lavori sul fronte di salita del segnale o lavora sullo stato true del segnale lo devi vedere dall'aiuto  in linea. Se non funziona possibile che uno dei parametri MB_MODE - MB_DATA_ADDR - MB_DATA_LEN sia errato oppure che l'indirizzo /  porta IP siano sbagliati.

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