Komanda nümunələri ilə birlikdə Modbus TCP protokolunun ətraflı təsviri
Bu məqalədə siz Modbus RTU protokolunun təkamülü olan Modbus TCP protokolu haqqında öyrənəcəksiniz. Məqalənin ingiliscə versiyası bu internet səhifəsində mövcuddur: ipc2u.com.
Ətraflı təsvir və komanda nümunələri ilə birlikdə Modbus RTU protokolunun sadə dildə izahı
Mündəricat:
- Modbus TCP komandasını hara göndərmək olar?
- Modbus TCP protokolunun təsviri
- Modbus TCP komanda tipləri (növləri)
- Rəqəmsal girişi oxumaq üçün Modbus TCP komandasını necə göndərmək olar? Komanda 0x01
- Rəqəmsal girişi oxumaq üçün komandanı necə göndərmək olar? Komanda 0x02
- Analoq girişi oxumaq üçün komandanı necə göndərmək olar? Komanda 0x03
- Analoq girişi oxumaq üçün komandanı necə göndərmək olar? Komanda 0x04
- Rəqəmsal girişi yazmaq üçün komandanı necə göndərmək olar? Komanda 0x05
- Analoq girişi yazmaq üçün komandanı necə göndərmək olar? Komanda 0x06
- Bir neçə rəqəmsal girişi yazmaq üçün komandanı necə göndərmək olar? Komanda 0x0F
- Bir neçə analoq girişi yazmaq üçün komandanı necə göndərmək olar? Komanda 0x10
- Modbus TCP sorğu xətaları
- Modbus TCP protokolu ilə işləmək üçün proqramlar
- Modbus TCP protokolunu dəstəkləyən avadanlıqlar
Modbus TCP komandasını hara göndərmək olar?
Ethernet şəbəkəsində cihazın ünvanı onun IP ünvanıdır. Adətən, qurğular eyni altşəbəkədə yerləşir, burada IP ünvanları ən çox yayılmış altşəbəkə maskası 255.255.255.0-dan istifadə edərək 192.168.1.20 –in son rəqəmləri ilə fərqlənir.
Ethernet şəbəkəsi interfeysdir, məlumat ötürmə protokolu TCP/IP-dir.
İstifadə olunan TCP portu: 502.
Yuxarıda - Mündəricat bölməsində
Modbus TCP protokolunun təsviri
Modbus TCP komandası Modbus RTU mesaj hissəsindən və xüsusi başlıqdan ibarətdir.
Modbus RTU haqqında məlumat bu məqalədə yazılıb.
MGate seriyalı Modbus TCP və Modbus RTU protokol çeviriciləri
PDU, Protocol Data Unit-i yaratmaq üçün başlanğıcda SlaveID ünvanı və sonda CRC yoxlama cəmi Modbus RTU mesajından çıxarılır.
17-ci cihazının ünvanı ilə 40108 saylı registrdən 40110 saylı registrə qədər AO analoq çıxışın (holding registers) qiymətini almaq üçün Modbus RTU sorğusunun nümunəsi aşağıda verilib.
11 03 006B 0003 7687
11 | SlaveID (17 = 11 hex) cihazının ünvanı |
03 | Funksiya kodu Function Code (Analog Output Holding Registers-i oxumaq) |
006B | Birinci registrin ünvanı (40108-40001 = 107 =6B hex) |
0003 | Tələb olunan registrlərin sayı (40108-dən 40110-a qədər 3 registri oxumaq) |
7687 | CRC yoxlama cəmi |
SlaveID cihaz ünvanını və CRC yoxlama cəmini çıxırıq və PDU alırıq:
03 006B 0003
Nəticədə əldə edilmiş PDU mesajının əvvəlinə MBAP Header (Modbus Application Header) adlanan yeni 7 baytlıq başlıq əlavə edilir. Bu başlıqda aşağıdakı məlumatlar var:
Transaction Identifier (Tranzaksiyanın identifikatoru): Hər bir sorğunu unikal şəkildə müəyyən etmək üçün Master tərəfindən 2 bayt təyin edilir. Bu, hər hansı biri ola bilər. Bu baytlar Slave tərəfindən cavabda təkrar olunur, çünki Slave-dən gələn cavablar həmişə sorğularla eyni ardıcıllıqla əldə olunmaya bilər.
Protocol Identifier (Protokolun identifikatoru): 2 bayt Master tərəfindən təyin edilir, o, həmişə Modbus protokoluna uyğun şəkildə = 00 00 olacaqdır.
Length (Uzunluq): 2 bayt Master tərəfindən təyin edilir və növbəti mesajdakı baytların sayını müəyyən edir. Unit Identifier-dən mesajın sonuna qədər sayılır.
Unit Identifier (Blok İdentifikatoru və ya cihaz ünvanıdır): Master tərəfindən 1 bayt təyin edilir. Slave cihazını unikal şəkildə müəyyən etmək üçün Slave cihazı tərəfindən təkrarlanır.
Nəticədə, aşağıdakıları əldə edirik:
Modbus RTU | Slave ID | Sorğu | CRC |
Modbus RTU | 11 | 03 006B 0003 | 7687 |
Modbus TCP | 0001 0000 0006 11 | 03 006B 0003 | |
Modbus TCP | MBAP Header | PDU | |
Modbus TCP | ADU, Application Data Unit |
Olduğu yerdə:
0001 | Tranzaksiyanın identifikatoru | Transaction Identifier |
0000 | Protokolun identifikatoru | Protocol Identifier |
0006 | Uzunluğu (6 bayt sonra gəlir) | Message Length |
11 | Cihazın ünvanı (17 = 11 hex) | Unit Identifier |
03 | Funksiya kodu (oxuyuruq: Analog Output Holding Registers) | Function Code |
006B | Birinci registrin ünvanı (40108-40001 = 107 =6B hex) | Data Address of the first register |
0003 | Tələb olunan registrlərin sayı (40108-dən 40110-a qədər 3 registri oxumaq) | The total number of registers |
Modbus RTU Slave cihazından aşağıdakıları alırıq:
0001 0000 0009 11 03 06 022B 0064 007F
Olduğu yerdə:
0001 | Tranzaksiyanın identifikatoru | Transaction Identifier |
0000 | Protokolun identifikatoru | Protocol Identifier |
0009 | Uzunluğu (9 bayt sonra gəlir) | Message Length |
11 | Cihazın ünvanı (17 = 11 hex) | Unit Identifier |
03 | Funksiya kodu (oxuyuruq: Analog Output Holding Registers) | Function Code |
06 | Növbəti baytların sayı (6 bayt sonra gəlir) | Byte Count |
02 | Registrin ən yüksək mərtəbəsinin (bitinin) qiyməti (02 hex) | Register value Hi (AO0) |
2B | Registrin ən aşağı mərtəbəsinin (bitinin) qiyməti (2B hex) | Register value Lo (AO0) |
00 | Registrin ən yüksək mərtəbəsinin (bitinin) qiyməti (00 hex) | Register value Hi (AO1) |
64 | Registrin ən aşağı mərtəbəsinin (bitinin) qiyməti (64 hex) | Register value Lo (AO1) |
00 | Registrin ən yüksək mərtəbəsinin (bitinin) qiyməti (00 hex) | Register value Hi (AO2) |
7F | Registrin ən aşağı mərtəbəsinin (bitinin) qiyməti (7F hex) | Register value Lo (AO2) |
AO0 analoq çıxış registri onluq sistemdə 02 2B HEX və ya 555 qiyməti təyin edilir.
AO1 analoq çıxış registri onluq sistemdə 00 64 HEX və ya 100 qiyməti təyin edilir.
AO2 analoq çıxış registri onluq sistemdə 00 7F HEX və ya 127 qiyməti təyin edilir.
Yuxarıda - Mündəricat bölməsində
Modbus TCP komanda tipləri (növləri)
Modbus TCP registrlərinin oxunması və yazılması üçün kodlar olan cədvəl aşağıda verilib.
Funksiyaların kodu | Bu funksiya nə edir | Qiymətin tipi | Giriş tipi | |
01 (0x01) | DO Oxumaq | Read Coil Status | Rəqəmsal | Oxumaq |
02 (0x02) | DI Oxumaq | Read Input Status | Rəqəmsal | Oxumaq |
03 (0x03) | AO Oxumaq | Read Holding Registers | 16 bit | Oxumaq |
04 (0x04) | AI Oxumaq | Read Input Registers | 16 bit | Oxumaq |
05 (0x05) | Bir DO Yazmaq | Force Single Coil | Rəqəmsal | Yazmaq |
06 (0x06) | Bir AO Yazmaq | Preset Single Register | 16 bit | Yazmaq |
15 (0x0F) | Bir neçə DO Yazmaq | Force Multiple Coils | Rəqəmsal | Yazmaq |
16 (0x10) | Bir neçə AO Yazmaq | Preset Multiple Registers | 16 bit | Yazmaq |
Yuxarıda - Mündəricat bölməsində
Rəqəmsal girişi oxumaq üçün Modbus TCP komandasını necə göndərmək olar? Komanda 0x01
Bu komandadan DO rəqəmsal girişlərin qiymətlərini oxumaq üçün istifadə olunur.
PDU sorğusu birinci DO registrinin başlanğıc ünvanını və tələb olunan DO qiymətlərinin növbəti sayını təyin edir. PDU - larda DO qiymətləri sıfırdan başlayaraq ünvanlanır.
Cavabdakı DO qiymətləri bir baytdadır və bitlərin qiymətinə uyğundur.
Bit qiymətləri 1 = ON və 0 = OFF kimi müəyyən edilir.
Birinci məlumat baytının ən aşağı biti sorğuda ünvanı göstərilən DO qiymətini özündə daşıyır. Qalan DO qiymətləri artan sıra ilə ən yüksək bayt qiymətinə qədər davam edir, yəni, sağdan sola doğru.
Əgər səkkizdən az DO qiyməti tələb edilmiş olarsa, o halda cavabda qalan bitlər sıfırlarla doldurulacaqdır (ən aşağı baytdan ən yüksək bayta qədər). Byte Count Növbəti baytların sayı sahəsi cavabdakı məlumatların tam baytlarının sayını göstərir.
Bayt | Sorğu | Bayt | Cavab |
(Hex) | Sahənin adı | (Hex) | Sahənin adı |
01 | Tranzaksiyanın identifikatoru | 01 | Tranzaksiyanın identifikatoru |
02 | 02 | ||
00 | Protokolun identifikatoru | 00 | Protokolun identifikatoru |
00 | 00 | ||
00 | Mesajın uzunluğu | 00 | Mesajın uzunluğu |
06 | 04 | ||
01 | Cihazın ünvanı | 01 | Cihazın ünvanı |
01 | Funksiya kodu | 01 | Funksiya kodu |
00 | Birinci Hi bayt registrin ünvanı | 01 | Növbəti baytların sayı |
00 | Birinci Lo bayt registrin ünvanı | 02 | Bu registrin qiyməti: DO 0-1 |
00 | Hi bayt registrlərinin miqdarı | ||
02 | Lo bayt registrlərinin miqdarı |
DO0-1 çıxışlarının statusları 02 hex baytının qiymətləri kimi və ya ikilik sistemi 0000 0010-da göstərilir.
DO1 qiyməti sağdan ikinci, DO0 qiyməti sə sağdan birinci olacaqdır (ən aşağı bit).
Qalan altı bit tam baytla sıfırlarlarla doldurulmuşdur, çünki onlar tələb olunmamışdır.
Kanallar | - | - | - | - | - | - | DO 1 | DO 0 |
Bitlər | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
Hex | 02 |
Rəqəmsal çıxış modulları: ioLogik E1211, ET-7060, ADAM-6060
Yuxarıda - Mündəricat bölməsində
Rəqəmsal girişi oxumaq üçün Modbus TCP komandasını necə göndərmək olar? Komanda 0x02
Bu komandadan DI rəqəmsal girişlərin qiymətlərini oxumaq üçün istifadə olunur.
Sorğu и ответ для DI похож на запрос для DO.
Bayt | Sorğu | Bayt | Cavab |
(Hex) | Sahənin adı | (Hex) | Sahənin adı |
01 | Tranzaksiyanın identifikatoru | 01 | Tranzaksiyanın identifikatoru |
02 | 02 | ||
00 | Protokolun identifikatoru | 00 | Protokolun identifikatoru |
00 | 00 | ||
00 | Mesajın uzunluğu | 00 | Mesajın uzunluğu |
06 | 04 | ||
01 | Cihazın ünvanı | 01 | Cihazın ünvanı |
02 | Funksiya kodu | 02 | Funksiya kodu |
00 | Birinci Hi bayt registrin ünvanı | 01 | Növbəti baytların sayı |
00 | Birinci Lo bayt registrin ünvanı | 03 | Bu registrin qiyməti: DI 0-1 |
00 | Hi bayt registrlərinin miqdarı | ||
02 | Lo bayt registrlərinin miqdarı |
DI 0-1 çıxışlarının statusları 03 hex baytının qiymətləri kimi və ya ikilik sistemi 0000 0011-də göstərilir
DI1 qiyməti sağdan ikinci, DI0 qiyməti sə sağdan birinci olacaqdır (ən aşağı bit).
Qalan bitlər sıfırlarlarla doldurulmuşdur.
Rəqəmsal girişi olan modullar: ioLogik E1210, ET-7053, ADAM-6050
Yuxarıda - Mündəricat bölməsində
Analoq çıxışı oxumaq üçün Modbus TCP komandasını necə göndərmək olar? Komanda 0x03
Bu komandadan AO analoq çıxışların qiymətlərini oxumaq üçün istifadə olunur
Bayt | Sorğu | Bayt | Cavab |
(Hex) | Sahənin adı | (Hex) | Sahənin adı |
01 | Tranzaksiyanın identifikatoru | 01 | Tranzaksiyanın identifikatoru |
02 | 02 | ||
00 | Protokolun identifikatoru | 00 | Protokolun identifikatoru |
00 | 00 | ||
00 | Mesajın uzunluğu | 00 | Mesajın uzunluğu |
06 | 07 | ||
01 | Cihazın ünvanı | 01 | Cihazın ünvanı |
03 | Funksiya kodu | 03 | Funksiya kodu |
00 | Birinci Hi bayt registrin ünvanı | 04 | Növbəti baytların sayı |
00 | Birinci Lo bayt registrin ünvanı | 02 | Bu registrin qiyməti: Hi (AO0) |
00 | Hi bayt registrlərinin miqdarı | 2B | Bu registrin qiyməti: Lo (AO0) |
02 | Lo bayt registrlərinin miqdarı | 00 | Bu registrin qiyməti: Hi (AO1) |
64 | Bu registrin qiyməti: Lo (AO1) |
AO0 çıxışının statusu 02 2B hex baytının qiymətləri kimi və ya onluq sistemi 555-də göstərilir
AO1 çıxışının statusu 00 64 hex baytının qiymətləri kimi və ya onluq sistemi 100-də göstərilir
Rəqəmsal girişi olan modullar: ioLogik E1210, ET-7053, ADAM-6050
Yuxarıda - Mündəricat bölməsində
Analoq girişi oxumaq üçün Modbus TCP komandasını necə göndərmək olar? Komanda 0x04
Bu komandadan AI analoq girişlərinin qiymətlərini oxumaq üçün istifadə olunur.
Bayt | Sorğu | Bayt | Cavab |
(Hex) | Sahənin adı | (Hex) | Sahənin adı |
01 | Tranzaksiyanın identifikatoru | 01 | Tranzaksiyanın identifikatoru |
02 | 02 | ||
00 | Protokolun identifikatoru | 00 | Protokolun identifikatoru |
00 | 00 | ||
00 | Mesajın uzunluğu | 00 | Mesajın uzunluğu |
06 | 07 | ||
01 | Cihazın ünvanı | 01 | Cihazın ünvanı |
04 | Funksiya kodu | 04 | Funksiya kodu |
00 | Birinci Hi bayt registrin ünvanı | 04 | Növbəti baytların sayı |
00 | Birinci Lo bayt registrin ünvanı | 00 | Bu registrin qiyməti: Hi (AI0) |
00 | Hi bayt registrlərinin miqdarı | 0A | Bu registrin qiyməti: Lo (AI0) |
02 | Lo bayt registrlərinin miqdarı | 00 | Bu registrin qiyməti: Hi (AI1) |
64 | Bu registrin qiyməti: Lo (AI1) |
AI0 çıxışının statusu 00 0A hex baytının qiymətləri kimi və ya onluq sistemi 10-da göstərilir
AI1 çıxışının statusu 00 64 hex baytının qiymətləri kimi və ya onluq sistemi 100-də göstərilir.
Analoq girişli modullar: ioLogik E1240, ET-7017-10, ADAM-6217
Yuxarıda - Mündəricat bölməsində
Rəqəmsal çıxışı yazmaq üçün Modbus TCP komandasını necə göndərmək olar? Komanda 0x05
Bu komandadan DO rəqəmsal çıxışının bir qiymətini yazmaq üçün istifadə olunur.
FF 00 hex qiyməti ON işə salınma vəziyyətinə qoyulur.
00 00 hex qiyməti OFF söndürülmə vəziyyətinə qoyulur.
Bütün digər qiymətlər etibarsızdır və çıxış qiymətinə təsir etməyəcəkdir.
Belə bir sorğuya normal cavab DO statusu dəyişdirildikdən sonra qaytarılan əks-sədadır (cavabda sorğunun təkrarlanması).
Bayt | Sorğu | Bayt | Cavab |
(Hex) | Sahənin adı | (Hex) | Sahənin adı |
01 | Tranzaksiyanın identifikatoru | 01 | Tranzaksiyanın identifikatoru |
02 | 02 | ||
00 | Protokolun identifikatoru | 00 | Protokolun identifikatoru |
00 | 00 | ||
00 | Mesajın uzunluğu | 00 | Mesajın uzunluğu |
06 | 06 | ||
01 | Cihazın ünvanı | 01 | Cihazın ünvanı |
05 | Funksiya kodu | 05 | Funksiya kodu |
00 | Hi bayt registrin ünvanı | 00 | Hi bayt registrin ünvanı |
01 | Lo bayt registrin ünvanı | 01 | Lo bayt registrin ünvanı |
FF | Hi baytın qiyməti | FF | Hi baytın qiyməti |
00 | Lo baytın qiyməti | 00 | Lo baytın qiyməti |
DO1 çıxışının statusu söndürülmə OFF -dan işəsalma ON vəziyyətinə dəyişdirilib.
Rəqəmsal çıxış modulları: ioLogik E1211, ET-7060, ADAM-6060
Yuxarıda - Mündəricat bölməsində
Analoq çıxışı yazmaq üçün Modbus TCP komandasını necə göndərmək olar? Komanda 0x06
Bu komandadan AO analoq çıxışının bir qiymətini yazmaq üçün istifadə olunur.
Bayt | Sorğu | Bayt | Cavab |
(Hex) | Sahənin adı | (Hex) | Sahənin adı |
01 | Tranzaksiyanın identifikatoru | 01 | Tranzaksiyanın identifikatoru |
02 | 02 | ||
00 | Protokolun identifikatoru | 00 | Protokolun identifikatoru |
00 | 00 | ||
00 | Mesajın uzunluğu | 00 | Mesajın uzunluğu |
06 | 06 | ||
01 | Cihazın ünvanı | 01 | Cihazın ünvanı |
06 | Funksiya kodu | 06 | Funksiya kodu |
00 | Hi bayt registrin ünvanı | 00 | Hi bayt registrin ünvanı |
01 | Lo bayt registrin ünvanı | 01 | Lo bayt registrin ünvanı |
55 | Hi baytın qiyməti | 55 | Hi baytın qiyməti |
FF | Lo baytın qiyməti | FF | Lo baytın qiyməti |
AO0 çıxışının statusu 55 FF hex baytının qiymətləri kimi və ya onluq sistemi 22015-də göstərilir.
Analoq çıxışı olan modullar: ioLogik E1241, ET-7028, ADAM-6224
Yuxarıda - Mündəricat bölməsində
Bir neçə rəqəmsal çıxışı yazmaq üçün Modbus TCP komandasını necə göndərmək olar? Komanda 0x0F
Bu komandadan DO rəqəmsal çıxışın bir neçə qiymətini yazmaq üçün istifadə olunur.
Bayt | Sorğu | Bayt | Cavab |
(Hex) | Sahənin adı | (Hex) | Sahənin adı |
01 | Tranzaksiyanın identifikatoru | 01 | Tranzaksiyanın identifikatoru |
02 | 02 | ||
00 | Protokolun identifikatoru | 00 | Protokolun identifikatoru |
00 | 00 | ||
00 | Mesajın uzunluğu | 00 | Mesajın uzunluğu |
08 | 06 | ||
01 | Cihazın ünvanı | 01 | Cihazın ünvanı |
0F | Funksiya kodu | 0F | Funksiya kodu |
00 | Birinci Hi bayt registrin ünvanı | 00 | Birinci Hi bayt registrin ünvanı |
00 | Birinci Lo bayt registrin ünvanı | 00 | Birinci Lo bayt registrin ünvanı |
00 | Hi bayt registrlərinin miqdarı | 00 | Yazılı registr Hi baytlarının miqdarı |
02 | Lo bayt registrlərinin miqdarı | 02 | Yazılı registr Lo baytlarının miqdarı |
01 | Növbəti baytların sayı | ||
02 | Bayt qiyməti |
DO1 çıxışının statusu söndürülmə OFF -dan işəsalma ON vəziyyətinə dəyişdirilib.
DO0 çıxışının statusu söndürülmə OFF olaraq qalır.
Rəqəmsal çıxış modulları: ioLogik E1211, ET-7060, ADAM-6060
Yuxarıda - Mündəricat bölməsində
Bir neçə analoq çıxışı yazmaq üçün Modbus RTU komandasını necə göndərmək olar? Komanda 0x10
Bu komandadan AO analoq çıxışının bir neçə qiymətini yazmaq üçün istifadə olunur.
Bayt | Sorğu | Bayt | Cavab |
(Hex) | Sahənin adı | (Hex) | Sahənin adı |
01 | Tranzaksiyanın identifikatoru | 01 | Tranzaksiyanın identifikatoru |
02 | 02 | ||
00 | Protokolun identifikatoru | 00 | Protokolun identifikatoru |
00 | 00 | ||
00 | Mesajın uzunluğu | 00 | Mesajın uzunluğu |
0B | 06 | ||
01 | Cihazın ünvanı | 01 | Cihazın ünvanı |
10 | Funksiya kodu | 10 | Funksiya kodu |
00 | Birinci Hi bayt registrin ünvanı | 00 | Birinci Hi bayt registrin ünvanı |
00 | Birinci Lo bayt registrin ünvanı | 00 | Birinci Lo bayt registrin ünvanı |
00 | Hi bayt registrlərinin miqdarı | 00 | Yazılı registr Hi baytlarının miqdarı |
02 | Lo bayt registrlərinin miqdarı | 02 | Yazılı registr Lo baytlarının miqdarı |
04 | Növbəti baytların sayı | ||
00 | Hi AO0 baytının qiyməti | ||
0A | Lo AO0 baytının qiyməti | ||
01 | Hi AO1 baytının qiyməti | ||
02 | Lo AO1 baytının qiyməti |
AO0 çıxışının statusu 00 0A hex baytının qiymətləri kimi və ya onluq sistemi 10-da göstərilir.
AO1 çıxışının statusu 01 02 hex baytının qiymətləri kimi və ya onluq sistemi 258-də göstərilir.
Analoq çıxışı olan modullar: ioLogik E1241, ET-7028, ADAM-6224
Yuxarıda - Mündəricat bölməsində
Modbus TCP sorğu xətaları hansılardır
Əgər cihaza sorğu daxil olursa, lakin sorğunun emal edilməsi mümkün olmursa, o zaman cihaz xəta kodu ilə cavab verəcəkdir.
Cavab dəyişdirilmiş Funksiya kodunu özündə daşıyacaq, onun ən yüksək biti 1-ə bərabər olacaqdır.
Nümunə:
Olmuşdur | Baş vermişdir |
Sorğudakı funksiya xətası kodu | Cavabdakı funksiya xətası kodu |
01 (01 hex) 0000 0001 | 129 (81 hex) 1000 0001 |
02 (02 hex) 0000 0010 | 130 (82 hex) 1000 0010 |
03 (03 hex) 0000 0011 | 131 (83 hex) 1000 0011 |
04 (04 hex) 0000 0100 | 132 (84 hex) 1000 0100 |
05 (05 hex) 0000 0101 | 133 (85 hex) 1000 0101 |
06 (06 hex) 0000 0110 | 134 (86 hex) 1000 0110 |
15 (0F hex) 0000 1111 | 143 (8F hex) 1000 1111 |
16 (10 hex) 0001 0000 | 144 (90 hex) 1001 0000 |
Bayt | Sorğu | Bayt | Cavab |
(Hex) | Sahənin adı | (Hex) | Sahənin adı |
01 | Tranzaksiyanın identifikatoru | 01 | Tranzaksiyanın identifikatoru |
02 | 02 | ||
00 | Protokolun identifikatoru | 00 | Protokolun identifikatoru |
00 | 00 | ||
00 | Mesajın uzunluğu | 00 | Mesajın uzunluğu |
06 | 03 | ||
0A | Cihazın ünvanı | 0A | Cihazın ünvanı |
01 | Funksiya kodu | 81 | Dəyişdirilmiş bit ilə Funksiya kodu |
04 | Birinci Hi bayt registrin ünvanı | 02 | Xəta kodları |
A1 | Birinci Lo bayt registrin ünvanı | ||
00 | Hi bayt registrlərinin miqdarı | ||
01 | Lo bayt registrlərinin miqdarı |
01 | Qəbul edilmiş Funksiya kodunu emal etmək mümkün olmadı. |
02 | Sorğuda göstərilən məlumat ünvanı mövcud deyil. |
03 | Sorğu məlumatı sahəsində olan qiymət etibarsız qiymətdir |
04 | Tabe olan cihaz tələb olunan hərəkəti yerinə yetirməyə cəhd edərkən bərpa olunmayan xəta baş verdi. |
05 | Tabe olan cihaz sorğunu qəbul edib və onu emal edir, lakin bu, çox vaxt tələb edir. Bu cavab başda duran cihazın taym-aut xətası yaratmasının qarşısını alır. |
06 | Tabe olan cihaz komandaları emal etməklə məşğuldur. Başda duran cihaz daha sonra tabe olan cihaz azad olan zaman mesajı təkrar etməlidir. |
07 | Tabe olan cihaz sorğuda göstərilən proqram funksiyasını yerinə yetirə bilmir. Bu kod 13 və ya 14 nömrəli funksiyalardan istifadə edərək uğursuz proqram sorğusu üçün qaytarılır. Başda duran cihaz tabe olan cihazdan diaqnostika haqqında informasiyaları və ya xətalar haqqında informasiyaları tələb etməlidir. |
08 | Tabe olan cihazı genişləndirilmiş yaddaşı oxuyarkən paritet xətası ilə qarşılaşdı. Başda duran cihaz sorğunu təkrarlaya bilər, lakin belə hallarda adətən təmir tələb olunur. |
10 (0A hex) |
Şlüz səhv konfiqurasiya edilib və ya sorğularla həddən artıq yüklənib. |
11 (0B hex) |
Slave cihazı onlayn deyil və ya ondan heç bir cavab yoxdur. |
Yuxarıda - Mündəricat bölməsində
Modbus TCP protokolu ilə işləmək üçün proqramlar
Aşağıda Modbus TCP cihazları ilə asanlıqla qarşılıqlı əlaqə qurmağınıza kömək edəcək proqramlar verilmişdir.
RTU, ASCII, TCP dəstəyi ilə Modbus Master Tool. Yüklə
Modbus TCP dəstəyi ilə Modbus TCP client. Yüklə