
Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 12:57

ПОСТАВИ ESCRITO EN ESPAÑOL
Едновременно с трансмизора на веригата за температура, елементарен първичен (сензор) Fue внедряване на медианата и потенциометровата ел. Променлива ел. Напрежение на ентрада. За допълнителна информация от сензора (Elemento Secundario), който е изпълнен от протокола MODBUS RTU, средно от пуерто серийно, изчислява се като маестро.
Como maestro се разработва в програма en labVIEW, която ви позволява да използвате MODBUS que ya implementa. El esclavo es capaz de recibir las siguientes funciones del maestro:
- Функция 0X01
- Функция 0x02
- Функция 0x03
- Функция 0x04
- Функция 0x05
- Функция 0x06
Los registros implementados en el esclavo son:
- Дирекционен режим MODBUS (16 бита)
- Velocidad de transmisión (16 бита)
- Medición de la temperature (16 бита)
- Грешка в бита (1 бит)
- Бит за избор (1 бит) C o F
- Nivel máximo de medición (16 бита)
- Nivel mínimo de medición (16 бита)
Консумативи
- LabVIEW
- Малина Пи 3
- ADC MCP3008
- 1 Потенциометър
- Джъмпери
- FTDI (FT232RL)
- Protoboard
Стъпка 1: Circuitos

Circuito MCP3008 y Frambuesa Pi
Conexión Raspberry Pi 3 y FTDI:
- GND a GND
- TX и RX
- RX и TX
Стъпка 2: Esclavo MODBUS En Raspberry Pi 3B
Como груповият pazo necesitas конфигуратор и инсталацията на операционната система на Raspberry Pi 3B. Предлагам инсталационни NOOBS от официалната страница. Luego конфигурира Raspberry Pi 3B за подер, използващ пуерто сериен и пуерто SPI.
(Personalmente yo me conectó a mi raspi utilizando VNC Viewer para ello hay que activar el servidor VNC de la raspi)
Originalmente el valor del ADC представлява que la temperature medida por el sensor esta en grados Celsius y al estar el bit de selección en 1 este valor se pasa a grados Fahrenheit.
Ya sabiendo todo esto, el esclavo MODBUS се реализира с Python haciendo uso de la librería Pyserial. Para la simulación del transmisor se trabajo con 4 списъка:
- Бобини
- Входни регистри
- Водене на регистри
- Дискретни входове
Списъкът с данни е 6 елемента. Breve description de los elementos de cada list:
- 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)
- discrete_input [0] = бит де грешка (este bit se enciende cuando el valor de temperature esta fuera del rango establecido entre температура máxima y minima)
- inputRegister_lista [0] = Valor del ADC (сензор за температура симулатор с потенциал за измерване) зависи от del valor de bit de selección.
- holdingRegister_lista [0] = dirección de esclavo
- holdingRegister_lista [1] = максимална стойност на температурата
- holdingRegister_lista [2] = valor de temperature mínimo
- holdingRegister_lista [3] = velocidad de transmisión.
El esclavo MODBUS лична лична cuenta con ciertos parámetros iniciales como lo son:
- Температура на доблест от 500 градуса по Целзий
- Минимална температура 200 градуса по Целзий
- Баудритет inicial de 9600
- Дирекция на есклаво 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 mediaante 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 gener un código de excepción 3, seguido de validar si el maestro pedía una dirección implementada sino gener un código 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 ultimo paso en cada función crear 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 correcto pero si lo hice para el mensaje enviado al maestro. Функцията за CRC е адаптирана към потребителя, използвайки връзката CRC MODBUS
CRC калкулатор
Códigos de excepción MODBUS
Стъпка 3: Maestro LabVIEW (HMI)


La creación de un maestro que fuera de cierta manera amigable para un usuario final fue hecha por medio de labVIEW y su 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:
- в него
- 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í се конфигурира los registros y coils de importancia para la lectura del maestro.
Стъпка 4: Máquina De Estados



непрекъснато обяснение подробни подробности за конфигуриране и када опция:
conectar:
Използвайте API, за да създадете нов маестро MODBUS, изберете опцията "New Serial Master", можете да създадете контролери за конфигуриране:
- Baudrate
- Паритет
- Сериен порт (Visa Resource)
- Сериен тип (RTU)
- ID del esclavo.
escribir:
En escribir solo me interestba 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 quón direcocio a la que el maestro accedería. Por lo que las funciones utilizadas fueron:
- Напишете единична намотка
- Напишете единен регистър на холдинга.
Лиър:
En leer solo me interestba la lectura del bit de error y el input register asociado a mi variable primaria.
Las funciones utilizadas fueron:
- Прочетете входящия регистър
- Четете бобини.
Стъпка 5: Преден панел

El panel frontal en labVIEW се търси lo mejor posible que fuera amigable para el usuario final. Por lo que се реализира lo siguiente:
Инсталирайте DMC GUI Suite за labVIEW за най -големите проблеми с контрола и индикаторите.
2 терминометра (1 пара показател за температура по Целзий и отро за индикатор за температура по Фаренхайт).
Botón "Warning" que únicamente se enciende cuando el bit de error está encendido.
Botón para editar los rangos de temperature a medir (para que únicamente haga el cambio al registerro cuando se es presionado el botón) caso contrario siempre los estuviera modificando 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 boton para "Excepciones" (Para que genere una excepción dependiendo de la función MODBUS seleccionada)
Стъпка 6: Archivos Python
Архивът се прилага с помощта на MODBUS (Transmisor de temperature) с ADC за архивиране на паралела с променлива температура на сензора за температура (Simulado en el channel 0 con un potenciometro).
Извърши ме като изпълнител на funciones 15 и 16.
Стъпка 7: HMI
Master Modbus RTU
Este es el maestro implementado en labVIEW. Hay cosas para mejorar, por ejemplo no pude corregir un error al conectar al primer intento, разследвайте y no encontré una solución para aplicarla.
Стъпка 8: Резултат финал
Espero ayudar a algunas олицетворява компресиращ mejor la comunicación modbus RTU y una implementación en labVIEW.
Препоръчано:
Индустриален HMI и Arduinos в MODBUS RTU: 4 стъпки

Индустриален HMI и Arduinos в MODBUS RTU: В тази инструкция ще опиша пример за комуникация между индустриален HMI (COOLMAY MT6070H, 150EUROS), Arduino CLONE DIY (10EUROS) и Arduino UNO (10EUROS). Мрежата ще работи по специален и здрав и индустриален протокол
Digistump и Modbus RTU: 6 стъпки

Digistump и Modbus RTU: Тези, които са видели инструкциите ми за комуникация между Modbus RTU и Raspberry Pi, знаят, че планирам проект за автоматизиране на оранжерия. Направих 2 малки печатни платки, които могат да се поставят в кутия за проекти. Връзката към печатните платки ще включвам
Modbus TCP комуникация между Arduino и индустриални устройства: 3 стъпки

Modbus TCP комуникация между Arduino и индустриални устройства: Индустриален начин за управление на Arduino платка с индустриален HMI и свързване към индустриална мрежа с Modbus TCP комуникация
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 термостат с докосване: Ще ви покажа в тази инструкция как да направите добре изглеждащ термостат със сензорен екран с допълнителна поддръжка за Modbus чрез RS485 с ArduiTouch ESP и ESP8266 (NodeMCU или Wemos D1 Mini)