Përmbajtje:

Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 hapa
Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 hapa

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

Video: Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 hapa
Video: XY-MD02 Sensor Setting - Modbus RTU Network 2024, Korrik
Anonim
Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3)
Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3)

POST ESCRITO EN ESPAÑOL

Se simuló un circuito transmisor de temperature, el elemento primario (Sensor) fue implementado mediante un potenciometro el cual varia el voltaje de entrada. Për informacionin e sensorit të informacionit (Elemento Secundario), për zbatimin e protokollit të MODBUS RTU, për medioen nga faqja e serisë që ka një kompjuter që shërben për maestro.

Ju mund të përdorni programin e tij në labVIEW, duke përdorur modalitetin e lirë të MODBUS -it për zbatim. El esclavo es capaz de recibir las siguientes funciones del maestro:

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

Los registros implementados en el esclavo son:

  1. Direccionamiento MODBUS (16 bit)
  2. Velocidad de transmisión (16 bit)
  3. Medición de la temperatura (16 bit)
  4. Pak gabim (1 bit)
  5. Zgjedhja e bitit (1 bit) C o F
  6. Nivel máximo de medición (16 bit)
  7. Nivel mínimo de medición (16 bit)

Furnizimet

  • LabVIEW
  • Mjedër Pi 3
  • ADC MCP3008
  • 1 Potenciometro
  • Kërcyesit
  • FTDI (FT232RL)
  • Protoboard

Hapi 1: Qarqet

Qarqet
Qarqet

Circuito MCP3008 y Frambuesa Pi

Conexión Raspberry Pi 3 y FTDI:

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

Hapi 2: Esclavo MODBUS En Raspberry Pi 3B

Como primer pazo necesitas configurar dhe instalar tu sistema operative en tu Raspberry Pi 3B. Sugiero instalar NOOBS desde la page oficial. Konfigurimi i Raspberry Pi 3B mund të përdoret për të përdorur serialin dhe portretin SPI.

(Personalisht ju mund të lidhni një përdorim të shpejtë të VNC Viewer për të gjitha aktivitetet e shërbimit të VNC de la raspi)

Originalmente el valor del ADC përfaqëson atë temperaturë të mesme për një sensor të vlerësuar në gradë Celsius dhe al estar el bit de selección en 1 este valor se pasa a grados Fahrenheit.

Për më tepër, kjo do të thotë, për shembull, MODBUS do të kuptojë se me Python mund të përdorni pa pagesë Pyserial. Para la simulación del transmisor se trabajo con 4 lista:

  1. Mbështjellje
  2. Regjistrat hyrës
  3. Mbajtja e Regjistrave
  4. Inputet diskrete

Lista e listës së informacionit për 6 elementë. Përcaktoni përshkrimin e los elementos de cada lista:

  • coils_lista [0] = pak selección (si está en 0 signa que la unidad de medición es en Celsius caso contrario unidad de medición en Fahrenheit)
  • diskrete_input [0] = pak gabim (kjo është pak se si të ruhet nga vlera e temperaturës që do të vlerësohet nga niveli i lartë i temperaturës së mëparshme)
  • inputRegister_lista [0] = Valor del ADC (sensor de temperatura simulado por un potenciometro) varet nga vlera e bitit të seleksionit.
  • HoldRegister_lista [0] = dirección de esclavo
  • HoldRegister_lista [1] = vlera e temperaturës më të madhe
  • HoldRegister_lista [2] = valor de temperatura mínimo
  • HoldRegister_lista [3] = velocidad de transmisión.

El esclavo MODBUS një vendim personal për zgjedhjen e parimeve të iniciales si djali:

  • Valor de temperatura máxima 500 Celsius
  • Valor de temperatura mínima 200 Celsius
  • Baudrate inicial de 9600
  • Drejtimi i esklavos 1
  • Unidad de medición inicial en Celsius.

La lógica aplicada es la siguiente:

Përfundimisht, mund të lexoni për të përcaktuar tramën MODBUS për të mësuar më parë, për shembull, në Python mediante el código:

Për më tepër, ju mund të përdorni një shërbim funksional për një kërkesë të mirë për një kohë të gjatë, në mënyrë që të kontrolloni të drejtat tuaja për një ekspresion 3, për të përcaktuar zbatimin si një zbatim të pashmangshëm të zbatimit të saj 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.

Para së gjithash, ju mund të krijoni një listë dhe të përdorni një mandar uno por uno por puerto serial la petición del maestro.

Thuaj se nuk ka vlerë si një CRC enviada al esclavo era el correcto pero si ju mund të shikoni para një menyre enviado al maestro. Funksioni i KDF -së është përshtatja dhe përdorimi i kësaj lidhje CRC MODBUS

Llogaritës CRC

Códigos de excepción MODBUS

Hapi 3: Maestro LabVIEW (HMI)

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

Krijimi i një maestro që ka të bëjë me një sistem të përshtatshëm miqësor për një përdorim përfundimtar të ushqimit në mediat e laboratorit Pamja dhe liria e MODBUS për lehtësinë krijuese të krijimit të një maestro MODBUS RTU.

Se elaboró una maquina de estados en labVIEW con las siguientes opciones:

  • nisje
  • conectar: aquí está el API de crear un nuevo maestro modbus con la opción habilitada de SERIAL.
  • escribir: aquí se utiliza la funcion shkruani regjistër të vetëm mbajtës y shkruani spirale të vetme
  • shikoni: aquí se configuran los registros y coils de importancia para la lectura del maestro.

Hapi 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

vazhdimi shpjegon detalladamente të konfigurimit en cada opción:

konektor:

Përdorni API për të krijuar një modul të ri MODBUS dhe zgjidhni opcionin e "Masterit të Ri Serial", duke kontrolluar konfigurimet e krijimit:

  • Baudrate
  • Pariteti
  • Porti Serial (Burimi i Vizës)
  • Lloji Serial (RTU)
  • ID del esclavo.

escribir:

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 dirección al maestro y por ultimo asignarle un nuevo Baudrate al esclavo por lo que ya sabia de antemano en lanca enca enca enca a la que el maestro accedería. Por ja que las funciones utilizadas fueron:

  • Shkruani spirale të vetme
  • Shkruani Regjistrin e mbajtjes së vetme.

shiko:

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

Las funciones utilizadas fueron:

  • Lexoni Regjistrin Input
  • Lexoni Coils.

Hapi 5: Paneli i përparmë

Paneli perballe
Paneli perballe

El panel frontal en labVIEW se trató lo mejor posible que fuera amigable para el usuario final. Por ja që ajo të kuptojë se si të kuptojmë:

Instaloni DMC GUI Suite për laboVIEW për një përcaktim të madh të një kontrolli dhe kontrolli të treguesve.

2 termometra (1 për treguesin e temperaturës në Celsius dhe otro para treguesit të temperaturës në Fahrenheit).

Botoni "Paralajmërim" në mënyrë që të regjistroni një gabim që mund të ndodhë.

Boton për editar los rangos de temperatura a medir (para se únicamente haga el cambio al registro cuando se es es presionado el botón) mund të shkaktojë një mosfunksionim modifikues dhe të mundshëm të shkaktimit të gabuar të funksioneve.

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 una excepción variendo de la función MODBUS seleccionada)

Hapi 6: Archivos Python

Të gjitha arkivat janë të zbatueshme për një esclavo MODBUS (Transmisor de temperatura) ju mund të arkivoni ADC për të ndryshuar ndryshimin e sensorit të temperaturës (Simulado në el kanalin 0 con un potenciometro).

Me quedo pendiente implementar las funciones 15 dhe 16.

Hapi 7: HMI

Master Modbus RTU

Este es el maestro implementado en labVIEW. Hay cosas para mejorar, për shembull nuk mund të korrigjojë një gabim në lidhje me fillimin e synimit, të hetojë një zgjidhje të pazgjidhur për aplikim.

Hapi 8: Rezultati Final

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

Recommended: