หน้าแรกคู่มือPLCพื้นฐาน PLC และ SamSoar2022Digital Wiring และการเขียน Ladder Logic
PLCเริ่มต้น · Beginner21 นาที

Digital Wiring และการเขียน Ladder Logic

เรียนรู้การต่อสาย Digital Input/Output และคำสั่ง Boolean Logic ใน PLC พร้อมตัวอย่างการใช้งาน LD, OUT, AND, OR สำหรับมือใหม่ เข้าใจง่าย

ต่อ Input แบบ Sink (24V จาก PLC เข้า COM0 ฝั่ง Input, Switch NO ต่อระหว่าง 0V กับ X0) และ Output Transistor (0V เข้า COM0 ฝั่ง Output, 24V → หลอดไฟ → Y0) แล้วเขียน Ladder พื้นฐานใน SamSoar2022 ด้วย LD/LDI (Contact NO/NC), OUT, AND (อนุกรม), OR (ขนาน Ctrl+↑), SET/RST (ตั้ง/ล้างหลาย Coil ด้วย K), ALT/ALTP (สลับสถานะ) และ LDP/LDF/MEF (Edge Detection) — คำสั่งกลุ่มนี้ครอบคลุมงาน PLC ประมาณ 80%

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

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

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

฿3,690

การเชื่อมต่อ Digital Input และ Output ใน PLC

ในบทเรียนนี้เราจะมาเรียนรู้การต่อสายและการเขียนโปรแกรมพื้นฐานสำหรับ PLC โดยเฉพาะเรื่อง Digital Wiring และคำสั่ง Boolean Logic ซึ่งเป็นพื้นฐานสำคัญที่จะใช้งานประมาณ 80% ในการเขียนโปรแกรม PLC ใครยังไม่มีอุปกรณ์ก็เรียนส่วนคำสั่งได้ด้วยการ Simulate ในโปรแกรม ไม่ต้องมีฮาร์ดแวร์จริง

การเชื่อมต่อ Digital Input

การเตรียมอุปกรณ์

สิ่งที่ต้องเตรียม:

  • PLC 1 ตัว (ในคลิปใช้ FAs-32MT-AC-E)
  • Switch NO (Normally Open) สำหรับ Input — ไม่กดวงจรยังไม่ครบ กดแล้ววงจรจึงครบ
  • หลอดไฟหรืออุปกรณ์ Output แบบดิจิทัลอื่นๆ
  • สายไฟสำหรับการเชื่อมต่อ

ขั้นตอนการเชื่อมต่อ Input

  1. เลือกรูปแบบการเชื่อมต่อ - ต่อได้ทั้ง Sink และ Source แต่คลิปใช้แบบ Sink Input Wiring ซึ่งนิยมในแถบเอเชีย คือเอาไฟ 24V ที่ออกจาก PLC มาเข้า Common ของฝั่ง Input

  2. การจ่ายไฟให้ PLC - รุ่นที่รับไฟ 220V AC ให้จ่ายไฟบ้านเข้า Terminal L และ N ข้างบน แล้ว PLC จะมีไฟ 24V ออกมาที่ Terminal ข้างล่างให้นำไปใช้งาน (ถ้าโหลดค่อนข้างเยอะ ใช้ไฟ 24V จาก Power Supply ภายนอกแทนได้)

  3. การเชื่อมต่อ Input

24V (Terminal ข้างล่าง) → COM0 ฝั่ง Input (ข้างบน)
Switch NO ขาหนึ่ง      → 0V (Terminal ข้างล่าง)
Switch NO อีกขา        → X0

การตั้งค่าและทดสอบ

ต่อสายเสร็จแล้วกดปุ่ม LED X0 อาจยังไม่ติด เพราะ PLC ยังเป็น Factory Setting (สังเกตได้จากไฟ RUN ที่กระพริบอยู่) ต้องเขียนโปรแกรมทับลงไปก่อน จะเป็นโปรแกรมว่างเปล่าก็ได้ CPU จึงเริ่มสแกน Input

  1. เปิด SamSoar2022 กด New Project ตั้งชื่อ (ในคลิปใช้ complete-plc เป็นไฟล์ที่ใช้ตลอดซีรีส์) เลือกตำแหน่งเก็บไฟล์
  2. เลือก PLC Core ให้ตรงกับรุ่นที่ใช้ — ในคลิปคือ FAs_32MT_AC ถ้าใช้รุ่นที่ I/O ต่างกันหรือเป็น MR (Relay) ให้เลือกตามรุ่นนั้น แล้วกด OK
  3. Download โปรแกรมเปล่าลง PLC ผ่านสาย USB-A to USB-C (ด้านหนึ่งเสียบคอมพิวเตอร์ อีกด้านเสียบ PLC)
  4. ไฟ RUN จะเลิกกระพริบ จากนั้น ทดสอบ โดยกด Push Button หาก LED X0 ติดแสดงว่าการต่อสายถูกต้อง

การเชื่อมต่อ Digital Output

ประเภท Output ใน PLC

  • Relay Type: ทิศทางการต่อไฟไม่ค่อยสำคัญ
  • Transistor Type: ทั้งทิศทางและชนิดของโหลดสำคัญ ต้องใช้โหลดไฟกระแสตรงแรงดันต่ำ เช่น หลอดไฟ 24V DC

การเชื่อมต่อ Output (Transistor Type)

ปิดไฟ PLC ก่อนต่อสาย แล้วต่อตามนี้

0V  → COM0 (Common ของ Y0)
24V → หลอดไฟ → Y0

ถ้าใช้ Y ตัวอื่น ต้องต่อ 0V เข้า COM ที่เป็นของ Y ตัวนั้น ไม่อย่างนั้นวงจรจะไม่ครบ และ Y จะออกได้ก็ต่อเมื่อ PLC สั่งเท่านั้น จึงต้องเขียนโปรแกรมหรือสั่งผ่านโปรแกรมก่อนถึงจะทดสอบ Y0 ได้

คำสั่งพื้นฐาน Boolean Logic

ถ้าตัวโปรแกรมเล็กหรือใหญ่เกินไป ปรับซูมได้ที่ปุ่ม + / − มุมขวาล่างของ SamSoar2022 เริ่มเขียนจากช่องซ้ายบนสุด พิมพ์คำสั่ง เว้นวรรค ตามด้วย Address แล้วกด Enter

คำสั่งเบื้องต้น

1. LD (Load) - เปิด Contact

2. OUT - Output Coil

LD + OUT พื้นฐาน
N0
X0 ON → Y0 ON
X0Y0
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

เขียนเสร็จกด Tool → Compile หรือ F4 เพื่อเช็คว่าโปรแกรมมีปัญหาตรงไหน แล้ว Download ลง PLC กดปุ่มแล้วหลอดไฟติด แปลว่าโปรแกรมและการต่อสายใช้ได้

การใช้งานตัวแปร

  • X: Input จริงจาก PLC ใช้เป็น Output (Coil) ไม่ได้
  • Y: Output จริงของ PLC
  • M: Auxiliary Coil (คอยล์ตัวช่วยในหน่วยความจำ) เป็นได้ทั้ง Contact และ Coil ใช้เขียนโปรแกรมที่ซับซ้อนขึ้นโดยไม่ต้องใช้ Output จริง

ทดสอบด้วย Simulate

ถ้าไม่มีอุปกรณ์จริง ให้กดปุ่ม Simulate แล้วกด Start ทางขวาจะมีช่อง Monitor Address ให้พิมพ์ตำแหน่งที่อยากดู เช่น Y0 แล้วสั่ง X0 ให้ ON จะเห็น Y0 ติดตาม เป็นการจำลองเฉยๆ ไม่ได้สั่งของจริง เสร็จแล้วกด Stop — คำสั่งต่อจากนี้ทดสอบด้วยวิธีนี้ได้ทั้งหมด

Logic AND และ OR

คำสั่งชุดถัดไปใช้คอยล์ตัวช่วย M ในการทดลอง

Logic AND (ทั้งสองต้องติด)

ในคลิปพิมพ์ LD M0 แล้วพิมพ์ LD M1 ในช่องถัดไปทางขวา ทั้งสองจะต่อกันแบบอนุกรม (ใน STL คือ AND) แล้วจบด้วย OUT M3 ตัวอย่างในชีวิตจริงคือเครื่องปั๊มเหล็กที่มีปุ่มมือซ้ายและปุ่มมือขวา พนักงานต้องกดทั้งสองปุ่มพร้อมกันเครื่องจึงทำงาน

Logic AND — อนุกรม
N0
M3 ติดเมื่อ M0 และ M1 ติดทั้งคู่
M0M1M3
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

Logic OR (อย่างใดอย่างหนึ่งติด)

ในคลิปต่อยอดจาก Rung เดิม: คลิกช่องในบรรทัดถัดไปใต้ M0 พิมพ์ LD M2 แล้วกด Ctrl ค้างไว้ + ลูกศรขึ้น 1 ครั้ง เพื่อลากเส้นจาก M2 ขึ้นไปขนานกับ M0 แล้วกด F4 Compile

Logic OR — ขนาน
N0
(M0 หรือ M2) และ M1 → M3
M0M2M1M3
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

ผลตอนทดสอบ: M0 กับ M1 ON → M3 ON, M1 ON อย่างเดียว → M3 ไม่ติด, M2 กับ M1 ON → M3 ON

การ Inverse Logic

LDI (Load Inverse)

LDI — Contact NC
N0
M5 ติดเมื่อ M4 ดับ (NC contact)
M4M5
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

LDI จะได้ Contact ที่มีขีด / ตัดกลาง เริ่ม Simulate โดยยังไม่ได้สั่ง M4 เลย M5 ก็ติดแล้ว พอสั่ง M4 ON → M5 ดับ

การใช้งาน: เหมาะสำหรับระบบ Safety เช่นปุ่มหยุดฉุกเฉินสีแดง ตราบใดที่ยังไม่มีใครกด โปรแกรมทำงานได้ปกติ พอกดปุ๊บทุกอย่างต้องหยุด

ใส่ Comment ในโปรแกรม

เพราะต่อจากนี้จะเรียนหลายเรื่อง ในคลิปจึงเขียนคำอธิบายไว้ใน Program comment (คำอธิบายของทั้งโปรแกรม) และ Network comment (เช่น LD, AND, OR, LDI, SET, RST, ALT, ALTP) แต่ละ Network กดปุ่ม − / + เพื่อพับหรือขยายได้ ช่วยให้อ่านโปรแกรมที่ยาวเป็นพันบรรทัดได้ไม่งง

คำสั่งขั้นสูง

SET และ RESET

SET - ตั้งค่า Coil หลายตัวพร้อมกัน

ถ้าอยากให้ M12 ถึง M20 ติดพร้อมกันด้วย OUT ต้องเขียนหลายบรรทัด คำสั่ง SET รับ Address ตัวแรกตามด้วยจำนวนคอยล์ โปรแกรมจะถามว่าเป็น K (เลขฐาน 10) หรือ H (เลขฐาน 16, 0–F) ใช้ K จะสะดวกที่สุด เช่น SET M12 K2 คือ M12 และ M13

SET — ตั้งค่าหลาย Coil
N0
M11 ON → SET M12 และ M13 (K2 = 2 ตัว) เป็น ON
M11SETM12, K2
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

RST - Reset Coil

RST — Reset หลาย Coil
N0
M14 ON → RST M12 และ M13 (K2 = 2 ตัว) เป็น OFF
M14RSTM12, K2
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

ALT (Alternate)

Alternate คือการสลับสถานะของ Output ติดอยู่ก็กลายเป็นดับ ดับอยู่ก็กลายเป็นติด เหมาะกับงานที่มี Input แค่ตัวเดียวแต่อยากกดซ้ำเพื่อสลับสถานะ Output

ALT ธรรมดา

ALT ธรรมดาทำงานทุก Scan Cycle ซึ่งเร็วมาก พอสั่ง M20 ON แล้ว M21 จะสลับรัวจนใช้งานจริงไม่ได้

ALT — สลับสถานะทุก scan (ไม่แนะนำ)
N0
M20 ON → ALT M21 ทุก Execution Cycle
M20ALTM21
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

ALTP (Alternate Pulse)

ทางแก้แรกคือใช้คำสั่งรุ่นที่มี P ห้อยท้าย ทำงานแค่ 1 Pulse: M22 ติด → M23 ติด, M22 ดับ → M23 ยังติดอยู่, M22 ติดอีกครั้ง → M23 ดับ

ALTP — สลับสถานะเมื่อขอบขาขึ้น
N0
M22: OFF→ON → สลับ M23 ครั้งเดียว
M22ALTPM23
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

Edge Detection

อีกทางคือย้าย Pulse ไปไว้ฝั่ง Input: สั่งงานจากต้นสัญญาณด้วย LDP (Rising Contact) หรือปลายสัญญาณด้วย LDF (Falling Contact)

Rising Edge (LDP)

Contact จะมีลูกศรชี้ขึ้น ติดแค่จังหวะที่สัญญาณเปลี่ยนจาก 0 เป็น 1 หลังจากนั้นต้องกลับไป 0 แล้วเป็น 1 ใหม่จึงติดอีก ใช้คู่กับ ALT ธรรมดาก็ไม่ติดดับรัวแล้ว

LDP — Rising Edge
N0
M24: 0→1 เท่านั้น → ALT M25
M24↑ALTM25
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

Falling Edge (LDF)

รอให้สัญญาณเปลี่ยนจาก 1 เป็น 0 ก่อน: สั่ง M26 ON แล้ว M27 ยัง Off อยู่ พอ M26 กลับเป็น Off ปุ๊บ M27 จึงเป็น On

LDF — Falling Edge
N0
M26: 1→0 เท่านั้น → ALT M27
M26↓ALTM27
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

ไม่ต้องจำชื่อคำสั่งก็ได้: คลิกที่ Contact แล้วกดปุ่ม Rising edge pulse (หรือปุ่ม Falling edge ข้างกัน) บนแถบเครื่องมือด้านบน เพื่อเปลี่ยนชนิดของ Contact

การใช้ Edge กับ Logic Block

Edge ไม่จำเป็นต้องอยู่ที่ Contact ตัวเดียว ใช้กับผลลัพธ์ของตรรกะทั้งชุดได้ ในคลิปคลิกหลังตรรกะ M28 กับ M29 แล้วพิมพ์ MEF (หรือกดปุ่มลูกศรขึ้น/ลงบนแถบเครื่องมือ) ทดสอบโดยให้ M28 และ M29 ติด แล้วทำให้ตรรกะข้างหน้าเปลี่ยนจาก 1 เป็น 0 → ALT ทำงาน M30 ติด

MEF — Falling Edge ของผลลัพธ์ Logic
MEF ตรวจจับขอบขาลงของผลลัพธ์ Logic ก่อนหน้า (ไม่ใช่แค่ contact เดียว)
N0
(M28 AND M29) ตกลง → ALT M30
M28M29ALTM30
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

Simulate กับ Monitor

ขั้นตอนทุกคำสั่งในคลิปคือ เขียน → F4 Compile → Simulate → Start → สั่ง Contact ON/OFF แล้วดูผล → Stop

จุดที่มักพลาด

  • กดปุ่มแล้ว LED Input ไม่ติด — PLC อาจยังเป็น Factory Setting (ไฟ RUN กระพริบ) ให้ Download โปรแกรมลงไปก่อน และตรวจว่า 24V เข้า COM0 ฝั่ง Input ส่วนปุ่มต่อระหว่าง 0V กับ X0
  • Output ไม่ทำงาน — ตรวจว่า PLC เป็น Relay หรือ Transistor, รุ่น Transistor ต้องใช้โหลด DC แรงดันต่ำและต่อ 0V เข้า COM ของ Y ตัวนั้น และ Y จะออกได้เมื่อโปรแกรมสั่งเท่านั้น
  • Output กระพริบรัว — ใช้ ALT ธรรมดากับ Contact ปกติ ให้เปลี่ยนเป็น ALTP หรือใช้ LDP/LDF แทน

สรุป

Boolean Logic เป็นพื้นฐานสำคัญของการเขียนโปรแกรม PLC ที่ครอบคลุมประมาณ 80% ของงานทั่วไป คำสั่งที่ต้องเข้าใจ ได้แก่:

  • LD/LDI: การเปิด Contact แบบ NO/NC
  • OUT: การควบคุม Output
  • AND/OR: ต่ออนุกรม / ขนาน (Ctrl + ↑)
  • SET/RST: การตั้งค่าและ Reset หลาย Coil
  • ALT/ALTP: การสลับสถานะ
  • LDP/LDF/MEF: Edge Detection ของ Contact และของผลลัพธ์ตรรกะ

ถ้าอยากเป็นมือโปร PLC ยังต้องเรียนชุดคำสั่งที่มากกว่านี้ ซึ่งจะต่อกันในตอนถัดไป

ตอนถัดไป

4. ตำแหน่งข้อมูลพิเศษใน PLC

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

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

ต่อ Push Button เข้า PLC อย่างไร?
ใช้ Sink Input Wiring ต่อ 24V จาก Terminal ข้างล่างของ PLC เข้า COM0 ฝั่ง Input แล้วต่อ Switch NO ขาหนึ่งเข้า 0V อีกขาเข้า X0 ถ้า PLC ยังเป็น Factory Setting (ไฟ RUN กระพริบ) ต้อง Download โปรแกรมลงไปก่อน (โปรแกรมเปล่าก็ได้) ให้ CPU เริ่มสแกน Input กดปุ่มแล้ว LED X0 ต้องติด
LD, LDI, OUT ต่างกันอย่างไร?
LD เปิด Contact แบบ NO (ติดเมื่อ Input ON), LDI เปิด Contact แบบ NC (ติดเมื่อ Input OFF) เหมาะกับ Emergency Stop และ OUT คือ Coil ที่รับผลลัพธ์ เช่น LD X0 / OUT Y0 ทำให้ Y0 ติดเมื่อ X0 ON
SET กับ OUT ต่างกันอย่างไร?
OUT ติดเฉพาะขณะเงื่อนไขเป็นจริง ส่วน SET จะค้าง ON จนกว่าจะถูก RST และตั้งหลาย Coil ติดกันได้ด้วย K เช่น SET M12 K2 ตั้ง M12 และ M13 พร้อมกัน RST M12 K2 ล้างทั้งสองตัว
ALT กับ ALTP ควรใช้ตัวไหน?
ALTP — สลับสถานะครั้งเดียวเมื่อเงื่อนไขเปลี่ยนจาก OFF เป็น ON เหมาะกับปุ่มกดติด-กดดับ ส่วน ALT สลับสถานะทุก Scan ขณะเงื่อนไข ON ทำให้ Output กระพริบเร็วมาก จึงไม่แนะนำในงานทั่วไป
Simulate กับ Monitor ต่างกันอย่างไร?
Simulate จำลองโปรแกรมในคอมพิวเตอร์โดยไม่เชื่อมฮาร์ดแวร์ ใช้ทดสอบ Logic ก่อน ส่วน Monitor ใช้หลัง Download ลง PLC จริงเพื่อดูสถานะ Input/Output ออนไลน์จากตัว PLC หากกด Simulate ขณะต่อ PLC จริงจะไม่ได้อ่านค่าจากอุปกรณ์

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