wakeup72 Posted January 22, 2007 Report Share Posted January 22, 2007 Buongiorno,volevo sapere se qualcuno ha già fatto comunicare in modbus RS485 il twido con dispositivi slave MODBUS RTU non schneider electrics.Come avete fatto e avete esempi?Paolo Link to comment Share on other sites More sharing options...
Alex69 Posted January 26, 2007 Report Share Posted January 26, 2007 Sto svolgendo proprio ora, in un impianto, un'interfaccia tra Twido ed un sistema non Schneider comunicando Modbus.I twido sono utilizzati per inviare dei segnali e ricevere dei comandi dal sistema esterno mediante modbus RTU.Il programma all'interno del Twido l'ho sviluppato appoggiando tutti gli ingressi (segnali che devo condividere) su dei bit delle MW (I0.0=MW0:X0) metre le uscite (comandi che ricevo dal sistema esterno) su delle M (M0=Q0.0).Mediante le corrispondenze tra il protocollo Schneider e il Modbus RTU riesco a puntare direttamente le aree del Twido senza dover eseguire un'operazione di send-recive direttamente sul twido.Le corrispondenze sono:- Le MWn corrispondono alla parola 4000n+1 del Modbus RTU nella parte Modbus Register.- Le Mn Corrispondono alla parola 0000n+1 del Modbus RTU nella parte Modbus Register come Coil Status.n corrisponde al numero della MW o MPer esempio la MW0 corrisponde al Modbus register 40001 mente la M100 corrisponde al Coil Status 00101.Ciao Link to comment Share on other sites More sharing options...
rddiego Posted January 27, 2007 Report Share Posted January 27, 2007 Mediante le corrispondenze tra il protocollo Schneider e il Modbus RTUQuale sarebbe questo fantomatico protocollo schneider??????? Link to comment Share on other sites More sharing options...
Alex69 Posted January 29, 2007 Report Share Posted January 29, 2007 Scusa mi sono spiegato male. Intendevo la corrispondenza tra le M ed MW con il protocollo Modbus RTU Link to comment Share on other sites More sharing options...
gigions Posted February 9, 2007 Report Share Posted February 9, 2007 scusate la mia intromissione, ma sto cercando di utulizzare un twido compatto con un protocollo MODBUS RTU. mi sapreste indicare dove posso trovare il protocollo che utilizza il twido? i comandi interni sono chiari, inosomma ho trovato un documento che spiega come fare, ma se poi mi metto a leggere cosa esci dal PLC, non mi ritrovo con il protocollo...qualcuno sa com'è?sembra che non sia standard, anzi non lo è....su www.modbustools.com c'è una documentazione molto interessante sul ModBus in generale, ma senbra che il Twido non comunichi seguendo quel protocollo...tutto ciò perchè devo scrivere un sw esterno per il monitoraggio del sistema, e devo poter utilizzare il ModBus!!! Link to comment Share on other sites More sharing options...
RDA Posted February 10, 2007 Report Share Posted February 10, 2007 Per l'uso che ne ho fatto io,il twido in modbus e standard oltre il 100%, inoltre si dimostra estremamente performante sia come master che come slaves, con velocità di connessione fino a 38400 baud, il blocco da usare nel software e (EXCH) ovviamente parametrizzato correttamente. Link to comment Share on other sites More sharing options...
gigions Posted February 15, 2007 Report Share Posted February 15, 2007 Ok, proseguono i problemi.si ho capito e utilizzo il PLC correttamente, ma il mio problema è comunicare con lui dall'esterno secondo il protocollo Modbus.ora torna tutto ma non il CRC..ora in modalità RTU, il CRC16 è quello corretto, almeno così si trova in letteratura. così mi sono preso le routine per il calcolo in c++ e le ho convertite in vb2005.la riutine funziona, e rispetto allìesempio torna tutto, peccato il il PLC ne calcola uno diverso.. come posso fare?la routine in vb è: Function CRC16(ByRef nData() As Byte, ByVal wLength As Integer) As Long Dim nTemp As Byte Dim wCRCWord As Integer = &HFFFF Dim wCRCTable() As Integer = { _ &H0, &HC0C1, &HC181, &H140, &HC301, &H3C0, &H280, &HC241, _ &HC601, &H6C0, &H780, &HC741, &H500, &HC5C1, &HC481, &H440, _ &HCC01, &HCC0, &HD80, &HCD41, &HF00, &HCFC1, &HCE81, &HE40, _ &HA00, &HCAC1, &HCB81, &HB40, &HC901, &H9C0, &H880, &HC841, _ &HD801, &H18C0, &H1980, &HD941, &H1B00, &HDBC1, &HDA81, &H1A40, _ &H1E00, &HDEC1, &HDF81, &H1F40, &HDD01, &H1DC0, &H1C80, &HDC41, _ &H1400, &HD4C1, &HD581, &H1540, &HD701, &H17C0, &H1680, &HD641, _ &HD201, &H12C0, &H1380, &HD341, &H1100, &HD1C1, &HD081, &H1040, _ &HF001, &H30C0, &H3180, &HF141, &H3300, &HF3C1, &HF281, &H3240, _ &H3600, &HF6C1, &HF781, &H3740, &HF501, &H35C0, &H3480, &HF441, _ &H3C00, &HFCC1, &HFD81, &H3D40, &HFF01, &H3FC0, &H3E80, &HFE41, _ &HFA01, &H3AC0, &H3B80, &HFB41, &H3900, &HF9C1, &HF881, &H3840, _ &H2800, &HE8C1, &HE981, &H2940, &HEB01, &H2BC0, &H2A80, &HEA41, _ &HEE01, &H2EC0, &H2F80, &HEF41, &H2D00, &HEDC1, &HEC81, &H2C40, _ &HE401, &H24C0, &H2580, &HE541, &H2700, &HE7C1, &HE681, &H2640, _ &H2200, &HE2C1, &HE381, &H2340, &HE101, &H21C0, &H2080, &HE041, _ &HA001, &H60C0, &H6180, &HA141, &H6300, &HA3C1, &HA281, &H6240, _ &H6600, &HA6C1, &HA781, &H6740, &HA501, &H65C0, &H6480, &HA441, _ &H6C00, &HACC1, &HAD81, &H6D40, &HAF01, &H6FC0, &H6E80, &HAE41, _ &HAA01, &H6AC0, &H6B80, &HAB41, &H6900, &HA9C1, &HA881, &H6840, _ &H7800, &HB8C1, &HB981, &H7940, &HBB01, &H7BC0, &H7A80, &HBA41, _ &HBE01, &H7EC0, &H7F80, &HBF41, &H7D00, &HBDC1, &HBC81, &H7C40, _ &HB401, &H74C0, &H7580, &HB541, &H7700, &HB7C1, &HB681, &H7640, _ &H7200, &HB2C1, &HB381, &H7340, &HB101, &H71C0, &H7080, &HB041, _ &H5000, &H90C1, &H9181, &H5140, &H9301, &H53C0, &H5280, &H9241, _ &H9601, &H56C0, &H5780, &H9741, &H5500, &H95C1, &H9481, &H5440, _ &H9C01, &H5CC0, &H5D80, &H9D41, &H5F00, &H9FC1, &H9E81, &H5E40, _ &H5A00, &H9AC1, &H9B81, &H5B40, &H9901, &H59C0, &H5880, &H9841, _ &H8801, &H48C0, &H4980, &H8941, &H4B00, &H8BC1, &H8A81, &H4A40, _ &H4E00, &H8EC1, &H8F81, &H4F40, &H8D01, &H4DC0, &H4C80, &H8C41, _ &H4400, &H84C1, &H8581, &H4540, &H8701, &H47C0, &H4680, &H8641, _ &H8201, &H42C0, &H4380, &H8341, &H4100, &H81C1, &H8081, &H4040} Dim index As Integer index = 0 While (wLength > 0) wLength = wLength - 1 nTemp = (nData(index) Xor wCRCWord) And &HFF index = index + 1 wCRCWord >>= 8 wCRCWord = wCRCWord Xor wCRCTable(nTemp) End While Return wCRCWord End Functionla richiesta di lettura parole secondo il PLC è:(in notrazione decimale)02 22 00 16 00 02 20 101 quello che faccio io è:02 22 00 16 00 02 62 200 se qualcuno ha avuto la stessa necessità, accetto suggerimenti.. Link to comment Share on other sites More sharing options...
biros66 Posted February 16, 2007 Report Share Posted February 16, 2007 Hai configurato IL PLC come SLAVE (indirizzo porta > 1), ciao Link to comment Share on other sites More sharing options...
RDA Posted February 19, 2007 Report Share Posted February 19, 2007 Attenzione.Se al twido chiedi delle aree dati no usate nel codice oppure la confugurazione delle stesse è in modalità automatica ti risponde con un messaggio di errore.Es. nel codice del plc uso la %mw100, nelle letture del master chiedo la %mw101, il plc mi risponde in modo errato e il master si arrabbia.Per ovviare nella configurazione delle aree dati del plc tolgo il settaggio delle mw in automatico e per esempio metto la ultima %MW 200 per superare quelle che vengono richieste dal master.Il problema si era posto anche al sottoscritto che si è risolto come indicato nel presente.Ovviamente come logico che sia avendo settato i parametri di comunicazione in modo corretto e i rispettivi collegamenti elettrici.Saluti. Link to comment Share on other sites More sharing options...
gigions Posted February 20, 2007 Report Share Posted February 20, 2007 (edited) Ciao a Tutti,dopo un controllo molto approfondito, posso dire a tutti che dovete prestare molta attenzione al codice che scrivete in Vb o altro. Mi spiego meglio, quando aprite la porta fate molta attenzione ai settaggi che usate: handshake, bit di stop, e Bit dati.di default la porta viene aperta a 7 Bit dati,mentre per il modBus ne servono 8!!!se fate tutto giusto ma solo uno dei parametri è sbagliato otterrete caratteri non corretti, e di conseguenza non funziona assolutamente nulla, nonostante in dubug interno al programma vi torna tutto!ho dovuto litigarci non poco per capire dov'era il problema!!ad ogni modo la routine che ho scritto sopra è corretta e perfettamente funzionante! spero che possa essere di aiuto a qualcunoho solo una semplice domanda.è possibile avere un trigger di ricezione messaggio sulla com2? in modo da lasciare in automatico la ricezione dei pacchetti, ma avendo la possibilità di intervenire dopo la ricezione di un pacchetto... Edited February 20, 2007 by gigions Link to comment Share on other sites More sharing options...
moretti71 Posted July 12, 2007 Report Share Posted July 12, 2007 Qualcumo mi sa dire come inizio la trasmissione.O meglio cosa sono quei fantomatici T1 T2 T3 T4 che trovo nella documentazione come byte di apertura e chiusura trasmissione MobBus RTU?Grazie Link to comment Share on other sites More sharing options...
p.luciano Posted December 13, 2007 Report Share Posted December 13, 2007 Ciao sono nuovo con TWIDO c'è qualcuno che mi puo spiegare come fare a leggere UN BIT, UNA PAROLA, UNA DOPPIA, UN REAL tramite un dispositivo che utilizza MODBUS RTU su ETHERNET.Ringrazio tutti fin d'ora LUCIANO Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now