Фиксы после рефакторинга
This commit is contained in:
@@ -27,7 +27,7 @@
|
|||||||
#define UPP_DISABLE_PROTECT_BOARDPOWER ///< Отключить проверки питания плат (+24, +5 В)
|
#define UPP_DISABLE_PROTECT_BOARDPOWER ///< Отключить проверки питания плат (+24, +5 В)
|
||||||
#define UPP_DISABLE_PROTECT_LOSS_PHASE ///< Отключить проверки на потерянные фазы
|
#define UPP_DISABLE_PROTECT_LOSS_PHASE ///< Отключить проверки на потерянные фазы
|
||||||
|
|
||||||
#define ZC_DISABLE_HYSTERESIS_DEBOUNCE ///< Отключить гиситерезис и дребезг на определении перехода через ноль
|
//#define ZC_DISABLE_HYSTERESIS_DEBOUNCE ///< Отключить гиситерезис и дребезг на определении перехода через ноль
|
||||||
|
|
||||||
/** //UPP_PARAMS_TEST
|
/** //UPP_PARAMS_TEST
|
||||||
* @}
|
* @}
|
||||||
@@ -172,7 +172,7 @@
|
|||||||
#undef UPP_INIT_BEFORE_READY_MS
|
#undef UPP_INIT_BEFORE_READY_MS
|
||||||
|
|
||||||
|
|
||||||
#define UPP_INIT_BEFORE_READY_MS 100 ///< Сколько сканировать сеть, перед выставлением состояния готовности
|
#define UPP_INIT_BEFORE_READY_MS 300 ///< Сколько сканировать сеть, перед выставлением состояния готовности
|
||||||
|
|
||||||
|
|
||||||
#endif //defined(MATLAB)
|
#endif //defined(MATLAB)
|
||||||
|
|||||||
@@ -79,19 +79,19 @@ typedef enum {
|
|||||||
* @brief Структура данных от УПП передаваемых в ПУИ
|
* @brief Структура данных от УПП передаваемых в ПУИ
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint16_t Error; /** @brief Текущая авария
|
uint16_t Error; /** @brief Адрес 0: Текущая авария
|
||||||
@details В случае срабатывания защиты */
|
@details В случае срабатывания защиты */
|
||||||
|
|
||||||
uint16_t WorkMode; /** @brief Режим работы
|
uint16_t WorkMode; /** @brief Адрес 1: Режим работы
|
||||||
@details «Готовность» или «Работа» */
|
@details «Готовность» или «Работа» */
|
||||||
|
|
||||||
uint16_t Voltage; /** @brief Напряжение на входе УПП, Вольты */
|
uint16_t Voltage; /** @brief Адрес 2: Напряжение на входе УПП, Вольты */
|
||||||
|
|
||||||
uint16_t Current; /** @brief Ток на входе УПП, Амперы */
|
uint16_t Current; /** @brief Адрес 3: Ток на входе УПП, Амперы */
|
||||||
|
|
||||||
uint16_t Frequency; /** @brief Частота напряжения на входе УПП */
|
uint16_t Frequency; /** @brief Адрес 4: Частота напряжения на входе УПП */
|
||||||
|
|
||||||
uint16_t Temperature; /** @brief Температура радиатора тиристоров, Градусы Цельсия */
|
uint16_t Temperature; /** @brief Адрес 5: Температура радиатора тиристоров, Градусы Цельсия */
|
||||||
} UPP_PUI_Values_t;
|
} UPP_PUI_Values_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -100,39 +100,39 @@ typedef struct {
|
|||||||
* @note Защиты №X приведены в @ref UPP_ErrorType_t
|
* @note Защиты №X приведены в @ref UPP_ErrorType_t
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint16_t Iref; /** @brief Уставка ограничения тока УПП
|
uint16_t Iref; /** @brief Адрес 0: Уставка ограничения тока УПП
|
||||||
@details В диапазоне от 100 % до 500 % от Iн = 5 А
|
@details В диапазоне от 100 % до 500 % от Iн = 5 А
|
||||||
По умолчанию – @ref PUI_Iref_PERCENT_DEFAULT */
|
По умолчанию – @ref PUI_Iref_PERCENT_DEFAULT */
|
||||||
|
|
||||||
uint16_t Tnt; /** @brief Уставка времени нарастания заданного тока
|
uint16_t Tnt; /** @brief Адрес 1: Уставка времени нарастания заданного тока
|
||||||
@details В диапазоне от 50 до 5000 мс.
|
@details В диапазоне от 50 до 5000 мс.
|
||||||
По умолчанию – @ref PUI_Tnt_MS_DEFAULT */
|
По умолчанию – @ref PUI_Tnt_MS_DEFAULT */
|
||||||
|
|
||||||
uint16_t Umin; /** @brief Уставка защиты №15 от понижения напряжения входной сети
|
uint16_t Umin; /** @brief Адрес 2: Уставка защиты №15 от понижения напряжения входной сети
|
||||||
@details В диапазоне от 5% до 99 % от Uн = 690 В.
|
@details В диапазоне от 5% до 99 % от Uн = 690 В.
|
||||||
По умолчанию – @ref PUI_Umin_PERCENT_DEFAULT */
|
По умолчанию – @ref PUI_Umin_PERCENT_DEFAULT */
|
||||||
|
|
||||||
uint16_t Umax; /** @brief Уставка защиты №13 от повышения напряжения входной сети
|
uint16_t Umax; /** @brief Адрес 3: Уставка защиты №13 от повышения напряжения входной сети
|
||||||
@details В диапазоне от 100% до 120 % от Uн = 690 В.
|
@details В диапазоне от 100% до 120 % от Uн = 690 В.
|
||||||
По умолчанию – @ref PUI_Umax_PERCENT_DEFAULT */
|
По умолчанию – @ref PUI_Umax_PERCENT_DEFAULT */
|
||||||
|
|
||||||
uint16_t Imax; /** @brief Уставка защиты №12 по току
|
uint16_t Imax; /** @brief Адрес 4: Уставка защиты №12 по току
|
||||||
@details В диапазоне от 5 % до 99 % от 50 А.
|
@details В диапазоне от 5 % до 99 % от 50 А.
|
||||||
По умолчанию – @ref PUI_Imax_PERCENT_DEFAULT */
|
По умолчанию – @ref PUI_Imax_PERCENT_DEFAULT */
|
||||||
|
|
||||||
uint16_t Imin; /** @brief Уставка защит № 16 – №19 от обрыва фаз(ы)
|
uint16_t Imin; /** @brief Адрес 5: Уставка защит № 16 – №19 от обрыва фаз(ы)
|
||||||
@details В диапазоне от 0 % до 40 % от Iн = 5 А. При задании нуля эти защиты отключаются.
|
@details В диапазоне от 0 % до 40 % от Iн = 5 А. При задании нуля эти защиты отключаются.
|
||||||
По умолчанию – @ref PUI_Imin_PERCENT_DEFAULT */
|
По умолчанию – @ref PUI_Imin_PERCENT_DEFAULT */
|
||||||
|
|
||||||
uint16_t TiMax; /** @brief Выдержка времени на срабатывание защиты № 12 по току
|
uint16_t TiMax; /** @brief Адрес 6: Выдержка времени на срабатывание защиты № 12 по току
|
||||||
@details В диапазоне от 500 до 10000 мкс.
|
@details В диапазоне от 500 до 10000 мкс.
|
||||||
По умолчанию – @ref PUI_TiMax_US_DEFAULT */
|
По умолчанию – @ref PUI_TiMax_US_DEFAULT */
|
||||||
|
|
||||||
uint16_t Tdelay; /** @brief Выдержка времени защиты № 20 от затянутого пуска
|
uint16_t Tdelay; /** @brief Адрес 7: Выдержка времени защиты № 20 от затянутого пуска
|
||||||
@details В диапазоне от 5 до 60 с.
|
@details В диапазоне от 5 до 60 с.
|
||||||
По умолчанию – @ref PUI_Tdelay_SECONDS_DEFAULT */
|
По умолчанию – @ref PUI_Tdelay_SECONDS_DEFAULT */
|
||||||
|
|
||||||
uint16_t Interlace; /** @brief Разрешение защиты № 21 от обратного порядка чередования фаз;
|
uint16_t Interlace; /** @brief Адрес 8: Разрешение защиты № 21 от обратного порядка чередования фаз;
|
||||||
@details 0 – нет защиты, 1 – есть защита.
|
@details 0 – нет защиты, 1 – есть защита.
|
||||||
По умолчанию – @ref PUI_Interlace_EN_DEFAULT */
|
По умолчанию – @ref PUI_Interlace_EN_DEFAULT */
|
||||||
} UPP_PUI_Params_t;
|
} UPP_PUI_Params_t;
|
||||||
|
|||||||
@@ -29,13 +29,13 @@ static void ADC_InitAllFilters(ADC_Periodic_t *adc)
|
|||||||
for(int i = 0; i < 2; i++)
|
for(int i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
FilterBandPassDerivative_Init(&adc->u_fltr[i], (50.0f*PM_FAST_PERIOD_US/1000000), 0.1);
|
FilterBandPassDerivative_Init(&adc->u_fltr[i], (50.0f*PM_FAST_PERIOD_US/1000000), 0.1);
|
||||||
FilterMedianInt_Init(&adc->i_fltr[I_C], 5, 2048);
|
FilterMedianInt_Init(&adc->i_fltr[i], 5, 2048);
|
||||||
FilterLUT_Init(&adc->temp_map[i],
|
FilterLUT_Init(&adc->temp_map[i],
|
||||||
(float *)adc_temp_quants,
|
(float *)adc_temp_quants,
|
||||||
(float *)adc_temp_vals,
|
(float *)adc_temp_vals,
|
||||||
numbof(adc_temp_quants), 1);
|
numbof(adc_temp_quants), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Запуск фильтров
|
// Запуск фильтров
|
||||||
for(int i = 0; i < 2; i++)
|
for(int i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
@@ -167,8 +167,10 @@ HAL_StatusTypeDef ADC_UpdateRegular(ADC_Periodic_t *adc)
|
|||||||
int u_ind = ADC_U_CHANNELS_START + i;
|
int u_ind = ADC_U_CHANNELS_START + i;
|
||||||
int i_ind = ADC_I_CHANNELS_START + i;
|
int i_ind = ADC_I_CHANNELS_START + i;
|
||||||
// заменяем сырые данные на отфильтрованные данные
|
// заменяем сырые данные на отфильтрованные данные
|
||||||
raw[u_ind] = Filter_Process(&adc->u_fltr[i], raw[u_ind]);
|
int raw_u = Filter_Process(&adc->u_fltr[i], (int)raw[u_ind]-2048);
|
||||||
raw[i_ind] = Filter_Process(&adc->i_fltr[i], raw[i_ind]);
|
int raw_i = Filter_Process(&adc->i_fltr[i], raw[i_ind]);
|
||||||
|
raw[u_ind] = raw_u+2048;
|
||||||
|
raw[i_ind] = raw_i;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Перерасчеты Напряжений/Токов в единицы измерения
|
// Перерасчеты Напряжений/Токов в единицы измерения
|
||||||
|
|||||||
@@ -71,10 +71,10 @@ HAL_StatusTypeDef PowerMonitor_Init(PowerMonitor_t *hpm)
|
|||||||
/* Инициализация фильтра для сглаживания синусоиды*/
|
/* Инициализация фильтра для сглаживания синусоиды*/
|
||||||
for(int i = 0; i < 2; i++)
|
for(int i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
if(FilterBandPassDerivative_Init(&hpm->ufltr[i], (50.0f*PM_FAST_PERIOD_US/1000000), 0.1))
|
// if(FilterBandPassDerivative_Init(&hpm->ufltr[i], (50.0f*PM_FAST_PERIOD_US/1000000), 0.1))
|
||||||
return HAL_ERROR;
|
// return HAL_ERROR;
|
||||||
|
//
|
||||||
Filter_Start(&hpm->ufltr[i]);
|
// Filter_Start(&hpm->ufltr[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -142,6 +142,7 @@ void PowerMonitor_SlowCalc(PowerMonitor_t *hpm)
|
|||||||
/* Средниее напряжение фазы */
|
/* Средниее напряжение фазы */
|
||||||
uphase_mean = Filter_Process(&hpm->rms[RMS_U+i], meas->slow.U[i]);
|
uphase_mean = Filter_Process(&hpm->rms[RMS_U+i], meas->slow.U[i]);
|
||||||
meas->final.U[i] = Filter_Process(&hpm->rms_exp[RMS_U+i], uphase_mean);
|
meas->final.U[i] = Filter_Process(&hpm->rms_exp[RMS_U+i], uphase_mean);
|
||||||
|
umean += meas->final.U[i];
|
||||||
|
|
||||||
/* Средний ток фазы */
|
/* Средний ток фазы */
|
||||||
iphase_mean = Filter_Process(&hpm->rms[RMS_I+i], meas->slow.I[i]);
|
iphase_mean = Filter_Process(&hpm->rms[RMS_I+i], meas->slow.I[i]);
|
||||||
@@ -196,10 +197,10 @@ void PowerMonitor_FastCalc(PowerMonitor_t *hpm)
|
|||||||
ADC_UpdateRegular(&hpm->adc);
|
ADC_UpdateRegular(&hpm->adc);
|
||||||
|
|
||||||
/* Заполняем Напряжения/Токи в о.е. */
|
/* Заполняем Напряжения/Токи в о.е. */
|
||||||
float uba_fast = hpm->adc.Data[ADC_CHANNEL_UBA]/u_base;
|
meas->fast.U[U_AB] = hpm->adc.Data[ADC_CHANNEL_UBA]/u_base;
|
||||||
float uac_fast = hpm->adc.Data[ADC_CHANNEL_UAC]/u_base;
|
meas->fast.U[U_CA] = hpm->adc.Data[ADC_CHANNEL_UAC]/u_base;
|
||||||
meas->fast.U[U_AB] = Filter_Process(&hpm->ufltr[U_AB], uba_fast);
|
// meas->fast.U[U_AB] = Filter_Process(&hpm->ufltr[U_AB], uba_fast);
|
||||||
meas->fast.U[U_CA] = Filter_Process(&hpm->ufltr[U_CA], uac_fast);
|
// meas->fast.U[U_CA] = Filter_Process(&hpm->ufltr[U_CA], uac_fast);
|
||||||
meas->fast.U[U_BC] = U_BC_calc(meas->fast.U[U_AB], meas->fast.U[U_CA]);
|
meas->fast.U[U_BC] = U_BC_calc(meas->fast.U[U_AB], meas->fast.U[U_CA]);
|
||||||
|
|
||||||
meas->fast.I[I_C] = hpm->adc.Data[ADC_CHANNEL_IC]/i_base;
|
meas->fast.I[I_C] = hpm->adc.Data[ADC_CHANNEL_IC]/i_base;
|
||||||
|
|||||||
@@ -146,11 +146,10 @@ HAL_StatusTypeDef Angle_SetAlpha(Angle_Handle_t *hangle, float Alpha, float Corr
|
|||||||
{
|
{
|
||||||
if(assert_upp(hangle))
|
if(assert_upp(hangle))
|
||||||
return HAL_ERROR;
|
return HAL_ERROR;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(Alpha > hangle->Config.AngleMax)
|
if(Alpha > hangle->Config.AngleMax)
|
||||||
Alpha = hangle->Config.AngleMax;
|
Alpha = hangle->Config.AngleMax;
|
||||||
|
|
||||||
if(Alpha < hangle->Config.AngleMin)
|
if(Alpha < hangle->Config.AngleMin)
|
||||||
Alpha = hangle->Config.AngleMin;
|
Alpha = hangle->Config.AngleMin;
|
||||||
|
|
||||||
|
|||||||
@@ -280,7 +280,7 @@
|
|||||||
<bEvRecOn>1</bEvRecOn>
|
<bEvRecOn>1</bEvRecOn>
|
||||||
<bSchkAxf>0</bSchkAxf>
|
<bSchkAxf>0</bSchkAxf>
|
||||||
<bTchkAxf>0</bTchkAxf>
|
<bTchkAxf>0</bTchkAxf>
|
||||||
<nTsel>6</nTsel>
|
<nTsel>4</nTsel>
|
||||||
<sDll></sDll>
|
<sDll></sDll>
|
||||||
<sDllPa></sDllPa>
|
<sDllPa></sDllPa>
|
||||||
<sDlgDll></sDlgDll>
|
<sDlgDll></sDlgDll>
|
||||||
@@ -291,9 +291,14 @@
|
|||||||
<tDlgDll></tDlgDll>
|
<tDlgDll></tDlgDll>
|
||||||
<tDlgPa></tDlgPa>
|
<tDlgPa></tDlgPa>
|
||||||
<tIfile></tIfile>
|
<tIfile></tIfile>
|
||||||
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
<pMon>Segger\JL2CM3.dll</pMon>
|
||||||
</DebugOpt>
|
</DebugOpt>
|
||||||
<TargetDriverDllRegistry>
|
<TargetDriverDllRegistry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>JL2CM3</Key>
|
||||||
|
<Name>-U60145553 -O14 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight JTAG-DP") -D00(4BA00477) -L00(4) -N01("Unknown JTAG device") -D01(06413041) -L01(5) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F417ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
<Key>ARMRTXEVENTFLAGS</Key>
|
<Key>ARMRTXEVENTFLAGS</Key>
|
||||||
@@ -312,7 +317,7 @@
|
|||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
<Key>DLGUARM</Key>
|
<Key>DLGUARM</Key>
|
||||||
<Name>(105=-1,-1,-1,-1,0)</Name>
|
<Name></Name>
|
||||||
</SetRegEntry>
|
</SetRegEntry>
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
@@ -552,13 +557,6 @@
|
|||||||
<pszMrulep></pszMrulep>
|
<pszMrulep></pszMrulep>
|
||||||
<pSingCmdsp></pSingCmdsp>
|
<pSingCmdsp></pSingCmdsp>
|
||||||
<pMultCmdsp></pMultCmdsp>
|
<pMultCmdsp></pMultCmdsp>
|
||||||
<LogicAnalyzers>
|
|
||||||
<Wi>
|
|
||||||
<IntNumber>0</IntNumber>
|
|
||||||
<FirstString>`upp.pm.measured.final.U[0]</FirstString>
|
|
||||||
<SecondString>008000000000000000000000000000000000F03F000000000000000000000000000000007570702E706D2E6D656173757265642E66696E616C2E555B305D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000001000000000000000000F03F140000000000000000000000000000000000000020B20008</SecondString>
|
|
||||||
</Wi>
|
|
||||||
</LogicAnalyzers>
|
|
||||||
<SystemViewers>
|
<SystemViewers>
|
||||||
<Entry>
|
<Entry>
|
||||||
<Name>System Viewer\ADC3</Name>
|
<Name>System Viewer\ADC3</Name>
|
||||||
|
|||||||
Reference in New Issue
Block a user