Turinys:

Simuliatorius Transmisor De Temperatura Modbus („Labview“+ „Raspberry Pi 3“): 8 žingsniai
Simuliatorius Transmisor De Temperatura Modbus („Labview“+ „Raspberry Pi 3“): 8 žingsniai

Video: Simuliatorius Transmisor De Temperatura Modbus („Labview“+ „Raspberry Pi 3“): 8 žingsniai

Video: Simuliatorius Transmisor De Temperatura Modbus („Labview“+ „Raspberry Pi 3“): 8 žingsniai
Video: transmisores de presión y temperatura, control de temperatura, filtros y conexiones parker. 2024, Lapkritis
Anonim
Simuliatorius Transmisor De Temperatura Modbus („Labview“+ „Raspberry Pi 3“)
Simuliatorius Transmisor De Temperatura Modbus („Labview“+ „Raspberry Pi 3“)

POST ESCRITO EN ESPAÑOL

Simuliuokite grandinės perdavimo temperatūrą, el. Pažvelkite į jutiklio informaciją („Elemento Secundario“), įveskite protokolą „MODBUS RTU“, kuriame yra serijinė informacija apie seriją ir maestro.

Como maestro se elaboró un program en labVIEW haciendo uso de la librería MODBUS que ya implementa. El Esclavo es Capaz de Recibir las siguientes funciones del maestro:

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

Sąskaitos registrai įgyvendinami ir el esclavo sūnus:

  1. Modbuso kryptis (16 bitų)
  2. „Velocidad de transmisión“(16 bitų)
  3. Medicinos temperatūra (16 bitų)
  4. Bitų klaida (1 bitas)
  5. Pasirinkimo bitas (1 bitas) C o F
  6. Medicininė medicina (16 bitų)
  7. Medicininė medicina (16 bitų)

Prekės

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

1 žingsnis: grandinės

Circuitos
Circuitos

„Circuito MCP3008“ir „Frambuesa Pi“

„Conexión Raspberry Pi 3“ir FTDI:

  1. GND ir GND
  2. TX ir RX
  3. RX ir TX

2 žingsnis: „Esclavo MODBUS“ir „Raspberry Pi 3B“

„Como primer“reikia konfigūruoti ir įdiegti „Raspberry Pi 3B“operacinę sistemą. Sugiero instaliacija NOOBS desde la pagina oficialus. Skaitykite konfigūraciją iš „Raspberry Pi 3B“, naudodamiesi serijiniu ir puerto SPI.

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

Originalus el valor del ADC atstovas, skirtas temperatūros jutimui ir temperatūrai Celsijaus ir alterio temperatūroje, pasirenkant 1 laipsnį Fahrenheito.

Ya sabiendo todo esto, esclavo MODBUS se realization with Python haciendo uso de la librería Pyserial. Simuliacija transmisoriui su 4 sąrašais:

  1. Ritės
  2. Įvesties registrai
  3. Registrų tvarkymas
  4. Diskretieji įėjimai

6 elementų sąrašas. Sąrašo aprašymas:

  • 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)
  • diskretus_įvestis [0] = bitų klaida (este 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“(temperatūros jutiklio modelio ir potencialo jutiklio jutiklis) priklauso nuo pasirinkimo bitų vertės.
  • holdingRegister_lista [0] = esclavo režimas
  • holdingRegister_lista [1] = valor de temperatura máxima
  • holdingRegister_lista [2] = valor de temperatura mínimo
  • holdingRegister_lista [3] = velocidad de transmisión.

Esclavo MODBUS ir asmeninis sprendimas, skirtas asmeniniam naudojimui:

  • Temperatūra - 500 laipsnių pagal Celsijų
  • Temperatūra - 200 laipsnių Celsijaus
  • Baudrate inicial de 9600
  • Esclavo kryptis 1
  • Unidad de medición inicial en Celsius.

La lógica aplicada es la siguiente:

Pradinis skaitymas bus bus ler 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 and código de excepción 3, seguido de validar si el maestro pedía una directcción implementada sino generar un code 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 ma 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 modulis, pritaikytas CRC modifikavimui, yra pritaikytas prie mūsų kodo

CRC skaičiuoklė

„Códigos de excepción MODBUS“

3 žingsnis: „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 and usuario final fue hecha por por medio de labVIEW y librería MODBUS la cual hõlbinti kūrimą ir sukurti maestro MODBUS RTU.

Išsiaiškinkite, kaip maquina de estados en labVIEW con las siguientes opciones:

  • iniciat
  • sąsaja: „Aquí está el API“sukuria naują „maestro modbus“programą, skirtą serijos „habilitada“.
  • escribir: aquí se utiliza la funcion rašyti vieną laikymo registrą ir rašyti vieną ritę
  • rašo: konfigūracijos registras ir importo sistemos ritės, skirtos lectura del maestro.

4 žingsnis: 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

tęstinis aiškinimas detalizuojant konfigūraciją ir cada opción:

konektorius:

Naudokite API, kad sukurtumėte naują „MODBUS“maestro pasirinkimą ir pasirinktumėte „New Serial Master“, kurdami konfigūraciją:

  • Sparta
  • Paritetas
  • Serijinis prievadas (vizų šaltinis)
  • Serijos tipas (RTU)
  • Esclavo ID.

aprašymas:

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 enion a la que el maestro accedería. Jei norite naudoti fueron:

  • Parašykite vieną ritę
  • Parašykite vieno ūkio registrą.

laiškas:

Skaitykite man įdomiai, skaitykite šiek tiek klaidų ir įveskite registrą asociado a mi variable primaria.

Fuerono naudojimo funkcijos:

  • Skaitykite įvesties registrą
  • Skaitykite ritinius.

5 žingsnis: priekinis skydelis

Priekinė panelė
Priekinė panelė

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

Įdiekite „DMC GUI Suite“, skirtą „LabVIEW“, skirtam dešimčiai ir pagrindinėms ligoms bei kontrolėms ir nurodymams.

2 termometrai (1 indikacinė temperatūros ir Celsijaus ir antroji indikacinė temperatūros temperatūra pagal Farenheitą).

Botonas „Įspėjimas“yra įtrauktas į klaidą ir yra klaidingas.

Botón para editar los rangos 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 inserecto.

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

6 žingsnis: „Python“archyvas

EN estos archivos está implementado el esclavo MODBUS (Transmisor de temperatura) junto con el archivo ADC para leer la var la de de interés del sensor de temperatura (Simulado en el canal 0 con un potenciometro).

Me quedo pendiente implementar las funciones 15 ir 16.

7 žingsnis: HMI

Pagrindinis „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, tyrinėti y no encontré una solución para aplicarla.

8 žingsnis: galutinis rezultatas

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

Rekomenduojamas: