โปรโตคอลการสื่อสาร Modbus RTU

Apr 27, 2026 ฝากข้อความ

โปรโตคอล Modbus RTU เปรียบเสมือน "ภาษาทั่วไป" ระหว่างอุปกรณ์อุตสาหกรรม ช่วยให้ "การสื่อสาร" ระหว่างอุปกรณ์ต่างๆ เช่น มิเตอร์ไฟฟ้าและเซ็นเซอร์จากแบรนด์ต่างๆ เป็นไปอย่างราบรื่น

การสาธิตแอปพลิเคชันโปรโตคอลการสื่อสาร Modbus

บทความนี้จะแนะนำคุณเกี่ยวกับการประยุกต์ใช้ Modbus RTU ในเครื่องวัดพลังงานด้วยวิธีที่ง่ายและเข้าใจได้มากที่สุด แม้ว่าคุณจะเป็นมือใหม่และไม่มีพื้นฐานทางเทคนิค แต่คุณก็สามารถเข้าใจประเด็นหลักของโปรโตคอลการสื่อสารทางอุตสาหกรรมที่สำคัญนี้ได้อย่างง่ายดาย

The Modbus RTU protocol

โปรโตคอล Modbus RTU คืออะไร

Modbus RTU เป็นโปรโตคอลการสื่อสารแบบอนุกรมที่พัฒนาโดย Modicon (ปัจจุบันเป็นส่วนหนึ่งของ Schneider Electric) ในปี 1979 สำหรับ PLC (ตัวควบคุมลอจิกแบบโปรแกรมได้)

ปัจจุบันได้กลายเป็นหนึ่งในโปรโตคอลที่ใช้กันอย่างแพร่หลายในระบบอัตโนมัติทางอุตสาหกรรม โดยได้รับการสนับสนุนจากผู้ผลิตมากกว่า 400 รายทั่วโลก

ทำไมถึงเรียกว่า “ร.ต.ท.”? RTU เป็นตัวย่อของ "Remote Terminal Unit" ซึ่งบ่งชี้ว่าโปรโตคอลนี้ใช้สำหรับการสื่อสารระหว่างอุปกรณ์ระยะไกลเป็นหลัก มันเหมือนกับ "ระบบส่งข้อความ" ระหว่างอุปกรณ์ไฟฟ้า การแลกเปลี่ยนข้อมูลผ่านการร้องขอและกลไกการตอบสนองแบบง่ายๆ

Modbus RTU ทำงานอย่างไร

Modbus RTU ใช้สถาปัตยกรรมการสื่อสารแบบมาสเตอร์-แบบทาส เช่น ครูและนักเรียนในห้องเรียน

  • ปริญญาโท: "ครู" โดยทั่วไปคือคอมพิวเตอร์ PLC หรือผู้รวมศูนย์ มีหน้าที่รับผิดชอบในการเริ่มคำถามและคำสั่ง
  • ทาส: "นักเรียน" เช่น มิเตอร์ไฟฟ้าหรือเซ็นเซอร์ สามารถตอบคำถามของครูได้เท่านั้น และไม่สามารถพูดได้อย่างอิสระ (ในการใช้งานมิเตอร์ไฟฟ้า...)

Modbus RTU

รูปแบบข้อความ Modbus RTU

"เทมเพลต SMS" ระหว่างอุปกรณ์

ข้อความการสื่อสาร Modbus RTU เปรียบเสมือนข้อความที่ประดิษฐ์ขึ้นอย่างพิถีพิถัน โดยมีข้อกำหนดรูปแบบคงที่

ข้อความ Modbus RTU ที่สมบูรณ์ประกอบด้วยส่วนต่างๆ ดังต่อไปนี้:

รหัสที่อยู่ รหัสฟังก์ชั่น เขตข้อมูล ตรวจสอบรหัส
8 บิต 8 บิต N × 8 บิต 16 บิต
  • รหัสที่อยู่ (1 ไบต์): เทียบเท่ากับ "หมายเลขโทรศัพท์ของผู้รับ" ซึ่งระบุที่อยู่ของมิเตอร์วัดพลังงานเป้าหมาย (1-247) โดยมี 0 สำหรับที่อยู่การออกอากาศ
  • รหัสฟังก์ชั่น (1 ไบต์): เทียบเท่ากับ "ประเภทข้อความ" ที่สั่งให้มิเตอร์วัดพลังงานดำเนินการ (เช่น อ่านข้อมูล เขียนข้อมูล ฯลฯ)
  • ฟิลด์ข้อมูล (N ไบต์): ข้อมูลเฉพาะที่จะส่ง เช่น ที่อยู่การลงทะเบียน ค่าข้อมูล ฯลฯ
  • ผลรวมตรวจสอบ CRC (2 ไบต์): เทียบเท่ากับ "รหัสป้องกัน-รหัสต่อต้านการปลอมแปลง" ซึ่งใช้ในการตรวจสอบข้อผิดพลาดระหว่างการส่ง

ข้อความทั่วไปสำหรับการอ่านข้อมูลพลังงานแอคทีฟเชิงบวกทั้งหมดจากเครื่องวัดพลังงาน UBS มีดังนี้:

[ที่อยู่ 00][รหัสฟังก์ชัน 03][ที่อยู่เริ่มต้น 00 0C][ความยาวการอ่าน 00 02][ผลรวมตรวจสอบ CRC 05 D9]

ซึ่งเทียบเท่ากับการพูดว่า: "ทุกเมตร โปรดอ่านข้อมูลจากรีจิสเตอร์ 000C โดยเริ่มจากรีจิสเตอร์ 1"

หลังจากได้รับข้อความ มิเตอร์ #1 จะตอบกลับว่า:

[ที่อยู่ 01] [รหัสฟังก์ชัน 03] [ความยาวข้อมูล 04] [ข้อมูล 00 00 00 00] [ผลรวมตรวจสอบ CRC FA 33]
ซึ่งหมายความว่า: "มิเตอร์ #1 ตอบกลับ: ค่าข้อมูลพลังงานแอคทีฟเชิงบวกทั้งหมดที่อ่านได้คือ 00 00 00 00 (เลขฐานสิบหก)" (หมายเหตุ: มิเตอร์ #1 นี้เป็นมิเตอร์ใหม่ที่ไม่ได้ใช้) ภาพด้านล่างเป็นการสาธิตการทดสอบ:

Modbus RTU Message Format

"สมุดข้อมูล" ในมิเตอร์ไฟฟ้า: อธิบายการลงทะเบียน

ในโปรโตคอล Modbus RTU ข้อมูลทั้งหมดจากมิเตอร์ไฟฟ้าจะถูกจัดเก็บไว้ใน "สเปรดชีต"-เครื่องบันทึก ทะเบียนแบ่งออกเป็นสี่ประเภทหลัก:

ประเภทการลงทะเบียน สิทธิ์ในการอ่าน/เขียน รหัสฟังก์ชั่น เนื้อหาที่จัดเก็บโดยทั่วไป
คอยล์ลงทะเบียน อ่าน/เขียน 01, 05 สถานะรีเลย์, การควบคุมสวิตช์
การลงทะเบียนอินพุตแบบไม่ต่อเนื่อง อ่าน-เท่านั้น 02 อินพุตดิจิตอล (เช่น สัญญาณเตือน)
ป้อนข้อมูลลงทะเบียน อ่าน-เท่านั้น 04 ข้อมูลการวัดแบบเรียลไทม์- (แรงดัน กระแส ฯลฯ)
ถือทะเบียน อ่าน/เขียน 03, 06 พารามิเตอร์ของอุปกรณ์ พลังงานสะสม ฯลฯ

ในการใช้งานมิเตอร์ไฟฟ้า การลงทะเบียนที่พบบ่อยที่สุดคือ:

ป้อนข้อมูลลงทะเบียน

(รหัสฟังก์ชัน 04H): เก็บข้อมูลที่วัดได้แบบเรียลไทม์- เช่น แรงดันไฟฟ้า กระแสไฟฟ้า และกำลัง

ถือทะเบียน

(รหัสฟังก์ชัน 03H): เก็บปริมาณการใช้ไฟฟ้าสะสม พารามิเตอร์ของอุปกรณ์ ฯลฯ

ตารางข้อมูลที่อยู่การลงทะเบียน Modbus ของเครื่องวัดพลังงาน UBS

ที่อยู่การออกอากาศโปรโตคอล Modbus คือ 0x00 สำหรับข้อมูลที่อยู่ลงทะเบียนโปรโตคอล Modbus โดยละเอียดสำหรับมิเตอร์วัดพลังงาน UBS โปรดดูตารางด้านล่าง:

ลงทะเบียน (ฐานสิบหก) ชื่อตัวแปร คุณลักษณะ (หน่วย / R/W) ประเภทข้อมูล นับ หมายเหตุ
0x0000 แรงดันไฟฟ้ากระแสตรง หน่วย: V, R/W: RO S16 1 ช่วง: -9999~9999; การอ่านค่า=ค่าประสิทธิผล × 10^(จุดทศนิยม)
0x0001 จุดทศนิยมแรงดันไฟฟ้า หน่วย: ไม่มี, R/W: RO U16 1 ค่าคงที่: 0
0x0002 ค่าปัจจุบันกระแสตรง หน่วย: A, R/W: RO S16 1 ช่วง: -9999~9999
0x0003 จุดทศนิยมปัจจุบัน หน่วย: ไม่มี, R/W: RO U16 1 ค่าคงที่: 1
0x0008 ค่าพลังงาน หน่วย: kW, R/W: RO S16 1 ช่วง: -9999~9999
0x0009 จุดทศนิยมของกำลัง หน่วย: ไม่มี, R/W: RO U16 1 ค่าคงที่: 1
0x000C พลังงานที่ใช้งานไปข้างหน้าทั้งหมด หน่วย: 0.001kWh, R/W: RO U32 2 ไบต์สูงก่อน ไบต์ต่ำอยู่สุดท้าย ตัวอย่าง: ถ้าข้อมูลอ่าน=5000 จุดทศนิยม=2 → ค่าจริง=5000 × 10^(2-3)=500.0
0x203C ช่องที่ 1 แรงดันไฟฟ้า หน่วย: 0.0001V, R/W: RO I32 2 ไบต์สูงก่อน ไบต์ต่ำอยู่หลัง
0x203E ช่อง 2 แรงดันไฟฟ้า หน่วย: 0.0001V, R/W: RO I32 2 0 เสมอ
0x2040 ช่อง 1 ปัจจุบัน หน่วย: 0.0001A, R/W: RO I32 2 ไบต์สูงก่อน ไบต์ต่ำอยู่หลัง
0x2042 ช่อง 2 ปัจจุบัน หน่วย: 0.0001A, R/W: RO I32 2 0 เสมอ
0x2044 ช่อง 1 พาวเวอร์ หน่วย: 0.0001kW, R/W: RO I32 2 ไบต์สูงก่อน ไบต์ต่ำอยู่หลัง
0x2046 ช่อง 2 เพาเวอร์ หน่วย: 0.0001kW, R/W: RO I32 2 0 เสมอ
0x9A00 ส่งต่อพลังงานรวมที่ใช้งานอยู่ หน่วย: kWh, R/W: RO ลอย 2
0xA001/0x8900 ที่อยู่อุปกรณ์ หน่วย: ไม่มี, R/W: RW U16 1 ช่วง: 0 ~ 247

การสาธิตการอ่านข้อความเครื่องวัดพลังงาน UBS

การใช้ซอฟต์แวร์คอมพิวเตอร์โฮสต์เครื่องวัดพลังงาน UBS อ่านข้อมูลต่อไปนี้จากเครื่องวัดพลังงานอัจฉริยะ DJZ1226 DC: พลังงานที่ใช้งานเชิงบวกทั้งหมด แรงดันไฟฟ้า กระแสไฟฟ้า กำลัง และที่อยู่มิเตอร์

Demonstration Of Reading UBS Energy Meter Messages

ดังที่แสดงในแผนภาพด้านบน เนื้อหาข้อความโดยละเอียดที่ส่งและรับโดยคอมพิวเตอร์แม่ข่ายมีดังนี้:

13:25:30.229 พลังงานแอคทีฟเชิงบวกทั้งหมด(000C0002) ...

13:25:30.256 ▼ส่ง:00 03 00 0C 00 02 05 D9

13:25:30.344 ▲รับ:01 03 04 00 00 00 00 เอฟเอ 33

13:25:30.359 แรงดันไฟฟ้ากระแสตรง (00000002) ...

13:25:30.424 ▼ส่ง:00 03 00 00 00 02 C5 DA

13:25:30.428 ▲รับ:01 03 04 00 17 00 03 0A 36

13:25:30.494 กระแสไฟตรง(00020002) ...

13:25:30.522 ▼ส่ง:00 03 00 02 00 02 64 1ก

13:25:30.610 ▲รับ:01 03 04 00 30 00 02 7B FD

13:25:30.621 พาวเวอร์(00080002) ...

13:25:30.682 ▼ส่ง:00 03 00 08 00 02 44 18

13:25:30.690 ▲รับ:01 03 04 00 01 00 02 2A 32

13:25:30.702 ที่อยู่การสื่อสาร 2(A0010001) ...

13:25:30.779 ▼ส่ง:00 03 A0 01 00 01 F6 1B

13:25:30.783 ▲รับ:01 03 02 00 01 79 84

13:25:30.795 สิ้นสุดการอ่านข้อมูล

ปัญหาทั่วไปและเทคนิคการแก้ไขปัญหา

แม้ว่าโปรโตคอล Modbus RTU จะค่อนข้างง่าย แต่ปัญหาต่างๆ อาจยังคงเกิดขึ้นในการใช้งานจริง ต่อไปนี้เป็นข้อผิดพลาดทั่วไปและวิธีแก้ปัญหาในการสื่อสารของมิเตอร์ไฟฟ้า:

ไม่มีการตอบสนองการสื่อสาร

● ตรวจสอบการเชื่อมต่อทางกายภาพ:

▪ การเดินสาย RS-485 ถูกต้องหรือไม่ (กลับเส้น A/B)?

▪ ตัวต้านทานปลายสายตรงกันหรือไม่ (โดยทั่วไป เชื่อมต่อตัวต้านทาน 120Ω ที่ปลายแต่ละด้านของบัส) หรือไม่

▪ ระยะการสื่อสารเกินขีดจำกัดหรือไม่ (ตามทฤษฎี RS-485 สามารถเข้าถึง 1200 เมตร แต่ระยะทางจริงจะได้รับผลกระทบจากปัจจัยด้านสิ่งแวดล้อม)

● ตรวจสอบการตั้งค่าพารามิเตอร์:

▪ อัตราบอด บิตข้อมูล บิตหยุด และการตั้งค่าพาริตีสอดคล้องกับมิเตอร์ไฟฟ้าหรือไม่

▪ ที่อยู่อุปกรณ์ตั้งค่าไว้อย่างถูกต้อง (ไม่มีที่อยู่ซ้ำกัน) หรือไม่

การสื่อสารเป็นระยะ

● ตรวจสอบการรบกวนของสาย:

▪ ใช้สายเคเบิลหุ้มฉนวนคู่บิด- และตรวจสอบให้แน่ใจว่าชีลด์ต่อสายดินที่ปลายด้านหนึ่ง

▪ หลีกเลี่ยงการเดินสายขนานกับสายไฟฟ้าแรงสูง-

● การทดสอบอุปกรณ์แต่ละเครื่อง:

▪ เชื่อมต่อมิเตอร์ไฟฟ้าแต่ละเครื่องแยกกันเพื่อแก้ไขปัญหาอุปกรณ์ที่ผิดพลาด

▪ ใช้ซอฟต์แวร์คอมพิวเตอร์แม่ข่ายเฉพาะของ UBS Electronics (เช่น AMS) เพื่อสื่อสารโดยตรงกับมิเตอร์ไฟฟ้าและระบุปัญหา

ข้อผิดพลาดของข้อมูล

● การตรวจสอบการตรวจสอบ CRC:

▪ ตรวจสอบว่ารหัส CRC ที่ส่งและรับสอดคล้องกันหรือไม่

▪ ยืนยันลำดับไบต์ข้อมูล (ปกติ Modbus RTU จะเป็น endian เพียงเล็กน้อย)

● การตรวจสอบการแมปรีจิสเตอร์:

▪ ตรวจสอบที่อยู่ทะเบียนที่ใช้ให้สอดคล้องกับคู่มือมิเตอร์ไฟฟ้า

▪ หมายเหตุการชดเชยที่อยู่การลงทะเบียน

หากคุณจำเป็นต้องใช้ซอฟต์แวร์คอมพิวเตอร์โฮสต์ UBS (โปรโตคอล Modbus RTU) ที่กล่าวถึงในบทความนี้ โปรดติดต่อบุคคลที่รับผิดชอบในการสั่งซื้อมิเตอร์ไฟฟ้า UBS ของคุณและขอรับการสนับสนุนทางเทคนิคเพิ่มเติมหลังการขาย-

ส่งคำถาม