Elettro_Elettro Inserito: 7 ore fa Segnala Inserito: 7 ore fa 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.
drn5 Inserita: 7 ore fa Segnala Inserita: 7 ore fa (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: 7 ore fa da drn5
Elettro_Elettro Inserita: 7 ore fa Autore Segnala Inserita: 7 ore fa 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
drn5 Inserita: 4 ore fa Segnala Inserita: 4 ore fa (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: 4 ore fa da drn5
pigroplc Inserita: 1 ora fa Segnala Inserita: 1 ora fa 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.
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