abbio90 Inserito: mercoledì alle 14:33 Segnala Inserito: mercoledì alle 14:33 Buongiorno, ho un PLC collegato ad un azionamento Schneider ATV320 in modbus RTU. Dal S7/1200 con versione 4.2 e CB1241 v.1.0 ho configurato i blocchi "Modbus_comm_load" e "Modbus_Master con mode 0. Ho creato un DB disabilitando l'accesso ottimizzato e leggo correttamente i vari valori dell' azionamento. Se volessi creare anche una logica per avviarlo, quindi non solo lettura ma anche scrittura, devo creare un secondo blocco modbus master con mode 1 e indicare con il puntatore l'offset del DB che uso per la scrittura? E il REQ dei due blocchi come lo gestisco? Essendo l'RS485 half duplex non credo possa lanciare il REQ sia al blocco di lettura che di scrittura contemporaneamente. Qualcuno saprebbe darmi qualche consiglio su come gestire la cosa. Grazie Sarebbe inoltre interessante, capire come gestite i blocchi e la loro abilitazione quando si hanno più slave su cui leggere i dati
pigroplc Inserita: ieri dalle 01:21 Segnala Inserita: ieri dalle 01:21 Parametrizzi lo stesso blocco e ti crei una catena sequenziale che vada a leggere e scrivere in alternativa. Idem per altri componenti sempre con lo stesso blocco. Viene cervellotico? SI, infatti è uso comune mettere la schda profinet e si risparmia tempo, codice e nervoso.
abbio90 Inserita: ieri dalle 05:08 Autore Segnala Inserita: ieri dalle 05:08 Quindi te dici di cambiarli: mode, indirizzo registro e puntatore gestiti da una catena ciclica che cambia i dati e lancia successivamente il REQ? Il puntatore come lo gestisco? Posso dichiararlo come variabile?
pigroplc Inserita: 18 ore fa Segnala Inserita: 18 ore fa 18 ore fa, abbio90 ha scritto: Il puntatore come lo gestisco? Posso dichiararlo come variabile? Al posto di dichiarare un parametro fisso dichiari una variabile che aggiorni di volta in volta: passo 1 dichiari prima operazione aggiornando variabili + comando di esecuzipasso 5 come passo 2 per altro comando di esecuzioneone passo 2 attendi completamento operazione bit "done" o altra diavoleria passo 3 magari attendi un tempo di 100 msec che potrai togliere in fututo, ma in debug lo allunghi per vedere i tag aggiornati e gevolarti il debug passo 4 come passo 1 per altro comando di esecuzione passo 5 come passo 2 per altro comando di esecuzione passo 6 come passo 3 per altro comando di esecuzione ecc. ultimo segmento metti la call del modbus
abbio90 Inserita: 2 ore fa Autore Segnala Inserita: 2 ore fa Questo l'ho capito. Non ho capito però il puntatore come gestirlo. Se devo cambiare puntatore come lo dichiaro nelle variabili? C'è un data type apposito? Oppure come faccio? Cioè nel campo DATA PTR se metto una variabile che data type deve avere? I dati che scrivo sono in un offset differente rispetto a quelli che leggo
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