MODBUS RTU คืออะไร?
MODBUS RTU คือ โปรโตคอล MODBUS เป็นการสื่อสารข้อมูลในลักษณะ Master/Slave ซึ่งเป็นการสื่อสารจากอุปกรณ์แม่ (Master) เครื่องเดียวส่งข้อมูลไปยังอุปกรณ์ลูก (Slave) ได้หลาย ๆ เครื่อง โดยสามารถกำหนดหมายเลขอุปกรณ์ได้สูงสุด 255 เครื่อง โดยมีลักษณะการส่งข้อมูล 2 แบบ คือ ข้อมูลแบบแอสกี (ASCII) และข้อมูลแบบเลขฐานสอง (Binary) ในโปรโตคอล MODBUS ที่สื่อสารข้อมูลแบบ ASCII จะเรียก MODBUS ASCII และโปรโตคอล MODBUS ที่สื่อสารข้อมูลแบบเลขฐานสอง จะเรียก MODBUS RTU ทำให้มีความแตกต่างในการกำหนดค่าพอร์ตสื่อสาร
เฟรมข้อมูลในโหมด RTU ประกอบด้วยข้อมูลแสดงตำแหน่งแอดเดรส 1 ไบต์, หมายเลขฟังก์ชัน 1 ไบต์, ข้อมูลที่ทำการรับส่งจำนวนมากสุดไม่เกิน 252 ไบต์ และรหัสตรวจสอบความถูกต้องของข้อมูลแบบ CRC (Cyclical Redundancy Checking) ขนาด 2 ไบต์ ค่า CRC นี้เป็นค่าที่คำนวณมาจากข้อมูลทุกไบต์ ไม่รวมบิต Start, Stop และ Parity Check โดยที่ตัว Slave ตัวที่ส่งข้อมูลออกมาจะสร้างรหัส CRC แล้วส่งตามท้ายไบต์ข้อมูลออกมา หลังจากนั้นเม่อ Master ได้รับเฟรมข้อมูลและถอดข้อมูลออกจากเฟรมแล้วจะทำการคำนวณค่า CRC ตามสูตรเดียวกับ Slave เพื่อทำการเปรียบเทียบค่า CRC ทั้ง 2 ค่าว่าตรงกันหรือไม่ หากไม่ตรงกันแสดงว่าเกิดความผิดพลาดในการรับส่งข้อมูลในโหมด RTU การรับส่งข้อมูล 1 ไบต์ ไม่ว่าจะเป็นข้อมูลส่วนใดภายในเฟรมจะต้องทำการส่งบิตข้อมูลรวม 11 บิต คือ บิตเริ่มต้น (Start) 1 บิต, บิตข้อมูล 8 บิต, บิตตรวจสอบ Parity ของข้อมูล 1 บิตและบิตหยุด 1 บิต (Stop) 1 บิต หรือหากเลือกแบบไม่มีบิต Parity ก็จะเป็นแบบ Stop แทน 2 บิต สำหรับการกำหนดให้มีบิต Parity นั้น สามารถเลือกเป็นแบบคู่ (Even Parity) หรือคี่ (Odd Parity) ก็ได้ และหากต้องการออกแบบให้สอดคล้องกับอุปกรณ์ที่มีใช้กันทั่วไปมากที่สุด ควรเลือกแบบคู่โดยที่สามารถปรับเปลี่ยนเป็นแบบคี่หรือไม่มีการตรวจสอบ Parity (No Parity) ได้ด้วย
การตั้งค่า MODBUS RTU MASTER
การ Configuration Teltonika RUT955 อ่านค่าจาก Modbus RS485 Device สามารถทำได้ตามขั้นตอนดังนี้
1. ไปที่แถบ Menu Service เลือก Modbus
![การตั้งค่า RUT Device ให้เป็น Modbus RTU Master 2 modbus RTU master](https://iiot.riverplus.com/wp-content/uploads/2021/10/modbus-RTU-master-1.png)
2. อุปกรณ์ Modbus Sensor ที่ใช้ในการอ่านค่าในครั้งนี้เป็น Modbus Serial RS485 ดังนั้น เลือกแถบ Menu Modbus Serial Master>>RS485
![การตั้งค่า RUT Device ให้เป็น Modbus RTU Master 3 modbus RTU master](https://iiot.riverplus.com/wp-content/uploads/2021/10/modbus-RTU-master-2.png)
3. ในส่วนแรก RS485 configuration ตั้งค่า RS485 parameter ให้ตรงกับ Modbus Device ที่ต้องการอ่านค่า
![การตั้งค่า RUT Device ให้เป็น Modbus RTU Master 4 modbus RTU master 3](https://iiot.riverplus.com/wp-content/uploads/2021/10/modbus-RTU-master-3.png)
4. Add new slave device เป็นการเพิ่ม Modbus slave device เพื่ออ่านค่า โดยการใส่ Slave ID หรือ Modbus ID ของ Modbus Devic ที่ต้องการอ่านค่า แล้วคลิก Add
![การตั้งค่า RUT Device ให้เป็น Modbus RTU Master 5 modbus RTU master 4](https://iiot.riverplus.com/wp-content/uploads/2021/10/modbus-RTU-master-4.png)
5. Slave device configuration เป็นการตั้งค่า Timeout และความถี่ในการอ่านค่า ต้องทำการ Enable ไว้ด้วย
![การตั้งค่า RUT Device ให้เป็น Modbus RTU Master 6 modbus RTU master](https://iiot.riverplus.com/wp-content/uploads/2021/10/modbus-RTU-master-5.png)
6. Requests Configuration>>Add เป็นการ Add Address ของ Modbus data ที่ต้องการอ่านค่า
![การตั้งค่า RUT Device ให้เป็น Modbus RTU Master 7 modbus RTU master](https://iiot.riverplus.com/wp-content/uploads/2021/10/modbus-RTU-master-6.png)
7. เมื่อ add แล้วจะมี หัวข้อใหม่เกิดขึ้น ให้ใส่ค่าต่างๆ
- name ชื่อ data ที่เรากำหนดเอง
- Data type ชนิดข้อมูลที่อุปกรณ์ส่งมา
- Function คือ Function Code ที่เก็บข้อมูล
- First Register คือ Address เริ่มต้นข้อมูล(เช่นอุปกรณ์ Sensor วัดค่า อุณหภูมิและความชื่น เก็บค่าไว้ที่ address 30001 30002 เป็นต้น First register คือ 1 และ register count คือ 2 เป็นต้น)
- Address สุดท้าย
- Click Enabled และกด Save
![การตั้งค่า RUT Device ให้เป็น Modbus RTU Master 8 modbus RTU master 7](https://iiot.riverplus.com/wp-content/uploads/2021/10/modbus-RTU-master-7.png)
8. เมื่อกด save และออกไปที่หน้า Add new slave device และจะพบว่าที่หัวข้อ RS485 slave device’s list มีอุปกรณ์ที่เราได้เพิ่มเข้าไปเกิดขึ้น เข้าที่ Edit เพื่อทำการทดสอบว่าสามารถเชื่อมต่อกับ อุปกรณ์ได้หรือไม่
![การตั้งค่า RUT Device ให้เป็น Modbus RTU Master 9 modbus RTU master 8](https://iiot.riverplus.com/wp-content/uploads/2021/10/modbus-RTU-master-8.png)
9. เมื่อกดที่ Edit แล้วจะเข้ามาที่หน้าต่าง Advanced device settings ให้เราเลือกที่ Test หากสามารถอ่านข้อมูลได้ข้อมูลจะแสดงในหน้าต่างด้านล่าง จากนั้นให้ save อีกครั้ง เป็นอันเสร็จสิ้น
![การตั้งค่า RUT Device ให้เป็น Modbus RTU Master 10 modbus RTU master](https://iiot.riverplus.com/wp-content/uploads/2021/10/modbus-RTU-master-9.png)