Zabbix + Wirenboard: ProduktionsĂĽberwachung

EinfĂĽhrung

In diesem Artikel werde ich darüber sprechen, wie wir mit Zabbix und Wirenboard Produktionsanlagen überwachen und wie wir Daten aus Leitungen und Quellen grundlegender Ressourcen abrufen konnten. Der Artikel beschreibt das Konzept und die Hauptpunkte der Organisation der Überwachung mithilfe freier Software, behandelt jedoch keine ernsthaften Systeme der SCADA-Klasse. Meine Aufgabe war es, die Überwachung ohne Kapitalinvestition schnell bereitzustellen und so schnell wie möglich Daten von dem zu erhalten, was bereits vorhanden ist.

Eine Aufgabe

Wir haben Förderlinien mit Rohstoffen und Fertigprodukten, wir haben Öfen, Autoklaven und andere Teile, die für die Produktion nützlich sind. All dies verbraucht verschiedene Ressourcen (Gas, Wasser, Strom) und erfordert eine Überwachung (Arbeiten oder Leerlauf). Wir brauchen eine Überwachung, die es uns ermöglicht, Engpässe in der Produktion zu identifizieren und Schlussfolgerungen über die Effizienz des Einsatzes von Ressourcen und Geräten zu ziehen.

Integrationsschwierigkeiten

Leider werden alle Produktionsanlagen von ihren eigenen lokalen Controllern gesteuert, nicht jeder hat eine Netzwerkschnittstelle, jeder hat seine eigenen Protokolle, der Zugriff auf das Betriebssystem ist geschlossen, analoge Sensoren werden verwendet - nur wenige Menschen möchten Informationen mit der Außenwelt teilen.

Alles zu ändern ist langwierig, teuer und schwierig, und Sie müssen die Daten sofort abrufen, die Schlussfolgerung: Sie müssen eingebettet sein.

Regler

Wirenboard . linux, , web . , Modbus RTU. MQTT. MQTT - , .

Zabbix-mqtt-Wirenboard

Zabbix c 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. .

Beispiel fĂĽr ein Master-Element fĂĽr MQTT-Metriken
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]
Hauptelement zum Abrufen des Delta-Controllers
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 , .

Einrichten einer Metrik aus einem Controller-Register

Siemens

Siemens S7 profinet / profibus, Snap7. zbx_s7_get , .

Beispieldatenanforderung

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  
08 –    8 ( ) 
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.  

Dieser Artikel wurde geschrieben, bevor Zabbix 5.2 veröffentlicht wurde. Die neue Version konzentriert sich auf die Arbeit mit iot und kann bereits Daten von MQTT und Modbus ohne zusätzliche Module empfangen, wofür wir uns bei den Zabbix-Entwicklern bedanken. Besonderer Dank geht an @wabbit für die Module auf git https://github.com/v-zhuravlev, die den Hauptimpuls für die Entwicklung der Überwachung gegeben haben.




All Articles