notjob
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
/**
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file modbus_data.h
|
||||
* @brief Заголовочный файл с описанием даты MODBUS.
|
||||
* @details Данный файл необходимо подключается в rs_message.h. После rs_message.h
|
||||
* @details Данный файл необходимо подключается в rs_message.h. После rs_message.h
|
||||
* подключается к основному проекту.
|
||||
*
|
||||
*
|
||||
* @defgroup MODBUS_DATA
|
||||
* @ingroup MODBUS
|
||||
* @brief Modbus data description
|
||||
@@ -19,16 +19,16 @@
|
||||
|
||||
|
||||
// DEFINES FOR INPUT REGISTERS ARRAYS
|
||||
#define R_INPUT_ADDR 0
|
||||
#define R_INPUT_QNT 2000
|
||||
#define R_INPUT_ADDR 0
|
||||
#define R_INPUT_QNT 2000
|
||||
|
||||
// DEFINES FOR HOLDING REGISTERS ARRAYS
|
||||
#define R_HOLDING_ADDR 0
|
||||
#define R_HOLDING_QNT 2000
|
||||
#define R_HOLDING_ADDR 0
|
||||
#define R_HOLDING_QNT 2000
|
||||
|
||||
// DEFINES FOR COIL ARRAYS
|
||||
#define C_CONTROL_ADDR 0
|
||||
#define C_CONTROL_QNT 1000
|
||||
#define C_CONTROL_ADDR 0
|
||||
#define C_CONTROL_QNT 1000
|
||||
|
||||
|
||||
|
||||
@@ -39,42 +39,42 @@
|
||||
|
||||
//--------------DEFINES FOR REGISTERS---------------
|
||||
// DEFINES FOR ARRAYS
|
||||
/**
|
||||
/**
|
||||
* @addtogroup MODBUS_DATA_RERISTERS_DEFINES
|
||||
* @ingroup MODBUS_DATA
|
||||
* @brief Defines for registers
|
||||
Структура дефайна адресов
|
||||
@verbatim
|
||||
@verbatim
|
||||
Для массивов регистров:
|
||||
R_<NAME_ARRAY>_ADDR - модбас адресс первого регистра в массиве
|
||||
R_<NAME_ARRAY>_QNT - количество регистров в массиве
|
||||
|
||||
|
||||
При добавлении новых массивов регистров, необходимо их добавить в функцию MB_DefineRegistersAddress
|
||||
|
||||
if(MB_Check_Address_For_Arr(Addr, Qnt, R_<NEW_ARRAY>_ADDR, R_<NEW_ARRAY>_QNT) == NO_ERRORS)
|
||||
{
|
||||
*pRegs = MB_Set_Register_Ptr(&<NEW_ARRAY>, Addr); // начало регистров хранения/входных
|
||||
}
|
||||
if(MB_Check_Address_For_Arr(Addr, Qnt, R_<NEW_ARRAY>_ADDR, R_<NEW_ARRAY>_QNT) == NO_ERRORS)
|
||||
{
|
||||
*pRegs = MB_Set_Register_Ptr(&<NEW_ARRAY>, Addr); // начало регистров хранения/входных
|
||||
}
|
||||
@endverbatim
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
|
||||
|
||||
/**
|
||||
* @brief Регистры хранения
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief Определить размер структуры в регистрах модбас (16-бит слова)
|
||||
*/
|
||||
#define mb_sizeof(_struct_) (sizeof(_struct_)/sizeof(uint16_t))
|
||||
#define mb_sizeof(_struct_) (sizeof(_struct_)/sizeof(uint16_t))
|
||||
/**
|
||||
* @brief Определить количество резервных байт для выравнивания
|
||||
* @details Выравнивает так, чтобы количество регистров в _struct_ и reserved равнялось _align_.
|
||||
*
|
||||
*
|
||||
*/
|
||||
#define mb_fill_rsv(_align_, _struct_) ((_align_ > mb_sizeof(_struct_)) ? (_align_ - mb_sizeof(_struct_)) : 0)
|
||||
#define mb_fill_rsv(_align_, _struct_) ((_align_ > mb_sizeof(_struct_)) ? (_align_ - mb_sizeof(_struct_)) : 0)
|
||||
|
||||
|
||||
|
||||
@@ -82,46 +82,44 @@
|
||||
|
||||
|
||||
|
||||
typedef __PACKED_STRUCT//MB_DataInRegsTypeDef
|
||||
typedef __PACKED_STRUCT//MB_DataInRegsTypeDef
|
||||
{
|
||||
|
||||
uint16_t sens_Temp[MAX_SENSE];
|
||||
|
||||
uint16_t reserve[mb_fill_rsv(1000, uint16_t[MAX_SENSE])];
|
||||
|
||||
DS18B20_Drv_t ID;
|
||||
uint16_t reserve1[mb_fill_rsv(200, DS18B20_Drv_t)];
|
||||
uint16_t num_Tsens;
|
||||
|
||||
|
||||
}MB_DataInRegsTypeDef;
|
||||
uint16_t sens_Temp[MAX_SENSE];
|
||||
uint16_t reserve[mb_fill_rsv(1000, uint16_t[MAX_SENSE])];
|
||||
DS18B20_Drv_t ID;
|
||||
uint16_t reserve1[mb_fill_rsv(200, DS18B20_Drv_t)];
|
||||
uint16_t num_Tsens;
|
||||
|
||||
|
||||
/**
|
||||
* @brief Входные регистры
|
||||
} MB_DataInRegsTypeDef;
|
||||
|
||||
|
||||
/**
|
||||
* @brief Входные регистры
|
||||
*/
|
||||
typedef __PACKED_STRUCT //MB_DataInRegsTypeDef
|
||||
typedef __PACKED_STRUCT //MB_DataInRegsTypeDef
|
||||
{
|
||||
uint16_t set_Temp[MAX_SENSE];
|
||||
uint16_t reserve[mb_fill_rsv(100, uint16_t[MAX_SENSE])];
|
||||
uint16_t set_hyst[MAX_SENSE];
|
||||
uint16_t reserve1[mb_fill_rsv(100, uint16_t[MAX_SENSE])];
|
||||
}MB_DataHoldRegsTypeDef;
|
||||
uint16_t set_Temp[MAX_SENSE];
|
||||
uint16_t reserve[mb_fill_rsv(100, uint16_t[MAX_SENSE])];
|
||||
uint16_t set_hyst[MAX_SENSE];
|
||||
uint16_t reserve1[mb_fill_rsv(100, uint16_t[MAX_SENSE])];
|
||||
} MB_DataHoldRegsTypeDef;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/** MODBUS_DATA_RERISTERS_DEFINES
|
||||
* @}
|
||||
* @}
|
||||
*/
|
||||
|
||||
//----------------DEFINES FOR COILS-----------------
|
||||
/**
|
||||
/**
|
||||
* @addtogroup MODBUS_DATA_COILS_DEFINES
|
||||
* @ingroup MODBUS_DATA
|
||||
* @brief Defines for coils
|
||||
@verbatim
|
||||
@verbatim
|
||||
Структура дефайна
|
||||
Для массивов коилов:
|
||||
C_<NAME_ARRAY>_ADDR - модбас адресс первого коила в массиве
|
||||
@@ -137,144 +135,144 @@ typedef __PACKED_STRUCT //MB_DataInRegsTypeDef
|
||||
@endverbatim
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief Коилы
|
||||
* @details Желательно с помощью reserved делать стркутуру кратной 16-битам
|
||||
*/
|
||||
typedef union
|
||||
{
|
||||
__PACKED_STRUCT
|
||||
{
|
||||
unsigned state_val_01:1;
|
||||
unsigned state_val_02:1;
|
||||
unsigned state_val_03:1;
|
||||
unsigned state_val_04:1;
|
||||
unsigned state_val_05:1;
|
||||
unsigned state_val_06:1;
|
||||
unsigned state_val_07:1;
|
||||
unsigned state_val_08:1;
|
||||
unsigned state_val_09:1;
|
||||
unsigned state_val_10:1;
|
||||
unsigned state_val_11:1;
|
||||
unsigned state_val_12:1;
|
||||
unsigned state_val_13:1;
|
||||
unsigned state_val_14:1;
|
||||
unsigned state_val_15:1;
|
||||
unsigned state_val_16:1;
|
||||
} state_val_bit;
|
||||
uint16_t all;
|
||||
|
||||
|
||||
}word;
|
||||
typedef union
|
||||
{
|
||||
__PACKED_STRUCT
|
||||
{
|
||||
unsigned Temp1_relay_isOn :1;
|
||||
unsigned Temp2_relay_isOn :1;
|
||||
unsigned Temp3_relay_isOn :1;
|
||||
unsigned Temp4_relay_isOn :1;
|
||||
unsigned Temp5_relay_isOn :1;
|
||||
unsigned Temp6_relay_isOn :1;
|
||||
unsigned Temp7_relay_isOn :1;
|
||||
unsigned Temp8_relay_isOn :1;
|
||||
unsigned Temp9_relay_isOn :1;
|
||||
unsigned Temp10_relay_isOn :1;
|
||||
unsigned Temp11_relay_isOn :1;
|
||||
unsigned Temp12_relay_isOn :1;
|
||||
unsigned Temp13_relay_isOn :1;
|
||||
unsigned Temp14_relay_isOn :1;
|
||||
unsigned Temp15_relay_isOn :1;
|
||||
unsigned Temp16_relay_isOn :1;
|
||||
|
||||
|
||||
} state_val_bit;
|
||||
uint16_t all;
|
||||
|
||||
|
||||
}RELAY_Struct;
|
||||
|
||||
typedef union
|
||||
{
|
||||
__PACKED_STRUCT
|
||||
{
|
||||
unsigned Temp1_isConnected :1;
|
||||
unsigned Temp2_isConnected :1;
|
||||
unsigned Temp3_isConnected :1;
|
||||
unsigned Temp4_isConnected :1;
|
||||
unsigned Temp5_isConnected :1;
|
||||
unsigned Temp6_isConnected :1;
|
||||
unsigned Temp7_isConnected :1;
|
||||
unsigned Temp8_isConnected :1;
|
||||
unsigned Temp9_isConnected :1;
|
||||
unsigned Temp10_isConnected :1;
|
||||
unsigned Temp11_isConnected :1;
|
||||
unsigned Temp12_isConnected :1;
|
||||
unsigned Temp13_isConnected :1;
|
||||
unsigned Temp14_isConnected :1;
|
||||
unsigned Temp15_isConnected :1;
|
||||
unsigned Temp16_isConnected :1;
|
||||
|
||||
} state_val_bit;
|
||||
uint16_t all;
|
||||
|
||||
|
||||
}STATUS_TSENS;
|
||||
|
||||
|
||||
typedef __PACKED_STRUCT
|
||||
{
|
||||
int temp ;
|
||||
unsigned Temp_relay_on :1;
|
||||
unsigned Temp_relay_off :1;
|
||||
unsigned is_connect:1;
|
||||
|
||||
}Temp_sens;
|
||||
extern Temp_sens temp_sens ;
|
||||
|
||||
typedef __PACKED_STRUCT
|
||||
{
|
||||
|
||||
|
||||
|
||||
word coils[3]; //48
|
||||
uint16_t reserve1[mb_fill_rsv(128/16, word[3])];
|
||||
STATUS_TSENS status_tSens[MAX_SENSE/16]; //32
|
||||
uint16_t reserve2[mb_fill_rsv(128/16, STATUS_TSENS[MAX_SENSE/16])];
|
||||
RELAY_Struct relay_struct[MAX_SENSE/16*2];//16 2 реле на 1 датчик
|
||||
uint16_t reserve3[mb_fill_rsv(128/16, RELAY_Struct[MAX_SENSE/16*2])];
|
||||
__PACKED_STRUCT
|
||||
{
|
||||
unsigned state_val_01: 1;
|
||||
unsigned state_val_02: 1;
|
||||
unsigned state_val_03: 1;
|
||||
unsigned state_val_04: 1;
|
||||
unsigned state_val_05: 1;
|
||||
unsigned state_val_06: 1;
|
||||
unsigned state_val_07: 1;
|
||||
unsigned state_val_08: 1;
|
||||
unsigned state_val_09: 1;
|
||||
unsigned state_val_10: 1;
|
||||
unsigned state_val_11: 1;
|
||||
unsigned state_val_12: 1;
|
||||
unsigned state_val_13: 1;
|
||||
unsigned state_val_14: 1;
|
||||
unsigned state_val_15: 1;
|
||||
unsigned state_val_16: 1;
|
||||
} state_val_bit;
|
||||
uint16_t all;
|
||||
|
||||
unsigned init_param:1; //384
|
||||
unsigned init_Tsens:1; //385
|
||||
unsigned Save_Param_to_Flash:1; //386
|
||||
unsigned reserved2:13;
|
||||
|
||||
}MB_DataCoilsTypeDef;
|
||||
|
||||
} word;
|
||||
typedef union
|
||||
{
|
||||
__PACKED_STRUCT
|
||||
{
|
||||
unsigned Temp1_relay_isOn : 1;
|
||||
unsigned Temp2_relay_isOn : 1;
|
||||
unsigned Temp3_relay_isOn : 1;
|
||||
unsigned Temp4_relay_isOn : 1;
|
||||
unsigned Temp5_relay_isOn : 1;
|
||||
unsigned Temp6_relay_isOn : 1;
|
||||
unsigned Temp7_relay_isOn : 1;
|
||||
unsigned Temp8_relay_isOn : 1;
|
||||
unsigned Temp9_relay_isOn : 1;
|
||||
unsigned Temp10_relay_isOn : 1;
|
||||
unsigned Temp11_relay_isOn : 1;
|
||||
unsigned Temp12_relay_isOn : 1;
|
||||
unsigned Temp13_relay_isOn : 1;
|
||||
unsigned Temp14_relay_isOn : 1;
|
||||
unsigned Temp15_relay_isOn : 1;
|
||||
unsigned Temp16_relay_isOn : 1;
|
||||
|
||||
|
||||
} state_val_bit;
|
||||
uint16_t all;
|
||||
|
||||
|
||||
} RELAY_Struct;
|
||||
|
||||
typedef union
|
||||
{
|
||||
__PACKED_STRUCT
|
||||
{
|
||||
unsigned Temp1_isConnected : 1;
|
||||
unsigned Temp2_isConnected : 1;
|
||||
unsigned Temp3_isConnected : 1;
|
||||
unsigned Temp4_isConnected : 1;
|
||||
unsigned Temp5_isConnected : 1;
|
||||
unsigned Temp6_isConnected : 1;
|
||||
unsigned Temp7_isConnected : 1;
|
||||
unsigned Temp8_isConnected : 1;
|
||||
unsigned Temp9_isConnected : 1;
|
||||
unsigned Temp10_isConnected : 1;
|
||||
unsigned Temp11_isConnected : 1;
|
||||
unsigned Temp12_isConnected : 1;
|
||||
unsigned Temp13_isConnected : 1;
|
||||
unsigned Temp14_isConnected : 1;
|
||||
unsigned Temp15_isConnected : 1;
|
||||
unsigned Temp16_isConnected : 1;
|
||||
|
||||
} state_val_bit;
|
||||
uint16_t all;
|
||||
|
||||
|
||||
} STATUS_TSENS;
|
||||
|
||||
|
||||
typedef __PACKED_STRUCT
|
||||
{
|
||||
int temp ;
|
||||
unsigned Temp_relay_on : 1;
|
||||
unsigned Temp_relay_off : 1;
|
||||
unsigned is_connect: 1;
|
||||
|
||||
} Temp_sens;
|
||||
extern Temp_sens temp_sens ;
|
||||
|
||||
typedef __PACKED_STRUCT
|
||||
{
|
||||
|
||||
|
||||
|
||||
word coils[3]; //48
|
||||
uint16_t reserve1[mb_fill_rsv(128 / 16, word[3])];
|
||||
STATUS_TSENS status_tSens[MAX_SENSE / 16]; //32
|
||||
uint16_t reserve2[mb_fill_rsv(128 / 16, STATUS_TSENS[MAX_SENSE / 16])];
|
||||
RELAY_Struct relay_struct[MAX_SENSE / 16 * 2]; //16 2 реле на 1 датчик
|
||||
uint16_t reserve3[mb_fill_rsv(128 / 16, RELAY_Struct[MAX_SENSE / 16 * 2])];
|
||||
|
||||
unsigned init_param: 1; //384
|
||||
unsigned init_Tsens: 1; //385
|
||||
unsigned Save_Param_to_Flash: 1; //386
|
||||
unsigned reserved2: 13;
|
||||
|
||||
} MB_DataCoilsTypeDef;
|
||||
|
||||
|
||||
|
||||
/** MODBUS_DATA_COILS_DEFINES
|
||||
* @}
|
||||
* @}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
//-----------MODBUS DEVICE DATA SETTING-------------
|
||||
// MODBUS DATA STRUCTTURE
|
||||
/**
|
||||
* @brief Структура со всеми регистрами и коилами модбас
|
||||
/**
|
||||
* @brief Структура со всеми регистрами и коилами модбас
|
||||
* @ingroup MODBUS_DATA
|
||||
*/
|
||||
typedef struct // tester modbus data
|
||||
{
|
||||
MB_DataInRegsTypeDef InRegs; ///< Modbus input registers @ref MB_DataInRegsTypeDef
|
||||
MB_DataInRegsTypeDef InRegs; ///< Modbus input registers @ref MB_DataInRegsTypeDef
|
||||
|
||||
MB_DataCoilsTypeDef Coils; ///< Modbus coils @ref MB_DataCoilsTypeDef
|
||||
|
||||
MB_DataHoldRegsTypeDef HoldRegs; ///< Modbus holding registers @ref MB_DataHoldRegsTypeDef
|
||||
}MB_DataStructureTypeDef;
|
||||
MB_DataCoilsTypeDef Coils; ///< Modbus coils @ref MB_DataCoilsTypeDef
|
||||
|
||||
MB_DataHoldRegsTypeDef HoldRegs; ///< Modbus holding registers @ref MB_DataHoldRegsTypeDef
|
||||
} MB_DataStructureTypeDef;
|
||||
extern MB_DataStructureTypeDef MB_DATA;
|
||||
|
||||
#endif //_MODBUS_DATA_H_
|
||||
|
||||
283
john103C6T6/Modbus/modbus_data.h.orig
Normal file
283
john103C6T6/Modbus/modbus_data.h.orig
Normal file
@@ -0,0 +1,283 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file modbus_data.h
|
||||
* @brief Заголовочный файл с описанием даты MODBUS.
|
||||
* @details Данный файл необходимо подключается в rs_message.h. После rs_message.h
|
||||
* подключается к основному проекту.
|
||||
*
|
||||
* @defgroup MODBUS_DATA
|
||||
* @ingroup MODBUS
|
||||
* @brief Modbus data description
|
||||
*
|
||||
*************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _MODBUS_DATA_H_
|
||||
#define _MODBUS_DATA_H_
|
||||
|
||||
|
||||
// DEFINES FOR INPUT REGISTERS ARRAYS
|
||||
#define R_INPUT_ADDR 0
|
||||
#define R_INPUT_QNT 2000
|
||||
|
||||
// DEFINES FOR HOLDING REGISTERS ARRAYS
|
||||
#define R_HOLDING_ADDR 0
|
||||
#define R_HOLDING_QNT 2000
|
||||
|
||||
// DEFINES FOR COIL ARRAYS
|
||||
#define C_CONTROL_ADDR 0
|
||||
#define C_CONTROL_QNT 1000
|
||||
|
||||
|
||||
|
||||
#include "stdint.h"
|
||||
#include "ds18b20_driver.h"
|
||||
#include "PROJ_setup.h"
|
||||
|
||||
|
||||
//--------------DEFINES FOR REGISTERS---------------
|
||||
// DEFINES FOR ARRAYS
|
||||
/**
|
||||
* @addtogroup MODBUS_DATA_RERISTERS_DEFINES
|
||||
* @ingroup MODBUS_DATA
|
||||
* @brief Defines for registers
|
||||
Структура дефайна адресов
|
||||
@verbatim
|
||||
Для массивов регистров:
|
||||
R_<NAME_ARRAY>_ADDR - модбас адресс первого регистра в массиве
|
||||
R_<NAME_ARRAY>_QNT - количество регистров в массиве
|
||||
|
||||
При добавлении новых массивов регистров, необходимо их добавить в функцию MB_DefineRegistersAddress
|
||||
|
||||
if(MB_Check_Address_For_Arr(Addr, Qnt, R_<NEW_ARRAY>_ADDR, R_<NEW_ARRAY>_QNT) == NO_ERRORS)
|
||||
{
|
||||
*pRegs = MB_Set_Register_Ptr(&<NEW_ARRAY>, Addr); // начало регистров хранения/входных
|
||||
}
|
||||
@endverbatim
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @brief Регистры хранения
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @brief Определить размер структуры в регистрах модбас (16-бит слова)
|
||||
*/
|
||||
#define mb_sizeof(_struct_) (sizeof(_struct_)/sizeof(uint16_t))
|
||||
/**
|
||||
* @brief Определить количество резервных байт для выравнивания
|
||||
* @details Выравнивает так, чтобы количество регистров в _struct_ и reserved равнялось _align_.
|
||||
*
|
||||
*/
|
||||
#define mb_fill_rsv(_align_, _struct_) ((_align_ > mb_sizeof(_struct_)) ? (_align_ - mb_sizeof(_struct_)) : 0)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
typedef __PACKED_STRUCT//MB_DataInRegsTypeDef
|
||||
{
|
||||
|
||||
uint16_t sens_Temp[MAX_SENSE];
|
||||
|
||||
uint16_t reserve[mb_fill_rsv(1000, uint16_t[MAX_SENSE])];
|
||||
|
||||
DS18B20_Drv_t ID;
|
||||
uint16_t reserve1[mb_fill_rsv(200, DS18B20_Drv_t)];
|
||||
uint16_t num_Tsens;
|
||||
|
||||
|
||||
} MB_DataInRegsTypeDef;
|
||||
|
||||
|
||||
/**
|
||||
* @brief Входные регистры
|
||||
*/
|
||||
typedef __PACKED_STRUCT //MB_DataInRegsTypeDef
|
||||
{
|
||||
uint16_t set_Temp[MAX_SENSE];
|
||||
uint16_t reserve[mb_fill_rsv(100, uint16_t[MAX_SENSE])];
|
||||
uint16_t set_hyst[MAX_SENSE];
|
||||
uint16_t reserve1[mb_fill_rsv(100, uint16_t[MAX_SENSE])];
|
||||
} MB_DataHoldRegsTypeDef;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/** MODBUS_DATA_RERISTERS_DEFINES
|
||||
* @}
|
||||
*/
|
||||
|
||||
//----------------DEFINES FOR COILS-----------------
|
||||
/**
|
||||
* @addtogroup MODBUS_DATA_COILS_DEFINES
|
||||
* @ingroup MODBUS_DATA
|
||||
* @brief Defines for coils
|
||||
@verbatim
|
||||
Структура дефайна
|
||||
Для массивов коилов:
|
||||
C_<NAME_ARRAY>_ADDR - модбас адресс первого коила в массиве
|
||||
C_<NAME_ARRAY>_QNT - количество коилов в массиве (минимум 16)
|
||||
|
||||
При добавлении новых массивов коилов, необходимо их добавить в функцию MB_DefineCoilsAddress
|
||||
|
||||
if(MB_Check_Address_For_Arr(Addr, Qnt, C_<NEW_ARRAY>_ADDR, C_<NEW_ARRAY>_QNT) == NO_ERRORS)
|
||||
{
|
||||
*pCoils = MB_Set_Coil_Reg_Ptr(&<NEW_ARRAY>, Addr);
|
||||
}
|
||||
|
||||
@endverbatim
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief Коилы
|
||||
* @details Желательно с помощью reserved делать стркутуру кратной 16-битам
|
||||
*/
|
||||
typedef union
|
||||
{
|
||||
__PACKED_STRUCT
|
||||
{
|
||||
unsigned state_val_01: 1;
|
||||
unsigned state_val_02: 1;
|
||||
unsigned state_val_03: 1;
|
||||
unsigned state_val_04: 1;
|
||||
unsigned state_val_05: 1;
|
||||
unsigned state_val_06: 1;
|
||||
unsigned state_val_07: 1;
|
||||
unsigned state_val_08: 1;
|
||||
unsigned state_val_09: 1;
|
||||
unsigned state_val_10: 1;
|
||||
unsigned state_val_11: 1;
|
||||
unsigned state_val_12: 1;
|
||||
unsigned state_val_13: 1;
|
||||
unsigned state_val_14: 1;
|
||||
unsigned state_val_15: 1;
|
||||
unsigned state_val_16: 1;
|
||||
} state_val_bit;
|
||||
uint16_t all;
|
||||
|
||||
|
||||
} word;
|
||||
typedef union
|
||||
{
|
||||
__PACKED_STRUCT
|
||||
{
|
||||
unsigned Temp1_relay_isOn : 1;
|
||||
unsigned Temp2_relay_isOn : 1;
|
||||
unsigned Temp3_relay_isOn : 1;
|
||||
unsigned Temp4_relay_isOn : 1;
|
||||
unsigned Temp5_relay_isOn : 1;
|
||||
unsigned Temp6_relay_isOn : 1;
|
||||
unsigned Temp7_relay_isOn : 1;
|
||||
unsigned Temp8_relay_isOn : 1;
|
||||
unsigned Temp9_relay_isOn : 1;
|
||||
unsigned Temp10_relay_isOn : 1;
|
||||
unsigned Temp11_relay_isOn : 1;
|
||||
unsigned Temp12_relay_isOn : 1;
|
||||
unsigned Temp13_relay_isOn : 1;
|
||||
unsigned Temp14_relay_isOn : 1;
|
||||
unsigned Temp15_relay_isOn : 1;
|
||||
unsigned Temp16_relay_isOn : 1;
|
||||
|
||||
|
||||
} state_val_bit;
|
||||
uint16_t all;
|
||||
|
||||
|
||||
} RELAY_Struct;
|
||||
|
||||
typedef union
|
||||
{
|
||||
__PACKED_STRUCT
|
||||
{
|
||||
unsigned Temp1_isConnected : 1;
|
||||
unsigned Temp2_isConnected : 1;
|
||||
unsigned Temp3_isConnected : 1;
|
||||
unsigned Temp4_isConnected : 1;
|
||||
unsigned Temp5_isConnected : 1;
|
||||
unsigned Temp6_isConnected : 1;
|
||||
unsigned Temp7_isConnected : 1;
|
||||
unsigned Temp8_isConnected : 1;
|
||||
unsigned Temp9_isConnected : 1;
|
||||
unsigned Temp10_isConnected : 1;
|
||||
unsigned Temp11_isConnected : 1;
|
||||
unsigned Temp12_isConnected : 1;
|
||||
unsigned Temp13_isConnected : 1;
|
||||
unsigned Temp14_isConnected : 1;
|
||||
unsigned Temp15_isConnected : 1;
|
||||
unsigned Temp16_isConnected : 1;
|
||||
|
||||
} state_val_bit;
|
||||
uint16_t all;
|
||||
|
||||
|
||||
} STATUS_TSENS;
|
||||
|
||||
|
||||
typedef __PACKED_STRUCT
|
||||
{
|
||||
int temp ;
|
||||
unsigned Temp_relay_on : 1;
|
||||
unsigned Temp_relay_off : 1;
|
||||
unsigned is_connect: 1;
|
||||
|
||||
} Temp_sens;
|
||||
extern Temp_sens temp_sens ;
|
||||
|
||||
typedef __PACKED_STRUCT
|
||||
{
|
||||
|
||||
|
||||
|
||||
word coils[3]; //48
|
||||
uint16_t reserve1[mb_fill_rsv(128 / 16, word[3])];
|
||||
STATUS_TSENS status_tSens[MAX_SENSE / 16]; //32
|
||||
uint16_t reserve2[mb_fill_rsv(128 / 16, STATUS_TSENS[MAX_SENSE / 16])];
|
||||
RELAY_Struct relay_struct[MAX_SENSE / 16 * 2]; //16 2 реле на 1 датчик
|
||||
uint16_t reserve3[mb_fill_rsv(128 / 16, RELAY_Struct[MAX_SENSE / 16 * 2])];
|
||||
|
||||
unsigned init_param: 1; //384
|
||||
unsigned init_Tsens: 1; //385
|
||||
unsigned Save_Param_to_Flash: 1; //386
|
||||
unsigned reserved2: 13;
|
||||
|
||||
} MB_DataCoilsTypeDef;
|
||||
|
||||
|
||||
|
||||
/** MODBUS_DATA_COILS_DEFINES
|
||||
* @}
|
||||
*/
|
||||
|
||||
|
||||
//-----------MODBUS DEVICE DATA SETTING-------------
|
||||
// MODBUS DATA STRUCTTURE
|
||||
/**
|
||||
* @brief Структура со всеми регистрами и коилами модбас
|
||||
* @ingroup MODBUS_DATA
|
||||
*/
|
||||
typedef struct // tester modbus data
|
||||
{
|
||||
MB_DataInRegsTypeDef InRegs; ///< Modbus input registers @ref MB_DataInRegsTypeDef
|
||||
|
||||
MB_DataCoilsTypeDef Coils; ///< Modbus coils @ref MB_DataCoilsTypeDef
|
||||
|
||||
MB_DataHoldRegsTypeDef HoldRegs; ///< Modbus holding registers @ref MB_DataHoldRegsTypeDef
|
||||
} MB_DataStructureTypeDef;
|
||||
extern MB_DataStructureTypeDef MB_DATA;
|
||||
|
||||
#endif //_MODBUS_DATA_H_
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
///////////////////////TEMP/OUTDATE/OTHER////////////////////
|
||||
Reference in New Issue
Block a user