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
การเชื่อมต่อ 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
-
เลือกรูปแบบการเชื่อมต่อ - ต่อได้ทั้ง Sink และ Source แต่คลิปใช้แบบ Sink Input Wiring ซึ่งนิยมในแถบเอเชีย คือเอาไฟ 24V ที่ออกจาก PLC มาเข้า Common ของฝั่ง Input
-
การจ่ายไฟให้ PLC - รุ่นที่รับไฟ 220V AC ให้จ่ายไฟบ้านเข้า Terminal L และ N ข้างบน แล้ว PLC จะมีไฟ 24V ออกมาที่ Terminal ข้างล่างให้นำไปใช้งาน (ถ้าโหลดค่อนข้างเยอะ ใช้ไฟ 24V จาก Power Supply ภายนอกแทนได้)
-
การเชื่อมต่อ Input
24V (Terminal ข้างล่าง) → COM0 ฝั่ง Input (ข้างบน)
Switch NO ขาหนึ่ง → 0V (Terminal ข้างล่าง)
Switch NO อีกขา → X0
การตั้งค่าและทดสอบ
ต่อสายเสร็จแล้วกดปุ่ม LED X0 อาจยังไม่ติด เพราะ PLC ยังเป็น Factory Setting (สังเกตได้จากไฟ RUN ที่กระพริบอยู่) ต้องเขียนโปรแกรมทับลงไปก่อน จะเป็นโปรแกรมว่างเปล่าก็ได้ CPU จึงเริ่มสแกน Input
- เปิด SamSoar2022 กด New Project ตั้งชื่อ (ในคลิปใช้
complete-plcเป็นไฟล์ที่ใช้ตลอดซีรีส์) เลือกตำแหน่งเก็บไฟล์ - เลือก PLC Core ให้ตรงกับรุ่นที่ใช้ — ในคลิปคือ
FAs_32MT_ACถ้าใช้รุ่นที่ I/O ต่างกันหรือเป็น MR (Relay) ให้เลือกตามรุ่นนั้น แล้วกด OK - Download โปรแกรมเปล่าลง PLC ผ่านสาย USB-A to USB-C (ด้านหนึ่งเสียบคอมพิวเตอร์ อีกด้านเสียบ PLC)
- ไฟ 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
เขียนเสร็จกด 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 OR (อย่างใดอย่างหนึ่งติด)
ในคลิปต่อยอดจาก Rung เดิม: คลิกช่องในบรรทัดถัดไปใต้ M0 พิมพ์ LD M2 แล้วกด Ctrl ค้างไว้ + ลูกศรขึ้น 1 ครั้ง เพื่อลากเส้นจาก M2 ขึ้นไปขนานกับ M0 แล้วกด F4 Compile
ผลตอนทดสอบ: M0 กับ M1 ON → M3 ON, M1 ON อย่างเดียว → M3 ไม่ติด, M2 กับ M1 ON → M3 ON
การ Inverse Logic
LDI (Load Inverse)
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
RST - Reset Coil
ALT (Alternate)
Alternate คือการสลับสถานะของ Output ติดอยู่ก็กลายเป็นดับ ดับอยู่ก็กลายเป็นติด เหมาะกับงานที่มี Input แค่ตัวเดียวแต่อยากกดซ้ำเพื่อสลับสถานะ Output
ALT ธรรมดา
ALT ธรรมดาทำงานทุก Scan Cycle ซึ่งเร็วมาก พอสั่ง M20 ON แล้ว M21 จะสลับรัวจนใช้งานจริงไม่ได้
ALTP (Alternate Pulse)
ทางแก้แรกคือใช้คำสั่งรุ่นที่มี P ห้อยท้าย ทำงานแค่ 1 Pulse: M22 ติด → M23 ติด, M22 ดับ → M23 ยังติดอยู่, M22 ติดอีกครั้ง → M23 ดับ
Edge Detection
อีกทางคือย้าย Pulse ไปไว้ฝั่ง Input: สั่งงานจากต้นสัญญาณด้วย LDP (Rising Contact) หรือปลายสัญญาณด้วย LDF (Falling Contact)
Rising Edge (LDP)
Contact จะมีลูกศรชี้ขึ้น ติดแค่จังหวะที่สัญญาณเปลี่ยนจาก 0 เป็น 1 หลังจากนั้นต้องกลับไป 0 แล้วเป็น 1 ใหม่จึงติดอีก ใช้คู่กับ ALT ธรรมดาก็ไม่ติดดับรัวแล้ว
Falling Edge (LDF)
รอให้สัญญาณเปลี่ยนจาก 1 เป็น 0 ก่อน: สั่ง M26 ON แล้ว M27 ยัง Off อยู่ พอ M26 กลับเป็น Off ปุ๊บ M27 จึงเป็น On
ไม่ต้องจำชื่อคำสั่งก็ได้: คลิกที่ Contact แล้วกดปุ่ม Rising edge pulse (หรือปุ่ม Falling edge ข้างกัน) บนแถบเครื่องมือด้านบน เพื่อเปลี่ยนชนิดของ Contact
การใช้ Edge กับ Logic Block
Edge ไม่จำเป็นต้องอยู่ที่ Contact ตัวเดียว ใช้กับผลลัพธ์ของตรรกะทั้งชุดได้ ในคลิปคลิกหลังตรรกะ M28 กับ M29 แล้วพิมพ์ MEF (หรือกดปุ่มลูกศรขึ้น/ลงบนแถบเครื่องมือ) ทดสอบโดยให้ M28 และ M29 ติด แล้วทำให้ตรรกะข้างหน้าเปลี่ยนจาก 1 เป็น 0 → ALT ทำงาน M30 ติด
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
คำถามที่พบบ่อย
- ต่อ 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 จริงจะไม่ได้อ่านค่าจากอุปกรณ์
ควรอ่านก่อน:
มีคำถาม? ติดต่อทีมงาน
