Comunicazione tra MT8070iER e display ModBus
Home › Forum › Terminali operatore (Weintek) › Comunicazione tra MT8070iER e display ModBus
- Questo topic ha 6 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 8 anni, 7 mesi fa da
Sergio Bertana.
-
AutorePost
-
Settembre 19, 2016 alle 5:58 pm #36054
Marcello
PartecipanteCome da titolo vorrei inviare dei comandi al display SC1602MBS della Silicon Craft (Vedi datasheet). Ho provato alcune configurazioni di Modbus RTU ma la risposta è sempre “PLC no Reponse”.
I collegamenti che ho effettuato corrispondono a quelli indicati, ho tentato anche incrociando D+ -> D-, ma niente…
Mi potete aiutare ?Settembre 21, 2016 alle 10:07 am #39707Sergio Bertana
Amministratore del forumHo dato una occhiata al datasheet del display ed ho visto che deve essere indirizzato con indirizzo nel range 40001÷40016, suporta sia i comandi 0x06 Preset single register che 0x10 Preset multiple registers quindi non dovrebbero esserci problemi a gestirlo.
Hai impostato corretamente il modo seriale (Baud, parità, stop bits)… Hai definito correttamente il nodo modbus (Slave ID)…
Per capire dove è il problema non ti resta che spiare la comunicazione RS485 con un’altra seriale ed uno sniffer (Topic).
Settembre 23, 2016 alle 3:15 pm #39709Marcello
PartecipanteEccomi ancora… Ho impostato il PLC (display) in questo modo:
Tipo PLC: MODBUS RTU
PLC I/F: RS-485 2W
COM: COM1(9600,N,8,1)
Stazione PLC no.: 1Ho creato due Bit Lamp e due Word Lamp.
Bit Lamp :0x 1#40001
Bit Lamp :4x_bit 1#40001
Word Lamp : 0x_single_coil 1#40001
Word Lamp: 4x 1#40001Giusto per una prova, ma niente continua a darmi “PLC no Response”. Dove sto sbagliando ?
Settembre 23, 2016 alle 4:15 pm #39710Sergio Bertana
Amministratore del forumIntanto metti sempre solo un oggetto, perchè se uno degli oggetti và in errore poi non capisci quali sono quelli giusti e quelli sbagliati.
Poi attento perchè indicano i registri come address 4000x ma in realtà sono ad address 0. Se guardi il datasheet vedrai questo:
0x0010 ( 40017) row 0—Unsigned IntegerMa poi quando riportano la stringa RTU (e li non possono mentire) scrivono:
[Slave ID] [ 0x06] [ 0x00][ 0x10 ] [ 0x40 ] [ 0x3A ] [ CRC Hi ] [ CRC Lo ]Dove vedi che dopo il codice di funzione 0x06 Write single register hanno definito indirizzo 0x0010 come scritto sopra e non 40017. E poi comunque spiate gente spiate… solo guardando cosa passa sulla seriale si capiscono i problemi…
Settembre 23, 2016 alle 9:18 pm #39711Marcello
PartecipanteHo trovato! Se utilizzo delle macro per inviare comadi il Display funziona, se provo a creare un tasto il TS invia questo codice:
01 01 00 00 00 10 3D C6
e non ottenendo risposta segnala lo stato di “PLC no Response”. Posso fare qualcosa ?
Settembre 24, 2016 alle 6:19 am #39712Sergio Bertana
Amministratore del forumVedi che spiando si inizia a fare luce nella nebbia… Se fai riferimendo al manuale Modbus, vedrai che la stringa inviata dal tasto è un comando 01 Read Coil Status, mentre dando una occhiata al datasheet del display mi sembra che per gestire i coils (Backlight e transistor output) tu posso solo usare il comando di scrittura 05 Force Single Coil.
Ma l’oggetto tasto del terminale non può solo scrivere, normalmente legge anche lo stato del coil ed il tuo display da errore. Penso che per gestire i coils del display dovrai lavorare di macro con OUTPORT.
Credo che anche per i testi sul display dovrai fare la stessa cosa perchè non mi sembra di avere visto comandi di lettura ma solo di scrittura.
Settembre 24, 2016 alle 6:28 am #39713Sergio Bertana
Amministratore del forumAggiungo solo per dare una visione globale delle possibili soluzioni che se introduci tra il terminale ed il display un ns sistema SlimLine, tu puoi con il FB ModbusMaster sullo SlimLine gestire i soli comandi di scrittura verso il display, mentre il terminale dialogando con lo SlimLine potrà gestire sia lettura che scrittura.
Inoltre il FB ModbusMaster con la funzione di spionaggio (Topic) permette in modo semplice di visualizzare il dialogo con il dispositivo.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.