Grafana+Zabbix: การแสดงภาพการทำงานของสายการผลิต

ในบทความนี้ ฉันต้องการแบ่งปันประสบการณ์ของฉันในการใช้ระบบโอเพ่นซอร์ส Zabbix และ Grafana เพื่อให้เห็นภาพการทำงานของสายการผลิต ข้อมูลนี้อาจเป็นประโยชน์สำหรับผู้ที่มองหาวิธีที่รวดเร็วในการแสดงหรือวิเคราะห์ข้อมูลที่รวบรวมในระบบอัตโนมัติทางอุตสาหกรรมหรือโครงการ IoT อย่างรวดเร็ว บทความนี้ไม่ใช่บทช่วยสอนโดยละเอียด แต่เป็นแนวคิดสำหรับระบบตรวจสอบที่ใช้ซอฟต์แวร์โอเพ่นซอร์สสำหรับโรงงานผลิต

เครื่องมือ

Zabbix – เราใช้มันมาเป็นเวลานานในการตรวจสอบโครงสร้างพื้นฐานด้านไอทีของโรงงาน ระบบนี้สะดวกและเป็นสากลมากจนเราเริ่มป้อนข้อมูลจากสายการผลิต เซ็นเซอร์ และตัวควบคุมลงไป สิ่งนี้ทำให้เราสามารถรวบรวมข้อมูลตัววัดทั้งหมดไว้ในที่เดียว สร้างกราฟง่ายๆ ของการใช้ทรัพยากรและประสิทธิภาพของอุปกรณ์ แต่เราขาดการวิเคราะห์และกราฟที่สวยงามจริงๆ

กราฟาน่า เป็นเครื่องมืออันทรงพลังสำหรับการวิเคราะห์และการแสดงภาพข้อมูล ปลั๊กอินจำนวนมากช่วยให้คุณสามารถดึงข้อมูลจากแหล่งต่าง ๆ (zabbix, clickhouse, influxDB) ประมวลผลได้ทันที (คำนวณค่าเฉลี่ย ผลรวม ผลต่าง ฯลฯ ) และวาดกราฟทุกประเภท (จากเส้นธรรมดา มาตรวัดความเร็ว, ตารางไปจนถึงไดอะแกรมที่ซับซ้อน)

Draw.io – บริการที่ช่วยให้คุณสามารถวาดจากบล็อกไดอะแกรมธรรมดาไปจนถึงแผนผังชั้นในตัวแก้ไขออนไลน์ มีเทมเพลตสำเร็จรูปและวัตถุที่วาดไว้มากมาย ข้อมูลสามารถส่งออกไปยังรูปแบบกราฟิกหลักทั้งหมดหรือ xml

วางทั้งหมดเข้าด้วยกัน

มีบทความมากมายที่เขียนเกี่ยวกับวิธีติดตั้งและกำหนดค่า Grafana และ Zabbix ฉันจะบอกคุณเกี่ยวกับจุดกำหนดค่าหลัก

“โหนดเครือข่าย” (โฮสต์) ถูกสร้างขึ้นบนเซิร์ฟเวอร์ Zabbix ซึ่งจะเป็นเจ้าของ “องค์ประกอบข้อมูล” (รายการ) พร้อมตัวชี้วัดจากเซ็นเซอร์ของเรา ขอแนะนำให้คิดชื่อของโหนดและองค์ประกอบข้อมูลล่วงหน้า และทำให้พวกมันมีโครงสร้างมากที่สุดเท่าที่จะเป็นไปได้ เนื่องจากเราจะเข้าถึงพวกมันจากกราฟานาผ่านนิพจน์ทั่วไป วิธีการนี้สะดวกเนื่องจากคุณสามารถรับข้อมูลจากกลุ่มองค์ประกอบได้ด้วยการร้องขอเพียงครั้งเดียว

ในการกำหนดค่า Grafana คุณจะต้องติดตั้งปลั๊กอินเพิ่มเติม:

  • Zabbix โดย Alexander Zobnin (alexanderzobnin-zabbix-app) - บูรณาการกับ zabbix
  • natel-discrete-panel – ปลั๊กอินสำหรับการแสดงภาพแบบไม่ต่อเนื่องบนกราฟแนวนอน
  • pierosavi-imageit-panel – ปลั๊กอินสำหรับแสดงข้อมูลที่ด้านบนของภาพ
  • agenty-flowcharting-panel – ปลั๊กอินสำหรับการแสดงไดอะแกรมไดนามิกจาก Draw.io

การบูรณาการกับ Zabbix นั้นได้รับการกำหนดค่าใน grafana รายการเมนู ConfigurationData SourceZabbix ที่นั่นคุณต้องระบุที่อยู่ของเซิร์ฟเวอร์ api zabbix นี่คือสิ่งที่ฉันมี http://zabbix.local/zabbix/api_jsonrpc.phpและเข้าสู่ระบบด้วยรหัสผ่านเพื่อเข้าใช้งาน หากทุกอย่างถูกต้องเมื่อบันทึกการตั้งค่าจะมีข้อความพร้อมหมายเลขเวอร์ชัน api: zabbix API version: 5.0.1

การสร้างแดชบอร์ด

นี่คือจุดเริ่มต้นของความมหัศจรรย์ของ Grafana และปลั๊กอินของมัน

ปลั๊กอิน Natel-discrete-panel
เรามีข้อมูลเกี่ยวกับสถานะของมอเตอร์บนไลน์ (ทำงาน = 1, ไม่ทำงาน = 0) เมื่อใช้กราฟแยก เราสามารถวาดสเกลที่จะแสดง: สถานะของเครื่องยนต์ จำนวนนาที/ชั่วโมง หรือ % ที่เครื่องยนต์ทำงาน และความถี่ที่สตาร์ท

Grafana+Zabbix: การแสดงภาพการทำงานของสายการผลิต
การแสดงสถานะเครื่องยนต์

ในความคิดของฉัน นี่เป็นหนึ่งในกราฟที่ดีที่สุดสำหรับการแสดงประสิทธิภาพของฮาร์ดแวร์ คุณสามารถดูได้ทันทีว่าไม่ได้ใช้งานมานานแค่ไหนและในโหมดใดที่ทำงานบ่อยขึ้น อาจมีข้อมูลจำนวนมาก สามารถรวมเป็นช่วง แปลงเป็นค่าได้ (หากค่าเป็น “1” ให้แสดงเป็น “เปิด”)

ปลั๊กอิน pierosavi-imageit-panel

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

Grafana+Zabbix: การแสดงภาพการทำงานของสายการผลิต
แผนภาพเตาเผาพร้อมหน่วยวัดอุณหภูมิและความดัน

ปลั๊กอินแผงควบคุมผังงานตัวแทน

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

กำลังรับข้อมูล

การสร้างองค์ประกอบการแสดงภาพใดๆ ใน Grafana เริ่มต้นด้วยการร้องขอข้อมูลจากแหล่งที่มา ในกรณีของเราคือ zabbix เมื่อใช้แบบสอบถาม เราจำเป็นต้องได้รับหน่วยวัดทั้งหมดที่เราต้องการใช้ในไดอะแกรม รายละเอียดเมตริกคือชื่อขององค์ประกอบข้อมูลใน Zabbix คุณสามารถระบุเมตริกแต่ละรายการหรือชุดที่กรองผ่านนิพจน์ทั่วไปได้ ในตัวอย่างของฉัน ฟิลด์รายการมีนิพจน์: “/(^line 1)|(availability)|(zucchini)/” - หมายความว่า: เลือกเมตริกทั้งหมดที่มีชื่อขึ้นต้นด้วย "บรรทัด 1" อย่างเคร่งครัดหรือมีคำว่า "availability" ” หรือมีคำว่า “บวบ”

Grafana+Zabbix: การแสดงภาพการทำงานของสายการผลิต
ตัวอย่างการตั้งค่าคำขอข้อมูลเกี่ยวกับเอ็นจิ้นบรรทัดแรกและความพร้อมใช้งานของวัตถุดิบ

การแปลงข้อมูล

ข้อมูลต้นฉบับอาจไม่อยู่ในรูปแบบที่เราต้องแสดงเสมอไป ตัวอย่างเช่น เรามีข้อมูลน้ำหนักของผลิตภัณฑ์ในคอนเทนเนอร์แบบนาทีต่อนาที (กก.) และเราจำเป็นต้องแสดงอัตราการบรรจุเป็นตัน/ชั่วโมง ฉันทำเช่นนี้ด้วยวิธีต่อไปนี้: ฉันนำข้อมูลน้ำหนักมาแปลงด้วยฟังก์ชันกราฟานาเดลต้า ซึ่งจะคำนวณความแตกต่างระหว่างค่าเมตริก ดังนั้นน้ำหนักปัจจุบันจึงเปลี่ยนเป็นกิโลกรัม/นาที จากนั้นผมคูณด้วย 0.06 เพื่อให้ได้ผลลัพธ์เป็นตัน/ชั่วโมง เนื่องจากมีการใช้เมตริกน้ำหนักในการสืบค้นหลายรายการ ฉันจึงระบุนามแฝงใหม่ (setAlias) และจะใช้ในกฎการแสดงภาพ

Grafana+Zabbix: การแสดงภาพการทำงานของสายการผลิต
ตัวอย่างการใช้พารามิเตอร์เดลต้าและตัวคูณและการเปลี่ยนชื่อเมตริกในคิวรี

นี่เป็นอีกตัวอย่างหนึ่งของการแปลงข้อมูล: ฉันต้องนับจำนวนชุด (การเริ่มรอบ = การสตาร์ทเครื่องยนต์) ตัวชี้วัดคำนวณตามสถานะเครื่องยนต์ "บรรทัดที่ 1 - ปั๊มปั๊มจากถัง 1 (สถานะ)" การเปลี่ยนแปลง: เราเปลี่ยนข้อมูลของตัวชี้วัดดั้งเดิมด้วยฟังก์ชันเดลต้า (ความแตกต่างของค่า) ดังนั้นตัวชี้วัดจะมีค่า “+1” สำหรับการสตาร์ทเครื่องยนต์ “-1” สำหรับการหยุดและ “0” เมื่อเครื่องยนต์ทำ ไม่เปลี่ยนสถานะ จากนั้นฉันก็ลบค่าทั้งหมดที่น้อยกว่า 1 แล้วรวมเข้าด้วยกัน ผลลัพธ์คือจำนวนเครื่องยนต์ที่สตาร์ท

Grafana+Zabbix: การแสดงภาพการทำงานของสายการผลิต
ตัวอย่างการแปลงข้อมูลจากสถานะปัจจุบันเป็นจำนวนการเริ่มต้น

ตอนนี้เกี่ยวกับการสร้างภาพข้อมูลเอง

ในการตั้งค่าการแสดงผลจะมีปุ่ม "แก้ไขการวาด" ซึ่งจะเปิดตัวแก้ไขซึ่งคุณสามารถวาดไดอะแกรมได้ แต่ละวัตถุบนไดอะแกรมมีพารามิเตอร์ของตัวเอง ตัวอย่างเช่น หากคุณระบุการตั้งค่าแบบอักษรในตัวแก้ไข การตั้งค่าเหล่านั้นจะถูกนำไปใช้กับการแสดงภาพข้อมูลใน Grafana

Grafana+Zabbix: การแสดงภาพการทำงานของสายการผลิต
นี่คือลักษณะของตัวแก้ไขใน Draw.io

หลังจากบันทึกไดอะแกรมแล้ว ไดอะแกรมจะปรากฏในกราฟาน่า และคุณสามารถสร้างกฎสำหรับการเปลี่ยนองค์ประกอบได้

ในพารามิเตอร์ () เราระบุ:

  • ตัวเลือก—ตั้งชื่อกฎ ชื่อหรือนามแฝงของเมตริกที่จะใช้ข้อมูล (ใช้กับเมตริก) ประเภทของการรวบรวมข้อมูล (การรวมกลุ่ม) ส่งผลต่อผลลัพธ์สุดท้ายของเมตริก ดังนั้น Last หมายความว่าค่าสุดท้ายจะถูกเลือก avg คือค่าเฉลี่ยสำหรับช่วงเวลาที่เลือกที่มุมขวาบน
  • เกณฑ์ - พารามิเตอร์ค่าเกณฑ์อธิบายตรรกะของการใช้สีนั่นคือสีที่เลือกจะถูกนำไปใช้กับองค์ประกอบบนไดอะแกรมขึ้นอยู่กับข้อมูลเมตริก ในตัวอย่างของฉัน หากค่าหน่วยเมตริกเป็น "0" สถานะจะเป็น "ตกลง" สีจะเป็นสีเขียว หากค่าเป็น ">1" สถานะจะเป็นสำคัญ และสีจะเป็นสีแดง
  • การแมปสี/คำแนะนำเครื่องมือ" และ "การแมปป้ายกำกับ/ข้อความ" - การเลือกองค์ประกอบสคีมาและสถานการณ์สำหรับลักษณะการทำงาน ในสถานการณ์แรก วัตถุจะถูกทาสีทับ ในสถานการณ์ที่สอง จะมีข้อความพร้อมข้อมูลจากหน่วยเมตริก ในการเลือกวัตถุบนแผนภาพ คุณต้องคลิกที่เครื่องหมายวงจรและคลิกที่แผนภาพ

Grafana+Zabbix: การแสดงภาพการทำงานของสายการผลิต
ในตัวอย่างนี้ ฉันทาสีปั๊มและลูกศรเป็นสีแดงหากใช้งานได้ และทาสีเป็นสีเขียวหากไม่ได้ผล

ด้วยการใช้ปลั๊กอินผังงาน ฉันสามารถวาดไดอะแกรมของเส้นทั้งหมดได้ ซึ่ง:

  1. สีของหน่วยจะเปลี่ยนไปตามสถานะ
  2. มีสัญญาณเตือนการไม่มีสินค้าในภาชนะบรรจุ
  3. การตั้งค่าความถี่มอเตอร์จะปรากฏขึ้น
  4. ความเร็วในการเติม/เทถังแรก
  5. คำนวณจำนวนรอบของการทำงานของสายการผลิต (แบทช์)

Grafana+Zabbix: การแสดงภาพการทำงานของสายการผลิต
การแสดงภาพการทำงานของสายการผลิต

ผล

สิ่งที่ยากที่สุดสำหรับฉันคือการได้รับข้อมูลจากคอนโทรลเลอร์ ด้วยความสามารถรอบด้านของ Zabbix ในแง่ของการรับข้อมูลและความยืดหยุ่นของ Grafana เนื่องจากปลั๊กอิน จึงใช้เวลาเพียงสองสามวันในการสร้างหน้าจอตรวจสอบสายการผลิตที่ครอบคลุม การแสดงภาพทำให้สามารถดูกราฟและสถิติของรัฐได้ อีกทั้งยังเข้าถึงได้ง่ายผ่านเว็บสำหรับทุกคนที่สนใจ ทั้งหมดนี้ทำให้สามารถระบุปัญหาคอขวดและการใช้หน่วยที่ไม่มีประสิทธิภาพได้อย่างรวดเร็ว

ข้อสรุป

ฉันชอบชุดค่าผสม Zabbix+Grafana มาก และฉันขอแนะนำให้ให้ความสนใจหากคุณต้องการประมวลผลข้อมูลจากตัวควบคุมหรือเซ็นเซอร์อย่างรวดเร็วโดยไม่ต้องเขียนโปรแกรมหรือใช้ผลิตภัณฑ์เชิงพาณิชย์ที่ซับซ้อน แน่นอนว่าสิ่งนี้จะไม่มาแทนที่ระบบ SCADA ระดับมืออาชีพ แต่จะเพียงพอในฐานะเครื่องมือสำหรับการตรวจสอบการผลิตทั้งหมดแบบรวมศูนย์

ที่มา: will.com

เพิ่มความคิดเห็น