ModbusSlaveSimulation
Aplikasi Windows mandiri yang mendukung protokol Modbus RTU, TCP, UDP dan ASCIIoverRTU untuk simulasi.
Juga disertakan versi Mono untuk Linux dan Mac OS X, ini adalah versi VB Net:
- Untuk Linux Anda harus menginstal paket
mono-complete
dan mono-vbnc
- Mac mungkin berbeda tergantung pada versi OS X, mungkin menginstal paket
mono
dan mono-basic
Jika firewall diaktifkan maka Anda mungkin diminta untuk mengizinkan aplikasi ini berkomunikasi di jaringan:
- Biasanya itu harus diizinkan untuk berkomunikasi pada jaringan pribadi jika tidak maka mungkin tidak berfungsi dengan baik
- Jangan izinkan akses publik kecuali Anda tahu apa yang Anda lakukan
- Setelah pengujian selesai, ingatlah untuk menghapus aplikasi ini dari daftar aplikasi yang diizinkan di firewall
Aplikasi ini dirancang untuk memungkinkan menjalankan beberapa contoh aplikasi secara bersamaan, misalnya:
- Gunakan protokol yang sama untuk setiap instance tetapi dengan nomor port berbeda, mirip dengan:
- IP 127.0.0.1 TCP Port 501 dan IP 127.0.0.1 TCP Port 502
- Gunakan campuran protokol yang berbeda dengan bantuan alat lain (seperti com0com untuk protokol RTU di Windows)
Aplikasi harus melayani permintaan ID budak Modbus yang valid.
Ini semua didasarkan pada perpustakaan nModbus .NET 3.5 yang dimodifikasi, Hak Cipta (c) 2006 Scott Alexander:
- Ini disertakan sebagai sumber daya untuk versi Windows tetapi terpisah untuk versi Mono
Ditujukan untuk digunakan sebagai alat pengujian cepat:
- Dapat diuji dengan mitranya ModbusMaster (lihat video lebih lanjut di bawah)
- Atau mungkin menggunakan perangkat lunak AdvancedHMI karena sangat fungsional dan gratis.
Tangkapan layar
Fungsionalitas
- Semua nilai dapat diatur sebelum koneksi dibuat - Coils, Discrete Inputs, Input Registers, Holding Registers.
- Tampilan Kisi Data diatur untuk awalnya menampilkan 20 baris alamat namun dapat diubah dalam dropdown
Row Count
untuk menampilkan lebih banyak atau semua baris jika diperlukan. - Dalam Data Grid View, dipilih dengan dropdown
I/O Address Range
, klik dua kali nilainya untuk mengubahnya:- Nilai Boolean akan berubah antara 0 dan 1
- Nilai Uint16 memerlukan nilai integer unsigned antara 0 dan 65535
- Input Diskrit dan Register Input menyediakan akses
read-only
ke aplikasi Master:- Perangkat MODBUS yang ditunjuk sebagai
Master
HANYA dapat mengirimkan permintaan untuk membaca nilai-nilai ini - Nilai-nilai ini harus dimanipulasi oleh pengguna secara langsung di simulator, jika tidak maka nilai tersebut tidak akan berubah
- Coils dan Holding Register menyediakan akses
read/write
ke aplikasi Master:- Perangkat MODBUS yang ditunjuk sebagai
Master
dapat mengirimkan permintaan untuk membaca nilai-nilai ini serta mengirim permintaan agar nilai-nilai ini diubah - Nilai-nilai ini juga dapat dimanipulasi oleh pengguna secara langsung di simulator jika diperlukan
- Untuk protokol
RTU
dan ASCIIoverRTU
, pada satu PC, simulator ini dapat menggunakan bantuan :- program com0com untuk Windows untuk menyediakan pasangan port serial virtual
- program tty0tty untuk Linux untuk menyediakan pasangan port serial virtual
- TextBox tambahan memungkinkan input manual dari port serial:
- Terutama ditujukan untuk Linux sehingga pasangan port virtual
tty0tty
tersebut, seperti /dev/tnt0
<=> /dev/tnt1
, dapat diakses - Kotak ini telah dihapus di versi Mac Mono
- Perpustakaan juga mendukung Masked Bit Write, kode fungsi 22 (0x16H atau FC22).
Penggunaan
-> Untuk Windows
- Gunakan file Windows yang dapat dieksekusi dari folder
exe
atau ikuti petunjuk di bawah ini untuk membuatnya sendiri:- Unduh dan instal edisi komunitas Visual Studio (idealnya 2019).
- Unduh dan ekstrak file zip proyek ini.
- Buka ini sebagai proyek yang sudah ada di Visual Studio dan, pada menu, lakukan:
- Bangun/Bangun Solusi (atau tekan Ctrl-Shift-B).
- Debug/Mulai Debugging (atau tekan F5) untuk menjalankan aplikasi.
- Temukan file EXE yang dibuat di folder
/bin/Debug
dan salin ke folder pilihan Anda atau Desktop
- Untuk menguji protokol RTU gunakan com0com untuk membuat port serial virtual
-> Untuk Mono
- Pastikan Mono terinstal di komputer Anda:
- Paket
mono-complete
dan mono-vbnc
untuk Linux - Untuk Mac Anda mungkin perlu bereksperimen, mungkin paket
mono
dan mono-basic
- Unduh dan ekstrak file zip proyek ini dan temukan arsip Mono di folder
Mono
. - Ekstrak 4 file dan kemungkinan mengganti nama folder dan/atau file exe yang baru dibuat menjadi lebih pendek jika Anda mau (hanya untuk membuat navigasi terminal lebih cepat).
- Buka terminal, navigasikan ke folder dan ketik:
sudo mono ModbusSlaveSimulation.exe
:- Di Mac Anda mungkin perlu beralih ke akun
su
pengguna super
- Untuk menguji protokol RTU, di Linux Anda mungkin dapat menginstal dan menggunakan port virtual tty0tty sementara di Mac versi OS X yang lebih baru tampaknya memiliki terminal semu - pasangan perangkat seperti
/dev/ptyp3
dan /dev/ttyp3
.
Catatan untuk pengguna Mac: ini telah diuji pada komputer iMac G5 PowerPC lama dengan Mono v2.10.2. Beberapa perilaku aneh muncul dalam artian aplikasi kehilangan fokus sehingga mengganggu komunikasi TCP yang berkelanjutan. Terdapat kotak teks dengan X merah yang dapat Anda klik untuk mencoba mempertahankan fokus (jika Anda melakukan hal lain setelahnya, klik lagi). Karena saya tidak dapat mengujinya dengan cara lain, maka Anda tinggal bereksperimen.
Video
Modbus.TCP.Komunikasi.mp4
Lisensi
Berlisensi di bawah lisensi MIT - lihat juga file README.txt di dalam folder Resources.
Merek Dagang
Setiap dan semua merek dagang, baik yang disebutkan secara langsung atau tidak langsung dalam proyek ini, adalah milik masing-masing pemiliknya.
Sumber Daya Berguna
Forum situs web AdvancedHMI, yang merupakan proyek sumber terbuka lainnya.