dario87 Inserito: 25 agosto 2015 Segnala Share Inserito: 25 agosto 2015 Salve a tuttiho appena realizzato e provato il mio software su un twido.Da richiesta del cliente devo rendergli disponibile su modbus tutti gli ingressi e le uscite,come faccio a scrivere la funzione Grazie Link al commento Condividi su altri siti More sharing options...
pomat Inserita: 25 agosto 2015 Segnala Share Inserita: 25 agosto 2015 Aggiungi una banale copia in e da memory word, che per quanto ne so sul twido sono le uniche direttamente accessibili in lettura/scrittura modbus, almeno io ho sempre fatto così (il twido agisce come modbus slave/server ed espone le %MW come holding registers). Link al commento Condividi su altri siti More sharing options...
pomat Inserita: 25 agosto 2015 Segnala Share Inserita: 25 agosto 2015 Per la precisione se non ricordo male sono accessibili anche i memory digital (%M), ma non so se con gli stessi codici funzione e nello stesso range di indirizzi modbus, dovrei andare a vedere... Comunque anche per gli I/O digitali puoi far tutto mappandoli nei singoli bit delle %MW. Link al commento Condividi su altri siti More sharing options...
dario87 Inserita: 29 settembre 2015 Autore Segnala Share Inserita: 29 settembre 2015 Ciaose ho capito bene basta che scrivo l'ingresso desiderato mi va a scrivere %M?e automaticamente leggerò lo stato su modbus? Link al commento Condividi su altri siti More sharing options...
pomat Inserita: 30 settembre 2015 Segnala Share Inserita: 30 settembre 2015 Non capisco cosa intendi, comunque sono andato a rivedermi tutta la faccenda... Come ti dicevo, i %MW si accedono come holding registers (range di indirizzi modbus 4x, funzione modbus 3 per la lettura, 6 e 16 per la scrittura, rispettivamente singolo registro e multi-registro), mentre i %M si accedono come discrete coils (range di indirizzi modbus 0x, funzione modbus 1 per la lettura, 5 e 15 per la scrittura, rispettivamente singolo coil e multi-coil). La corrispondenza degli indirizzi è la seguente:%MW0 -> 400001%MW1 -> 400002...%M0 -> 000001%M1 -> 000002...Per gli I/O analogici è semplice: devi copiare il valore in/da %MW.Per gli I/O digitali hai due possibilità: o spostare il singolo valore digitale su %M, oppure, come ti dicevo, spostare intere sequenze di I/O digitali nei bit di %MW (ad esempio, l'operazione %MW0 := %I0.0:16 copia i digitali da %I0.0 a %I0.15 nei bit della %MW0). Nel primo caso il cliente deve poter leggere(scrivere) i coil modbus; nel secondo caso deve essere in grado di lavorare con i singoli bit del registro modbus. Link al commento Condividi su altri siti More sharing options...
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