Базово всё запущено. Датчики считываются записываются в модбас регистры, и по запросу выдаются.

Есть запас на 27-30 датчиков
This commit is contained in:
2025-03-03 16:49:25 +03:00
parent b96e00b166
commit 324c26e559
15 changed files with 191 additions and 176 deletions

View File

@@ -31,15 +31,29 @@
@endverbatim
* @{
*/
//typedef struct
//{
// uint16_t ROM[4];
// uint16_t Location;
// uint16_t Resolution;
// uint16_t Losted;
//}MB_SensorResponseTypeDef;
typedef struct
{
uint16_t Location;
uint16_t ROM[4];
uint16_t Resolution;
uint16_t Enable;
}MB_SensorParamsTypeDef;
/**
* @brief Регистры хранения
*/
typedef struct //MB_DataInRegsTypeDef
{
uint16_t SensTemperature[DS18B20_DEVICE_AMOUNT];
uint16_t Resolution;
uint16_t SensTemperature[DS18B20_DEVICE_AMOUNT];
MB_SensorParamsTypeDef Response;
}MB_DataInRegsTypeDef;
@@ -48,27 +62,19 @@ typedef struct //MB_DataInRegsTypeDef
*/
typedef struct //MB_DataInRegsTypeDef
{
uint16_t TimeForForward;
uint16_t TimeForReverse;
uint16_t TimeBeforeTest;
uint16_t TimeDeadtime;
uint16_t TimeBeforePeak;
uint16_t Adc_PulseWidth;
uint16_t Adc_PulseSign;
uint16_t Adc_CalibrValue;
uint16_t Adc_ZeroValue;
uint16_t Adc_U_Calibr;
MB_SensorParamsTypeDef InitStruct;
}MB_DataHoldRegsTypeDef;
// DEFINES FOR INPUT REGISTERS ARRAYS
#define R_MEASURED_ADDR 0
#define R_MEASURED_QNT 2
#define R_TEMPERATURE_ADDR (0)
#define R_TEMPERATURE_QNT (DS18B20_DEVICE_AMOUNT)
#define R_SENS_PARAMS_ADDR (DS18B20_DEVICE_AMOUNT+1)
#define R_SENS_PARAMS_QNT (sizeof(MB_SensorParamsTypeDef)/sizeof(uint16_t))
// DEFINES FOR HOLDING REGISTERS ARRAYS
#define R_SETTINGS_ADDR 0
#define R_SETTINGS_QNT 10
#define R_SENS_INIT_ADDR (0)
#define R_SENS_INIT_QNT (sizeof(MB_SensorParamsTypeDef)/sizeof(uint16_t))
// DEFINES FOR REGISTERS LOCAL ADDRESSES
@@ -102,31 +108,23 @@ typedef struct //MB_DataInRegsTypeDef
typedef struct //MB_DataCoilsTypeDef
{
/* reg 1 - control */
unsigned ForwardTest:1;
unsigned ReverseTest:1;
unsigned StartTest:1;
unsigned KeyForwardHiTest:1;
unsigned KeyForwardLoTest:1;
unsigned KeyReverseHiTest:1;
unsigned KeyReverseLoTest:1;
unsigned RunConvertions:1;
unsigned InitSensor:1;
unsigned DenitSensor:1;
unsigned reserved:9;
unsigned reserved:13;
/* reg 2 - settings */
unsigned msTimeForForward_enable:1;
unsigned msTimeForReverse_enable:1;
unsigned msTimeBeforeTest_enable:1;
unsigned msTimeDeadtime_enable:1;
unsigned msTimeBeforePeak_enable:1;
unsigned reserved2:11;
unsigned ConvertionDone:1;
unsigned LostedSensors:1;
}MB_DataCoilsTypeDef;
// DEFINES FOR COIL ARRAYS
#define C_CONTROL_ADDR 0
#define C_CONTROL_QNT 7
#define C_CONTROL_QNT 3
#define C_SETTINGS_ADDR 16
#define C_SETTINGS_QNT 5
#define C_FLAGS_ADDR 16
#define C_FLAGS_QNT 5
/** MODBUS_DATA_COILS_DEFINES
* @}