1 Pendahuluan
Mikrokontroler semakin banyak diterapkan pada perangkat kontrol otomatis, sistem perlindungan terintegrasi berbasis mikroprosesor untuk jaringan listrik, dan bidang kontrol otomasi industri lainnya, dengan kompleksitas perangkat ini yang terus meningkat. Untuk memenuhi tuntutan target pengembangan-waktu nyata dan multitugas-, model-CPU tunggal,-pengembang tunggal digantikan oleh pendekatan kolaboratif yang melibatkan banyak CPU dari berbagai jenis dan banyak pengembang. Paradigma pengembangan baru ini menimbulkan tantangan penting: standarisasi perangkat keras dan perangkat lunak untuk pertukaran informasi antar CPU selama implementasi. Standardisasi ini sangat penting untuk keberhasilan penerapan model baru ini. Di antara berbagai metode komunikasi, protokol komunikasi serial RS-485 berbasis UART-digunakan secara luas karena pengkabelannya yang sederhana, keandalan yang tinggi, dan kemampuan untuk mendukung banyak CPU. Mengenai protokol komunikasi perangkat lunak, protokol Modbus menawarkan keuntungan signifikan bagi pengguna karena sifatnya yang universal dan perangkat lunak debugging yang matang. Oleh karena itu, selama pengembangan perangkat perlindungan komprehensif motor baru, metode komunikasi serial RS-485 dan protokol komunikasi Modbus diadopsi untuk mencapai pertukaran data dan informasi perintah kontrol antara beberapa CPU. Untuk meningkatkan efisiensi dan koordinasi komunikasi serial, penulis menerapkan berbagai langkah dalam arsitektur perangkat keras dan perangkat lunak dari mekanisme komunikasi, sehingga mencapai hasil yang sangat baik. Selama fase debugging komunikasi sistem, sebuah metode digunakan di mana setiap modul CPU terlebih dahulu berkomunikasi dengan perangkat lunak uji Modbus standar sebelum menjalani debugging interkoneksi timbal balik, sehingga secara signifikan meningkatkan efisiensi pengembangan kolaboratif. Praktek telah membuktikan bahwa filosofi desain ini menyederhanakan struktur sistem sekaligus meningkatkan efisiensi dan keandalan operasional perangkat.
2 Fitur Perangkat Perlindungan Komprehensif Motor
Selain fungsi perlindungan komprehensif, perangkat perlindungan motor mengintegrasikan kemampuan pengukuran, telekontrol, dan komunikasi. Layar-LCD karakter Cina yang besar memungkinkan antarmuka-ramah pengguna. Memanfaatkan komunikasi bus CAN dengan host pemantauan, ia membentuk subsistem dalam sistem otomasi gardu induk terdistribusi yang hierarkis. Untuk mengoptimalkan fungsionalitas sistem untuk kebutuhan multi-tugasnya, arsitektur multi-CPU diadopsi. Satu CPU menangani pengambilan sampel dan transmisi pulsa secara berkala; modul CPU utama mengelola pemrosesan data, perhitungan parameter listrik, diagnosis kesalahan, dan operasi peralihan; sedangkan CPU modul papan mengawasi interaksi-manusia dan mesin serta memfasilitasi komunikasi dengan modul perlindungan utama dan host pemantauan. Setiap modul CPU memiliki tugas yang jelas, memfasilitasi pengembangan kolaboratif oleh banyak insinyur selama implementasi. Komunikasi serial menghubungkan CPU utama dan CPU panel, memungkinkan interaksi manusia{11}}mesin sehingga menempati posisi penting. Membangun mekanisme komunikasi rasional adalah inti dari bagian komunikasi serial, menentukan koordinasi komunikasi dan efisiensi debugging selama tahap selanjutnya pengembangan sistem.
3 Pengantar Mekanisme Komunikasi
3.1 Perancangan Perangkat Keras Mekanisme Komunikasi
Mekanisme komunikasi yang diusulkan untuk sistem ini bertujuan untuk efisiensi dan keandalan yang tinggi. RS-485 menggunakan struktur setengah-dupleks, yang seringkali lebih praktis daripada dupleks penuh dalam aplikasi lapangan. Di sini, koneksi yang disederhanakan hanya menggunakan dua jalur sinyal diadopsi. Diagram rangkaian antarmuka sistem ditunjukkan pada Gambar 1. Output level logika TTL oleh mikrokontroler 8051 pada modul proteksi utama diisolasi secara optik, kemudian diubah menjadi level RS-495 oleh chip MAX485. Selanjutnya, chip MAX485 pada modul panel mengubahnya kembali menjadi level logika TTL untuk dibaca oleh mikrokontroler 8031. Di sisi mikrokontroler 8051, pin P2.7 dari port I/O paralel 2 mengontrol pin pengaktif input MAX dan pin pengaktif keluaran DE. Seperti yang ditunjukkan pada Gambar 1, ketika P2.7 mengeluarkan output tingkat tinggi, RE diaktifkan, memungkinkan sisi mikrokontroler menerima data. Ketika P2.7 mengeluarkan level rendah, DE diaktifkan, memungkinkan sisi mikrokontroler mengirimkan data. Pendekatan ini mencegah kehilangan data akibat tumpang tindih yang disebabkan oleh transmisi buta, memastikan kualitas komunikasi yang tinggi dan kecepatan transmisi yang andal.

3.2 Protokol Komunikasi
Untuk memastikan transmisi data yang akurat antara dua modul dalam perangkat perlindungan, serangkaian spesifikasi yang mengatur transfer informasi-termasuk mode transmisi, format data, dan konten-sangatlah penting. Ini merupakan protokol atau protokol komunikasi. Tanpa perangkat lunak proses debug yang matang dan tersedia, modul CPU utama pada dasarnya berfungsi sebagai kotak hitam, yang menyebabkan banyak tantangan-untuk-diatasi selama pengujian integrasi sistem. Oleh karena itu, protokol komunikasi Modbus yang diadopsi secara luas dipilih dan disederhanakan agar sesuai dengan kebutuhan spesifik perangkat, sehingga memungkinkan komunikasi antar-modul dengan efektivitas yang terbukti. Modbus menggunakan model komunikasi master-slave. Master terlebih dahulu mengirimkan perintah permintaan komunikasi ke slave. Budak kemudian merespons master dengan data berdasarkan kode fungsi dalam perintah permintaan. Setiap budak memiliki alamat unik. Baik frame permintaan yang dikirim oleh master maupun frame respon yang dikirim oleh slave dimulai dengan alamat slave. Budak hanya membaca perintah yang ditujukan kepada dirinya sendiri dan mengabaikan pesan yang dimulai dengan alamat budak lainnya. Fungsi ini diimplementasikan menggunakan Mode 2 atau Mode 3 port serial 8051. Model komunikasi-dan-jawaban ini meningkatkan akurasi komunikasi secara signifikan. Mode transmisi RTU Modbus diadopsi di perangkat ini.
4 Langkah untuk Meningkatkan Keandalan Komunikasi
Dua byte terakhir dari pesan Modbus berfungsi sebagai byte checksum. Komunikasi RTU menggunakan pemeriksaan redundansi siklik CRC-16 untuk mendeteksi kesalahan. Mekanisme pengkodean/penguraiannya relatif sederhana dengan tingkat kesalahan yang rendah, dapat dicapai melalui metode komputasi atau pemrograman. Beberapa pendekatan diuraikan di bawah ini:
4.1 Algoritma Dasar (Perhitungan Manual)
Menggunakan CRC16-CCITT sebagai contoh: checksum CRC adalah 16 bit, dan polinomial pembangkit adalah 17 bit. Misalkan aliran data adalah 4 byte: BYTE, BYTE, BYTE, BYTE[0];
Geser aliran data ke kiri sebesar 16 bit, yang secara efektif memperluasnya dengan faktor 256×256. Kemudian lakukan pembagian dengan generator polinomial 0x11021 menggunakan pembagian non-peminjaman (setara dengan bitwise XOR). Sisa yang dihasilkan adalah checksum CRC. Aliran data yang dikirimkan terdiri dari 6 byte: BYTE, BYTE, BYTE, BYTE[0], CRC, CRC[0].
4.2 Algoritma Komputer 1 (Bit-Jenis Algoritma)
1) Tempatkan 16 bit teratas (BYTE, BYTE) dari aliran data yang diperluas (6 byte) ke dalam register 16-bit;
2) Jika bit paling signifikan dari register adalah 1, geser register ke kiri sebanyak satu bit (dapatkan bit paling signifikan dari byte berikutnya), kemudian lakukan operasi XOR dengan bentuk polinomial generator yang disederhanakan; jika tidak, cukup geser register ke kiri sebanyak satu bit (dapatkan bit paling tidak signifikan dari byte berikutnya);
3) Ulangi langkah 2 hingga seluruh aliran data (6 byte) dipindahkan ke register;
4) Nilai dalam register adalah CRC checksum CRC, CRC[0].
4.3 Algoritma Komputer 2 (Byte-Jenis Algoritma) (256^n menunjukkan 256 dipangkatkan n)
Mewakili aliran data yang diurutkan byte-sebagai polinomial matematika. Biarkan aliran data menjadi BYTE[n] BYTE[n-1] BYTE[n-2] ... BYTE[0] direpresentasikan sebagai ekspresi matematika
BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0], dengan "+" menunjukkan operasi XOR. Misalkan polinomial generatornya adalah G17 (17-bit), maka kode CRCnya adalah CRC16.
CRC16=(BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0]) × 256^2 / G17
Ini melibatkan pergeseran aliran data ke kiri sebanyak 16 bit dan kemudian membaginya dengan polinomial generator G17.
Derivasi menunjukkan bahwa kode cek CRC untuk BYTE[n-1] sama dengan hasil XOR dari 8 bit teratas kode cek CRC byte sebelumnya Y[n] (YH8[n]) dan byte saat ini BYTE[n-1].
Algoritma tipe byte-adalah sebagai berikut:
1) Inisialisasi grup register CRC ke semua "0" (0x0000).
2) Geser grup register CRC 8 bit ke kiri dan simpan di grup register CRC.
3) Lakukan operasi XOR antara 8 bit tinggi grup register CRC asli (digeser 8 bit ke kanan) dan byte data untuk mendapatkan indeks yang menunjuk ke tabel nilai.
4) Lakukan operasi XOR antara nilai tabel yang ditunjuk oleh indeks dan grup register CRC.
5) Tingkatkan penunjuk data. Jika pemrosesan data belum selesai, ulangi langkah 2).
6) Dapatkan CRC.
5 Langkah untuk Meningkatkan Efisiensi Komunikasi
5.1 Tugas Penerimaan dan Pengiriman Komunikasi Terpisah
Mikrokontroler 8051 dapat mengirim dan menerima data melalui port serial menggunakan interupsi. Pengontrol port serial SCON mendukung inisialisasi dan pengalamatan bit. Ketika permintaan interupsi port serial terjadi, dua bit terbawah SCON mengunci interupsi pengiriman dan penerimaan. Ketika CPU menulis data atau karakter ke buffer transmisi port serial SUBF (instruksi: MOV SUBF, A), pemancar mulai mengirim. Setelah menyelesaikan satu bingkai data, perangkat keras menyetel tanda TI ke "1", yang menunjukkan port serial meminta interupsi dari CPU untuk mengirim bingkai data berikutnya. Demikian pula, jika penerima port serial diaktifkan untuk penerimaan, setelah menerima bingkai data, flag RI disetel ke 1, yang menunjukkan bahwa port serial meminta interupsi dari CPU untuk membaca data dari buffer data penerima.
5.2 Mengurangi Durasi Interupsi
Karena banyak interupsi digunakan dalam desain arsitektur perangkat lunak, untuk memastikan pengoperasian program yang andal dan meminimalkan kemungkinan konflik antara tugas yang berbeda, implementasi perangkat lunak harus berusaha untuk menyederhanakan tugas berbagai interupsi dan mempersingkat waktu eksekusinya. Dalam subrutin interupsi komunikasi, lakukan tugas-tugas penting saat memasuki interupsi, seperti: membersihkan bit status yang sesuai dalam register kontrol port serial, membaca karakter yang diterima atau menulis karakter yang akan dikirim dari/ke buffer, menambah jumlah karakter yang diterima atau ditransmisikan, dll. Kemudian segera keluar dari interupsi. Tugas lain, seperti memvalidasi frame, merespons perintah frame yang diterima (telemetri/telecommand), dan menyiapkan frame transmisi, harus ditangani dalam program utama.
5.3 Deteksi Pengakhiran Bingkai yang Efisien untuk Mencegah Stagnasi Komunikasi
Pemanfaatan pengatur waktu perangkat lunak khusus untuk mendeteksi akhir frame yang diterima akan mencegah tugas komunikasi tertunda jika frame diterima secara tidak lengkap, sehingga menjamin penerimaan frame berikutnya secara tepat waktu. Karena interval waktu antar byte dalam bingkai jauh lebih pendek daripada interval bingkai-ke-bingkai, pengatur waktu perangkat lunak dimulai setiap kali byte baru diterima. Timer disetel ke interval bingkai-ke-minimum. Interval ini bervariasi dengan baud rate yang berbeda. Jika byte berikutnya diterima sebelum waktu yang ditentukan berlalu, ini menunjukkan frame tidak lengkap, dan pengatur waktu dimulai ulang. Jika pengatur waktu berhasil menghitung mundur ke waktu yang telah ditentukan, ini akan memicu nomor interupsi yang sesuai. Dalam subrutin interupsi pengatur waktu, byte bendera akhir bingkai disetel, menandakan penerimaan bingkai telah selesai. Setelah program master mendeteksi penyelesaian penerimaan frame, program tersebut memvalidasi integritas frame dengan memverifikasi alamat slave dan byte cyclic redundancy check (CRC). Jika dikonfirmasi sebagai frame valid yang ditujukan untuk master, ia memproses perintah frame berdasarkan kode fungsinya dan bersiap untuk mengirim frame. Ketika slave menerima pesan yang salah, ia mengirimkan kembali frame error. Jika pesan yang diterima memiliki CRC yang salah, budak dapat memilih untuk tidak merespons. Jika master tidak menerima respon dari slave dalam waktu yang ditentukan, maka master akan mengirimkan ulang pesan permintaan tersebut. Jika beberapa transmisi ulang gagal menerima respons dari budak, kegagalan komunikasi dilaporkan.
5.4 Menentukan Kecepatan Komunikasi
Karena semua perangkat berada dalam sasis yang sama, jarak antar modul menjadi minimal. Modbus beroperasi pada RS485 untuk-komunikasi jarak jauh, sehingga menghilangkan kebutuhan untuk mempertimbangkan efek jarak pada baud rate. Selain itu, mode komunikasi master-slave mencegah kemacetan jalur. Oleh karena itu, dari sudut pandang efisiensi komunikasi, selama baud rate yang ditetapkan tidak melebihi batas baud rate maksimum chip yang digunakan dalam modul, baud rate yang lebih tinggi menghasilkan pertukaran informasi yang lebih cepat dan efisiensi komunikasi yang lebih tinggi. Menetapkan baud rate agar sama persis untuk kedua pihak komunikasi memastikan bahwa pihak penerima mengambil sampel setiap bit data pada titik tengah siklus bit, sehingga mencapai komunikasi yang andal.
5.5 Metode Debugging yang Wajar
Selama proses debug, uji terlebih dahulu komunikasi antara setiap modul CPU dan komputer mikro melalui modul konversi data RS485/RS232. Setelah pengujian individual berhasil, lanjutkan ke proses debug antar-modul, yang secara signifikan meningkatkan efisiensi proses debug secara keseluruhan. Selama proses debug komunikasi modul-ke-komputer, komputer menggunakan perangkat lunak debug Modbus untuk menyimulasikan proses komunikasi master, yang secara aktif meminta informasi dari budak. Hal ini membuat seluruh proses penerimaan dan transmisi menjadi transparan dan jelas, sehingga memungkinkan penyelesaian masalah modul secara tepat waktu. Selama proses debug bersama, perangkat lunak pemantauan bus mengamati data dari kedua sisi untuk segera mengidentifikasi dan menyelesaikan masalah.
6 Poin Inovasi Makalah Ini
Pertama, makalah ini mengadopsi Modbus, standar industri universal, dalam perangkat perlindungan. Perangkat lunak alat yang diperlukan dapat diperoleh langsung dari situs web terkait tanpa menimbulkan biaya kekayaan intelektual. Kedua, perangkat perlindungan menerapkan multitasking dan menggunakan protokol Modbus untuk menciptakan mekanisme debugging gabungan yang masuk akal antar modul CPU, sehingga sangat meningkatkan efisiensi pengembangan sistem kolaboratif.




