author
Bobby Brown
โพสต์ 2567-12-02
โปรโตคอลการสื่อสาร Modbus คืออะไร?

สารบัญ


1. โปรโตคอลการสื่อสารคืออะไร?

โปรโตคอลการสื่อสาร หรือที่เรียกสั้นๆ ว่า โปรโตคอล คือชุดของกฎที่กำหนดวิธีการแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ต่างๆ ในสาขาอุตสาหกรรมอัตโนมัติ โดยพื้นฐานแล้ว โปรโตคอลทำหน้าที่เป็น "ภาษา" ที่ใช้สำหรับการสื่อสารระหว่างอุปกรณ์อิเล็กทรอนิกส์

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

แนวคิดนี้มีความสำคัญอย่างยิ่งในระบบอัตโนมัติ ซึ่งระบบที่หลากหลาย เช่น ตัวควบคุมลอจิกที่ตั้งโปรแกรมได้ (PLCs) เซ็นเซอร์ และส่วนต่อประสานระหว่างมนุษย์กับเครื่องจักร (HMIs) ต้องทำงานร่วมกันอย่างราบรื่น โปรโตคอลช่วยให้อุปกรณ์เหล่านี้ "พูดภาษาเดียวกัน" ทำให้สามารถรวมระบบและดำเนินการได้อย่างไร้รอยต่อ

2. โปรโตคอลการสื่อสาร Modbus คืออะไร?

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

เช่นเดียวกับการสื่อสารของมนุษย์ที่ต้องการทั้งภาษาและสื่อกลาง อุปกรณ์ต่างๆ ก็ต้องการโปรโตคอลการสื่อสารเพื่อกำหนดกฎเกณฑ์ในการแลกเปลี่ยนข้อมูล และมาตรฐานการสื่อสาร (เช่น RS-232, RS-485, Ethernet) เพื่อส่งสัญญาณ

Modbus สามารถทำงานได้บนเลเยอร์ทางกายภาพที่หลากหลาย ทำให้สามารถปรับใช้ในสถานการณ์ต่างๆ ได้อย่างมีประสิทธิภาพสำหรับการแลกเปลี่ยนข้อมูล
[1]

3. ประเภทของโปรโตคอลการสื่อสาร Modbus

Modbus RTU vs Modbus TCP

โปรโตคอลการสื่อสาร Modbus แบ่งออกเป็นสองประเภทหลักตามมาตรฐานการสื่อสารที่ใช้: การสื่อสารแบบอนุกรมและการสื่อสารผ่านอีเธอร์เน็ต

1. การสื่อสารแบบอนุกรม

ในการสื่อสารแบบอนุกรม ข้อมูลจะถูกส่งทีละบิต และมีสองโปรโตคอลหลักคือ Modbus RTU และ Modbus ASCII

  • Modbus RTU:
    • ใช้การเข้ารหัสแบบไบนารีในการส่งข้อมูล
    • มักใช้ร่วมกับอินเทอร์เฟซแบบ RS-232, RS-485, หรือ RS-422
    • เหมาะสำหรับระยะทางสั้นและการเชื่อมต่อหลายอุปกรณ์
    • นิยมใช้ในอุตสาหกรรมเนื่องจากมีโครงสร้างข้อมูลที่กระชับและมีประสิทธิภาพ
  • Modbus ASCII:
    • ใช้รหัสมาตรฐาน ASCII ในการเข้ารหัสข้อมูล
    • สามารถใช้ร่วมกับ RS-232, RS-485, หรือ RS-422 ได้เช่นกัน
    • การเข้ารหัสแบบ ASCII ง่ายต่อการตรวจสอบด้วยตนเอง แต่ใช้พื้นที่เก็บข้อมูลมากกว่า

2. การสื่อสารผ่านอีเธอร์เน็ต

  • Modbus TCP:
    • ทำงานผ่านอีเธอร์เน็ต โดยใช้โปรโตคอล TCP/IP
    • ใช้สายเคเบิลเครือข่ายหรือการเชื่อมต่อแบบไร้สายสำหรับการส่งข้อมูล
    • นิยมใช้ในระบบอัตโนมัติที่เชื่อมต่อเครือข่ายหรือการตรวจสอบระยะไกล

ความแตกต่างสำคัญระหว่าง Modbus RTU และ Modbus ASCII

แม้ว่า Modbus RTU และ Modbus ASCII จะมีความแตกต่างกันในรูปแบบการเข้ารหัส ข้อเท็จจริงที่สำคัญคือความเร็วในการส่งข้อมูลขึ้นอยู่กับอัตราบอด (baud rate) ของอินเทอร์เฟซแบบอนุกรม (เช่น RS-232, RS-485)

  • Modbus RTU: ใช้รูปแบบไบนารี โครงสร้างข้อมูลกระชับ เหมาะสำหรับสภาพแวดล้อมที่มีแบนด์วิธจำกัด
  • Modbus ASCII: ใช้รูปแบบ ASCII แต่ละไบต์แสดงด้วยตัวอักษร ASCII สองตัว ทำให้ขนาดข้อมูลใหญ่ขึ้นและการส่งข้อมูลช้าลง
[2][3]

4. ทำไม PLC หลายตัวถึงใช้โปรโตคอล Modbus?

ผู้ผลิตจำนวนมากเลือกใช้ โปรโตคอลการสื่อสาร Modbus สำหรับ PLC (Programmable Logic Controllers) เนื่องจากมีความ เรียบง่าย และ คุ้มค่า โครงสร้างที่ไม่ซับซ้อนของโปรโตคอลนี้ และการใช้งานที่ปราศจากค่าลิขสิทธิ์ทำให้เป็นตัวเลือกที่น่าสนใจ

ข้อได้เปรียบสำคัญของ Modbus สำหรับ PLC:

  1. โครงสร้างที่เรียบง่ายและไม่มีค่าลิขสิทธิ์:

    Modbus ใช้งานง่าย ช่วยลดความซับซ้อนและค่าใช้จ่ายในการพัฒนา

  2. รองรับอินเทอร์เฟซที่หลากหลาย:
    • รองรับการใช้งานร่วมกับอินเทอร์เฟซ RS-232, RS-485 และ TCP/IP
    • สามารถปรับให้เข้ากับสื่อการส่งข้อมูลต่าง ๆ เช่น สายคู่บิดเกลียว, ไฟเบอร์ออปติก และเครือข่ายไร้สาย
  3. ความยืดหยุ่นในการใช้งานกับโปรโตคอลประเภทต่าง ๆ:

    ตามที่กล่าวไว้ในส่วนที่สาม โปรโตคอล Modbus สามารถปรับแต่งให้เหมาะสมกับเครือข่ายเฉพาะ:

    • เครือข่าย Fieldbus: โปรโตคอล เช่น Modbus RTU, Profibus, CC-Link และ CAN มักใช้ RS-485 ในการสื่อสาร รองรับสถาปัตยกรรมแบบ Master-Slave หรือการเชื่อมต่อระหว่างคอนโทรลเลอร์, อุปกรณ์ และโหนด
    • เครือข่าย Ethernet: โปรโตคอล เช่น Modbus TCP, PROFINET, EtherCAT และ EtherNet/IP ช่วยให้การสื่อสารระหว่าง Client กับ Server หรือ Controller กับอุปกรณ์มีประสิทธิภาพ
  4. ความเข้ากันได้สูงกับเครือข่ายอุตสาหกรรม:

    Modbus มีความเข้ากันได้ดีเยี่ยมกับทั้งเครือข่าย Ethernet และ RS-485 รองรับความต้องการของระบบอัตโนมัติในอุตสาหกรรม

ด้วยความเรียบง่าย ความหลากหลาย และความเข้ากันได้ดีเยี่ยมกับมาตรฐานการสื่อสารในอุตสาหกรรม Modbus ได้กลายเป็นโปรโตคอลการสื่อสารที่ผู้ผลิต PLC จำนวนมากเลือกใช้ ให้โซลูชันที่เชื่อถือได้และมีประสิทธิภาพสำหรับทั้งการใช้งานแบบ Fieldbus และแบบ Ethernet

ประเภทโปรโตคอล ชื่อโปรโตคอล เครือข่าย บทบาท
Industrial Ethernet Modbus-TCP Ethernet Client และ Server
PROFINET Ethernet Controller และ Device
EtherCAT Ethernet Master และ Slave
EtherNet/IP Ethernet Controller และ Device
Fieldbus Modbus-RTU RS485 Master และ Slave
Profibus RS485 Master และ Slave
CC-Link RS485 Master และ Slave
CAN RS485 Controller และ Node

*โปรโตคอลที่พบบ่อยและบทบาทการทำงาน

[4]

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

โปรโตคอล Modbus RTU ใช้สถาปัตยกรรมแบบ Master-Slave โดยที่ Master จะควบคุมและเริ่มการสื่อสารทั้งหมด ขณะที่ Slave จะรับและตอบสนองต่อคำสั่ง

คำขอจาก Master จะรวมถึงที่อยู่ของ Slave เฉพาะตัว เพื่อระบุอุปกรณ์เป้าหมาย แม้ว่า Slave ทั้งหมดจะได้รับคำขอ แต่เฉพาะอุปกรณ์ที่มีที่อยู่ตรงกับคำขอเท่านั้นที่จะตอบกลับ

  • ตัวอย่างเช่น ในกรณีที่มีอุปกรณ์ Slave สามตัวที่มีที่อยู่ 1, 2 และ 3:
  • หาก Master ส่งคำขอไปยังอุปกรณ์ Slave ที่มีที่อยู่ 2 เฉพาะ Slave ที่มีที่อยู่ 2 เท่านั้นที่จะตอบสนอง ขณะที่อุปกรณ์อื่น ๆ จะเงียบ
  • หาก Master ใช้โหมด Broadcast (โดยตั้งค่าที่อยู่ของ Slave ในคำขอเป็น 0) อุปกรณ์ Slave ทั้งหมด (1, 2 และ 3) จะปฏิบัติตามคำสั่ง แต่จะไม่มีอุปกรณ์ใดตอบสนองกลับไปยัง Master

สถาปัตยกรรมนี้ช่วยให้การสื่อสารมีประสิทธิภาพและการควบคุมแม่นยำในระบบที่มีอุปกรณ์ Slave หลายตัวเชื่อมต่อกับ Master เพียงตัวเดียว

สถาปัตยกรรม Master-Slave ของ Modbus RTU

5-1. แพ็กเกจการสื่อสาร Modbus

ในการสื่อสาร Modbus RTU โครงสร้างแพ็กเก็ตประกอบด้วยส่วนประกอบดังนี้:

  • Address: ระบุอุปกรณ์ Slave ที่จะรับคำสั่ง
  • Function Code: กำหนดการทำงานที่ Slave ควรดำเนินการ เช่น การอ่านหรือเขียนข้อมูลในรีจิสเตอร์
  • Data: ประกอบด้วยข้อมูลที่เกี่ยวข้องกับคำขอ เช่น ที่อยู่และจำนวนรีจิสเตอร์ที่ต้องการอ่านหรือเขียน
  • Error Check Code (CRC Check): ใช้เพื่อตรวจสอบความสมบูรณ์ของข้อมูลระหว่างการส่ง (ใน Modbus TCP โครงสร้างแพ็กเก็ตจะคล้ายกัน แต่ไม่มี CRC โดยอาศัยการตรวจสอบข้อมูลในระดับ TCP/IP แทน)

*เลื่อนไปที่บทที่ 6 เพื่อดูตัวอย่าง

[5]

5-2. ประเภทรีจิสเตอร์ข้อมูลของโปรโตคอล Modbus

(เนื้อหาต่อไปนี้รวบรวมจาก Modbus Tools - บทนำสู่ Modbus RTU สำหรับข้อมูลเพิ่มเติมเกี่ยวกับประเภทรีจิสเตอร์และคำอธิบายฟังก์ชันโค้ด โปรดดูที่แหล่งข้อมูลต้นฉบับ)

โปรโตคอล Modbus แบ่งพื้นที่จัดเก็บข้อมูลออกเป็น 4 ประเภทหลัก ซึ่งจัดการผ่านฟังก์ชันโค้ดสำหรับประเภทข้อมูลต่าง ๆ:

  • Discrete Inputs: ข้อมูลไบนารีแบบอ่านอย่างเดียว (Read-only) ใช้ฟังก์ชันโค้ด 0x02 สำหรับการอ่านสถานะของอุปกรณ์
  • Coils: ข้อมูลไบนารีแบบอ่าน-เขียน (Read-write) ใช้ฟังก์ชันโค้ด 0x01 มักใช้สำหรับควบคุมสวิตช์ของอุปกรณ์
  • Input Registers: ข้อมูลอนาล็อกแบบอ่านอย่างเดียว (Read-only) ใช้ฟังก์ชันโค้ด 0x04 สำหรับการตรวจสอบเซ็นเซอร์หรืออุปกรณ์นำเข้าอื่น ๆ
  • Holding Registers: ข้อมูลอนาล็อกแบบอ่าน-เขียน (Read-write) ใช้ฟังก์ชันโค้ด 0x03 และ 0x06 มักใช้สำหรับการตั้งค่าพารามิเตอร์หรือสถานะของอุปกรณ์
 
[6]

5-3. โค้ดคำสั่ง Modbus และการทำงานของมัน

โปรโตคอล Modbus กำหนดฟังก์ชันโค้ดต่าง ๆ เพื่อควบคุมการอ่านหรือเขียนข้อมูลของอุปกรณ์ โดยฟังก์ชันโค้ดที่พบบ่อยและการใช้งานมีดังนี้:

  1. 0x01 - Read Coils: อ่านสถานะเปิด/ปิดของอุปกรณ์ มักใช้สำหรับตรวจสอบสวิตช์หรือรีเลย์
  2. 0x02 - Read Discrete Inputs: ตรวจสอบสถานะอินพุตแบบไบนารี เช่น ปุ่มกดหรือสถานะของเซ็นเซอร์
  3. 0x03 - Read Holding Registers: ตรวจสอบพารามิเตอร์หรือสถานะการทำงาน มักใช้สำหรับการอ่านค่าการตั้งค่าหรือข้อมูลการทำงานของอุปกรณ์
  4. 0x04 - Read Input Registers: ใช้ตรวจสอบอินพุตแบบอนาล็อก เช่น ข้อมูลจากเซ็นเซอร์อุณหภูมิหรือความดัน
  5. 0x05 - Write Single Coil: ควบคุมสถานะเปิด/ปิดของอุปกรณ์เดี่ยว
  6. 0x06 - Write Single Holding Register: ปรับพารามิเตอร์ของอุปกรณ์ เช่น การตั้งค่าความเร็วหรืออุณหภูมิ
  7. 0x0F (15) - Write Multiple Coils: ควบคุมสถานะเปิด/ปิดของอุปกรณ์หลายตัวพร้อมกัน
  8. 0x10 (16) - Write Multiple Holding Registers: ตั้งค่าพารามิเตอร์ของอุปกรณ์หลายตัวพร้อมกัน

5-4. รูปแบบ Modicom คืออะไร?

รูปแบบ Modicon Format กำหนดโครงสร้างการระบุหมายเลขที่อยู่สำหรับ Modbus โดยเชื่อมโยงช่วงของที่อยู่เฉพาะกับฟังก์ชันโค้ดที่กำหนดไว้ การออกแบบนี้ช่วยให้ผู้ปฏิบัติงานสามารถป้อนเฉพาะหมายเลขที่อยู่โดยไม่ต้องระบุฟังก์ชันโค้ดด้วยตนเอง ช่วยลดข้อผิดพลาดและทำให้การสื่อสารง่ายขึ้น

 

อ้างอิง: Modicon Modbus Protocol Reference Guide

5-5. +40001 / +30001 หมายถึงอะไร?

ตามรูปแบบ Modicon โปรโตคอล Modbus ใช้ช่วงที่อยู่เฉพาะเพื่อระบุประเภทรีจิสเตอร์ที่แตกต่างกัน ตัวอย่างเช่น:

  • 0001–39999: Input Registers (Function Code 04)
  • 40001–49999: Holding Registers (Function Code 03)

+40001 หมายถึงอะไร?
ในรูปแบบ Modicon ช่วงที่อยู่ 40001–49999 สอดคล้องกับ Holding Registers ที่เข้าถึงโดยใช้ Function Code 03 โดยที่ 40001 ทำหน้าที่เป็นที่อยู่ฐาน ตัวอย่างเช่น 40001 แสดงถึงรีจิสเตอร์ตัวแรกโดยมีค่า offset เป็น 0000 ซึ่งหมายถึงตำแหน่งการอ่านอยู่ที่ 0000

เมื่อผู้ใช้งานป้อน 40005 Modbus จะรับรู้โดยอัตโนมัติว่าช่วงที่อยู่ 40001–49999 สอดคล้องกับ Holding Registers (Function Code 03) ตามตรรกะของการกำหนดที่อยู่ Modbus จะตีความ 40005 เป็น 40001 + 0004 ดังนั้นจะทำการอ่านตำแหน่ง 0004 ภายในรีจิสเตอร์ Function Code 03

Modbus Function Code
[7]

6. การติดตั้งการตรวจสอบการไหลระหว่าง PLC และเครื่องวัดการไหลโดยใช้ RS485 และ Modbus RTU

ในโปรโตคอล Modbus แต่ละฟิลด์ข้อมูลมีความหมายและตำแหน่งเฉพาะ ผู้ใช้จำเป็นต้องป้อนลำดับของโค้ด ซึ่งประกอบด้วย: "ที่อยู่ของ Slave, Function Code (สำหรับการอ่าน Input Registers), ที่อยู่ของรีจิสเตอร์, จำนวนรีจิสเตอร์ที่ต้องการอ่าน และ CRC Check Code" เมื่อได้รับข้อมูลเหล่านี้ Modbus Master จะทำการวิเคราะห์แต่ละฟิลด์ตามรูปแบบ Modbus เพื่อตัดสินใจว่าจะดำเนินการใดกับ Slave เป้าหมาย เช่น การอ่านหรือเขียนข้อมูลในรีจิสเตอร์

ตัวอย่างการใช้งานการตรวจสอบการไหลระหว่าง PLC และเครื่องวัดการไหลโดยใช้ RS485 และ Modbus RTU:

  • การตั้งค่าฮาร์ดแวร์: ตรวจสอบให้แน่ใจว่าเครื่องวัดการไหลและ PLC มีอินเทอร์เฟซ RS485 และรองรับการสื่อสาร Modbus RTU เชื่อมต่อ PLC และเครื่องวัดการไหลผ่านสายสื่อสาร RS485
  • การกำหนดค่า Modbus RTU และการออกแบบโปรแกรม: กำหนดที่อยู่ Modbus ของเครื่องวัดการไหล (เช่น ที่อยู่ Slave) และพารามิเตอร์ เช่น อัตราบอด (Baud Rate) กำหนดค่า PLC ด้วยฟังก์ชัน Master ของ Modbus ที่เหมาะสม และระบุข้อมูลที่ต้องการอ่านจาก Master ตรวจสอบให้แน่ใจว่าพารามิเตอร์การสื่อสาร (อัตราบอด, จำนวนบิตข้อมูล, บิตหยุด, และบิตพาริตี้) ของทั้ง PLC และเครื่องวัดการไหลตรงกัน
 
แผนภาพการทำงานของคอมพิวเตอร์

เครื่องวัดการไหลส่งข้อมูลไปยัง PLC ผ่านอินเทอร์เฟซ RS485 โดยที่ PLC จะอ่านข้อมูลด้วยโปรโตคอล Modbus RTU จากนั้นข้อมูลจากเครื่องวัดการไหลจะถูกแสดงผลแบบเรียลไทม์บนหน้าจอคอมพิวเตอร์ที่ใช้ในการตรวจสอบ โดยแสดงกราฟโค้งของค่าการไหล

ในการสื่อสาร Modbus RTU แพ็กเก็ต Modbus ประกอบด้วยฟิลด์ที่อยู่ (Address Field), ฟังก์ชันโค้ด (Function Code), ฟิลด์ข้อมูล (Data Field) และรหัสตรวจสอบความผิดพลาด (CRC Check) โดย TX หมายถึงสัญญาณคำขอที่ส่งออก และ RX คือสัญญาณการตอบกลับ

สัญญาณคำขอ TX: TX 01 04 00 64 00 01 70 15

  • 01: ที่อยู่ของ Slave
  • 04: ฟังก์ชันโค้ด (สำหรับการอ่าน Input Registers)
  • 00 64: ที่อยู่ของรีจิสเตอร์ (Address 100)
  • 00 01: จำนวนรีจิสเตอร์ที่ต้องการอ่าน (1 รีจิสเตอร์)
  • 70 15: รหัส CRC ตรวจสอบความถูกต้องของข้อมูล

สัญญาณตอบกลับ RX: RX 01 04 02 00 BB F0

  • 01: ที่อยู่ของ Slave แสดงว่าสัญญาณตอบกลับมาจากอุปกรณ์ที่ Address 1
  • 04: ฟังก์ชันโค้ด ยืนยันว่าเป็นคำตอบสำหรับ "Read Input Registers"
  • 02: ความยาวของข้อมูล ระบุว่ามีข้อมูล 2 ไบต์
  • 00 BB: ค่าข้อมูล เป็นตัวเลข 16 บิต ในเลขฐานสิบหก 00BB แปลงเป็นค่า 187 ในฐานสิบ
  • F0: รหัส CRC ยืนยันความถูกต้องของแพ็กเก็ต

ข้อมูลการไหลเหล่านี้ยังสามารถถูกแปลงผ่านเกตเวย์ไปยังโปรโตคอลอื่น (เช่น Modbus TCP) หรือชั้นทางกายภาพอื่น (เช่น Wi-Fi) และส่งผ่าน Ethernet ไปยังเซิร์ฟเวอร์ระยะไกลเพื่อจัดเก็บบนคลาวด์ การนี้ช่วยให้สามารถตรวจสอบสถานะการผลิตระยะไกลและรายงานข้อมูลอัตโนมัติได้ เช่น หากตรวจพบค่าการไหลผิดปกติ ระบบสามารถส่งการแจ้งเตือนอัตโนมัติผ่านระบบแจ้งเตือน ช่วยเพิ่มประสิทธิภาพในการผลิตและอำนวยความสะดวกในการจัดการ

[8]

References

  1. ^ 帶你認識物聯網 Modbus 通訊協議-WARREN LO
  2. ^ Modbus协议的通信方式有几种 - 小頭菜
  3. ^ Understanding Modbus Protocol - RTU vs TCP vs ASCII - OPS Telecom
  4. ^ Modbus RTU 通訊協定介紹 - 力誠科技
  5. ^ Modbus RTU簡介(上) - iT 幫幫忙
  6. ^ Modbus协议数据类型只有这四种 - 小頭菜
  7. ^ MODBUS 位址加40001 / 30001,為什麼就可以不用輸入功能碼? - PLC
ผลิตภัณฑ์ที่คุณอาจสนใจ
บทความที่เกี่ยวข้อง

ติดต่อเรา