Zabbix + Wirenboard:生産監視

前書き

この記事では、ZabbixとWirenboardを使用して生産設備を監視する方法、ラインと基本的なリソースのソースからデータを取得する方法について説明します。この記事では、無料ソフトウェアを使用して監視を整理するための概念と要点について説明しますが、SCADAクラスの深刻なシステムについては説明しません。私の仕事は、設備投資なしで監視を迅速に展開し、すでに存在するものからできるだけ早くデータの受信を開始することでした。

仕事

原材料や完成品を備えたコンベヤーライン、生産に役立つオーブン、オートクレーブなどの部品があります。これらはすべて、さまざまなリソース(ガス、水、電気)を消費し、監視(作業中またはアイドル中)が必要です。生産のボトルネックを特定し、リソースと機器の使用効率について結論を出すことができる監視が必要です。

統合の難しさ

残念ながら、すべての生産設備は独自のローカルコントローラーによって制御され、すべての人がネットワークインターフェイスを持っているわけではなく、すべての人が独自のプロトコルを持っており、OSへのアクセスが閉じられ、アナログセンサーが使用されています。外部と情報を共有したい人はほとんどいません。

すべてを変更することは、長く、費用がかかり、困難であり、今すぐデータを取得する必要があります。結論として、埋め込みが必要です。

コントローラ

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

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.  

この記事は、Zabbix5.2がリリースされる前に書かれました。新しいバージョンはiotでの作業に重点を置いており、追加のモジュールなしでMQTTおよびModbusからデータを受信する機能をすでに備えています。これは、Zabbix開発者のおかげです。git https://github.com/v-zhuravlevのモジュールの@wabbitに特に感謝し 、彼らはモニタリングの開発に主な推進力を与えました。




All Articles