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