
Tugas
Di Tim Sinergi, kami merancang dan memproduksi pengontrol industri. Mereka dirancang untuk penghitungan sumber daya, manajemen fasilitas energi, dan aplikasi lain yang biasa disebut sebagai Internet of Things (IoT). Seringkali, pelanggan kami tidak hanya membutuhkan pengontrol. Mereka membutuhkan solusi lengkap yang mencakup sistem kontrol.
Dan sistem ini harus mendekati optimal: cepat, ringan, dan andal. Tetapi, menurut anekdot terkenal, tidak mungkin untuk memenuhi semua persyaratan ini secara bersamaan. Kami perlu mencari keseimbangan tergantung pada tugas, yang kami coba lakukan.

Dalam posting ini, kami membatasi diri pada kelas tugas ketika pengontrol IoT terhubung langsung ke sistem kontrol ( IoT yang terhubung langsung ). Jadi, tugas kita adalah mengembangkan sistem manajemen yang harus:
- mentransfer data dari sensor yang terhubung ke pengontrol,
- mengirim acara (misalnya, tentang kenaikan suhu, pembukaan pintu, kehilangan komunikasi, dll.),
- mengirimkan perintah kontrol ke aktuator,
Jika sistem terdiri dari sejumlah besar objek dan / atau menjalankan tugas-tugas penting, ia juga harus:
- terus memantau keberadaan komunikasi dengan objek,
- kumpulkan statistik tentang pekerjaan Anda,
- perbarui pengaturan pengontrol dan perangkat lunak (atas permintaan);
- dilindungi dari akses yang tidak sah. Untuk perusahaan negara dan swasta besar, sistem tersebut juga harus sesuai dengan undang-undang tentang bekerja dengan infrastruktur informasi kritis (CII). Secara khusus, persyaratan 187-FZ, FSB, FSTEC, perintah Kementerian Telekomunikasi dan Komunikasi Massa, dll.
Manajemen tanpa server khusus
Untuk beberapa objek, masalah diselesaikan dengan kontrol atas jaringan GSM melalui perintah atau panggilan SMS. Pendekatan ini populer di awal 2010-an, dan pro dan kontranya dijelaskan, misalnya, di sini . Untuk sistem yang paling serius, pendekatan ini kehilangan relevansinya saat ini.

Sedikit lebih rumit adalah kontrol "manual" dari pengontrol melalui IP khusus melalui WEB atau baris perintah (CLI). Pengontrol harus terhubung secara permanen ke jaringan, memiliki alamat IP statis "putih" atau "abu-abu". Alternatifnya, Anda dapat menggunakan IP dinamis dengan pengikatan ke nama domain statis menggunakan teknologi DynDNS atau yang serupa . Ini berfungsi dengan baik jika hanya ada sedikit objek dan tidak ada persyaratan khusus untuk keandalan.
Kekurangan:
- , WEB () ;
- IP ;
- , NAT;
- IP . , GSM APN ;
- , ยซยป;
- ().
Untuk demonstrasi cepat, kontrol atas beberapa objek, cukup menggunakan kontrol dengan IP, SMS, atau panggilan telepon.
Di sini kami tidak mempertimbangkan situasi ketika dispatcher berjalan pada komputer yang sama dan sistem kontrol diinstal, karena kami menganggapnya sebagai kasus yang merosot dari item berikutnya.
Manajemen server khusus
Dalam kasus lainnya, Anda memerlukan server dengan IP khusus, yang akan melaluinya pengontrol, dispatcher, dan sistem pihak ketiga akan terhubung.

Jika pengontrol mengirimkan data hanya ke arah server, misalnya, meter air atau perangkat navigasi yang paling sederhana (pelacak), koneksi searah sudah cukup. Dalam hal ini, pengontrol hanya perlu mengetahui IP server.
Dalam tugas kami, pertukaran data dua arah diperlukan untuk memperbarui perangkat lunak pengontrol dan mengirimkan perintah. Untuk mengatur pertukaran semacam itu, Anda harus:
- pembacaan pengaturan atau perintah secara berkala dari server atas inisiatif pengontrol (dapat diterima jika Anda tidak memerlukan respons cepat terhadap perintah), atau
- menggunakan IP statis atau nama domain pada pengontrol sehingga server dapat "menjangkau" mereka sendiri, atau
- , . , MQTT, EGTS ( ). IP. , .
Dalam hal sistem kontrol berdasarkan solusi yang terbukti dan andal, SCADA adalah hal pertama yang harus diingat. Dan ini sepenuhnya dibenarkan dalam hal otomatisasi produksi atau fasilitas energi yang besar. Singkatnya, ketika sistem berisi sejumlah besar sensor dan aktuator dari berbagai jenis. Sistem seperti itu memerlukan pengembangan diagram mnemonik unik dan algoritme untuk interaksi peralatan untuk setiap objek, yang dipikirkan dengan sempurna di SCADA.
Jika Anda perlu memantau dan / atau mengelola objek dengan jenis yang sama (seperti dalam tugas yang diusulkan), maka penggunaan SCADA dapat membuat solusi menjadi terlalu "berat" karena kerumitan konfigurasi, kesulitan menambahkan objek standar, dan peningkatan persyaratan untuk kinerja server. Cara terbaik adalah menggunakan salah satu sistem kotak khusus di pasaran yang paling sesuai untuk tugas tersebut. Misalnya:
- pemantauan peralatan jaringan dan sistem kontrol - Sistem manajemen jaringan (SNMP, TR-069, CLI);
- sistem pengukuran otomatis untuk panas, listrik, gas, air. Singkatnya - TANYAKAN;
- sistem pelacakan navigasi untuk objek bergerak dengan kontrol sistem on-board;
- sistem kontrol iklim (ventilasi, AC dan pemanas) - HVAC;
- sistem rumah / kantor / gedung pintar;
- : , () , ;
- - , ..
Sistem ini sering kali tumpang tindih dengan fungsi satu sama lain. Misalnya, berdasarkan ASKUE dimungkinkan untuk menerapkan kontrol pencahayaan luar ruangan, dan berdasarkan "Rumah Pintar" untuk mengontrol iklim dan akses. Perluasan fungsi sistem "hidup" sedang berlangsung. API baru bermunculan untuk mengintegrasikan produk dalam kotak ke dalam solusi pelanggan, serta dukungan untuk fungsi khusus dalam perangkat lunak kotak. Keuntungan besar dari produk dalam kotak adalah kenyataan bahwa mereka dapat dibeli dan diletakkan di server Anda, setelah menerima solusi terasing yang bekerja di sirkuit pelanggan tertutup.
Jika Anda memiliki rencana untuk menjual sistem Anda sendiri di pasar bebas, Anda perlu memahami bahwa pesaing mungkin tumbuh dari pemasok perangkat lunak kotak hari ini besok. Selain itu, penggunaan sistem boks membawa risiko tambahan seperti:
- kenaikan harga lisensi,
- kontrol yang lemah atas sistem (tidak ada kode sumber, bahkan jika ada, sangat sulit untuk dipelihara),
- banyak sistem yang hanya dapat digunakan sebagai layanan cloud, yang mungkin tidak dapat diterima untuk proyek besar dan / atau pemerintah.
Pengembangan berdasarkan platform IoT
Jika menggunakan perangkat lunak dalam kotak tidak memungkinkan, akan menjadi ide yang baik untuk mengembangkan salah satu platform IoT yang populer . Platform tersebut berisi modul universal yang diperlukan dalam sistem IoT apa pun untuk:
- pendaftaran dan penghapusan perangkat IoT,
- otentikasi aman perangkat IoT dan menjaga komunikasi dengan mereka,
- bekerja dengan data (database dioptimalkan untuk berbagai tugas),
- pendaftaran pengguna dan pengelolaan hak akses,
- pembentukan analitik berdasarkan data yang dikumpulkan,
- menghasilkan pemberitahuan untuk pengguna (SMS, E-Mail, pesan push, ...),
- menyimpan data terbaru yang dibaca dari perangkat IoT,
- melakukan berbagai tindakan pada acara,
- visualisasi data, dll.
Arsitektur sistem pada platform IoT praktis tidak bergantung pada ukurannya. Semua tugas yang berkaitan dengan load balancing, menghilangkan fungsi "rem" database dan "berat" dilakukan oleh platform. Selain itu, sisi server aplikasi dengan cepat dirakit dari "kubus" - layanan mikro. Baik waktu ke pasar maupun biaya solusi, yang secara langsung bergantung pada pembayaran untuk pekerjaan pemrogram, berkurang.
Sistem pada platform IoT dapat dikembangkan dalam waktu minimum. Arsitekturnya tidak akan banyak berubah dengan bertambahnya ukuran.
Kelebihan pengembangan di platform IoT berbasis cloud:
- . AWS . . .
- , , , MQTT- โ . , .
- IoT . ( ) ( IoT ).
- .
- tugas pengembangan utama dapat dialihdayakan. Di masa mendatang, solusi tersebut akan dapat mendukung tidak hanya pengembang sistem asli, seperti yang biasanya terjadi. Bagaimanapun, platform IoT memiliki dukungan teknis yang kuat, didokumentasikan dengan baik, dan jumlah pengembang yang dapat bekerja dengannya terus bertambah.
Kekurangan:
- komponen platform IoT hanya beroperasi di fasilitas pemiliknya, membuat sistem yang sepenuhnya dapat diasingkan yang akan bekerja di pusat data pelanggan, mungkin dalam kasus yang jarang terjadi;
- biaya menggunakan platform IoT untuk proyek besar bisa lebih tinggi daripada biaya menyewa mesin virtual di pusat data;
- migrasi dari satu platform IoT ke platform lainnya melibatkan perubahan jumlah kode yang layak. Meskipun sekarang ada kecenderungan ke arah standardisasi API;
- tidak semua platform IoT digunakan di pusat data di Rusia, yang membuatnya tidak mungkin untuk digunakan demi kepentingan pelanggan pemerintah.
Pengembangan sepenuhnya sendiri
Jika kekurangan dari solusi sebelumnya sangat kritis, Anda perlu mengembangkan solusi Anda sendiri. Dan tidak peduli seberapa bagus rencananya, versi pertama dari sistem akan bengkok.

Solusi sendiri sering diimplementasikan berdasarkan sistem open-source seperti ThingsBoard, OpenSCADA, MajorDoMo, Home Assistant, iobroker, Nokia glial. Untuk proyek kecil, mungkin terlalu "berat" karena:
- waktu pengembangan yang lama dan biaya keuangan yang sesuai. Biasanya hitungan dalam orang-tahun;
- dengan bertambahnya jumlah objek, kemacetan akan muncul dalam bentuk database yang lambat, kolektor, pembuat laporan, dll., untuk resolusi yang akan diperlukan untuk mengubah arsitektur dan melengkapinya dengan penyeimbang dan sumber daya duplikat;
- biaya administrasi dan dukungan teknis yang sedang berlangsung.
Pada saat yang sama:
Pembangunan sendiri dibenarkan baik untuk perintah pemerintah, atau proyek dengan rencana ambisius dan anggaran besar, atau ketika kemandirian dan keamanan sangat penting.
Jika Anda membutuhkan demonstrasi cepat ( MVP ), maka itu dapat dilakukan pada platform IoT atau perangkat lunak dalam kotak, mengadopsi pendekatan yang telah teruji waktu, sambil mengembangkan solusi besar Anda sendiri secara paralel.
Kesimpulan
Berdasarkan analisis sistem yang berbeda, kami mengusulkan algoritma pemilihan sistem kontrol berikut.

Untuk demonstrasi dan proyek IoT kecil untuk beberapa objek, Anda dapat menggunakan kontrol langsung melalui IP, SMS, atau melalui panggilan GSM. Jika tidak, diperlukan sistem tingkat atas. Penggunaan SCADA dibenarkan dalam otomasi industri dan fasilitas energi besar. Untuk penghitungan sumber daya, manajemen peralatan jaringan, pelacakan, keamanan, "rumah pintar", dll. akan lebih mudah menggunakan solusi kotak dari spesialisasi yang diperlukan. Mengembangkan sistem pada platform IoT lebih sulit, tetapi memberikan lebih banyak perspektif dan fleksibilitas. Solusi pada platform IoT asing sangat terbatas dalam skala dan area aplikasi di Rusia. Hal tersulit adalah pengembangan diri sendiri. Dan itu dibenarkan hanya untuk perintah pemerintah dan proyek paling ambisius.Pada saat yang sama, untuk demonstrasi cepat dan menyalin praktik terbaik, akan berguna, sejalan dengan pengembangan Anda sendiri, untuk membuat rancangan desain pada platform IoT.
Terakhir, kami ingin membagikan perkiraan kecil:
- di platform cloud IoT, perlu menunggu munculnya template pra-konfigurasi untuk "Smart Home", ASKUE, NMS, ACS, dll. Ini akan semakin menyederhanakan penggunaan platform IoT dan menarik audiens yang lebih besar.
- pengembang tradisional SCADA dan solusi kotak lainnya akan menawarkan lebih banyak alat untuk pengembang eksternal yang telah membuktikan diri dalam platform IoT. Solusi kotak tertutup tidak mungkin tahan terhadap persaingan pasar.
- Platform IoT domestik untuk pelanggan publik dan swasta besar akan berkembang lebih aktif.
- API dari platform IoT yang berbeda akan menjadi lebih mirip dari waktu ke waktu. Karena itu, transisi dari satu platform IoT ke platform IoT lainnya akan disederhanakan.
Di pos berikutnya yang lebih teknis, kami akan membicarakan proyek kami untuk memantau sistem komunikasi di platform AWS dan pengontrol GIC .
Pastikan untuk menulis di kolom komentar jika kita melewatkan sesuatu yang penting. Salah satu tujuan blog kami adalah mendapatkan umpan balik yang membangun.