Pemantauan Suhu Bersertifikat

Perusahaan kami menggunakan Sistem Manajemen Mutu (SMM). Sebagai bagian dari salah satu sertifikasi ISO: 9001, ia diperintahkan untuk mengumpulkan pembacaan suhu dan kelembaban di beberapa kamar, misalnya, di ruang server atau di gudang.

Karena Karena semua prosedur birokratis membutuhkan kertas, maka pengumpulan data harus dilakukan oleh perangkat yang diverifikasi.

Dalam hal ini, hygrometer yang paling umum digantung dan selama beberapa tahun orang menulis bukti harian dalam jurnal. Setuju, tidak nyaman.


Untuk mengotomatiskan prosedur ini, pencarian perangkat untuk mengumpulkan suhu dan kelembaban dimulai.

Tujuannya adalah entah bagaimana mengumpulkan data dan mentransfer semuanya ke Zabbix. (Zabbix, lokasi penyimpanan apa pun tidak diperlukan untuk SMM, tapi saya tidak ingin membuat sistem terpisah untuk pemantauan suhu).

Pada prinsipnya, ada banyak kit yang siap pakai untuk ini, misalnya, Equicom PING3 atau netping, dan ada banyak contoh lainnya, Anda juga dapat membangun sistem Anda di arduino atau raspeberry,
tetapi semua opsi ini tidak cocok karena semuanya tidak memiliki sertifikasi, atau lebih tepatnya verifikasi metrologi, dan karenanya tidak dapat dianggap sebagai alat ukur resmi dan tidak cocok untuk lulus ISO: 9001.

Akibatnya, ditemukan perangkat yang mampu mengirimkan data melalui ethernet dan dimasukkan dalam daftar alat ukur. Ternyata menjadi "Ivit-M.E." dikembangkan di Novosibirsk, juga diproduksi di sana. Memesan (omong-omong, pesanan memakan waktu lama. Waktu produksi sekitar satu bulan, ditambah verifikasi, ditambah pengiriman ke Moskow).

Semua ini ada dalam formulir ini. Ketika Anda mengambilnya, Anda segera menyadari bahwa ini adalah produksi Rusia :-)





Catu daya (dipesan secara terpisah) tidak terhubung ke sensor.

Karena itu, kami membongkar dan mulai terhubung.





Kami tetap menghubungkan input. Arus bolak-balik. Saya menggunakan kabel daya biasa dari komputer.

Outputnya adalah arus searah. Plus dan minus ditandatangani langsung di papan tulis.

Kemudian kami menghubungkan kabel langsung ke sensor itu sendiri. Menurut instruksi



Terminal itu sendiri terlihat seperti ini:





Matikan, lepaskan, dan ambil liner dari setengah berbentuk L.
Kami menghubungkan daya dan jaringan.



Hasilnya kira-kira seperti ini:



Dari minus perangkat ini - tidak tahu cara mengirim data melalui SNMP, ia bekerja menggunakan protokol Modbus.

Pada prinsipnya, ada banyak sistem SCADA dan server OPC yang dapat membaca melalui Modbus, tetapi kebanyakan dari mereka dibayar atau dikumpulkan di beberapa database mereka sendiri, yang juga tidak jelas cara mengeluarkan data untuk transmisi lebih lanjut ke zabbix.

Oleh karena itu, skrip python kecil ditulis untuk mengakses sensor secara langsung.
Data dalam register disimpan dalam bentuk float dan datang ketika mengaksesnya dalam formulir ini

READ_INPUT_REGISTERS (16855, 57976) 

Untuk mengkonfigurasi sensor ada aplikasi config-ivit.exe

Tidak banyak pengaturan di sana. Anda dapat mengkonfigurasi jaringan, surat.



di konfigurator, register ditentukan dalam sistem heksadesimal, tetapi dalam skrip Python Anda perlu menentukan register dalam sistem 10-desimal.

Kami membawa data ke bentuk normal yang dapat dibaca sesuai dengan standar ieee-754.

Ada dua cara untuk mengimplementasikan transfer data yang diterima dari skrip ke zabbix.

Cara pertama: menggunakan userparametr, pada beberapa node di mana agen python dan zabbiks diinstal. Sebagai contoh, saya punya di server zabbix itu sendiri.

 import modbus_tk.defines as cst import modbus_tk.modbus_tcp as modbus_tcp import sys def check_reg(reg,ip): reg = int(reg) master = modbus_tcp.TcpMaster(host=ip, port=int(502)) master.set_timeout(1.0) getDI = master.execute(1,cst.READ_INPUT_REGISTERS, reg, 2) Num1 = str(bin(getDI[0]))[2:] while len(Num1) < 16: Num1 = '0' + Num1 Num2 = str(bin(getDI[1]))[2:] while len(Num2) < 16: Num2 = '0' + Num2 res = Num1 + Num2 znak = int(res[0], 2) znak2 = (0 - 1) ** znak e = int(res[1:9], 2) - 127 exp = 2 ** e m = 1 + (int(res[9:], 2) / float(2 ** 23)) F = znak2 * exp * m print(round(F, 1)) check_reg(sys.argv[1],sys.argv[2]) 

Dari sisi zabbix di zabbix_agentd.conf, tentukan:

 UserParameter=check_reg[*], /usr/bin/python /home/appliance/scada.py $1 $2 

Di zabbix itu sendiri, kita hanya perlu mentransfer nomor register dan alamat IP perangkat yang ingin kita hubungi:

misalnya: check_reg[22,192.168.100.100]

Nomor register:

22 - Kelembaban
34 - Suhu
36 - titik embun

Cara kedua: meneruskan nilai melalui zabbix_sender. Metode ini nyaman karena Anda dapat membuat node jaringan terpisah yang tidak memiliki agen, dan karenanya akan memungkinkan untuk membuat templat untuk banyak perangkat.

 import modbus_tk.defines as cst import modbus_tk.modbus_tcp as modbus_tcp import sys, os def check_reg(reg,ip): reg = int(reg) master = modbus_tcp.TcpMaster(host=ip, port=int(502)) master.set_timeout(1.0) getDI = master.execute(1,cst.READ_INPUT_REGISTERS, reg, 2) Num1 = str(bin(getDI[0]))[2:] while len(Num1) < 16: Num1 = '0' + Num1 Num2 = str(bin(getDI[1]))[2:] while len(Num2) < 16: Num2 = '0' + Num2 res = Num1 + Num2 znak = int(res[0], 2) znak2 = (0 - 1) ** znak e = int(res[1:9], 2) - 127 exp = 2 ** e m = 1 + (int(res[9:], 2) / float(2 ** 23)) F = znak2 * exp * m return round(F, 1) os.system('zabbix_sender -z 127.0.0.1 -s '+ sys.argv[2]+' -k Humidity -o '+ str(check_reg(22,sys.argv[1]))) os.system('zabbix_sender -z 127.0.0.1 -s '+sys.argv[2]+' -k Temper -o '+ str(check_reg(34,sys.argv[1]))) os.system('zabbix_sender -z 127.0.0.1 -s '+sys.argv[2]+' -k Rosa -o '+ str(check_reg(36,sys.argv[1]))) 

Yang tersisa hanyalah menjalankan skrip ini untuk dieksekusi pada mahkota, hanya menentukan alamat ip perangkat dan Hostname

 */1 * * * * /home/ivitsender.py 192.168.100.100 Ivit1 

 */1 * * * * /home/ivitsender.py 192.168.100.200 Ivit2 


Selanjutnya, konfigurasikan pemicu, yang dianggap penting bagi kami. Misalnya, suhu minimum atau maksimum, kelembaban.

Itu saja. Dengan demikian, kami telah memperoleh pemantauan suhu bersertifikasi, yang cocok untuk melewati QMS dan ISO: 9001

UPD: Diperbarui skrip yang akan dikirim melalui pengirim untuk terhubung ke beberapa sensor

Source: https://habr.com/ru/post/id470267/


All Articles