Оглавление:

Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 шагов
Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 шагов

Видео: Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 шагов

Видео: Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 шагов
Видео: XY-MD02 Sensor Setting - Modbus RTU Network 2024, Июль
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

Он симулирует схему преобразователя температуры, первичный элемент (датчик), который реализует медианный потенциометр элек- трического изменения напряжения энтрада. Для получения информации о датчике (Elemento Secundario), в котором реализован протокол MODBUS RTU, можно использовать последовательный порт для вычислений, который находится на уровне маэстро.

Этот маэстро занимается разработкой программы в LabVIEW, использующей библиотеку MODBUS, которую вы реализуете. El esclavo es capaz de recibir las siguientes funciones del maestro:

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

Los registros implados en el esclavo son:

  1. Direccionamiento MODBUS (16 бит)
  2. Скорость передачи (16 бит)
  3. Medición de la temperatura (16 бит)
  4. Битовая ошибка (1 бит)
  5. Бит выбора (1 бит) C o F
  6. Nivel máximo de medición (16 бит)
  7. Nivel minimo de medición (16 бит)

Запасы

  • LabVIEW
  • Малина Pi 3
  • АЦП MCP3008
  • 1 Potenciometro
  • Джемперы
  • FTDI (FT232RL)
  • Протоборд

Шаг 1: схемы

Схемы
Схемы

Circuito MCP3008 и Frambuesa Pi

Conexión Raspberry Pi 3 и FTDI:

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

Шаг 2: Esclavo MODBUS на Raspberry Pi 3B

Como primer pazo necesitas configurar e instalar tu sistema operativo en tu Raspberry Pi 3B. Sugiero instalar NOOBS desde la pagina oficial. Выполните настройку Raspberry Pi 3B для использования серийного порта и порта SPI.

(Персональный пользовательский интерфейс, использующий VNC Viewer для активного использования VNC-сервера)

Первоначальная доблесть ADC представляет собой среднюю температуру датчика, установленную в градусах Цельсия, и показывает, что немного от селекционера, и 1 эта доблесть, которая проходит в градус по Фаренгейту.

Ya sabiendo todo esto, el esclavo MODBUS se realizó con Python haciendo uso de la librería Pyserial. Для моделирования трансмиссора, который работает с 4 списками:

  1. Катушки
  2. Входные регистры
  3. Регистры хранения
  4. Дискретные входы

Cada lista se hizo de 6 elementos. Краткое описание элементов списка кадров:

  • coils_lista [0] = bit de selección (si está en 0 значимый que la unidad de medición es en Celsius caso contrario unidad de medición en Fahrenheit)
  • дискретный_вход [0] = бит ошибки (este bit se enciende cuando el valor de temperatura esta fuera del rango establecido entre temperatura máxima y minima)
  • inputRegister_lista [0] = Valor del ADC (датчик температуры, симулирующий для потенциометра) зависит от достоинства бита выбора.
  • holdingRegister_lista [0] = dirección de esclavo
  • holdingRegister_lista [1] = максимальная температура
  • holdingRegister_lista [2] = доблесть минимальной температуры
  • holdingRegister_lista [3] = velocidad de transmisión.

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

  • Доблесть максимальной температуры 500 по Цельсию
  • Valor de temperatura minima 200 по Цельсию
  • Начальная скорость 9600
  • Dirección de esclavo 1
  • Unidad de medición inicial en Celsius.

La lógica aplicada es la siguiente:

En primer lugar se buscó leer 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 un código de excepción 3, seguido de validar si el maestro pedía una dirección excepción cino implementation 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 Impleadas.

Para ultimo paso en cada función create una 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 righto pero si lo hice para el mensaje enviado al maestro. La función de CRC la Adapte a mi código usando este link CRC MODBUS

Калькулятор CRC

Códigos de excepción MODBUS

Шаг 3: Maestro LabVIEW (HMI)

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

Создайте маэстро, который может создать новую систему управления, для того, чтобы использовать конечный результат для использования в лаборатории, используя MODBUS.

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

  • в этом
  • conectar: aquí está el API de Crear un nuevo maestro modbus con la opción habilitada de SERIAL.
  • escribir: aquí se utiliza la funcion запись одиночный регистр хранения y запись одиночной катушки
  • leer: Aquí se configuran los registros y coils de importancia para la lectura del maestro.

Шаг 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

Continuación Explicare detalladamente la configuración en cada opción:

конектар:

Этот API-интерфейс, созданный новым маэстро MODBUS, выбирает опцию «New Serial Master», задайте элементы управления для настройки:

  • Скорость
  • Паритет
  • Последовательный порт (ресурс Visa)
  • Последовательный тип (RTU)
  • ID del esclavo.

escribir:

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 queue ya sabia de antemesano inform а ля ку эль маэстро Accedería. Por lo que las funciones utilizadas fueron:

  • Написать одиночную катушку
  • Запишите единый регистр хранения.

ухмылка:

Только меня интересует лекция битов ошибок и входной регистр, связанный с примерами переменных.

Las funciones utilizadas fueron:

  • Чтение входного регистра
  • Прочтите катушки.

Шаг 5: Передняя панель

Передняя панель
Передняя панель

Фронтальная панель в labVIEW se trató lo mejor posible que fuera amigable para el usuario final. Por lo que se realizó lo siguiente:

Установите DMC GUI Suite для labVIEW, чтобы настроить основные элементы управления и индикаторы.

2 термометра (1 для индикации температуры в градусах Цельсия и для индикации температуры в градусах Фаренгейта).

Ботон «Предупреждение», который обнаруживает ошибку, обнаруживает ошибку.

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 invalido.

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 зависимость от функции выбора MODBUS)

Шаг 6: архивирование Python

В архиве реализован режим MODBUS (Transmisor de temperatura) с архивным ADC для переменных интерфейсов датчика температуры (Simulado en el canal 0 con un Potenciometro).

Me quedo pendiente apply las Funciones 15 y 16.

Шаг 7: HMI

Главный Modbus RTU

Этот маэстро реализовал в labVIEW. Hay cosas para mejorar, por ejemplo no pude corregir un error al conectar al primer intento, research y no encontré una solución para aplicarla.

Шаг 8: финальный результат

Эсперо использует пользовательские интерфейсы как основной компонент связи по Modbus RTU и реализует его в labVIEW.

Рекомендуемые: