PLC คืออะไรทำไมต้องใช้ PLC มาเรียนรู้การใช้ PLC เบื้องต้นกันPLC ย่อมาจากคำว่า programmable logic controller หรือ programmable controller คือ คอมพิวเตอร์แบบดิจิตอลใช้สำหรับควบคุมระบบอัตโนมัติภายในโรงงานอุตสาหกรรมที่มีระบบแเมคเนติคเป็นตัวทำงาน เช่น ควบคุมเครื่องจักรบนระบบการประกอบอุปกรณ์ชิ้นส่วน สวนสนุก หรือการควบคุมแสงต่าง ๆ PLC ถูกใช้ในโรงงานต่าง ๆ และในเครื่องจักรเป็นจำนวนมากPLC ถูกนำมาแทนที่รีเลย์เนื่องจากมีราคาสูงหากมีมากกว่า 10 ตัวขึ้นไปและความมีเสถียรภาพน้อยกว่าเนื่องจากมีหน้าสัมผัสซึ่งจะเคลื่อนที่ขึ้นลงของคอนแท็กต่าง ๆ ตามการสั่งงาน ส่วน PLC นั้นจะไม่มีปัญหาเรื่องหน้าสัมผัสเพราะทำงานด้วยระบบโซลิดสเตท และขนาดของ PLC เล็กลงเรื่อย ๆ ตามเทคโนโลยีการผลิตในปัจจุบัน มีความสามารถเพิ่มขึ้นเช่น
PLC ประกอบด้วยอุปกรณ์ดังภาพต่อไปนี้ Show
1.CPU หรือตัวประมวลผลทำหน้าที่ประมวลผลโปรแกรม ภายในประกอบไปด้วยวงจรลอจิคมีไมโครโปรเซสเซอร์ในการแทนตัวรีเลย์ วงจรนับ ตัวนับเวลา และซีเควนเซอร์ ที่เขียนด้วยภาษาตามมาตรฐานต่าง ๆ เช่น- Relay Ladder หรือ RLL (Relay Ladder Logic) - Sequential Function chart - Functional block diagram - Structured Text - Instruction List - Continuous function chart โดยจะรับข้อมูลมาจากอุปกรณ์อินพุตต่าง ๆ แล้วทำการประมวลผลไปที่เอาท์พุตโดยใช้โปรแกรมจากหน่วยความจำที่ส่งมาจากผู้เขียนโปรแกรม 2.MEMORY UNIT หรือหน่วยความจำทำหน้าที่ในการเก็บรวบรวมข้อมูลที่ใช้สำหรับการสั่งการโดยมีทั้ง ROM และ RAM โดยทั่วไปRAM (แรม )จะต้องใช้ไฟเลี้ยงหรือแบตเตอรี่เล็กสำหรับเก็บข้อมูลหากไฟดับไปข้อมูลจะสูญหายไป ROM (รอม) PLC ในปัจจุบันจะใช้ EEPROM ในการเก็บข้อมูลข้อดีคือเมื่อไฟดับข้อมูลจะไม่สูญหายไป 3.หน่วยอินพุต/เอาต์พุต (Input/Output Unit)หน่วยอินพุตจะทำหน้าที่รับสัญญาณจากแหล่งต่าง ๆ เช่น- Switch - Limit Switch - Timer - Photo-Electric - Encoder หน่วยเอาท์พุตทำหน้าส่งข้อมูลออกไปยังอุปกรณ์ภายนอกต่าง ๆ เช่น - Relay - Servo Motor - Solenoid - Heater - Led 4.อุปกรณ์สำหรับโปรแกรม (Programmable Device)ทำหน้าที่ป้อนข้อมูลให้กับตัว PLC เช่น- HANDHELD PROGRAM - COMPUTER - อื่น ๆ เป็นระบบควบคุมแบบหนึ่ง ซึ่งสัญญาณทางด้านเอ้าท์พุทมีผลโดยต้องการควบคุม ดังนั้นการควบคุมแบบ CLOSED LOOP ก็คือการควบคุมแบบป้อนกลับ (FEEDBACK CONTROL) สัญญาณป้อนกลับนี้อาจจะเป็นสัญญาณเอ้าท์พุทโดยตรง หรือสัญญาณที่เป็นฟังก์ชั่นของสัญญาณเอ้าท์พุทหรือค่าอนุพันธ์ของสัญญาณเอ้าท์พุทก็ได้ ระบบการควบคุมแบบ CLOSED LOOP นั้นสามารถพบเห็นได้ทั่วไปทั้งในงานอุสาหกรรมหรือตามบ้านเรือน ตัวอย่างการควบคุมแบบ CLOSE LOOP ได้แก่ การควบคุมอุณหภูมิ การควบคุมแรงดัน การควบคุมอัตราการไหล ระบบการควบคุมกระบวนการตู้เย็นที่ใช้ตามบ้านเรือน ระบบการควบคุมแบบ OPEN LOOP สำหรับระบบการควบคุมแบบ OPEN LOOP เป็นระบบควบคุม ที่เอ้าท์พุทของระบบจะไม่มีผลต่อการควบคุมเลย นั้นคือในกรณีของระบบการควบคุมแบบ OPEN LOOP ซึ่งเอ้าท์พุทของระบบควบคุมของระบบจะไม่ถูกทำการวัดหรือป้อนกลับเพื่อที่จะนำมาเปรียบเทียบกับอินพุท การควบคุมการเปิดปิดไฟ สัญญาณไฟจราจรการควบคุมสายพานลำเลียง ฯลฯ สำหรับการควบคุมแบบ OPEN LOOP นั้นเอ้าท์พุทไม่ได้นำมาเปรียบเทียบกับอินพุท ดังนั้นความเที่ยงตรงของระบบจะขึ้นอยู่กับการปรับเทียบ ในทางปฏิบัติแล้วเราสามารถใช้การควบคุมแบบ OPEN LOOP ได้ถ้าเราทราบถึงความสัมพันธุ์ระหว่างอินพุทและเอ้าท์พุทระบบ และระบบควบคุมที่ทำตามเวลาที่กำหนดไว้ จะเป็นการควบคุมแบบ OPEN LOOP การดูแบบวงจรรีเลย์ สำหรับแบบในงานควบคุมเครื่องกลไฟฟ้าเพราะเราจะใช้พื้นฐานตรงนี้มาเป็นตัวอย่างในการออกแบบและการเขียนโปรแกรม PLC แบบสำหรับงานควบคุมเครื่องกลไฟฟ้าแบ่งออกเป็น 4 แบบ คือ 1. แบบงานจริงหรือแบบสมบูรณ์(Working diagram or wiring diagram) 2.แบบแสดงการทำงาน(Schematic diagram) 3.แบบวงจรสายเดียว(one line diagram) 4.แบบวงจรประกอบการติดตั้ง(Constructional wiring diagram) แบบงานจริงหรือแบบสมบูรณ์(Working diagram or wiring diagram) แบบวงจรชนิดนี้จะเขียนคล้ายลักษณะงานจริง คืออุปกรณ์ใดๆ จะเขียนเป็นชิ้นเดียว ไม่แยกออกจากกัน และสายต่างๆ จะต่อกันที่จุดเข้าสาย ของอุปกรณ์เท่านั้น ซึ่งจะเหมือนกับลักษณะงานจริงๆ แบบแสดงการทำงาน(Schematic diagram) แบบชนิดนี้แบ่งตามลักษณะตามแบบวงจรได้ 2 แบบวงจรด้วยกัน แบบวงจรควบคุม แบบวงจรควบคุมคือแบบที่ได้จับเอาวงจรจริงยืดออกเป็นเส้นตรง สายแยกต่างๆจะเขียนในแนวดิ่งและแนวระนาบเท่านั้น สำหรับส่วนประกอบของอุปกรณ์ก็นำมาเขียนเฉพาะในส่วนที่ใช้ในวงจรควบคุมเท่านั้น แบบวงจรกำลัง สำหรับแบบวงจรชนิดนี้เป็นการนำเอามาเฉพาะส่วนของวงจรกำลังเท่านั้นในส่วนของคอนแทคโอเวอร์โหลดก็จะเขียนเฉพาะในส่วนของวงจรกำลังเท่านั้นในส่วนของวงจรควบคุมที่ไม่เกี่ยวข้องก็จะไม่นำมา แบบวงจรประกอบการติดตั้ง(Constructional wiring diagram) ในระบบควบคุมที่เราทราบกันดีนั้นจะประกอบด้วยแผงควบคุม ตู้สวิทซ์บอร์ดและโหลดที่ต้องการควบคุมซึ่งมักจะแยกกันอยู่ในที่ ต่างกันออกไป ในส่วนต่างๆเหล่านี้จะเขียนรายละเอียดด้วยวงจรงานจริง วงจรควบคุมมอเตอร์เบื้องต้น สำหรับตอนนี้ก็จะกล่าวถึงในส่วนของวงจรควบคุมมอเตอร์เบี้ยงต้นเท่านั้น เพราะจะเป็นพื้นฐานสำคัญสำหรับการออกแบบการควบคุมในระดับสูงต่อไป วงจรปิด-เปิด (ON-OFF Circuit) จากรูปสภาวะเปิดวงจร สภาวะปกติคอนแทคเตอร์ยังไม่ทำงานเนื่องจากกระแสไฟฟ้ายังไม่ครยวงจรแต่เมื่อมีการกดสวิทซ์ Selector Switch กระแสไฟฟ้าก็จะไหลผ่านคอนแทคเตอร์ครบวงจรคอนแทคแทคเตอร์ก็จะทำงานดังรูปที่สภาวะปิดวงจร วงจรทำงานชั่วขณะ(Instantaneous Circuit) สำหรับการทำงานในส่วนของวงจรนี้ลักษณะการทำงานก็จะคล้ายในส่วนของวงจรแสดงแบบ ปิด-เปิด(ON-OFF Circuit) จะต่างกันที่ลักษณะการทำงานชั่วขณะสวิทซ์ที่ใช้ในการควบคุมเป็นสวิทซ์ปุ่มกดหรือ Push button Switch การทำงานของคอนแทคเตอร์จะขึ้นอยู่กับการกดหรือปล่อยสวิทซ์ วงจรรักษาสภาพ (Self Holding) จากวงจรการทำงานชั่วขณะนั้นถ้าต้องการให้คอนแทคเตอร์ทำงานค้างก็จะต้องกดสวิทซ์ค้างตลอดเวลาซึ่งเป็นไปไม่ได้ที่เราจะกดสวิทซ์นานๆเป็นชั่วโมง ดังนั้นจึงได้มีการออกแบบวงจรให้มีการทำงานให้คอนแทคเตอร์มีการทำงานค้างโดยไม่ต้องกดสวิทซ์ค้างซึ่งจะใช้คอนแทคช่วยแบบกดปกติเปิด(NC)ของรีเลย์หรือคอนแทคเตอร์นำมาต่อขนานกับสวิทซ์ S2 ดังรูป วงจรป้องกันการทำงานพร้อมกัน(Interlock Circuit) จากวงจรเราจะสังเกตเห็นว่าเราจะใช้สวิทซ์แบบปิดสองตัวต่อป้องกันการทำงานของคอนแทคเตอร์ที่พร้อมกันโดยให้คอนแทคทั้งสองชุดจะถูกต่อใช้งาน สำหรับรูปด้านขวาแสดงให้เห็นว่าเมื่อมีการกดสวิทซ์S1คอนแทคเตอร์K2ไม่สามารถทำงานได้เนื่องจากถูกตัดด้วยคอนแทคเตอร์ของสวิทซ์S1และคอนแทคช่วยK1 วงจรหน่วงเวลา(Time Delay Circuit) จากวงจรจะสังเกตเห็นว่าในการทำงานของวงจรมีอุปกรณ์หน่วงเวลาเมื่อทำการกดสวิทซ์S1คอนแทคเตอร์K1ยังทำงานแต่อุปกรณ์หน่วงเวลาที่เรียกว่าไทม์เมอร์รีเลย์K2Tทำงานและเริ่มหน่วงเวลาจนถึงเวลาที่กำหนดK2Tจะสั่งให้คอนแทคเตอร์K1เริ่มทำงานดังรูปด้านขวา วงจรการควบคุมมอเตอร์ในแบบต่างๆ วงจรการสตาร์ทมอเตอร์โดยตรง จากวงจรการสตาร์ทมอเตอร์โดยตรงนั้นเป็นพื้นฐานในการควบคุมมอเตอร์โดยการใช้วงจรรีเลย์มาควบคุม ซึ่งหลักการทำงาน เมื่อกด S2 Contactor K1 ทำงานหน้าสัมผัสช่วย K1 ทำหน้าที่ Self Holding ให้ Contactor k1 ทำงานค้างตลอด มอเตอร์เริ่มการทำงานหลอดสภาวะการทำงานH1ติดเมื่อต้องการหยุดการทำงานของมอเตอร์ให้ทำการกด S2 เพื่อหยุดการทำงานของมอเตอร์ วงจรกลับทางหมุนมอเตอร์แบบ 3 เฟส ในการกลับทางหมุนของมอเตอร์ 3 เฟส โดยใช้วงจรรีเลย์ในการควบคุม การควบคุมมอเตอร์ทำงานตามลำดับ จากวงจรกำลังและวงจรควบคุมเป็นวงจรเริ่มการทำงานของมอเตอร์แบบ วงจรการสตาร์ทมอเตอร์แบบสตาร์ - เดลต้า (Y/D) ในการเริ่มการทำงานของมอเตอร์ 3 เฟส ที่มีขนาดใหญ่นั้นในการทำงานต้องมีการสตาร์ทแบบสตาร์/เดลต้าซึ่งจากวงจรควบคุมจะมี Contactor K1 และ k2 เริ่มการทำงานมอเตอร์เริ่มการทำงานเป็นสตาร์ และเมื่อกด S3 Contactor K2 หยุดทำงานK3 เริ่มทำงานมอเตอร์จะมีการทำงานเป็นเดลต้า ถ้าต้องการหยุดการทำงานกด S1 ในการควบคุมแบบวงจรรีเลย์นั้นจัดว่าเป็นพื้นฐานที่สำคัญในการออกแบบ โครงสร้างพื้นฐาน PLC ประกอบด้วยส่วนหลัก ดังนี้ หน่วยอินพุท (Input Unit) จะทำหน้าที่รับอุปกรณ์อินพุทเข้ามาและส่งสัญญาณต่อไปยังหน่วยประมวลผล (CPU) เพือนำไปประมวลผลต่อไปโดยสัญญาณที่รับเข้ามาจะเป็นในรูปแบบของสัญญาณ ON/OFF หรือสัญญาณ Analog หน่วยประมวลผล (CPU) จะทำหน้าที่ควบคุมและจัดการระบบการทำงานทั้งหมดภายในระบบ PLC เช่นการสั่งให้ระบบ PLC ทำงานตามคำสั่งที่ถูกโปรแกรรมไว้ในหน่วยความจำ CPU หน่วยความจำและภาคอินพุทและเอาท์พุทเป็นต้น หน่วยความจำ (Memory) จะทำหน้าที่เก็บรักษาโปรแกรรมและข้อมูลที่ใช้ในการทำงานโดยขนาดของหน่วยความจำถูกแบ่งออกเป็นบิดข้อมูล (Data bit) ภายในหน่วยความจำ1บิตก็จะมีค่าสภาวะทางลอจิก0หรือ1แตกต่างกันแล้วแต่คำสั่ง ซึ่ง PL Cประกอบด้วยหน่วยความจำ 2 ชนิด ROM และ RAM ROM ทำหน้าที่โปรแกรรมสำหรับใช้ในการปฏิบัติงานของ PLC ตามโปรแกรรมของผู้ใช้ หน่วยความจำ ROM ยังสามารถแบ่งได้เป็น EPROM ซึ่งต้องใช้อุปกรณ์พิเศษในการเขียนและลบโปรแกรรม เหมาะสำหรับงานที่ไม่ต้องการเปลี่ยนแปลงโปรแกรรม RAM ทำหน้าที่เก็บโปรแกรรมของผู้ใช้ และข้อมูลในการปฏิบัติงานของ PLC หน่วยความจำประเภทนี้จะต้องมีแบตเตอรี่เล็กๆ เพื่อใช้เป็นไฟเลี้ยงข้อมูลเมื่อเกิดไฟดับการอ่านและเขียนข้อมูลทำได้ง่ายมาก เพราะฉนั้นจึงเหมาะกับงานในระยะทดลองเครื่องที่มีการเปลี่ยนแปลงแก้ไขอยู่บ่อยๆ E PROM เป็นรูปแบบของหน่วยความจำที่ได้รับการพัฒนาให้มีความสามารถที่ดีขึ้น คือ สามารถเขียน และอ่านข้อมูลได้โดยใช้สัญญาณไฟฟ้าเท่านั้น ในขณะเดียวกันก็สามารถเก็บข้อมูลครั้งล่าสุดได้โดยไม่จำเป็นต้องใช้ไฟเลี้ยง จึงเหมาะสำหรับเป็นหน่วยความจำสำหรับเก็บโปรแกรรมการควบคุมของ PLC หน่วยเอาท์พุท (Output Unit) ทำหน้าที่รับข้อมูลจาก CPU และส่งสัญญาณไปควบคุมการทำงานของอุปกรณ์ที่ต่อร่วมภายนอก อาทิ เช่น ควบคุมการทำงานของหลอดไฟ รีเลย์ คอนแทคเตอร์ โซลิตเสตทรีเลย์ มอเตอร์ และโซลินอยล์ เป็นต้น แหล่งจ่ายไฟ (Power Supply) ทำหน้าที่จ่ายพลังงานและรักษาระดับแรงดันไฟตรงให้กับ CPU หน่วยความจำ และหน่วยอินพุท/เอาท์พุท อุปกรณ์อินพุท (Input Devices) ในปัจจุบัน PLC ได้มีการพัฒนาให้มีความสามารถและประสิทธิภาพสูงขึ้นมากซึ่งสามารถรับสัญญาณได้ทั้งสัญญาณในรูปแบบ ON/OFF และสัญญาณ Analog ที่เป็นสัญญาณมาตรฐานต่างๆ เช่น 4-20mA 1-5V หรือ 0-10V ซึ่งอุปกรณ์อินพุทที่ให้สัญญาณได้แก่ Switch Proximity,Switch Photo Sensor,Encoder Pressure Sensor,Thumbwheel Switch และ Temperature Sensor เป็นต้น อุปกรณ์เอาท์ (Output Device) สำหรับในส่วนของอุปกรณ์เอาท์พุทเป็นอุปกรณ์ทีต้องทำการขยายสัญญาณก่อนที่จะต่อใช้งานกับอุปกรณ์ในการทำงานหรือโหลดที่ต้องใช้กำลังไฟฟ้าสูงๆ เช่น มอเตอร์ ฮีตเตอร์ กระบอกสูบในระบบนิวเมติกส์ เนื่องจากในส่วนเอาท์พุทของ PLC ไม่ว่าจะแบบรีเลย์ หรือทรานซิลเตอร์นั้นมีความสามารถที่จะจ่ายหรือทนกระแสไฟฟ้าได้น้อย ดังนั้นจึงต้องมีการนำอุปกรณ์เอาท์พุทมาต่อใช้งานร่วมด้วย ได้แก่ รีเลย์กำลังคอนแทคเตอร์ โซลินอยล์วาล์ว หลอดไฟ และคอนโทรลวาล์ว เป็นต้น ระบบข้อมูลใน PLC และคอมพิวเตอร์ ข้อมูลแบบ bit และมีความเกี่ยวเนื่องกับแบบ byte และ word อย่างไรก็จะขออธิบายความหมายในระบบข้อมูลต่างๆในส่วนนี้ในการเรียกขานหรือเปรียบเทียบข้อมูลแบบต่างๆมีดังนี้ ข้อมูล 1 digit มีค่าเท่ากับ 4 bit 1 byte มีค่าเท่ากับ 8 bit 1 word มีค่าเท่ากับ 16 bit 1 word มีค่าเท่ากับ 1 channal หน่วยดิจิตอล Input/Output ในส่วนของ หน่วยดิจิตอล Input/Output ซึ่งจะเป็นการจำแนกให้ชัดเจนในส่วน Digital I/O ของ PLC ที่มีใช้งานกันในปัจจุบัน ประเภทอินพุทของ PLC ในส่วนของ ON/OFF Input หรือที่เราเรียกว่า Digital Input นั่นเอง อินพุทประเภทนี้จะมีสภาวะการทำงานเพียง 2 สภาวะการทำงานเท่านั้นคือ "เปิด"(ON)หรือ"1"และ"ปิด"(OFF)หรือ"0"นอกจากนี้ยังแบ่งย่อยได้อีกตามแรงดันการใช้คือ AC Input และ DC Input Analog Input สำหรับอนาล็อกอินพุทก็คืออินพุทที่สามารถรับแบบอนาล็อกที่มีลักษณะเป็นสัญญาณต่อเนื่อง ซึ่งในปัจจุบันได้มีการกำหนดสัญญาณมาตรฐานไว้หลายชนิดและสัญญาณมาตรฐานที่ได้รับความนิยมได้แก่ สัญญาณกระแส มาตรฐาน 4-20 mA และสัญญาณแรงดันมาตรฐาน 1-5V,0-10Vซึ่งในรายละเอียดและหลักการเกี่ยวการรับสัญญาณอนาล็อก อินพุทพิเศษเฉพาะงาน อินพุทแบบนี้ออกแบบมาเป็นพิเศษเพื่อเพิ่มความสามารถในการทำงานของ PLC ให้สูงขึ้นได้แก่ พัลซ์อินพุท (Pulse Input) จ่ายสัญญาณทำให้PLC มีความสามารถในการรับสัญญาณอินพุทที่มีความถี่สูงๆได้อุปกรณ์ที่จะใช้กับอินพุทแบบพิเศษนี้ได้แก่ Encoder ประเภทของเอาท์พุทของ PLC Digital Output สำหรับแบบ ON/OFF Output ก็จะมีลักษณะการทำงานเป็นอย่างเดียวกับ Input นั่นก็คือ มีลักษณะการทำงานเพียง 2 สภาวะเท่านั้นคือ "เปิด"(ON)และ"ปิด"(OFF) ซึ่งจากนี้ยังแบ่งย่อยออกไปอีกตามชนิดของอุปกรณ์ที่ทำหน้าที่ในการON/OFF Relay Output เอาท์พุทประเภทนี้ค่อนข้างได้รับความนิยมสูง เนื่องจากการใช้ง่ายและสามารถควบคุมโหลดทั้ง DC และ AC ได้และยังเป็นเอาท์พุทที่สามารถจ่ายกระแสโหลดได้สูง สุดเมื่อเทียบกับเอาท์พุทประเภทอื่น Transister Output ในส่วนเอาท์พุทแบบนี้ใช้อุปกรณ์สารกึ่งตัวนำที่มีชือว่า Triac Output สำหรับ Triac Output จะเป็นเอ้าท์พุทที่ใช้สารกึ่งตัวนำที่เรียกว่าไทรแอดซึ่งเป็นอุปกรณ์ที่มีหน้าที่ในการ ON/OFF ซึ่งเอ้าท์พุทประเภทนี้เหมาะสม Analog Output อนาล็อกเอาท์พุทจะเป็นลักษณะการให้สัญญาณออกมาในรูปแบบของสัญญาณต่อเนื่องที่เป็นสัญญาณมาตรฐานได้แก่สัญญาณด้านกระแส 4-20mA เอ้าท์พุทพิเศษเฉพาะงาน เอ้าท์พุทพิเศษเฉพาะงานก็จะเป็นเอาท์พุทที่ออกแบบ ลักษณะการเขียนโปรแกรรม 3 แบบดังนี้ การเขียนโปรแกรรมแบบ Ladder Logic Editor (LAD Editor) ในการเขียนหรือการสร้างโปรแกรรมแบบ LAD Editor นักเขียนโปรแกรมทุกๆ คคนคงจะรู้จักกันดีก็จะเหมือนกับการสร้างไดอะแกรมการเดินสายไฟเป็นแบบที่ การควบคุมมอเตอร์ทำงานตามลำดับ0 การควบคุมมอเตอร์ทำงานตามลำดับ1 การควบคุมมอเตอร์ทำงานตามลำดับ2 การควบคุมมอเตอร์ทำงานตามลำดับ3 การควบคุมมอเตอร์ทำงานตามลำดับ4 การควบคุมมอเตอร์ทำงานตามลำดับ5 การควบคุมมอเตอร์ทำงานตามลำดับ6 การควบคุมมอเตอร์ทำงานตามลำดับ7 การควบคุมมอเตอร์ทำงานตามลำดับ8 การควบคุมมอเตอร์ทำงานตามลำดับ9 0 1 2 3 4 5 6 7 8 9 จากวงจรกำลังและวงจรควบคุมเป็นวงจรเริ่มการทำงานของมอเตอร์แบบ0 จากวงจรกำลังและวงจรควบคุมเป็นวงจรเริ่มการทำงานของมอเตอร์แบบ1 จากวงจรกำลังและวงจรควบคุมเป็นวงจรเริ่มการทำงานของมอเตอร์แบบ2 จากวงจรกำลังและวงจรควบคุมเป็นวงจรเริ่มการทำงานของมอเตอร์แบบ3 จากวงจรกำลังและวงจรควบคุมเป็นวงจรเริ่มการทำงานของมอเตอร์แบบ4 จากวงจรกำลังและวงจรควบคุมเป็นวงจรเริ่มการทำงานของมอเตอร์แบบ5 จากวงจรกำลังและวงจรควบคุมเป็นวงจรเริ่มการทำงานของมอเตอร์แบบ6 จากวงจรกำลังและวงจรควบคุมเป็นวงจรเริ่มการทำงานของมอเตอร์แบบ7 จากวงจรกำลังและวงจรควบคุมเป็นวงจรเริ่มการทำงานของมอเตอร์แบบ8 จากวงจรกำลังและวงจรควบคุมเป็นวงจรเริ่มการทำงานของมอเตอร์แบบ9 วงจรการสตาร์ทมอเตอร์แบบสตาร์ - เดลต้า (Y/D)0 วงจรการสตาร์ทมอเตอร์แบบสตาร์ - เดลต้า (Y/D)1 วงจรการสตาร์ทมอเตอร์แบบสตาร์ - เดลต้า (Y/D)2 วงจรการสตาร์ทมอเตอร์แบบสตาร์ - เดลต้า (Y/D)3 วงจรการสตาร์ทมอเตอร์แบบสตาร์ - เดลต้า (Y/D)4 วงจรการสตาร์ทมอเตอร์แบบสตาร์ - เดลต้า (Y/D)5 วงจรการสตาร์ทมอเตอร์แบบสตาร์ - เดลต้า (Y/D)6 วงจรการสตาร์ทมอเตอร์แบบสตาร์ - เดลต้า (Y/D)7 วงจรการสตาร์ทมอเตอร์แบบสตาร์ - เดลต้า (Y/D)8 วงจรการสตาร์ทมอเตอร์แบบสตาร์ - เดลต้า (Y/D)9 0 1 2 3 4 5 6 7 8 9 การเขียนโปรแกรรมแบบ Ladder Logic Editor (LAD Editor)0 การเขียนโปรแกรรมแบบ Ladder Logic Editor (LAD Editor)1 การเขียนโปรแกรรมแบบ Ladder Logic Editor (LAD Editor)2 การเขียนโปรแกรรมแบบ Ladder Logic Editor (LAD Editor)3 การเขียนโปรแกรรมแบบ Ladder Logic Editor (LAD Editor)4 การเขียนโปรแกรรมแบบ Ladder Logic Editor (LAD Editor)5 การเขียนโปรแกรรมแบบ Ladder Logic Editor (LAD Editor)6 การเขียนโปรแกรรมแบบ Ladder Logic Editor (LAD Editor)7 การเขียนโปรแกรรมแบบ Ladder Logic Editor (LAD Editor)8 การเขียนโปรแกรรมแบบ Ladder Logic Editor (LAD Editor)9 0 1 2 3 4 5 6 7 8 9 ในการเขียนหรือการสร้างโปรแกรรมแบบ LAD Editor นักเขียนโปรแกรมทุกๆ0 ในการเขียนหรือการสร้างโปรแกรรมแบบ LAD Editor นักเขียนโปรแกรมทุกๆ1 ในการเขียนหรือการสร้างโปรแกรรมแบบ LAD Editor นักเขียนโปรแกรมทุกๆ2 ในการเขียนหรือการสร้างโปรแกรรมแบบ LAD Editor นักเขียนโปรแกรมทุกๆ3 ในการเขียนหรือการสร้างโปรแกรรมแบบ LAD Editor นักเขียนโปรแกรมทุกๆ4 ในการเขียนหรือการสร้างโปรแกรรมแบบ LAD Editor นักเขียนโปรแกรมทุกๆ5 ในการเขียนหรือการสร้างโปรแกรรมแบบ LAD Editor นักเขียนโปรแกรมทุกๆ6 ในการเขียนหรือการสร้างโปรแกรรมแบบ LAD Editor นักเขียนโปรแกรมทุกๆ7 ในการเขียนหรือการสร้างโปรแกรรมแบบ LAD Editor นักเขียนโปรแกรมทุกๆ8 ในการเขียนหรือการสร้างโปรแกรรมแบบ LAD Editor นักเขียนโปรแกรมทุกๆ9 คคนคงจะรู้จักกันดีก็จะเหมือนกับการสร้างไดอะแกรมการเดินสายไฟเป็นแบบที่0 คคนคงจะรู้จักกันดีก็จะเหมือนกับการสร้างไดอะแกรมการเดินสายไฟเป็นแบบที่1 คคนคงจะรู้จักกันดีก็จะเหมือนกับการสร้างไดอะแกรมการเดินสายไฟเป็นแบบที่2 คคนคงจะรู้จักกันดีก็จะเหมือนกับการสร้างไดอะแกรมการเดินสายไฟเป็นแบบที่3 คคนคงจะรู้จักกันดีก็จะเหมือนกับการสร้างไดอะแกรมการเดินสายไฟเป็นแบบที่4 คคนคงจะรู้จักกันดีก็จะเหมือนกับการสร้างไดอะแกรมการเดินสายไฟเป็นแบบที่5 คคนคงจะรู้จักกันดีก็จะเหมือนกับการสร้างไดอะแกรมการเดินสายไฟเป็นแบบที่6 คคนคงจะรู้จักกันดีก็จะเหมือนกับการสร้างไดอะแกรมการเดินสายไฟเป็นแบบที่7 คคนคงจะรู้จักกันดีก็จะเหมือนกับการสร้างไดอะแกรมการเดินสายไฟเป็นแบบที่8 คคนคงจะรู้จักกันดีก็จะเหมือนกับการสร้างไดอะแกรมการเดินสายไฟเป็นแบบที่9 การควบคุมมอเตอร์ทำงานตามลำดับ00 การควบคุมมอเตอร์ทำงานตามลำดับ01 การควบคุมมอเตอร์ทำงานตามลำดับ02 การควบคุมมอเตอร์ทำงานตามลำดับ03 การควบคุมมอเตอร์ทำงานตามลำดับ04 การควบคุมมอเตอร์ทำงานตามลำดับ05 การควบคุมมอเตอร์ทำงานตามลำดับ06 การควบคุมมอเตอร์ทำงานตามลำดับ07 การควบคุมมอเตอร์ทำงานตามลำดับ08 การควบคุมมอเตอร์ทำงานตามลำดับ09 การควบคุมมอเตอร์ทำงานตามลำดับ10 การควบคุมมอเตอร์ทำงานตามลำดับ11 การควบคุมมอเตอร์ทำงานตามลำดับ12 การควบคุมมอเตอร์ทำงานตามลำดับ13 การใช้งานคำสั่ง OR and ORI หลายๆหน้าสัมผัส จากรูปโปรแกรมจะมีขั้นตอนการทำงานโดนคอยล์ Y001 จะ ON ได้ต่อเมื่อหน้าสัมผัสอินพุท X001 หรือ X003หรือ X004การควบคุมมอเตอร์ทำงานตามลำดับ14 การควบคุมมอเตอร์ทำงานตามลำดับ15 การควบคุมมอเตอร์ทำงานตามลำดับ16 การควบคุมมอเตอร์ทำงานตามลำดับ17 การควบคุมมอเตอร์ทำงานตามลำดับ18 การควบคุมมอเตอร์ทำงานตามลำดับ19 การควบคุมมอเตอร์ทำงานตามลำดับ20 การควบคุมมอเตอร์ทำงานตามลำดับ21 การควบคุมมอเตอร์ทำงานตามลำดับ22 การควบคุมมอเตอร์ทำงานตามลำดับ23 การควบคุมมอเตอร์ทำงานตามลำดับ24 การควบคุมมอเตอร์ทำงานตามลำดับ25 การควบคุมมอเตอร์ทำงานตามลำดับ26 การควบคุมมอเตอร์ทำงานตามลำดับ27 การควบคุมมอเตอร์ทำงานตามลำดับ28 การควบคุมมอเตอร์ทำงานตามลำดับ29 การควบคุมมอเตอร์ทำงานตามลำดับ30 การควบคุมมอเตอร์ทำงานตามลำดับ31 การควบคุมมอเตอร์ทำงานตามลำดับ32 การควบคุมมอเตอร์ทำงานตามลำดับ33 การควบคุมมอเตอร์ทำงานตามลำดับ34 การควบคุมมอเตอร์ทำงานตามลำดับ35 การควบคุมมอเตอร์ทำงานตามลำดับ36 คำสั่ง Or Pulse จะใช้กับหน้าสัมผัสแบบปกติเปิดชนิดสัญญาณจังหวะ (Rising Pulse) เสมอสัญลักษณ์ที่ใช้ในภาษา Instruction List คือ ORP และมีโปรแกรม Steps เท่ากับ 2 คำสั่ง Or Trailing Pulse จะใช้กับหน้าสัมผัสแบบปกติปิดชนิดสัญญาณจังหวะ (Falling Pulse) เสมอ สัญลักษณ์ที่ใช้ในภาษา Instruction List คือ ORF และมีโปรแกรม Steps เท่ากับ 2 คำสั่ง Or Block, And Block คำสั่ง Or Block (ORB) และ And Block (ANB) เป็นคำสั่งที่ใช้ในการรวมชุดหน้าสัมผัสที่ต่อเข้าด้วยกันโดยคำสั่ง Or Block จะใช้การรวมชุดของหน้าสัมผัสที่ต่อเข้าด้วยกันแบบขนาน ส่วน And Block จะใช้ในการรวมชุดของหน้าสัมผัสที่ต่อเข้าด้วยกันแบบอนุกรม ในแลดเดอร์ไดอะแกรม And Block จะเป็นตัวที่เชื่อมชุดวงจรที่มีลักษณะ Block 2 วงจรเข้าด้วยกันในลักษณะอนุกรม และ Or Block จะเป็นลักษณะแบบขนาน ซึ่งทั้ง 2 คำสั่งจะเป็นคำสั่งอิสระที่ไม่ต้องตามด้วยเบอร์อุปกรณ์ และจะไม่แสดงในรูปแลดเดอร์ไดอะแกรม แต่จะแสดงในแต่ละช่วงของปล็อกใน Instruction List จากรูปการใช้คำสั่ง Or Block, And Block คำสั่ง Master Control, Reset คำสั่ง Master Control, Reset (MC,MCR) เป็นคำสั่งที่ใช้ควบคุมการทำงานของชุดวงจรให้เป็นไปตามลำดับขั้นการทำงาน ซึ่งในแต่ละชุดลำดับจะถูกควบคุมด้วยคำสั่ง MC busline ซึ่งทำหน้าที่เปรียบเสมือนเป็นการสร้างเส้นทางไฟขึ้นใหม่ในวงจร คำสั่ง MC จะมีหน้าสัมผัสที่ทำหน้าที่ในการสั่งงานให้ชุดควบคุมต่อไฟเลี้ยงลูปทำงาน N ซึ่งลูปทำงาน N จะมีหมายเลขกำกับแต่ละลูป เช่น (MC NO M100) จะเป็นการสั่งงานให้ลูป NO ทำงาน รีเลย์ M100 จะต่อสัญญาณไฟไปรอขับชุดการทำงานที่อยู่ในลูปนั้นๆ และจะสิ้นสุดหรือยกเลิกการทำงานเมื่อหน้าสัมผัสที่สั่งงานคำสั่ง MC เป็น Off คำสั่ง MCR รีเซลลูป ทำให้อุปกรณ์หรือโหลดในลูปนั้นๆ หยุดการทำงาน ยกเว้นอุปกรณ์ประเภท Retentive Time (ชนิดเวลาสะสม) คำสั่ง MC จะสามารถซ้อนลูปภายในได้ 8 ชั้น กำหนดโดย NO-N7 (ลูปนัมเบอร์) โดยคำสั่ง MC มี โปรแกรม Steps เท่ากับ 3 ใช้สั่งงานหน้าสัมผัสประเภทเอาต์พุต(Y) อุปกรณ์รีเลย์ช่วย (M) และคำสั่ง MCR มีโปรแกรม Steps เท่ากับ 2 ใช้ในการสั่งรีเซตลูป จากรูปที่ 1 สามารถอธิบายการทำงานได้ดังนี้ เริ่มต้นการทำงานหน้าสัมผัส X000 ON คำสั่ง MC จะสั่งให้ลูป NO ทำงานรีเลย์ M100 จะถูกสั่งงานทำให้มีกระแสไฟฟ้าส่งไปที่หน้าสัมผัส X002 ON จะทำให้คอยล์ Output Y000 ทำงานดังรูปที่ 2 แต่หากหน้าสัมผัส X000 Off เมื่อใดจะให้หน้าคำสั่ง MC Reret คอยล์ Output Y000 หยุดทำงาน จากรูปที่ 2 การสั่งงานคอลย์ Y000 เมื่อหน้าสัมผัส X000 ON นอกจากจะส่งกระแสไฟไปขับโหลด Y000 แล้ว ยังส่งกระแสไฟมาที่หน้าสัมผัส X003 ด้วย และเมื่อหน้าสัมผัส X003 ON จะสั่งให้ลูป N1 ทำงานรีเลย์ M101 จะถูกสั่งงานทำให้มีกระแสไฟส่งไปที่หน้าสัมผัส X004 ซึ่งเป็นหน้าสัมผัสแบบปกติปิด ทำให้คอยล์ Output Y001 ทำงานดังรูป 3 แต่หากหน้าสัมผัส X003 หรือ X000 Off เมื่อใดจะทำให้คำสั่ง MC Reset คอยล์ Output Y001 หยุดทำงาน แต่จะไม่ขึ้นอยู่กับหน้าสัมผัส X002 ดังรูป 4 แสดงการสั่งงานคอยล์ Y001 แสดงการยกเลิกสั่งงานคอยล์ Y001 คำสั่ง Set, Reset คำสั่ง Set and Reset (SET, RST) เป็นคำสั่งที่ใช้ควบคุมการทำงานของอุปกรณ์ โดยคำสั่ง Set จะทำงานเมื่อมีกระแสไฟจ่ายให้คำสั่ง Set ซึ่งอาจจะมาจากหน้าสัมผัสปกติเปิดหรือปกติปิด โดยคำสั่ง Set จะส่งค่าสัญญาณ 1 เพื่อสั่งงานให้อุปกรณ์ที่ถูกควบคุม ON และจะค้างตำแหน่ง ON ไปตลอดแม้ว่าคำสั่ง Set จะไม่มีกระแสไฟเลี้ยงแล้วก็ตาม อุปกรณ์ที่ถูกควบคุมจะ OFF ได้ก็ต่อเมื่อมีคำสั่ง Reset ส่งค่าสัญญาณ 1 มากระทำอีกครั้ง คำสั่ง Set และ Reset สามารถใช้กับอุปกรณ์เบอร์เดียวกันได้หลายครั้ง และคำสั่ง Reset สามารถใช้ในการรีเซตข้อมูลที่บรรจุในอุปกรณ์ต่างๆ เช่น อุปกรณ์เก็บข้อมูลเชิงตัวเลข (Data Registers:d)เป็นต้น โดยคำสั่งเ Set สามารถใช้สั่งงานประเภทเอาต์พุต (Y) อุปกรณ์รีเลย์ช่วย อุปกรณ์รีเลย์ช่วย (M, S) มีโปรแกรม Steps สำหรับหน้าสัมผัสประเภทเอาต์พุต (Y) อุปกรณ์รีเลย์ช่วย (M) เท่ากับ 1 อุปกรณ์รีเลย์ช่วย (S) และรีเลย์ช่วยพิเศษ (Special Relay : M) เท่ากับ 2 ส่วนคำสั่ง Reset ใช้สั่งงานหน้าสัมผัสประเภทเอาต์พุต (Y) อุปกรณ์รีเลย์ช่วย (M,S) อุปกรณ์เก็บข้อมูลเชิงตัวเลข (D) อุปกรณ์ตั้งเวลา (T) และอุปกรณ์นับจำนวน (C) มีโปรแกรม Steps สำหรับหน้าสัมผัส ประเภทเอาต์พุต (Y) อุปกรณ์รีเลย์ช่วย (M) เท่ากับ 1 อุปกรณ์เก็บข้อมูลเชิงตัวเลข (Data Registers:D) เท่ากับ 3 รูปการทำงานคำสั่ง SET, RESET คำสั่ง Timer, Counter (Reset) คำสั่ง Reset Timer, Reset Counter (RST) เป็นคำสั่งที่ใช้ควบคุมการทำงานของอุปกรณ์ประเภทอุปกรณ์ตั้งเวลา (T) และอุปกรณ์นับจำนวน (C) โดยเมื่อหน้าสัมผัสที่ควบคุมการทำงานอุปกรณ์ตั้งเวลา (T) หรืออุปกรณ์นับจำนวน (C) สั่งงานทำให้อุปกรณ์นับเวลาหรือจำนวนจนกระทั้งครบตามที่ตั้งไว้ หน้าสัมผัสของอุปกรณ์ตั้งเวลา (T) หรืออุปกรณ์นับจำนวน (C) จะสั่งงานให้คอยล์เอาต์พุตทำงาน และเมื่อ Reset อุปกรณ์ตั้งเวลา (T) หรืออุปกรณ์นับจำนวน(C) จะทำให้อุปกรณ์เหล่านั้นหยุดการทำงานและหน้าสัมผัสของอุปกรณ์ตั้งเวลา (T) หรืออุปกรณ์นับจำนวน (C) จะหยุดสั่งงานทำให้คลอย์เอาต์พุตหยุดทำงานด้วย โดยคำสั่ง RST มีโปรแกรม Steps เท่ากับ 3 รูปตัวอย่างการทำงาน Timer,Counter จากรูปสามารถอธิบายการทำงานดังนี้ (1) เริ่มต้นการทำงานหน้าสัมผัส X000 ON คำสั่ง RST จะสั่งรีเซต T1 ทำให้อุปกรณ์และหน้าสัมผัส T1 หยุดทำงาน หากต้องการให้อุปกรณ์นับเวลา T1 เริ่มต้นต้องยกเลิกการรีเซตโดยสั่งให้หน้าสัมผัส X000 OFF และสั่งให้หน้าสัมผัส X001 ON อุปกรณ์นับเวลา T1 จะเริ่มนับเวลาตามค่าคงที K 100 มีค่าเท่ากับ 100 msec หรือ 10 วินาที เมื่อครบตามเวลาที่ตั้งไว้หน้าสัมผัส T1 จะสั่งงานให้คอยต์เอาต์พุต Y000 ทำงาน และจะหยุดทำงานต่อเมื่อหน้าสัมผัส X000 ON คำสั่ง RST ทำงานอีกครั้ง (2) การรีเซตอุปกรณ์นับจำนวน โดยสั่งงานให้หน้าสัมผัสอินพุต X003 ON คำสั่ง RST จะสั่งรีเซต C200 ทำให้อุปกรณ์และหน้าสัมผัส C200 หยุดทำงาน หากต้องการให้อุปกรณ์นับจำนวน C200 เริ่มต้นทำงานต้องการยกเลิกการรีเซต โดยสั่งให้หน้าสัมผัส X003 OFF และสั่งงานให้หน้าสัมผัส X004 ON อุปกรณ์นับเวลา C200 จะเริ่มนับเวลาตามค่าคงที่ K 10 มีค่าเท่ากับ 10 ครั้ง โดนนับจำนวนครั้งการ ON-OFF ของหน้าสัมผัสอินพุต X004 ซึ่งอุปกรณ์นับจำนวน C200 เป็นชนิด 32 bit(ชนิดนับขึ้น,นับลง) โดยใช้รีเลย์ช่วยพิเศษ M8200 เมื่อ M8200 อุปกรณ์นับจำนวนที่ทำงานต่อจาก M8200 จะเป็นแบบนับลง ดังนั้น จากภาพหน้าสัมผัสอินพุต X002 ทำงาน ทำให้ M8002 ON ทำให้อุปกรณ์นับจำนวน C200 นับจาก 0 ไปหา -10 ตามค่าคงที่ k10 เมื่อครบตามจำนวนที่ตั้งไว้ หน้าสัมผัส C200 จะสั่งงานให้คอยล์เอาต์พุต Y001 ทำงานและจะหยุดทำงานต่อเมื่อหน้าสัมผัส X003 ON คำสั่ง RST ทำงานอีกครั้ง อุปกรณ์พื้นฐานกับการทำงานของ PLC อุปกรณ์อินพุต (Inputs: I/P) อุปกรณ์อินพุต หรือหน้่สัมผัสอินพุต ใช้สัญลักษณ์ X ตามด้วยลำดับที่ของอินพุต โดยใช้เลขฐานแปด สำหรับรุ่น FX1N เช่น X000, X001, X002,...,X007,X010 และเลขฐานสิบหกสำหรับรุ่นอื่นๆ หน้าสัมผัสจะเป็นแบบปกติเปิด NO และแบบปกติปิดNC ซึ่งหน้าสัมผัสอินพุตจะเป็นอุปกรณ์ประเภทที่สามารถมองเห็นได้และสามารถจับต้องได้ เป็นอุปกรณ์จำพวกสวิตซ์ต่างๆ รวมไปถึงจำพวกเซนเซอร์ที่ควบคุม โดยอุปกรณ์นี้จะต่ออยู่ภายนอก PLC เช่น 1. Proximity Switch 2. Switches 3 . Photoelectric Sensor 4.Limit Switch 5.Temperature Controller 6. Encoder 7.Digital Signal Controller อุปกรณ์เอาต์พุต (Output: O/P) อุปกรณ์เอาต์พุต(คอยล์ หน้าสัมผัส รีเลย์) ใช้สัญลักษณ์ Y ตามด้วยลำดับที่ของเอาต์พุต โดยใช้เลขฐานแปดสำหรับ รุ่น FX1N เช่น X000, X001, X002,...,X007,X010 และเลขฐานสิบหกสำหรับรุ่นอื่นๆ หน้าสัมผัสจะเป็นแบบปกติเปิด NO และแบบปกติปิดNC ส่วนคอยล์ (Output Coil) ซึ่งหน้าสัมผัสอินพุตจะเป็นอุปกรณ์ประเภทที่สามารถมองเห็นได้และสามารถจับ ต้องได้ นอกจากนี้ยังมีอุปกรณ์จำพวกหลอดไฟ มอเตอร์ไฟฟ้า คอนแทร็คเตอร์ หรือหลอดไฟต่างๆ ซึ่งอุปกรณ์นี้จะต่ออยู่ภายนอก PLC เช่น รีเลย์ช่วย (Auxiliary Relays) รีเลย์ช่วยใช้สัญลักษณ์ M ตามด้วยลำดับที่ของอุปกรณ์ รีเลย์ช่วยเป็นเลขฐานสิบ เช่น M001-M009,M500 เป็นต้น โดยอุปกรณ์รีเลย์ช่วยสามารถแบ่งได้เป็นหน้าสัมผัสแบบปกติเปิดNOและแบบปกติปิดNC ส่วนคอนล์(Output Coil) ซึ่งอุปกรณ์ช่วยจะเป็นอุปกรณ์ที่ไม่สามารถมองเห็นได้ อุปกรณ์นี้จะต่ออยู่ภายใน PLC ใช้อุปกรณ์ทำให้การออกแบบโปรแกรมเป็นการควบคุมทางอ้อมนั่นคือ อินพุตจะสั่งงานผ่านรีเลย์ช่วย และรีเลย์ช่วยจะสั่งงานเอาต์พุตต่อไป อุปกรณ์รีเลย์ช่วยที่ใช้ในการเขียนโปรแกรม PLC มีอยู่ด้วยกัน 3 ประเภทใหญ่ๆ คือ รีเลย์ช่วยแบบทั่วไป(General Relay) รีเลย์ช่วยแบบ Latch (Latch Relay) และรีเลย์ช่วยพิเศษ (Special Relay) รีเลย์ช่วยแบบทั่วไป (General Relay) รีเลย์ช่วยประเภทนี้เป็นแบบปกติทั่วไป โดยรีเลย์ปรัเภทนี้จะทำงานหรือหยุดทำงานขึ้นอยู่กับการควบคุมโดยการทำงานของโปรแกรม ซึ่งรีเลย์ช่วยแบบทั่วไปนี้จะเป็นรีเลย์ช่วยทำหน้าที่เป็นหน้าสัมผัสแบบปกติเปิดและแบบปกติปิดที่ช่วยสั่งงานตามขั้นตอนโปรแกรม PLC โดยจะต้องถูกขับผ่านคอยล์เพื่อสั่งงานหน้าสัมผัสให้ทำงาน หากเกิดสภาวะไฟดับหรือวงจรคอยล์รีเลย์ไม่มีกระแสไฟจ่ายไปที่คอยล์รีเลย์หน้าสัมผัสของรีเลย์ช่วยตัวนั้นจะหยุดทำงานหรือกลับสู่สภาวะปกติของหน้าสัมผัส และ เมื่อมีกระแสไฟจ่ายไปที่คอยล์รีเลย์หน้าสัมผัสจะเริ่มทำงานตามโปรแกรมที่ควบคุม ตัวอย่างอุปกรณ์รีเลย์ช่วยแบบทั่วไป รีเลย์ช่วยแบบ Latch (Latch Relay) รีเลย์ช่วยประเภทนี้เป็นแบบจำค่า โดยมีแบตเตอร์รี่สำรองที่ทำหน้านี้ในการจำค่า (Keep Relays) ในสภาวะไฟดับ หรือจัดเก็บในหน่วยความจำชนิด EEPROM การทำงานช่วยแบบ Latch จะทำหน้าที่เหมือนรีเลย์ช่วยทั่วไป ทำหน้าที่เป็นหน้าสัมผัสแบบปกติปิดที่ช่วยสั่งงานตามขั้นตอนโปรแกรม PLC โดยจะต้องถูกขับผ่านคอยล์เพื่อสั่งงานหน้าสัมผัสให้ทำงาน แต่เมื่อเกิดสภาวะไฟดับในขณะที่ PLC กำลังทำงานอยู่รีเลย์ช่วยประเภทนี้จะยังสามารถจำสถานะเดิมของตัวมันเองได้ และเมื่อไฟกลับมาสู่สภาวะปกติรีเลย์ช่วยแบบ Latch จะยังแสดงสถานะเดิม เหมือนตอนที่ PLC ทำงานก่อนที่จะเกิดสภาวะไฟดับ ตัวอย่างการต่ออุปกรณ์รีเลย์ช่วยแบบ Latch รีเลย์ช่วยแบบพิเศษ (Special Relay) รีเลย์ช่วยแบบพิเศษเป็นรีเลย์ที่ทำงานโดยขี้นอยู่กับสภาวะการทำงานในตัว PLC โดย PLC จะมีรีเลย์ช่วยพิเศษที่ทำหน้าที่แตกต่างกันออกไป โดยมีหมายเลขตั้งแต่ M8000 เป็นต้นไป สามารถแบ่งออกได้เป็น 2 ชนิดคือ 1.ใช้หน้าสัมผัสของรีเลย์ช่วย คอยล์จะถูกขับอัตโนมัติโดย PLC ตลอดเวลา ซึ่งผู้ใช้จะสามารถเลือกหน้าสัมผัสของคอยล์นั้นๆมาใช้งานได้โดยไม่ต้องมีการสั่งงานคอยล์รีเลย์ตัวอย่าง เช่น M 8000 จะเป็นรีเลย์ช่วยพิเศษที่ทำงานทันทีเมื่อ PLC เริ่มทำงาน (Run Monitor) M 8002 จะทำงานเป็นสัญญาณจังหวะ Pulse เป็นเวลาสั้นๆ หลังจาก PLC เริ่ม RUN (lnital Pulse) M 8005 จะทำงานเมื่อแบตเตอรี่อยู่ภายใน PLC มีแรงดันไฟต่ำกว่ามาตรฐานที่กำหนดไว้ถ้าแรงดันไฟภายใน PLC ยังอยู่ในเกณฑ์ที่กำหนดไว้ รีเลย์พิเศษนี้จะยังทำงาน 2.ใช้คอยล์ของรีเลย์ช่วยพิเศษ คอยล์ของรีเลย์ช่วยพิเศษจะถูกกำหนดในโปรแกรมเมื่อใดที่คอยล์รีเลย์ช่วยพิเศษทำงาน โปรแกรมจะถูกสั่งงานตามหน้าที่ของคอยล์รีเลย์ช่วยพิเศษนั้นๆ ตัวอย่าง เช่น M8034 เอาต์พุตทุกตัวจะไม่สามารถทำงานได้ ตัวอย่างการต่ออุปกรณ์รีเลย์ช่วยแบบพิเศษ อุปกรณ์ควบคุมการไหลของโปรแกรม (Pointers) อุปกรณ์ควบคุมการไหลของโปรแกรม ใช้สัญลักษณ์ P ตามด้วยลำดับที่ของ Pointer เป็นเลขฐานสิบ เช่น P001-P009, P500 เป็นต้น โดย Pointer จะเป็นการกำหนดให้การทำงานกระโดดอย่างมีเงื่อนไง (CJ Function) ไปยังลำดับที่ของ Pointer ที่ควบคุมบรรทัดนั้นๆ โดยจะกำหนดไว้ด้านซ้ายมือของเส้นแนวตั้งด้านซ้ายในโปรแกรมแลดเดอร์ ประโยชน์ของอุปกรณ์ควบคุมการไหลของโปรแกรม (Pointer) เพื่อกำหนด หรือสั่งการทำงานให้โปรแกรมข้ามไปทำงานในโปรแกรมย่อย โดยที่จะต้องมีเงื่อนไขในการกระโดดเพื่อเลือกการทำงานของโปรแกรมย่อย (Sub Program) รูปตัวอย่างการทำงานอุปกรณ์ควบคุมการไหลของโปรแกรม (Pointer) คำสั่งแสดงค่าคงที่ คำสั่งแสดงค่าคงที่เลขฐานสิบ (Constant K) ใช้สัญลักษณ์ K ตามด้วยจำนวนค่าของตัวเลขในระบบเลขฐานสิบโดยเมื่อใช้ข้อมูลเป็นแบบ 16 บิต ค่าของตัวเลขที่ใช้จะมีค่าตั้งแต่ -32,768 ถึง + 32,767 ได้จากค่า 2 ยกกำลัง 16 เท่ากับ 65,536 จำนวน ดังนั้น จึงมีค่าเท่ากับ 0 ถึง 32,767 (32,768 จำนวน) และ -32,768 ถึง –(32,768 จำนวน) ถ้าข้อมูลเป็นแบบ 32 บิต ค่าของตัวเลขที่จะใช้เท่ากับ 2 ยกกำลัง 32 มีค่าเท่ากับ 4,294,967,296 จำนวน โดยมีค่าตั้งแต่ -2,147,483,648 ถึง +2,147,483,647 โดยค่าจำนวนในเลขฐานสิบที่กำหนดค่าต่อท้ายสัญลักษณ์ K นี้จะเป็นตัวกำหนดค่าต่างๆ ซึ่งขึ้นอยู่กับว่าค่า K ใช้ในการกำหนดค่าคงที่ของอุปกรณ์นับจำนวน (Counter) หรือ อุปกรณ์นับเวลา (Timer) เช่น อุปกรณ์นับจำนวน C0 K100 โปรแกรมจะนับจำนวนหน้าสัมผัสอินพุตจนกระทั่งครบ 100 ครั้ง หน้าสัมผัสอุปกรณ์นับจำนวนจึงจะทำงาน หรืออุปกรณ์นับเวลา T200 K1000 อุปกรณ์นับเวลาเป็นชนิดนับ 10 msec ดังนั้น K1000 มีค่าเท่ากับ 10 วินาที่ เป็นต้น รูปตัวอย่างการกำหนดค่าคงที่ K สำหรับอุปกรณ์นับจำนวนและอุปกรณ์นับเวลา คำสั่งแสดงค่าคงที่เลขฐานสิบหก (Constant H) ใช้สัญลักษณ์ H ตามด้วยจำนวนค่าของตัวเลขในระบบเลขฐานสิบหก โดยเมื่อใช้ข้อมูลเป็นแบบ 16 บิต ค่าของตัวเลขที่ใช้จะมีค่าตั้งแต่ 0 ถึง FFFF และถ้าข้อมูลเป็นแบบ 32 บิต ค่าของตัวเลขที่ใช้จะมีค่าตั้งแต่ 0 ถึง FFFFFFFF โดยคำสั่งแสดงค่าคงที่เลขฐานสิบหกจะนำไปใช้ร่วมกับคำสั่งประยุกต์ อุปกรณ์หน่วงค่าเวลา (Timers) อุปกรณ์หน่วงค่าเวลา (Timers) ใช้สัญลักษณ์ T ตามด้วยลำดับที่ของอุปกรณ์ตั้งเวลา และเว้นวรรคตามด้วยค่าคงที่เลขฐานสิบของเวลา K เช่น T000 K100, T001, K10 เป็นต้น โดยเป็นอุปกรณ์ที่ใช้ในการหน่วงค่าเวลา สามารถแบ่งได้เป็นหน้าสัมผัสแบบปกติเปิด (Nomally Open : NO) และหน้าสัมผัสแบบปกติปิด (Nomally Closed : NC) และคอยล์ (Output Coil) อุปกรณ์หน่วงค่าเวลาจะทำงานโดยการนับสัญญาณเวลาตามจำนวนค่าเวลาที่กำหนดไว้ในค่าคงที่เลขฐานสิบ (K) เมื่อครบตามจำนวนเวลาหน่วง หน้าสัมผัสเอาต์พุตของอุปกรณ์หน่วงค่าเวลาจะทำงาน ซึ่งอุปกรณ์หน่วงค่าเวลาจะเป็นอุปกรณ์ประเภทที่ไม่สามารถมอบเห็นได้ และสามารถจับต้องได้ อุปกรณ์หน่วงค่าเวลาที่ใช้ในการเขียนโปรแกรม PLC มีอยู่ 2 แบบคือ 1. อุปกรณ์หน่วงค่าเวลาทั่วไป (General Timer) จะทำงานตามลำดับขั้นตอนการทำงานของโปรแกรม เมื่อเกิดสภาวะไฟดับในขณะที่ PLC กำลังทำงานอยู่อุปกรณ์หน่วงค่าเวลาทั่วไปจะเซตค่าที่หน่วงกลับไปเริ่มต้นที่ 0 ใหม่อีกครั้ง และเมื่อ PLC มีกระแสไฟจ่ายมาเลี้ยงอีกครั้งอุปกรณ์หน่วงค่าเวลาทั่วไปจะทำงานตามลำดับขึ้นการทำงานของโปรแกรมอีกครั้งหนึ่ง 2. อุปกรณ์หน่วงค่าเวลาแบบจำค่า (Retentive Timer) จะทำงานตามลำดับขั้นการทำงานของโปรแกรม เมื่อเกิดสภาวะไฟดับหรือไม่มีการจ่ายกระแสไฟมาเลี้ยงคอยล์ อุปกรณ์หน่วงเวลาในขณะที่ PLC กำลังทำงานอยู่ อุปกรณ์หน่วงค่าเวลาแบบจำค่า โดยจำหน่วงค่าค้างไว้และเมื่อ PLC มีกระแสไฟจ่ายมาเลี้ยงอีกครั้งหนึ่ง อุปกรณ์หน่วงค่าเวลาแบบจำค่าจะทำงานตามลำดับขั้นการทำงานของโปรแกรมอีกครั้งหนึ่ง และนับเวลาต่อเนื่องจากที่หยุดค้างไว้ก่อนที่จะเกิดสภาวะไฟดับ อุปกรณ์หน่วงค่าเวลาแบบจำค่า จะเซตค่าที่หน่วงกลับไปเริ่มต้นที่ 0 ใหม่อีกครั้งหนึ่งได้ต้องมีคำสั่ง Reset (RST) ตามด้วยเบอร์ของอุปกรณ์หน่วงค่าเวลาแบบจำค่า เช่น [RST T250] ตัวอย่างค่าความละเอียดของอุปกรณ์หน่วงค่าเวลา RLC Mitsubishi FX1N, FX2N, FX3U อุปกรณ์หน่วงค่าเวลา (timers) ชนิด 16 บิต ค่าความละเอียดของอุปกรณ์หน่วงค่าเวลา PLC Mitsubishi FX1N, FX2N 100 msec 10 msec 1 msec อุปกรณ์หน่วงค่าเวลาทั่วไป T0-T199 T200-T245 T246-T249 อุปกรณ์หน่วงค่าเวลาแบบจำค่า T250-T255 - - รูปตัวอย่างการทำงานอุปกรณ์หน่วงค่าเวลา การคำนวณหาค่าคงที่เลขฐานสิบ (K) ที่ใช้สำหรับหน่วงเวลาในอุปกรณ์หน่วงค่าเวลา เนื่องจากอุปกรณ์หน่วงค่าเวลาของ PLC เป็นแบบ 16 บิต จึงมีช่วงของจำนวนในการตั้งค่าเวลาเท่ากับ -32, 768 ถึง + 32, 767 และอุปกรณ์หน่วงค่าเวลาได้ถูกแบ่งความละเอียดของการหน่วงค่าเวลาออกเป็น 3 แบบด้วยกันคือ 100 msec, 10 msec, และ 1 msec ดังตารางที่ 5.2 ดังนั้น ค่าคงที่เลขฐานสิบ (K) ที่ใช้ในการกำหนดค่าจึงต้องมีการคำนวณและกำหนดค่าให้เหมาะสมกับชนิดของอุปกรณ์หน่วงค่าเวลาดังนี้ ค่าคงที่เลขฐานสิบ (K) อุปกรณ์หน่วงค่าเวลา ชนิด 100 msec = เวลาที่ต้องการหน่วง X 10 ชนิด 10 msec = เวลาที่ต้องการหน่วง X 100 ชนิด 1 msec = เวลาที่ต้องการหน่วง X 1,000 ตัวอย่างที่ 5.1 ต้องการทำการหน่วงเวลา 50 วินาที T250 ชนิด 100 msec ดังนั้น ค่า K = 50 x 10 = 500 ใช้คำสั่ง (T250 K500) T210 ชนิด 10 msec ดังนั้น ค่า K = 50 x 100 = 5,000 ใช้คำสั่ง (T210 K5000) T246 ชนิด 1 msec ดังนั้น ค่า K = 50 x 1000 = 50,000 ใช้คำสั่ง (ค่าสูงสุดไม่เกิน 32,767) ต้องใช้อุปกรณ์หน่วงค่าเวลาชนิด 1 msec 2 ตัว คำสั่ง (T246 K30000), (T247 K20000) รูปตัวอย่างการทำงานอุปกรณ์หน่วงค่าเวลาทั้ง 3 แบบ อุปกรณ์นับจำนวนเปิด-ปิดหน้าสัมผัส (Counters) อุปกรณ์นับจำนวนเปิด-ปิดหน้าสัมผัส (Counters) ใช้สัญลักษณ์ C ตามด้วยลำดับที่ของอุปกรณ์จำนวน และเว้นวรรคตามด้วยค่าคงที่เลขฐานสิบของจำนวน K เช่น C000 K150 K300 เป็นต้น อุปกรณ์ที่ใช้ในการนับจำนวนสามารถแบ่งได้เป็นหน้าสัมผัสแบบปกติเปิด (Nomally Open : NO) และห้าสัมผัสแบบปกติปิด (Nomally Closed : NC) และคอยล์ (Output Coil) อุปกรณ์นับจำนวนจะทำงานโดยการนับสัญญาณเปิด-ปิด (ON-OFF) ตามจำนวนค่าที่กำหนดไว้ในค่าคงที่เลขฐานสิบ (K) เมื่อครบตามจำนวนครั้ง หน้าสัมผัสเอาต์พุตของอุปกรณ์นับจำนวนจะทำงาน การใช้คำสั่งในการนับจำนวนต้องใช้ควบคู่กับคำสั่งรีเสตเสมอ เช่น [RST C10] ซึ่งอุปกรณ์นับจำนวนจะเป็นอุปกรณ์ประเภทที่ไม่สามารถมองเห็นได้และสามารถจับต้องได้ อุปกรณ์นับจำนวนที่ใช้ในการเขียนโปรแกรม PLC มีอยู่ 2 แบบคือ 16 บิต ค่าของตัวเลขที่ใช้จะมีค่าตั้งแต่ -32,768 ถึง +32,767 และ 32 บิต มีค่าตัวเลขที่ใช้จะมีตั้งแต่ -2,147,483,648 ถึง +2,147,483,647 และจะแบ่งเป็นอุปกรณ์นับจำนวนทั่วไป (General Counter) และอุปกรณ์นับจำนวนจำค่าได้ (Latched Counter) อุปกรณ์นับจำนวน (Counters) อุปกรณ์นับจำนวน PLC Mitsubishi FX1N, FX2N ชนิด 16 บิต (-32,768 ถึง +32,767 ชนิด 32 บิต แบบนับขึ้นและนับลง (-2,147,438,648 ถึง +2,147,438,647) อุปกรณ์นับจำนวนทั่วไป C0-C99 C200-C219 อุปกรณ์นับจำนวนแบบจำค่า C100-C199 C220-C234 อุปกรณ์นับจำนวนเปิด-ปิดหน้าสัมผัส (Counters) แบบนับจำนวนทั่วไปและแบบนับจำนวนจำค่าชนิด 16 บิต ตัวอย่างในรูปที่ 5.14 การทำงานของอุปกรณ์นับจำนวนชนิดนี้จะทำงานโดยค่าของ Counter จะเพิ่มขึ้นทุกๆ ครั้งที่คอยล์ Counter NO (C0) และจะเพิ่มขึ้นจนกระทั่งถึงค่าคงที่เลขฐานสิบ (K20) ที่ตั้งไว้โดยตรงหรือใช้ข้อมูลตัวเลขที่เก็บไว้ใน Data Register (D) ซึ่งเป็นแบบทางอ้อม หน้าสัมผัส Counter (C0) จะ ON ทำงานจ่ายกระแสไฟไปขับคอยล์เอาต์พุต (Y000) ซึ่งหลังจากนี้คอยล์ Counter จะไม่เปลี่ยนแปลงค่านับและคอยล์เอาต์พุตจะทำงานตลอด จนกระทั่งโปรแกรมจะสั่ง Reset ค่า Counter โดยใช้หน้าสัมผัส X000 สั่ง Reset Counter C0 คอยล์ Counter C0 จะกลับไปเริ่มต้นที่ 0 อีกครั้งและคอยล์เอาต์พุต Y000 จะ OFF โดยอุปกรณ์นับจำนวนเปิด-ปิดหน้าสัมผัส (Counters) แบบนับจำนวนทั่วไป (General Counter 16 bit) รุ่น FX1N,FX 2N จะมี Count ตั้งแต่หมายเลข 0-99 โดยจะเป็นชนิดที่นับค่าขึ้นทิศทางเดียวไม่สามารถนับค่าแบบลดลงได้ และเมื่อ PLC ไม่มีไฟมาเลี้ยง Counter ชนิดนี้จะ Set ค่าเป็น 0 ทันที อุปกรณ์นับจำนวนแบบจำค่า (Latched Counter 16 bit) รุ่น FX1N,FX 2N จะมี Counter ตั้งแต่หมายเลข 100-199 โดยจะเป็นชนิดที่นับค่าขึ้นทิศทางเดียงไม่สามารถนับค่าแบบลดลงได้ และเมื่อ PLC ไม่มีไฟมาเลี้ยง Counter ชนิดนี้จะสามารถเก็บข้อมูลได้ เมื่อป้อนไฟให้กับ PLC อีกครั้ง อุปกรณ์นับจำนวนแบบจำค่าจะนับค่านับเดิมที่เก็บไว้ก่อนไฟดับมาใช้แล้วนับค่าต่อจากเดิม รูปตัวอย่างการทำงานอุปกรณ์นับจำนวนเปิดปิดหน้าสัมผัส(Counters)แบบนับจำนวนทั่วไป(GeneralCounter16 bit) อุปกรณ์นับจำนวนเปิด-ปิดหน้าสัมผัส (Counters) แบบนับจำนวนทั่วไปและแบบนับจำนวนค่าชนิด 32 บิต 2 ทิศทางการนับ การทำงานของอุปกรณ์นับจำนวนชนิดนี้จะทำงานลักษณะเดียวกับอุปกรณ์จำนวน 16 บิต แต่อุปกรณ์นับจำนวนชนิด 32 บิต จะสามารถทำงานได้ทั้งแบบนับเดินหน้าและนับถอยหลัง โดยอาศัยรีเลย์ช่วยพิเศษ M8200-M8234 เป็นตัวกำหนดทิศทางการนับ หากรีเลย์ช่วยพิเศษ ON อุปกรณ์นับจำนวนจะนับถอยหลังและถ้ารีเลย์ช่วยพิเศษ OFF อุปกรณ์นับจำนวนจะนับเดินหน้า หน้าสัมผัส Counter (C200) จะ ON ต่อเมื่อการนับเป็นแบบนับเดินหน้า ตัวอย่างในรูป 5.16 เมื่ออุปกรณ์นับจำนวนนับถอยหลัง -7, -8 คอยล์ Counter จะยังคง OFF แต่หากสั่งงานให้รีเลย์ช่วยพิเศษ OFF อุปกรณ์นับจำนวนจะนับเดินหน้าจาก -9, -8 คอยล์ Counter จะ ON และหน้าสัมผัส Counter (C200) จะ ON ทำงานจ่ายกระแสไฟไปขับคอยล์เอาต์พุต (Y000) คอยล์เอาต์พุตจะทำงานตลอดจนกระทั่งโปรแกรมจะสั่ง Reset ค่า Counter โดยใช้หน้าสัมผัส X000 สั่ง Rest Counter C200 คอยล์ Counter C200 จะกลับไปเริ่มต้นที่ 0 อีกครั้งและคอยล์เอาต์พุต Y000 จะ OFF โดยอุปกรณ์นับจำนวนเปิด-ปิดหน้าสัมผัส (Counter) แบบนับจำนวนทั่วไป (General Counter 32 Bit) รุ่น FX1N,FX 2N จะมี Counter ตั้งแต่หมายเลข 200-219 โดยจะเป็นชนิดที่นับค่าได้ 2 ทิศทางทั้งแบบนับเดินหน้าและนับถอยหลัง และเมื่อ PLC ไม่มีไฟมาเลี้ยง Counter ชนิดนี้จะ Set ค่าเป็น 0 ทันที อุปกรณ์นับจำนวนแบบจำค่า (Latched Counter 16 bit) รุ่น FX1N,FX 2N จะมี Counter ตั้งแต่หมายเลข 220-234 โดยจะเป็นชนิดที่นับค่าได้ 2 ทิศทางทั้งแบบนับเดินหน้าและนับถอยหลัง และเมื่อ PLC ไม่มีไฟมาเลี้ยง Counter ชนิดนี้จะสามารถเก็บข้อมูลได้ เมื่อป้อนไฟให้กับ PLC อีกครั้ง อุปกรณ์นับจำนวนแบบจำค่าจะนำค่านับเดิมที่เก็บไว้ก่อนไฟดับมาใช้แล้วนับค่าต่อจากของเดิม การนับจำนวนแบบ 2 ทิศทาง (Bi-directional Counters) เป็นการใช้อุปกรณ์นับจำนวนแบบ 32 บิต ซึ่งมีค่าอยู่ในช่วง -2,147,483,647 ถึง +2,147,483,648 โดยอาศัยรีเลย์ช่วยพิเศษ M8200 ถึง M8234 เป็นตัวช่วยกำหนดทิศทางของการนับหากรีเลย์ช่วยพิเศษ ON การนับจะเป็นการนับถอยหลัง และหากการนับจำนวนถึงค่า -2,147,483,647 อุปกรณ์นับจำนวนจะนับค่า +2,147,483,648 เป็นลำดับถัดไปและนับค่าถอยหลังต่อไปเรื่อยๆ และหากรีเลย์ช่วยพิเศษ OFF การนับจะเป็นการนับเดินหน้า จำนวนถึงค่า +2,147,483,648 อุปกรณ์นับจำนวนจะนับค่า -2,147,483,647 เป็นลำดับถัดไปและนับค่าเดินหน้าต่อไปเรื่อยๆ รูปตัวอย่างการทำงานอุปกรณ์นับจำนวนเปิด-ปิดหน้าสัมผัส (Counters) แบบนับจำนวนทั่วไป(General Counter 32 bit Bi-direction) อุปกรณ์เก็บข้อมูลแบบตัวเลข (Data Registers) อุปกรณ์เก็บข้อมูลแบบตัวเลข (Data Registers) ใช้สัญลักษณ์ D ตามด้วยลำดับที่ของอุปกรณ์เก็บข้อมูลแบบตัวเลขเป็นฐานสิบ เช่น D001-D009, D019 เป็นต้น โดยอุปกรณ์เก็บข้อมูลแบบตัวเลขเป็นอุปกรณ์ที่ใช้เก็บข้อมูล (Data) แบบตัวเลขหรือข้อมูลในรูปแบบของ 16 บิต/32 บิต สามารถใช้เป็นค่าตัวเลขตั้งค่าให้กับอุปกรหน่วงค่าเวลาหรืออุปกรณ์นับจำนวน เราสามารถแบ่งเป็นอุปกรณ์เก็บข้อมูลตัวเลขทั่วไป (General use registers), อุปกรณ์เก็บข้อมูลแบบตัวเลขจำค่าได้ (Latched registers) อุปกรณ์เก็บข้อมูลชนิดพิเศษ (Diagnostic registers) อุปกรณ์เก็บข้อมูลแบบตัวเลขชนิดเก็บข้อมูลในหน่วยความจำ (File Registers) และอุปกรณ์เก็บข้อมูลแบบตัวเลขภายนอก (Externally Adjusted Registers) ตัวอย่างอุปกรณ์เก็บข้อมูลแบบตัวเลข PLC Mitsubishi FX1N, FX2N, FX3U ชนิดอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไป/PLC FX1N FX2N FX3U อุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไป 200 (D0D199) 512 (D0D511) อุปกรณ์เก็บข้อมูลแบบตัวเลขจำค่าได้ 312 (D200-D512) 7800 (D200-D7999) 7488 (D512-D7999) อุปกรณ์เก็บข้อมูลชนิดพิเศษ 256 (D8000-8255) 512 (D800-D8511) อุปกรณ์เก็บข้อมูลแบบตัวเลขชนิดเก็บ ข้อมูลในหน่วยความจำ 2000 (D1000-D2999) 700 (D1000-D7999) อุปกรณ์เก็บข้อมูลแบบตัวเลขภายนอก อุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไป (General use registers) อุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไปใช้เก็บข้อมูลที่แปลงเป็นตัวเลขหรือชุดอนุกรมของบิต ซึ่งเป็น ON หรือ OFF อุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไป 1 ตัวจะประกอบด้วย 16 บิตหรือ 1 เวิร์ด และอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไป 2 ตัวติดต่อกันสามารถใช้เป็นอุปกรณ์แบบ 32 บิต (Double Word) ข้อมูลแบบตัวเลขจะถูกเขียนลงในอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไป ค่าของข้อมูลในอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไปจะไม่เปลี่ยนแปลงจนกว่ามีการเปลี่ยนสถานะจาก RUN เป็น STOP ข้อมูลจึงจะถูกแก้ไขตามค่าที่กำหนด รูปตัวอย่างการทำงานอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไป (General use registers 16 bit) จากตัวอย่างในรูป เป็นการนำอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไปมาใช้ในการเก็บค่าคงที่ของอุปกรณ์หน่วงเวลา (Timer) โดยการใช้ร่วมกับคำสั่ง MOVE (MOV) นำค่าคงที่เลขฐานสิบ K10 จำนวนเท่ากับ 10 เก็บไว้ในอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไป D0 และสั่งให้อุปกรณ์หน่วงเวลา T0 หน่วงเวลาตามค่าของอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไป ซึ่งจะมีค่าเท่ากับ 10 โดยที่ในตัวอย่างรูปที่ 5.18 จะเป็นการทำงานในรูปแบบของข้อมูล 16 บิตนั่นคือ มีค่าไม่เกินตั้งแต่ -32,768 ถึง +32,767 รูปตัวอย่างการทำงานอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไป (General use registers 32 bit) จากตัวอย่างในรูป เป็นการนำอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไปมาใช้ในการเก็บค่าคงที่แบบ 32 บิต โดยการใช้ร่วมกับคำสั่ง MOVE (DMOV) เป็นคำสั่งในรูปแบบของข้อมูล 32 บิต ซึ่งสามารถกำหนดค่าข้อมูลได้มากกว่า -32,768 ถึง +32,767 แต่ไม่เกินช่วง -2,147,483,467 ถึง +2,147,483,648 นำค่าคงที่เลขฐานสิบ K10 จำนวนเท่ากับ 40,000 เก็บไว้ในอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไป D0 และ D2 โดยค่าที่เกิน 32,767 จะถูกเก็บในอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไปหมายเลขถัดไปคือ D1 และ D3 ตามลำดับ แล้วนำค่าที่ได้ไปใช้งานด้วยคำสั่งคำนวณผลรวมทางคณิตศาสตร์แบบ 32 บิต ADD (DADD) นำผลที่ได้จัดเก็บในอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไป D4 ซึ่งผลที่ได้มีค่าเท่ากับ 80,000 อุปกรณ์เก็บข้อมูลแบบตัวเลขแบบจำค่า (Latch Data registers) อุปกรณ์เก็บข้อมูลแบบตัวเลขแบบจำค่าใช้เก็บข้อมูลที่แปลงเป็นตัวเลขหรือชุดอนุกรมของบิดเช่นเดียวกับอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไป ข้อมูลแบตัวเลขจะถูกเขียนลงในอุปกรณ์เก็บข้อมูลแบบตัวเลขแบบจำค่า ค่าของข้อมูลในอุปกรณ์เก็บข้อมูลแบบตัวเลขทั่วไปจะไม่เปลี่ยนแปลงจนกว่ามีการเขียนข้อมูลทับลงไป ซึ่งจะไม่ขึ้นกับการเปลี่ยนแปลงสถานะจาก RUN เป็น STOP ข้อมูลก็จะไม่ถูกแก้ไขค่า อุปกรณ์ตรวจสอบสถานการณ์ทำงานและความผิดพลาด (Diagnostic Devices) การใช้งาน PLC สามารถตรวจสอบสถานการณ์ทำงานปัจจุบัน และความผิดพลาดหรือ Error ที่อาจเกิดขึ้นซึ่งการทำงานและการใช้อุปกรณ์ตรวจสอบสถานการณ์ทำงานและความผิดพลาดเป็นการใช้อุปกรณ์พิเศษภายในประกอบด้วย รีเลย์ช่วยพิเศษ (M800 ขึ้นไป) และอุปกรณ์เก็บข้อมูลชนิดพิเศษ (Data Register : D800 ขึ้นไป) โดยที่อุปกรณ์รีเลย์ช่วยพิเศษชนิดนี้คอยล์จะไม่สามารถขับออกได้ แต่หน้าสัมผัสจะสามารถอ่านและทำงานได้ และสำหรับอุปกรณ์เก็บข้อมูลชนิดพิเศษ (data Register : D) จะไม่สามารถเขียนค่าลงไปในอุปกรณ์ได้ แต่ค่าภายในอุปกรณ์จะสามารถนำมาใช้ในการเปรียบเทียบได้ เช่น อุปกรณ์ตรวจสอบสถานะการทำงานของ PLC (PLC Stats) ประกอบด้วยการใช้อุปกรณ์พิเศษภายในประเภทรีเลย์ช่วยพิเศษ M800 – M8009 โดยหน้าสัมผัส M800 – M8009 จะทำงานตามสภาวะการทำงานของ PLC เช่น หน้าสัมผัส M8000 ON (Nomally Open Contact) เมื่อ PLC ทำงาน หรือหน้าสัมผัส M8005 ON เมื่อพลังงามแบตเตอรี่ Voltage ต่ำกว่าค่าที่ตังไว้ใน D8006 เป็นต้น และอุปกรณ์เก็บข้อมูลชนิดพิเศษ D800 – D8009 เป็นการแสงสถานะของ PLC ณ ปัจจุบัน เพื่อเป็นการแสดงถึงสถานะของชุด PLC ที่ใช้ เช่น D8003 จะแสดงค่าสถานะชนิดหน่วยความจำเป็นที่ใช้ว่าเป็นชนิด RAM, EPROM, EEPROM เป็นต้น หรือ D8005 แสดงค่าพลังงาน Battery Voltage เป็นต้น อุปกรณ์แสดงสถานการณ์ทำงานของค่าเวลา (Clock Devices) ประกอบด้วยการใช้อุปกรณ์พิเศษภายในประเภทรีเลย์ช่วยพิเศษ M8010-M8019 โดยหน้าสัมผัส M8010-M8019 เป็นการทำงานในส่วนของการตั้งค่าและการใช้งาน Real Time Clock (RTC) เช่น หน้าสัมผัส M815 เมื่อสั่งให้ ON เป็นการหยุดการทำงานของนาฬิกา และเมื่อสั่งให้หน้าสัมผัส M8015 OFF นาฬิกาเริ่มทำงานอีกครั้ง หรือเมื่อสั่งให้หน้าสัมผัส M8016 ON จะทำให้ D8013-D8019 หยุดแต่นาฬิกายังคงทำงานอย่างต่อเนื่อง เป็นต้น และอุปกรณ์เก็บข้อมูลชนิดพิเศษ D8000-D8009 เป็นการแสดงสถานการณ์ทำงานของค่าเวลา Real Time Clock (RTC) เช่น D8013 เป็นการแสดงข้อมูลเวลา Real Time Clock (RTC) แสดงข้อมูลวินาที่ (0-59 วินาที) หรือ D8016 เป็นการแสดงข้อมูลเวลา Real Time Clock (RTC) แสดงข้อมูลวันที่ (วันที่ 1-31) เป็นต้น อุปกรณ์การตั้งค่าและการใช้งานร่วมกับคำสั่งพิเศษแบบ Arithemtic and Logical Operations (Operation Flags) ประกอบด้วยการใช้อุปกรณ์พิเศษภายในประเภทรีเลย์ช่วยพิเศษ M8020-M8029 โดยหน้าสัมผัส M8020-M8029 เป็นการทำงานในส่วนของการตั้งค่าและการใช้งานร่วมกับคำสั่งพิเศษแบบ Arithmetic and Logical Operations เช่น หน้าสัมผัส M8020 ON เมื่อผลของการบวกหรือลบเท่ากับ 0 ในชุดคำสั่งพิเศษ Addition (ADD) และ Subtraction (SUB) และอุปกรณ์เก็บข้อมูลแบบชนิดพิเศษ D8020-D8029 เป็นการตั้งค่าอินพุตฟิลเตอร์ (Input Filter) ที่ใช้กับหน่วยประมวลผลหนัง ซึ่งใช้กับอินพุตประเภท 24 VDC อุปกรณ์ควบคุมการทำงาน (PC Operation Mode) ประกอบด้วยการใช้อุปกรณ์ชนิดพิเศษภายในประเภทรีเลย์ช่วยพิเศษ M8030-M8039 โดยหน้าสัมผัส M8030-M8039 และอุปกรณ์เก็บข้อมูลชนิดพิเศษ D8030-D8039 เป็นการทำงานในส่วนการควบคุมกระบวนการทำงาน PLC เช่น คอยล์ M8034 ON การทำงานของอุปกรณ์เอาต์พุตทั้งหมดของระบบจะหยุดทำงาน ซึ่งโปรแกรมยังคงทำงานปกติแต่คอยล์เอาต์พุตจะหยุดทำงาน อุปกรณ์ตรวจสอบความผิดพลาด (Error Detection Devices) ประกอบด้วยการใช้อุปกรณ์พิเศษภายในประเภทรีเลย์ช่วยพิเศษ M8060-M8069 และอุปกรณ์เก็บข้อมูลชนิดพิเศษ D8060-D8069 เป็นการทำงานในส่วนของการตรวจสอบหาข้อผิดพลาดในการทำงานของ PLC เช่น D8061 เป็นการแสดงให้ทราบว่าเกิดการผิดพลาดในส่วนของ PLC (Hardware Error) นอกจากตัวอย่างที่กล่าวมาข้างต้น PLC แต่ละรุ่นจะมีรีเลย์ช่วยพิเศษ และอุปกรณ์เก็บข้อมูลชนิดพิเศษจำนวนที่แตกต่างกันไปผู้ใช้จะต้องศึกษาจากคู่มือการทำงานของ PLC รุ่นนั้นๆ เพื่อที่จะสามารถนำอุปกรณ์และคำสั่งที่มีอยู่ใน PLC มาใช้งานได้อย่างเต็มประสิทธิภาพ คำสั่งประยุกต์ (Applied Instructions) การใช้งาน PLC นอกจากผู้ใช้ต้องทราบถึงพื้นฐานการออกแบบโปรแกรมและคำสั่งพื้นฐานแล้ว ยังต้องทราบและเข้าใจหลักการทำงานและการใช้งานคำสั่งประยุกต์ด้วย คำสั่งประยุกต์คือ คำสั่งพิเศษของ PLC ใช้ในการจัดการข้อมูลที่มีความซับซ้อน และมีเงื่อนไขในการทำงานที่ซับซ้อนหลายขั้นตอน การคำนวณทางคณิตศาสตร์ เป็นต้น คำสั่งประยุกต์จะแบ่งออกเป็น 3 ระดับคือ 16 บิต (Single), 32 บิต (Double) และสัญญาณจังหวัด (Pulse) โดยที่การใช้งานในรูปแบบของ 16 บิต (Single) สามารถใช้คำสั่งได้โดยตรง ขณะที่การใช้งานในรูปแบบ 32 บิตจะทำโดยเพิ่ม “D” ลงไปด้านหน้าของคำสี่ง เช่น คำสั่ง MOV ในรูปแบบ 16 บิต และหากเป็น 32 บิต จะเป็น “DMOV” และการใช้งานสัญญาณจังหวะ (Pulse) จะเป็นการทำคำสั่งที่ขาขึ้นของสัญญาณอินพุตคือ คำสั่งจะขับสัญญาณ ON เป็นระยะเวลา 1 Scantime ดังนั้น แม้ว่าเงื่อนไขอินพุตยังคง ON อยู่ ผลของคำสั่งจำไม่ทำงานจนกว่าคำสั่งเหล่านั้นจะเปลี่ยนสถานะจาก OFF เป็น ON อีกครั้ง คำสั่งประยุกต์ในวงจร Ladder ที่ควรทราบมีดังนี้ คำสั่ง Program Flow คำสั่ง Move, Compare คำสั่ง Arithmetic, Logical Operations คำสั่ง Data Operation คำสั่ง Floating Point คำสั่ง Trigonometry คำสั่ง Real Time Clock คำสั่ง Program Flow คำสั่ง Program Flow เป็นคำสั่งประยุกต์ที่ใช้ในการควบคุมการทำงานของโปรแกรมให้สามารถเลือกช่วงการทำงานที่ต้องการได้ตามแต่ลักษณะของคำสั่ง ซึ่งคำสั่ง Program Flow นี้จะสามารถเลือกใช้คำสั่งได้หลากหลายฟังก์ชันคือ สัญลักษณ์คำสั่ง คำสั่งประยุกต์ CJ = Conditional Jump CALL = Call Subroutine SRET = Subroutine Return IRET = Interrupt Return EI = Enable Interrupt DI = Disable Interrupt FEND = First end WDT = Watchdog Timer ฟังก์ชัน Conditional Jump : CJ คำสั่งประยุกต์ประเภทนี้เป็นคำสั่งที่ใช้ให้การทำงานของแต่ละขั้นตอนกระโดดข้ามไปสู่ สเต็ปที่กำหนดเอาไว้ ซึ่งเป็นการใช้ร่วมกับอุปกรณ์ควบคุมการไหลของโปรแกรม (Pointers) (รายละเอียดบทที่ 5) ในขณะที่กระโดดข้ามไปยังสเต็ปที่กำหนด โปรแกรมที่อยู่ระหว่างช่วงที่ข้ามกระโดดจะไม่ทำงาน ซึ่งจะทำให้วัฏจักการทำงาน 1 รอบ ของโปรแกรมสั้นลง การทำงานจะรวดเร็วมากขึ้น คำสั่งประยุกต์ Conditional Jump จะใช้ร่วมกับ jump Pointer เสมอ สัญลักษณ์ที่ใช้ในภาษา Instructional List สำหรับ Conditional Jump คือ CJ และ Condition Jump pulse คือ CJP มีโปรแกรม Steps เท่ากับ 3 ส่วน อุปกรณ์ควบคุมการไหลของโปรแกรม (Pointers) มีโปรแกรม Steps เท่ากับ 1 รูปตัวอย่างการใช้งานในขณะที่ไม่ใช้คำสั่งประยุกต์ Conditional Jump : CJ ตัวอย่างการเขียนภาษา Instruction List คำสั่งประยุกต์ Conditional Jump : CJ Steps 0 LD X000 1 CJ P0 4 LD X001 5 OUT Y000 6 LD X002 7 OUT TO K100 10 P0 11 LD X003 12 OR T0 13 OUT Y001v 14 END จากตัวอย่าง แสดงการทำงานในขณะที่ไม่ใช้คำสั่งประยุกต์ Conditional Jump : CJ โปรแกรมจะทำงานตามขั้นตอนปกติ โดยเมื่อหน้าสัมผัสอินพุต X100 ON จะทำให้คอยล์เอาต์พุต Y000 ON และเมื่อหน้าสัมผัสอินพุต X002 ON จะทำให้คอยล์ (Output Coil) อุปกรณ์หน่วงค่าเวลา T0 ON จะทำงาน 10 วินาที หน้าสัมผัส T0 ON ทำให้คอยล์เอาต์พุต Y001 ON ด้วย แต่เมื่อหน้าสัมผัส X000 ON ดังตัวอย่างในรูปที่ 6.2 แสดงการทำงานในขณะที่ใช้คำสั่งประยุกต์ Conditional Jump : CJ โปรแกรมจะสั่งงานให้กระโดดข้ามไปยังสเต็ปที่มีอุปกรณ์ควบคุมการไหลของโปรแกรม (Pointers) ควบคุมอยู่ [PJ P0] ซึ่งขั้นตอนที่อยู่ในช่วยที่กระโดดข้ามจะหยุดทำงานแม้ว่าหน้าสัมผัสอินพุต X001 และ X002 จะ ON แต่ทว่าคอยล์เอาต์พุต Y000 และ T0 จะยังคง OFF รูปตัวอย่างการทำงานในขณะที่ใช้คำสั่งประยุกต์ Conditional Jump : CJ คำสั่งประยุกต์ Conditional ump : CJ สามารถกระโดดข้ามไปยังจุดใดๆ ภายในโปรแกรมหลักซึ่งจะสามารถกระโดดได้ทั่วไปข้างหน้าหรือย้อนหลัง โดยจะต้องอาศัยอุปกรณ์ควบคุมการไหลของโปรแกรม (Pointers) เป็นตำแหน่งที่จะกระโดดไป แต่การทำงานทั้งหมดต้องคำนึงถึงเวลาทำงานของโปรแกรมที่มีการกำหนดค่าเวลา Scan time จากคำสั่งประยุกต์ Watchdog Timer : WDT ด้วย หากการทำงานเกินเวลาที่กำหนด PLC จะแสดงสถานะ Error ณ จุดนั้นๆ และหยุดการทำงาน ฟังก์ชั่น Call Subroutine : CALL คำสั่งประยุกต์ประเภทนี้เป็นคำสั่งที่ใช้ในการสั่งโปรแกรมให้ทำงานของขั้นตอนกระโดดข้ามไปสู่โปรแกรมย่อยที่กำหนดตำแหน่งโดยอุปกรณ์ควบคุมการไหลของโปรแกรม (Pointers) โดยคำสั่งประยุกต์ CALL ต้องใช้ร่วมกับคำสั่งประยุกต์ First End : FEND และคำสั่งประยุกต์ Subroutine Return : SRET โดยโปรแกรมย่อยจะเขียนอยู่ใต้คำสั่ง FEND และจะทำงานภายใต้โปรแกรมย่อยจนกระทั่งถึงคำสั่ง SRET โปรแกรมจะกระโดกลับขึ้นไปที่บรรทัดใต้คำสั่งประยุกต์ CALL คำสั่งประยุกต์ Call Subroutine จะใช้ร่วมกับ Jump Pointer เสมอ สัญลักษณ์ที่ใช้ในภาษา Instruction List สำหรับ Call Subroutine คือ CALL และ Call Subroutine pulse คือ CALLP มีโปรแกรม Steps เท่ากับ 3 ส่วน อุปกรณ์ควบคุมการไหของโปรแกรม (Pointers) มีโปรแกรม Steps เท่ากับ 1 รูปตัวอย่างการใช้งานคำสั่งประยุกต์ Call subroutine : CALL ก่อนทำงาน ตัวอย่างการเขียนภาษา Instruction List คำสั่งประยุกต์ Conditional Jump : CJ Steps 0 LD X000 1 CALL P10 4 LD X001 5 OUT T0 K100 8 LD T0 8 OUT Y000 10 FEND 11 P10 12 LD M8000 13 OUT T1 K100 16 LD T1 17 CALL P11 20 SRET 21 FEND 22 P11 23 LD X003 24 OUT Y001 25 SRET 26 END จากตัวอย่าง แสดงการทำงานคำสั่งประยุกต์ Call Subroutine : CALL ก่อนทำงาน เมื่อเริ่มจ่ายกระแสไฟให้ PLC เริ่มต้นทำงาน คำสั่งรีเลย์ช่วยพิเศษ M8000 (สถานะ ON เมื่อ PLC ON) จะ NO แต่จะยังไม่มีกระแสไฟไหลผ่านไปสั่งงานคอยล์เอาต์พุต T1 จนกว่าหน้าสัมผัสอินพุต X000 ON ตัวอย่าง แสดงการทำงานคำสั่งประยุกต์ Call Subroutine : CALL หลังทำงาน เมื่อหน้าสัมผัสอินพุต X000 ON คำสั่ง CALL จะกระโดดไปที่อุปกรณ์ควบคุมการไหลของโปรแกรม (Pointers) P10 [CALL P10] ซึ่ง P10 จะต้องอยู่ใต้บรรทัดคำสั่งประยุกต์ FEND เสมอ ซึ่งจะเป็นการเริ่มต้นโปรแกรมย่อย กระแสไฟจะถูกจ่ายผ่านรีเลย์ช่วยพิเศษ M8000 ทำให้คอยล์เอาต์พุต T1 ทำงานเริ่มต้นนับเวลาตามค่าคงที่เลขฐานสิบ K100 (10 วินาที) จนครบหน้าสัมผัสอุปกรณ์หน่วงเวลา คำสั่ง CALL จะกระโดดไปที่อุปกรณ์ควบคุมการไหลของโปรแกรม (Pointers) P11 [CALL P11] เมื่อหน้าสัมผัสอินพุต X003 ON คอยล์เอาต์พุตทำงาน เมื่อถึงคำสั่งประยุกต์ SRET โปรแกรมจะย้อนกลับไปสู่สเต็บที่อยู่ใต้คั่งประยุกต์ CALL P11 ซึ่งจะเป็นสเต็ปของคำสั่งประยุกต์ SRET อีกครั้ง โปรแกรมจะย้อนกลับไปสู่สเต็ปที่อยู่ใต้คำสั่งประยุกต์ CALL P10 และจะทำงานในขั้นตอนหน้าสัมผัสอินพุต X001 ต่อไป รูปตัวอย่างการทำงานคำสั่งประยุกต์ Call Subroutine : CALL หลังทำงาน\ ฟังก์ชั่น Subroutine Return : SRET คำสั่งประยุกต์ประเภทนี้เป็นคำสั่งที่ใช้ในการบอกจุดสุดท้ายของโปรแกรมย่อย และจะกระโดดกลับไปทำงานคำสั่งที่อยู่ในสเต็ปต่อจากคำสั่งประยุกต์ CALL ที่เรียกโปรแกรมย่อยนั้น โดยสังเกตจากหมายเลขที่กำกับในอุปกรณ์ควบคุมการไหลของโปรแกรม (Pointers) โดยที่คำสั่งประยุกต์ SRET จะใช้ร่วมกับคำสั่งประยุกต์ CALL เท่านั้น และจะเขียนหลังจากสเต็ปของคำสั่งประยุกต์ FEND เสมอ ดังตัวอย่าง สัญลักษณ์ที่ใช้ในภาษา Instruction List สำหรับ Subroutine Return คือ RET มีโปรแกรม Steps เท่ากับ 1 ฟังก์ชั่น Interrupt Return : IRET, Enable Interrupt : EI, Disable Interrupt : DI คำสั่งประยุกต์ประเภทนี้เป็นคำสั่งที่ใช้รับสัญญาณอินพุต Interrupt Routine ร่วมกับ Interrupt Pointer โดยคำสั่ง IRET จะใส่ในโปรแกรมหลังคำสั่ง FEND เสมอ โดยจะมีโปรแกรม Step เท่ากับ 1 ฟังก์ชั่น First End : FEND คำสั่งประยุกต์ประเภทนี้เป็นคำสั่งที่ใช้ในการแสดงถึงจุดจบส่วนแรกของโปรแกรมหลัก และเป็นจุดเริ่มต้นของโปรแกรมย่อย ซึ่งคำสั่งประยุกต์ FEN จะทำหน้าที่คล้ายกับคำสั่ง END โดยที่คำสั่งประยุกต์ FEND จะใช้ร่วมกับคำสั่งประยุกต์ CJ, DALL, IRET เป็นต้น และสามารถใช้คำสั่งประยุกต์ FEND ได้หลายตัวใน 1 โปรแกรม ดังตัวอย่างในรูปที่ 6.3-6.4 คำสั่งประยุกต์ First End สัญลักษณ์ที่ใช้ในภาษา Instruction List คือ FEND มีโปรแกรม Steps เท่ากับ 1 ฟังก์ชั่น Watchdog Timer : WDT คำสั่งประยุกต์ WDT เป็นคำสั่งที่ใช้ในการ Reset ค่า Watchdog Timer โดยค่า Watchdog Timer จะเช็คเวลา Scan ของโปรแกรมว่าไม่เกินกว่าค่าที่ตั้งไว้ ซึ่งหาก Scan เกินกว่าที่ตั้งไว้ใน Watchdog Timer จะเกิด Error แสดงขึ้นที่จุดนั้นๆ และ PLC จะหยุดการทำงานเพื่อป้องกันความผิดพลาดที่เกิดขึ้น ค่าปกติของ Watchdog Timer (Default) คือ 100 msec. โดยเวลานี้ผู้ใช้สามารถเปลี่ยนแปลงค่าได้โดยการใส่ค่าใน Data Register D8000 (Watchdog Timer Register) [MOV K150 D8000] แสดงคำสั่งการตั้งค่าเวลา Watchdog Timer จากตัวอย่างในรูปที่6.5 เมื่อการทำงานของโปรแกรมเป็นลักษณะการย้อนกลับโดยกระโดดมาที่ P1 ซึ่งมีค่าหน่วงเวลา K1500 เท่ากับ 150 วินาที ซึ่งมากกว่าค่าของ Watchdog Timer ที่ตั้งไว้ที่ K150 เท่ากับ 15 วินาที ดังนั้น ค่าเวลาในการทำงานมีค่ามากกว่า Watchdog Timer ดังนั้น โปรแกรมจึงแสดงสถานะ WDT Error และหยุดกระบวนการทำงาน รูปตัวอย่างการใช้งานคำสั่งประยุกต์ Watchdog Timer : WDT ตัวอย่างการเขียนภาษา Instruction List คำสั่งประยุกต์ Watchdog Timer : WDT Steps 0 LD M8000 1 MOV K150 D8000 6 LD X000 7 WDT 8 P1 9 LD X001 10 OUT T0 K150 13 LD T0 14 CJ P0 17 LD T1 18 OUT Y000 19 P0 20 LD M8000 21 OUT T1 K1000 24 LD T1 25 CJ P1 28 END คำสั่งประยุกต์ Watch Dog Timer สัญลักษณ์ที่ใช้ในภาษา Instruction List สำหรับ Watch Dog Timer คือ WDT และ Watch Dog Timer pulse คือ WDTP มีโปรแกรม Steps เท่ากับ 1 คำสั่ง Move, Compare คำสั่ง Move, Compare คำสั่ง Move, Compare เป็นคำสั่งประยุกต์ที่ใช้ในการจัดการข้อมูลเชิงตัวเลขของโปรแกรมให้สามารถเคลื่อนย้ายจัดเก็บ หรือเปรียบเทียบข้อมูลตามแต่ละสถานะและเงื่อนไขที่กำหนดซึ่งคำสั่ง Move, Compare นี้จะสามารถเลือกใช้คำสั่งดังนี้ ฟังก์ชั่น Compare : CMP คำสั่งประยุกต์ประเภทนี้เป็นคำสั่งที่ใช้ในการเปรียบเทียบข้อมูล เพื่อนำไปใช้เป็นเงื่อนไขในการสั่งงานของระบบ การใช้คำประยุกต์ Compare : CMP ที่ใช้ในการเปรียบเทียบข้อมูล ทำได้โดยการใช้คำสั่ง [CMP (S1) (S2) (D)] โดยค่า S1 และ S2 จะเป็นข้อมูลที่ใช้ในการเปรียบเทียบ ซึ่งเมื่อเปรียบเทียบค่าผลที่ได้จะเป็นเงื่อนไขในการสั่งงานให้ D ทำงาน ตัวอย่างการเขียนภาษา Instruction List คำสั่งประยุกต์ Watchdog Timer : WDT Steps จากตัวอย่างเมื่อหน้าสัมผัสอินพุต X000 ทำงาน คำสั่งประยุกต์เปรียบเทียบ CMP จะเปรียบเทียบข้อมูลว่า S2 อุปกรณ์นับจำนวน (Counter:C1) มีค่ามากกว่า, น้อยกว่า หรือเท่ากับ ค่าคงที่เลขฐานสิบ K10 หากมีค่ามากกว่า C01>K10 แล้ว M2 = ON ทำให้คอยล์เอาต์พุต Y002 ทำงาน เงื่อนไขการเปรียบเทียบสามารถแบ่งออกได้เป็น 3 สภาวะคือ รูปตัวอย่างการใช้งานคำสั่งประยุกต์ Zone Compare : ZCP ตัวอย่างการเขียนภาษา Instruction List คำสั่งประยุกต์ Zone Compare : ZCP Steps จากตัวอย่างเมื่อหน้าสัมผัสอินพุต X000 ทำงาน คำสั่งประยุกต์เปรียบเทียบ ZCP จะเปรียบเทียบข้อมูลว่า S3 อุปกรณ์นับจำนวน (Counter:C1) ซึ่งมีค่าจากการนับจำนวนเท่ากับ 15 จะทำให้อยู่ในเงื่อนไขการเปรียบเทียบสภาวะที่ 2 K10 <= 15 <= H14 ทำให้ M6 = ON และทำให้คอยล์เอาต์พุต Y001 ทำงาน ฟังก์ชั่น MOVE : MOV คำสั่งประยุกต์ประเภทนี้เป็นคำสั่งที่ทำหน้าที่ในการนำเข้าข้อมูลย้ายเข้าไปจัดเก็บ ณ จุดที่ต้องการ การใช้คำสั่งประยุกต์ MOV ที่ใช้ในการเคลื่อนย้ายข้อมูลทำได้โดยการช้ำสั่ง [MOV (S) (D)] โดยค่า S จะเป็นค่าของข้อมูลเชิงตัวเลขฐานใดๆ ของอุปกรณ์ต้นทาง ค่า D เป็นจุดที่เคลื่อนย้ายข้อมูลเชิงตัวเลขซึ่งเป็นอุปกรณ์ปลายทางเพื่อจะนำค่าไปใช้ในการสั่งงานอุปกรณ์ให้ทำงานตามจำนวนเชิงตัวเลขที่นำมาเก็บไว้ต่อไป รูปตัวอย่างการทำงานคำสั่งประยุกต์ MOVE : MOV ตัวอย่างการเขียนภาษา Instruction List คำสั่งประยุกต์ MOVE : MOV Steps จากตัวอย่างเมื่อหน้าสัมผัสอินพุต X000 ทำงาน คำสั่งประยุกต์ MOV จะเคลื่อนย้ายข้อมูล (S) ที่มีค่าเท่ากับ (H0050) ไปจัดเก็บในอุปกรณ์ปลายทาง (D) อุปกรณ์เก็บค่าเชิงตัวเลข (Data Register, D01) ซึ่งมีค่าเท่ากับ S อุปกรณ์ต้นทาง เมื่อหน้าสัมผัสอินพุต X001 ทำงานจะสั่งงานให้อุปกรณ์หน่วงเวลา (Timer:T01) ทำงานด้วยจำนวนเวลาเท่ากับค่าที่อยู่ในอุปกรณ์เก็บค่าเชิงตัวเลข (Data Register, D01) จนครบจำนวน หน้าสัมผัสอุปกรณ์หน่วงเวลาจะสั่งงานให้คอยล์เอาต์พุต Y001 ทำงาน ฟังก์ชั่น EXCHANGE : XCH รูปตัวอย่างการทำงานคำสั่งประยุกต์ EXCHANGE : XCH ตัวอย่างการเขียนภาษา Instruction List คำสั่งประยุกต์ EXCHANGE : XCH Steps จากตัวอย่างรูปเป็นการทำงานขณะที่ไม่ใช้ฟังก์ชั่น Exchange : XCH เมื่อ PLC เริ่มต้นทำงานหน้าสัมผัสรีเลย์ช่วยพิเศษ M800 ทำงาน คำสั่งประยุกต์ MOV จะเคลื่อนย้ายข้อมูล (S) ที่มีค่าเท่ากับ (K50) ไปจัดเก็บในอุปกรณ์ปลายทาง (D1) และค่า (K100) ไปจัดเก็บในอุปกรณ์ปลายทาง (D10) เมื่อหน้าสัมผัสอินพุต X001 ทำงานจะสั่งงานให้อุปกรณ์หน่วงเวลา (Timer : T1) ทำงานด้วยจำนวนเวลาเท่ากับค่าที่อยู่ในอุปกรณ์เก็บค่าเชิงตัวเลข (Data Register, D01) จนครบจำนวน หน้าสัมผัสอุปกรณ์หน่วงเวลาจะสั่งงานให้คอยล์เอาต์พุต Y001 ทำงาน และหน้าสัมผัสอินพุต X002 ทำงานจะสั่งงานให้อุปกรณ์หน่วงเวลา (Timer:T2) ทำงานด้วยจำนวนเวลาเท่ากับค่าที่อยู่ในอุปกรณ์เก็บค่าเชิงตัวเลข (Data Register, D10) จนครบจำนวน หน้าสัมผัสอุปกรณ์หน่วงเวลาจะสั่งงานให้คอยล์เอาต์พุต Y002 ทำงาน ตาราง ตัวอย่างสัญลักษณ์คำสั่ง คำสั่ง จำนวนข้อมูล อินพุตหรือเอาต์พุตที่ถูกใช้งาน คำสั่งประยุกต์ Binary Coded Decimal สัญลักษณ์ที่ใช้ในภาษา Instruction List สำหรับแบบ 16 บิต Binary Coded Decimal คือ BCD และ Binary Coded Decimal pulse คือ BCDP มีโปรแกรม Steps เท่ากับ 5 ส่วน 32 บิต Double Binary Coded Decimal คือ DBCD และ Double Binary Coded Decimal Pulse คือ DBCDP มีโปรแกรม Steps เท่ากับ 9 รูปตัวอย่างการใช้งานคำสั่งประยุกต์ Binary Coded Decimal : BCD และ Binary : BIN ตัวอย่างการเขียนภาษา Instruction List คำสั่งประยุกต์ Binary Coded Decimal : BCD และ Binary : BIN Steps จากตัวอย่างเป็นการสั่งงานอุปกรณ์หน่วงเวลาตัวแรก (T1) โดยหน่วงเวลาตามค่าที่ถูกเก็บในอุปกรณ์เก็บข้อมูลเชิงตัวเลข (D0) ซึ่งอุปกรณ์เก็บข้อมูลเชิงตัวเลข D0 จะรับค่ามาจากต้นทางชนิดปุ่มกด Thumbwheel แบบ 4 ปุ่มกด (K4X010) โดยใช้อินพุตทั้งสิ้น 16 ตัว (X010-X017, X020-X027) เมื่อกดปุ่มสวิตซ์ X001 อุปกรณ์หน่วงเวลาจะเริ่มทำงานตามค่าที่กำหนดจากปุ่มกด (Thumbwheel) คำสั่ง Arithmetic, Logical Operations ฟังก์ชั่น Addition : ADD
M8020 จะถูก SET ON เมื่อผลของการบวกหรือลบเท่ากับ 0 จากคำสั่ง Addition หรือ Subtraction M8021 จะถูก SET ON เมื่อผลของการบวกหรือลบมีค่าน้อยกว่าค่าต่ำสุดมีผลลัพธ์เป็นค่าลบ โดยในชนิด 16 บิตมีค่าน้อยกว่า -32,768 และ 32 บิตมีค่าน้อยกว่า -2,147,483,648 จากคำสั่ง Addition หรือ Subtraction ดังนั้น ในตัวอย่างคอยล์เอาต์พุต Y001 จะทำงานได้เป็น 3 กรณีคือ
6.4.2 ฟังก์ชั่น Subtraction : SUB คำสั่งประยุกต์ประเภทนี้เป็นคำสั่งที่ทำหน้าที่ในการลบค่าของข้อมูลระหว่างอุปกรณ์ต้นทาง S1 และลบออกด้วยอุปกรณ์ต้นทาง S2 และจัดเก็บที่อุปกรณ์ปลายทา D การใช้คำสั่งประยุกต์ SUB ที่ใช้ในการลบค่าข้อมูลทำได้โดยการใช้คำสั่ง [SUB (S1) (S2) (D)] โดยค่า S1 และ S2 จะเป็นค่าของข้อมูลเชิงตัวเลขที่ถูกนำมาลบกัน แล้วนำผลรวมที่ได้ไปเก็บไว้ที่อุปกรณ์ปลายทาง (D) เช่น S1 = -5 และ S2 = -9 ดังนั้น D = S1 – S2 = -5 – 9 = -14 คำสั่งประยุกต์ Subtraction สัญลักษณ์ที่ใช้ในภาษา Instruction List สำหรับแบบ 16 บิต Subtraction คือ SUB และ Subtraction pulse คือ SUBP มีโปรแกรม Steps เท่ากับ 7 วน 32 บิต Double Subtraction คือ DSUB และ Double Subtraction Pulse คือ DSUBP มีโปรแกรม Steps เท่ากับ 13 จากตัวอย่างการทำงานคำสั่งประยุกต์ Subtraction : SUB จะเข้าสู่กระบวนการฟังก์ชันคำสั่งประยุกต์การลบค่าดังนี้ 1. หน้าสัมผัสอินพุต X000 ทำงานคำสั่งประยุกต์จะทำการลบค่า D1-D2 และจัดเก็บในอุปกรณ์เก็บข้อมูลแบบตัวเลข D100 ซึ่งผลที่ได้คือ 32,767-(32,760) = 32,759 ซึ่งค่าที่ได้มีค่ามากกว่า 32,767 (16 บิต) ดังนั้น จำนวนที่มากเกินค่า 32,767 ไปอีก 32,760 จำนวน เท่ากับ 0-32,759 ดังนั้น ผลที่ได้คือมีค่าเท่ากับ 32,759 2. หน้าสัมผัสอินพุต X001 ทำงานคำสั่งประยุกต์จะลบค่า D10-D11 และจัดเก็บในอุปกรณ์เก็บข้อมูลแบบตัวเลข D101 ซึ่งผลที่ได้คือ 150-150 = 0 3. หน้าสัมผัสอินพุต X002 ทำงานคำสั่งประยุกต์จะลบค่า D2 – D11 และทำการจัดเก็บในอุปกรณ์เก็บข้อมูลแบบตัวเลข D102 ซึ่งผลที่ได้คือ -32,760-150 = -32,910 ซึ่งค่าที่ได้มีค่ามากกว่า -32,768 (16 บิต) ดังนั้น จำนวนที่น้อยเกินค่า -32,768 ไปอีก 142 จำนวน เท่ากับ (-0)-(141) ดังนั้น ผลที่ได้มีค่าเท่ากับ -141 ตัวอย่างการใช้งานคำสั่งประยุกต์ Subtraction 6.13 ตัวอย่างการทำงานคำสั่งประยุกต์ Subtraction : SUB ตัวอย่างการเขียนภาษา Instruction List คำสั่งประยุกต์ Subtraction : SUB Steps 0 LD M8000 1 MOV H7FFF D1 6 MOV K150 D10 11 MOV K150 D11 16 MOV K-32760 D2 21 LD X000 22 SUB D1 D2 D100 29 LD X001 30 SUB D10 D11 D101 37 LD X002 38 SUB D2 D11 D102 45 LD M8020 46 OR M8021 47 OR M8022 48 OUT Y001 49 END ฟังก์ชั่น Multipication : MUL คำสั่งประยุกต์ประเภทนี้เป็นคำสั่งที่ทำหน้าที่ในการคูณค่าของข้อมูลระหว่างอุปกรณ์ต้นทาง S1 และ S2 และจัดเก็บที่อุปกรณ์ปลายทาง D การใช้คำสั่งประยุกต์ MUL ที่ใช้ในการคูณค่าข้อมูล เมื่อมีการประมวลผลคำสั่ง MUL ในโหมดการทำงานแบบ 16 บิตของอุปกรณ์ต้นทาง 2 ตัว (S1, S2) ที่ถูกนำมาคูณกันผลที่ได้จะเป็นแบบ 32 บิต ซึ่งทำได้โดยการใช้คำสั่ง [MUL (S1) (S2) (D)] โดยค่า S1 และ S2 จะเป็นค่าของข้อมูลเชิงตัวเลขที่ถูกนำมาคูณกัน แล้วนำผลรวมที่ได้ไปเก็บไว้ที่อุปกรณ์ปลายทาง (D) เช่น S1 = 5 และ S2 = 9 ดังนั้น D = S1 X S2 = 5 X 9 = 45 แบบ 32 บิต คำสั่งประยุกต์ Multipication สัญลักษณ์ที่ใช้ในภาษา Instruction List สำหรับ 16 บิต Multipication คือ MUL และ Multipication Pulse คือ DMULP มีโปรแกรม Steps เท่ากับ 13 อินพุตของ PLC มีกี่ประเภทภาคอินพุตอยูหลายแบบเชนกัน เพื่อรองรับอุปกรณอินพุตในแตละแบบใหเหมาะสม ✪ วงจรภาคอินพุต (Input Circuit PLC) วงจรภาคอินพุตแบงออกเปน 2 ประเภทใหญๆ คือ 1) ดิจิตอลอินพุต(Digital Input) 2) อนาลอกอินพุต(Analog Input) ✪ ดิจิตอลอินพุต (Digital Input Type)
โครงสร้างพื้นฐานของ PLC ประกอบด้วยอะไรบ้างโครงสร้างของ PLC ประกอบด้วยหน่วยท างาน 5 หน่วย ได้แก่ หน่วยประมวลผลกลาง หน่วยความจา หน่วยอินพุต หน่วยเอาต์พุต และ หน่วยจ่ายกาลังไฟฟ้า
หน่วยอินพุต PLC มีหน้าที่ใช้งานอย่างไรหน่วยอินพุต ทำหน้าที่รับสัญญาณจากอุปกรณ์ภายนอกแล้วแปลงสัญญาณให้เป็นสัญญาณที่เหมาะสมแล้วส่งให้หน่วยประมวลผลต่อไป หน่วยเอาต์พุต ทำหน้าที่รับข้อมูลจากตัวประมวลผลแล้วส่งต่อข้อมูลไปควบคุมอุปกรณ์ภายนอกเช่น ควบคุมหลอดไฟ มอเตอร์ และวาล์ว เป็นต้น
อุปกรณ์ PLC คืออะไรโปรแกรมเมเบิลลอจิกคอลโทรลเลอร์ (Programmable logic Control: PLC) เป็นอุปกรณ์ควบคุมการทำงานของเครื่องจักรและกระบวนการทำงานต่างๆ เป็นส่วนประมวลผลและสั่งการที่สำคัญเปรียบเหมือนสมองของเครื่องจักร ซึ่งทำให้ PLC กลายเป็นจุดสำคัญของการพัฒนาโรงงานสู่อุตสาหกรรม 4.0.
|