Zabbix + Wirenboard: seguimiento de la producción

Introducción

En este artículo hablaré sobre cómo usamos Zabbix y Wirenboard para monitorear equipos de producción, cómo pudimos obtener datos de líneas y fuentes de recursos básicos. El artículo describe el concepto y los puntos principales de la organización del monitoreo mediante software libre, pero no discutirá los sistemas serios de la clase SCADA. Mi tarea consistía en implementar rápidamente el monitoreo sin inversión de capital y comenzar a recibir datos lo antes posible de lo que ya está allí.

Una tarea

Contamos con líneas transportadoras con materias primas y productos terminados, tenemos hornos, autoclaves y otras piezas que son útiles en producción. Todo esto consume varios recursos (gas, agua, electricidad) y requiere monitoreo (en funcionamiento o inactivo). Necesitamos un seguimiento que nos permita identificar cuellos de botella en la producción y sacar conclusiones sobre la eficiencia del uso de recursos y equipos.

Dificultades de integración

Desafortunadamente, todos los equipos de producción están controlados por sus propios controladores locales, no todos tienen una interfaz de red, todos tienen sus propios protocolos, el acceso al sistema operativo está cerrado, se utilizan sensores analógicos; pocas personas quieren compartir información con el mundo exterior.

Cambiar todo es largo, costoso y difícil, y necesita obtener los datos ahora mismo, la conclusión: necesita estar integrado.

Controlador

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

Ejemplo de elemento maestro para métricas 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]
elemento maestro para sondear el controlador Delta
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 , .

Configurar una métrica desde un registro de controlador

Siemens

Siemens S7 profinet / profibus, Snap7. zbx_s7_get , .

Solicitud de datos de muestra

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.  

Este artículo fue escrito antes del lanzamiento de Zabbix 5.2. La nueva versión está enfocada a trabajar con iot y ya tiene la capacidad de recibir datos de MQTT y Modbus sin módulos adicionales, por lo que muchas gracias a los desarrolladores de Zabbix. Un agradecimiento especial a @wabbit por los módulos en git https://github.com/v-zhuravlev, dieron el impulso principal al desarrollo de la monitorización.




All Articles