65 lines
2.5 KiB
C
65 lines
2.5 KiB
C
/**
|
||
*******************************************************************************
|
||
* @file modbus_holdregs.h
|
||
* @brief Работа с регистрами хранения Modbus
|
||
*******************************************************************************
|
||
@addtogroup MODBUS_INS Input Register Tools
|
||
@ingroup MODBUS_INTERNAL
|
||
@brief Функции для работы с входными регистрами
|
||
*******************************************************************************
|
||
* @details
|
||
Модуль для доступа к регистрам внутри программы:
|
||
- Функции для доступа к регистрам хранения по глобальным адресам
|
||
|
||
Модуль обработки команд для регистров хранения (Holding Registers):
|
||
- Чтение множества регистров (0x03)
|
||
- Запись одиночного регистра (0x06)
|
||
- Запись множества регистров (0x10)
|
||
|
||
@section hold Регистры хранения:
|
||
- Read/Write доступ
|
||
- 16-битные значения (uint16_t)
|
||
******************************************************************************/
|
||
#ifndef __MODBUS_HOLDREGS_H_
|
||
#define __MODBUS_HOLDREGS_H_
|
||
#include "modbus_core.h"
|
||
#ifdef MODBUS_ENABLE_HOLDINGS
|
||
|
||
/////////////////////////////////////////////////////////////////////
|
||
/////////////////////////---FUNCTIONS---/////////////////////////////
|
||
|
||
/**
|
||
* @addtogroup MODBUS_DATA_ACCESS_FUNCTIONS
|
||
* @{
|
||
*/
|
||
|
||
/* Записать регистр хранения по глобальному адресу. */
|
||
MB_ExceptionTypeDef MB_Holding_Write_Global(uint16_t Addr, uint16_t WriteVal);
|
||
/* Считать регистр хранения по глобальному адресу. */
|
||
uint16_t MB_Holding_Read_Global(uint16_t Addr, MB_ExceptionTypeDef *Exception);
|
||
|
||
/** MODBUS_DATA_ACCESS_FUNCTIONS
|
||
* @}
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* @addtogroup MODBUS_CMD_PROCESS_FUNCTIONS
|
||
* @{
|
||
*/
|
||
/* Обработать функцию Read Holding Registers (03 - 0x03) */
|
||
uint8_t MB_Process_Read_Hold_Regs(RS_MsgTypeDef *modbus_msg);
|
||
/* Обработать функцию Write Single Coils (06 - 0x06) */
|
||
uint8_t MB_Process_Write_Single_Reg(RS_MsgTypeDef *modbus_msg);
|
||
/* Обработать функцию Write Multiple Register (16 - 0x10) */
|
||
uint8_t MB_Process_Write_Miltuple_Regs(RS_MsgTypeDef *modbus_msg);
|
||
|
||
/** MODBUS_CMD_PROCESS_FUNCTIONS
|
||
* @}
|
||
*/
|
||
/////////////////////////---FUNCTIONS---/////////////////////////////
|
||
|
||
#endif //MODBUS_ENABLE_HOLDINGS
|
||
#endif //__MODBUS_HOLDREGS_H_
|