Публичные функции библиотеки
More...
Публичные функции библиотеки
Объединяющий файл для подключения всей функциональности Modbus. Подключает все необходимые модули:
Инструкция по подключению
Для корректной работы надо:
- Подключить обработчики RS_UART_Handler(), RS_TIM_Handler(), в соответствубщие низкоуровневые прерывания UART_IRQHandler, TIM_IRQHandler вместо HAL'овского обработчика
- В modbus_config.h настроить дефайны для нужной работы UART
- Инициализировать хендл мобдас. По умолчанию глобально создается hmodbus1
- После для запуска Modbus:
#define MODBUS_TIMEOUT
Таймаут в тиках таймера
#define MODBUS_DEVICE_ID
Адрес устройства в сети Modbus.
HAL_StatusTypeDef MODBUS_Config(RS_HandleTypeDef *hmodbus, uint8_t ID, uint16_t Timeout, uint8_t master)
Программная конфигурация модбас.
HAL_StatusTypeDef MODBUS_SlaveStart(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_msg)
Запуск слейв модбас.
HAL_StatusTypeDef MODBUS_FirstInit(RS_HandleTypeDef *hmodbus, UART_HandleTypeDef *huart, TIM_HandleTypeDef *htim)
Инициализация периферии модбас.
#define MODBUS_MODE_SLAVE
Псевдо-enum: Режим слейв
RS_HandleTypeDef hmodbus1
Default Handle for Modbus.
Главный заголовочный файл Modbus библиотеки
{
{
{
uint16_t value;
{
read_hold[i] = value;
}
}
}
}
HAL_StatusTypeDef MODBUS_MasterRequest(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_msg, void(*pClbk)(RS_HandleTypeDef *, RS_MsgTypeDef *))
Реквест мастера модбас.
#define MODBUS_MODE_MASTER
Псевдо-enum: Режим мастер
RS_MsgTypeDef MODBUS_MSG
Default Message Struct for Modbus.
int MB_RespGet_RegisterValue(RS_MsgTypeDef *modbus_msg, uint16_t reg_addr, uint16_t *reg_value)
Получить значение регистра в ответе по его адресу
RS_MsgTypeDef MB_REQUEST_READ_HOLDING_REGS(uint8_t slave_addr, uint16_t start_addr, uint16_t quantity)
Сформировать запрос на чтение холдинг регистров
Handle for RS communication.
RS_StatusTypeDef RS_STATUS
Статус RS.
Structure for modbus messsage.
Подключаемые модули:
Структура данных Modbus
Holding/Input Registers:
- Регистры — 16-битные слова. Доступ к регистрам осуществляется через указатель.
Таким образом, сами регистры могут представлять собой как массив так и структуру.
Coils:
- Coils — это биты, упакованные в 16-битные слова. Доступ к коилам осуществляется через указатель.
Таким образом, сами коилы могут представлять собой как массив так и структуру.
◆ MODBUS_MODE_MASTER
| #define MODBUS_MODE_MASTER 1 |
Псевдо-enum: Режим мастер
Definition at line 113 of file modbus.h.
◆ MODBUS_MODE_SLAVE
| #define MODBUS_MODE_SLAVE 0 |
Псевдо-enum: Режим слейв
Definition at line 117 of file modbus.h.
◆ MODBUS_FirstInit()
| HAL_StatusTypeDef MODBUS_FirstInit |
( |
RS_HandleTypeDef * | hmodbus, |
|
|
UART_HandleTypeDef * | huart, |
|
|
TIM_HandleTypeDef * | htim ) |
Инициализация периферии модбас.
- Parameters
-
| hmodbus | Указатель на хендлер RS |
| huart | Указатель на хендлер UART |
| htim | Указатель на хендлер TIM |
Подключает хендлы периферии к hmodbus Конфигурация выставляется по умолчанию из modbus_config.h
Definition at line 42 of file modbus.c.
◆ MODBUS_Config()
| HAL_StatusTypeDef MODBUS_Config |
( |
RS_HandleTypeDef * | hmodbus, |
|
|
uint8_t | ID, |
|
|
uint16_t | Timeout, |
|
|
uint8_t | master ) |
Программная конфигурация модбас.
- Parameters
-
| hmodbus | указатель на хендлер RS |
| Timeout | Время тишины между двумя байтами после которых перезапускается прием |
| master | Режим мастер (пока не сделан) |
Конфигурирует ID, таймаут и режим hmodbus
Definition at line 72 of file modbus.c.
◆ MODBUS_SlaveStart()
Запуск слейв модбас.
- Parameters
-
| hmodbus | Указатель на хендлер RS. |
| modbus_msg | Указатель на структуру сообщения. (NULL чтобы использовать дефолтную) |
Конфигурирует ID, таймаут и режим hmodbus
Definition at line 105 of file modbus.c.
◆ MODBUS_MasterRequest()
Реквест мастера модбас.
- Parameters
-
| hmodbus | Указатель на хендлер RS. |
| modbus_msg | Указатель на структуру сообщения |
Конфигурирует ID, таймаут и режим hmodbus
Definition at line 136 of file modbus.c.