Implementing 3-Switch XOR Ladder Logic with Internal Bit — figure 1

การใช้งานตรรกะบันได XOR แบบสวิตช์ 3 ตัวด้วยบิตภายใน

สร้างวงจรไฟ XOR ด้วยสวิตช์ 3-SPST ใน LogixPro หรือ RSLogix 500 โดยใช้บิตรีเลย์ภายใน รวมตารางค่าความจริง สมการบูลีน และการตรวจสอบความถูกต้องแล้ว

แบบฝึกหัดคลาสสิก—สวิตช์ SPST สามตัวควบคุมไฟหนึ่งดวง โดยสวิตช์ตัวใดตัวหนึ่งสามารถสลับเอาต์พุตได้—ลดรูปเป็น exclusive OR สามอินพุต (พาริตีคี่) XOR สองอินพุตคือแขนง XIC/XIO แบบไขว้กันที่คุ้นเคย การขยายรูปแบบนี้ด้วยแขนงขนานที่สามไม่ได้เป็นการสรุปที่ถูกต้อง แต่จะทำให้เกิดผลรวมของ XOR รายคู่ ซึ่งทำให้ไฟติดเมื่อสวิตช์ทั้งสามปิด ทั้งที่ข้อกำหนดต้องการเฉพาะพาริตีคี่ วิธีแก้ที่ยอมรับคือใช้บิตรีเลย์ภายในเก็บค่า A⊕B จากนั้นใช้ขั้นที่สองคำนวณ (A⊕B)⊕C

การใช้งานลอจิกแบบบันได XOR 3 สวิตช์ด้วยบิตภายใน — รูปที่ 1

พาริตีคี่ของอินพุตสามตัวที่คงสถานะไว้คือ 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 3 สวิตช์ด้วยบิตภายใน — รูปที่ 2

ต่อ 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

  1. ยืนยันโมดูลอินพุตและเอาต์พุตแบบดิสครีตในซิมูเลเตอร์ (การแมปเริ่มต้น I:1 / O:2)
  2. ตรวจสอบว่ามีไฟล์ไบนารี B3 ที่มีบิตสำรอง หรือสร้างแท็ก BOOL ชื่อ XOR_Mid ใน Logix Designer
  3. สร้างรางที่ 2 เพื่อขับ B3:0/0 จาก S1 และ S2 โดยใช้หน้าสัมผัส XIC/XIO แบบไขว้กัน
  4. สร้างรางลอจิกที่ 3 ซึ่งขับ O:2/0 จาก B3:0/0 และ S3 โดยใช้รูปแบบไขว้เดียวกัน
  5. ดาวน์โหลด วางโปรเซสเซอร์ไว้ในโหมด RUN และล้างการบังคับค่าทั้งหมดก่อนตรวจสอบตารางค่าความจริง
  6. บังคับค่า 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 ที่พยายามแสดง “ไม่มีอินพุตสองตัวใดเป็นจริงพร้อมกัน” ด้วยกลุ่มคอนแทคจำนวนมาก—การต่อแบบคาสเคดผ่านบิตภายในยังคงเป็นรูปแบบที่ดูแลรักษาได้ง่าย ทั้งบนชุดฝึกอบรมและตัวเลือกโหมดในระบบผลิตจริง

ตรวจสอบแถวพาริตีทั้งแปดแถวก่อนอนุมัติใช้งาน

  1. ตรวจสอบแถวทั้งแปดของตารางค่าความจริงโดยล้างการบังคับค่าทั้งหมดแล้ว
  2. ยืนยันว่าเมื่อสวิตช์ปิดสามตัว หลอดไฟจะติด (พาริตีคี่)
  3. สลับสวิตช์แต่ละตัวเพียงตัวเดียว แล้วตรวจสอบว่าเอาต์พุตเปลี่ยนสถานะ
  4. หากหลอดไฟค้างเมื่อมีอินพุตสองตัว แสดงว่ายังคงเป็นลอจิก OR แบบจับคู่
  5. ทางเลือก: ตั้งสัญญาณเตือนเมื่อสวิตช์เลือกโหมดแบบคงสถานะสองตัวอ่านค่าเป็นจริงหลังการหน่วงลบสัญญาณในเครื่องจักรจริง
  6. บันทึกเอกลักษณ์บูลีน (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 มาใช้งานบนกลุ่มเครื่องจักรเก่าและกลุ่มระบบที่ผสมกัน

การใช้งานตรรกะบันได XOR แบบสวิตช์ 3 ตัวด้วยบิตภายใน

สร้างวงจรไฟ XOR ด้วยสวิตช์ 3-SPST ใน LogixPro หรือ RSLogix 500 โดยใช้บิตรีเลย์ภายใน รวมตารางค่าความจริง สมการบูลีน และการตรวจสอบความถูกต้องแล้ว

แบบฝึกหัดคลาสสิก—สวิตช์ SPST สามตัวควบคุมไฟหนึ่งดวง โดยสวิตช์ตัวใดตัวหนึ่งสามารถสลับเอาต์พุตได้—ลดรูปเป็น exclusive OR สามอินพุต (พาริตีคี่) XOR สองอินพุตคือแขนง XIC/XIO แบบไขว้กันที่คุ้นเคย การขยายรูปแบบนี้ด้วยแขนงขนานที่สามไม่ได้เป็นการสรุปที่ถูกต้อง แต่จะทำให้เกิดผลรวมของ XOR รายคู่ ซึ่งทำให้ไฟติดเมื่อสวิตช์ทั้งสามปิด ทั้งที่ข้อกำหนดต้องการเฉพาะพาริตีคี่ วิธีแก้ที่ยอมรับคือใช้บิตรีเลย์ภายในเก็บค่า A⊕B จากนั้นใช้ขั้นที่สองคำนวณ (A⊕B)⊕C

การใช้งานลอจิกแบบบันได XOR 3 สวิตช์ด้วยบิตภายใน — รูปที่ 1

พาริตีคี่ของอินพุตสามตัวที่คงสถานะไว้คือ 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 3 สวิตช์ด้วยบิตภายใน — รูปที่ 2

ต่อ 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

  1. ยืนยันโมดูลอินพุตและเอาต์พุตแบบดิสครีตในซิมูเลเตอร์ (การแมปเริ่มต้น I:1 / O:2)
  2. ตรวจสอบว่ามีไฟล์ไบนารี B3 ที่มีบิตสำรอง หรือสร้างแท็ก BOOL ชื่อ XOR_Mid ใน Logix Designer
  3. สร้างรางที่ 2 เพื่อขับ B3:0/0 จาก S1 และ S2 โดยใช้หน้าสัมผัส XIC/XIO แบบไขว้กัน
  4. สร้างรางลอจิกที่ 3 ซึ่งขับ O:2/0 จาก B3:0/0 และ S3 โดยใช้รูปแบบไขว้เดียวกัน
  5. ดาวน์โหลด วางโปรเซสเซอร์ไว้ในโหมด RUN และล้างการบังคับค่าทั้งหมดก่อนตรวจสอบตารางค่าความจริง
  6. บังคับค่า 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 ที่พยายามแสดง “ไม่มีอินพุตสองตัวใดเป็นจริงพร้อมกัน” ด้วยกลุ่มคอนแทคจำนวนมาก—การต่อแบบคาสเคดผ่านบิตภายในยังคงเป็นรูปแบบที่ดูแลรักษาได้ง่าย ทั้งบนชุดฝึกอบรมและตัวเลือกโหมดในระบบผลิตจริง

ตรวจสอบแถวพาริตีทั้งแปดแถวก่อนอนุมัติใช้งาน

  1. ตรวจสอบแถวทั้งแปดของตารางค่าความจริงโดยล้างการบังคับค่าทั้งหมดแล้ว
  2. ยืนยันว่าเมื่อสวิตช์ปิดสามตัว หลอดไฟจะติด (พาริตีคี่)
  3. สลับสวิตช์แต่ละตัวเพียงตัวเดียว แล้วตรวจสอบว่าเอาต์พุตเปลี่ยนสถานะ
  4. หากหลอดไฟค้างเมื่อมีอินพุตสองตัว แสดงว่ายังคงเป็นลอจิก OR แบบจับคู่
  5. ทางเลือก: ตั้งสัญญาณเตือนเมื่อสวิตช์เลือกโหมดแบบคงสถานะสองตัวอ่านค่าเป็นจริงหลังการหน่วงลบสัญญาณในเครื่องจักรจริง
  6. บันทึกเอกลักษณ์บูลีน (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 มาใช้งานบนกลุ่มเครื่องจักรเก่าและกลุ่มระบบที่ผสมกัน

แสดงความคิดเห็น

โปรดทราบว่าความคิดเห็นจะต้องได้รับการอนุมัติก่อนที่จะได้รับการเผยแพร่