Survei meter pengukuran di saluran GSM

Tugas: untuk menginterogasi sesuai dengan jadwal perangkat pengukuran untuk listrik menggunakan modem GSM.

Saya tidak memilih besi, itu dipilih sebelum saya, dan saya harus membuat sistem polling jarak jauh dari ini. Jadi, sumber informasi tentang listrik yang terbuang adalah Diris A40 yang diproduksi oleh Socomec (selanjutnya disebut sebagai meter).

gambar

Perangkat tahu bagaimana mengukur banyak hal, saya berhenti membaca ratusan register, mulai dari alamat desimal 1792 hingga 1891. Sebagai antarmuka, saya juga tidak memilih perangkat keras: modul komunikasi gateway RS485 menggunakan protokol JBUS / MODBUSĀ®. Protokol seperti modbus dengan pujian dalam penomoran register.

Modem GSM Siemens adalah MC35i (selanjutnya disebut sebagai modem). Berikut ini: Ada

gambar

banyak artikel tentang mereka, mudah untuk menemukan dokumentasi. Itu dikendalikan oleh tim AT. Tidak lagi tersedia Ia digantikan oleh Terminal Cinterion MC52iT. Anda masih bisa membelinya. Termasuk catu daya dan antena. Untuk mengubah RS232toRS485, perangkat keras yang umumnya murah ini dipilih. Dia melakukan pekerjaannya.

gambar

Diagram struktural dari sistem yang dikandung akan terlihat sebagai berikut:

gambar

Saya menamakan kabel sebagai kabel langsung, di mana semua pin saling berhubungan di awal dan di akhir. Misalnya, pin 2 terhubung ke pin 2. Saya menyebut kabel sebagai kabel silang, di mana pin 2 terhubung ke pin 3 dan pin 3 terhubung ke pin 2.

Untuk polling itu seharusnya menggunakan MasterOPC Universal Modbus Server, yang hidupdi sini gratis jika Anda ingin melakukan polling tidak lebih dari 32 tag (ada yang mengatakan "tag", saya suka "tag" lebih banyak). Pesonanya adalah ia memiliki pengaturan yang memungkinkan Anda menggunakan modem untuk polling. Seperti dua dalam satu. Ini adalah satu-satunya program yang saya temukan dengan fitur-fitur tersebut. Misalnya, saya tidak menemukan peluang seperti itu di ibaPDA.

MasterOPC Universal Modbus Server gagal. Sebaliknya, ternyata setengah: ketika terhubung ke meter dengan kawat - semuanya baik-baik saja, ketika terhubung melalui modem, paket yang diterima untuk beberapa alasan (bagi saya masih ada misteri, siapa yang tahu - tulis) terlihat seperti ini:

Permintaan: 13-05-2016 14 : 12: 56.408 Notebook :: DirisA40 (adr5) :( COM5) Tx: [0008] 05 03 07 0A 00 01 A4 F8
Jawaban: 13-05-2016 14: 12: 56.401 Notebook :: DirisA40 (adr5) :( COM5) Rx: [0013] F1 EB FF FD B7 00 05 03 02 13 86 C5 16

Seperti yang Anda lihat dari jawaban, informasi yang diperlukan ada di sana. : 05 03 02 13 86 C5 16. Juga jelas bahwa ada juga orang luar: F1 EB FF FD B7 00.

Siapa peduli, Anda bisa menggunakan parser untuk mendekripsi paket. Sebagai contoh, saya menggunakan CAS_Modbus_RTU_Parser. Ini gratis dan hebat. Ada juga parser online. Misalnya: http://modbus.rapidscada.net/ .

Saya tidak tahu bagaimana cara menyingkirkan "sampah" ini, jadi saya menulis sebuah program di LabView (mungkin akan lebih tepat untuk mengatakan "dicat"). Ini memotong bit yang tidak perlu dari paket yang diterima dan kemudian mendekripsi paket Modbus. Apa LabView ini bisa Anda baca di sini. Secara umum, di Habrahabr, yang mengejutkan saya, cukup banyak artikel tentang LabView ditemukan. Hasilnya berupa antarmuka:

gambar

gambar

Teks bantuan adalah sebagai berikut. Program ini dimaksudkan untuk menginterogasi konter DirisA40. Sebelum menjalankan file yang dapat dieksekusi, Anda harus menginstal Mesin Run-Time LabVIEW (sekali). Program ini dapat bekerja dalam dua mode:

1) polling langsung
2) polling melalui

mode polling modem secara default: polling 100 register mulai dari register 1792.
Format data register kata.
Alamat Modbus default adalah 5.
Polling langsung dimulai dengan menekan tombol START.

Polling melalui modem sesuai jadwal (secara default 5 menit.) Dan dimulai setelah menekan tombol "MULAI" dan "Simpan". Jadwal survei tidak boleh kurang dari 1 menit dan lebih dari 60 menit. Dalam keadaan tertekan, tombol "MULAI" ditandatangani sebagai "Survei sedang berlangsung". Dalam keadaan tertekan, tombol "Rekam" ditandatangani sebagai "Perekaman sedang berlangsung".

Kotak centang "Mempertimbangkan faktor konversi" dirancang untuk menskala nilai baca dari register sesuai dengan rumus X * Factor + Offset. Nilai-nilai Factor dan Offset dicatat dalam kolom tabel yang sama dari tabel pengaturan dan pemilihan register untuk ditulis. Penulisan dilakukan dalam file teks dalam direktori yang sama di mana file yang dapat dieksekusi dari format berikut ini terletak - tanggal waktu data.txt (Misalnya: 05/21/2016 22_12 data.txt). Jika rekaman dibuat menggunakan modem, nama file data akan terlihat seperti ini: 06/08/2016 9_47 data__modem.txt. Pertama kali Anda mencoba menulis file, Anda dapat mengubah nama file. Perekaman dilakukan dalam file yang sama sampai tombol "Recording in progress" ditekan. Register dengan kotak centang yang dicentang di tabel pengaturan ditulis ke file. Anda dapat mengubah status kotak centang di tabel pengaturan dengan klik dua kali.Nilai register yang diterima ditampilkan dalam tabel pengaturan dengan kolom "Nilai". Pada tab "Bagan", Anda dapat mengonfigurasi tampilan nilai register apa pun dari tabel pengaturan. Warna kurva grafik sesuai dengan warna bingkai di sekitar tag yang dipilih. Tag yang perlu dinonaktifkan dari build harus diletakkan di posisi "save" atau register lain dengan nilai 0. Antarmuka web perangkat diterbitkan _http: // computername: 8000 / DirisA40.html dan hanya dapat diakses melalui penjelajah jika LabVIEW Run-Time diinstal MesinAnda harus meletakkannya di posisi "save" atau register lain dengan nilai 0. Antarmuka berbasis web dari perangkat ini diterbitkan _http: // computername: 8000 / DirisA40.html dan hanya dapat diakses melalui penjelajah jika Lab-Run Run Time Engine diinstal.Anda harus meletakkannya di posisi "save" atau register lain dengan nilai 0. Antarmuka berbasis web dari perangkat ini diterbitkan _http: // computername: 8000 / DirisA40.html dan hanya dapat diakses melalui penjelajah jika Lab-Run Run Time Engine diinstal.

Dalam proses penulisan / gambar, program tambahan berikut digunakan.

Untuk meniru operasi penghitung, program gratis DevEmu digunakan. Saya mengetahui tentang dia dari blog Alexei , yang menggambarkan pekerjaan dan aplikasinya dengan baik. Untuk itu banyak terima kasih padanya.

Untuk meniru koneksi dengan penghitung, versi percobaan berbagai program yang disebut Serial Port Splitter digunakan. Mereka cukup banyak berbeda, masa percobaan dua pembagi seperti itu sudah cukup bagi saya untuk menulis program di atas.

PS: Ketika saya sedang menulis karya ini, ternyata seorang kolega, saya menulis artikel dengan topik yang sama: geektimes.ru/post/277358 .

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


All Articles