หน่วย 6 / 9

ระบบอัตโนมัติทางอุตสาหกรรมและการเขียนโปรแกรม PLC

กำไร:

  • ความสามารถในการสร้างลอจิกแลดเดอร์และโครงสร้างข้อความที่มีโครงสร้าง (ST) เป็นแบบร่างด้วย AI
  • ความสามารถในการกำหนดค่าวงจรความปลอดภัย อินเตอร์ล็อค และเครื่องจักรสถานะด้วยความช่วยเหลือของ AI
  • ความสามารถในการตรวจสอบตรรกะ PLC ที่สร้างโดย AI โดยเทียบกับแผนที่ I/O และข้อกำหนดด้านความปลอดภัย

ชื่อของความน่าเชื่อถือในด้านโรงงานคือ PLC (Programmable Logic Controller) สายพานลำเลียง, เซลล์หุ่นยนต์, สายการบรรจุ, เครื่องอัด; ทั้งหมดควบคุมโดย PLC การเขียนโปรแกรม PLC เป็นโลกที่แตกต่างจากซอฟต์แวร์เดสก์ท็อป Ladder Logic (LD) เป็นภาษาภาพที่เลียนแบบลอจิกการถ่ายทอด ในขณะที่ Structured Text (ST) เป็นภาษาต้นฉบับที่มีลักษณะคล้ายปาสคาล ทั้งสองถูกกำหนดไว้ในมาตรฐาน IEC 61131-3 ในสภาพแวดล้อมนี้ สิ่งที่สำคัญที่สุดไม่ใช่ฟังก์ชันการทำงานแต่เป็นความปลอดภัย เนื่องจากข้อผิดพลาดทางลอจิกสามารถปิดการกดผิดเวลา ซึ่งเป็นอันตรายต่อผู้ปฏิบัติงาน AI ช่วยในการสร้างแลดเดอร์และแบบร่าง ST สร้างเครื่องจักรสถานะและตรรกะในการจัดทำเอกสาร อย่างไรก็ตาม วงจรความปลอดภัย อินเตอร์ล็อค และการตรวจสอบขั้นสุดท้ายเป็นความรับผิดชอบของวิศวกร และไม่สามารถมอบหมายให้กับ AI ได้ ในหน่วยนี้ เราจะกล่าวถึงวิธีสร้างและตรวจสอบตรรกะ PLC ด้วย AI

ลอจิกการทำงานของ PLC: รอบการสแกน

PLC ไม่เพียงแค่รันโค้ดเพียงครั้งเดียวเท่านั้นและเสร็จสิ้นแล้ว โดยจะทำการสแกนแบบต่อเนื่อง ในแต่ละลูป: (1) อ่านอินพุตทั้งหมด (2) ดำเนินการตรรกะจากบนลงล่าง (3) อัพเดตเอาต์พุตทั้งหมด วงจรนี้กินเวลาเป็นมิลลิวินาทีและเกิดขึ้นซ้ำอย่างไม่มีที่สิ้นสุด ลักษณะการทำงานนี้มีผลกระทบร้ายแรงเมื่อเขียนตรรกะ PLC:

  • เอาต์พุตจะได้รับการอัปเดตที่ส่วนท้ายของลูป หากคุณกำหนดค่าให้กับเอาต์พุตมากกว่าหนึ่งตำแหน่งภายในลูป การกำหนดครั้งล่าสุดจะชนะ
  • ลอจิกทำงานตั้งแต่เริ่มต้นในแต่ละรอบ ดังนั้นตัวแปรสลักหรือสถานะจึงถูกใช้เพื่อ "จดจำ" สถานะ
  • เหตุการณ์ด่วนอาจพลาดได้หากขยายเวลาการสแกน เหตุการณ์สำคัญจะถูกบันทึกโดยการขัดจังหวะของฮาร์ดแวร์หรือตัวนับความเร็วสูง
เคล็ดลับ: เมื่อเขียนตรรกะ PLC ไปยัง AI ​​โดยพูดว่า "คำนึงถึงพฤติกรรมของลูปการสแกน ไม่มีการกำหนดที่ขัดแย้งกันให้กับเอาต์พุตเดียวกัน ให้ใช้เครื่องสลัก/สถานะสำหรับสถานะ" บางครั้ง AI ก็คิดเหมือนกับตรรกะของเดสก์ท็อปและข้ามพฤติกรรมการสแกนไป

ลอจิกแลดเดอร์และข้อความที่มีโครงสร้าง

ตรรกะเดียวกันสามารถเขียนได้ทั้งสองภาษา ตัวอย่างง่ายๆ: มอเตอร์สตาร์ทเมื่อกดปุ่มสตาร์ท หยุดและล็อคตัวเองเมื่อกดปุ่มหยุด

LADDER (การแสดงข้อความ): Start Stop Engine---| |------|/|-------------( )--- | เครื่องยนต์ |---| |-+ (หน้าสัมผัสของมอเตอร์คงอยู่ -> ซีลอิน) คำอธิบาย: เมื่อกด Start เครื่องยนต์จะเริ่มทำงาน มอเตอร์จะรักษากระแสผ่านหน้าสัมผัสของตัวเอง (ซีลอิน) เมื่อกดปุ่ม Stop (NC) โซ่จะถูกตัด

(* ตรรกะเดียวกับข้อความที่มีโครงสร้าง *)หากสตาร์ทและไม่หยุด จากนั้นเครื่องยนต์ := TRUE;END_IF;หากหยุดแล้วเครื่องยนต์ := FALSE; (* Stop ให้ความสำคัญเป็นอันดับแรกเสมอ *)END_IF;(* หมายเหตุ: ปุ่ม Stop นั้นเชื่อมต่อทางกายภาพกับ NC (ปกติปิด) ดังนั้นหากสายเคเบิลขาด Stop=FALSE และระบบจะสลับไปที่ด้านที่ปลอดภัย *)

รายละเอียดด้านความปลอดภัยเป็นสิ่งสำคัญ: ปุ่มหยุดเชื่อมต่อทางกายภาพแบบปิดตามปกติ (NC) ดังนั้น ในกรณีที่สายเคเบิลขาดหรือหน้าสัมผัสขัดข้อง สัญญาณจะถูกตัดและระบบไปที่ทิศทาง "หยุด" (ไม่เกิดข้อผิดพลาด) หากเชื่อมต่อ NO (ปกติเปิด) การหยุดจะไม่ทำงานหากสายเคเบิลขาด ซึ่งถือเป็นข้อผิดพลาดไร้เสียงที่เป็นอันตราย แม้ว่าโค้ด AI จะดูถูกต้องตามตรรกะ แต่การตัดสินใจเชื่อมต่อทางกายภาพนี้ขึ้นอยู่กับวิศวกร

ความปลอดภัย: E-Stop, Lockout และ Fail-Safe

ความปลอดภัยในระบบอัตโนมัติทางอุตสาหกรรมไม่ใช่ปัญหาที่สามารถ "จัดการในซอฟต์แวร์" ได้ เป็นการทำงานร่วมกันแบบหลายชั้นของฮาร์ดแวร์และซอฟต์แวร์ หลักการพื้นฐาน:

หลักการ

ความหมาย

ใบสมัคร

ไม่ปลอดภัย

ความล้มเหลวควรนำไปสู่ด้านที่ปลอดภัย

หน้าสัมผัส NC ฟอลต์=หยุด

ความซ้ำซ้อน

ฟังก์ชั่น Dual Channel ที่สำคัญ

ผู้ติดต่อสองคน การตรวจสอบข้าม

ประสาน

ป้องกันสถานการณ์อันตราย

เครื่องไม่ทำงานเมื่อเปิดประตู

e-หยุด

หยุดฉุกเฉินอิสระ

ในระดับฮาร์ดแวร์ เป็นอิสระจาก PLC

จุดสำคัญ: E-stop ไม่ได้ถูกปล่อยให้เป็นซอฟต์แวร์เพียงอย่างเดียว การหยุดฉุกเฉินที่เกี่ยวข้องกับความปลอดภัยมักถูกขัดจังหวะที่ระดับฮาร์ดแวร์ด้วยรีเลย์ความปลอดภัยหรือ PLC ด้านความปลอดภัย ซอฟต์แวร์ PLC มาตรฐานเป็นเลเยอร์เพิ่มเติมที่นอกเหนือจากนี้ ISO 13849 (ความปลอดภัยของเครื่องจักร) และ IEC 62061 กำหนดกรอบการทำงานสำหรับการออกแบบเหล่านี้

ข้อควรระวัง: อย่าคิดว่า E-stop หรือตรรกะการล็อคที่สร้างโดย AI มี "ซอฟต์แวร์เพียงพอ" ฟังก์ชันด้านความปลอดภัยได้รับการออกแบบตามมาตรฐานที่เกี่ยวข้อง (ISO 13849 PL, IEC 62061 SIL) รวมถึงชั้นฮาร์ดแวร์และได้รับการตรวจสอบโดยการประเมินความเสี่ยง การประเมินนี้เป็นความรับผิดชอบของวิศวกรและองค์กร AI สามารถสร้างได้เฉพาะโครงร่างและรายการตรวจสอบเท่านั้น

เครื่องจักรของรัฐ

ตรรกะอัตโนมัติที่ซับซ้อนได้รับการจัดระเบียบด้วยเครื่องสถานะแทนที่จะเป็น if-else ที่ยุ่งเหยิง: ระบบจะค้นหาสถานะบางอย่าง (ไม่ได้ใช้งาน กำลังเริ่ม ทำงาน กำลังหยุด ข้อผิดพลาด) และดำเนินการผ่านช่วงการเปลี่ยนภาพที่กำหนดไว้ โครงสร้างนี้สามารถอ่านและตรวจสอบได้

(* เครื่องสถานะสถานีเติมแบบธรรมดา *)CASE กรณี 0: (* BOSTA *) IF ปุ่มสตาร์ทและฝาครอบปิดแล้ว กรณี := 10; END_IF; 10: (* FILL *) วาล์ว := TRUE; ถ้า LevelFull แล้ว Valve := FALSE; สถานะ := 20; END_IF; หากไม่ปิดแล้วให้ปิดวาล์ว := FALSE; สถานะ := 90; END_IF; (* ความปลอดภัย *) 20: (* ท่อระบายน้ำ *) ล้าง := จริง; ถ้า LevelEmpty แล้วว่างเปล่า := FALSE; สถานะ := 0; END_IF; 90: (* ข้อผิดพลาด *) วาล์ว := FALSE; ว่างเปล่า := FALSE; (* แอคชูเอเตอร์ทั้งหมดปลอดภัย *) หากปุ่มรีเซ็ตแล้วสถานะ := 0; END_IF;END_CASE;

ในโครงสร้างนี้ การเปลี่ยนผ่านด้านความปลอดภัย (ไปที่สถานะข้อผิดพลาดหากเปิดฝาครอบ ปิดแอคชูเอเตอร์ทั้งหมด) จะถูกรวมไว้อย่างชัดเจนในทุกสถานการณ์ AI สร้างโครงกระดูกเครื่องจักรของรัฐอย่างรวดเร็ว แต่เหตุการณ์ด้านความปลอดภัยใดจะออกมาจากสถานการณ์ใดที่มาจากการวิเคราะห์ความเสี่ยงของคุณ

พรอมต์ที่อ่อนแอ / พรอมต์ที่แข็งแกร่ง

อ่อนแอ:"เขียนโค้ด PLC สำหรับสายพานลำเลียง"(ไม่มี I/O ไม่มีความปลอดภัย ภาษาไม่ชัดเจน ไม่สามารถเขียนแบบร่างภาคสนามได้) แข็งแกร่ง:"เขียนตัวควบคุมสายพานลำเลียงด้วยข้อความที่มีโครงสร้าง IEC 61131-3 อินพุต:เริ่ม (NO), หยุด (NC), PhotocellProductVar (NO), CoverOpen (ความปลอดภัย NC)เอาต์พุต: มอเตอร์สายพานลำเลียง, ไฟเตือน ใช้เครื่องสถานะ (ไม่ได้ใช้งาน ทำงานอยู่ ข้อผิดพลาด) หยุดมีความสำคัญกว่าเสมอ ไปที่ เกิดข้อผิดพลาดเมื่อฝาเปิดและดับเครื่องยนต์ สมมติการประเมินความปลอดภัยของรหัสนี้

มินิเคส

วิศวกรระบบอัตโนมัติ Tolga ขอรหัส ST จาก AI สำหรับสายการบรรจุ AI ​​สร้างโค้ดที่ดูเหมือนว่าจะใช้งานได้ แต่เมื่อ Tolga ตรวจสอบความถูกต้องกับแมป I/O เขาก็พบปัญหาสองประการ ประการแรก: AI ได้ปฏิบัติต่อปุ่ม Stop ด้วยตรรกะ NO (เปิดตามปกติ); Tolga เปลี่ยนสิ่งนี้ให้เป็นตรรกะป้องกันความผิดพลาดของ NC เพราะหากสายเคเบิลขาด สายจะต้องหยุด ประการที่สอง: การล็อคซึ่งเครื่องจะต้องหยุดเมื่อฝาครอบป้องกันเปิดอยู่ จะถูกตรวจสอบเมื่อสตาร์ทเครื่องเท่านั้น ไม่ใช่ระหว่างการทำงาน Tolga แก้ไขให้มีการตรวจสอบในทุกรอบการสแกน นอกจากนี้ยังเป็นการยืนยันว่า E-stop จริงไม่ได้ตกเป็นหน้าที่ของซอฟต์แวร์ แต่ยังถูกขัดจังหวะในฮาร์ดแวร์ด้วยรีเลย์ความปลอดภัยอีกด้วย AI ให้โครงกระดูกตรรกะของมันอย่างรวดเร็ว แต่การตรวจสอบของวิศวกรทำให้ตัดสินใจด้านความปลอดภัยได้สามประการ: การเชื่อมต่อที่ไม่ปลอดภัย การล็อคถาวร และ E-stop ของฮาร์ดแวร์

ข้อผิดพลาดทั่วไป

  • การเชื่อมต่อปุ่ม Stop/E-stop เข้ากับ NO และสูญเสียพฤติกรรมการป้องกันข้อผิดพลาดในกรณีที่สายเคเบิลขาด
  • ตรวจสอบการเชื่อมต่อกัน (ฝาปิด, ม่านแสง) เมื่อสตาร์ทเครื่องเท่านั้น และข้ามการทำงานไป
  • ปล่อยให้ฟังก์ชันความปลอดภัยเป็นหน้าที่ของซอฟต์แวร์ทั้งหมด และละเลยเลเยอร์ฮาร์ดแวร์
  • ลืมพฤติกรรมของลูปการสแกนและกำหนดข้อมูลที่ขัดแย้งกันให้กับเอาต์พุตเดียวกัน
  • การทำให้ตรรกะที่ซับซ้อนไม่สามารถตรวจสอบได้โดยการเขียนด้วย if-else ที่ยุ่งเหยิงแทนการใช้ state machine
  • ยอมรับการตีความมาตรฐานความปลอดภัยของ AI โดยไม่ต้องตรวจสอบด้วยข้อความอย่างเป็นทางการ

โดยสรุป

  • PLC ทำงานโดยมีรอบการสแกนอย่างต่อเนื่อง เอาต์พุตจะได้รับการอัปเดตเมื่อสิ้นสุดลูป
  • Ladder และ Structured Text แสดงตรรกะเดียวกันในภาษา IEC 61131-3 สองภาษาที่แตกต่างกัน
  • เชื่อมต่อปุ่ม Stop/E-stop NC และ Fail-safe แล้ว ความล้มเหลวควรนำไปสู่ด้านที่ปลอดภัย
  • การล็อคจะถูกตรวจสอบทุกรอบการสแกน รวมถึงชั้นฮาร์ดแวร์ความปลอดภัย
  • เครื่องสถานะทำให้ตรรกะที่ซับซ้อนสามารถอ่านและตรวจสอบได้
  • การประเมินความปลอดภัย (ISO 13849/IEC 62061) ถือเป็นความรับผิดชอบของวิศวกร AI สร้างร่าง

งานสมัคร

เลือกสถานการณ์ระบบอัตโนมัติแบบง่ายๆ (เช่น สตาร์ท/หยุดมอเตอร์สลักในตัว แอคชูเอเตอร์สองตำแหน่ง หรือสถานีเติมน้ำมันขนาดเล็ก) จดรายการ I/O และข้อกำหนดด้านความปลอดภัยของคุณ (ปุ่มใดเป็น NC ซึ่งเชื่อมต่อกัน) ให้ AI สร้างเครื่องสถานะข้อความที่มีโครงสร้างพร้อมบริบทนี้ จากนั้นตรวจสอบเอาต์พุตเพื่อความปลอดภัย: (1) Stop ให้ทางออกที่ปลอดภัยจากแต่ละสถานะ (2) มีการตรวจสอบการเชื่อมต่อกันในแต่ละรอบการสแกน (3) แอคชูเอเตอร์ทั้งหมดไปที่สถานะปลอดภัยในกรณีที่เกิดข้อผิดพลาดหรือไม่? จดบันทึกข้อบกพร่องด้านความปลอดภัยและการแก้ไขที่คุณพบ