เจาะลึกการต่อเซ็นเซอร์ SHT30 หลายตัวกับ PLC LK3U ด้วย Modbus RTU | VR Automation

เจาะลึกการต่อเซ็นเซอร์ SHT30 หลายตัวกับ PLC LK3U ด้วย Modbus RTU: ตั้งแต่การเปลี่ยน ID จนถึงการเขียนโปรแกรม

วันที่ 17/04/2026 | บทความเชิงเทคนิค | VR Automation

สรุปย่อ: บทความนี้อธิบายขั้นตอนการเชื่อมต่อเซ็นเซอร์วัดอุณหภูมิและความชื้น SHT30 (RS485 Modbus RTU) หลายตัว เข้ากับ PLC LK3U (Linkkong) แบบ Multi-Node ครอบคลุมตั้งแต่การต่อสาย การตั้งค่า Communication การเปลี่ยน Slave ID จนถึงการเขียนโปรแกรม PLC ด้วยคำสั่ง ADPRW เพื่ออ่านค่าอุณหภูมิและความชื้นแบบ Real-time เหมาะสำหรับงาน Smart Farm, ห้อง Clean Room และระบบควบคุมสภาพแวดล้อมในโรงงาน

1. ทำความรู้จักกับอุปกรณ์

PLC LK3U (Linkkong)

PLC LK3U เป็น PLC ขนาดเล็กจาก Linkkong ที่รองรับการสื่อสารผ่านพอร์ต RS485-1 ทำให้สามารถเชื่อมต่อกับอุปกรณ์ Modbus RTU ภายนอกได้โดยตรง เหมาะสำหรับงานระบบอัตโนมัติขนาดเล็กถึงกลางที่ต้องการ cost-effective solution

เซ็นเซอร์ SHT30 (RS485 Modbus RTU)

SHT30 เป็นเซ็นเซอร์วัดอุณหภูมิและความชื้นแบบดิจิทัลจากผู้ผลิต Fantasy IoT (济南范特西物联网科技) ที่ใช้การสื่อสาร RS485 โปรโตคอล Modbus RTU มีข้อมูลสเปคจาก Datasheet ดังนี้:

รายการ รายละเอียด
แหล่งจ่ายไฟ (DC) 7-30V DC (แนะนำ 12V หรือ 24V)
กินไฟสูงสุด 0.3W
ความแม่นยำอุณหภูมิ ±0.3°C (ที่ 25°C)
ความแม่นยำความชื้น ±2%RH (5%~95%RH, 25°C)
ช่วงวัดอุณหภูมิ -40°C ถึง +125°C
ช่วงวัดความชื้น 0%RH ~ 100%RH
ความละเอียดอุณหภูมิ 0.1°C
ความละเอียดความชื้น 0.1%RH
โปรโตคอล Modbus RTU (RS485)
Baud Rate (Default) 9600 bps, N, 8, 1
Refresh Time <2 วินาที
ระยะสื่อสาร RS485 สูงสุด 800 เมตร

การเชื่อมต่อสาย

ใช้การต่อแบบ ขนาน (Daisy Chain) บนบัส RS485 โดยต่อ A กับ A, B กับ B ของทุกอุปกรณ์ และจ่ายไฟเลี้ยง 7-30V DC (แนะนำ 24V จาก PLC) ให้กับเซ็นเซอร์แต่ละตัว

สายสี ฟังก์ชัน ต่อกับ PLC LK3U
แดง V+ (ไฟเลี้ยง 7-30V DC) +24V
ดำ GND (ไฟเลี้ยง) 0V
เหลือง A+ (RS485) RS485-1 A+
เขียว B- (RS485) RS485-1 B-

⚠️ ข้อควรระวัง: สาย A กับ B ห้ามสลับกัน! และหากมีอุปกรณ์จำนวนมากหรือเดินสายยาว ควรเพิ่ม Termination Resistor 120Ω ที่ปลายสาย

2. การตั้งค่าการสื่อสาร (Communication Settings)

เพื่อให้ PLC LK3U และเซ็นเซอร์ SHT30 สื่อสารกันได้ ต้องตั้งค่าพารามิเตอร์ให้ตรงกัน:

พารามิเตอร์ ค่าที่ตั้ง
Baud Rate 9600 bps
Data Bit 8 บิต
Parity None (ไม่มีการตรวจสอบ)
Stop Bit 1 บิต
Error Check CRC (Cyclic Redundancy Check)
PLC Register D8400 (ค่า Default = H3081)

ใน PLC LK3U ให้ตั้งค่าที่ Register D8400 เป็น H3081 ซึ่งเป็นค่า Default สำหรับ 9600, N, 8, 1 เพื่อให้พอร์ต RS485-1 พร้อมสื่อสาร Modbus RTU

3. การเตรียม Slave ID สำหรับเซ็นเซอร์หลายตัว (Multi-Node)

ในการต่อเซ็นเซอร์ SHT30 หลายตัว บนบัส RS485 เดียวกัน สิ่งสำคัญที่สุดคือ Slave ID ของเซ็นเซอร์แต่ละตัวต้องไม่ซ้ำกัน (ค่า Default จากโรงงานคือ 0x01 ทุกตัว)

วิธีเปลี่ยน Slave ID ของ SHT30

จาก Datasheet ของ SHT30 สามารถเปลี่ยน Slave ID ได้โดยใช้ Function Code 0x06 (Write Single Register) เขียนค่าไปที่ Register Address 0x0100 (256 ทศนิยม)

ตัวอย่าง Modbus Frame เปลี่ยน Slave ID จาก 1 เป็น 2:

0x01 0x06 0x01 0x00 0x00 0x02 0x09 0xF7

โดย: 0x01 = Address เดิม, 0x06 = Write, 0x0100 = Register เปลี่ยน ID, 0x0002 = ID ใหม่

ขั้นตอนสำคัญ: ต้องต่อเซ็นเซอร์ ทีละตัว ในการเปลี่ยน ID เพื่อป้องกันความสับสน เช่น:

  • ตัวที่ 1: คง Slave ID = 1 (ค่า Default)
  • ตัวที่ 2: เปลี่ยน Slave ID เป็น 2
  • ตัวที่ 3: เปลี่ยน Slave ID เป็น 3

เมื่อเปลี่ยนเสร็จแล้ว จึงต่อเซ็นเซอร์ทุกตัวเข้าบัส RS485 พร้อมกัน

4. Modbus Register Map ของ SHT30

จาก Datasheet ระบุ Register สำหรับอ่านค่าดังนี้:

Register Address PLC Address ข้อมูล หมายเหตุ
0x0000 40001 ความชื้น (Humidity) ทศนิยม 1 ตำแหน่ง (หาร 10)
0x0001 40002 อุณหภูมิ (Temperature) ทศนิยม 1 ตำแหน่ง (หาร 10)
0x0002 40003 ความสว่าง (Lux) จำนวนเต็ม (0-65535 Lux)

การแปลงค่า: ค่าที่อ่านได้จาก Register จะเป็นจำนวนเต็ม ต้องนำมา หารด้วย 10 เพื่อให้ได้ทศนิยม เช่น อ่านได้ 242 = 24.2°C หรือ 658 = 65.8%RH

กรณีอุณหภูมิติดลบ ข้อมูลจะเป็นเลข Complement (2’s Complement) เช่น 0xFF9B = -101 = -10.1°C

5. การเขียนโปรแกรม PLC ด้วยคำสั่ง ADPRW

PLC LK3U ใช้คำสั่ง ADPRW ในการอ่านข้อมูลจาก Slave Device ผ่าน Modbus RTU:

โครงสร้างคำสั่ง ADPRW

ADPRW [Slave ID] [Function Code] [Start Address] [Quantity] [Destination Register]

ตัวอย่าง: อ่านค่าจากเซ็นเซอร์ ID 1
ADPRW  K1   H3   K0   K2   D100

โดย:
  K1    = Slave ID = 1
  H3    = Function Code 03 (Read Holding Register)
  K0    = Start Address = 0 (เริ่มจาก Register 0x0000)
  K2    = Quantity = 2 (อ่าน 2 Register: ความชื้น + อุณหภูมิ)
  D100  = เก็บผลลัพธ์ที่ D100 (ความชื้น) และ D101 (อุณหภูมิ)

การอ่านเซ็นเซอร์หลายตัวแบบ Real-time (Polling)

เมื่อมีเซ็นเซอร์หลายตัว ห้ามสั่งอ่านพร้อมกัน เพราะจะทำให้ข้อมูลชนกันบนบัส RS485 ต้องเขียนโปรแกรมให้ อ่านสลับกัน (Polling):

// เซ็นเซอร์ตัวที่ 1 (Slave ID = 1) → เก็บค่าที่ D100, D101
เมื่อ M8000 (Always ON) และ M0 = ON:
    ADPRW  K1   H3   K0   K2   D100
    เมื่ออ่านเสร็จ (Complete Flag) → SET M1, RST M0

// เซ็นเซอร์ตัวที่ 2 (Slave ID = 2) → เก็บค่าที่ D110, D111
เมื่อ M1 = ON:
    ADPRW  K2   H3   K0   K2   D110
    เมื่ออ่านเสร็จ → SET M2, RST M1

// เซ็นเซอร์ตัวที่ 3 (Slave ID = 3) → เก็บค่าที่ D120, D121
เมื่อ M2 = ON:
    ADPRW  K3   H3   K0   K2   D120
    เมื่ออ่านเสร็จ → SET M0, RST M2
    (วนกลับไปอ่านตัวที่ 1 ใหม่)

การแปลงค่าเป็นทศนิยม

// แปลงค่าเซ็นเซอร์ตัวที่ 1
DIV  D100  K10  D200    // D200 = ความชื้นจริง (เช่น 658÷10 = 65.8%RH)
DIV  D101  K10  D201    // D201 = อุณหภูมิจริง (เช่น 242÷10 = 24.2°C)

6. ตัวอย่าง Modbus Frame จาก Datasheet

จาก Datasheet ของ SHT30 แสดงตัวอย่างการสื่อสาร Modbus RTU ดังนี้:

อ่านค่าอุณหภูมิและความชื้นพร้อมกัน

ทิศทาง Hex Frame ความหมาย
Master → Slave 01 03 00 00 00 02 C4 0B อ่าน 2 Register ตั้งแต่ Address 0
Slave → Master 01 03 04 02 92 FF 9B 5A 3D ความชื้น=0x0292(658)=65.8%RH, อุณหภูมิ=0xFF9B(-101)=-10.1°C

7. จุดเด่นของโซลูชัน PLC LK3U + SHT30

  • คุ้มค่า: PLC LK3U ราคาประหยัด + SHT30 ราคาถูก ได้ระบบวัดอุณหภูมิ-ความชื้นหลายจุดครบชุด
  • เดินสายได้ไกล: RS485 รองรับระยะสื่อสารสูงสุด 800 เมตร เหมาะกับโรงงานหรือฟาร์มขนาดใหญ่
  • Multi-Node: ต่อเซ็นเซอร์ได้หลายตัวบนสายเดียวกัน ลดต้นทุนการเดินสาย
  • แม่นยำสูง: ความแม่นยำ ±0.3°C สำหรับอุณหภูมิ และ ±2%RH สำหรับความชื้น
  • ย่านวัดกว้าง: ทำงานได้ตั้งแต่ -40°C ถึง +125°C รองรับสภาพแวดล้อมหลากหลาย

8. งานที่เหมาะสม (Applications)

  • Smart Farm / โรงเรือนเพาะปลูก: ควบคุมอุณหภูมิความชื้นหลายจุดในโรงเรือน
  • ห้อง Clean Room / ห้องเซิร์ฟเวอร์: มอนิเตอร์สภาพแวดล้อมแบบ Real-time
  • โรงงานอุตสาหกรรม: ตรวจสอบสภาพแวดล้อมในกระบวนการผลิต ตู้ควบคุมไฟฟ้า
  • คลังสินค้า / ห้องเก็บยา: ควบคุมอุณหภูมิความชื้นตามมาตรฐาน GMP

9. วิดีโอสอนการใช้งาน

ดูวิดีโอสาธิตขั้นตอนการต่อเซ็นเซอร์ SHT30 กับ PLC LK3U ผ่าน Modbus RTU แบบละเอียดได้ที่ช่อง YouTube ของเรา:

10. FAQ คำถามที่พบบ่อย

Q1: ต่อเซ็นเซอร์ SHT30 ได้สูงสุดกี่ตัวบนบัส RS485 เดียวกัน?

ตาม Modbus RTU สามารถต่อได้สูงสุด 247 Slave แต่ในทางปฏิบัติแนะนำไม่เกิน 30-50 ตัว โดยอาจต้องเพิ่ม RS485 Repeater และ Termination Resistor 120Ω หากเดินสายยาว

Q2: ทำไมอ่านค่าจากเซ็นเซอร์ไม่ได้?

สาเหตุที่พบบ่อย: (1) สาย A กับ B สลับกัน (2) Slave ID ซ้ำกัน (3) Baud Rate ไม่ตรงกัน (4) Polling Interval สั้นเกินไป (ควรตั้งมากกว่า 200ms) (5) ไม่ได้ตั้งค่า D8400 ใน PLC

Q3: ค่าอุณหภูมิที่อ่านได้เป็นเลขแปลกๆ เช่น 65435 หมายความว่าอย่างไร?

นี่คือค่าอุณหภูมิติดลบในรูปแบบ 2’s Complement ของเลข 16 บิต เช่น 65435 = 0xFF9B = -101 หมายถึง -10.1°C ต้องใช้คำสั่งแปลงค่า signed integer ใน PLC

รายละเอียดสินค้าและช่องทางสั่งซื้อ

เซ็นเซอร์วัดอุณหภูมิและความชื้น SHT30 RS485 Modbus RTU

รหัสสินค้า: P1216
ราคา: ติดต่อสอบถามราคา โทร 083-848-8314 หรือ Line: @vrautomation
สต๊อก: พร้อมส่ง (กรุณาสอบถามจำนวน)
เว็บผู้ผลิต: Fantasy IoT (济南范特西物联网科技) | หน้าสินค้า Temp & Humidity Sensors

สนใจ PLC LK3U หรือ เซ็นเซอร์ SHT30 Modbus RTU?

VR Automation จำหน่ายและให้บริการติดตั้ง พร้อมทีมช่างผู้เชี่ยวชาญด้านระบบ Automation

โทรสอบถามราคา: 083-848-8314

อีเมล: [email protected]

Line: @vrautomation

vrautomation.co.th

สต๊อกกรุณาสอบถาม | รับประกันสินค้า | บริการหลังการขาย | ออกใบกำกับภาษีได้

ที่มาข้อมูล

  1. Datasheet: 温湿度/光照度使用说明书 (壁挂式) V1.0 — 济南范特西物联网科技有限公司 (fantasyiot.com)
  2. PLC LK3U Manual — Linkkong
  3. ไฟล์โปรแกรมตัวอย่าง: LK3U-Temp-Humid.gxw — VR Automation

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *