CMP
คือคำสั่งเปรียบเทียบข้อมูลระหว่างอุปกรณ์แบบเวิร์ดสองตัว
ผลของการเปรียบเทียบจะนำไปสั่งให้หน้าสัมผัสของอุปกรณ์แบบบิตONและOFF
รูปแบบของคำสั่งคือ
S1และS2คือ ข้อมูลของอุปกรณ์แบบเวิร์ดที่ต้องการเปรียบเทียบ ,Dคืออุปกรณ์แบบบิตเช่น M,Y,SและD*.b ส่วนบรรทัดถัดมาDคือหน้าสัมผัสของอุปกรณ์แบบบิตD ,D+1 คือหน้าสัมผัสของอุปกรณ์แบบบิตตัวที่1ของบิตD และD+2 คือหน้าสัมผัสของอุปกรณ์แบบบิตตัวที่2ของบิตD
รูปแบบการทำงาน
การ ทำงานของคำสั่งCMP,DCMPเป็นแบบต่อเนื่อง ส่วนคำสั่งCMPP,DCMPPเป็นแบบพัลล์ คำสั่งCMP,CMPPใช้กับข้อมูลแบบ16บิต คำสั่งDCMP,DCMPPใช้กับข้อมูลแบบ32บิต
ตาราง 3.18 แสดงอุปกรณ์ที่สามารถใช้ได้
ตัวอย่างเช่นต้องการเปรียบเทียบค่าคงที่K10กับเคาน์เตอร์C1 โดยต้องการให้บิตปลายทางคือM100,M101และM102 ทำงานจะเขียนคำสั่งได้ดังนี้
จาก รูป3.71 เมื่อX0 ON คำสั่งCMPจะเปรียบเทียบค่าของC1กับค่าคงที่10 ถ้าC1น้อยกว่า10 จะทำให้M102 ทำงาน(M100และM101ไม่ทำงาน) และหน้าสัมผัสของM102จะต่อให้Y2ทำงาน ถ้าC1เท่ากับ10 M101จะทำงานและทำให้Y1ทำงาน ถ้าC1มากกว่า10 หน้าสัมผัสM100จะทำงานและต่อให้Y0ทำงาน หน้าสัมผัสทั้ง3จะทำงานไม่พร้อมกัน
สถานะของอุปกรณ์แบบบิตจะเปลี่ยนแปลงตามการเปรียบเทียบค่าระหว่างS1กับS2 ถ้าX0 OFFคำสั่งจะไม่ทำงาน แต่สถานะของบิตจะไม่เปลี่ยนแปลง ถ้าเราจะหยุดการทำงานของM100ถึงM102 ต้องOFF X0 ก่อน และสามารถใช้คำสั่งZRSTหรือRSTหยุดการทำงานของM100ถึงM102 ดังรูป3.72
จาก รูป3.72 เมื่อX1ทำงานM100ถึงM102จะหยุดการทำงาน แต่ถ้าX1 ON ในขณะที่คำสั่งCMPทำงาน M100ถึงM102จะOFFได้ชั่วคราวเท่านั้น ถ้าX1 OFF บิตM100ถึงM102 ก็จะกลับมาทำงานอีกครั้ง
กรณีที่คำสั่งกำลังทำงาน และคำสั่งรีเซ็ตอยู่ step สูงกว่า การประมวลผลจะทำตามคำสั่งที่อยู่บรรทัดล่าง ดังนั้นคำสั่งZRST หรือRSTจะไม่สามารถหยุดการทำงานของอุปกรณ์แบบบิตได้
S1และS2คือ ข้อมูลของอุปกรณ์แบบเวิร์ดที่ต้องการเปรียบเทียบ ,Dคืออุปกรณ์แบบบิตเช่น M,Y,SและD*.b ส่วนบรรทัดถัดมาDคือหน้าสัมผัสของอุปกรณ์แบบบิตD ,D+1 คือหน้าสัมผัสของอุปกรณ์แบบบิตตัวที่1ของบิตD และD+2 คือหน้าสัมผัสของอุปกรณ์แบบบิตตัวที่2ของบิตD
รูปแบบการทำงาน
การ ทำงานของคำสั่งCMP,DCMPเป็นแบบต่อเนื่อง ส่วนคำสั่งCMPP,DCMPPเป็นแบบพัลล์ คำสั่งCMP,CMPPใช้กับข้อมูลแบบ16บิต คำสั่งDCMP,DCMPPใช้กับข้อมูลแบบ32บิต
ตาราง 3.18 แสดงอุปกรณ์ที่สามารถใช้ได้
- ใช้ได้เฉพาะPLC FX3UและFX3UC
- ใช้ได้เฉพาะPLC FX3G,FX3GC,FX3UและFX3UC
- ใช้ได้เฉพาะPLC FX3UและFX3UC
ตัวอย่างเช่นต้องการเปรียบเทียบค่าคงที่K10กับเคาน์เตอร์C1 โดยต้องการให้บิตปลายทางคือM100,M101และM102 ทำงานจะเขียนคำสั่งได้ดังนี้
จาก รูป3.71 เมื่อX0 ON คำสั่งCMPจะเปรียบเทียบค่าของC1กับค่าคงที่10 ถ้าC1น้อยกว่า10 จะทำให้M102 ทำงาน(M100และM101ไม่ทำงาน) และหน้าสัมผัสของM102จะต่อให้Y2ทำงาน ถ้าC1เท่ากับ10 M101จะทำงานและทำให้Y1ทำงาน ถ้าC1มากกว่า10 หน้าสัมผัสM100จะทำงานและต่อให้Y0ทำงาน หน้าสัมผัสทั้ง3จะทำงานไม่พร้อมกัน
สถานะของอุปกรณ์แบบบิตจะเปลี่ยนแปลงตามการเปรียบเทียบค่าระหว่างS1กับS2 ถ้าX0 OFFคำสั่งจะไม่ทำงาน แต่สถานะของบิตจะไม่เปลี่ยนแปลง ถ้าเราจะหยุดการทำงานของM100ถึงM102 ต้องOFF X0 ก่อน และสามารถใช้คำสั่งZRSTหรือRSTหยุดการทำงานของM100ถึงM102 ดังรูป3.72
จาก รูป3.72 เมื่อX1ทำงานM100ถึงM102จะหยุดการทำงาน แต่ถ้าX1 ON ในขณะที่คำสั่งCMPทำงาน M100ถึงM102จะOFFได้ชั่วคราวเท่านั้น ถ้าX1 OFF บิตM100ถึงM102 ก็จะกลับมาทำงานอีกครั้ง
กรณีที่คำสั่งกำลังทำงาน และคำสั่งรีเซ็ตอยู่ step สูงกว่า การประมวลผลจะทำตามคำสั่งที่อยู่บรรทัดล่าง ดังนั้นคำสั่งZRST หรือRSTจะไม่สามารถหยุดการทำงานของอุปกรณ์แบบบิตได้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น