Zabbix + Wirenboard: مراقبة الإنتاج

المقدمة

في هذه المقالة سوف أتحدث عن كيفية استخدامنا Zabbix و Wirenboard لمراقبة معدات الإنتاج ، وكيف تمكنا من الحصول على البيانات من خطوط ومصادر الموارد الأساسية. يصف المقال المفهوم والنقاط الرئيسية لتنظيم المراقبة عن طريق البرمجيات الحرة ، لكنه لن يناقش الأنظمة الجادة لفئة SCADA. كانت مهمتي هي نشر المراقبة بسرعة دون استثمار رأس المال والبدء في تلقي البيانات في أقرب وقت ممكن مما هو موجود بالفعل.

مهمة

لدينا خطوط نقل بالمواد الخام والمنتجات النهائية ، ولدينا أفران وأوتوكلاف وقطع أخرى مفيدة في الإنتاج. كل هذا يستهلك موارد مختلفة (غاز ، ماء ، كهرباء) ويتطلب مراقبة (عاملة أو خاملة). نحتاج إلى مراقبة تسمح لنا بتحديد الاختناقات في الإنتاج واستخلاص استنتاجات حول كفاءة استخدام الموارد والمعدات.

صعوبات الاندماج

لسوء الحظ ، يتم التحكم في جميع معدات الإنتاج بواسطة وحدات التحكم المحلية الخاصة بها ، وليس لدى كل شخص واجهة شبكة ، فكل شخص لديه بروتوكولاته الخاصة ، والوصول إلى نظام التشغيل مغلق ، ويتم استخدام أجهزة الاستشعار التناظرية - قلة من الناس يريدون مشاركة المعلومات مع العالم الخارجي.

تغيير كل شيء طويل ومكلف وصعب ، وتحتاج إلى الحصول على البيانات الآن ، الخلاصة: يجب أن تكون مضمنًا.

مراقب

اخترنا Wirenboard كوحدة تحكم . يعمل نظام Linux المفتوح تمامًا على متن الطائرة ، ويمكنك تثبيت أي حزم إضافية ، وله محرك قواعد خاص به وواجهة ويب. تنتج الشركة المصنعة لوحدة التحكم الخط الكامل المطلوب من أجهزة الاستشعار والعدادات التي تتصل ببعضها البعض باستخدام بروتوكول Modbus RTU المفتوح. يتم جمع جميع البيانات في MQTT. في رأيي ، MQTT هي الطريقة الأنسب لجمع بيانات القياس عن بُعد وتسليمها ، والبروتوكول مفتوح وسهل الاستخدام قدر الإمكان.

Zabbix-mqtt-Wirenboard

لا يعمل Zabbix مباشرة مع MQTT ، ولكن من الممكن استخدام الوحدات الخارجية ، وهنا خياران استخدمتهما.

- Zabbix , MQTT mosquitto_sub. : «UserParameter=mqtt.value[*],mosquitto_sub -t '$1' -C 1», Zabbix , item key mqtt.value[ ].  

, – MQTT . , , Zabbix . «retain», , Zabbix , , . – , . , .

Zabbix 4.2 zbx_mqtt. Zabbix , , JSON . «» . Preprocessing: – .  

– -. :

  • / .  

, WB-MCM8 c modbus 32, , MQTT Wirenboard.

/devices/wb-mcm8_32/controls/Input 1 counter
/devices/wb-mcm8_32/controls/Input 2 counter
/devices/wb-mcm8_32/controls/Input 8 counter

Zabbix MasterItem_WB-MCM8_32 External check. .

مثال عنصر رئيسي لمقاييس MQTT
Master item MQTT

key : mqtt["-t=/devices/wb-mcm8_32/#","--mqtt-host={HOST.CONN}"] :

  • mqtt[]

  • -t=/devices/wb-mcm8_32/# - wb-mcm832

  • --mqtt-host={HOST.CONN} - Wirenboard. {HOST.CONN}

, Zabbix JSON, :

{…"/devices/wb-mcm8_32/controls/Input 7 counter": "3129705", "/devices/wb-mcm8_32/controls/Input 3 counter": "1885652", "/devices/wb-mcm8_32/controls/Input 1 counter/meta/type": "value", "/devices/wb-mcm8_32/controls/Input 5/meta/order": "13", "/devices/wb-mcm8_32/controls/Input 8/meta/order": "16"…}

dependent item, .

key , mqtt . Preprocessing.

  • JSONPath -

  • Check for error in JSON - wb-mcm8 : , , Zabbix .

  • Simple change - , () – Simple change.

, , . , , .

WB-MAP3H. , , . ( ) ( , – ). (, , ), ( ).

WB-MAP3H
WB-MAP3H

, . , , – .

Delta Modbus TCP RTU

Delta, Modbus TCP. Modbus Zabbix libzbxmodbus. , TCP, com RTU Modbus. , .

Zabbix Master item, 17 Modbus TCP, , .

modbus_read[{$MODBUS_ADDRESS},1,4110,3,17*s]
عنصر رئيسي لاستقصاء وحدة تحكم دلتا
master item Delta
  • $MODBUS_ADDRESS – Zabbix, ip , «tcp://192.168.0.2»

  • 1 – Modbus. «1», RTU ,

  •  4110 – ,

  • 3 – Modbus. 3 –

  • 17*s – , 17 , int16 (s=int16, f=float, b=bit )

5 Zabbix – Test, JSON 17 ( 4110 4126).

{"4110":967,"4111":960,"4112":395,"4113":0,"4114":0,"4115":0,"4116":665,"4117":803,"4118":2500,"4119":2500,"4120":447,"4121":999,"4122":1224,"4123":2154,"4124":1493,"4125":1254,"4126":418}

, Preprocessing steps JSONPath = $.4110 4110 . , : In range 0 1500, – . Discard unchanged , .

إعداد مقياس من سجل وحدة التحكم

Siemens

Siemens S7 profinet / profibus, Snap7. zbx_s7_get , .

نموذج طلب بيانات

s7_get.py :

s7_get.py[{HOST.CONN},{$S7.RACK},{$S7.SLOT},{$S7.DB},6,bool,--json]
  • {HOST.CONN} – , ip ( host interface)

  • {$S7.RACK} – , rack id

  • {$S7.SLOT} – ,

  • {$S7.DB} – , id

  • 6 - offset

  • Bool – , true / false. int float.

  • --json – . json, master item .

JSON, ( ).

{"6": ["True", "False", "False", "True", "False", "True", "True", "False"]}

Linx 5900

Linx 5900 ( , ). , , - .

Zabbix moxa NPORT 5150. tcp rs232 serial /dev/ttyr01 linux , Zabbix . Linx Remote Communications Interface (RSI). , ( ).

: 1b 02 08 1b 03  
: 1b 06 00 00 08 da bc b9 01 1b 03

: 
1b 06 -  
00 00  
088 ( ) 
da bc b9 011b 03 

  UINT32 - Little Endian (DCBA) 
01 B9 BC 8F       28949647 
01 B9 BC DA       28949722 
01 B9 BD 25       28949797

, , .

Zabbix serial.get. Item key :

serial.get[/dev/ttyr01,5,1b02081b03,uint32]

Zabbix , .

:

  • ( )

  • OEE

  • ( )

  • ( )

, , – , . Grafana , .

:

  • , . lorawan

  • CAS

P.S.  

تمت كتابة هذا المقال قبل إصدار Zabbix 5.2. يركز الإصدار الجديد على العمل مع iot ولديه بالفعل القدرة على تلقي البيانات من MQTT و Modbus بدون وحدات إضافية ، وذلك بفضل جزيل الشكر لمطوري Zabbix. شكر خاص لـ wabbit على الوحدات على git https://github.com/v-zhuravlev ، فقد أعطوا الدافع الرئيسي لتطوير المراقبة.




All Articles