Grafana+Zabbix: Trực quan hóa hoạt động của dây chuyền sản xuất

Trong bài viết này tôi muốn chia sẻ kinh nghiệm sử dụng hệ thống nguồn mở Zabbix và Grafana để trực quan hóa hoạt động của dây chuyền sản xuất. Thông tin này có thể hữu ích cho những người đang tìm kiếm một cách nhanh chóng để hiển thị hoặc phân tích trực quan dữ liệu được thu thập trong các dự án tự động hóa công nghiệp hoặc IoT. Bài viết không phải là hướng dẫn chi tiết mà là khái niệm về hệ thống giám sát dựa trên phần mềm nguồn mở cho một nhà máy sản xuất.

Bộ công cụ

Zabbix – chúng tôi đã sử dụng nó từ lâu để giám sát cơ sở hạ tầng CNTT của nhà máy. Hệ thống này trở nên tiện lợi và phổ biến đến mức chúng tôi bắt đầu nhập dữ liệu từ dây chuyền sản xuất, cảm biến và bộ điều khiển vào đó. Điều này cho phép chúng tôi thu thập tất cả dữ liệu số liệu ở một nơi, tạo các biểu đồ đơn giản về mức tiêu thụ tài nguyên và hiệu suất thiết bị, nhưng chúng tôi thực sự thiếu số liệu phân tích và các biểu đồ đẹp mắt.

grafana là một công cụ mạnh mẽ để phân tích và trực quan hóa dữ liệu. Một số lượng lớn các plugin cho phép bạn lấy dữ liệu từ nhiều nguồn khác nhau (zabbix, clickhouse, InfluxDB), xử lý dữ liệu một cách nhanh chóng (tính giá trị trung bình, tổng, chênh lệch, v.v.) và vẽ tất cả các loại biểu đồ (từ các đường đơn giản, đồng hồ tốc độ, bảng biểu cho đến sơ đồ phức tạp).

Draw.io – một dịch vụ cho phép bạn vẽ từ sơ đồ khối đơn giản đến sơ đồ tầng trong trình chỉnh sửa trực tuyến. Có rất nhiều mẫu làm sẵn và các đối tượng được vẽ. Dữ liệu có thể được xuất sang tất cả các định dạng đồ họa chính hoặc xml.

Đặt tất cả lại với nhau

Có rất nhiều bài viết về cách cài đặt và cấu hình Grafana và Zabbix, tôi sẽ kể cho bạn nghe về các điểm cấu hình chính.

Một “nút mạng” (máy chủ) được tạo trên máy chủ Zabbix, máy chủ này sẽ sở hữu “các thành phần dữ liệu” (mục) với các số liệu từ cảm biến của chúng tôi. Bạn nên suy nghĩ trước tên của các nút và thành phần dữ liệu và sắp xếp chúng theo cấu trúc nhất có thể, vì chúng ta sẽ truy cập chúng từ grafana thông qua các biểu thức chính quy. Cách tiếp cận này thuận tiện vì bạn có thể lấy dữ liệu từ một nhóm phần tử chỉ với một yêu cầu.

Để định cấu hình grafana, bạn sẽ cần cài đặt các plugin bổ sung:

  • Zabbix của Alexander Zobnin (alexanderzobnin-zabbix-app) – tích hợp với zabbix
  • natel-discrete-panel – plugin để hiển thị rời rạc trên biểu đồ ngang
  • pierosavi-imageit-panel – plugin để hiển thị dữ liệu trên đầu hình ảnh của bạn
  • Agenty-flowcharting-panel – plugin để trực quan hóa sơ đồ động từ draw.io

Việc tích hợp với chính Zabbix được định cấu hình trong grafana, mục menu Nguồn dữ liệu cấu hìnhZabbix. Ở đó bạn cần chỉ định địa chỉ của máy chủ api zabbix, đây là những gì tôi có http://zabbix.local/zabbix/api_jsonrpc.phpvà đăng nhập bằng mật khẩu để truy cập. Nếu mọi thứ được thực hiện chính xác, khi lưu cài đặt sẽ có thông báo kèm theo số phiên bản api: zabbix API version: 5.0.1

Tạo Trang tổng quan

Đây là nơi bắt đầu sự kỳ diệu của Grafana và các plugin của nó.

Plugin bảng điều khiển rời Natel
Chúng tôi có dữ liệu về trạng thái của động cơ trên đường dây (đang hoạt động = 1, không hoạt động = 0). Bằng cách sử dụng biểu đồ rời rạc, chúng ta có thể vẽ một thang đo sẽ hiển thị: trạng thái của động cơ, số phút/giờ hoặc % động cơ đã hoạt động và tần suất khởi động.

Grafana+Zabbix: Trực quan hóa hoạt động của dây chuyền sản xuất
Trực quan hóa trạng thái động cơ

Theo tôi, đây là một trong những biểu đồ tốt nhất để trực quan hóa hiệu suất phần cứng. Bạn có thể thấy ngay nó đã không hoạt động trong bao lâu và nó hoạt động thường xuyên hơn ở chế độ nào. Có thể có nhiều dữ liệu, có thể tổng hợp theo phạm vi, chuyển đổi theo giá trị (nếu giá trị là “1” thì hiển thị là “ON”)

Plugin pierosavi-imageit-panel

Hình ảnhnó rất thuận tiện để sử dụng khi bạn đã có sơ đồ vẽ hoặc sơ đồ tầng mà bạn muốn áp dụng dữ liệu từ các cảm biến. Trong cài đặt trực quan hóa, bạn cần chỉ định URL cho hình ảnh và thêm các thành phần cảm biến bạn cần. Phần tử xuất hiện trong hình ảnh và có thể được đặt ở vị trí mong muốn bằng chuột.

Grafana+Zabbix: Trực quan hóa hoạt động của dây chuyền sản xuất
Sơ đồ lò với số liệu nhiệt độ và áp suất

Plugin bảng điều khiển sơ đồ đại lý

Tôi muốn nói chi tiết hơn về việc tạo trực quan hóa FlowCharting, vì đây là một công cụ cực kỳ hữu ích. Nó cho phép bạn tạo một sơ đồ ghi nhớ động, các thành phần trong đó sẽ phản ứng với các giá trị của số liệu (thay đổi màu sắc, vị trí, tên, v.v.).

Đang nhận dữ liệu

Việc tạo bất kỳ phần tử trực quan hóa nào trong Grafana đều bắt đầu bằng yêu cầu dữ liệu từ nguồn, trong trường hợp của chúng tôi đó là zabbix. Bằng cách sử dụng truy vấn, chúng ta cần lấy tất cả các số liệu mà chúng ta muốn sử dụng trong sơ đồ. Chi tiết số liệu là tên của các thành phần dữ liệu trong Zabbix; bạn có thể chỉ định một số liệu riêng lẻ hoặc một tập hợp được lọc thông qua biểu thức chính quy. Trong ví dụ của tôi, trường Mục chứa biểu thức: “/(^line 1)|(availability)|(zucchini)/” - điều này có nghĩa là: chọn tất cả các số liệu có tên bắt đầu bằng “dòng 1” hoặc chứa từ “còn hàng ” hoặc chứa từ "zucchini"

Grafana+Zabbix: Trực quan hóa hoạt động của dây chuyền sản xuất
Ví dụ về thiết lập yêu cầu dữ liệu trên động cơ dòng đầu tiên và tính sẵn có của nguyên liệu thô

Chuyển đổi dữ liệu

Dữ liệu nguồn có thể không phải lúc nào cũng ở dạng mà chúng ta cần hiển thị. Ví dụ: chúng tôi có dữ liệu từng phút về trọng lượng của sản phẩm trong thùng chứa (kg) và chúng tôi cần hiển thị tốc độ lấp đầy tính bằng t/giờ. Tôi thực hiện việc này theo cách sau: Tôi lấy dữ liệu trọng lượng và biến đổi nó bằng hàm delta grafana, hàm này tính toán sự khác biệt giữa các giá trị hệ mét, do đó trọng lượng hiện tại chuyển thành kg/phút. Sau đó tôi nhân với 0.06 để có kết quả tính bằng tấn/giờ. Vì số liệu trọng số được sử dụng trong một số truy vấn nên tôi chỉ định bí danh mới cho nó (setAlias) và sẽ sử dụng nó trong quy tắc trực quan hóa.

Grafana+Zabbix: Trực quan hóa hoạt động của dây chuyền sản xuất
Ví dụ về cách sử dụng tham số delta và số nhân cũng như đổi tên số liệu trong truy vấn

Đây là một ví dụ khác về chuyển đổi dữ liệu: Tôi cần đếm số lô (bắt đầu chu kỳ = khởi động động cơ). Số liệu được tính toán dựa trên trạng thái động cơ "dòng 1 - bơm bơm từ bể 1 (trạng thái)". Chuyển đổi: ta thay đổi dữ liệu của thông số ban đầu bằng hàm delta (chênh lệch các giá trị) nên thông số sẽ có giá trị “+1” khi khởi động động cơ, “-1” khi dừng và “0” khi động cơ dừng không thay đổi trạng thái của nó. Sau đó tôi xóa tất cả các giá trị nhỏ hơn 1 và tính tổng chúng. Kết quả là số lần khởi động động cơ.

Grafana+Zabbix: Trực quan hóa hoạt động của dây chuyền sản xuất
Một ví dụ về chuyển đổi dữ liệu từ trạng thái hiện tại sang số lần bắt đầu

Bây giờ về bản thân hình dung

Trong cài đặt hiển thị có nút “Chỉnh sửa bản vẽ”, nút này sẽ khởi chạy trình chỉnh sửa trong đó bạn có thể vẽ sơ đồ. Mỗi đối tượng trên sơ đồ đều có các thông số riêng. Ví dụ: nếu bạn chỉ định cài đặt phông chữ trong trình chỉnh sửa, chúng sẽ được áp dụng để trực quan hóa dữ liệu trong Grafana.

Grafana+Zabbix: Trực quan hóa hoạt động của dây chuyền sản xuất
Đây là giao diện của trình soạn thảo trong Draw.io

Sau khi lưu sơ đồ, nó sẽ xuất hiện trong grafana và bạn có thể tạo các quy tắc để thay đổi các phần tử.

Trong tham số() chúng tôi chỉ định:

  • Tùy chọn—đặt tên quy tắc, tên hoặc bí danh của số liệu có dữ liệu sẽ được sử dụng (Áp dụng cho số liệu). Kiểu tổng hợp dữ liệu (Aggregation) ảnh hưởng đến kết quả cuối cùng của số liệu nên Last có nghĩa là giá trị cuối cùng sẽ được chọn, avg là giá trị trung bình cho khoảng thời gian được chọn ở góc trên bên phải.
  • Ngưỡng - tham số giá trị ngưỡng mô tả logic của ứng dụng màu, nghĩa là màu được chọn sẽ được áp dụng cho các thành phần trên sơ đồ tùy thuộc vào dữ liệu số liệu. Trong ví dụ của tôi, nếu giá trị số liệu là “0”, trạng thái là “Ok”, màu sẽ là màu xanh lục, nếu giá trị là “>1”, trạng thái sẽ là Quan trọng và màu sẽ là màu đỏ.
  • Ánh xạ màu/chú giải công cụ" và "Ánh xạ nhãn/văn bản" - chọn phần tử lược đồ và kịch bản cho hành vi của nó. Trong trường hợp đầu tiên, đối tượng sẽ được sơn lên, trong trường hợp thứ hai, sẽ có văn bản trên đó với dữ liệu từ số liệu. Để chọn một đối tượng trên sơ đồ, bạn cần nhấp vào ký hiệu mạch và nhấp vào sơ đồ.

Grafana+Zabbix: Trực quan hóa hoạt động của dây chuyền sản xuất
Trong ví dụ này, tôi sơn máy bơm và mũi tên của nó màu đỏ nếu nó hoạt động và màu xanh lá cây nếu không.

Bằng cách sử dụng plugin lưu đồ, tôi có thể vẽ sơ đồ của toàn bộ dòng, trên đó:

  1. màu sắc của các đơn vị thay đổi theo trạng thái của chúng
  2. có cảnh báo khi thiếu sản phẩm trong thùng chứa
  3. cài đặt tần số động cơ được hiển thị
  4. tốc độ nạp/xả bể đầu tiên
  5. số chu kỳ vận hành dây chuyền (lô) được tính

Grafana+Zabbix: Trực quan hóa hoạt động của dây chuyền sản xuất
Trực quan hóa hoạt động của dây chuyền sản xuất

Kết quả

Điều khó khăn nhất đối với tôi là lấy dữ liệu từ bộ điều khiển. Nhờ tính linh hoạt của Zabbix trong việc nhận dữ liệu và tính linh hoạt của Grafana nhờ các plugin, chỉ mất vài ngày để tạo ra một màn hình giám sát dây chuyền sản xuất toàn diện. Trực quan hóa giúp có thể xem biểu đồ và số liệu thống kê trạng thái, cộng với khả năng truy cập dễ dàng qua web cho mọi người quan tâm - tất cả điều này giúp có thể nhanh chóng xác định các điểm nghẽn và việc sử dụng đơn vị không hiệu quả.

Kết luận

Tôi thực sự thích sự kết hợp Zabbix+Grafana và tôi khuyên bạn nên chú ý đến nó nếu bạn cần xử lý nhanh dữ liệu từ bộ điều khiển hoặc cảm biến mà không cần lập trình hoặc triển khai các sản phẩm thương mại phức tạp. Tất nhiên, điều này sẽ không thay thế các hệ thống SCADA chuyên nghiệp, nhưng nó sẽ đủ làm công cụ giám sát tập trung toàn bộ quá trình sản xuất.

Nguồn: www.habr.com

Thêm một lời nhận xét