Sadržaj:

Simbus Transmisor temperature temperature Modbus (Labview + Raspberry Pi 3): 8 koraka
Simbus Transmisor temperature temperature Modbus (Labview + Raspberry Pi 3): 8 koraka

Video: Simbus Transmisor temperature temperature Modbus (Labview + Raspberry Pi 3): 8 koraka

Video: Simbus Transmisor temperature temperature Modbus (Labview + Raspberry Pi 3): 8 koraka
Video: SHAMPOO KARA CHUL || MIRA DAS || NEW PURULIA SONG - MANBHUM BEATS 2024, Novembar
Anonim
Simbus Transmisor za temperaturni modbus (Labview + Raspberry Pi 3)
Simbus Transmisor za temperaturni modbus (Labview + Raspberry Pi 3)

POST ESCRITO EN ESPAÑOL

Istovremeno, prijenosni krug prijenosnika za temperaturu, primarni element (senzor) za implementaciju srednje implementacije srednje energije i potencijalne električne varijable napona za ulaz. Za dodatne informacije o senzoru (Elemento Secundario), implementirate protokol MODBUS RTU, sa serijskim serijskim računarom na računaru ili maestro.

Kao maestro, morate razraditi program u labVIEW -u kako biste koristili MODBUS za implementaciju. El esclavo es capaz de recibir las siguientes funciones del maestro:

  1. Función 0X01
  2. Funkcija 0x02
  3. Funkcija 0x03
  4. Funkcija 0x04
  5. Funkcija 0x05
  6. Funkcija 0x06

Los registros implementados en el esclavo son:

  1. Direccionamiento MODBUS (16 bita)
  2. Velocidad de transmisión (16 bita)
  3. Medición de la temperature (16 bita)
  4. Greška bita (1 bit)
  5. Bit de selección (1 bit) C o F
  6. Nivel máximo de medición (16 bita)
  7. Nivel mínimo de medición (16 bita)

Supplies

  • LabVIEW
  • Raspberry Pi 3
  • ADC MCP3008
  • 1 Potenciometro
  • Džemperi
  • FTDI (FT232RL)
  • Protoboard

Korak 1: Circuitos

Circuitos
Circuitos

Circuito MCP3008 y Frambuesa Pi

Conexión Raspberry Pi 3 i FTDI:

  1. GND a GND
  2. TX i RX
  3. RX i TX

Korak 2: Esclavo MODBUS En Raspberry Pi 3B

Como primer pazo necesitas konfiguratora i instalacionog sistema operativnog sistema i Raspberry Pi 3B. Predlažemo instalaciju NOOBS -a na službenoj stranici. Luego konfiguracija za Raspberry Pi 3B za poder koristi puerto serijski i puni SPI.

(Osobno me povežite i iskoristite VNC Viewer za parametre za aktiviranje servera VNC za la raspi)

Originalni valor delc ADC -a predstavlja temperaturu sa temperaturom senzora na senzorima u gradovima Celzijusa i bitnim izborom u 1 stepenu valora koji se nalaze u gradovima po Farenhajtu.

Da biste to učinili, MODBUS je esclavo realiziran sa Python -om koji koristi labrería Pyserial. Za simulaciju transmisora sa 4 liste:

  1. Zavojnice
  2. Ulazni registri
  3. Vođenje registara
  4. Diskretni ulazi

To je popis 6 elemenata. Breve opis los elementos de cada list:

  • coils_lista [0] = bit de selección (ako je 0 označava que la unidad de medición es en Celsius caso contrario unidad de medición en Fahrenheit)
  • discrete_input [0] = greška bita (ovaj bit se prikazuje kao vrijednost valera temperature esta fuera del rango establecido entre temperatura maxima y minima)
  • inputRegister_lista [0] = Valor del ADC (senzor temperature simulira s potenciometrom) ovisi o valor de bitu za odabir.
  • holdingRegister_lista [0] = dirección de esclavo
  • holdingRegister_lista [1] = valor de temperatura máxima
  • holdingRegister_lista [2] = valor de temperatura minimo
  • holdingRegister_lista [3] = velocidad de transmisión.

El esclavo MODBUS je odlučujuća lična postavka koja se odnosi na početne parametre u vezi sa sinom:

  • Maksimalna temperatura iznosi 500 Celzijusa
  • Temperatura minimuma 200 Celzijusa
  • Brzina prijenosa 9600
  • Dirección de esclavo 1
  • Unidad de medición inicial en Celsius.

Aplikacija La lógica es la siguiente:

Na početnom mjestu se nalazi buscó leer toda la trama MODBUS je okružen el maestro, esto se nalazi u Python medijanu el kodigo:

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 pedia una dirección implementacija sino generar un código 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.

Para ultimo paso en cada función crear un 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 -a prilagođena je korisničkom povezivanju sa CRC MODBUS -om

CRC kalkulator

Izvještaj o izuzeću MODBUS

Korak 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 unusuario final fue hecha por medio de labVIEW y 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:

  • u tome
  • konektor: Ovo je API za kreiranje jedinstvenog maestro modbusa sa opcijom habilitacije SERIAL.
  • escribir: aquí se utiliza la funcion upisuje jedinstveni registar držanja y upisuje jednu zavojnicu
  • leer: aquí se konfigurira kao registrator y zavojnice važnosti za lectura del maestro.

Korak 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

nastavak objašnjava detaljne detalje o konfiguraciji i cada opciji:

conectar:

Upotrijebite API za stvaranje novog upravljačkog modusa MODBUS koji je odabran za opciju "New Serial Master", a zatim kreirajte kontrole za konfiguraciju:

  • Baudrate
  • Paritet
  • Serijski port (Visa Resource)
  • Serijski tip (RTU)
  • ID del esclavo.

escribir:

En escribir solo me interesaba que el maestro pudiera cambiar la temperature 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 que direcciones en en a la que el maestro accedería. Por lo que las funciones utilizadas fueron:

  • Napišite jednu zavojnicu
  • Napišite jedinstveni registar holdinga.

leer:

En leer solo me interest la lactura del bit de error and el input register asociado a mi variable primar.

Las funciones utilizadas fueron:

  • Pročitajte Ulazni registar
  • Read Coils.

Korak 5: Prednja ploča

Prednji panel
Prednji panel

El panel frontal en labVIEW se trató lo mejor posible que fuera ammigable para el usuario final. Por lo que se realizó lo siguiente:

Instalirajte DMC GUI Suite za labVIEW parametar za glavne i nepostojane kontrole i indikatore.

2 termina (1 para indikatora temperature u Celzijusu i otrova za indikatora temperature po Fahrenheitu).

Boton "Warning" que únicamente se enciende cuando el bit de greška está encendido.

Botón para editor los rangos de temperature in medir (para que únicamente haga el cambio al registerro cuando se es presionado el botón) caso contrario siempre los estuviera modificira 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)

Korak 6: Archivos Python

Arhiva je implementirana u modusu MODBUS (Transmisor za temperaturu) sa ADC -om u arhivi za promjenjivu temperaturu senzora temperature (Simulacija na kanalu 0 sa potenciometrom).

Pitajte me za implementaciju las funciones 15 i 16.

Korak 7: HMI

Master Modbus RTU

Este es maestro implementado en labVIEW. Hay cosas para mejorar, por ejemplo no pude corregir un error al conectar al primer intento, istražite y no encontré una solución para aplicarla.

Korak 8: Rezultat konačan

Espero ayudar a algunas personi comprender mejor la comunicación modbus RTU y una implementación en labVIEW.

Preporučuje se: