Фиксы после рефакторинга
This commit is contained in:
@@ -27,7 +27,7 @@
|
||||
#define UPP_DISABLE_PROTECT_BOARDPOWER ///< Отключить проверки питания плат (+24, +5 В)
|
||||
#define UPP_DISABLE_PROTECT_LOSS_PHASE ///< Отключить проверки на потерянные фазы
|
||||
|
||||
#define ZC_DISABLE_HYSTERESIS_DEBOUNCE ///< Отключить гиситерезис и дребезг на определении перехода через ноль
|
||||
//#define ZC_DISABLE_HYSTERESIS_DEBOUNCE ///< Отключить гиситерезис и дребезг на определении перехода через ноль
|
||||
|
||||
/** //UPP_PARAMS_TEST
|
||||
* @}
|
||||
@@ -172,7 +172,7 @@
|
||||
#undef UPP_INIT_BEFORE_READY_MS
|
||||
|
||||
|
||||
#define UPP_INIT_BEFORE_READY_MS 100 ///< Сколько сканировать сеть, перед выставлением состояния готовности
|
||||
#define UPP_INIT_BEFORE_READY_MS 300 ///< Сколько сканировать сеть, перед выставлением состояния готовности
|
||||
|
||||
|
||||
#endif //defined(MATLAB)
|
||||
|
||||
@@ -79,19 +79,19 @@ typedef enum {
|
||||
* @brief Структура данных от УПП передаваемых в ПУИ
|
||||
*/
|
||||
typedef struct {
|
||||
uint16_t Error; /** @brief Текущая авария
|
||||
uint16_t Error; /** @brief Адрес 0: Текущая авария
|
||||
@details В случае срабатывания защиты */
|
||||
|
||||
uint16_t WorkMode; /** @brief Режим работы
|
||||
uint16_t WorkMode; /** @brief Адрес 1: Режим работы
|
||||
@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;
|
||||
|
||||
/**
|
||||
@@ -100,39 +100,39 @@ typedef struct {
|
||||
* @note Защиты №X приведены в @ref UPP_ErrorType_t
|
||||
*/
|
||||
typedef struct {
|
||||
uint16_t Iref; /** @brief Уставка ограничения тока УПП
|
||||
uint16_t Iref; /** @brief Адрес 0: Уставка ограничения тока УПП
|
||||
@details В диапазоне от 100 % до 500 % от Iн = 5 А
|
||||
По умолчанию – @ref PUI_Iref_PERCENT_DEFAULT */
|
||||
|
||||
uint16_t Tnt; /** @brief Уставка времени нарастания заданного тока
|
||||
uint16_t Tnt; /** @brief Адрес 1: Уставка времени нарастания заданного тока
|
||||
@details В диапазоне от 50 до 5000 мс.
|
||||
По умолчанию – @ref PUI_Tnt_MS_DEFAULT */
|
||||
|
||||
uint16_t Umin; /** @brief Уставка защиты №15 от понижения напряжения входной сети
|
||||
uint16_t Umin; /** @brief Адрес 2: Уставка защиты №15 от понижения напряжения входной сети
|
||||
@details В диапазоне от 5% до 99 % от Uн = 690 В.
|
||||
По умолчанию – @ref PUI_Umin_PERCENT_DEFAULT */
|
||||
|
||||
uint16_t Umax; /** @brief Уставка защиты №13 от повышения напряжения входной сети
|
||||
uint16_t Umax; /** @brief Адрес 3: Уставка защиты №13 от повышения напряжения входной сети
|
||||
@details В диапазоне от 100% до 120 % от Uн = 690 В.
|
||||
По умолчанию – @ref PUI_Umax_PERCENT_DEFAULT */
|
||||
|
||||
uint16_t Imax; /** @brief Уставка защиты №12 по току
|
||||
uint16_t Imax; /** @brief Адрес 4: Уставка защиты №12 по току
|
||||
@details В диапазоне от 5 % до 99 % от 50 А.
|
||||
По умолчанию – @ref PUI_Imax_PERCENT_DEFAULT */
|
||||
|
||||
uint16_t Imin; /** @brief Уставка защит № 16 – №19 от обрыва фаз(ы)
|
||||
uint16_t Imin; /** @brief Адрес 5: Уставка защит № 16 – №19 от обрыва фаз(ы)
|
||||
@details В диапазоне от 0 % до 40 % от Iн = 5 А. При задании нуля эти защиты отключаются.
|
||||
По умолчанию – @ref PUI_Imin_PERCENT_DEFAULT */
|
||||
|
||||
uint16_t TiMax; /** @brief Выдержка времени на срабатывание защиты № 12 по току
|
||||
uint16_t TiMax; /** @brief Адрес 6: Выдержка времени на срабатывание защиты № 12 по току
|
||||
@details В диапазоне от 500 до 10000 мкс.
|
||||
По умолчанию – @ref PUI_TiMax_US_DEFAULT */
|
||||
|
||||
uint16_t Tdelay; /** @brief Выдержка времени защиты № 20 от затянутого пуска
|
||||
uint16_t Tdelay; /** @brief Адрес 7: Выдержка времени защиты № 20 от затянутого пуска
|
||||
@details В диапазоне от 5 до 60 с.
|
||||
По умолчанию – @ref PUI_Tdelay_SECONDS_DEFAULT */
|
||||
|
||||
uint16_t Interlace; /** @brief Разрешение защиты № 21 от обратного порядка чередования фаз;
|
||||
uint16_t Interlace; /** @brief Адрес 8: Разрешение защиты № 21 от обратного порядка чередования фаз;
|
||||
@details 0 – нет защиты, 1 – есть защита.
|
||||
По умолчанию – @ref PUI_Interlace_EN_DEFAULT */
|
||||
} UPP_PUI_Params_t;
|
||||
|
||||
@@ -29,13 +29,13 @@ static void ADC_InitAllFilters(ADC_Periodic_t *adc)
|
||||
for(int i = 0; i < 2; i++)
|
||||
{
|
||||
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],
|
||||
(float *)adc_temp_quants,
|
||||
(float *)adc_temp_vals,
|
||||
numbof(adc_temp_quants), 1);
|
||||
}
|
||||
|
||||
|
||||
// Запуск фильтров
|
||||
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 i_ind = ADC_I_CHANNELS_START + i;
|
||||
// заменяем сырые данные на отфильтрованные данные
|
||||
raw[u_ind] = Filter_Process(&adc->u_fltr[i], raw[u_ind]);
|
||||
raw[i_ind] = Filter_Process(&adc->i_fltr[i], raw[i_ind]);
|
||||
int raw_u = Filter_Process(&adc->u_fltr[i], (int)raw[u_ind]-2048);
|
||||
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++)
|
||||
{
|
||||
if(FilterBandPassDerivative_Init(&hpm->ufltr[i], (50.0f*PM_FAST_PERIOD_US/1000000), 0.1))
|
||||
return HAL_ERROR;
|
||||
|
||||
Filter_Start(&hpm->ufltr[i]);
|
||||
// if(FilterBandPassDerivative_Init(&hpm->ufltr[i], (50.0f*PM_FAST_PERIOD_US/1000000), 0.1))
|
||||
// return HAL_ERROR;
|
||||
//
|
||||
// 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]);
|
||||
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]);
|
||||
@@ -196,10 +197,10 @@ void PowerMonitor_FastCalc(PowerMonitor_t *hpm)
|
||||
ADC_UpdateRegular(&hpm->adc);
|
||||
|
||||
/* Заполняем Напряжения/Токи в о.е. */
|
||||
float uba_fast = hpm->adc.Data[ADC_CHANNEL_UBA]/u_base;
|
||||
float uac_fast = 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_CA] = Filter_Process(&hpm->ufltr[U_CA], uac_fast);
|
||||
meas->fast.U[U_AB] = hpm->adc.Data[ADC_CHANNEL_UBA]/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_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.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))
|
||||
return HAL_ERROR;
|
||||
|
||||
|
||||
|
||||
|
||||
if(Alpha > hangle->Config.AngleMax)
|
||||
Alpha = hangle->Config.AngleMax;
|
||||
|
||||
if(Alpha < hangle->Config.AngleMin)
|
||||
Alpha = hangle->Config.AngleMin;
|
||||
|
||||
|
||||
@@ -280,7 +280,7 @@
|
||||
<bEvRecOn>1</bEvRecOn>
|
||||
<bSchkAxf>0</bSchkAxf>
|
||||
<bTchkAxf>0</bTchkAxf>
|
||||
<nTsel>6</nTsel>
|
||||
<nTsel>4</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
@@ -291,9 +291,14 @@
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||
<pMon>Segger\JL2CM3.dll</pMon>
|
||||
</DebugOpt>
|
||||
<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>
|
||||
<Number>0</Number>
|
||||
<Key>ARMRTXEVENTFLAGS</Key>
|
||||
@@ -312,7 +317,7 @@
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGUARM</Key>
|
||||
<Name>(105=-1,-1,-1,-1,0)</Name>
|
||||
<Name></Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
@@ -552,13 +557,6 @@
|
||||
<pszMrulep></pszMrulep>
|
||||
<pSingCmdsp></pSingCmdsp>
|
||||
<pMultCmdsp></pMultCmdsp>
|
||||
<LogicAnalyzers>
|
||||
<Wi>
|
||||
<IntNumber>0</IntNumber>
|
||||
<FirstString>`upp.pm.measured.final.U[0]</FirstString>
|
||||
<SecondString>008000000000000000000000000000000000F03F000000000000000000000000000000007570702E706D2E6D656173757265642E66696E616C2E555B305D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000001000000000000000000F03F140000000000000000000000000000000000000020B20008</SecondString>
|
||||
</Wi>
|
||||
</LogicAnalyzers>
|
||||
<SystemViewers>
|
||||
<Entry>
|
||||
<Name>System Viewer\ADC3</Name>
|
||||
|
||||
Reference in New Issue
Block a user