Inhoudsopgave:

Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3) - Ajarnpa
Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3) - Ajarnpa

Video: Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3) - Ajarnpa

Video: Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3) - Ajarnpa
Video: Fx3u plc modbus with xy-Md02 Temperature & Humidity Sensor 2024, Juli-
Anonim
Simulatie Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3)
Simulatie Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3)

POST ESCRITO EN ESPAÑOL

Probeer een gelijktijdige temperatuurtransmitter, een elementaire primaire (sensor) en een mediaante uitvoering van een mogelijke potentiaalvariatie van de entrada. Voor het gebruik van informatie over de sensor (Elemento Secundario), en het implementeren van het protocol van MODBUS RTU, door middel van een seriële computer in de serie en de 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:

  1. Functie 0X01
  2. Functie 0x02
  3. Functie 0x03
  4. Functie 0x04
  5. Functie 0x05
  6. Functie 0x06

Los registros implementados en el esclavo son:

  1. Directe MODBUS (16 bits)
  2. Velocidad de transmissie (16 bits)
  3. Medición de la temperatura (16 bits)
  4. Bit de fout (1 bit)
  5. Bit de selección (1 bit) C o F
  6. Nivel máximo de medición (16 bits)
  7. Nivel minimo de medición (16 bits)

Benodigdheden

  • LabVIEW
  • Raspberry Pi 3
  • ADC MCP3008
  • 1 Potenciometer
  • Truien
  • FTDI (FT232RL)
  • Protobord

Stap 1: Circuito's

Circuito's
Circuito's

Circuito MCP3008 en Frambuesa Pi

Aansluiting Raspberry Pi 3 en FTDI:

  1. GND naar GND
  2. TX een RX
  3. RX een TX

Stap 2: Esclavo MODBUS En Raspberry Pi 3B

Como primer pazo necesitas configurar e installar t sistema operativo en tu Raspberry Pi 3B. Sugiero installeert NOOBS op de officiële pagina. Luego configureer voor Raspberry Pi 3B voor gebruik van Puerto Serial en Puerto SPI.

(Personalmente yo me conectó a mi raspi utilizando VNC Viewer para ello hay que activar el servidor VNC de la raspi)

Oorspronkelijke waarde van de ADC representeert de temperatuur van de temperatuur door de temperatuursensor en de graden Celsius en de eerste selectie van de temperatuur in de Fahrenheit.

U kunt uw computer gebruiken om de MODBUS te realiseren met Python die u kunt gebruiken in de bibliotheek. Para la simulación del transmisor se trabajo con 4 lijsten:

  1. Wikkelen
  2. Invoerregisters
  3. Holding registers
  4. Discrete ingangen

Cada lista se hizo de 6 elementos. Korte beschrijving van de los elementos de cada lista:

  • coils_lista[0] = bit de selectie
  • discrete_input [0] = bit de fout
  • inputRegister_lista[0] = Valor del ADC (sensor van temperatuursimulatie door een potentiaalmeter) afhankelijk van de waarde van het bit van de selección.
  • holdingRegister_lista[0] = directe toegang
  • holdingRegister_lista[1] = maximale temperatuur
  • holdingRegister_lista[2] = minimale temperatuur
  • holdingRegister_lista[3] = verzendsnelheid.

El esclavo MODBUS een persoonlijke cuenta con ciertos parámetros iniciales como lo son:

  • Valor de temperatura máxima 500 Celsius
  • Valor de temperatura minima 200 Celsius
  • Baudrate initiaal van 9600
  • Richting de esclavo 1
  • Unidad de medición inicial en Celsius.

De logische toepassing van het volgende:

In de eerste plaats om de buscó te leren van de volgende MODBUS en via de maestro, om te beginnen met de Python mediante el código:

En segundo lugar se buscó la función que el maestro sollicitaba para luego validar si la cantidad de salidas pedidas el maestro eran validas sino código de excepción 3, seguido de validar si el maestro pedidas el maestro eran validas sino general código de excepción 3, seguido de validar si el maestro pedidas una dire y door ultimo realizar la instrucción pedida el código de función leído.

Het is gelukt met het resto van de uitvoering van de functies.

Para ultimo paso en cada función crear un lista y mandar uno por uno 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. De functie van CRC kan worden aangepast aan de gebruiksvriendelijke link CRC MODBUS

CRC-calculator

Excepción MODBUS

Stap 3: Maestro LabVIEW (HMI)

Maestro LabVIEW (HMI)
Maestro LabVIEW (HMI)
Maestro LabVIEW (HMI)
Maestro LabVIEW (HMI)

La creación de un maestro que fuera de cierta manera amigable para un usuario final fue hecha t medio de labVIEW y librería MODBUS la cual facilitaba la creación de un maestro MODBUS RTU.

Bekijk meer informatie over de machines en laboratoria. Bekijk de volgende opties:

  • in het
  • sluit aan op: de API van een nieuwe maestro modbus met de mogelijkheid om SERIAL te gebruiken.
  • escribir: aquí se utiliza la funcion write single holding register y write single coil
  • leer: bekijk de configuratie van de geregistreerde en belangrijke rollen voor de lectuur van de maestro.

Stap 4: Maquina de Estados

Máquina de Estados
Máquina de Estados
Máquina de Estados
Máquina de Estados
Máquina de Estados
Máquina de Estados

vervolg explicare detalladamente la configuración en cada opción:

verbinding:

Gebruik de API voor het maken van een nieuwe MODBUS-selectie voor "New Serial Master", de volgende configuraties:

  • baudrate
  • Pariteit
  • Seriële poort (Visa Resource)
  • Serieel type (RTU)
  • ID del esclavo.

opsteller:

En escribir solo me interesaba que el maestro pudiera cambiar la temperatura máxima y minima, el bit de selección, asignarle un nueva dirección al maestro y ultimo asignarle un nuevo Baudrate al esclavo e esclavo que ante que ante ya sabia a la que el maestro accedería. Voor wat betreft fueron-functies:

  • Schrijf enkele spoel
  • Schrijf enkele holding Register.

koeloven:

En leer solo me interesaba la lectura del bit de error y el input register asociado a mi variabele primaria.

Nuttige functies Fueron:

  • Invoerregister lezen
  • Lees Spoelen.

Stap 5: Voorpaneel

Voorpaneel
Voorpaneel

El panel frontal en labVIEW se trató lo mejor posible que fuera amigable para el usuario final. Door de volgende stap:

Installeer de DMC GUI-suite voor het lab. Bekijk de instellingen voor het oplossen van problemen en controles en indicatoren.

2 termómetros (1 para indicar la temperatura en Celsius en otro para indicar la temperatura en Fahrenheit).

Botón "Waarschuwing" que únicamente se enciende cuando el bit de error está encendido.

Botón para editar los rangeos de temperatura 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 incorrecto.

Botón para editar la dirección del esclavo (para que únicamente haga el cambio al registro cuando se es presionado el botón)

Botón para editar 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 un excepción dependiendo de la función MODBUS seleccionada)

Stap 6: Archief Python

Gearchiveerde gearchiveerde MODBUS (Temperatuurzender) met ADC-archieven ADC voor variabele temperatuursensoren (Gesimuleerde temperatuur van het kanaal 0 met potentiële).

Me quedo pendiente implementar las funciones 15 y 16.

Stap 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, onderzoek y geen encontré un oplossing para aplicarla.

Stap 8: Resultado Finale

Espero ayudar een algunas personas een comprender mejor de comunicación modbus RTU en een implementatie en labVIEW.

Aanbevolen: