diff --git a/john103C6T6/Core/Src/main.c b/john103C6T6/Core/Src/main.c index 3b8087d..ec1e2f8 100644 --- a/john103C6T6/Core/Src/main.c +++ b/john103C6T6/Core/Src/main.c @@ -433,8 +433,8 @@ FuncStat value_control(void ) { - MB_DATA.Coils.coils[0].all |= 1 << i; - MB_DATA.Coils.coils[1].all &= ~(1 << i); + MB_DATA.Coils.relay_struct_off.all |= 1 << i; + MB_DATA.Coils.relay_struct_on.all &= ~(1 << i); } @@ -444,11 +444,19 @@ FuncStat value_control(void ) if (sens[i].temperature > sens[i].set_temp + sens[i].hyst) { - MB_DATA.Coils.coils[0].all &= ~(1 << i); - MB_DATA.Coils.coils[1].all |= 1 << i; + MB_DATA.Coils.relay_struct_off.all &= ~(1 << i); + MB_DATA.Coils.relay_struct_on.all |= 1 << i; } + + else + if (sens[i].temperature == sens[i].set_temp ) + { + MB_DATA.Coils.relay_struct_on.all &= ~(1 << i); + MB_DATA.Coils.relay_struct_off.all &= ~(1 << i); + + } } diff --git a/john103C6T6/EEPROM_Emul/src/EEPROM_Emul.c b/john103C6T6/EEPROM_Emul/src/EEPROM_Emul.c index 0fea0e7..0d3afa9 100644 --- a/john103C6T6/EEPROM_Emul/src/EEPROM_Emul.c +++ b/john103C6T6/EEPROM_Emul/src/EEPROM_Emul.c @@ -1,4 +1,4 @@ -#include "eeprom_emul.h" +//#include "eeprom_emul.h" #include // Внутренние переменные diff --git a/john103C6T6/MDK-ARM/john103C6T6.uvoptx b/john103C6T6/MDK-ARM/john103C6T6.uvoptx index 59f2f63..e55e9c8 100644 --- a/john103C6T6/MDK-ARM/john103C6T6.uvoptx +++ b/john103C6T6/MDK-ARM/john103C6T6.uvoptx @@ -188,37 +188,32 @@ 7 1 - MB_DATA.Coils.relay_struct[0].state_val_bit.Temp10_relay_isOn,0x0A + record 8 1 - MB_DATA.Coils.relay_struct[0].state_val_bit.Temp11_relay_isOn,0x0A + flash_buff 9 1 - record + new_record 10 1 - flash_buff + state 11 1 - new_record + htim 12 1 - state - - - 13 - 1 - htim + sens[i].set_temp @@ -385,7 +380,7 @@ 2 6 1 - 0 + 1 0 0 ../Core/Src/main.c @@ -541,7 +536,7 @@ Drivers/STM32F1xx_HAL_Driver - 1 + 0 0 0 0 @@ -561,7 +556,7 @@ 3 20 1 - 1 + 0 0 0 ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c diff --git a/john103C6T6/Modbus/modbus_config.h b/john103C6T6/Modbus/modbus_config.h index bdb9c0c..af82833 100644 --- a/john103C6T6/Modbus/modbus_config.h +++ b/john103C6T6/Modbus/modbus_config.h @@ -22,7 +22,7 @@ #include "stm32f1xx_hal.h" // Общие параметры -#define MODBUS_DEVICE_ID 1 ///< Адрес устройства в сети Modbus +#define MODBUS_DEVICE_ID 3 ///< Адрес устройства в сети Modbus #define MODBUS_TIMEOUT 5000 ///< Таймаут в тиках таймера // Строковые идентификаторы устройства diff --git a/john103C6T6/Modbus/modbus_data.h b/john103C6T6/Modbus/modbus_data.h index 8a7a9aa..8019c11 100644 --- a/john103C6T6/Modbus/modbus_data.h +++ b/john103C6T6/Modbus/modbus_data.h @@ -239,11 +239,14 @@ typedef __PACKED_STRUCT word coils[3]; //48 - uint16_t reserve1[mb_fill_rsv(128 / 16, word[3])]; + uint16_t reserve_coils[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])]; + uint16_t reserve_status_tSens[mb_fill_rsv(128 / 16, STATUS_TSENS[MAX_SENSE / 16])]; + RELAY_Struct relay_struct_on; //16 ON + uint16_t reserve_relay_struct_on[mb_fill_rsv(32 / 16, RELAY_Struct)]; + RELAY_Struct relay_struct_off; //16 OFF + uint16_t reserve_relay_struct_off[mb_fill_rsv(32 / 16, RELAY_Struct)]; + uint16_t reserve3[mb_fill_rsv(80 / 16, RELAY_Struct)]; unsigned init_param: 1; //384 unsigned init_Tsens: 1; //385 diff --git a/john103C6T6/Modbus/modbus_data.h.orig b/john103C6T6/Modbus/modbus_data.h.orig index da7482e..3d2232a 100644 --- a/john103C6T6/Modbus/modbus_data.h.orig +++ b/john103C6T6/Modbus/modbus_data.h.orig @@ -86,9 +86,7 @@ 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; @@ -151,7 +149,7 @@ typedef union unsigned state_val_01: 1; unsigned state_val_02: 1; unsigned state_val_03: 1; - unsigned state_val_04: 1; + unsigned state_val_04: 1; unsigned state_val_05: 1; unsigned state_val_06: 1; unsigned state_val_07: 1; @@ -244,7 +242,8 @@ typedef __PACKED_STRUCT 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 датчик + RELAY_Struct relay_struct_on; //16 ON + RELAY_Struct relay_struct_off; //16 OFF uint16_t reserve3[mb_fill_rsv(128 / 16, RELAY_Struct[MAX_SENSE / 16 * 2])]; unsigned init_param: 1; //384