Indholdsfortegnelse:

Simulering Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 trin
Simulering Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 trin

Video: Simulering Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 trin

Video: Simulering Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 trin
Video: Comunicación ARDUINO y LabVIEW #6 | Entrada Analogica 2024, Juli
Anonim
Simulering Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3)
Simulering Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3)

POST ESCRITO EN ESPAÑOL

Simulering af en temperaturoverførsel, en primær element (sensor) kan implementeres i gennemsnit og muliggøres af forskellige varianter af indgang. Til sensorinformation (Elemento Secundario), implementering af protokol til MODBUS RTU, som kan bruges til en seriel seriemodel i en computer.

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. Funktion 0X01
  2. Funktion 0x02
  3. Funktion 0x03
  4. Funktion 0x04
  5. Funktion 0x05
  6. Funktion 0x06

Los registros implementados en el esclavo son:

  1. Direccionamiento MODBUS (16 bit)
  2. Transmissionshastighed (16 bits)
  3. Medicinsk temperatur (16 bits)
  4. Bit fejl (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)

Forbrugsvarer

  • LabVIEW
  • Raspberry Pi 3
  • ADC MCP3008
  • 1 Potenciometro
  • Jumpere
  • FTDI (FT232RL)
  • Protoboard

Trin 1: Kredsløb

Kredsløb
Kredsløb

Circuito MCP3008 og Frambuesa Pi

Conexión Raspberry Pi 3 og FTDI:

  1. GND og GND
  2. TX til RX
  3. RX og TX

Trin 2: Esclavo MODBUS En Raspberry Pi 3B

Como primer pazo necesitas configurar and installer your system system and to Raspberry Pi 3B. Installer NOOBS fra den officielle side. Luego konfigurer tu Raspberry Pi 3B para poder utilizar el puerto serial and puerto SPI.)

Original værdi for ADC repræsenterer, at temperaturen kan bruges til at opnå en grad Celsius og en del af valget i 1 grad kan give en gradvist Fahrenheit.

Ya sabiendo todo esto, el esclavo MODBUS se realizó con Python haciendo uso de la librería Pyserial. Para la simulación del transmisor se trabajo con 4 listas:

  1. Spoler
  2. Inputregistre
  3. Indeholder registre
  4. Diskrete input

Der kan findes en liste over 6 elementer. Beskrivelse af elementerne i listen over lande:

  • coils_lista [0] = bit de selección (si está en 0 significa que la unidad de medición es and Celsius caso contrario unidad de medición in Fahrenheit)
  • diskret_indgang [0] = bit fejl
  • inputRegister_lista [0] = Værdi for ADC (temperatursensor, der simulerer for en potentiel) afhænger af værdien af bitens valg.
  • holdingRegister_lista [0] = dirección de esclavo
  • holdingRegister_lista [1] = værdi af temperaturen maks
  • holdingRegister_lista [2] = værdi af temperaturen minimo
  • holdingRegister_lista [3] = transmissionshastighed.

El esclavo MODBUS a decisión personal cuenta con ciertos parámetros iniciales como lo son:

  • Valor de temperatura máxima 500 Celsius
  • Temperatur i minima 200 Celsius
  • Baudrate inicial af 9600
  • Vejledning i esclavo 1
  • Medicinsk behandling i Celsius.

La lógica aplicada es la siguiente:

En primer kan lære mere om en MODBUS, der kan bruges til at lave en python median:

En sejlads kan fungere som en maestro, der kan bruges til en validering af en salatpedidas til en maestro, der er en gyldig værdi for en gruppe 3, der kan bruges som en maestro til en instruktion, der implementerer sin generering i excepcion 2 y 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 and 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. CRC's funktionsmåde kan bruges til at bruge et link til CRC MODBUS

CRC -lommeregner

Codecos de excepción MODBUS

Trin 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 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 elaboró una maquina de estados en labVIEW con las siguientes opciones:

  • i det
  • konektar: der er en API til oprettelse af en ny version af en bus, der kan bruges til 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.

Trin 4: Máquina 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

fortsat forklaringsdetaljeret konfiguration og cada option:

konektar:

Brug API'en til at oprette en ny maestro MODBUS vælger "New Serial Master", og kontroller til konfiguration:

  • Baudrate
  • Paritet
  • Seriel port (Visa -ressource)
  • Seriel type (RTU)
  • ID del esclavo.

beskrivelse:

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 ención a la que el maestro accedería. For lo que funciones utilizadas fueron:

  • Skriv en enkelt spole
  • Skriv enkelt bedriftsregister.

lære:

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

Las funciones utilizadas fueron:

  • Læs Input Register
  • Læs Coils.

Trin 5: Frontpanel

Frontpanel
Frontpanel

Elpanelet frontalt i labVIEW kan ses som en stor mulighed for at ændre det endeligt. Por lo que se realizó lo siguiente:

Se installering af DMC GUI Suite til labVIEW for en mere stor del af en kontrol og indikatorer.

2 termometre (1 for indikatorer for temperatur og Celsius og for temperatur for en temperatur for Fahrenheit).

Bot "Advarsel" kan bruges til at give en fejl eller en fejl.

Højdepunkter for temperaturer og temperaturer (for en stor del af registret kan gøre det muligt at foretage en korrekt ændring).

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 for "Excepciones" (Para que genere una excepción dependiendo de la función MODBUS select)

Trin 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 del sensor de temperatura (Simulado en el canal 0 with un potenciometro).

Me quedo pendiente implementar las funciones 15 y 16.

Trin 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, investigate y no encontré una solución para aplicarla.

Trin 8: Resultado Final

Espero kan også bruges til at levere en mere omfattende kommunikation modbus RTU og en implementering og labVIEW.

Anbefalede: