Zabbix + Wirenboard: pemantauan produksi

pengantar

Pada artikel ini, saya akan berbicara tentang bagaimana kami menggunakan Zabbix dan Wirenboard untuk memantau peralatan produksi, bagaimana kami dapat memperoleh data dari jalur dan sumber sumber daya dasar. Artikel ini menjelaskan konsep dan poin utama dari pengorganisasian pemantauan dengan perangkat lunak bebas, tetapi tidak akan membahas sistem serius dari kelas SCADA. Tugas saya adalah dengan cepat menyebarkan pemantauan tanpa investasi modal dan mulai menerima data secepat mungkin dari apa yang sudah ada.

Sebuah tugas

Kami memiliki jalur konveyor dengan bahan mentah dan produk jadi, kami memiliki oven, autoklaf, dan bagian lain yang berguna dalam produksi. Semua ini menghabiskan berbagai sumber daya (gas, air, listrik) dan membutuhkan kontrol (bekerja atau menganggur). Kami membutuhkan pemantauan yang memungkinkan kami mengidentifikasi hambatan dalam produksi dan menarik kesimpulan tentang efisiensi penggunaan sumber daya dan peralatan.

Kesulitan integrasi

Sayangnya, semua peralatan produksi dikontrol oleh pengontrol lokalnya sendiri, tidak semua orang memiliki antarmuka jaringan, setiap orang memiliki protokolnya sendiri, akses ke OS ditutup, sensor analog digunakan - hanya sedikit orang yang ingin berbagi informasi dengan dunia luar.

Mengubah segalanya itu lama, mahal dan sulit, dan Anda perlu mendapatkan datanya sekarang, kesimpulannya: Anda perlu disematkan.

Kontroler

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

Contoh item Master untuk metrik 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]
item master untuk melakukan polling pada pengontrol 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 , .

Menyiapkan metrik dari register pengontrol

Siemens

Siemens S7 profinet / profibus, Snap7. zbx_s7_get , .

Contoh permintaan data

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.  

Artikel ini ditulis sebelum Zabbix 5.2 dirilis. Versi baru ini difokuskan untuk bekerja dengan iot dan sudah memiliki kemampuan untuk menerima data dari MQTT dan Modbus tanpa modul tambahan, banyak terima kasih kepada para pengembang Zabbix. Terima kasih khusus kepada @wabbit untuk modul di git https://github.com/v-zhuravlev, mereka memberikan dorongan utama untuk pengembangan pemantauan.




All Articles