Daftar Isi:
- Perlengkapan
- Langkah 1: Sirkuit
- Langkah 2: Esclavo MODBUS Di Raspberry Pi 3B
- Langkah 3: Maestro LabVIEW (HMI)
- Langkah 4: Máquina De Estados
- Langkah 5: Panel Depan
- Langkah 6: Archivos Python
- Langkah 7: HMI
- Langkah 8: Hasil Akhir
Video: Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
POST ESCRITO EN ESPAÑOL
Sesimuló un circuito transmisor de temperatur, el elemento primario (Sensor) fue implementado mediaante un potensiciometro el cual varia el voltaje de entrada. Para enviar la información del sensor (Elemento Secundario), si implemento el protocolo MODBUS RTU, por medio de un puerto serial hacia una computadora que será el maestro.
Pelajari lebih lanjut tentang program dan labLIHAT untuk digunakan dalam perpustakaan MODBUS untuk implementasi. El esclavo es capaz de recibir las siguientes funciones del maestro:
- Fungsi 0X01
- Fungsi 0x02
- Fungsi 0x03
- Fungsi 0x04
- Fungsi 0x05
- Fungsi 0x06
Los registros implementados en el esclavo son:
- Arahan ke MODBUS (16 bit)
- Kecepatan transmisi (16 bit)
- Medición de la suhu (16 bit)
- Kesalahan bit (1 bit)
- Sedikit pilihan (1 bit) C o F
- Nivel maximo de medición (16 bit)
- Nivel mínimo de medición (16 bit)
Perlengkapan
- LabVIEW
- Raspberry Pi 3
- ADC MCP3008
- 1 Potensiometer
- jumper
- FTDI (FT232RL)
- Protoboard
Langkah 1: Sirkuit
Circuito MCP3008 dan Frambuesa Pi
Conexion Raspberry Pi 3 dan FTDI:
- GND dan GND
- TX a RX
- RX a TX
Langkah 2: Esclavo MODBUS Di Raspberry Pi 3B
Como primer pazo necesitas configurar e instalar tu sistem operasi en tu Raspberry Pi 3B. Sugiero instalar NOOBS desde la pagina oficial. Konfigurasi Luego untuk Raspberry Pi 3B untuk pengguna menggunakan serial el puerto dan puerto SPI.
(Personalmente yo me conectó a mi raspi utilizando VNC Viewer para ello hay que activar el servidor VNC de la raspi)
Originalment el valor del ADC representa que la temperaturea medida por el sensor esta en grados Celcius y al estar el bit de selección en 1 est valor se pasa a grados Fahrenheit.
Ya sabiendo todo esto, el esclavo MODBUS se realizó dengan Python haciendo uso de la libreria Pyserial. Para la simulación del transmisor se trabajo con 4 daftar:
- kumparan
- Daftar Masukan
- Memegang Register
- Masukan Diskrit
Cada lista se hizo de 6 elemen. Deskripsi singkat dari los elementos de cada lista:
- coils_lista[0] = bit de selección (si está en 0 significa que la unidad de medición es en Celsius caso contrario unidad de medición en Fahrenheit)
- discrete_input[0] = bit de error (este bit se enciende cuando el valor de temperaturea esta fuera del rango establecido entre temperaturea máxima y mínima)
- inputRegister_lista[0] = Keberanian del ADC (sensor suhu simulado por un potensiciometro) bergantung pada keberanian de bit de selección.
- holdingRegister_lista[0] = arah dari esclavo
- holdingRegister_lista[1] = keberanian suhu maksimal
- holdingRegister_lista[2] = valor de temperaturea mínimo
- holdingRegister_lista[3] = kecepatan transmisi.
El esclavo MODBUS a decisión isyarat pribadi con ciertos parámetros iniciales como lo son:
- Valor de temperaturea maxima 500 Celcius
- Valor de temperaturea mínima 200 Celcius
- Baudrate inisial de 9600
- Arahan ke esclavo 1
- Unidad de medición inicial en Celsius.
La lógica aplicada es la siguiente:
En primer lugar se buscó leer toda la trama MODBUS enviada por el maestro, esto se hizo en Python mediante el código:
En segundo lugar se buscó la función que el maestro solicitaba para luego validar si la cantidad de salidas pedidas por el maestro eran validas sino gener un código de excepción 3, seguido de validar si el maestro edía sino genear un código de excepción 3, seguido de validar si el maestro pedía una dirección y por ultimo realizar la instrucción pedida según el código de función leído.
Y así sucesivamente con el resto de funciones implementadas.
Para ultimo paso en cada función crear una lista y mandar uno por uno por el puerto serial la petición del maestro.
Aclaro que no valide si el CRC enviada al esclavo era el correcto pero si lo hice para el mensaje enviado al maestro. La función de CRC la beradaptasi dengan mi código usando este link CRC MODBUS
Kalkulator CRC
MODBUS de excepción MODBUS
Langkah 3: Maestro LabVIEW (HMI)
Proses pembuatan yang akan dilakukan lebih cepat daripada sebelumnya.
Lihat elaboró una maquina de estados en labVIEW con las siguientes pilihan:
- init
- conectar: aquí está el API de crear un nuevo maestro modbus con la opción habilitada de SERIAL.
- escribir: aquí se utiliza la funcion menulis register induk tunggal y menulis koil tunggal
- baca: aquí se configuran los registros y coils de importancia para la lectura del maestro.
Langkah 4: Máquina De Estados
continuación explicare detalladamente la configuración en cada pilihan:
konektar:
Se utilizó el API de crear un nuevo maestro MODBUS pilihan dan pilihan "New Serial Master", dan kontrol pembuat untuk konfigurasi:
- Baudrat
- Keseimbangan
- Port Serial (Sumber Daya Visa)
- Tipe Seri (RTU)
- ID del esclavo.
menulis:
En escribir solo me interesaba que el maestro pudiera cambiar la temperaturea máxima y mínima, el bit de selección, asignarle una nueva dirección al maestro y por ultimo asignarle un nuevo Baudrate al esclavo por lo que a la que el maestro accedería. Oleh karena itu, fungsi utilizadas fueron:
- Tulis koil tunggal
- Tulis register induk tunggal.
lirik:
En leer solo me interesaba la lectura del bit de error y el input register asociado a mi variabel primaria.
Las funciones utilizadas fueron:
- Baca Masukan Daftar
- Baca Coil.
Langkah 5: Panel Depan
El panel frontal en labVIEW se trató lo mejor posible que fuera amigable para el usuario final. Oleh lo que se realizó lo siguiente:
Se instal DMC GUI Suite untuk labVIEW para tener un mejor diseño en cuanto a kontrol dan indikator.
2 termómetro (1 para indicar la temperaturea en Celsius y otro para indicar la temperaturea en Fahrenheit).
Botón "Peringatan" que nicamente se enciende cuando el bit de error está encendido.
Botón para editor los rangos de temperaturea a medir (para que nicamente haga el cambio al registro cuando se es presionado el botón) caso contrario siempre los estuviera modificando lo cual causaría un funcionamiento salah.
Botón para editor la dirección del esclavo (para que nicamente haga el cambio al registro cuando se es presionado el botón)
Botón para editor el baudrate del esclavo (para que nicamente haga el cambio al registro cuando se es presionado el botón)
Un botón para "Excepciones" (Para que genere una excepción dependiendo de la función MODBUS seleccionada)
Langkah 6: Archivos Python
En estos archivos está implementado el esclavo MODBUS (Transmisor de temperatur) junto con el archivo ADC untuk membaca variabel de interés del sensor de temperatur (Simulado en el canal 0 con un potenciometro).
Me quedo pendiente implementar las funciones 15 y 16.
Langkah 7: HMI
Master Modbus RTU
Este es el maestro implementado en labVIEW. Hay cosas para mejorar, por ejemplo no pude corregir un error al conectar al primer intento, investigue y no encontré una solución para aplicarla.
Langkah 8: Hasil Akhir
Espero ayudar a algunas personas a comprender mejor la comunicación modbus RTU y una implementación en labVIEW.
Direkomendasikan:
HMI dan Arduino Industri di MODBUS RTU: 4 Langkah
HMI Industri dan Arduino dalam MODBUS RTU: Dalam instruksi ini saya akan menjelaskan contoh komunikasi antara HMI industri (COOLMAY MT6070H, 150EUROS), Arduino CLONE DIY (10EUROS) dan Arduino UNO (10EUROS). Jaringan akan berjalan di bawah proto
Digistump dan Modbus RTU: 6 Langkah
Digistump dan Modbus RTU: Mereka yang telah melihat instruksi saya tentang komunikasi antara Modbus RTU dan Raspberry Pi tahu bahwa saya sedang merencanakan proyek untuk mengotomatisasi rumah kaca. Saya telah membuat 2 PCB kecil yang dapat dimasukkan ke dalam kotak proyek. Tautan ke PCB akan saya sertakan
Komunikasi Modbus TCP Antara Arduino dan Perangkat Industri: 3 Langkah
Komunikasi Modbus TCP Antara Arduino dan Perangkat Industri: Cara industri untuk mengontrol papan Arduino dengan HMI industri dan menghubungkannya ke jaringan industri dengan komunikasi Modbus TCP
Konstruksi De Un Transmisor De Audio Por Laser: 3 Langkah
Membangun Transmisor De Audio Por Laser: Membangun transmisor de audio con laser
ESP32 Modbus Master TCP: 7 Langkah
ESP32 Modbus Master TCP: Di kelas ini, Anda akan memprogram prosesor ESP32 menjadi Modbus TCP Master. Kami akan menggunakan dua perangkat, yang berisi prosesor ini: Moduino ESP32 dan Pycom. Kedua perangkat berjalan di lingkungan MicroPytthon. Modbus Slave kami akan menjadi komputer PC dengan M