การใช้งานตรรกะบันได XOR แบบสวิตช์ 3 ตัวด้วยบิตภายใน
สร้างวงจรไฟ XOR ด้วยสวิตช์ 3-SPST ใน LogixPro หรือ RSLogix 500 โดยใช้บิตรีเลย์ภายใน รวมตารางค่าความจริง สมการบูลีน และการตรวจสอบความถูกต้องแล้ว
แบบฝึกหัดคลาสสิก—สวิตช์ SPST สามตัวควบคุมไฟหนึ่งดวง โดยสวิตช์ตัวใดตัวหนึ่งสามารถสลับเอาต์พุตได้—ลดรูปเป็น exclusive OR สามอินพุต (พาริตีคี่) XOR สองอินพุตคือแขนง XIC/XIO แบบไขว้กันที่คุ้นเคย การขยายรูปแบบนี้ด้วยแขนงขนานที่สามไม่ได้เป็นการสรุปที่ถูกต้อง แต่จะทำให้เกิดผลรวมของ XOR รายคู่ ซึ่งทำให้ไฟติดเมื่อสวิตช์ทั้งสามปิด ทั้งที่ข้อกำหนดต้องการเฉพาะพาริตีคี่ วิธีแก้ที่ยอมรับคือใช้บิตรีเลย์ภายในเก็บค่า A⊕B จากนั้นใช้ขั้นที่สองคำนวณ (A⊕B)⊕C
พาริตีคี่ของอินพุตสามตัวที่คงสถานะไว้คือ XOR ไม่ใช่โครงสร้างแบบ inclusive สามแขนง
ตารางค่าความจริง (1 = ปิด)
| S1 | S2 | S3 | ไฟ | พาริตี |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | คู่ |
| 0 | 0 | 1 | 1 | คี่ |
| 0 | 1 | 0 | 1 | คี่ |
| 0 | 1 | 1 | 0 | คู่ |
| 1 | 0 | 0 | 1 | คี่ |
| 1 | 0 | 1 | 0 | คู่ |
| 1 | 1 | 0 | 0 | คู่ |
| 1 | 1 | 1 | 1 | คี่ |
พื้นฐานอินพุตสองตัว
|--[S1 XIC]-+-[S2 XIO]-+ | | +--( Light )--| |--[S1 XIO]-[S2 XIC]---+ |
แมป I:1/0, I:1/1 → O:2/0 ในซิมูเลเตอร์ LogixPro/RSLogix 500 (หรือใช้แท็ก BOOL ใน Logix Designer) ตรวจสอบทั้งสี่แถวก่อนเพิ่ม S3
เหตุใดแขนงขนานที่สามจึงทำงานผิดพลาด
Y = (S1⊕S2) ∨ (S1⊕S3) ∨ (S2⊕S3) จะให้ค่าเป็นจริงสำหรับแถวที่สวิตช์ทั้งสามปิด เพราะแต่ละคู่มีสถานะแตกต่างกัน นักเรียนอธิบายอาการนี้ว่าไฟ “ติดค้าง” เมื่อสวิตช์สองตัวปิด นี่คือพฤติกรรมแบบ inclusive ของ XOR รายคู่ ไม่ใช่ XOR
ต่อ XOR แบบอนุกรมผ่าน B3:0/0 (หรือแท็ก BOOL)—อย่าสร้างขั้นแบบ OR เป็นคู่ในรางขนาน
การใช้งานบิตภายใน
รางที่ 2 — S1 XOR S2 -> B3:0/0 |--[I:1/0 XIC]-+-[I:1/1 XIO]-+ | | +--( B3:0/0 )--| |--[I:1/0 XIO]-[I:1/1 XIC]---+ | รางที่ 3 — B3:0/0 XOR S3 -> O:2/0 |--[B3:0/0 XIC]-+-[I:1/2 XIO]-+ | | +--( O:2/0 )--| |--[B3:0/0 XIO]-[I:1/2 XIC]---+ |
เนื่องจาก XOR มีสมบัติการเปลี่ยนหมู่ ลำดับของสวิตช์จึงไม่สำคัญ ใน Logix Designer สมการเดียวกันจะกลายเป็น XOR_Mid := S1 XOR S2; Light := XOR_Mid XOR S3; สำหรับ structured text หรือใช้รูปแบบหน้าสัมผัสเดียวกันกับแท็ก BOOL บิตกลางจะถูกเขียนในรางหนึ่งและอ่านในรางถัดไปภายในการสแกนเดียวกัน ซึ่งเป็นการทำงานโดยตั้งใจและมีเสถียรภาพสำหรับรูปแบบนี้
ขั้นตอนใน LogixPro / RSLogix 500
- ยืนยันโมดูลอินพุตและเอาต์พุตแบบดิสครีตในซิมูเลเตอร์ (การแมปเริ่มต้น I:1 / O:2)
- ตรวจสอบว่ามีไฟล์ไบนารี B3 ที่มีบิตสำรอง หรือสร้างแท็ก BOOL ชื่อ XOR_Mid ใน Logix Designer
- สร้างรางที่ 2 เพื่อขับ B3:0/0 จาก S1 และ S2 โดยใช้หน้าสัมผัส XIC/XIO แบบไขว้กัน
- สร้างรางลอจิกที่ 3 ซึ่งขับ O:2/0 จาก B3:0/0 และ S3 โดยใช้รูปแบบไขว้เดียวกัน
- ดาวน์โหลด วางโปรเซสเซอร์ไว้ในโหมด RUN และล้างการบังคับค่าทั้งหมดก่อนตรวจสอบตารางค่าความจริง
- บังคับค่า LED อินพุตแต่ละดวงและหลอดไฟเอาต์พุตชั่วขณะอย่างละครั้งเพื่อตรวจสอบการเดินสาย จากนั้นล้างการบังคับค่าทั้งหมด
แผนผังแอดเดรสและทางเลือก
| แพลตฟอร์ม | ค่าขั้นกลาง | หมายเหตุ |
|---|---|---|
| RSLogix 500 / SLC | B3:0/0 | บิตในไฟล์ไบนารี |
| Logix Designer | XOR_Mid BOOL | ขอบเขตโปรแกรมหรือตัวควบคุม |
| LogixPro | B3:0/0 | ตรงกับแล็บ RSLogix 500 |
การวินิจฉัยเสริมควรเก็บค่าขั้นกลางทั้งสองค่าไว้: B3:0/0 = S1 XOR S2 และ B3:0/1 = mid XOR S3 จากนั้นขับหลอดไฟจาก B3:0/1 เพื่อให้มอนิเตอร์ออนไลน์สามารถแยกตรวจสอบสายโซ่ได้ที่แต่ละขั้น คำสั่ง XOR ระดับเวิร์ดสามารถรวมอินพุตจำนวนมากเพื่อตรวจสอบพาริตีได้ แต่จะบดบังรูปแบบการสอนสำหรับสวิตช์สามตัว หลีกเลี่ยงการขยายแบบ De Morgan ที่พยายามแสดง “ไม่มีอินพุตสองตัวใดเป็นจริงพร้อมกัน” ด้วยกลุ่มคอนแทคจำนวนมาก—การต่อแบบคาสเคดผ่านบิตภายในยังคงเป็นรูปแบบที่ดูแลรักษาได้ง่าย ทั้งบนชุดฝึกอบรมและตัวเลือกโหมดในระบบผลิตจริง
ตรวจสอบแถวพาริตีทั้งแปดแถวก่อนอนุมัติใช้งาน
- ตรวจสอบแถวทั้งแปดของตารางค่าความจริงโดยล้างการบังคับค่าทั้งหมดแล้ว
- ยืนยันว่าเมื่อสวิตช์ปิดสามตัว หลอดไฟจะติด (พาริตีคี่)
- สลับสวิตช์แต่ละตัวเพียงตัวเดียว แล้วตรวจสอบว่าเอาต์พุตเปลี่ยนสถานะ
- หากหลอดไฟค้างเมื่อมีอินพุตสองตัว แสดงว่ายังคงเป็นลอจิก OR แบบจับคู่
- ทางเลือก: ตั้งสัญญาณเตือนเมื่อสวิตช์เลือกโหมดแบบคงสถานะสองตัวอ่านค่าเป็นจริงหลังการหน่วงลบสัญญาณในเครื่องจักรจริง
- บันทึกเอกลักษณ์บูลีน (A XOR B) XOR C ไว้ในคอมเมนต์ของรางลอจิกสำหรับผู้แก้ไขคนถัดไป
ตั้งชื่อตัวแปรขั้นกลางตามหน้าที่ (XOR_Mid, ModeParity) แทนการใช้บิตนิรนาม เพื่อให้การแก้ไขครั้งถัดไปยังอ่านเข้าใจง่าย ใช้หลักการเดียวกันนี้กับกลุ่มระบบที่มีมาตรฐานร่วมกันภายใต้ระบบ PLC และ PAC
เกี่ยวกับผู้เขียน
มาร์ก ทาวน์เซนด์ | วิศวกรระบบอัตโนมัติอาวุโส – ระบบ Allen-Bradley
มาร์ก ทาวน์เซนด์เป็นวิศวกรระบบอัตโนมัติอาวุโสที่มีประสบการณ์บนแพลตฟอร์ม Allen-Bradley มากกว่า 18 ปี ครอบคลุม ControlLogix, CompactLogix และ SLC-500 รุ่นเก่า งานประจำวันของเขาคือการพัฒนาลอจิกใน RSLogix / Studio 5000 และการนำ HMI ของ FactoryTalk View มาใช้งานบนกลุ่มเครื่องจักรเก่าและกลุ่มระบบที่ผสมกัน