หน้าแรกคู่มือPLCModbus ProtocolPLC Samkoon อ่านค่าเซนเซอร์อุณหภูมิความชื้นผ่าน Modbus RS485/RTU

บทที่ 9 จาก 9 ใน Modbus Protocol

PLCปานกลาง · Intermediate2 นาที

PLC Samkoon อ่านค่าเซนเซอร์อุณหภูมิความชื้นผ่าน Modbus RS485/RTU

ต่อเซนเซอร์อุณหภูมิความชื้น XY-MD02 สองตัวแบบ Multi-drop เข้าพอร์ต 485 ของ PLC Samkoon FAs ตั้ง COM1(485) เป็น Modbus Master สร้าง Modbus Table อ่าน Input Register (0x04) แล้วสั่ง MBUS ให้อ่านค่ามาเก็บที่ D0–D3

ต่อสาย 485A และ 485B ของ PLC ไปที่ A และ B ของเซนเซอร์ทุกตัวแบบ Multi-drop ตั้ง COM1(485) เป็น Modbus Master สร้าง Modbus Table ที่อ่าน 0x04 Read Input Register จาก Slave ID 1 และ 2 มาเก็บที่ D0–D3 แบบ Loop แล้วเรียกด้วย MBUS K1 data D100 D101

อัพเดทล่าสุด: 26 ตุลาคม 2569

ชุดอุปกรณ์สำหรับบทความนี้

ราคาชุดอุปกรณ์

฿390

ภาพรวม

ใช้ PLC Samkoon (ในคลิปเป็นรุ่น FAs) เป็น Modbus Master อ่านค่าอุณหภูมิและความชื้นจากเซนเซอร์ XY-MD02 สองตัว (Slave ID 1 และ 2) ผ่าน Modbus RS485/RTU โดยมี Power Supply 24V (AMLPULS AMGR02024N) จ่ายไฟให้เซนเซอร์

ขั้นที่ 1: เดินสาย RS485 แบบ Multi-drop

พอร์ต 485 ของ PLC Samkoon คือขั้ว 485A และ 485B

  • 485A ของ PLC → A ของเซนเซอร์ Slave ID 1 → A ของเซนเซอร์ Slave ID 2
  • 485B ของ PLC → B ของเซนเซอร์ Slave ID 1 → B ของเซนเซอร์ Slave ID 2
  • ที่เหลือเป็นการจ่ายไฟ 24V ให้เซนเซอร์ตามปกติ

ขั้นที่ 2: ตั้งค่าพอร์ตใน SamSoar2022

  1. ไปที่ Config > Project Setting
  2. เลือกแท็บ COM 1(485) (ถ้าใช้ขั้ว 485 ตรงนี้)
  3. Protocol เลือก Modbus master แล้วตั้งพารามิเตอร์ตามที่เห็นในคลิป แล้วกด OK
Baudrate:        9600
Databits:        8
Stopbits:        1
Checkcode:       NONE
Station number:  1
Timeout:         20 (x10 ms)
Frame interval:  20 ms
Retransmission:  3

ขั้นที่ 3: สร้าง Modbus Table

  1. คลิกขวาที่ Modbus Table แล้วกด Add สร้าง Table ใหม่ ในคลิปตั้งชื่อว่า data
  2. ระบุ Slave ID และคำสั่งที่จะส่ง อ้างอิงจากคู่มือของเซนเซอร์: อุณหภูมิและความชื้นต้องใช้คำสั่ง Read Input Register ที่ตำแหน่ง 1 และ 2 ตำแหน่งละ 16 บิต
  3. ตั้งให้ส่งต่อเนื่องแบบ Loop (TriggerMode = ModbusMode_Loop)
Port (Slave ID)Handle codeSlave registerSlave countMaster register
K10x04 (Read input register)K1K1D0 (อุณหภูมิ ตัวที่ 1)
K10x04 (Read input register)K2K1D1 (ความชื้น ตัวที่ 1)
K20x04 (Read input register)K1K1D2 (อุณหภูมิ ตัวที่ 2)
K20x04 (Read input register)K2K1D3 (ความชื้น ตัวที่ 2)

สองแถวหลังใช้รูปแบบเดียวกัน แค่ Copy มาเปลี่ยน Slave ID 1 เป็น 2 และเก็บที่ D2 กับ D3

ขั้นที่ 4: เขียน Ladder สั่ง MBUS

เมื่อ M0 ติด ให้สั่ง MBUS โดยระบุ

  • K1 คือ COM ที่ใช้สื่อสาร (ขั้ว 485 ที่ตั้งไว้ใน COM 1)
  • data คือชื่อ Modbus Table
  • D100 เก็บ Error Code ของการสื่อสาร
  • D101 เก็บ Index บอกว่าตอนนี้แถวไหนของ Table กำลังทำงานอยู่
MBUS อ่าน Modbus Table ชื่อ data
COM1 (K1), Error = D100, Index = D101
N0
M0 ON → สั่ง MBUS อ่านเซนเซอร์ตาม Modbus Table data
M0MBUSK1, data, D100, D101
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

ขั้นที่ 5: Download และตรวจค่า

Download ลง PLC เปิด Monitor แล้วสั่งให้ M0 ติดเพื่อให้ MBUS ทำงาน

  • ถ้าการสื่อสารปกติ ค่า Index (D101) จะวิ่งวนเป็น Loop
  • ค่าจากเซนเซอร์จะมาแสดงใน Monitor List ในคลิปอ่านได้ D0 = 379, D1 = 505, D2 = 360, D3 = 528

หมายเหตุเรื่องการนับ Address

ส่วนนี้ไม่ได้อยู่ในคลิป แต่ช่วยให้ใส่ตำแหน่งได้ถูก

Address นับจาก 0 — Slave register ใน Modbus Table ของ SamSoar2022 นับจาก 0 ใส่เลข Register จากคู่มือเซนเซอร์ที่เป็นเลขฐานสิบหกหรือ Protocol Address ได้ตรงๆ (ในคลิปใส่ K1 และ K2) ถ้าคู่มือของอุปกรณ์เขียนแบบ 3xxxx (นับจาก 1) ให้ลบ 30001 เช่น 30002 = Address 1