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