RCM — ESP32 Room Controller
WT32-ETH01 firmware
Loading...
Searching...
No Matches
modbus_app.c File Reference

Modbus RTU master: опрос slave 7, регистр 1000, публикация в MQTT. More...

#include "modbus_app.h"
#include <stdbool.h>
#include <stdio.h>
#include "driver/uart.h"
#include "esp_check.h"
#include "esp_err.h"
#include "esp_log.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "mbcontroller.h"
#include "mqtt_app.h"

Go to the source code of this file.

Macros

#define MB_UART_PORT   UART_NUM_1
 UART для RS485.
 
#define MB_UART_TXD_GPIO   17
 Пины RS485-трансивера
 
#define MB_UART_RXD_GPIO   5
 
#define MB_UART_RTS_GPIO   33
 
#define MB_UART_BAUD_RATE   9600
 Параметры линии: 9600 8N1.
 
#define MB_SLAVE_ADDR   7
 Адрес Modbus-устройства на шине
 
#define MB_HOLD_REG_ADDR   1000
 Адрес holding-регистра
 
#define MB_CMD_READ_HOLDING_REGISTER   3
 Код функции Modbus: Read Holding Registers (0x03)
 
#define MB_POLL_INTERVAL_MS   5000
 Интервал опроса, мс
 

Functions

static esp_err_t modbus_master_init (void)
 Инициализация Modbus RTU master на UART с режимом RS485.
 
static void modbus_poll_task (void *arg)
 Задача периодического чтения регистра 1000 и публикации в MQTT.
 
esp_err_t modbus_app_start (void)
 Инициализирует Modbus master и запускает задачу опроса шины.
 

Variables

static const char * TAG = "modbus_app"
 
static void * s_master_handle
 

Detailed Description

Modbus RTU master: опрос slave 7, регистр 1000, публикация в MQTT.

Definition in file modbus_app.c.

Macro Definition Documentation

◆ MB_CMD_READ_HOLDING_REGISTER

#define MB_CMD_READ_HOLDING_REGISTER   3

Код функции Modbus: Read Holding Registers (0x03)

Definition at line 40 of file modbus_app.c.

◆ MB_HOLD_REG_ADDR

#define MB_HOLD_REG_ADDR   1000

Адрес holding-регистра

Definition at line 37 of file modbus_app.c.

Referenced by modbus_poll_task().

◆ MB_POLL_INTERVAL_MS

#define MB_POLL_INTERVAL_MS   5000

Интервал опроса, мс

Definition at line 43 of file modbus_app.c.

Referenced by modbus_poll_task().

◆ MB_SLAVE_ADDR

#define MB_SLAVE_ADDR   7

Адрес Modbus-устройства на шине

Definition at line 34 of file modbus_app.c.

Referenced by modbus_master_init(), and modbus_poll_task().

◆ MB_UART_BAUD_RATE

#define MB_UART_BAUD_RATE   9600

Параметры линии: 9600 8N1.

Definition at line 31 of file modbus_app.c.

Referenced by modbus_master_init().

◆ MB_UART_PORT

#define MB_UART_PORT   UART_NUM_1

UART для RS485.

Definition at line 23 of file modbus_app.c.

Referenced by modbus_master_init().

◆ MB_UART_RTS_GPIO

#define MB_UART_RTS_GPIO   33

Definition at line 28 of file modbus_app.c.

Referenced by modbus_master_init().

◆ MB_UART_RXD_GPIO

#define MB_UART_RXD_GPIO   5

Definition at line 27 of file modbus_app.c.

Referenced by modbus_master_init().

◆ MB_UART_TXD_GPIO

#define MB_UART_TXD_GPIO   17

Пины RS485-трансивера

Definition at line 26 of file modbus_app.c.

Referenced by modbus_master_init().

Function Documentation

◆ modbus_app_start()

esp_err_t modbus_app_start ( void )

Инициализирует Modbus master и запускает задачу опроса шины.

Returns
ESP_OK при успешной инициализации.

Definition at line 121 of file modbus_app.c.

References modbus_master_init(), modbus_poll_task(), and TAG.

Referenced by app_main().

◆ modbus_master_init()

static esp_err_t modbus_master_init ( void )
static

Инициализация Modbus RTU master на UART с режимом RS485.

Definition at line 50 of file modbus_app.c.

References MB_SLAVE_ADDR, MB_UART_BAUD_RATE, MB_UART_PORT, MB_UART_RTS_GPIO, MB_UART_RXD_GPIO, MB_UART_TXD_GPIO, s_master_handle, and TAG.

Referenced by modbus_app_start().

◆ modbus_poll_task()

static void modbus_poll_task ( void * arg)
static

Задача периодического чтения регистра 1000 и публикации в MQTT.

Definition at line 86 of file modbus_app.c.

References MB_HOLD_REG_ADDR, MB_POLL_INTERVAL_MS, MB_SLAVE_ADDR, mqtt_app_get_client_id(), mqtt_app_publish(), and TAG.

Referenced by modbus_app_start().

Variable Documentation

◆ s_master_handle

void* s_master_handle
static

Definition at line 45 of file modbus_app.c.

Referenced by modbus_master_init().

◆ TAG

const char* TAG = "modbus_app"
static

Definition at line 20 of file modbus_app.c.

Referenced by modbus_app_start(), modbus_master_init(), and modbus_poll_task().