Modbus ئالاقە كېلىشىمى ئۇچۇرلىرىنى تەھلىل قىلىشنىڭ تەپسىلىي قوللانمىسى
I. Modbus كېلىشىمىگە ئومۇمىي نەزەر
مودبۇس 1979-يىلى Modicon (ھازىرقى Schneider Electric) تەرىپىدىن پروگراممىلىنىدىغان لوگىكا كونتروللىغۇچلىرى (PLC) ئوتتۇرىسىدىكى ئالاقە ئۈچۈن ئىجاد قىلىنغان بىر يۈرۈشلۈك ئالاقە كېلىشىمى. قىرىق يىلدىن ئارتۇق تەرەققىيات جەريانىدا، ئۇ سانائەت ئاپتوماتلاشتۇرۇش ساھەسىدىكى ئەمەلىي ئۆلچەملىك ئالاقە كېلىشىملىرىنىڭ بىرىگە ئايلاندى.
ئاساسلىق ئالاھىدىلىكلىرى:
- خوجايىن/قۇل قۇرۇلمىسى: بىر قانچە قۇلدىن تەركىب تاپقان يەككە خوجايىن، بۇ يەردە خوجايىن تەلەپلەرنى قوزغىتىدۇ، قۇللار بولسا پاسسىپ جاۋاب بېرىدۇ.
- ئوچۇق كېلىشىم: ئىجازەتنامە ھەققى ئېلىنمايدۇ؛ ھەر قانداق ئىشلەپچىقارغۇچى ئۇنى ھەقسىز يولغا قويالايدۇ.
- كۆپ خىل يەتكۈزۈش ھالىتى: RTU (ئىككىلىك)، ASCII (تېكىست)، TCP (ئېتېرنېت).
- ھەر خىل فىزىكىلىق قاتلاملارنى قوللايدۇ: RS485 (ئەڭ كۆپ ئۇچرايدىغان)، RS232، TCP/IP (Ethernet).
- ئېنىق سانلىق مەلۇمات مودېلى: تۆت خىل ئوبيېكت تىپى - سىم، ئايرىم كىرگۈزۈش، كىرگۈزۈش رېگىستېرى ۋە ساقلاش رېگىستېرى.
1.1 ئۈچ خىل كېلىشىم نۇسخىسىنى سېلىشتۇرۇش

1.2 كېلىشىم ئۆلچىمىنىڭ چەكلىمىلىرى

II. Modbus سانلىق مەلۇمات مودېلى ۋە ئادرېس قائىدىلىرى
2.1 تۆت خىل مەشغۇلات ئوبيېكتى

2.2 ئادرېسنى كۆرسىتىش (مۇھىم!)
ھەر خىل ئىشلەپچىقارغۇچىلار ھەر خىل كودلاش لايىھەلىرىنى ئىشلىتىدۇ Modbus ئادرېسلىرى، بۇ ئەمەلىي قوللىنىشتا ئەڭ كۆپ ئۇچرايدىغان خاتالىق:

ئادرېس ئالدى بەلگىسىنىڭ مەنىسى (سانائەت ئۆلچىمىدىكى ۋەكىللىك):
- 0 دىن باشلىنىدۇ: پروتوكول ئادرېسى (ئالتەلىك سان)، مەسىلەن، 0x0000
- 4 xxxx: ساقلاش رېگىستىرلىرى؛ مەسىلەن، 40001 ساقلاش رېگىستىرى 0 نىڭ پروتوكول ئادرېسىنى كۆرسىتىدۇ.
- 3xxxx: كىرگۈزۈش رېگىستىرى؛ مەسىلەن، 30001 كىرگۈزۈش رېگىستىرى 0 نىڭ پروتوكول ئادرېسىنى كۆرسىتىدۇ. ·
- 0xxxx: چەمبەر؛ مەسىلەن، 00001 0-چەمبەرنىڭ پروتوكول ئادرېسىنى كۆرسىتىدۇ. ·
- 1xxxx: ئايرىم كىرگۈزۈش؛ مەسىلەن، 10001 ئايرىم كىرگۈزۈش 0 نىڭ پروتوكول ئادرېسىنى كۆرسىتىدۇ.
2.3 چوڭ سانلىق مەلۇمات بىر تەرەپ قىلىش قائىدىلىرى
1.1. ھەر بىر مەشغۇلات ئۈچۈن ئوقۇلىدىغان ئەڭ كۆپ رېگىستىر سانى: 125 (فۇنكسىيە كودى 0x03/0x04)
2.2. ھەر بىر مەشغۇلات ئۈچۈن ئەڭ كۆپ ئوقۇلىدىغان سىم/ئايرىم كىرىش سانى: 2000 (فۇنكسىيە كودى 0x01/0x02)
3.3. ھەر بىر مەشغۇلاتقا يېزىلغان ئەڭ كۆپ رېگىستىر سانى: 123 (فۇنكسىيە كودى 0x10)
4.4. ھەر بىر مەشغۇلات ئۈچۈن يېزىلغان ئەڭ كۆپ سىم سانى: 1968 (فۇنكسىيە كودى 0x0F)
5.5. بۇ چەكلىمىلەردىن ئېشىپ كېتىش ئۈچۈن بۆلەك ئاساسلىق ئوقۇش/يېزىش تەلەپ قىلىنىدۇ؛ ئاپتوبۇس توقۇنۇشلىرىنىڭ ئالدىنى ئېلىش ئۈچۈن باسقۇچلۇق ئاۋاز بېرىش ئارىلىقىغا كاپالەتلىك قىلىڭ.
III. Modbus RTU ئۇچۇرلىرىنىڭ تەپسىلىي تەھلىلى
RTU (يىراقتىن كونترول قىلىش ئۈسكۈنىسى) ئەڭ كەڭ قوللىنىلىۋاتقان ئۈسكۈنىدۇر. Modbus يەتكۈزۈش كېلىشىمى سانائەت قوللىنىشچان پروگراممىلىرىدا، يۇقىرى يەتكۈزۈش ئۈنۈمى ۋە RS485/RS232 يۈرۈشلۈك ئىنتېرفېيسلىرى بىلەن ماسلىشىشچانلىقى ئۈچۈن ئىككىلىك كودلاش ئۇسۇلى قوللىنىلىدۇ. رامكا چېگرالىرىنى پەرقلەندۈرۈش ئۈچۈن، رامكىلار ئارىسىدا كەم دېگەندە 3.5 ھەرپلىك جىمجىتلىق ۋاقتى بولۇشى كېرەك.
3.1 RTU نىڭ تولۇق رامكا قۇرۇلمىسى
RTU دىكى تولۇق بۇيرۇق سانلىق مەلۇمات رامكىسى تۆۋەندىكى تۆت قىسىمدىن تەركىب تاپىدۇ:

3.2 RTU ئۇچۇر مىسالى – ساقلاش رېگىستېرلىرىنى ئوقۇش (فۇنكسىيە كودى 0x03)
[ئۇچۇر تەلەپ قىلىش] باشلىق 1-قۇلنىڭ ساقلاش رېگىستېرلىرىنى ئوقۇيدۇ (باشلىنىش ئادرېسى 0x0001، 3 رېگىستېرنى ئوقۇيدۇ):
01 03 00 01 00 03 54 0B
تەلەپ ئۇچۇرىنىڭ بايت-بايت ئانالىزى:

[جاۋاب ئۇچۇرى] 1-قۇل پونكىتى ئۈچ رېگىستىردىن سانلىق مەلۇماتلارنى قايتۇرىدۇ: 01،03،06،02،2B،00،00،00،64، D5، 87
جاۋاب ئۇچۇرىنى بايت-بايت تەھلىل قىلىش:

3.3 ئۆلچەملىك فۇنكسىيە كودلىرىنىڭ تەپسىلىي چۈشەندۈرۈلۈشى

3.4 ھەر بىر فۇنكسىيە كودى ئۇچۇر فورماتىنىڭ تەپسىلىي چۈشەندۈرۈلۈشى
(1) سىمنى ئوقۇش / ئايرىم كىرگۈزۈشنى ئوقۇش (فۇنكسىيە كودى 0x01/0x02)
[تەلەپ رامكىسى فورماتى] (جەمئىي 8 بايت)

[جاۋاب رامكىسى فورماتى]

[ئورۇن ئانالىزىنىڭ مىسالى] جاۋاب سانلىق مەلۇماتلىرى 3 بايتتىن تەركىب تاپقان (20-38-نومۇرلۇق سىملار):

(2) ئوقۇش ساقلاش رېگىستىرى/ئوقۇش كىرگۈزۈش رېگىستىرى (فۇنكسىيە كودى 0x03/0x04)
[تەلەپ رامكىسى فورماتى] (جەمئىي 8 بايت)

[جاۋاب رامكىسى فورماتى]

(3) يەككە ساقلاش رېگىستىرىنى يېزىڭ (فۇنكسىيە كودى 0x06)
[تەلەپ رامكىسى فورماتى] (جەمئىي 8 بايت)

[جاۋاب رامكىسى] تەلەپ رامكىسى بىلەن ئوخشاش بولۇپ، مۇۋەپپەقىيەتلىك يېزىلغانلىقىنى جەزملەشتۈرىدۇ.
(4) كۆپ خىل ساقلاش رېگىستېرلىرىنى يېزىڭ (فۇنكسىيە كودى 0x10)
[رامكا فورماتىنى تەلەپ قىلىش]

[جاۋاب رامكىسى فورماتى] (جەمئىي 8 بايت): [ئادرېس][0x10][باشلاش ئادرېسى (2 بايت)][سان (2 بايت)][CRC (2 بايت)]
(5) بىر دانە چاقماق يېزىڭ (فۇنكسىيە كودى: 0x05)
[كادىر فورماتىنى تەلەپ قىلىش] (جەمئىي 8 بايت): يېزىش ئۈچۈن پەقەت ئىككىلا كۈچكە ئىگە قىممەت قوللىنىدۇ:
- 0xFF00 – سىم ئېچىق ھالەتكە قويۇلدى (تاقالدى)
- 0x0000 – سىم OFF (ئېچىق) ھالىتىگە قويۇلدى

[جاۋاب رامكىسى] تەلەپ رامكىسى بىلەن ئوخشاش بولۇپ، مۇۋەپپەقىيەتلىك يېزىلغانلىقىنى جەزملەشتۈرىدۇ.
IV. Modbus TCP ئۇچۇرلىرىنىڭ تەپسىلىي تەھلىلى
Modbus TCP Ethernet TCP/IP كېلىشىمى ئارقىلىق ئىشلەيدۇ، سۈكۈتتىكى 502-نومۇرلۇق پورتنى ئىشلىتىدۇ. RTU ھالىتىدىن پەرقلىق ھالدا، Modbus TCP ئۇچۇر چېگراسىنى بەلگىلەش ئۈچۈن MBAP (Modbus قوللىنىشچان كېلىشىمى) باشلىقىنى ئىشلىتىدۇ ۋە CRC دەلىللىشىنى تەلەپ قىلمايدۇ (ئۇنىڭ ئورنىغا TCP كېلىشىمىنىڭ ئىچكى خاتالىق تەكشۈرۈش مېخانىزمىغا تايىنىدۇ).
4.1 MBAP باشلىق قۇرۇلمىسى (7 بايت، بارلىق TCP پاكتلىرىغا كىرگۈزۈلگەن)

4.2 Modbus TCP ئۇچۇر مىسالى
[ئۇچۇر تەلەپ قىلىش] 1-قۇلنىڭ ساقلاش رېگىستىرىنى ئوقۇش (باشلىنىش ئادرېسى 0x0000، 3 قىممەتنى ئوقۇش):
00 01 00 00 00 06 01 03 00 00 00 03
تەلەپ ئۇچۇرىنىڭ ھەر بىر ساھە بويىچە تەھلىلى:

[جاۋاب ئۇچۇرى] قۇل ئۈچ رېگىستىردىن سانلىق مەلۇماتلارنى قايتۇرىدۇ:
00 01 00 00 00 09 01 03 06 02 2B 00 00 00 64
جاۋاب ئۇچۇرىنى ھەر بىر ساھە بويىچە تەھلىل قىلىش:

4.3 RTU بىلەن TCP پاكېت قۇرۇلمىسى ئوتتۇرىسىدىكى ئاساسلىق پەرقلەر

V. CRC-16 تەكشۈرۈشىنىڭ تەپسىلىي چۈشەندۈرۈلۈشى
CRC (Circlic Redundancy Check) ئالگورىزىمى Modbus RTU نىڭ رامكا تەكشۈرۈش مېخانىزمى بولۇپ، ئۇچۇر يەتكۈزۈش جەريانىدا خاتالىقلارنى بايقاش ئۈچۈن لايىھەلەنگەن. CRC-16 ھاسىل قىلىدىغان كۆپ ئەزا x¹⁶ + x¹⁵ + x² + 1 (0x8005 گە تەڭ)؛ ئەمەلىيەتتە، تەتۈر كۆپ ئەزا 0xA001 ئىشلىتىلىدۇ.
5.1 CRC-16 ھېسابلاش باسقۇچلىرى
6.1. 16 بىتلىق CRC رېگىستىرىنى 0xFFFF قىلىپ باشلاڭ.
7.2. CRC رېگىستىرىنىڭ تۇنجى بايتى بىلەن تۆۋەنكى 8 بىتى ئارىسىدا XOR مەشغۇلاتىنى ئىجرا قىلىڭ؛ نەتىجىنى CRC رېگىستىرىنىڭ تۆۋەنكى 8 بىتىغا قايتۇرۇڭ.
8.3. CRC رېگىستىرىنى ئوڭغا 1 بىت يۆتكەڭ، يۇقىرى بىتلارنى 0 بىلەن تولدۇرۇڭ؛ يۆتكىلىپ چىققان بىتنى (LSB) بېكىتىڭ:
9.4. ئەگەر يۆتكىلىپ چىققان بىت 0 بولسا: پەقەت 1 بىت بىلەن ئوڭغا يۆتكىلىشنى داۋاملاشتۇرۇڭ.
10.5. ئەگەر يۆتكىلىپ چىققان بىت 1 بولسا: CRC رېگىستىرى بىلەن 0xA001 ئارىسىدا XOR مەشغۇلاتىنى ئىجرا قىلىڭ.
11.6. نۆۋەتتىكى بايتنىڭ 8 بىتىنىڭ ھەممىسىنى بىر تەرەپ قىلىش تاماملانغۇچە 3-قەدەمنى تەكرارلاڭ.
12.7. كېيىنكى بايتنى ئېلىپ، بارلىق بايتلار بىر تەرەپ قىلىنغۇچە 2-6 قەدەملەرنى تەكرارلاڭ. 13.8. بارلىق بايت بىر تەرەپ قىلىشنى تاماملىغاندىن كېيىن، ئاخىرقى تەكشۈرۈش سوممىسىنى ئېلىش ئۈچۈن CRC رېگىستېرىنىڭ يۇقىرى ۋە تۆۋەن بايتلىرىنى ئالماشتۇرۇڭ.
14.9. ئاخىرقى تەكشۈرۈش سوممىسىنى ئۇچۇرنىڭ ئاخىرىغا قوشۇڭ، ئەڭ تۆۋەن بايت ئالدى بىلەن، ئەڭ يۇقىرى بايت ئاخىرىدا بولسۇن.
5.2 CRC-16 ھېسابلاش مىسالى (Python كودى)
تۆۋەندىكى Python فۇنكسىيەسى Modbus RTU نىڭ CRC-16 تەكشۈرۈش سوممىسىنى ھېسابلاشقا بىۋاسىتە ئىشلىتىلىدۇ:
def modbus_crc16(data: bytes) -> bytes:
"""Modbus RTU CRC-16 تەكشۈرۈش كودىنى ساناڭ (ئەڭ كىچىك بىت بىلەن دەسلەپكى ئىككى بايتنى قايتۇرۇڭ)"""
crc = 0xFFFF
سانلىق مەلۇماتتىكى بايت ئۈچۈن:
crc ^= بايت
(8) دائىرىسىدىكى _ ئۈچۈن:
ئەگەر crc & 0x0001 بولسا:
crc = (crc >> 1) ^ 0xA001
يەنە:
crc >>= 1
# ئالدى بىلەن تۆۋەن بايتنى، ئاندىن يۇقىرى بايتنى قايتۇرۇڭ
return bytes([crc & 0xFF, (crc >> 8) & 0xFF])
# تىپىك مىساللارنى كۆرسىتىڭ: 01 03 00 01 00 03 CRC نى ساناڭ
رامكا = بايت([0x01, 0x03, 0x00, 0x01, 0x00, 0x03])
crc = modbus_crc16(رامكا)
بېسىپ چىقىرىش(crc.hex()) # ئېكسپورت:540b(0x54 0x0B)
5.3 ئۇچۇردىكى CRC تەكشۈرۈشىنىڭ ئورنى
مىسال سۈپىتىدە 01 03 00 01 00 03 54 0B تەلەپ ئۇچۇرىنى ئىشلىتىش:

قوبۇللىغۇچ دەسلەپكى 6 بايتنىڭ CRC قىممىتىنى قايتا ھېسابلايدۇ ۋە ئۇنى پاكېتنىڭ ئاخىرقى 2 بايتى بىلەن سېلىشتۇرىدۇ. ئەگەر ئۇلار پەرقلىق بولسا، يەتكۈزۈش خاتالىقى بايقالىدۇ ۋە جاۋاب قايتۇرۇلمايدۇ.
Ⅵ.ئىختىساس بىر تەرەپ قىلىش ۋە خاتالىق كودى تەپسىلاتلىرى
قۇل پونكىتى ئاساسلىق پونكىتىدىن كەلگەن تەلەپنى ئىجرا قىلالمىغاندا (مەسىلەن، قوللىمايدىغان فۇنكسىيە كودلىرى ياكى ئادرېس دائىرىدىن چىقىپ كەتكەنلىك سەۋەبىدىن)، ئۇ بىر ئىستىسنا جاۋاب رامكىسىنى قايتۇرىدۇ. ئىستىسنا جاۋاب فۇنكسىيە كودى = ئەسلى فۇنكسىيە كودى + 0x80 (يەنى، ئەڭ يۇقىرى بىت 1 گە تەڭشەلگەن).
6.1 نورمالسىز جاۋاب فورماتى (RTU)
[قۇل ئادرېسى][فۇنكسىيە كودى | 0x80][نورمالسىز كود][CRC-16]

6.2 ئۆلچەملىك ئىستىسنا كودلىرىنىڭ مەنىسى

6.3 نورمالسىز ئىنكاس مىسالى
[سىنارىيە] ئاساسلىق ئىستانسا 1-قۇل ئىستانسىدىن خاتا ئادرېستىكى بىر رېگىستىرنى ئوقۇشنى تەلەپ قىلىدۇ، ۋە قۇل ئىستانسى بىر ئىستىسنا قايتۇرىدۇ:
تەلەپ: 01 03 00 20 00 01 XX XX (0x0020 ئادرېسىدىكى ئوقۇش تىزىملىكى)؛
ئىستىسنا جاۋابى: 01 83 02 C0 F1؛
ئىستىسنا جاۋابىنىڭ بايت بويىچە ئايرىلىشى:

VI. Modbus ASCII ئۇچۇرلىرىغا كىرىش
Modbus ASCII ھالىتى بارلىق سانلىق مەلۇمات بايتلىرىنى ئىككى ASCII خاراكتېرى سۈپىتىدە كودلايدۇ (مەسىلەن، 0x0F «0F» دەپ كودلىنىدۇ). ئوقۇشچانلىقى يۇقىرى بولسىمۇ، يەتكۈزۈش ئۈنۈمى تۆۋەن بولۇپ، ئاساسلىقى خاتالىقنى تۈزىتىش مەقسىتىدە ئىشلىتىلىدۇ.
7.1ASCII رامكا قۇرۇلمىسى
تولۇق ASCII رامكا فورماتى:

7.2LRC تەكشۈرۈش ئالگورىزىمى
ئۇزۇنلۇقتىكى ئارتۇقچە تەكشۈرۈش (LRC) نى ھېسابلاش قەدەملىرى:
15.1. ئادرېس مەيدانى، فۇنكسىيە كودى ۋە سانلىق مەلۇمات مەيدانىنىڭ بارلىق بايتلىرى (باشلىنىش ۋە ئاخىرلىشىش بەلگىلىرىدىن باشقا) بويىچە ئىككىلىك سان يىغىندىسىنى ئىجرا قىلىڭ.
16.2. ئېلىپ يۈرۈش بىتلىرىنى نەزەردىن ساقىت قىلىڭ (ئەگەر نەتىجە 255 تىن ئېشىپ كەتسە، ئاپتوماتىك ھالدا ئوراپ، پەقەت ئەڭ تۆۋەن 8 بىتنى ساقلاڭ).
17.3. يىغىندى نەتىجىسىنىڭ تولۇقلىمىسىنى 1 گە بۆلۈپ ھېسابلاڭ (يەنى، 0xFF − يىغىندىسى).
18.4. ئاخىرقى LRC تەكشۈرۈش كودىغا (1 بايت) ئېرىشىش ئۈچۈن تولۇقلاشنى 1 گە ئاشۇرۇڭ.
19.5. LRC تەكشۈرۈش كودىنى ئىككى ASCII بەلگىسى سۈپىتىدە كودلاڭ ۋە ئۇلارنى ئۇچۇرنىڭ ئاخىرىغا قوشۇڭ.
VIII. ئەمەلىي مەسلىھەتلەر ۋە ئورتاق مەسىلىلەر
8.1 بايت تەرتىپى (چوڭ-ئاخىر/مىكرو-ئاخىر) مەسىلىلىرى
بۇ Modbus ئۆلچىمى 16 بىتلىق ياكى ئۇنىڭدىن ئۇزۇن سانلىق مەلۇماتلارنى يوللاش ئۈچۈن چوڭ-ئېندىئان تەرتىپىنى (يۇقىرى دەرىجىلىك بايت ئالدى بىلەن) ئىشلىتىدۇ. بەزى ئۈسكۈنىلەر (مەسىلەن، بەزى ARM ئاساسلىق ئۈسكۈنىلەر) مىكرو-ئېندىئان تەرتىپىنى ئىشلىتىدۇ؛ سانلىق تەھلىل خاتالىقىدىن ساقلىنىش ئۈچۈن بايت تەرتىپىنى ئۆزگەرتىش تەلەپ قىلىنىدۇ.

8.2 تىزىملاش بىرلىكى چوڭلۇقى چەكلىمىسى (PDU ≤ 253 بايت)

8.3 ئالاقە ۋاقتىنىڭ ئۆتۈشى ۋە قايتا سىناپ كۆرۈش سەپلىمە تەۋسىيەلىرى
تەۋسىيە قىلىنغان سەپلىمىلەر:
- سوئال سوراش ئارىلىقى: قۇلنىڭ ئەڭ چوڭ جاۋاب قايتۇرۇش ۋاقتىنىڭ 2–3 ھەسسىسىگە تەڭشەلگەن (ئادەتتە 100–500 ms) • ۋاقىت چەكلىمىسى: تەۋسىيە قىلىنغان دائىرە 1000–3000 ms، قۇلنىڭ جاۋاب قايتۇرۇش سۈرئىتىگە ئاساسەن تەڭشىگىلى بولىدۇ
- قايتا سىناپ كۆرۈش: تەۋسىيە قىلىنغان چەك 3؛ مەغلۇپ بولسا ئاگاھلاندۇرۇش سىگنالىنى قوزغىتىڭ
- كۆپ قۇللۇق تەكشۈرۈش: ئاپتوبۇس توقۇنۇشىنىڭ ئالدىنى ئېلىش ئۈچۈن قۇللار ئارىسىدا باسقۇچلۇق تەكشۈرۈش ئارىلىقىنى پىلانلاڭ • بايت ۋاقتى: RTU ھالىتىدە، 1.5 ھەرپ ۋاقتىدىن ئېشىپ كەتكەن ھەرپ ئارىلىقى رامكا خاتالىقى دەپ قارىلىدۇ.
8.4 تەۋسىيە قىلىنىدىغان ھاشاراتلارنى تازىلاش قوراللىرى
قوشۇمچە: ئورتاق ئۇچۇرلارنىڭ تېز پايدىلىنىش جەدۋىلى
سىمنى ئوقۇش (فۇنكسىيە كودى 0x01)
[تەلەپ]: 0-باشلىنىش ئادرېسىدىكى (1-چىرىشما) 1-قۇل پونكىتىدىن ئوقۇڭ، 8 چىرىش ھالىتى ئۇچۇرىنى ئېلىڭ: 01 01 00 00 00 08 3D CC
[جاۋاب]: سەككىز خىل چىراغ ھالىتى: 0x55 (01010101B);
ئۇچۇر: 01 01 01 55 94 36
بىرلا چاقماققا يېزىڭ (فۇنكسىيە كودى 0x05)
[تەلەپ] 0 ئادرېسىدىكى سىمنى ON (0xFF00 قىممىتىنى يېزىش) غا تەڭشەڭ:
ئۇچۇر: 01 05 00 00 FF 00 8C 3A
[تەلەپ] 0 ئادرېسىدىكى سىمنى OFF قىلىپ تەڭشەڭ (قىممىتى 0x0000 نى يېزىڭ):
ئۇچۇر: 01 05 00 00 00 00 CD CA.
[جاۋاب] تەلەپ رامكىسى بىلەن ئوخشاش
بىرلا رېگىستىرغا يېزىڭ (فۇنكسىيە كودى 0x06):
[تەلەپ] 0 ئادرېسىغا تىزىملىتىش ئۈچۈن 0x1234 قىممىتىنى يېزىڭ.
ئۇچۇر: 01 06 00 00 12 34 XX XX (XX CRC بولۇپ ھېسابلىنىدۇ).
[جاۋاب] تەلەپ رامكىسى بىلەن ئوخشاش.
كۆپ رېگىستىرغا يېزىش (فۇنكسىيە كودى 0x10)
[تەلەپ]: 0 نومۇرلۇق ئادرېستىن باشلاپ، ئايرىم-ئايرىم ھالدا 0x1234 ۋە 0xABCD قىممەتلىرى بىلەن ئىككى رېگىستىرغا يېزىڭ.
ئۇچۇر: 01 10 00 00 00 02 04 12 34 AB CD XX XX
[جاۋاب]: باشلىنىش ئادرېسى ۋە يېزىلغان رېگىستىرلارنىڭ سانىنى قايتۇرىدۇ.
ئۇچۇر: 01 10 00 00 00 02 41 C8
كىرگۈزۈش رېگىستىرلىرىنى ئوقۇش (فۇنكسىيە كودى 0x04)
[تەلەپ]: باشلىنىش ئادرېسى 0 دىكى 1-قۇلدىن ئوقۇش، ئىككى كىرگۈزۈش رېگىستىرىنى ئوقۇش
ئۇچۇرلار: 01 04 00 00 00 02 71 CB
[جاۋاب]: ئىككى كىرگۈزۈش رېگىستىرى قىممىتىنى قايتۇرىدۇ
ئۇچۇرلار: 01 04 04 00 64 01 90 XX XX (قايتۇرۇش قىممىتى: 100 ۋە 400)










