Pendahuluan
KELLER memproduksi sensor presisi tinggi dengan output digital, yang terhubung ke perangkat lunak berpemilik untuk tampilan dan akumulasi bacaan. Seringkali, pengguna perlu mengintegrasikan sensor ke dalam sistem pemantauan dan kontrol mereka sendiri. Dalam karya ini, dengan menggunakan sensor tekanan presisi tinggi PR-33X sebagai contoh, kami menunjukkan koneksi sensor KELLER ke lingkungan terintegrasi MATLAB, yang awalnya dikembangkan untuk analisis dan sintesis sistem kontrol, yang memiliki alat yang kuat untuk memproses dan menampilkan data sinyal.
Spesifikasi singkat pemancar tekanan KELLER PR 33X
Rentang tekanan standar (VPI), batang 30
Akurasi pengukuran tekanan, total (10 ... 40 Β° C) 0,025% dari VPI
Keluaran RS 485
Baud rate 9600 atau 115200 baud
Tegangan suplai (U) 8 ... 28 V
Umur layanan 10 juta siklus 0 ... 100% VPI
Pemancar tekanan juga termasuk sensor suhu terintegrasi.
Antarmuka
Semua produk KELLER dengan indeks X memiliki antarmuka digital (RS485 half duplex) yang mendukung protokol MODBUS RTU dan Keller Bus.
Koneksi ke PC dilakukan menggunakan konverter RS485-USB. Untuk kompatibilitas terbaik, perusahaan merekomendasikan untuk menggunakan konverter Keller K-114.
Perangkat lunak
Untuk mengkonfigurasi dan merekam pembacaan sensor, perangkat lunak CCS30 gratis digunakan, antarmuka yang ditunjukkan pada Gambar 1.
Gambar 1. Akumulasi dan tampilan data grafik dan tabel oleh program CCS30 [3].Koneksi PC
Sensor tekanan PR-33X terhubung ke PC menggunakan USB ke RS-232/422/485 MOXA USB Serial Port converter seperti yang ditunjukkan pada Gambar 2.
Gambar 2. Diagram koneksi pemancar tekanan PR-33X ke PC dan catu daya 12 V. Ketika diberi daya di bawah 5,69 V (hingga 4,95 V), pembacaan sensor meningkat. Ketika diberdayakan di bawah 4.95V, data tidak ditransmisikan (sensor tidak berfungsi).
Setelah menginstal driver dan memasang konverter MOXA ke PC, port COM muncul di daftar manajer perangkat

dan adaptor

. Pada tab (Gambar 3) perangkat terakhir untuk versi kami, antarmuka RS-485 dengan skema koneksi dua kabel dipilih.
Gambar 3. Mengkonfigurasi konverter MOXA ke antarmuka RS-485 2W.Format Transmisi
Pertukaran data antara komputer (perangkat kontrol) dan sensor (perangkat slave) dilakukan sesuai dengan pesan protokol Modbus yang berisi bidang-bidang berikut [2].

Pertama, komputer mengirim pesan permintaan ke sensor, kemudian sensor dalam respons mengirim pesannya sendiri dengan checksum sendiri ketika tindakan yang diminta berhasil, atau mengirim fungsi dengan kode 1 jika terjadi kesalahan (fungsi yang tidak valid atau alamat data, dll.).
Respons (respons) sensor dikeluarkan hanya setelah menerima permintaan dari perangkat kontrol.
Pesan yang dikirim ke sensor berisi salah satu kode fungsi berikut.

Gambar 4. Format pesan yang dikirim dan diterima sesuai dengan standar Modbus RTU [1].Alamat register sensor yang digunakan PR-33X

Contoh pesan Modbus (pembacaan sensor tekanan dan suhu terintegrasi) [2]

Konversi pembacaan sensor ke format IEEE754 floating point
Prosedur yang disarankan untuk mengubah empat byte yang diterima dari pembacaan sensor menjadi angka titik-mengambang ditunjukkan pada Gambar 5. Contoh ini menggunakan data [2] yang ditunjukkan pada tabel di atas.
Gambar 5. Aturan untuk mengkonversi pembacaan sensor empat byte menjadi angka floating-point.Program MATLAB untuk membaca dan menampilkan sensor tekanan dan suhu PR-33X
Program pembacaan dan tampilan sensor PR-33X mencakup modul utama dan tiga subrutin. Konverter beroperasi pada 115200 baud. Data tekanan dan suhu dibacakan berdasarkan permintaan.
Data input program adalah alamat port COM perangkat Anda (Com_Port = variabel) dan alamat konverter Anda. Jika hanya satu konverter yang terhubung, maka, sebagai aturan, Device_Addr = 1.
Jumlah pembacaan diatur oleh konstanta Loop (dalam contoh, Loop = 1000;).
Modul utama:
clear all;
Modbus RTU meminta pembuatan rutin
function RTU_request = RTU_code(Device_Addr,Function,Data_First_Address,Address_Range) % Device_Addr == Device Address 8 bit: 1..255 % Function == % 3 or 4 is read; 6 is write in one register; 16 - write in two registers, % Data_First_Address == Address of first register data (2 bytes) % Addrress_Range == Range of Addreses; % Data_First_Address_Bytes = [floor(Data_First_Address/256) rem(Data_First_Address,256)]; Address_Range_Bytes = [floor(Address_Range/256) rem(Address_Range,256)]; % Master's Tx data without Check sum Code = [Device_Addr Function Data_First_Address_Bytes Address_Range_Bytes]; Code_Char = dec2hex(Code); if size(Code_Char,2)==1 Code_Char(:,2)=Code_Char(:,1); Code_Char(:,1)='0'; end Code_Char_line = []; for I = 1:length(Code) Code_Char_line = [Code_Char_line Code_Char(I,1:2)]; end % Check sum calculation Check_Sum = crc_calculator(Code_Char_line); % Master's Tx data with Check sum RTU_request = [Code hex2dec(Check_Sum(1:2)) hex2dec(Check_Sum(3:4))]; % End of m file
Modbus RTU urutan perhitungan rutin checksum
function output_hex_string = crc_calculator (Input_hex); %Input_hex = 'F70302640008'; % <= 2 * 16 Char F = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]; xor_constant = [1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1]; for i = 1 : length (Input_hex) / 2; A = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; if ~(i > length (Input_hex)/2) A_hex = Input_hex ((i-1)*2+1:i*2); % Two HEX bytes A_bin = dec2bin (hex2dec (A_hex)); length_A_bin = length (A_bin); for j = 0 : length_A_bin - 1 A (16 - j) = str2num(A_bin (length_A_bin - j)); end end F = xor (F,A); for ii = 1 : 8 if F(16) ==1 if xor_constant (1) == 0 F_shift (1) = 0; else F_shift (1) = 1; end for j = 2 : 16; if xor_constant (j) == F (j-1); F_shift (j) = 0; else F_shift (j) = 1; end end else F_shift = circshift(F',1)'; end F = F_shift; end end h = num2str(F); h = h(1:3:length(h)); output_hex_string = num2str([dec2hex(bin2dec(h(9:12))) dec2hex(bin2dec(h(13:16))) dec2hex(bin2dec(h(1:4))) dec2hex(bin2dec(h(5:8)))]); % End of m file
Subrutin untuk mengkonversi empat byte pembacaan sensor ke angka floating point
Contoh grafik tekanan dan suhu PR-33X yang dibaca oleh program di atas ditunjukkan pada Gambar 6.
Gambar 6. Output konverter PR-33X yang diterima oleh program yang dikembangkan di MATLAB. Program ini membaca 1000 pembacaan tekanan pada 115200 baud dalam 9 detik. Program ini membaca 1000 pembacaan tekanan dan 1000 pembacaan suhu (secara terpisah) pada 115200 baud dalam 17 detik.Program MATLAB mengalihkan kecepatan transfer data konverter
Untuk beralih ke frekuensi baru, program perlu mengatur alamat port COM perangkat Anda (Com_Port = variabel) dan frekuensi konverter yang diperlukan (BR_Rate = 9600; atau BR_Rate = 115200;)
PERHATIAN Untuk beralih ke frekuensi transfer data baru setelah mengatur bit nol dari register konverter UART, perlu MATIKAN (non-energi) dan, kemudian, MATIKAN konverter lagi.
Daftar bibliografi
- Dr. Bob Davidov. Komunikasi dengan perangkat jaringan industri. portalnp.ru/wp-content/uploads/2013/08/12.02_Discrete-IO-unit_-MK110-_RS-485-ModBus-RTU-_-ASCII-DCON-OVEN__Ed3.pdf
- Deskripsi protokol komunikasi. Untuk pemancar tekanan seri KELLER 30 dan 40. Class.Group = 5.20 Class.Group = 5.21. Versi 3.2 (dalam bahasa Rusia). www.izmerkon.ru .
- Control Center Series 30. Panduan Pengguna. FΓΌr CCS30 Versi 1.1. www.izmerkon.ru
- Dr. Bob Davidov. Teknologi kontrol komputer dalam sistem teknis portalnp.ru/author/bobdavidov