Saya terlibat dalam pengembangan, implementasi dan pengoperasian sistem kontrol proses otomatis (ACS TP). Awalnya, ia bekerja dengan sistem SCADA. Kemudian ia dengan cepat beralih ke bekerja dengan protokol untuk bertukar perangkat industri. Baik driver penulisan mandiri dan pengaturan sistem pengumpulan data. Saat ini, pekerjaan saya sedang melalui atmosfer Modbus-s, IEC-101/104-s, OPC dan protokol lainnya.
Fig. 1. Berbagai protokol komunikasi yang digunakan dalam sistem kontrol industriSecara singkat tentang cara kerja sistem pengumpulan data khas (sedikit disederhanakan).
Fig. 2. Sistem Akuisisi DataPerangkat lunak khusus yang disebut perangkat polling server OPC terhubung ke antarmuka RS-485. Server OPC adalah semacam lapisan antara sistem dan perangkat SCADA, menerjemahkan bahasa di mana perangkat berkomunikasi ke dalam bahasa yang dapat dimengerti oleh sistem SCADA. Konverter Ethernet / RS-485 digunakan untuk mengonversi paket TCP / IP ke paket yang bepergian melalui lingkungan fisik RS-485.
Skema ini memiliki beberapa kelemahan:
- Atur, misalnya, di server OPC batas waktu menunggu respons 200 ms. Dalam kasus yang ideal, ketika paket pergi ke Ethernet tanpa penundaan, komunikasi dengan perangkat berjalan dengan kecepatan (intensitas) yang baik. Tetapi jika paket yang berisi respons tertunda, misalnya, sebesar 300 ms (ini lebih dari batas waktu respons 200 ms), maka server OPC menganggap bahwa respons terhadap permintaan belum tiba dan mengirimkan permintaan berikutnya. Pada saat ini, jawaban atas permintaan sebelumnya tiba, tetapi server OPC berpikir bahwa ini adalah jawaban untuk permintaan saat ini dan mengirimkan data yang salah ke atas. Akibatnya, data di workstation "melompat". Untuk menjauh dari situasi seperti itu, kami akan menetapkan batas waktu lebih lama. Ambil dengan margin 3000 ms. Jika jawabannya tiba lebih awal dari 3000 ms, maka kami tidak menunggu waktu yang tersisa, kami melanjutkan ke permintaan berikutnya. Sejauh ini, semuanya berjalan dengan baik, tetapi begitu beberapa perangkat berhenti merespons, ada keterlambatan 3000 ms untuk setiap perangkat. Waktu pemungutan suara meningkat.
- Sebagian besar protokol yang digunakan dalam sistem kontrol proses (Modbus, meter listrik) didasarkan pada polling berurutan dari parameter yang sama. Mengingat sebagian besar waktu nilai parameter tetap tidak berubah, jaringan data digunakan untuk mengirimkan yang sama. Ini tidak masuk akal jika media transmisi adalah GPRS, dan lalu lintas membutuhkan biaya. Selain itu, dalam media transmisi GPRS, penundaan paket dapat mencapai beberapa detik. Mengapa membuang-buang waktu dan sumber daya mentransfer hal yang sama?
Untuk situasi di atas, protokol lebih cocok di mana data ditransmisikan ke atas oleh perubahan (secara sporadis) dan dikelompokkan berdasarkan beberapa nilai menjadi satu paket TCP. Protokol seperti itu adalah IEC-60870-5-104 dan OPC UA. ModBus-TCP juga cocok, tidak ada transfer perubahan di dalamnya, tetapi kemudian, jika ada sedikit data, mereka dapat dikemas dalam satu paket. Akan menyenangkan untuk memiliki beberapa jenis pengontrol yang dapat digantung di rel DIN, sambungkan perangkat ke sana melalui RS-485 dan transfer data melalui Ethernet ke sistem SCADA.
Secara umum, ada beberapa gateway perangkat keras dalam jumlah yang cukup banyak. Tetapi dalam bentuk solusi tak terpisahkan siap pakai. Semua menjadi satu. Dan saya tidak terlalu menyukainya. Saya pernah membutuhkan gateway yang mengubah protokol set-4TM meter menjadi OPC UA dengan enam port RS-485 dan dua Ethernet. Satu pabrikan memiliki gateway yang mendukung protokol pertukaran yang diperlukan, tetapi beberapa port RS-485, yang lain memiliki jumlah port RS-485 yang tepat, tetapi tidak ada dua port Ethernet. Yang ketiga memiliki dua port Ethernet, tetapi tidak semua protokol komunikasi. Yang keempat memiliki hampir semuanya, tetapi tidak ada OPC UA, tersedia di papan IEC-60870-5-104 atau ModBus-TCP memerlukan server OPC untuk protokol ini.
Dan betapa indahnya: membeli controller atau mini-PC dengan OS dari satu produsen. Beli perangkat lunak untuk pengontrol dari yang lain. Jika satu pabrikan perangkat lunak tidak mendukung sesuatu, beli salah satu perangkat lunak dari yang lain, gabungkan komponen perangkat lunak melalui antarmuka perangkat lunak standar. Tampaknya ini adalah masa depan yang cerah!
Itulah sebabnya gateway protokol lebih jarang digunakan daripada server OPC dan bundel konverter Ethernet ke RS-485 karena sifatnya yang tidak dapat dipisahkan menjadi beberapa komponen.
Salah satu alasan mengapa SCADA untuk Linux kurang berkembang: SCADA tersedia, beberapa protokol pertukaran didukung di dalamnya, dan tidak ada server OPC untuk komunikasi dengan peralatan. SCADA meninggalkan integrator satu lawan satu dengan perangkat keras.
Pembaca mungkin sudah mengajukan pertanyaan: Apa yang bisa Anda tawarkan? Apa yang sudah ada di sana? Ada OPC UA server untuk Linux untuk protokol berikut:
Untuk mengirimkan data ke tingkat atas tidak hanya melalui protokol OPC UA, "
OPC UA to Modbus Converter dan IEC 60870-5-104 " telah dibuat. Selain fungsi transfer data dari protokol ini, "Konverter" memiliki server web bawaan. Menggunakan editor khusus, Anda dapat menggambar diagram, menampilkan nilai tag di atasnya, dan kemudian membukanya di browser. Ternyata mini-SCADA langsung di controller. Bagaimana animasi sirkuit bekerja, saya sudah menulis di
sini , tentang editor di
sini . Di masa depan, "OPC UA to MQTT Converter" direncanakan.
Server dan konverter OPC UA berfungsi pada arsitektur x64, ARMv7 dan AARCH64.
Dengan demikian, untuk perangkat keras, Anda dapat menggunakan kedua solusi yang telah teruji waktu berdasarkan komputer industri mini, dan semua jenis minicomputer ARM "raspberry pi kompatibel". Cara menginstal dan mengkonfigurasi perangkat lunak dengan contoh dapat dibaca di
sini atau di
sini .
Secara umum, struktur kompleks terlihat seperti ini:

Sistem ini dapat diskalakan. Komponen yang diperlukan hanya untuk menyelesaikan masalah saat ini digunakan.
Menggunakan server OPC UA, skema kami diubah:

Kami memiliki yang berikut:
- Server OPC UA mengumpulkan data dari perangkat melalui RS-485 tanpa penundaan besar di antara permintaan;
- Data dalam SCADA dikeluarkan dalam beberapa bagian dalam satu paket TCP untuk perubahan;
- Anda dapat menghubungkan beberapa workstation yang dikonfigurasi sama ke server OPC UA. Berguna jika duplikasi diperlukan.
Jadi, alih-alih menggabungkan server OPC dan "Ethernet to RS-485 Converter", kami mendapatkan satu perangkat yang menggabungkan fungsionalitasnya. Saya lebih suka skema ini. Bagaimana dengan kamu?