Acasă > forum > Terminale de operare (Weintek) > Codurile Modbus utilizate pentru comunicare de la panou
- Acest subiect are 3 răspunsuri, 3 participanți și a fost actualizat ultima dată 4 ani, acum 9 luni da Sergio Bertana.
-
AutorPost
-
Decembrie 9, 2013 la 8: 08 am #35459Robertoparticipant
Folosesc panoul dvs. Weintek cu port ethernet conectat în Modbus TCP / IP cu un PLC Panasonic, pentru a efectua un test de conexiune Am introdus un obiect de Introducere numerică care se referă la registrul 399 al PLC. Am definit codul 3x în meniul derulant urmat de adresa de înregistrare, dar conectându-mă la PLC cu programul care este simulat pe PC, primesc o eroare de comunicare.
Am încercat să captez pachete Modbus TCP cu Wireshark și am văzut că panoul trimite pachetul de interogare Modbus cu codul 04, în ciuda faptului că a definit 3x în meniul derulant. PLC nu gestionează comanda Modbus 04. Cum pot rezolva?
Decembrie 9, 2013 la 8: 29 am #37917Sergio BertanaAdministrator al forumuluiCodurile afișate în meniul derulant al setărilor obiectului de pe terminal (screenshot) sunt doar o convenție care nu corespund codurilor Modbus reale utilizate în protocolul de comunicație. Așa cum este raportat în manualul conexiunilor PLC, aici este un tabel cu corespondențele dintre codul definit în obiect și codul Modbus relativ.
(0x) Coduri Modbus: Citire 0x01 Citire bobină, Scriere 0x05 scrie o singură bobină
(0x_multi_coils) Coduri Modbus: Citire 0x01 Citire bobină, Scriere 0x0F Scrie mai multe bobine
(1x) Coduri Modbus: Citirea 0x02 Citirea intrării discrete, Nu se ocupă de scriere
(3x) Coduri Modbus: Citirea 0x04 Citirea registrului de intrare, Nu se ocupă de scriere
(4x) Coduri Modbus: Citire 0x03 Citire registru de înregistrare, Scriere 0x10 Scrie mai multe registre
(5x) Coduri Modbus: Citirea 0x03 Citirea registrului de înregistrare, Scrierea 0x10 Scrierea mai multor registre (valoarea swap)
(6x) Coduri Modbus: Citire 0x03 Citire registru de înregistrare, Scriere 0x06 Scrie un singur registru (Un singur registru)
(3xbit) Echivalent cu comanda 3x
(4xbit) Echivalent cu comanda 4xIulie 19, 2019 la 6: 05 am #48595ManuelparticipantReiau această discuție din moment ce încerc să comunic cu un MT8070iE cu un dispozitiv modbus TCP / IP, trebuie să folosesc comanda 0x05 să scriu bobine simple și să scriu pe adresa 10010 pune-o pe una. Dacă folosesc un software gratuit extern, funcționează dacă folosesc panoul, nu pot sau mai degrabă nu înțeleg comanda de utilizat ca buton bit.
În teorie, am setat un bit de adresă zero modbus cu un buton și folosesc comanda 0x, dar cum îi spun să utilizeze 0x05 și să punctez 10010.
PS: Am cumpărat mai multe panouri de la tine și sunt bine.
Iulie 19, 2019 la 6: 12 am #48598Sergio BertanaAdministrator al forumuluiDacă te uiți la postarea anterioară, vei vedea că folosind comanda 0x, panoul va folosi automat codul Modbus 01 pentru a citi valoarea bitului și codul 05 pentru a scrie valoarea, astfel încât utilizarea codului 0x este corectă.
Dar între timp aș ridica îndoieli cu privire la utilizarea adresării bazate pe zero, sigur că nu este mai bine să folosiți Modbus TCP standard? încercați ambele, deoarece dacă dispozitivul dvs. este compatibil cu Modbus, trebuie să utilizați Modbus TCP standard.
Sigur că adresa de utilizat este 10010, în multe noduri de aplicații (Și în emulatoarele Modbus) codul modbus este adăugat în partea de sus a adresei, iar 10010 indică utilizarea comenzii Modbus 01 pentru a citi adresa 10. Deci aș încerca pentru a utiliza comanda 0x cu adresa 10.
-
AutorPost
- Trebuie să fiți autentificat pentru a răspunde la acest subiect.