Pendahuluan
Di universitas kami, kompleks pendidikan dan laboratorium "Virtual Railway" telah dibuat, dan bukan untuk sepuluh tahun pertama. Kompleks ini tidak hanya mencakup simulator rolling stock, tetapi juga simulator tempat kerja untuk operator kereta api, petugas stasiun, operator energi, simulator peralatan untuk mendiagnosis struktur atas trek. Berbicara secara khusus tentang simulator rolling stock, saya perhatikan bahwa spesifikasi pengembangannya agak berbeda dari konsep simulator untuk pengemudi. Universitas kereta api tidak melatih pengemudi kereta, lulusan kami adalah insinyur kereta api. Oleh karena itu, tugas simulator lokomotif atau kereta listrik tidak hanya untuk membiasakan siswa dengan perangkat kabin, kontrol, teknik, dan aturan untuk mengendalikan rolling stock. The rolling stock simulator juga merupakan simulator, yang secara real time mereproduksi pengoperasian sistem rolling stock. Saat mendesainnya, penekanan utama ditempatkan pada proses apa yang terjadi pada peralatan mesin dalam mode operasi yang berbeda, bagaimana dampak pada kontrol tercermin dalam proses ini.
Baru-baru ini, tim kami menyelesaikan pengembangan simulator kereta "Swallow" ES1. Ini akan dibahas lebih lanjut
1. Bagian perangkat lunak dan keseluruhan struktur kompleks pelatihan
Apa artinya membuat kompleks pelatihan kereta api? Ini berarti mengembangkan sistem perangkat keras dan perangkat lunak yang mencakup
- Simulasi tempat kerja pengemudi - panel kontrol dengan semua organ dan sarana untuk menampilkan informasi;
- Kompleks komputer yang secara real-time mensimulasikan dinamika kereta, pengoperasian sistemnya: sirkuit daya, penggerak traksi, peralatan pengereman;
- Perangkat untuk kontrol antarmuka, sarana untuk menampilkan informasi pada remote control dan, jika perlu, peralatan kereta nyata yang termasuk dalam simulator dengan model komputer.
- Sistem visualisasi untuk tampilan dari kabin dari tempat kerja pengemudi
- Subsistem manajemen pelatihan dengan kemampuan untuk menyajikan dan menganalisis data secara visual tentang pengoperasian sistem kereta api
Akibatnya, semua ini menghasilkan sistem yang strukturnya digambarkan dalam gambar.
Diagram fungsional kompleks pelatihan untuk kereta listrik ES1
Kompleks komputer simulator terdiri dari dua komputer (PC1 dan PC2) yang terhubung ke jaringan lokal melalui router domestik (TPLink 842 nd rev3, tidak ada yang luar biasa) dengan kemungkinan akses jarak jauh ke sistem melalui Wi-Fi.
OS berbasis GNU / Linux dipilih sebagai platform sistem untuk kedua mesin. Alasannya adalah sebagai berikut:
- Lisensi gratis;
- Kemampuan untuk menyesuaikan komposisi perangkat lunak sistem secara mendalam;
- Orientasi sistem ke solusi yang tertanam;
- Inti mendukung semua periferal yang diperlukan "di luar kotak."
Terlepas dari kenyataan bahwa PC rumah tangga digunakan secara umum, perangkat lunak aplikasi dalam sistem seperti itu harus membawa pengguna ke tingkat persepsi di mana ia bahkan tidak akan menyadari bahwa ada semacam sistem operasi di dalamnya. Tanpa keyboard! Tanpa mouse! Turun dengan desktop! Dia datang, memutar saklar daya, tidak menunggu lama dan menyiapkan sistem untuk bekerja. Di sini Anda dapat berdebat untuk waktu yang sangat lama, tetapi Linux, dalam arti kesederhanaan penerapan pendekatan semacam itu, jauh melebihi OS lainnya. Di antara beragam distribusi yang beragam, pilihan kami terbatas pada Arch Linux karena alasan berikut:
- Kemungkinan kustomisasi mendalam pada tahap penyebaran sistem;
- Rolling-release, yang berarti versi baru dari paket;
- Paket biner, tidak seperti Gentoo yang sama, yang berarti penyebaran dan pemeliharaan sistem kecepatan tinggi.
PK1 adalah yang utama, ia menjalankan model komputer kereta api, yang secara struktural diwakili oleh dinamika mesin kereta TrainEngine, yang mensimulasikan pergerakan bagian mekanik kereta dan modul yang menerapkan model matematika dari peralatan yang tidak terkait dengan mekanik. Modul-modul ini, bersama-sama dengan modul server TCP dan perpustakaan Modbus RTU, membentuk modul tunggal yang dapat dieksekusi dari inti komputasi.
TrainEngine mengimplementasikan apa yang disebut model kereta umum. Kereta apa pun, apakah itu kereta listrik berkecepatan tinggi atau kereta barang, secara mekanis merupakan sistem tubuh yang terhubung yang pergerakannya dibatasi oleh konfigurasi struktur atas trek. Pasangan roda dari beberapa bodi diterapkan saat yang disediakan oleh subsistem traksi dan rem. Jadi untuk setiap simulator, fungsinya akan sama. Oleh karena itu, semua mekanisme pergerakan kereta dilakukan di perpustakaan yang dapat dikonfigurasi secara terpisah. Perbedaan antara jenis rolling stock diimplementasikan pada tingkat model perangkat lunak dari sisa peralatan.
Antarmuka interaksi pengemudi dengan lokomotif / kereta modern sekarang dipenuhi dengan modul tampilan. Faktanya, banyak cara tampilan informasi, yang sebelumnya diimplementasikan oleh perangkat pointer, dikurangi menjadi satu set layar komputer di mana informasi saat ini ditampilkan. Ada empat layar pada βSwallowβ yang sama: dua antarmuka manusia-mesin multifungsi, tampilan kompleks lokomotif yang aman (BLOCK) dan tampilan sistem pengawasan video.
Antarmuka manusia-mesin dari kereta listrik nyata
Tampilan Kompleks Lokomotif Aman (BLOCK)
Interior kabin dan tata letak tampilan di kereta listrik nyata
Pada kereta listrik nyata, setiap modul display adalah komputer industri terpisah yang berkomunikasi dengan sistem kontrol menggunakan protokol MVB / WTB tertentu. Modul-modul ini menjalankan Windows XP Embedded (ya, bayangkan!).
Dalam kasus kami, pemborosan seperti itu tidak ada gunanya - empat layar sentuh dari Elo, terhubung ke PC1 melalui Display Port dan kabel USB untuk antarmuka sentuh. Modul tampilan diimplementasikan sebagai proses terpisah yang berkomunikasi dengan inti komputasi melalui soket TCP. Pengaturan Xorg memungkinkan setiap jendela untuk hidup secara eksklusif di monitor yang dimaksud. Tombol perangkat keras pada bingkai tampilan disimulasikan oleh perangkat lunak.
Dimungkinkan untuk mereproduksi fungsionalitas dasar dari perangkat-perangkat ini yang berkaitan dengan sistem kereta listrik yang bertanggung jawab untuk traksi dan pengereman. Aplikasi ditulis dalam C ++ menggunakan framework Qt5. Secara umum, Qt5 meresapi semua perangkat lunak, mengingat kemampuan adaptasinya yang tinggi untuk menciptakan antarmuka pengguna dan ketersediaan perpustakaan untuk bekerja dengan protokol TCP / IP dan Modbus RTU. Plus, teknologi slot sinyal yang terkenal ternyata sangat diperlukan dalam mengatur interaksi kelas di semua tingkatan.
Antarmuka Mesin Manusia Simulator
Tampilkan simulator BLOCK
Karena kekhususan simulator kami, tampilan sistem pengawasan video tidak diperlukan, sebagai gantinya, layar yang tersisa digunakan untuk kebutuhan kami untuk mengontrol peluncuran pelatihan, mengkonfigurasi dan mengelola kekuatan komputer.
Workout Startup Interface
2. Perangkat Keras - mengontrol dan mendistribusikan antarmuka
Operasi yang paling sulit dan mahal adalah untuk melengkapi simulator dengan kontrol yang otentik ke kokpit nyata. Akan membeli potongan-potongan besi asli tidak pergi karena dua alasan. Yang pertama adalah biaya besar dari komponen asli, dibenarkan oleh penggunaannya pada rolling stock nyata dan diproduksi sesuai dengan persyaratan yang relevan. Yang kedua - interfacing dengan komputer diperumit oleh fakta bahwa pada rolling stock nyata protokol tertutup untuk interaksi peralatan dan sistem kontrol digunakan. Satu-satunya jalan keluar bagi kami adalah merancang dan membuat elemen-elemen seperti pengontrol traksi / pengereman secara independen, katup rem, dan pengukur tekanan untuk sistem rem kereta listrik.
Untuk membuatnya jelas, ini terutama tentang tuas ini
Kontrol traksi / pengereman yang nyata di kabin kereta listrik
Dimungkinkan untuk mengukur dimensi eksternalnya, apa yang menonjol di atas panel, di bawah senyum skeptis brigade lokomotif "Swallows" dengan barbell. Kami mendesain interior seperti yang kami rasa nyaman dalam hal tata letak unit di konsol masa depan dan pemasangan transduser pengukur di atasnya. Hasilnya adalah konsep yang disatukan untuk kedua "joystick"
Konsep pengontrol terpadu untuk simulator
Secara pneumatik, katup rem berbeda dari pengontrol traksi hanya pada posisi awal pegangan di "nol" dan adanya lapisan dekoratif plastik. Sisa dari pengontrol ternyata disatukan oleh bagian-bagian, sensor dan papan elektronik.
Encoder inkremental digunakan sebagai sensor posisi, sensor optik posisi nol digunakan untuk mengatur nol dalam program kontrol. Firmware dari bagian elektronik perangkat menginterogasi eco-encoder dan optocoupler dan memberikan posisi pegangan sebagai persentase daya tarik / pengereman dan sejumlah tanda logis: posisi nol, menekan tutup gagang, mode pengereman darurat.
Di bawah spoiler adalah serangkaian foto yang menjelaskan secara umum desain perangkat ini.
Sejarah singkat perkembangan dalam bentuk fotoMekanik dalam logam telanjang yang tidak dicat, segar dari pabrik
Kit Pengontrol Traksi yang Dicat
Kontrol mekanika segera setelah pelapisan bubuk. Kami mencoba enkoder
Subjek uji
Katup pneumatik pengemudi setelah memasang overlay dekoratif yang dicetak pada printer 3D
Unit pengontrol traksi yang di-debug dengan otak
Kontroler traksi dipasang pada panel standar. Modul I / O diskrit yang berdekatan terlihat.

Manometer menjadi batu sandungan lain, ini
Periksa pengukur untuk sistem pneumatik kereta listrik
Bahkan jika kita punya yang biasa - perangkat ini pneumatik, terhubung ke jaringan pipa sistem rem. Yang dibutuhkan adalah perangkat yang menampilkan tekanan yang datang dari model komputer. Plus terlihat seperti aslinya. Ditambah lagi, tidak dapat membuat persneling, saya harus merancang dan menghasilkan mekanisme tanpa roda gigi yang memungkinkan Anda memutar dua panah secara mandiri
Tujuan untuk penemuan licikBagian eksekutif alat pengukur tekanan elektromekanis

Akibatnya, setelah beberapa bulan musyawarah, pengembangan, pembuatan dan debugging, majelis tersebut keluar

Lebih banyak foto pengukur tekananSeperangkat bagian yang dibuat pada printer 3D
Debugging saat menulis firmware
Tidak ada masalah dengan kontrol lain - sisanya hanya tombol dan sakelar. Namun, jumlah mereka cukup untuk merenungkan bagaimana memasukkan semua sinyal ini ke dalam komputer.
Kami memutuskan untuk pergi ke jalur yang sulit dalam skala industri - RS485 adalah segalanya bagi kami. Harness pendek dari tombol dan lampu kontrol menuju ke kartu I / O diskrit, dan dari sana kondisinya dimasukkan ke dalam mesin melalui dua kabel twisted-pair.
Panel di zona J dari tampilan atas konsol pengemudi
... tampilan bawah instalasi. Papan I / O terlihat
Modbus RTU dipilih sebagai protokol pertukaran data karena kesederhanaan, keterbukaan dan prevalensi di bidang yang terkait dengan otomasi industri. Papan input / output terpisah bersifat universal dan dipasang pada panel remote control di tempat yang membutuhkannya. Untuk perangkat seperti pengontrol dan manometer, serta lampu lalu lintas lokomotif, solusi terpisah telah diterapkan karena kekhasan pekerjaan mereka.
Hasilnya adalah jaringan 12 pelanggan. Sinyal dimasukkan ke dalam komplek komputer melalui adaptor RS485 / USB. Perangkat lunak menggunakan implementasi yang sudah jadi dari Modbus RTU dari kerangka kerja Qt5.
Jeroan konsol sebelum perakitan akhir simulator
Beberapa foto lagiPeluncuran pertama modul display pada layar standar
Debugging dalam ayunan penuh
Kompartemen Listrik
Salah satu tahapan dari pertemuan terakhir
Ini dirakit dan di-debug. Siap untuk pemasangan taksi
Secara umum, ternyata cukup dapat diandalkan, dan yang paling penting nyaman untuk perluasan fungsi selanjutnya. Semua komponen elektronik dari sistem berada di bawah kendali waspada dari sistem diagnostik program. Pesan-pesan kegagalan dikeluarkan sesegera mungkin yang dapat dibaca manusia, dengan tujuan mendeteksi dini blok sampah
Layar diagnostik dengan log dari sesi simulator saat ini
3. Subsistem visualisasi tiga dimensi
Dengan semua kekuatan dalam hal menciptakan efek kehadiran, bagian dari sistem ini adalah yang paling tidak fungsional. Tidak ada "fisika" di dalam, semua "fisika" adalah sisi-server. Klien grafis dipindahkan ke komputer PC2 terpisah. Dari server, ia menerima apa yang disebut koordinat kereta api - bergerak di sepanjang jalan dalam kilometer, menerjemahkannya ke dalam koordinat tiga dimensi kamera dan menunjukkan pemandangan dari kabin ke lanskap sekitarnya. Pada PC2, NVidia GTX 1060 biasa diinstal. Sistem video ditulis dalam Unity Personal.
Sistem video dalam proses debugging
Di sini kami masih memiliki banyak pekerjaan yang harus dilakukan dalam hal menemukan arsitektur terbaik, dan kami terus-menerus mengerjakannya. Ada cukup nuansa untuk menjadikan cerita tentang mereka sebagai topik dari pos terpisah.
Kesimpulan
Saat ini, simulator sedang menjalani uji coba operasi dan pengujian dalam proses pendidikan di laboratorium transportasi berkecepatan tinggi dari universitas kami. Saya harap saya mendapat cerita yang menarik, saya berterima kasih kepada pembaca atas perhatian mereka. Saya minta maaf untuk sejumlah besar foto-foto berat, well, tanpa ini dengan cara apa pun.
(c) Pusat Pengembangan Kompetensi Inovasi