Sisukord:
- Tarvikud
- Samm: vooluringid
- 2. samm: Esclavo MODBUS ja Raspberry Pi 3B
- 3. samm: Maestro LabVIEW (HMI)
- 4. samm: Máquina De Estados
- Samm: esipaneel
- Samm: arhiivige Python
- Samm: HMI
- 8. samm: tulemuse finaal
Video: Simulatsioon Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
POST ESCRITO EN ESPAÑOL
Seadme temperatuuri ja vooluahela transmissor, el elemento primario (Sensor) fue implementado mediante un potenciometro el cual varia el voltaje de entrada. Anduri (Elemento Secundario) jaoks on enesetundlik teave, mis on varustatud MODBUS RTU protokolliga, mis on keskmiselt ja seeria hacia una computadora que será el maestro.
Como maestro se elaboró un program en labVIEW haciendo uso de la librería MODBUS que ya implementa. Esclavo es capaz de recibir las siguientes funciones del maestro:
- Funktsioon 0X01
- Funktsioon 0x02
- Funktsioon 0x03
- Funktsioon 0x04
- Funktsioon 0x05
- Funktsioon 0x06
Los registros implementados en el esclavo son:
- MODBUS -i suund (16 bitti)
- Transmissiooni kiirus (16 bitti)
- Temperatuuri meditsiin (16 bitti)
- Vea viga (1 bit)
- Valiku bitt (1 bit) C o F
- Meditsiiniline meditsiin (16 bitti)
- Meditsiiniline ravim (16 bitti)
Tarvikud
- LabVIEW
- Vaarika Pi 3
- ADC MCP3008
- 1 Potenciometro
- Džemprid
- FTDI (FT232RL)
- Protoboard
Samm: vooluringid
Circuito MCP3008 ja Frambuesa Pi
Conexión Raspberry Pi 3 ja FTDI:
- GND ja GND
- TX ja RX
- RX ja TX
2. samm: Esclavo MODBUS ja Raspberry Pi 3B
Como praimer pazo vaja konfigureerida ja paigaldada süsteemi operatiivse ja Raspberry Pi 3B. Sugiero instalar NOOBS desde la pagina Official. Lugege konfiguratsiooni Raspberry Pi 3B jaoks, mis on ette nähtud seeria ja puerto SPI kasutamiseks.
(Personalmente yo me conectó a mi raspi utilizando VNC Viewer para ello hay que activar el servidor VNC de la raspi)
Originaalne el valor del ADC esindaja, mis esindab temperatuuri temperatuuri, mis on ette nähtud anduri esta en grados Celsiuse ja al -stari jaoks, kuid valiku tegemiseks ja 1 väärtuseks Fahrenheiti järgi.
Ya sabiendo todo esto, esclavo MODBUS realiseerib Python haciendo uso de la librería Pyserial. Para la simulatsioon del transmisor se trabajo con 4 lists:
- Rullid
- Sisendregistrid
- Registrite pidamine
- Diskreetsed sisendid
Kuue elemendi nimekiri. Lühikirjeldus de los elementos de cada list:
- coils_lista [0] = bit de selección (si está en 0 signa que la unidad de medición es en Celsius caso contrario unidad de medición en Fahrenheit)
- diskreetne_sisend [0] = bitiviga (see bit se enciende cuando el valor de temperatura esta fuera del rango establecido entre temperatura máxima y mínima)
- inputRegister_lista [0] = Valor del ADC (sensor de Temperatura simulado por un potentsometro) dependiento del valor de bit de selección.
- holdingRegister_lista [0] = esclavo suund
- holdingRegister_lista [1] = valor de temperatura máxima
- holdingRegister_lista [2] = valor de temperatura mínimo
- holdingRegister_lista [3] = käiguvahetuse kiirus.
Esclavo MODBUS ja isikliku kuraatori otsus, mis käsitleb parrotetros iniciales como lo son:
- Valor de temperatura max 500 Celsiuse järgi
- Temperatuurivalik 200 kraadi Celsiuse järgi
- Baudrate inicial de 9600
- Dirección de 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 generar un código de excepción 3, seguido de validar si el maestro pedía una directcción implementada sino generar un codigo de 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 list 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. CRC -funktsiooni saate kohandada ja kasutada CRC MODBUS -i linki
CRC kalkulaator
Códigos de excepción MODBUS
3. samm: Maestro LabVIEW (HMI)
La Creación de un maestro que fuera de cierta manera amigable para and usuario final fue hecha por por medio de labVIEW y librería MODBUS la cual hõlbustamiseks ja loomiseks MODBUS RTU.
Se elaboró una maquina de estados en labVIEW con las siguientes opciones:
- selles
- kontuur: see on API API, mis loob uue maestro modbus con la opción habilitada de SERIAL.
- escribir: aquí se utiliza la funcion write single holding register y write single coil
- see: konfiguratsiooni seadistuste registreerimised ja importimise parameetrid para mactro lectura.
4. samm: Máquina De Estados
Continueción Exlicare Detalladamente la konfiguratsioon en cada opción:
konektar:
Kasutage API -liidese loomiseks ja uueks maestro MODBUS -i valimiseks ning uue opsüsteemi "Uus jadameister" valimiseks, konfigureerige järgmisi seadistusi:
- Baudrate
- Pariteet
- Seeriaport (viisaressurss)
- Seeria tüüp (RTU)
- Esclavo ID.
kirjeldus:
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 directcción al maestro y por ultimo asignarle un nuevo Baudrate al esclavo por lo que ya sabia de antemano en que direcciones en a la que el maestro accedería. Lo lo que las funciones utilizadas fueron:
- Kirjutage üks mähis
- Kirjutage üheosaline register.
leer:
En leer solo me interesaba la lectura del bit de error y el input register asociado a mi variable primaria.
Fueroni kasutamise funktsioonid:
- Lugege sisendregistrit
- Loe rullid.
Samm: esipaneel
El panel frontal en labVIEW se trató lo mejor posible que fuera amigable para el usuario final. Lo lo que se realization lo siguiente:
Installige DMC GUI Suite paraviisi jaoks, mis on parem ja parem, kui soovite juhtida ja näidata.
2 termomeetrit (1 para indicar la temperatura en Celsius y second para indicar la temperatura en Fahrenheit).
Botón "Warning" que únicamente se enciende cuando el bit de error está encendido.
Botón para editar los rangos de temperatura 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 inserecto.
Botón para editar la directcció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)
Samm: arhiivige Python
Enstos archivos está implementado el esclavo MODBUS (Transmisor de Temperatura) junto con el archivo ADC para leer la muutuva de interés del sensor de Temperatura (Simulado en el canal 0 con un potentsometro).
Me quedo pendiente implementar las funciones 15 ja 16.
Samm: HMI
Master Modbus RTU
Este es el maestro implementado en labVIEW. Hay cosas para mejorar, por ejemplo no pude correctgir un error all conectar al primer intento, juurdle y no encontré una solución para aplicarla.
8. samm: tulemuse finaal
Espero ayudar ja algunas personals and comprender mejor la comunicación modbus RTU y una implementación en labVIEW.
Soovitan:
Kuidas teha niiskust ja temperatuuri reaalajas andmesalvesti Arduino UNO ja SD-kaardiga - DHT11 andmete koguja simulatsioon Proteuses: 5 sammu
Kuidas teha niiskust ja temperatuuri reaalajas andmesalvesti Arduino UNO ja SD-kaardiga | DHT11 andmelogija simulatsioon Proteuses: Sissejuhatus: tere, see on Liono Maker, siin on YouTube'i link. Teeme Arduinoga loomingulist projekti ja töötame sisseehitatud süsteemide kallal. Andmekoguja: Andmelogija (ka andmelogija või andmesalvesti) on elektrooniline seade, mis salvestab andmeid aja jooksul
Temperatuuri ja valguse intensiivsuse logimine - Proteuse simulatsioon - Fritzing - Liono Maker: 5 sammu
Temperatuuri ja valguse intensiivsuse logimine | Proteuse simulatsioon | Fritzing | Liono Maker: Tere, see on Liono Maker, see on minu ametlik YouTube'i kanal. See on avatud lähtekoodiga YouTube'i kanal. Siin on link: Liono Makeri YouTube'i kanal Siin on videolink: Temp & Kerge intensiivsusega logimine Selles õpetuses õpime, kuidas temperit valmistada
Desinfitseerimismasina simulatsioon TINKERCADI KASUTAMISEL: 6 sammu
Desinfitseerimismasina simulatsioon TINKERCADI KASUTAMISES: selles uurimatus näeme, kuidas desinfitseerimismasinat simuleerida. Kontakt vähem Automaatne desinfitseerimisseade on desinfitseerimismasin, kuna me ei kasuta masina käsitsemiseks käed, vaid infrapunaanduri lähedust
Avatud silmuse opamp -simulatsioon rakenduse EveryCiruit abil: 5 sammu
Avatud silmuse opamp -simulatsioon rakenduse EveryCiruit abil: EveryCircuit on üks parimaid elektroonika simulatsiooniplatvorme. Sellel on veebisait ja rakendus. See juhend on mõeldud Androidi versioonile. Kuid täpselt see kehtib ka veebiversiooni kohta. Selle juhendi kohta: Opamp või operatsioonivõimendi on
(LED koos lülitiga) Arduino simulatsioon Tinkercadi ahela abil: 5 sammu
(LED koos lülitiga) Arduino simulatsioon Tinkercadi vooluringi abil: oleme rühm UQD0801 (Robocon 1) üliõpilasi Universiti Tun Hussein Onn Malaisiast (UTHM), kes demonstreerivad, kuidas LED -i simuleerida lülitiga, kasutades Arduino ja mõnda komponenti meie ülesanne. Seetõttu tutvustame b