tez Inserito: 12 giugno 2006 Segnala Inserito: 12 giugno 2006 Ciao a tutti,mi trovo per la prima volta ad usare una CP341 RS232/485 in configurazione Modbus per fornire dei dati in lettura ad un DCS.Ho configurato lo scambio dati tramite il mio DB13. Però chi sta dal'altra parte (DCS) mi chiede l'indirizzo delle variabili modbus che deve leggere.Ho seguito molti topic in cui si parlava di modbus ma non sono riuscito a trovare qualcosa che mi aiutasse.Forse ho sparato qualche cavolata e me ne scuso, ma non ho nessuna esperienza con il modbus.Grazie a chi mi risponde.Paolo
tazanda Inserita: 12 giugno 2006 Segnala Inserita: 12 giugno 2006 Nella documentazione dell'azionamento dovrebbe esserci la lista degli indirizzi Modbus di ogni parametro/ingresso/uscita accessibile via Modbus.
rddiego Inserita: 12 giugno 2006 Segnala Inserita: 12 giugno 2006 db13.dbw0 = 400001db13.dbw2 = 400002.....Attenzione che probabilmente (ma comunque verifica) i byte sono invertiti
tez Inserita: 12 giugno 2006 Autore Segnala Inserita: 12 giugno 2006 Ok, grazie rddiego. Nel mio caso il db è formato da una parte iniziale di bit, da una centrale di Real e da una finale ancora di bit.Il dubbio che mi sorge è sulla sequenzialità degli indirizzi quando devo numerare le word e dopo ancora i bit.Mi spiego meglio :DB13.DBX0.0 -> 10001DB13.DBX0.1 -> 10002DB13.DBX0.2 -> 10003DB13.DBX0.3 -> 10004.......DB13.DBD20 -> 70001 o 70004DB13.DBD24 ->.......DB13.DBX32.0 ->DB13.DBX32.1 ->....La prima Real che passo dovrebbe essere 70001 oppure considerata la quinta dall'inizio e cioè 70004 ???GraziePaolo
rddiego Inserita: 12 giugno 2006 Segnala Inserita: 12 giugno 2006 ATTENZIONE!!!il registro 700001 in modbus non esiste! Se l'hai trovato nel DCS probabilmente è il DCS stesso che si fa carico di costruire da due registri (INTERI) 4xxxxx un Floating Point a cui gli è stato assegnato l'indirizzo 7xxxxx nel DCS.Quando nella CP341 gli hai assegnato alle funzioni 03-16 (se non ricordo male) la DB13 vuol dire che tutti i registri da 400001 in poi corrispondono alla tua DB13.DBW0 in poi.Le word sono tutte degli interi e non esiste una lettura di doppie word o reali.Nel tuo esempio laDB13.DBD20 corrisponde alle words DB13.DBW20+DB13.DBW22 che in modbus saranno 400011+400012per chiarirti di più:DB13.DBW0 = 400001DB13.DBW2 = 400002DB13.DBW4 = 400003DB13.DBW6 = 400004DB13.DBW8 = 400005DB13.DBW10 = 400006DB13.DBW12 = 400007DB13.DBW14 = 400008DB13.DBW16 = 400009DB13.DBW18 = 400010DB13.DBW20 = 400011DB13.DBW22 = 400012DB13.DBW24 = 400013DB13.DBW26 = 400014DB13.DBW28 = 400015DB13.DBW30 = 400016DB13.DBW32 = 400017Poi........ parliamo dei bit.....In modbus non è possibile fare una lettura di bit di word, bisogna maskerare la word che li contiene. Potrebbe essere che sia una funzione già esistente nel DCS guardaci.Quindi il bit0 della prima word 400001 è il risultato dell'istruzione seguente:400001 AND 16#0001L'indirizzo modbus 100001 corrisponde in realtà al primo bit d'ingresso E0.0 quindi non c'entra nel tuo esempio.In sostanza i tuoi bit saranno:DB13.DBX0.0 -> 400001 AND 16#0001DB13.DBX0.1 -> 400001 AND 16#0002DB13.DBX0.2 -> 400001 AND 16#0004DB13.DBX0.3 -> 400001 AND 16#0008Ripeto, il mascheramento probabilmente è già implementato nel tuo DCS guarda bene.Siccome molto probabilmente i byte vengono invertiti durante la trasmissione il risultato sarà:DB13.DBX0.0 -> 400001 AND 16#0100DB13.DBX0.1 -> 400001 AND 16#0200DB13.DBX0.2 -> 400001 AND 16#0400DB13.DBX0.3 -> 400001 AND 16#0800L'altro gruppo di bit sarà:DB13.DBX32.0 -> 400017 AND 16#0100DB13.DBX32.1 -> 400017 AND 16#0200
tez Inserita: 12 giugno 2006 Autore Segnala Inserita: 12 giugno 2006 Ok, grazie, sei stato molto chiaro rddiego.Domani provo (visto che sono in Cina e siamo 6 ore avanti)A presto e grazie
tez Inserita: 15 giugno 2006 Autore Segnala Inserita: 15 giugno 2006 Ciao,allora il DCS permette la lettura di bit (probabilmente perchè fa la mascheratura dei bit come diceva rddiego).Il problema è che la FB80 mi restituisce degli errori ma non trovo l'. della diegnostica per capire che errori sono.E poi penso che sia sbagliata anche l'impostazione dei parametri nel protocollo della CP341.Qualcuno ha un programma d'esempio con driver Modbus slave?Grazie a tutti
rguaresc Inserita: 15 giugno 2006 Segnala Inserita: 15 giugno 2006 In modbus si possono leggere e settare i bit (bobine). Nel driver siemens per la 341 si possono impiegare come bit solo i merker e non i bit nei DB.
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