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. .
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. , , . ( ) ( , – ). (, , ), ( ).
, . , , – .
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]
$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
08 – 8 ( )
da bc b9 01 -
1b 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
( )
( )
:
, . 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.