Kontrol komunikasi dalam VisualBasic dan metode desain perangkat lunak komunikasi pada platform windows digabungkan dengan contoh spesifik untuk memberikan program komunikasi dasar.
Pada tahun 1992, Crescent Software Inc. merancang kontrol komunikasi pengguna mcomm.vbx khusus untuk VB. Ini menyediakan kemampuan komunikasi serial untuk mengirim dan menerima data melalui port serial. Ini tidak hanya mencakup fungsi yang diselesaikan oleh semua 16 fungsi komunikasi serial di Windows API. , dan telah mengembangkan lebih banyak atribut objek yang memfasilitasi desain pengguna untuk memenuhi kebutuhan pengguna yang berbeda dan bisnis yang berbeda. Saat ini, banyak materi VB dalam negeri yang jarang melibatkan pengenalan kontrol komunikasi ini. Artikel ini akan memperkenalkan kontrol komunikasi mscomm.vbx dan metode pemrograman secara rinci, dan memberikan program komunikasi dasar berdasarkan contoh di tempat kerja.
Deskripsi kontrol komunikasi 1mscomm.vbx
Kontrol komunikasi mcomm.vbx dapat langsung ditambahkan ke formulir formulir dari kotak alat VB, dan dapat digunakan untuk komunikasi. Jika tidak ada kontrol seperti itu di kotak alat, gunakan kontrol khusus alat untuk menambahkan mcomm.vbx dari subdirektori sistem windows ke kotak alat vb.
1.1 Metode komunikasi
mcomm.vbx memiliki 2 cara berbeda untuk menangani dan menyelesaikan masalah pengembangan dan desain berbagai perangkat lunak komunikasi
1. Didorong oleh peristiwa. Ini mirip dengan fungsi panggilan balik jendela saat menulis perangkat lunak Windows dalam C/C, dan merupakan cara ampuh untuk mengatasi masalah. Dalam pekerjaan sebenarnya, kita sering harus berurusan dengan banyak peristiwa terkait dalam komunikasi. Misalnya: ketika data jalur tiba di ujung lokal atau status jalur sinyal cd dan rts berubah, kita diharuskan menggunakan peristiwa terkait untuk menggunakan peristiwa tersebut. track dan proses. Kontrol ini digunakan Peristiwa oncomm diimplementasikan, yang juga mencakup pendeteksian dan penanganan kesalahan komunikasi dan masalah lainnya. Nilai commevent mengembalikan peristiwa komunikasi terbaru atau kode numerik kesalahan. Contoh kesalahan dan kejadian terperinci dari pengendalian komunikasi meliputi:
mcomm-er-break menerima 1 sinyal break
batas waktu sinyal mcomm-er-cdtocd habis
…
perubahan sinyal mcomm-ev-cdcd
…
2. Metode penyelidikan. Merupakan tanggung jawab programmer untuk membaca nilai commevent dan menangani kesalahan atau kejadian yang terjadi. Biasanya desain aplikasi sederhana dapat mengadopsi pendekatan ini.
1.2 Sifat pengendalian komunikasi
Kunci dalam menggunakan pengendalian komunikasi untuk menyusun program komunikasi adalah dengan memahami dan mengatur properti pengendalian komunikasi secara akurat. mcomm.vbx menyediakan 27 properti tentang kontrol komunikasi, seperti:
commport: Mengatur atau mengembalikan nomor port komunikasi.
setting : Mengatur atau mengembalikan format komunikasi data dalam bentuk string: baud rate, parity, data bits dan stop bits.
portopen: Mengatur atau mengembalikan status port komunikasi (termasuk membuka dan menutup port komunikasi)
…
3. Contoh
Latar belakang aplikasi program ini adalah perangkat lunak sistem pemantauan otomatis electrostatic precipitator dcc95, yang memecahkan masalah komunikasi antara 1 pc komputer industri (stasiun master) dan 32 mikrokontroler (gardu induk). Struktur jaringan bus antara stasiun induk dan gardu induk mengadopsi standar komunikasi RS-485 dan melakukan komunikasi data secara tanya jawab. Karena 32 gardu induk mengirimkan perintah komunikasi (perintah downlink) ke stasiun master, stasiun master terus mengirimkan perintah downlink setelah menerima perintah balasan terkait (perintah uplink) yang dikirim kembali oleh gardu induk. Sesuai dengan kebutuhan fungsi sistem, stasiun master perlu mengirimkan dua jenis perintah: (1) Perintah sinkron, yang dipicu oleh pengatur waktu dan dikirim sekali setiap siklus ls; (2) Perintah aperiodik, yang dipicu oleh operator Disebabkan dengan menggerakkan tombol perintah yang sesuai, itu dikirim secara berkala. Perangkat lunak sistem pemantauan otomatis dipasang di stasiun utama, dan program komunikasi juga diinstal di stasiun utama sebagai bagian dari perangkat lunak sistem pemantauan otomatis.
Artikel ini hanya mencantumkan daftar program demo dasar untuk pengujian saat men-debug program komunikasi. Selama pengujian, satu PC digunakan sebagai stasiun utama, dan PC lainnya mensimulasikan kerja 32 gardu induk. Kedua PC tersebut menggunakan komunikasi port serial rs232c. Tambahkan 1 kontrol komunikasi, 2 kontrol pengatur waktu, dan 1 kontrol tombol perintah ke formulir program demonstrasi komunikasi (formulir) stasiun utama. Kontrol komunikasi (mscomm1) digunakan untuk mengakses port serial, mengirim dan menerima data; periodik) digunakan untuk mengontrol stasiun induk untuk mengirimkan perintah periodik ke masing-masing gardu induk setiap detik; tombol kendali kendali (nonperiodic-command) dan kendali pengatur waktu nonperiodik (nonperiodic) digunakan untuk mengirimkan perintah nonperiodik. Transmisi data menggunakan komunikasi berbasis peristiwa. Atribut rtreshlod diatur sesuai dengan perintah pengiriman yang berbeda, sehingga menyebabkan peristiwa oncomm menerima data.
2.1 Prosedur inisialisasi untuk setiap kontrol dalam formulir
Atur parameter kerja port serial komunikasi, atur interval interupsi pengatur waktu periodik ke ls, dan interval interupsi pengatur waktu nonperiodik ke 0,5 detik.
beban-subformulir()
mscomm1.commport=2'Pilih port serial com2
mcomm1.settings="9600,n8,1"'Baud rate 9600, tanpa bit paritas, 8 bit data, dan 1 bit stop
mscomm1.inputlen=0'input akan membaca seluruh isi buffer penerima
mcomm1.inbuffersize=1024'Atur panjang byte buffer penerima
mscomm1.portopen=true'Buka port komunikasi
mscomm1.inbuffercount=0'Hapus data buffer pengiriman
mscomm1.outbuffercount=0'Hapus data buffer penerimaan
periodik.inteval=100'Atur interval waktu ls sehingga perintah telemetri dikirim setiap ls
nonperiodic.inteval=500'Atur interval waktu 0,5 detik dan tanyakan apakah tombol perintah diaktifkan untuk menentukan apakah akan mengirim perintah berkala
command-PRessed=false'Tombol perintah tidak aktif
selama-periodik=false'Transmisi data perintah periodik belum dimulai
selama-nonperiodic=false'transmisi data perintah non-periodik belum dimulai
sub akhir
2.2 Program pengiriman perintah aperiodik
Menurut status tombol perintah dan status transmisi data perintah periodik, perintah aperiodik dikirim dalam program interupsi pengatur waktu nonperiodik.
klik-perintah-subnonperiodik()
command-pressed=true'aktivasi tombol perintah
sub akhir
pengatur waktu subnonperiodik()
ifselama-periodik=benaratauperintah-ditekan=salah
kemudianexitsub' Jika pengiriman data perintah periodik belum berakhir atau tombol perintah diaktifkan, keluar dari program yang mengirimkan perintah aperiodik.
command-pressed=false'Tombol perintah kembali ke keadaan tidak aktif
callenddata(perintah-nonperiodik)'Kirim perintah non-periodik
mscomm1.rthreshold=r-nonperiodic-byte'Setelah mengirimkan perintah aperiodik, atur atribut rthreshold sehingga stasiun master memicu peristiwa oncomm setelah menerima jumlah byte yang ditetapkan.
sub akhir
2.3 program pengatur waktu berkala
Kirim perintah periodik dalam program interupsi pengatur waktu periodik:
pengatur waktu subperiodik()
ifduring-nonperiodic=truethenexitsub'Jika transmisi data perintah non-periodik belum berakhir, keluar dari program pengiriman perintah aperiodik.
selama-periodik=true' menyetel status transmisi data perintah periodik ke sedang berlangsung
panggilanenddata(perintah-periodik)'kirim perintah periodik
mscomm1.rthreshold=r-periodic-byte'Setelah mengirimkan perintah periodik, stasiun master menerima r-remot-edata-byte byte, yang dapat memicu kejadian oncomm
sub akhir
2.4 program acara umum
Menurut nilai pengaturan atribut rthreshold, ketika karakter byte yang sesuai diterima di buffer penerima, peristiwa oncomm dipicu dan data diterima dalam program interupsi.
submscomm1-oncomm()
selectcasemscomm1.commevent'Di sini Anda dapat memasukkan kode untuk menangani berbagai kesalahan atau kejadian.
casemscomm-ev-terima
menerimastring$=mscomm1.input
pilihcasemscomm1.rthreshold
data respons caser-periodic-byte' dari perintah periodik
calldisposedata(periodic-command)'memproses data yang diterima
selamaperiodik=false' mengatur status transmisi data perintah periodik ke akhir
data respons perintah caser-nonperiodic-byte'non-periodik
calldisposedata(nonperiodic-command)'proses data yang diterima
selama-nonperiodik=false' menyetel status transmisi data perintah non-periodik ke akhir
pilih akhir
pilih akhir
sub akhir
Dengan peningkatan berkelanjutan versi vb, vb akan menjadi alat pengembangan aplikasi tercepat, termudah untuk digunakan, dan kuat, dan salah satu alat pilihan pertama untuk pengembangan perangkat lunak aplikasi klien/server tingkat perusahaan. ->