comit_job ver new modbus

This commit is contained in:
2025-11-07 16:22:00 +03:00
parent 461a206fe7
commit 81d95635f9
17 changed files with 564 additions and 2616 deletions

View File

@@ -40,7 +40,7 @@
#include "def.h"
#include <stdio.h>
#include "rs_message.h"
#include "modbus.h"
#include "eeprom_emul.h"
#include "stdio.h"
@@ -68,7 +68,7 @@ uint8_t ralay_5v_on_var=0;
/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */
float temperature;
extern uint8_t roms[MAX_DEVICES][8];
uint8_t roms[MAX_DEVICES][8];
Flags_TypeDef flag;
//extern uint8_t devices_found ;
uint8_t _debug_init=0;
@@ -143,9 +143,13 @@ int main(void)
/* USER CODE BEGIN 2 */
led_blink(GPIOC,13,rest_iter,reset_blink_delay);
MODBUS_FirstInit();
MODBUS_FirstInit(&hmodbus1, &mb_huart, &mb_htim);
MODBUS_Config(&hmodbus1, MODBUS_DEVICE_ID, MODBUS_TIMEOUT, MODBUS_MODE_SLAVE);
// Запуск приема Modbus
MODBUS_SlaveStart(&hmodbus1, NULL);
uint8_t uart_byte = 0;
RS_Receive_IT(&hmodbus1, &MODBUS_MSG);
Dallas_BusFirstInit(&htim1);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
@@ -162,7 +166,7 @@ int main(void)
if( hmodbus1.pMessagePtr->Func_Code&ERR_VALUES_START)
if( hmodbus1.pMessagePtr->FuncCode&FC_ERR_VALUES_START)
{
static int pause_Alarm_led;
while (1)
@@ -221,32 +225,8 @@ int main(void)
{
GPIOA->ODR&=~(1<<10);
}
//// if (sens[i].temperature<sens[i].set_temp-sens[i].hyst)
////
//// {
////
//// MB_DATA.Coils.coils[0].all|=1<<i;
////
//// }
////
//// else
////
//// if (sens[i].temperature>sens[i].set_temp+sens[i].hyst)
//// {
////
//// MB_DATA.Coils.coils[0].all&=~(1<<i);
////
//// }
//// if(GPIOB11_valve)
//// {
//// GPIOB->ODR|=1<<11;
//// }
//// else
//// {
//// GPIOB->ODR&=~(1<<11);
////
//// }
value_control();
}
@@ -435,39 +415,74 @@ FuncStat Field_modbus(MB_DataStructureTypeDef* MB_DATA, Flags_TypeDef* flag)
};
FuncStat value_control(void )
{
for(int i=0;i<10;i++)
{
if (sens[i].temperature<sens[i].set_temp-sens[i].hyst)
{
MB_DATA.Coils.coils[0].all|=1<<i;
}
else
if (sens[i].temperature>sens[i].set_temp+sens[i].hyst)
{
MB_DATA.Coils.coils[0].all&=~(1<<i);
}
if(GPIOB11_valve)
{
GPIOB->ODR|=1<<11;
}
else
{
GPIOB->ODR&=~(1<<11);
}
}
return FuncOK;
}
uint16_t handle_valves(TEMP_TypeDef* temp_sense[MAX_SENSE] )
{
if (temp_sense[0]->state==STATE_OPEN_VALVE)
{
GPIOC->ODR|=1<<14;
}
else
if (temp_sense[0]->state==STATE_CLOSE_VALVE)
{
GPIOC->ODR&=~(1<<14);
}
return 1;
}
//uint16_t handle_valves(TEMP_TypeDef* tmp_sense )
//{
//
// if (temp_sense[0].state==STATE_OPEN_VALVE)
// {
// GPIOC->ODR|=1<<14;
// }
// else
// if (temp_sense[0].state==STATE_CLOSE_VALVE)
// {
// GPIOC->ODR&=~(1<<14);
// }
//
// return 1;
//
//}
//void init_setpoint _all_T_sense(void)
//{
// //ds_search_devices();
// for(int i=0;i<hdallas.onewire->RomCnt;i++)
//{
// temp_sense[i].id[0]=roms[i][0]<<0|roms[i][1]<<8|roms[i][2]<<16|roms[i][3]<<24;
// temp_sense[i].id[1]=roms[i][4]<<0|roms[i][5]<<8|roms[i][6]<<16|roms[i][7]<<24;
// temp_sense[i].count =i+1;
// temp_sense[i].location=1;
// temp_sense[i].t_open=22;
// temp_sense[i].t_close=18;
// temp_sense[i].status_T_sense=1;
//}
//}
void init_setpoint_all_T_sense(TEMP_TypeDef* temp_sense[MAX_SENSE])
{
//ds_search_devices();
for(int i=0;i<hdallas.onewire->RomCnt;i++)
{
temp_sense[i]->id[0]=roms[i][0]<<0|roms[i][1]<<8|roms[i][2]<<16|roms[i][3]<<24;
temp_sense[i]->id[1]=roms[i][4]<<0|roms[i][5]<<8|roms[i][6]<<16|roms[i][7]<<24;
temp_sense[i]->count =i+1;
temp_sense[i]->location=1;
temp_sense[i]->t_open=22;
temp_sense[i]->t_close=18;
temp_sense[i]->status_T_sense=1;
}
}
/* USER CODE END 4 */
/**