Mục lục:
- Quân nhu
- Bước 1: Circuitos
- Bước 2: Esclavo MODBUS En Raspberry Pi 3B
- Bước 3: Maestro LabVIEW (HMI)
- Bước 4: Máquina De Estados
- Bước 5: Bảng điều khiển phía trước
- Bước 6: Archivos Python
- Bước 7: HMI
- Bước 8: Kết quả cuối cùng
Video: Simulación Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): 8 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
ĐĂNG ESCRITO EN ESPAÑOL
Se simuló un circuito transmisor de temperatura, el elemento primario (Cảm biến) fue implementado mediante un potenciometro el cual varia el voltaje de entrada. Para enviar la Información del sensor (Elemento Secundario), si implementó el protocolo MODBUS RTU, por medio de un puerto serial hacia una computadora que será el maestro.
Como maestro se elaboró un programme en labVIEW haciendo uso de la librería MODBUS que ya implementa. El esclavo es capaz de Recogbir las siguientes funciones del maestro:
- Función 0X01
- Función 0x02
- Función 0x03
- Función 0x04
- Función 0x05
- Función 0x06
Los registerros implementados en el esclavo son:
- Direccionamiento MODBUS (16 bit)
- Velocidad de transmisión (16 bit)
- Medición de la temperatura (16 bit)
- Lỗi bit de (1 bit)
- Bit de selección (1 bit) C o F
- Nivel máximo de medición (16 bit)
- Nivel mínimo de medición (16 bit)
Quân nhu
- LabVIEW
- Raspberry Pi 3
- ADC MCP3008
- 1 Potenciometro
- Người nhảy
- FTDI (FT232RL)
- Protoboard
Bước 1: Circuitos
Circuito MCP3008 y Frambuesa Pi
Conexión Raspberry Pi 3 y FTDI:
- GND một GND
- TX a RX
- RX a TX
Bước 2: Esclavo MODBUS En Raspberry Pi 3B
Como primer pazo necesitas configurar e instalar tu sistema operativo en tu Raspberry Pi 3B. Sugiero instalar NOOBS desde la pagina of Justice. Luego configurar tu Raspberry Pi 3B para poder usingizar el puerto serial y puerto SPI.
(Personalmente yo me conectó a mi raspi useizando VNC Viewer para ello hay que activar el servidor VNC de la raspi)
Originalmente el valor del ADCresenta que la temperatura medida por el sensor esta en grados Celsius y al estar el bit de selección en 1 este valor se pasa a grados F.
Ya sabiendo todo esto, el esclavo MODBUS se realizó con Python haciendo uso de la librería Pyserial. Para la simulación del transmisor se trabajo con 4 listas:
- Cuộn dây
- Đăng ký đầu vào
- Đang nắm giữ sổ đăng ký
- Đầu vào rời rạc
Cada lista se hizo de 6 elementos. Breve descripción de los elementos de cada lista:
- coils_lista [0] = bit de selección (si está en 0 Nghia la que la unidad de medición es en Celsius caso contrario unidad de medición en Fahrenheit)
- discrete_input [0] = bit de error (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 (sensor de temperatura simulado por un potenciometro) dependiendo del valor de bit de selección.
- holdRegister_lista [0] = dirección de esclavo
- holdRegister_lista [1] = valor de temperatura máxima
- holdRegister_lista [2] = valor de temperatura mínimo
- holdRegister_lista [3] = velocidad de transmisión.
El esclavo MODBUS một quyết định cá nhân cuenta con ciertos parámetros iniciales como lo son:
- Valor de temperatura máxima 500 độ C
- Valor de temperatura mínima 200 độ C
- Baudrate inicial de 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 exada sino generar un código 2 y por ultimo realizar la directionucció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 una por una 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. La función de CRC la adapte a mi código usando liên kết este CRC MODBUS
Máy tính CRC
Códigos de excepción MODBUS
Bước 3: Maestro LabVIEW (HMI)
La creación de un maestro que fuera de cierta manra amigable para un usuario final fue hecha por medio de labVIEW y su librería MODBUS la cual seekaba la creación de un maestro MODBUS RTU.
Se elaboró una maquina de estados en labVIEW con las siguientes opciones:
- trong đó
- nónctar: aquí está el API de crear un nuevo maestro modbus con la opción habilitada de SERIAL.
- escripir: aquí se useiza la funcion viết thanh ghi giữ đơn y viết cuộn dây đơn
- leer: aquí se configuran los registerros y coils de importancia para la lectura del maestro.
Bước 4: Máquina De Estados
Continación explicare detalladamente la configuración en cada opción:
hình nón:
Se usedizó el API de crear un nuevo maestro MODBUS seleccionando la opción de "New Serial Master", se crearon điều khiển para configurar:
- Tốc độ truyền
- Ngang bằng
- Cổng nối tiếp (Nguồn Visa)
- Loại nối tiếp (RTU)
- ID del esclavo.
escribeir:
En escripir solo meprissaba 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 encontraba encontrab seaci a la que el maestro accedería. Por lo que las funciones usedizadas fueron:
- Viết cuộn dây đơn
- Viết Đăng ký giữ đơn.
cho vay:
En leer solo meprissaba la lectura del bit de error y el input register asociado a primaria biến mi.
Las funciones useizadas fueron:
- Đọc thanh ghi đầu vào
- Đọc cuộn dây.
Bước 5: Bảng điều khiển phía trước
El panel frontal en labVIEW se trató lo mejor posible que fuera amigable para el usuario final. Por lo que se realizó lo siguiente:
Se instaló DMC GUI Suite para labVIEW para tener un mejor disño en cuanto a controlles e indicadores.
2 termómetros (1 para indicar la temperatura en Celsius y otro para indicar la temperatura en Fahrenheit).
Botón "Cảnh báo" que únicamente se enciende cuando el bit de error está encendido.
Botón para editar los rangos de temperatura 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 sai.
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 botón para "Excepciones" (Para que genere una excepción dependiendo de la función MODBUS seleccionada)
Bước 6: Archivos Python
En estos archivos está implementado el esclavo MODBUS (Transmisor de temperatura) junto con el archivo ADC para leer la variable de interés del sensor de temperatura (Simulado en el channel 0 con un potenciometro).
Me quedo Rowiente implementar las funciones 15 y 16.
Bước 7: HMI
Master Modbus RTU
Este es el maestro implementado en labVIEW. Hay cosas para mejorar, bởi ejemplo no pude Corregir un error al conectar al primer Ý định, điều tra y no encontré una solución para aplicarla.
Bước 8: Kết quả cuối cùng
Espero ayudar a algunas personas a comprender mejor la comunicación modbus RTU y una implementación en labVIEW.
Đề xuất:
HMI và Arduinos công nghiệp trong MODBUS RTU: 4 bước
HMI công nghiệp và Arduinos trong MODBUS RTU: Trong hướng dẫn này, tôi sẽ mô tả một ví dụ về giao tiếp giữa HMI công nghiệp (COOLMAY MT6070H, 150EUROS), Arduino CLONE DIY (10EUROS) và Arduino UNO (10EUROS). Mạng sẽ chạy theo một quy trình đặc biệt, mạnh mẽ và công nghiệp
Digistump và Modbus RTU: 6 bước
Digistump và Modbus RTU: Những người đã xem tài liệu hướng dẫn của tôi về giao tiếp giữa Modbus RTU và Raspberry Pi đều biết rằng tôi đang lên kế hoạch cho một dự án tự động hóa nhà kính. Tôi đã tạo ra 2 PCB nhỏ có thể được đặt bên trong một hộp dự án. Liên kết đến PCB của tôi sẽ bao gồm
Giao tiếp Modbus TCP giữa Arduino và các thiết bị công nghiệp: 3 bước
Giao tiếp Modbus TCP giữa Arduino và các thiết bị công nghiệp: Một cách công nghiệp để điều khiển bảng Arduino với HMI công nghiệp và liên kết nó với mạng công nghiệp bằng giao tiếp Modbus TCP
Construcción De Un Transmisor De Audio Por Laser: 3 bước
Construcción De Un Transmisor De Audio Por Laser: Construcci ó n de un transmisor de audio con laser
ESP32 Modbus Master TCP: 7 bước
ESP32 Modbus Master TCP: Trong lớp này, bạn sẽ lập trình bộ xử lý ESP32 thành Modbus TCP Master. Chúng ta sẽ sử dụng hai thiết bị chứa bộ xử lý này: Moduino ESP32 và Pycom. Cả hai thiết bị đều đang chạy trong môi trường MicroPytthon. Modbus Slave của chúng tôi sẽ là máy tính PC với M