Vai al contenuto
PLC Forum


Twido+modbus E Dispositivi Non Schneider - TWIDO+MODBUS e DISPOSITIVI NON SCHNEIDER


wakeup72

Messaggi consigliati

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 al commento
Condividi su altri siti


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 M

Per esempio la MW0 corrisponde al Modbus register 40001 mente la M100 corrisponde al Coil Status 00101.

Ciao

Link al commento
Condividi su altri siti

  • 2 weeks later...

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 Function

la 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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 qualcuno

ho 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...

Modificato: da gigions
Link al commento
Condividi su altri siti

  • 4 months later...

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 al commento
Condividi su altri siti

  • 5 months later...

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 al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...