หน้าแรกคู่มือPLCพื้นฐาน PLC และ SamSoar2022Real-time Clock และการเปรียบเทียบค่า
PLCเริ่มต้น · Beginner9 นาที

Real-time Clock และการเปรียบเทียบค่า

คำสั่งเปรียบเทียบใน SamSoar2022 (LDW>, LDW=, LDW< และ CMP) กับการอ่านเวลาจาก Real-Time Clock ด้วย TRD เพื่อสั่งงานตามเวลา เช่นเปิด M75 ตอน 08:30:30 และปิดตอน 17:30:30

คำสั่ง LDW>, LDW=, LDW< เปรียบเทียบค่า Word ทีละเงื่อนไข ส่วน CMP เทียบครบ 3 เงื่อนไขในบรรทัดเดียวแล้วออกผลที่ M 3 ตัวติดกัน — ถ้าเอาไปเทียบกับเวลาจาก TRD (ตั้ง RTC format เป็น Decimal ก่อน) ก็สั่งงานตามเวลาได้

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

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

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

฿3,690

ทำไมต้องเปรียบเทียบค่า

พอใช้ตัวเลขเป็นแล้ว งานจริงมักต้องเอาค่าหนึ่งไปเทียบกับอีกค่า เช่น PLC อ่านค่าจากเซนเซอร์ ถ้ามากกว่า 40 ให้ Output หนึ่งทำงาน ถ้าเท่ากับ 40 ให้อีกตัวทำงาน ถ้าน้อยกว่าให้อีกตัวทำงาน หรือเรื่องเวลา ซึ่งก็เป็นตัวเลขเหมือนกัน เช่นให้ PLC ทำงานตั้งแต่ 8 โมงเช้าถึง 5 โมงเย็น

คำสั่งเปรียบเทียบทั้งหมดอยู่ในโฟลเดอร์ Compare ของ Instruction ใน Project Tree ทางซ้าย

คำสั่ง LDW — เทียบทีละเงื่อนไข

ถ้าต้องการ "มากกว่า" ใช้ LDW> (Word Greater) ซึ่งมีแบบมากกว่าหรือเท่ากับให้เลือกด้วย ในคลิปเขียนเทียบ D60 กับ 40 สามแบบ

LDW>, LDW=, LDW<
เทียบ D60 กับ K40 แล้วให้ M60, M61, M62 ทำงานตามผล
N0
D60 > 40 → M60
D60 > K40M60
D60 = 40 → M61
D60 = K40M61
D60 < 40 → M62
D60 < K40M62
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

ทดสอบด้วย Simulate แล้วใส่ D60 ใน Monitor List

  1. D60 เริ่มต้นเป็น 0 (น้อยกว่า 40) → M62 ติด
  2. ตั้ง D60 = 40 → M61 ติด
  3. ตั้ง D60 = 41 → M60 ติด

คำสั่ง CMP (Word Compare) — 3 เงื่อนไขในบรรทัดเดียว

แทนที่จะเขียน 3 บรรทัด ใช้ CMP บรรทัดเดียวได้ผลแบบเดียวกัน CMP รับ 3 Parameter

  1. ข้อมูลที่สนใจ เช่น D60
  2. ค่าที่ต้องการเทียบ เช่น K40
  3. ตำแหน่งเริ่มต้นของ Output 3 ตัว เช่น M70
CMP — เปรียบเทียบครบ 3 เงื่อนไข
เทียบ D60 กับ K40 ผลออกที่ M70 (>), M71 (=), M72 (<)
N0
Always ON → CMP D60 กับ K40 ผลที่ M70–M72
M8151CMPD60, K40, M70
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv
  • M70 ติดเมื่อ D60 มากกว่า 40
  • M71 ติดเมื่อ D60 เท่ากับ 40
  • M72 ติดเมื่อ D60 น้อยกว่า 40

ทดสอบโดย Monitor M70, M71, M72: D60 = 0 → M72 ติด, D60 = 40 → M71 ติด, D60 = 100 → M70 ติด

Real-Time Clock (RTC)

สมมติต้องการให้ปั๊มหรือมอเตอร์ทำงานช่วง 8 โมงเช้าถึง 5 โมงเย็น ต้องรู้จัก Real-Time Clock (RTC) ก่อน PLC มี Battery ภายในเก็บข้อมูลเวลาไว้ แม้ PLC ดับ นาฬิกาก็ยังเดินต่อ เหมือนนาฬิกาในคอมพิวเตอร์

ตั้ง RTC format เป็น Decimal

ไปที่ Config → Project Setting หัวข้อ Other ในส่วน RTC Setting ค่า RTC format เริ่มต้นเป็น BCD ซึ่งอ่านยากเพราะต้องแปลงเป็นเลขฐาน 10 เอง ให้เปลี่ยนเป็น Decimal แล้วกด OK จะทำงานกับเวลาได้ง่ายขึ้น

คำสั่ง TRD — อ่านเวลา

ใช้ M8151 ขับคำสั่ง TRD ตามด้วย Data Register เริ่มต้นที่จะเก็บเวลา ในคลิปใช้ D70

TRD — อ่านเวลาปัจจุบันจาก RTC
M8151 Always ON → อ่านเวลาเก็บที่ D70–D77
N0
Always ON → อ่านเวลาเก็บที่ D70–D77
M8151TRDD70
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

TRD ใช้ Data Register ทั้งหมด 8 ตัว (ตัวที่ 0 ถึงตัวที่ 7 นับจากตำแหน่งเริ่มต้น)

ตัวที่ข้อมูลช่วงค่า (Decimal)ตำแหน่งเมื่อเริ่มที่ D70
0Year2000–2099D70
1Month1–12D71
2Day1–31D72
3Hour0–23D73
4Minute0–59D74
5Second0–59D75
6Reserved-D76
7Week0–6D77

สั่งงานตามเวลา

ใช้ LDW= เทียบชั่วโมง (D73) ต่ออนุกรมกับการเทียบนาที (D74) และวินาที (D75) ในคลิปตั้งให้ SET M75 ตอน 08:30:30 และ RST ตอน 17:30:30 (วินาทีจะไม่กำหนดก็ได้)

เปิด M75 ตอน 08:30:30 ปิดตอน 17:30:30
เทียบ ชั่วโมง/นาที/วินาที จาก TRD แล้ว SET หรือ RST M75
N0
08:30:30 → SET M75
D73 = K8D74 = K30D75 = K30SETM75, K1
17:30:30 → RST M75
D73 = K17D74 = K30D75 = K30RSTM75, K1
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

ใส่ Comment ให้ D73, D74, D75 เป็น Hour, Minute, Second จะอ่านโปรแกรมง่ายขึ้น เมื่อกด Simulate → Start จะเห็น D75 (ตัวที่ 5 ของ TRD คือวินาที) วิ่งไปเรื่อยๆ และเมื่อเวลาตรง 8 โมง 30 นาที 30 วินาที M75 จะถูก SET ส่วนตอน 17:30:30 จะถูก RST

สรุป

  • LDW>, LDW=, LDW< เปรียบเทียบค่า Word ทีละเงื่อนไข
  • CMP เทียบครบ 3 เงื่อนไขในบรรทัดเดียว ผลออกที่ M 3 ตัวติดกัน (มากกว่า, เท่ากับ, น้อยกว่า)
  • RTC ตั้ง RTC format เป็น Decimal แล้วใช้ TRD อ่านเวลาเข้า D 8 ตัว นำไปเทียบเพื่อสั่งงานตามเวลา

ตอนต่อไปจะพูดถึง Timer ใน PLC

ตอนถัดไป

7. Timer ใน PLC

9 นาทีเริ่มต้น · Beginner

ควรอ่านก่อน: