ข้อผิดพลาดในการแก้ไขออนไลน์ของ MicroLogix 1400 กับคำสั่ง MUL
ข้อผิดพลาดในการแก้ไขออนไลน์ของ MicroLogix 1400 เมื่อเพิ่มคำสั่ง MUL ที่มีตัวถูกดำเนินการเป็นค่าคงที่ แก้ไขโดยใช้แอดเดรส Float แทนค่าคงที่เป็นแหล่งที่มาของการคูณ
การแก้ไข MicroLogix 1400 แบบออนไลน์ผ่าน EtherNet/IP อาจล้มเหลวพร้อมข้อความ “ไม่สามารถคอมไพล์โปรแกรมได้ ข้อผิดพลาดในการแก้ไขออนไลน์” เมื่อราง MUL ใช้ค่าคงที่แบบลิเทอรัล เช่น 0.7 กับแหล่งข้อมูลชนิดจำนวนเต็ม โปรเจกต์เดียวกันอาจตรวจสอบแบบออฟไลน์ได้โดยไม่มีข้อผิดพลาด เนื่องจากคอมไพเลอร์สำหรับการแก้ไขออนไลน์ของคอนโทรลเลอร์ใช้กฎเกี่ยวกับตัวถูกดำเนินการที่เข้มงวดกว่าเส้นทางออฟไลน์ และค่าลิเทอรัลแบบทศนิยมในคำสั่งคำนวณมักเป็นจุดที่ทำให้เกิดปัญหา
แทนที่ค่าลิเทอรัลด้วยแอดเดรสไฟล์ Float ที่มีค่า 0.7 อยู่แล้ว จากนั้นทดสอบการแก้ไขออนไลน์อีกครั้งก่อนเปลี่ยนแปลงสิ่งอื่น
อาการและการกำหนดค่า
| รายการ | การตั้งค่าที่มักทำให้เกิดข้อผิดพลาด |
|---|---|
| คอนโทรลเลอร์ | MicroLogix 1400 ซีรีส์ A หรือ B |
| ซอฟต์แวร์ | RSLogix 500 พร้อมการแก้ไขออนไลน์ |
| คำสั่ง | MUL |
| แหล่งข้อมูล A | N7:2 (จำนวนเต็ม) |
| แหล่งข้อมูล B | ค่าคงที่ 0.7 |
| ปลายทาง | N7:7 (จำนวนเต็ม) |
สาเหตุหลัก
การแก้ไขออนไลน์บน MicroLogix 1400 จะตรวจสอบขนาดและชนิดของตัวถูกดำเนินการอย่างเข้มงวดกว่าการคอมไพล์แบบออฟไลน์ ค่าคงที่แบบทศนิยมในแหล่งข้อมูล B อาจผ่านการตรวจสอบออฟไลน์บางรูปแบบได้ แต่ถูกปฏิเสธเมื่อการแก้ไขต้องคอมไพล์เข้าสู่อิมเมจที่กำลังทำงานอยู่ ข้อความออฟไลน์ที่เกี่ยวข้อง เช่น “ขนาดตัวถูกดำเนินการไม่ตรงกัน” ชี้ไปยังกลุ่มปัญหาชนิดข้อมูลไม่ตรงกันเดียวกัน การเปลี่ยนแปลงบางอย่างใน MicroLogix ไม่สามารถทำแบบออนไลน์ได้ การแก้ไขโครงสร้างบางประเภทจำเป็นต้องแก้ไขแบบออฟไลน์และดาวน์โหลดโปรแกรม
ขั้นตอนการแก้ไข
- ระบุแอดเดรส Float ที่ยังไม่ได้ใช้งาน เช่น F8:7
- กำหนดค่าเริ่มต้นให้ F8:7 เป็น 0.7 ขณะออฟไลน์ หรือใช้ราง MOV/รางกำหนดค่าเริ่มต้นเพียงครั้งเดียว
- แก้ไข MUL โดยให้แหล่งข้อมูล A ยังคงเป็น N7:2 เปลี่ยนแหล่งข้อมูล B เป็น F8:7 และให้ปลายทางยังเป็น N7:7 หรือเปลี่ยนเป็น Float หากต้องการความแม่นยำ
- ยอมรับการแก้ไขออนไลน์และยืนยันว่ารางคอมไพล์ได้
- บังคับค่าแหล่งข้อมูล A ที่ทราบแน่นอน แล้วตรวจสอบผลคูณขณะรันไทม์
MUL แหล่งข้อมูล A: N7:2 แหล่งข้อมูล B: F8:7 <-- แอดเดรส Float ไม่ใช่ค่าลิเทอรัล 0.7 ปลายทาง: N7:7 <-- หรือ F8:8 เพื่อความแม่นยำเต็มรูปแบบ
ผลกระทบของชนิดข้อมูล
| การกำหนดค่า | ผลลัพธ์ |
|---|---|
| แหล่งข้อมูล B = ค่าคงที่ 0.7 | เกิดข้อผิดพลาดในการคอมไพล์การแก้ไขออนไลน์ |
| แหล่งข้อมูล B = F8:7, ปลายทาง = N7:7 | การแก้ไขสำเร็จ แต่มีการตัดหรือปัดเศษเป็นจำนวนเต็ม |
| แหล่งข้อมูล B = F8:7, ปลายทาง = F8:8 | การแก้ไขสำเร็จและคงความแม่นยำแบบ Float เต็มรูปแบบ |
เมื่อ N7:2 = 10 และตัวคูณเป็น 0.7 ปลายทางชนิดจำนวนเต็มจะได้ค่า 7 ตามพฤติกรรมการปัดหรือตัดเศษ ไม่ใช่ค่า Float 7.0 ที่คงไว้ เลือกชนิดปลายทางอย่างรอบคอบเมื่อค่าดังกล่าวถูกส่งต่อไปยัง PID การสเกล หรือการเปรียบเทียบ
ข้อจำกัดที่เกี่ยวข้องกับการแก้ไขออนไลน์ของคำสั่งคำนวณ
ความไวของคอมไพเลอร์ออนไลน์ในลักษณะเดียวกันนี้ยังพบได้กับ DIV นิพจน์รูปแบบ CPT หากมีให้ใช้งาน และชุดคำสั่งที่ผสม INT/Float ซึ่งป้อนอย่างเร่งรีบระหว่างการปรับแก้ระบบที่กำลังทำงาน วิศวกรมักลองแก้ไขออนไลน์ต่อเนื่องสามครั้ง โดยเปลี่ยนเฉพาะค่าคงที่ จากนั้นเปลี่ยนชนิดไฟล์ปลายทาง แล้วจึงเปลี่ยนทั้งราง โดยไม่ออกจากโหมด Run การคอมไพล์ที่ล้มเหลวแต่ละครั้งจะทิ้งคิวการแก้ไขที่รอดำเนินการไว้จนทำให้สับสน ให้ยกเลิกการแก้ไขที่ล้มเหลวอย่างถูกต้อง ทำการเปลี่ยนแปลงที่สอดคล้องกันเพียงครั้งเดียว (เปลี่ยนจากค่าลิเทอรัลเป็นแอดเดรส Float) แล้วกดยอมรับ หาก MicroLogix รายงานว่าไม่สามารถคอมไพล์โปรแกรมได้หลังจากลองหลายครั้ง ให้ทำงานออฟไลน์ ตรวจสอบว่ามีไฟล์อยู่จริง (สร้าง F8 พร้อมจำนวนสมาชิกที่เพียงพอ) จากนั้นดาวน์โหลดอิมเมจที่ทราบว่าใช้งานได้ก่อนลองทำงานออนไลน์อีกครั้ง
ควรตรวจสอบด้วยว่าไฟล์ Float ไม่ได้ถูกป้องกันด้วยสิทธิ์เข้าถึงตารางข้อมูลหรือรหัสผ่านที่อนุญาตให้ตรวจสอบแบบออฟไลน์ แต่บล็อกการแก้ไขแบบออนไลน์ คอนโทรลเลอร์ MicroLogix 1400 ซีรีส์ A และซีรีส์ B รองรับการแก้ไขออนไลน์เมื่อเฟิร์มแวร์และรุ่นของ RSLogix 500 สอดคล้องกัน รุ่นเครื่องมือที่ไม่ตรงกันอาจแสดงข้อความ “ข้อผิดพลาดในการแก้ไขออนไลน์” เดียวกันด้วยสาเหตุอื่น จัดเตรียมอิมเมจของคอนโทรลเลอร์ทดสอบที่แสดงการทำงานสำเร็จของ MUL ที่ใช้ตัวถูกดำเนินการ Float เพื่อให้ช่างเทคนิคเปรียบเทียบกับโปรเจกต์ในโรงงานได้
การตรวจสอบและข้อจำกัดเพิ่มเติม
หลังจากยอมรับการแก้ไขแล้ว ให้บังคับค่า N7:2 หลายค่า และติดตามหรือดูค่าทั้งปลายทางจำนวนเต็มและ Float หากมีทั้งสองแบบ ยืนยันว่าการแก้ไขออนไลน์คอมไพล์ได้โดยไม่มีข้อผิดพลาด ตรวจสอบว่า MUL ทำงานถูกต้องขณะรันไทม์ และหากต้องการความแม่นยำ ให้เปลี่ยนปลายทางเป็น Float เช่น F8:8 หากยังเกิดข้อผิดพลาดหลังเปลี่ยนค่าลิเทอรัลแล้ว ให้จำลองปัญหาแบบออฟไลน์ก่อน จากนั้นดาวน์โหลดโปรแกรม ใช้ค่าที่อ้างอิงด้วยแอดเดรสแทนค่าคงที่แบบฝังในคำสั่งทุกครั้งที่คาดว่าจะต้องแก้ไขระบบแบบออนไลน์ จัดทำเอกสารแนวทางการโปรแกรม MicroLogix ไว้ร่วมกับมาตรฐาน PLC และ PAC อื่น ๆ เพื่อไม่ให้ช่างเทคนิคเสียเวลาติดตามปัญหา Ethernet ทั้งที่แท้จริงเป็นกฎของตัวถูกดำเนินการ
เกี่ยวกับผู้เขียน
Mark Townsend | วิศวกรระบบอัตโนมัติอาวุโส – ระบบ Allen-Bradley
Mark Townsend เป็นวิศวกรระบบอัตโนมัติอาวุโสที่มีประสบการณ์กับแพลตฟอร์ม Allen-Bradley มากกว่า 18 ปี ครอบคลุม ControlLogix, CompactLogix และ SLC-500 รุ่นเก่า งานประจำของเขาคือการพัฒนาและนำลอจิก RSLogix / Studio 5000 และ HMI FactoryTalk View ไปใช้งานจริงบนระบบที่มีอุปกรณ์หลายรุ่นและใช้งานมานาน