Kazalo:
- Zaloge
- Korak: Circuitos
- Korak: Esclavo MODBUS En Raspberry Pi 3B
- 3. korak: Maestro LabVIEW (HMI)
- 4. korak: Máquina De Estados
- 5. korak: Sprednja plošča
- 6. korak: Archivos Python
- 7. korak: HMI
- 8. korak: Končni rezultat
Video: Simulacijski pretvornik temperaturnega modusa (Labview + Raspberry Pi 3): 8 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
OBJAVI ESCRITO EN ESPAÑOL
Simuló un circuito transmisor de temperature, el elemento primario (Sensor) fue implementado mediano and potenciometro el cual varia el voltaje de entrada. Za informacije o senzorju (Elemento Secundario), ki je implementiran na protokolu MODBUS RTU, ali za serijsko serijo, ki je računalniško podprta z maestro.
Como maestro se pripravlja na program en labVIEW, ki ga uporablja za labrebreio MODBUS que ya Implementation. El esclavo es capaz de recibir las siguientes funciones del maestro:
- Funkcija 0X01
- Funkcija 0x02
- Funkcija 0x03
- Funkcija 0x04
- Funkcija 0x05
- Funkcija 0x06
Los registros implementados en el esclavo son:
- Direcionamiento MODBUS (16 bitov)
- Velocidad de transmisión (16 bitov)
- Medición de la temperature (16 bitov)
- Napaka bit de (1 bit)
- Izbirni bit (1 bit) C o F
- Nivel máximo de medición (16 bitov)
- Nivel mínimo de medición (16 bitov)
Zaloge
- LabVIEW
- Malina Pi 3
- ADC MCP3008
- 1 Potenciometro
- Skakalci
- FTDI (FT232RL)
- Protoboard
Korak: Circuitos
Circuito MCP3008 y Frambuesa Pi
Conexión Raspberry Pi 3 in FTDI:
- GND in GND
- TX in RX
- RX in TX
Korak: Esclavo MODBUS En Raspberry Pi 3B
Como primer pazo necesitas konfiguratorja in namestitve operacijskega sistema v sistemu Raspberry Pi 3B. Predlagamo namestitev NOOBS -a na uradni strani. Luego konfiguracija za Raspberry Pi 3B za poder uporablja serijsko in puerto SPI.
(Personalmente yo me conectó a mi raspi utilizando VNC Viewer para ello hay que activar el servidor VNC de la raspi)
Originalmente el valor del ADC predstavlja que la temperaturo medida s senzorjem esta en grados Celsius y al estar el bit de selectc en 1 este valor se pasa a grados Fahrenheit.
Ya sabiendo todo esto, el esclavo MODBUS se je uresničil s Python haciendo, ki uporablja la librería Pyserial. Za lažjo simulacijo transmisorja, ki vsebuje 4 liste:
- Tuljave
- Vhodni registri
- Vodenje registrov
- Diskretni vhodi
Na seznamu je 6 elementov. Breve opis de los elementos de cada lista:
- coils_lista [0] = bit de selección (si está en 0 pomeni que la unidad de medición es en Celsius caso contrario unidad de medición po Fahrenheitu)
- discrete_input [0] = bit de error (este bit se enciende cuando el valor de temperature esta fuera del rango establecido entre temperatura máxima y mínima)
- inputRegister_lista [0] = Valor del ADC (senzor temperature za simulacijo po potenciometru) je odvisen od valor de bit de selección.
- holdingRegister_lista [0] = dirección de esclavo
- holdingRegister_lista [1] = valor de temperatura máxima
- holdingRegister_lista [2] = valor de temperatura mínimo
- holdingRegister_lista [3] = velocidad de transmisión.
El esclavo MODBUS odločilna osebna cuenta con ciertos parámetros iniciales como lo son:
- Temperatura zraka je največ 500 stopinj Celzija
- Minimalna temperatura 200 stopinj Celzija
- Najvišja vrednost 9600
- Dirección de esclavo 1
- Unidad de medición inicial en Celsius.
Aplikacija La lógica 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 generar un código de excepción 3, seguido de validar si el maestro pedía una dirección implementada sino generar un código y por ultimo realizar la instrucción pedida según el código de función leído.
Y así sucesivamente con el restav 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. Funkcija CRC la adapte in mi codigo usando este link CRC MODBUS
CRC kalkulator
Códigos de excepción MODBUS
3. korak: Maestro LabVIEW (HMI)
La creación de un maestro que fuera de cierta manera amigable para un usuario final fue hecha por medio de labVIEW y su librería MODBUS la cual facilitaba la creación de un maestro MODBUS RTU.
Se elaboró una maquina de estados en labVIEW con las siguientes opciones:
- v
- conectar: aquí está el API de crear un nuevo maestro modbus con la opción habilitada de SERIAL.
- escribir: aquí se utiliza la funcion pisanje enotnega registra imetnikov y pisanje enojne tuljave
- leer: aquí se konfigurira los registros y coils de importancia para la lectura del maestro.
4. korak: Máquina De Estados
nadaljevanje razlaga podrobnosti o konfiguraciji in cada opción:
conectar:
Uporabite API za ustvarjanje novega maestro MODBUS, ki ste ga izbrali pri izbiri "New Serial Master", za ustvarjanje krmilnikov za konfiguracijo:
- Baudrate
- Pariteta
- Zaporedna vrata (vir Visa)
- Serijska vrsta (RTU)
- ID del esclavo.
opis:
En escribir solo me interesaba que el maestro pudiera cambiar la temperatura 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 ya sabia de antemano en quón direcocio a la que el maestro accedería. Por lo que las funciones utilizadas fueron:
- Napišite eno tuljavo
- Napišite register enotnega gospodarstva.
leer:
En leer solo me zanima la lactura del bit de error y el input register asociado a mi variable primaria.
Las funciones utilizadas fueron:
- Preberite vhodni register
- Preberite tuljave.
5. korak: Sprednja plošča
El panel frontal en labVIEW se trató lo mejor posible que fuera amigable para el usuario final. Por lo que se realizó lo siguiente:
Namestite DMC GUI Suite za labVIEW para tener un mejor diseño en cuanto a controles e indicadores.
2 termina (1 parametar temperature po Celziju in otroki po indikatorju temperature po Fahrenheitu).
Botón "Warning" que únicamente se enciende cuando el bit de error está encendido.
Botón para editar los rangos de temperature a medir (para que únicamente haga el cambio al registerro cuando se es presionado el botón) caso contrario siempre los estuviera modificando lo cual causaría un funcionamiento incorecto.
Botón para editar la dirección del esclavo (para que únicamente haga el cambio al registerro cuando se es presionado el botón)
Botón para editar el baudrate del esclavo (para que únicamente haga el cambio al registerro 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)
6. korak: Archivos Python
V tem primeru je treba arhivirati ali uporabiti MODBUS (Transmisor de temperature) z ADC -jem za arhiviranje parametrov, ki spreminjajo temperaturo senzorja (Simulacija na kanalu 0 s potenciometrom).
Me quedo pendiente implementar las funciones 15 y 16.
7. korak: HMI
Mojster 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.
8. korak: Končni rezultat
Espero ayudar a algunas persones a comprender mejor la comunicación modbus RTU y una implementación en labVIEW.
Priporočena:
Povezovanje temperaturnega senzorja DS18B20 z Arduinom in ESP8266: 8 korakov
Povezovanje temperaturnega senzorja DS18B20 z Arduinom in ESP8266: Hej, kaj je, fantje! Akarsh tukaj iz CETech -a. Danes bomo v svoj arzenal dodali nov senzor, znan kot temperaturni senzor DS18B20. To je temperaturni senzor, podoben DHT11, vendar ima drugačen nabor aplikacij. Primerjali ga bomo z
Izris podatkov v živo temperaturnega senzorja (TMP006) z uporabo MSP432 LaunchPad in Python: 9 korakov
Ustvarjanje podatkov v realnem času temperaturnega senzorja (TMP006) z uporabo MSP432 LaunchPad in Python: TMP006 je temperaturni senzor, ki meri temperaturo predmeta brez potrebe po stiku s predmetom. V tej vadnici bomo s pomočjo Pythona začrtali podatke o živi temperaturi iz BoosterPack-a (TI BOOSTXL-EDUMKII)
Ohišje temperaturnega senzorja DS18B20: 5 korakov
Ohišje temperaturnega senzorja DS18B20: Enostavna naprava s temperaturnim senzorjem na osnovi DS18B20 z odprtokodno 3D -tiskano škatlo in prototipnim tiskanim vezjem. Škatla in prototipna tiskana vezja sta neobvezna, potrebna sta le ena MCU na osnovi ESP8266 in en temperaturni senzor DS18B20. Predlagam vam WEMOS D1 min
Simulacijski laboratorij v več merilih: 5 korakov
Lab Simulado En Multisim .: Multisim, es un program que permite tanto crear circuitos as í como la construcci ó n de prototipos y realizar pruebas de circuitos el é ctricos. El objetivo es explicar el funcionamiento del multisim y de c ó mo utilizarlo,
Omrežni krmilnik temperaturnega senzorja, odpornega na napake: 8 korakov
Omrežni krmilnik temperaturnega senzorja, odpornega na napake: Ta navodila vam pokažejo, kako pretvoriti ploščo Arduino Uno v enonamenski krmilnik za niz temperaturnih senzorjev DS18B20, ki lahko avtomatizirajo izolacijo okvarjenih senzorjev. Krmilnik lahko upravlja z do 8 senzorji z Arduinom Uno. (A