Inquiry
Form loading...
โครงสร้างโปรแกรมและคุณลักษณะของ PLC ทั่วไปหลายตัวของ Siemens

ข่าว

โครงสร้างโปรแกรมและคุณลักษณะของ PLC ทั่วไปหลายตัวของ Siemens

08-12-2023
1. โครงสร้างโปรแกรมของ PLC ขนาดเล็กต่างประเทศบางตัว โปรแกรมผู้ใช้ของ PLC เหล่านี้ประกอบด้วยโปรแกรมหลัก โปรแกรมย่อย และโปรแกรมขัดจังหวะ ในแต่ละรอบการสแกน CPU จะเรียกโปรแกรมหลักหนึ่งครั้ง โปรแกรมหลักสามารถเรียกโปรแกรมย่อยได้ และระบบควบคุมขนาดเล็กสามารถมีได้เฉพาะโปรแกรมหลักเท่านั้น โปรแกรมขัดจังหวะใช้เพื่อตอบสนองเหตุการณ์ขัดจังหวะอย่างรวดเร็ว เมื่อเหตุการณ์ขัดจังหวะเกิดขึ้น CPU จะหยุดรันโปรแกรมหรืองานที่กำลังประมวลผลในขณะนั้น และรันโปรแกรมขัดจังหวะที่เขียนโดยผู้ใช้ หลังจากรันโปรแกรมที่ถูกขัดจังหวะแล้ว ให้รันโปรแกรมหรืองานที่ถูกระงับต่อไป รูทีนย่อยและโปรแกรมขัดจังหวะไม่มีตัวแปรโลคัล และรูทีนย่อยไม่มีพารามิเตอร์อินพุตและเอาต์พุต 2. โครงสร้างโปรแกรมของ Siemens S7-200 ประมวลผลอินพุต/เอาต์พุตรูปภาพ (I/Q), หน่วยความจำตัวแปร V, หน่วยความจำภายในบิต M, ไทเมอร์ T, ตัวนับ C ฯลฯ เป็นตัวแปรร่วม หน่วยองค์กรโปรแกรม (POU) ของ S7-200 ประกอบด้วยโปรแกรมหลัก โปรแกรมย่อย และโปรแกรมขัดจังหวะ POU แต่ละตัวมีตัวแปรภายในเครื่องขนาด 64 ไบต์ของตัวเอง ซึ่งสามารถใช้ได้เฉพาะใน POU ของตัวเองเท่านั้น ในทางตรงกันข้าม สามารถใช้ตัวแปรร่วมใน POU แต่ละรายการได้ ต่อไปนี้เป็นตัวแปรโลคัลที่รูทีนย่อยสามารถใช้ได้: 1) TEMP (ตัวแปรชั่วคราว) เป็นตัวแปรที่จัดเก็บไว้ชั่วคราวในพื้นที่ข้อมูลในเครื่อง ตัวแปรชั่วคราวที่กำหนดไว้จะใช้เมื่อมีการดำเนินการ POU เท่านั้น หลังจากดำเนินการ POU แล้ว ค่าของตัวแปรชั่วคราวจะไม่ถูกบันทึก 2) IN คือพารามิเตอร์อินพุตที่ POU เรียกใช้ 3) OUT คือพารามิเตอร์เอาต์พุตที่ส่งคืนไปยัง POU ที่เรียกใช้ (ผลลัพธ์การดำเนินการของรูทีนย่อย) 4)IN_ OUT คือ input_ ค่าเริ่มต้นของพารามิเตอร์เอาต์พุตจะถูกถ่ายโอนไปยังรูทีนย่อยโดย POU ที่เรียกมัน และผลลัพธ์การดำเนินการของรูทีนย่อยจะถูกส่งกลับไปยัง POU ที่เรียกมันด้วยตัวแปรเดียวกัน ตัวแปรเฉพาะที่ของโปรแกรมหลักและโปรแกรมขัดจังหวะจะมีเพียงตัวแปรชั่วคราวเท่านั้น โปรแกรมย่อยที่มีพารามิเตอร์อินพุตและเอาต์พุตและตัวแปรเฉพาะที่นั้นง่ายต่อการเข้าใจการเขียนโปรแกรมเชิงโครงสร้าง ซึ่งมีประโยชน์อย่างยิ่งสำหรับผู้ผลิตที่ผลิตอุปกรณ์หรือสายการผลิตที่คล้ายคลึงกันมาเป็นเวลานาน โปรแกรมเมอร์จากผู้ผลิตเหล่านี้ได้เขียนรูทีนย่อยทั่วไปจำนวนมากสำหรับแต่ละส่วนประกอบหรือฟังก์ชันกระบวนการของอุปกรณ์ แม้ว่าคุณจะไม่ทราบรหัสภายในของรูทีนย่อย ตราบใดที่คุณทราบฟังก์ชันของรูทีนย่อยและความหมายของพารามิเตอร์อินพุตและเอาต์พุต คุณสามารถ "รวบรวม" โปรแกรมควบคุมที่ตรงตามความต้องการของผู้ใช้ที่แตกต่างกันได้อย่างรวดเร็วผ่าน การโทรระหว่างโปรแกรม เหมือนกับการใช้ชิปวงจรรวมดิจิทัลเพื่อสร้างวงจรดิจิทัลที่ซับซ้อน ถ้ารูทีนย่อยไม่มีพารามิเตอร์อินพุตและเอาต์พุต จะไม่มีอินเทอร์เฟซที่ชัดเจนระหว่างรูทีนกับโปรแกรมที่เรียกใช้ ดังนั้นจึงเป็นการยากที่จะตระหนักถึงการเขียนโปรแกรมแบบมีโครงสร้าง หากรูทีนย่อยไม่มีตัวแปรโลคัล รูทีนย่อยจะสามารถแลกเปลี่ยนข้อมูลกับโปรแกรมที่เรียกใช้ผ่านตัวแปรโกลบอลเท่านั้น และมีเพียงตัวแปรโกลบอลเท่านั้นที่สามารถใช้ได้ภายในรูทีนย่อย เมื่อย้ายโปรแกรมย่อยและโปรแกรมขัดจังหวะไปยังโปรเจ็กต์อื่น คุณต้องจัดเรียงตัวแปรโกลบอลที่ใช้ใหม่เพื่อให้แน่ใจว่าจะไม่เกิดข้อขัดแย้งเกี่ยวกับที่อยู่ เมื่อโปรแกรมมีความซับซ้อนมากและมีโปรแกรมย่อยและโปรแกรมขัดจังหวะจำนวนมาก ภาระงานของการกำหนดที่อยู่ใหม่ประเภทนี้จะมีขนาดใหญ่มาก หากโปรแกรมย่อยและโปรแกรมขัดจังหวะมีตัวแปรโลคัล และใช้เฉพาะตัวแปรโลคัลแทนตัวแปรโกลบอล เนื่องจากไม่มีที่อยู่ขัดแย้งกับ POU อื่น โปรแกรมย่อยสามารถย้ายไปยังโปรเจ็กต์อื่นโดยไม่มีการเปลี่ยนแปลงใดๆ 3. โครงสร้างโปรแกรมของ Siemens S7-300/400 S7-300/400 แบ่งโปรแกรมย่อยออกเป็นฟังก์ชัน (หรือฟังก์ชัน) และบล็อกฟังก์ชัน ฟังก์ชั่นของ S7-300/400 โดยพื้นฐานแล้วเหมือนกับฟังก์ชั่นของ S7-200 พวกเขามีพารามิเตอร์อินพุต เอาต์พุต และตัวแปรชั่วคราว ค่าที่ส่งคืนในข้อมูลภายในเครื่องของฟังก์ชันนั้นเป็นพารามิเตอร์เอาต์พุตจริงๆ พวกเขาไม่มีพื้นที่จัดเก็บเฉพาะ หลังจากฟังก์ชันเสร็จสิ้น ข้อมูลในตัวแปรชั่วคราวจะไม่ถูกบันทึก คุณสามารถใช้ตัวแปรร่วมเพื่อบันทึกข้อมูลที่จำเป็นต้องบันทึกหลังจากการทำงานของฟังก์ชัน แต่จะส่งผลต่อความสามารถในการพกพาของฟังก์ชัน บล็อกฟังก์ชันคือบล็อกโปรแกรมที่เขียนโดยผู้ใช้โดยมีพื้นที่จัดเก็บข้อมูลเฉพาะของตัวเอง (เช่น บล็อกข้อมูลพื้นหลัง) พารามิเตอร์อินพุตและเอาต์พุตและตัวแปรคงที่ของบล็อกฟังก์ชันจะถูกจัดเก็บไว้ในบล็อกข้อมูลพื้นหลังที่ระบุ และตัวแปรชั่วคราวจะถูกจัดเก็บไว้ในสแต็กข้อมูลภายในเครื่อง แต่ละครั้งที่มีการเรียกใช้บล็อกฟังก์ชัน จะต้องระบุบล็อกข้อมูลพื้นหลัง หลังจากดำเนินการบล็อกฟังก์ชันแล้ว ข้อมูลในบล็อกข้อมูลพื้นหลังจะไม่สูญหาย แต่ข้อมูลในสแต็กข้อมูลภายในเครื่องจะไม่ถูกบันทึก บล็อกฟังก์ชันใช้แนวคิดของการห่อหุ้มที่คล้ายคลึงกับ C++ ซึ่งห่อหุ้มโปรแกรมและข้อมูลเข้าด้วยกันและมีการพกพาที่ดี บล็อกข้อมูลที่ใช้ร่วมกันของ S7-300/400 สามารถใช้กับบล็อกลอจิคัลทั้งหมดได้ 4. โครงสร้างโปรแกรมของ IEC61131-3 IEC61131-3 เป็นมาตรฐานภาษาการเขียนโปรแกรมของ PLC IEC61131-3 เป็นมาตรฐานภาษาการเขียนโปรแกรมแรกและแห่งเดียวในโลก ไออีซี 61131-3 มี POU สามประเภท: โปรแกรม บล็อกฟังก์ชัน และฟังก์ชัน ฟังก์ชันนี้เป็น POU ที่มีพารามิเตอร์อินพุตหลายตัวและพารามิเตอร์เอาต์พุตหนึ่งตัว (ค่าส่งคืน) ชื่อของค่าที่ส่งคืนจะเหมือนกับชื่อของฟังก์ชัน จำเป็นต้องกำหนดประเภทข้อมูลของค่าตอบแทน การปรับอุปกรณ์ ฟังก์ชั่นที่มีค่าอินพุตเดียวกันจะส่งกลับผลลัพธ์เดียวกันเสมอ ฟังก์ชันสามารถเรียกใช้ฟังก์ชันอื่นได้ แต่เรียกฟังก์ชันบล็อกหรือโปรแกรมไม่ได้ ตัวแปรท้องถิ่นที่สามารถกำหนดโดยฟังก์ชัน ได้แก่ VAR และ VAR_ INPUT บล็อกฟังก์ชันคือ POU ที่มีพารามิเตอร์อินพุต/เอาต์พุตหลายรายการและหน่วยจัดเก็บข้อมูลภายใน ค่าพารามิเตอร์เอาต์พุตของบล็อกฟังก์ชันสัมพันธ์กับค่าของหน่วยเก็บข้อมูลภายใน บล็อกฟังก์ชันสามารถเรียกใช้ฟังก์ชันอื่นๆ ได้ บล็อกหรือฟังก์ชันแต่ไม่สามารถเรียกโปรแกรมได้ ก่อนที่จะเรียกใช้บล็อกฟังก์ชัน คุณต้องประกาศอินสแตนซ์ของบล็อกฟังก์ชันสำหรับการเรียกแต่ละครั้งใน POU ที่จะเรียกใช้บล็อกฟังก์ชัน ระบบปฏิบัติการจะจัดสรรพื้นที่จัดเก็บข้อมูลเฉพาะสำหรับบล็อกฟังก์ชันสำหรับการโทรแต่ละครั้ง (คล้ายกับบล็อกข้อมูลพื้นหลังของ S7-300/400) ฟังก์ชันไม่จำเป็นต้องสร้างอินสแตนซ์เมื่อมีการเรียกใช้เนื่องจากไม่มีพื้นที่เก็บข้อมูลภายใน ลักษณะการทำงานและวัตถุประสงค์ของโปรแกรมคล้ายกับบล็อกฟังก์ชัน โปรแกรมมีพารามิเตอร์อินพุตและเอาต์พุตและสามารถมีพื้นที่จัดเก็บข้อมูลภายในได้ โปรแกรมมักจะมีการเรียกฟังก์ชันและบล็อกฟังก์ชัน IEC61131-3 กำหนดฟังก์ชันมาตรฐานและบล็อกฟังก์ชันหลายรายการ 5. ความแตกต่างระหว่างโครงสร้างโปรแกรม S7-300/400 และ IEC61131-3 1) ฟังก์ชั่นของ S7-300/400 สามารถมีพารามิเตอร์เอาต์พุตได้หลายตัว และค่าที่ส่งคืนก็เป็นพารามิเตอร์เอาต์พุตด้วย ฟังก์ชันของ IEC61131-3 มีค่าส่งคืนเพียงค่าเดียวเท่านั้น 2) พื้นที่จัดเก็บพิเศษสำหรับการจัดเก็บตัวแปรภายในเครื่องในบล็อกฟังก์ชัน IEC61131-3 ได้รับการจัดสรรเมื่อประกาศอินสแตนซ์ของบล็อกฟังก์ชัน ข้อมูลนี้ไม่ชัดเจนสำหรับผู้ใช้ และ POU อื่นๆ ไม่สามารถเข้าถึงพื้นที่จัดเก็บข้อมูลได้โดยตรง ตัวแปรเฉพาะที่ (ไม่รวมตัวแปรชั่วคราว) ของบล็อกฟังก์ชันของ S7-300/400 จะถูกจัดเก็บไว้ในบล็อกข้อมูลพื้นหลัง POU อื่นๆ สามารถเข้าถึงตัวแปรในบล็อกข้อมูลเบื้องหลังได้ หากคุณต้องการเรียกใช้บล็อกฟังก์ชันเดียวกันหลายครั้งเพื่อควบคุมวัตถุที่ถูกควบคุมประเภทเดียวกัน คุณต้องระบุบล็อกข้อมูลพื้นหลังสำหรับการเรียกแต่ละครั้ง แต่มีตัวแปรเล็กน้อยในบล็อกข้อมูลพื้นหลังเหล่านี้ ดังนั้นจึงมีตัวแปรจำนวนมาก บล็อกข้อมูลพื้นหลังในโครงการ สามารถใช้บล็อกข้อมูลพื้นหลังหลายบล็อกเพื่อลดจำนวนบล็อกข้อมูลพื้นหลัง อย่างไรก็ตาม จำเป็นต้องเพิ่มบล็อกฟังก์ชันสำหรับจัดการพื้นหลังหลายรายการ 3) ตัวแปรเฉพาะที่ของบล็อกฟังก์ชัน S7-300/400 ประกอบด้วยตัวแปรชั่วคราวและตัวแปรคงที่ ตัวแปรภายใน Var ของบล็อกฟังก์ชัน IEC61131-3 เทียบเท่ากับตัวแปรคงที่ของ S7-300/400 4) S7-300/400 แบ่งพื้นที่ข้อมูลออกเป็นบล็อกข้อมูลเพื่อใช้งาน ขนาดของบล็อกข้อมูลสัมพันธ์กับประเภทข้อมูลและจำนวนตัวแปรที่กำหนดในบล็อกข้อมูล IEC61131-3 ไม่มีแนวคิดเรื่องบล็อกข้อมูล