Introducerea protocolului ModBus
Protocolul Modbus este un protocol de comunicare universal care a fost utilizat pe scară largă în domeniul controlului industrial de astăzi. Prin intermediul acestui protocol, controlerele pot comunica între ele sau cu alte dispozitive prin intermediul unei rețele, cum ar fi Ethernet. Protocolul Modbus utilizează tehnologia de comunicare Master-From, adică interogă și operează în mod activ de către dispozitivul principal. În general, protocolul utilizat de către dispozitivul master este numit Modbus Master, iar protocolul utilizat de către dispozitivul este numit Modbus Slave. Echipamentele principale tipice includ mașini de control industriale și controlere industriale; Tipic de la dispozitive cum ar fi PLC controlor programabil etc. Interfața fizică de comunicații Modbus poate fi selectată pentru porturi seriale (inclusiv RS232 și RS485) sau pentru porturi Ethernet. Comunicarea sa urmeaza urmatorul proces:
• Dispozitivul principal trimite cereri de la dispozitiv
● Analiza și procesarea solicitărilor de la dispozitivul principal, apoi trimiterea rezultatelor la dispozitivul principal
● În cazul în care apare o eroare, un cod de funcție anormal va fi întors de la dispozitiv
Software-ul de comunicare ModBus
Produsele de software pentru protocolul de comunicații ModBus lansate de Intel sunt utilizate în principal în mediul de plăci de bază Embedded ARM9 de Intel, plăcile de bază de control industrial de Intel sunt dotate cu o gamă bogată de porturi seriale, resurse de rețea, interfețe GPIO universale și altele, în timp ce au o puternică capacitate de procesare. În combinație cu software-ul ModBus, puteți crea cu ușurință o platformă de aplicații Master (Master) și Slave (Device) în conformitate cu specificațiile de comunicare ModBus. Pentru modul principal de comunicare ModBus, pachetul ModBus este împărțit în două părți care pot fi utilizate separat, respectiv „ModBus Master Protocol Software” (scurt modbus_Master) și „ModBus Device Side Protocol Software” (scurt modbus_Slave). În prezent, software-ul ModBus este executat în mediul WinCE și este disponibil clienților sub formă de funcție C plus bibliotecă LIB statică. Caracteristicile sale principale sunt următoarele:
Perfect pentru aplicații industriale în timp real
Suport pentru aplicații ModBus bazate pe port serial sau TCP
Mod de transmitere RTU
Suport pentru cele mai multe operații de cod Modbus, inclusiv operații de bit pentru bobină, întrerupător discret de intrare și operații de byte pentru registru
• Suport pentru adrese de difuzare
• Configurarea flexibilă a timpului de expirare a comunicațiilor ModBus
● Puteți obține informații detaliate despre codurile de eroare ale protocolului de transfer în comunicare
Diagrama de comunicare a software-ului ModBus

Coduri de funcții suportate de software-ul ModBus
Codul funcţiei |
Descriere |
1 |
Citire bobină unică |
2 |
Citirea intrărilor discrete |
3 |
Citiți mai multe registre |
4 |
Citirea registrului de intrare |
5 |
Scrie o bobină singură |
6 |
Scrie un singur registru |
15 |
Scrie mai multe bobine |
16 |
Scrie mai multe registre |
22 |
Blocarea registrului de scriere |
23 |
Registrul de citire/scriere |
Metode de bază de utilizare a software-ului
Pentru a facilita utilizarea aplicației și pentru a menține o formă de cod consistentă pentru diferitele mijloace de comunicare, funcțiile API din software-ul ModBus oferit de Ingron (inclusiv modbus_Master și modbus_Slave) pot suporta în același timp protocolul Modbus bazat pe port serial și TCP, aplicația trebuie doar să distingă cu parametri diferiți atunci când se chemă funcția de inițializare, pentru instrucțiuni despre parametri, consultați fișierele de intet corespunzătoare: modbus_Master.h și modbus_Slave.h
Aplicația modbus_master
Aplicația ca modul client Modbus este în principal pregătirea solicitărilor și trimiterea solicitărilor către dispozitivele serverului și așteptarea răspunsului serverului. În timpul dezvoltării unor astfel de aplicații, utilizatorii se pot referi la literatura standard Modbus și la manualul de date privind interfața de comunicare a dispozitivului susținut și pot apela direct la pachetul modbus_Master oferit de Intel care oferă funcțiile API de operare corespunzătoare pentru a completa accesul și controlul dispozitivului de server. Pentru a dezvolta astfel de aplicații, utilizatorul trebuie doar să includă modbus_master.h/modbus_master.lib.
Aplicația modbus_slave
Ca o aplicație în modul server ModBus, trebuie să se realizeze în principal analiza și răspunsul la mesajele aplicației ModBus, dar aceasta este doar o parte a întregii comunicații ModBus, iar cealaltă parte necesită acces la datele aplicației, iar conținutul trebuie definit de utilizatorul însuși. Pentru a facilita utilizarea de către client, aceste funcții de interfață de utilizator sunt încărcate automat în pachetul modbus_Slave sub forma unui cursor de funcție, care asociează procesarea datelor aplicației utilizatorului cu răspunsul la mesajul aplicației ModBus. Utilizatorul trebuie doar să definească aceste funcții de interfață în funcție de nevoile sale pentru a implementa funcțiile corespunzătoare, fiecare funcție fiind definită prin intermediul unui fișier CPP dedicat: DataProvider.cpp.
Prin urmare, acest tip de aplicații de dezvoltare trebuie să conțină două părți, o parte fiind o funcție API definită de modbus_slave.h/modbus_slave.lib; O altă parte este funcția de interfață de date de utilizator definită de DataProvider.h / DataProvider.cpp, în care funcția de interfață necesită ca utilizatorul să fie implementat în mod specific în DataProvider.cpp.
Pentru a răspunde la mesajele aplicației ModBus în timp util, este necesar să rețineți că, în timpul programării, un fir trebuie proiectat pentru a chema în mod repetat funcția de execuție modbus_Slave, care este în modul de blocare.
De exemplu:
(1) Lansarea protocolului Modbus
hPort = mbusSlave_StartupServer (_T('*'), 1, 10000, mbusSlave_Interface );
Sau...
hPort=mbusSlave_StartupServer(_T)"COM3:9600-8-1-0"),1,10000, mbusSlave_Interface );
(2) Chemarea funcției de executare Serverloop în fir pentru a răspunde la cerere
în timp ce( 1 )
{
//Chemați funcția de executare pentru analiza și răspunsul la mesajele ModBus.
rezultat = mbusSlave_ServerLoop( hPort );
dacă(rezultat!=0)//Verifică dacă returnează o eroare
{
//Procesarea erorilor: Acest exemplu este un mesaj text pentru a obține și imprima codul de eroare
wcscpy( szText, mbusSlave_GetErrorText( rezultat ) );
i1 = wcslen( szText );
dacă( i1>0 )
{
wcstombs( strText, szText, i1 );
printf(codul de eroare: %s! n'Stretex);
}
}
}
Anterior, software-ul ModBus a fost oferit clienților sub formă de funcții C plus biblioteci statice (fișiere modbus.lib sau libmodbus.a). Pe măsură ce este utilizat de tot mai mulți clienți, Intel a preinstalat protocolul ModBus, în special software-ul de protocol master (modbus_Master), sub forma unei biblioteci dinamice (fișiere modbus_Master.dll sau libmbusmaster.so) în sistemul de kernel de plăci de bază Embedded Industrial Control Intel pentru a facilita apelarea aplicațiilor clienților. Plăcile de bază preinstalate cu protocolul Modbus includ toate plăcile de bază din seria ESM (ESM6802, ESM6800, ESM335x, ESM928x etc.).
Referințe relevante
| Aplicații de colectare a inelului de curent de 4 ~ 20mA | Modbus Master Protocol Software pentru WinCE | |
| Software-ul Modbus pentru partea dispozitivului sub WinCE | Placa de bază Embedded Linux suportă protocolul Modbus Master | |
| Modbus Device Party Protocol pentru Linux | ESM6802 suportă dezvoltarea de programe Qt MODBUS | |
| Preinstalarea protocolului Modbus în placa de bază |
