Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:04
POST ESCRITO EN ESPAÑOL
Он симулирует схему преобразователя температуры, первичный элемент (датчик), который реализует медианный потенциометр элек- трического изменения напряжения энтрада. Для получения информации о датчике (Elemento Secundario), в котором реализован протокол MODBUS RTU, можно использовать последовательный порт для вычислений, который находится на уровне маэстро.
Этот маэстро занимается разработкой программы в LabVIEW, использующей библиотеку MODBUS, которую вы реализуете. El esclavo es capaz de recibir las siguientes funciones del maestro:
- Función 0X01
- Función 0x02
- Función 0x03
- Función 0x04
- Función 0x05
- Función 0x06
Los registros implados en el esclavo son:
- Direccionamiento MODBUS (16 бит)
- Скорость передачи (16 бит)
- Medición de la temperatura (16 бит)
- Битовая ошибка (1 бит)
- Бит выбора (1 бит) C o F
- Nivel máximo de medición (16 бит)
- 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:
- GND a GND
- TX RX
- 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 списками:
- Катушки
- Входные регистры
- Регистры хранения
- Дискретные входы
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)
Создайте маэстро, который может создать новую систему управления, для того, чтобы использовать конечный результат для использования в лаборатории, используя 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
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.
Рекомендуемые:
Промышленный HMI и Arduinos в MODBUS RTU: 4 шага
Промышленный HMI и Arduinos в MODBUS RTU: в этом руководстве я опишу пример связи между промышленным HMI (COOLMAY MT6070H, 150 евро), Arduino CLONE DIY (10 евро) и Arduino UNO (10 евро). Сеть будет работать под особым и надежным промышленным прототипом
Digistump и Modbus RTU: 6 шагов
Digistump и Modbus RTU: Те, кто видел мои инструкции по связи между Modbus RTU и Raspberry Pi, знают, что я планирую проект по автоматизации теплицы. Я сделал 2 небольших печатных платы, которые можно поместить в коробку с проектами. Ссылку на печатную плату я буду включать
ESP32 Modbus Master TCP: 7 шагов
ESP32 Modbus Master TCP: в этом классе вы запрограммируете процессор ESP32 как Modbus TCP Master. Мы будем использовать два устройства, которые содержат этот процессор: Moduino ESP32 и Pycom. Оба устройства работают в среде MicroPytthon. Наш Modbus Slave будет ПК с M
ESP8266 Modbus термостат с сенсорным экраном: 5 шагов
ESP8266 Modbus Thermostat With Touch: в этой инструкции я покажу вам, как сделать красивый термостат с сенсорным экраном с дополнительной поддержкой Modbus через RS485 с ArduiTouch ESP и ESP8266 (NodeMCU или Wemos D1 Mini)
Измеритель PZEM-004 + ESP8266 и платформа IoT Node-RED и Modbus TCP / IP: 7 шагов
Измеритель PZEM-004 + ESP8266 и платформа IoT Node-RED и Modbus TCP / IP: в этой возможности мы интегрируем наш измеритель активной мощности или потребления электроэнергии Pzem-004 - Peacefair с платформой интеграции IoT Node-RED, использованной в предыдущих руководствах, мы будем использовать модуль ESP8266, настроенный как ведомое устройство Modbus TCP / IP, позже