Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02
POST ESCRITO EN ESPAÑOL
Se simuló en circuito transmisor de temperatura, el elemento primario (Sensor) fue implementado mediante un potenciometro el cual varia el voltaje de entrada. For informasjon om sensorer (Elemento Secundario), implementering av protokollen MODBUS RTU, for medio de un puerto serial hacia una computadora que será el maestro.
Como maestro se elaboró un programa en labVIEW haciendo uso de la librería MODBUS que ya implementa. El esclavo es capaz de recibir las siguientes funciones del maestro:
- Funksjon 0X01
- Funksjon 0x02
- Funksjon 0x03
- Funksjon 0x04
- Funksjon 0x05
- Funksjon 0x06
Los registros implementados en el esclavo son:
- Direccionamiento MODBUS (16 bits)
- Transmisjonshastighet (16 bits)
- Medisin de la temperatura (16 bits)
- Bit feil (1 bit)
- Bit de selección (1 bit) C o F
- Nivel máximo de medición (16 bits)
- Nivel minimo de medición (16 bits)
Rekvisita
- LabVIEW
- Raspberry Pi 3
- ADC MCP3008
- 1 Potenciometro
- Gensere
- FTDI (FT232RL)
- Protoboard
Trinn 1: Circuitos
Circuito MCP3008 og Frambuesa Pi
Conexión Raspberry Pi 3 y FTDI:
- GND og GND
- Send en RX
- RX og TX
Trinn 2: Esclavo MODBUS En Raspberry Pi 3B
Como primer pazo necesitas configurar and installal tu system system for your Raspberry Pi 3B. Sugiero installer NOOBS av den offisielle siden. Luego configurar tu Raspberry Pi 3B for poder utilizar el puerto serial and puerto SPI.
(Personalmente yo me conectó a mi raspi utilizando VNC Viewer para ello hay que activar el servidor VNC de la raspi)
Opprinnelige verdier for ADC representerer temperaturer med en gradert grad av Celsius og en del av valget av 1 grader i Fahrenheit.
Du kan også se og bruke MODBUS til å realisere Python for å bruke Pyserial -biblioteket. Para la simulación del transmisor se trabajo con 4 listas:
- Spoler
- Inngangsregistre
- Holderegistre
- Diskrete innganger
Det finnes seks elementer i listen. Beskrivelse av de grunnleggende elementene i listen:
- 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 in Fahrenheit)
- diskret_inngang [0] = bit feil
- inputRegister_lista [0] = Valg av ADC (sensor de temperatura simulado por un potenciometro) depiendo del value of bit de selección.
- holdingRegister_lista [0] = dirección de esclavo
- holdingRegister_lista [1] = verdi av temperaturen maks
- holdingRegister_lista [2] = verdi av temperaturen minimo
- holdingRegister_lista [3] = overføringshastighet.
El esclavo MODBUS a decisión personal cuenta con ciertos parámetros iniciales como lo son:
- Valor de temperatura máxima 500 Celsius
- Temperaturen minima 200 Celsius
- Baudrate inicial av 9600
- Dirección de esclavo 1
- Unidad de medición inicial en Celsius.
La lógica aplicada es la siguiente:
En primer for å lære mer om tråden MODBUS gir en oversikt over e -postadressen, og du kan også se Python -mediante el código:
En segundo lugar se buscó la función que el maestro solicitaba for laego 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 excodción 2 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.
For ultimo paso en cada función crear una list and 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. Funksjonen til CRC kan brukes til å bruke lenken til CRC MODBUS
CRC kalkulator
Codigos de excepción MODBUS
Trinn 3: Maestro LabVIEW (HMI)
La creación de un maestro que fuera de cierta manera amigable para us usario final fue hecha por medio de labVIEW y su librería MODBUS la cual facilitaba la creación de un maestro MODBUS RTU.
Se utarbeidelse av en labyrint og en VISNING med følgende opplysninger:
- i det
- conectar: aquí está el API for crear un nuevo maestro modbus con la opción habilitada de SERIAL.
- escribir: aquí se utiliza la funcion skrive enkelt holding register y skrive single coil
- leer: aquí se configuran los registros y coils de importancia para la lectura del maestro.
Trinn 4: Máquina De Estados
fortløpende forklaring av en konfigurasjon og en opsjon:
konektar:
Bruke API -et for en ny versjon av MODBUS -valg av "New Serial Master", og kontroller for konfigurasjon:
- Baudrate
- Paritet
- Seriell port (Visa -ressurs)
- Seriell type (RTU)
- ID del esclavo.
escribir:
En escribir solo me interesaba que el maestro pudiera cambiar la temperatura máxima y minima, 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 que direcciones se encontraba a la que el maestro accedería. For lo que las funciones utilizadas fueron:
- Skriv enkelt spole
- Skriv enkeltstående register.
lær:
En leer solo me interesaba la lectura del bit de error y el input register asociado a mi variable primaria.
Las funciones utilizadas fueron:
- Les Inngangsregister
- Les spoler.
Trinn 5: Frontpanel
El panel frontal en labVIEW se trató lo mejor posible que fuera amigable para el usuario final. For lo se se realizó lo volgende:
Se installer DMC GUI Suite for labVIEW for tener un mejor diseño en cuanto a controles and indicadores.
2 termometre (1 for temperaturer en Celsius og en temperatur for Fahrenheit).
"Advarsel" kan gi en feilmelding.
Du kan velge mellom temperaturer og temperaturer (for å oppgi et cambio al registro cuando se es presionado el botón) caso contrario siempre los estuviera modificando lo cual causaría un funcionamiento incorrecto.
Botón para editar la dirección del esclavo (for que únicamente haga el cambio al registro cuando se es presionado el botón)
Botón for editar el baudrate del esclavo (for que únicamente haga el cambio al registro cuando se es presionado el botón)
Un botón for "Excepciones" (Para que genere una excepción dependiendo de la función MODBUS select)
Trinn 6: Archivos Python
En estos archivos está implementado el esclavo MODBUS (Transmisor de temperatura) junto with the archivo ADC for leer the variable de interés of sensor of temperaturea (Simulado en el canal 0 with un potenciometro).
Me quedo pendiente implementar las funciones 15 y 16.
Trinn 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 intentiono, investigue y no encontré una solución para aplicarla.
Trinn 8: Resultado Final
Espero kan også tilby en person som gir meg en større kommunikasjonsmodus RTU og en implementering av labVIEW.
Anbefalt:
Industriell HMI og Arduinos i MODBUS RTU: 4 trinn
Industrial HMI og Arduinos i MODBUS RTU: I denne instruksjonsbilen vil jeg beskrive et eksempel på kommunikasjon mellom en industriell HMI (COOLMAY MT6070H, 150EUROS), en Arduino CLONE DIY (10EUROS) og en Arduino UNO (10EUROS). Nettverket vil kjøre under en spesiell og robust og industriell protose
Digistump og Modbus RTU: 6 trinn
Digistump og Modbus RTU: De som har sett min instruks om kommunikasjon mellom Modbus RTU og en Raspberry Pi vet at jeg planlegger et prosjekt for automatisering av et drivhus. Jeg har laget 2 små kretskort som kan settes i en prosjektboks. Lenken til kretskortene vil jeg inkludere
Modbus TCP -kommunikasjon mellom Arduino og industrielle enheter: 3 trinn
Modbus TCP -kommunikasjon mellom Arduino og industrielle enheter: En industriell måte å kontrollere et Arduino -kort med industriell HMI og koble det til et industrielt nettverk med en Modbus TCP -kommunikasjon
Konstruksjon av en transmisor av lyd for laser: 3 trinn
Konstruksjon av en transmisor av lyd for laser: Konstruksjon og overføring av lyd med laser
ESP32 Modbus Master TCP: 7 trinn
ESP32 Modbus Master TCP: I denne klassen vil du programmere ESP32 -prosessoren til å være Modbus TCP Master. Vi bruker to enheter som inneholder denne prosessoren: Moduino ESP32 og Pycom. Begge enhetene kjører i MicroPytthon -miljø. Vår Modbus Slave vil være PC -datamaskin med M