Рефакторинг и фиксы
Добавлено управление от ПУИ
This commit is contained in:
@@ -81,16 +81,19 @@ MB_ExceptionTypeDef MB_DefineRegistersAddress(uint16_t **pRegs, uint16_t Addr, u
|
||||
return ET_ILLEGAL_DATA_VALUE; // return exception code
|
||||
}
|
||||
|
||||
int local_addr = 0;
|
||||
if(RegisterType == RegisterType_Holding)
|
||||
{
|
||||
// Default holding registers
|
||||
if(MB_Check_Address_For_Arr(Addr, Qnt, R_HOLDING_ADDR, R_HOLDING_QNT) == ET_NO_ERRORS)
|
||||
{
|
||||
*pRegs = MB_Set_Register_Ptr(&MB_DATA.HoldRegs, Addr - R_HOLDING_ADDR); // указатель на выбранный по Addr регистр
|
||||
local_addr = Addr - R_HOLDING_ADDR;
|
||||
*pRegs = MB_Set_Register_Ptr(&MB_DATA.HoldRegs, local_addr); // указатель на выбранный по Addr регистр
|
||||
}
|
||||
else if(MB_Check_Address_For_Arr(Addr, Qnt, R_HOLDING_PRVT_PARAMS_ADR, R_HOLDING_PRVT_PARAMS_QNT) == ET_NO_ERRORS)
|
||||
else if(MB_Check_Address_For_Arr(Addr, Qnt, R_HOLDING_PRVT_ADDR, R_HOLDING_PRVT_QNT) == ET_NO_ERRORS)
|
||||
{
|
||||
*pRegs = MB_Set_Register_Ptr(&MB_INTERNAL, Addr - R_HOLDING_PRVT_PARAMS_ADR); // указатель на выбранный по Addr регистр
|
||||
local_addr = Addr - R_HOLDING_PRVT_ADDR;
|
||||
*pRegs = MB_Set_Register_Ptr(&MB_INTERNAL.param, local_addr); // указатель на выбранный по Addr регистр
|
||||
}
|
||||
// if address doesnt match any array - return illegal data address response
|
||||
else
|
||||
@@ -103,7 +106,8 @@ MB_ExceptionTypeDef MB_DefineRegistersAddress(uint16_t **pRegs, uint16_t Addr, u
|
||||
// Default input registers
|
||||
if(MB_Check_Address_For_Arr(Addr, Qnt, R_INPUT_ADDR, R_INPUT_QNT) == ET_NO_ERRORS)
|
||||
{
|
||||
*pRegs = MB_Set_Register_Ptr(&MB_DATA.InRegs, Addr - R_INPUT_ADDR); // указатель на выбранный по Addr регистр
|
||||
local_addr = Addr - R_INPUT_ADDR;
|
||||
*pRegs = MB_Set_Register_Ptr(&MB_DATA.InRegs, local_addr); // указатель на выбранный по Addr регистр
|
||||
}
|
||||
// if address doesnt match any array - return illegal data address response
|
||||
else
|
||||
@@ -135,7 +139,12 @@ MB_ExceptionTypeDef MB_DefineCoilsAddress(uint16_t **pCoils, uint16_t Addr, uint
|
||||
/* В режиме работа ничего не записываем */
|
||||
if((upp.workmode == UPP_Work) && WriteFlag)
|
||||
{
|
||||
return ET_ILLEGAL_FUNCTION;
|
||||
/* Оставляем только запись регистрво управления */
|
||||
int is_control_register = (Addr > 100 && Addr + Qnt <= 101);
|
||||
if(!is_control_register)
|
||||
{
|
||||
return ET_ILLEGAL_FUNCTION;
|
||||
}
|
||||
}
|
||||
|
||||
/* check quantity error */
|
||||
@@ -143,11 +152,18 @@ MB_ExceptionTypeDef MB_DefineCoilsAddress(uint16_t **pCoils, uint16_t Addr, uint
|
||||
{
|
||||
return ET_ILLEGAL_DATA_VALUE; // return exception code
|
||||
}
|
||||
|
||||
|
||||
int local_addr = 0;
|
||||
// Default coils
|
||||
if(MB_Check_Address_For_Arr(Addr, Qnt, C_COILS_ADDR, C_COILS_QNT) == ET_NO_ERRORS)
|
||||
{
|
||||
*pCoils = MB_Set_Coil_Reg_Ptr(&MB_DATA.Coils, Addr - C_COILS_ADDR); // указатель на выбранный по Addr массив коилов
|
||||
local_addr = Addr - C_COILS_ADDR;
|
||||
*pCoils = MB_Set_Coil_Reg_Ptr(&MB_DATA.Coils, local_addr); // указатель на выбранный по Addr массив коилов
|
||||
}
|
||||
else if(MB_Check_Address_For_Arr(Addr, Qnt, C_COILS_PRVT_ADDR, C_COILS_PRVT_QNT) == ET_NO_ERRORS)
|
||||
{
|
||||
local_addr = Addr - C_COILS_PRVT_ADDR;
|
||||
*pCoils = MB_Set_Coil_Reg_Ptr(&MB_INTERNAL.FuncCalls, local_addr); // указатель на выбранный по Addr массив коилов
|
||||
}
|
||||
// if address doesnt match any array - return illegal data address response
|
||||
else
|
||||
@@ -155,7 +171,7 @@ MB_ExceptionTypeDef MB_DefineCoilsAddress(uint16_t **pCoils, uint16_t Addr, uint
|
||||
return ET_ILLEGAL_DATA_ADDRESS;
|
||||
}
|
||||
|
||||
*start_shift = Addr % 16; // set shift to requested coil
|
||||
*start_shift = local_addr % 16; // set shift to requested coil
|
||||
// if found requeried array return no err
|
||||
return ET_NO_ERRORS; // return no errors
|
||||
}
|
||||
|
||||
@@ -56,23 +56,6 @@
|
||||
#include "stdint.h"
|
||||
|
||||
|
||||
|
||||
//--------------SIZES OF DATA---------------
|
||||
#define R_HOLDING_PRVT_PARAMS_ADR 555
|
||||
#define R_HOLDING_PRVT_PARAMS_QNT (sizeof(UPP_PrvtParams_t)/sizeof(uint16_t))
|
||||
|
||||
// DEFINES FOR INPUT REGISTERS ARRAYS
|
||||
#define R_INPUT_ADDR 0 ///< Начальный адрес входных регистров
|
||||
#define R_INPUT_QNT (sizeof(UPP_PUI_Values_t)/sizeof(uint16_t)) ///< Количество входных регистров
|
||||
|
||||
// DEFINES FOR HOLDING REGISTERS ARRAYS
|
||||
#define R_HOLDING_ADDR 0 ///< Начальный адрес регистров хранения
|
||||
#define R_HOLDING_QNT (2000) ///< Количество регистров хранения
|
||||
|
||||
// DEFINES FOR COIL ARRAYS
|
||||
#define C_COILS_ADDR 0 ///< Начальный адрес коилов
|
||||
#define C_COILS_QNT 16 ///< Количество регистров коилов
|
||||
|
||||
//--------------DEFINES FOR REGISTERS---------------
|
||||
// DEFINES FOR ARRAYS
|
||||
/**
|
||||
@@ -93,7 +76,7 @@
|
||||
*/
|
||||
typedef struct //MB_DataInRegsTypeDef
|
||||
{
|
||||
UPP_PUI_Values_t pui;
|
||||
UPP_PUI_Values_t pui_values;
|
||||
}MB_DataInRegsTypeDef;
|
||||
|
||||
|
||||
@@ -102,7 +85,10 @@ typedef struct //MB_DataInRegsTypeDef
|
||||
*/
|
||||
typedef struct //MB_DataInRegsTypeDef
|
||||
{
|
||||
UPP_PUI_Params_t pui_params;
|
||||
UPP_PUI_Params_t pui_params; ///< Адрес 0 и далее : Уставки от ПУИ
|
||||
uint16_t reserved1[mb_fill_rsv(100, UPP_PUI_Params_t)];
|
||||
|
||||
UPP_PUI_Control_t pui_control; ///< Адрес 100 и далее: Управление от ПУИ
|
||||
}MB_DataHoldRegsTypeDef;
|
||||
|
||||
|
||||
@@ -172,6 +158,30 @@ typedef struct
|
||||
}MB_DataInternalTypeDef;
|
||||
extern MB_DataInternalTypeDef MB_INTERNAL;
|
||||
|
||||
|
||||
|
||||
//--------------SIZES OF DATA---------------
|
||||
#define R_HOLDING_PRVT_ADDR 1000
|
||||
#define R_HOLDING_PRVT_QNT (sizeof(UPP_PrvtParams_t)/sizeof(uint16_t))
|
||||
|
||||
#define C_COILS_PRVT_ADDR 1000
|
||||
#define C_COILS_PRVT_QNT (16)
|
||||
|
||||
// DEFINES FOR INPUT REGISTERS ARRAYS
|
||||
#define R_INPUT_ADDR 0 ///< Начальный адрес входных регистров
|
||||
#define R_INPUT_QNT (sizeof(MB_DataInRegsTypeDef)/sizeof(uint16_t)) ///< Количество входных регистров
|
||||
|
||||
// DEFINES FOR HOLDING REGISTERS ARRAYS
|
||||
#define R_HOLDING_ADDR 0 ///< Начальный адрес регистров хранения
|
||||
#define R_HOLDING_QNT (sizeof(MB_DataHoldRegsTypeDef)/sizeof(uint16_t)) ///< Количество регистров хранения
|
||||
|
||||
// DEFINES FOR COIL ARRAYS
|
||||
#define C_COILS_ADDR 0 ///< Начальный адрес коилов
|
||||
#define C_COILS_QNT 0 ///< Количество регистров коилов
|
||||
|
||||
|
||||
|
||||
|
||||
#endif //_MODBUS_DATA_H_
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -106,6 +106,7 @@
|
||||
#define ERRORS_DELAY_MS_UAMP_ERR 1500 // todo
|
||||
#define ERRORS_DELAY_MS_F_ERR 5000
|
||||
#define ERRORS_DELAY_MS_CRITICAL_ERR 0.0f
|
||||
#define ERRORS_DELAY_MS_POWERBOARDS 2000
|
||||
#define ERRORS_DELAY_MS_DEFAULT 0.1f
|
||||
|
||||
|
||||
|
||||
@@ -15,6 +15,20 @@
|
||||
#include "upp_config.h"
|
||||
|
||||
|
||||
/**
|
||||
* @brief Определить размер структуры в регистрах модбас (16-бит слова)
|
||||
*/
|
||||
#define mb_sizeof(_struct_) (sizeof(_struct_)/sizeof(uint16_t))
|
||||
/**
|
||||
* @brief Определить количество резервных байт для выравнивания
|
||||
* @details Выравнивает так, чтобы количество регистров в _struct_ и reserved равнялось _align_.
|
||||
*
|
||||
*/
|
||||
#define mb_fill_rsv(_align_, _struct_) ((_align_ > mb_sizeof(_struct_)) ? (_align_ - mb_sizeof(_struct_)) : 0)
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @addtogroup UPP_HIGHLEVEL Defines for high-level
|
||||
* @ingroup UPP_DEFS
|
||||
@@ -27,10 +41,10 @@
|
||||
* @brief Список аварий УПП
|
||||
*/
|
||||
typedef enum {
|
||||
UPP_Init = 0, ///< УПП не инициализирован
|
||||
UPP_Ready = 1, ///< УПП в готовности
|
||||
UPP_Work = 2, ///< УПП в работе, управляет тиристорами
|
||||
UPP_Error = 3, ///< УПП в аварии
|
||||
UPP_Error = 0, ///< УПП в аварии
|
||||
UPP_Init = 1, ///< УПП не инициализирован
|
||||
UPP_Ready = 2, ///< УПП в готовности
|
||||
UPP_Work = 3, ///< УПП в работе, управляет тиристорами
|
||||
// WM_Done = 3, ///< УПП закончил свою работу
|
||||
} UPP_WorkModeType_t;
|
||||
|
||||
@@ -118,12 +132,13 @@ typedef struct
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint16_t NoConnectionPCH:1;
|
||||
uint16_t Workmode:2;
|
||||
uint16_t NoConnectionLSU:1;
|
||||
uint16_t NoInputVoltage:1;
|
||||
uint16_t CurrentLimited:1;
|
||||
uint16_t OverVoltage:1;
|
||||
uint16_t UnderVoltage:1;
|
||||
}UPP_PUI_Warnings_t;
|
||||
}UPP_PUI_Status_t;
|
||||
|
||||
/**
|
||||
* @brief Структура данных от УПП передаваемых в ПУИ
|
||||
@@ -131,36 +146,32 @@ typedef struct
|
||||
typedef struct {
|
||||
uint16_t Error; /** @brief Адрес 0: Текущая авария
|
||||
@details В случае срабатывания защиты */
|
||||
|
||||
uint16_t WorkMode; /** @brief Адрес 1: Режим работы
|
||||
@details «Готовность» или «Работа» */
|
||||
|
||||
uint16_t Uall; /** @brief Адрес 2: Среднее напряжение по трем фазам на входе УПП (RMS), Вольты */
|
||||
uint16_t Uab; /** @brief Адрес 3: Напряжение фазы AB (RMS), Вольты */
|
||||
uint16_t Ubc; /** @brief Адрес 4: Напряжение фазы BC (RMS), Вольты */
|
||||
uint16_t Uca; /** @brief Адрес 5: Напряжение фазы CA (RMS), Вольты */
|
||||
|
||||
uint16_t Iall; /** @brief Адрес 6: Средний ток по трем фазам на входе УПП (RMS), Амперы */
|
||||
uint16_t Ia; /** @brief Адрес 7: Ток фазы A (RMS), Амперы */
|
||||
uint16_t Ib; /** @brief Адрес 8: Ток фазы B (RMS), Амперы */
|
||||
uint16_t Ic; /** @brief Адрес 9: Ток фазы C (RMS), Амперы */
|
||||
|
||||
uint16_t Fall; /** @brief Адрес 10: Средняя частота напряжений по трем фазам на входе УПП, Герцы */
|
||||
uint16_t Fab; /** @brief Адрес 11: Частота напряжения фазы AB, Герцы */
|
||||
uint16_t Fbc; /** @brief Адрес 12: Частота напряжения фазы BC, Герцы */
|
||||
uint16_t Fca; /** @brief Адрес 13: Частота напряжения фазы CA, Герцы */
|
||||
|
||||
uint16_t Trad; /** @brief Адрес 14: Температура радиатора тиристоров, Градусы Цельсия */
|
||||
uint16_t Tshkaf; /** @brief Адрес 15: Температура внутри шкафа УПП, Градусы Цельсия */
|
||||
|
||||
uint16_t reserved[34]; /** @brief Адрес 16-49: Зарезервированны */
|
||||
|
||||
|
||||
union
|
||||
{
|
||||
uint16_t all;
|
||||
UPP_PUI_Warnings_t warn;
|
||||
}Warnings; /** @brief Адрес 50: Предупреждения УПП */
|
||||
UPP_PUI_Status_t bit;
|
||||
}Status; /** @brief Адрес 1: Состояние УПП */
|
||||
|
||||
uint16_t reserved[3];
|
||||
|
||||
uint16_t Uall; /** @brief Адрес 5: Среднее напряжение по трем фазам на входе УПП (RMS), Вольты */
|
||||
uint16_t Uab; /** @brief Адрес 6: Напряжение фазы AB (RMS), Вольты */
|
||||
uint16_t Ubc; /** @brief Адрес 7: Напряжение фазы BC (RMS), Вольты */
|
||||
uint16_t Uca; /** @brief Адрес 8: Напряжение фазы CA (RMS), Вольты */
|
||||
|
||||
uint16_t Iall; /** @brief Адрес 9: Средний ток по трем фазам на входе УПП (RMS), Амперы */
|
||||
uint16_t Ia; /** @brief Адрес 10: Ток фазы A (RMS), Амперы */
|
||||
uint16_t Ib; /** @brief Адрес 11: Ток фазы B (RMS), Амперы */
|
||||
uint16_t Ic; /** @brief Адрес 12: Ток фазы C (RMS), Амперы */
|
||||
|
||||
uint16_t Fall; /** @brief Адрес 13: Средняя частота напряжений по трем фазам на входе УПП, Герцы */
|
||||
uint16_t Fab; /** @brief Адрес 14: Частота напряжения фазы AB, Герцы */
|
||||
uint16_t Fbc; /** @brief Адрес 15: Частота напряжения фазы BC, Герцы */
|
||||
uint16_t Fca; /** @brief Адрес 16: Частота напряжения фазы CA, Герцы */
|
||||
|
||||
uint16_t Trad; /** @brief Адрес 17: Температура радиатора тиристоров, Градусы Цельсия */
|
||||
uint16_t Tshkaf; /** @brief Адрес 18: Температура внутри шкафа УПП, Градусы Цельсия */
|
||||
|
||||
} UPP_PUI_Values_t;
|
||||
|
||||
/**
|
||||
@@ -207,6 +218,15 @@ typedef struct {
|
||||
} UPP_PUI_Params_t;
|
||||
|
||||
|
||||
/**
|
||||
* @brief Структура управления УПП от ПУИ
|
||||
* @details Параметры по умолчанию приведены в @ref UPP_PARAMS_DEFAULT
|
||||
* @note Защиты №X приведены в @ref UPP_ErrorType_t
|
||||
*/
|
||||
typedef struct {
|
||||
uint16_t Pusk; /** @brief Адрес 100: Пуск УПП
|
||||
@details 0 – Остановка и сброс ошибок УПП, 1 – Запуск УПП */
|
||||
} UPP_PUI_Control_t;
|
||||
/** //UPP_HIGHLEVEL
|
||||
* @}
|
||||
*/
|
||||
|
||||
@@ -107,8 +107,8 @@ void PowerMonitor_SlowCalc(PowerMonitor_t *hpm)
|
||||
ADC_UpdateTemperatures(&hpm->adc);
|
||||
float t1 = hpm->adc.Data[ADC_CHANNEL_TEMP1];
|
||||
float t2 = hpm->adc.Data[ADC_CHANNEL_TEMP2];
|
||||
meas->final.T[TEMP_RAD] = Filter_Process(&hpm->avg[AVG_TEMP1], t1);
|
||||
meas->final.T[TEMP_SHKAF] = Filter_Process(&hpm->avg[AVG_TEMP2], t2);
|
||||
meas->final.T[TEMP_SHKAF] = Filter_Process(&hpm->avg[AVG_TEMP1], t1);
|
||||
meas->final.T[TEMP_RAD] = Filter_Process(&hpm->avg[AVG_TEMP2], t2);
|
||||
|
||||
/* Расчет третьей фазы */
|
||||
meas->slow.U[U_BC] = U_BC_calc(meas->slow.U[U_AB], meas->slow.U[U_CA]);
|
||||
|
||||
@@ -134,11 +134,17 @@ void MX_GPIO_Init(void)
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(ERR_5VSI_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PDPin PDPin PDPin */
|
||||
GPIO_InitStruct.Pin = DIN3_Pin|ERR_24VDIO_Pin|DIN2_Pin;
|
||||
/*Configure GPIO pins : PDPin PDPin */
|
||||
GPIO_InitStruct.Pin = DIN3_Pin|DIN2_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PtPin */
|
||||
GPIO_InitStruct.Pin = ERR_24VDIO_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
||||
HAL_GPIO_Init(ERR_24VDIO_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PtPin */
|
||||
GPIO_InitStruct.Pin = ERR_24V_Pin;
|
||||
|
||||
@@ -57,8 +57,12 @@ void UPP_Errors_Program(void)
|
||||
|
||||
void UPP_Errors_Power(void)
|
||||
{
|
||||
static int error_latch_ticks = 0;
|
||||
int error_latch_timeout = 5000;
|
||||
/* Счетчики для отсчитывания задержки выставления ошибки */
|
||||
static int Power_DIO_24VCnt = 0;
|
||||
static int Power_24VCnt = 0;
|
||||
static int Power_Digit_5VCnt = 0;
|
||||
static int Power_SCI_5VCnt = 0;
|
||||
static int Power_Analog_5VCnt = 0;
|
||||
|
||||
/* Считывание неисправностей источников питания */
|
||||
int err_24Vdio = GPIO_Read_Switch(&UPP_DIN.err_24Vdio);
|
||||
@@ -67,11 +71,32 @@ void UPP_Errors_Power(void)
|
||||
int err_5Vsi = GPIO_Read_Switch(&UPP_DIN.err_5Vsi);
|
||||
int err_Va = GPIO_Read_Switch(&UPP_DIN.err_Va);
|
||||
|
||||
ERR_PUI->Power_DIO_24V = err_24Vdio;
|
||||
ERR_PUI->Power_24V = err_24V;
|
||||
ERR_PUI->Power_Digit_5V = err_5Vd;
|
||||
ERR_PUI->Power_SCI_5V = err_5Vsi;
|
||||
ERR_PUI->Power_Analog_5V = err_Va;
|
||||
ERR_PUI->Power_DIO_24V = setError(err_24Vdio,
|
||||
ERR_PUI->Power_DIO_24V,
|
||||
&Power_DIO_24VCnt,
|
||||
MS_TO_SLOW_TICKS(ERRORS_DELAY_MS_POWERBOARDS));
|
||||
ERR_PUI->Power_24V = setError(err_24V,
|
||||
ERR_PUI->Power_24V,
|
||||
&Power_24VCnt,
|
||||
MS_TO_SLOW_TICKS(ERRORS_DELAY_MS_POWERBOARDS));
|
||||
ERR_PUI->Power_Digit_5V = setError(err_5Vd,
|
||||
ERR_PUI->Power_Digit_5V,
|
||||
&Power_Digit_5VCnt,
|
||||
MS_TO_SLOW_TICKS(ERRORS_DELAY_MS_POWERBOARDS));
|
||||
ERR_PUI->Power_SCI_5V = setError(err_5Vsi,
|
||||
ERR_PUI->Power_SCI_5V,
|
||||
&Power_SCI_5VCnt,
|
||||
MS_TO_SLOW_TICKS(ERRORS_DELAY_MS_POWERBOARDS));
|
||||
ERR_PUI->Power_Analog_5V = setError(err_Va,
|
||||
ERR_PUI->Power_Analog_5V,
|
||||
&Power_Analog_5VCnt,
|
||||
MS_TO_SLOW_TICKS(ERRORS_DELAY_MS_POWERBOARDS));
|
||||
|
||||
// ERR_PUI->Power_DIO_24V = err_24Vdio;
|
||||
// ERR_PUI->Power_24V = err_24V;
|
||||
// ERR_PUI->Power_Digit_5V = err_5Vd;
|
||||
// ERR_PUI->Power_SCI_5V = err_5Vsi;
|
||||
// ERR_PUI->Power_Analog_5V = err_Va;
|
||||
}
|
||||
|
||||
void UPP_Errors_Ranges(void)
|
||||
@@ -182,17 +207,21 @@ void UPP_Errors_Other(void)
|
||||
static int InterlaceCnt = 0;
|
||||
|
||||
#ifndef UPP_DISABLE_PROTECT_LONGSTART
|
||||
/* Долгий пуск */
|
||||
if(ERR_PRIVATE->longstart)
|
||||
ERR_PUI->LongStart = 1;
|
||||
else
|
||||
ERR_PUI->LongStart = 0;
|
||||
#endif
|
||||
|
||||
ERR_PUI->Interlace = setError(ERR_PRIVATE->interlance,
|
||||
ERR_PUI->Interlace,
|
||||
&InterlaceCnt,
|
||||
MS_TO_SLOW_TICKS(ERRORS_DELAY_MS_DEFAULT));
|
||||
//Interlance
|
||||
/* Неправильный порядок чередования фаз */
|
||||
if(upp.PUI.params->Interlace)
|
||||
{
|
||||
ERR_PUI->Interlace = setError(ERR_PRIVATE->interlance,
|
||||
ERR_PUI->Interlace,
|
||||
&InterlaceCnt,
|
||||
MS_TO_SLOW_TICKS(ERRORS_DELAY_MS_DEFAULT));
|
||||
}
|
||||
}
|
||||
|
||||
static UPP_ErrorType_t UPP_SelectCommonError(void)
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "tim.h"
|
||||
#include "iwdg.h"
|
||||
|
||||
int hardware_init_done = 0;
|
||||
UPP_t upp;
|
||||
RS_HandleTypeDef hmodbus_pui;
|
||||
HAL_StatusTypeDef res; // сюда сохраняется результат от выполения всяких функций
|
||||
@@ -34,8 +35,9 @@ int UPP_App_Init(void)
|
||||
BenchTime_Init();
|
||||
// Подключение указателей
|
||||
upp.errors = &errors;
|
||||
upp.PUI.control = &MB_DATA.HoldRegs.pui_control;
|
||||
upp.PUI.params = &MB_DATA.HoldRegs.pui_params;
|
||||
upp.PUI.values = &MB_DATA.InRegs.pui;
|
||||
upp.PUI.values = &MB_DATA.InRegs.pui_values;
|
||||
upp.call = &MB_INTERNAL.FuncCalls;
|
||||
|
||||
#ifdef UPP_SET_DEFAULT
|
||||
@@ -97,6 +99,7 @@ int UPP_PreWhile(void)
|
||||
|
||||
|
||||
UPP_DO.CEN(ENABLE);
|
||||
hardware_init_done = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -163,28 +166,25 @@ int UPP_While(void)
|
||||
UPP_Errors_Handle();
|
||||
// Контроль парамеров
|
||||
UPP_Params_Control();
|
||||
// Определение режима работы УПП
|
||||
UPP_Status_Handler_SlowCalc();
|
||||
|
||||
|
||||
// Сброс на дефолтные по запросу
|
||||
if(upp.call->set_default_pui || upp.call->set_default_internal)
|
||||
|
||||
// Если КВИТИРОВАНИЕ - переходим в Init, где сбрасываем ошибки
|
||||
if(upp.call->kvitir)
|
||||
{
|
||||
UPP_Params_SetDefault(upp.call->set_default_pui, upp.call->set_default_internal);
|
||||
upp.call->set_default_pui = 0;
|
||||
upp.call->set_default_internal = 0;
|
||||
upp.call->kvitir = 0;
|
||||
upp.call->error_stop = 0;
|
||||
upp.workmode = UPP_Init;
|
||||
}
|
||||
|
||||
#ifndef UPP_DISABLE_ERROR_BLOCK
|
||||
// если ошибка вызываем СТОП
|
||||
upp.call->stop = (errors.common != Err_None);
|
||||
#endif
|
||||
|
||||
// Если СТОП - переходим в ошибку
|
||||
if (upp.call->stop)
|
||||
else if (upp.call->error_stop)
|
||||
{
|
||||
Angle_PID_Reset(&upp.hangle);
|
||||
upp.workmode = UPP_Error;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Автомат состояний УПП
|
||||
switch(upp.workmode)
|
||||
{
|
||||
@@ -278,9 +278,9 @@ int UPP_While(void)
|
||||
UPP_DO.Ready(DISABLE);
|
||||
UPP_DO.Work(DISABLE);
|
||||
UPP_DO.Error(ENABLE);
|
||||
// Находимся до тех пор пока ошибки не будет устранена
|
||||
if(errors.common == Err_None)
|
||||
upp.workmode = UPP_Init;
|
||||
// // Находимся до тех пор пока ошибки не будет устранена
|
||||
// if(errors.common == Err_None)
|
||||
// upp.workmode = UPP_Init;
|
||||
|
||||
retval = 1;
|
||||
break;
|
||||
@@ -303,11 +303,11 @@ int UPP_While(void)
|
||||
*/
|
||||
void UPP_Tick(void)
|
||||
{
|
||||
// Начинаем все проверять только после того как уйдем из режима инициализации
|
||||
if(upp.workmode == UPP_Init)
|
||||
// Начинаем все проверять только после того как инициализируем железо
|
||||
if(hardware_init_done == 0)
|
||||
return;
|
||||
|
||||
UPP_Status_Handler();
|
||||
UPP_Status_Handler_IRQ();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ typedef struct
|
||||
{
|
||||
UPP_PUI_Params_t *params; ///< Параметры от ПУИ
|
||||
UPP_PUI_Values_t *values; ///< Данные для ПУИ
|
||||
UPP_PUI_Control_t *control; ///< Управление от ПУИ
|
||||
} PUI; ///< Общение с ПУИ
|
||||
|
||||
|
||||
|
||||
@@ -17,12 +17,13 @@
|
||||
typedef struct
|
||||
{
|
||||
unsigned go:1; ///< Запустить УПП
|
||||
unsigned stop:1; ///< Остановка УПП (авария)
|
||||
unsigned error_stop:1; ///< Остановка УПП (авария)
|
||||
unsigned kvitir:1; ///< Квитирование ошибок
|
||||
|
||||
unsigned set_default_pui:1; ///< Выставить настройки ПУИ в дефолтные
|
||||
unsigned set_default_internal:1;///< Выставить внутренние настройки в дефолтные
|
||||
|
||||
unsigned reserved:11;
|
||||
unsigned reserved:10;
|
||||
unsigned reset_mcu:1;
|
||||
}UPP_FuncCalls_t;
|
||||
|
||||
@@ -47,6 +48,7 @@ typedef struct
|
||||
typedef struct
|
||||
{
|
||||
UPP_ParamsNominal_t nominal;
|
||||
uint16_t reserved[1];
|
||||
|
||||
/* Параметры Температур */
|
||||
struct
|
||||
@@ -81,7 +83,7 @@ typedef struct
|
||||
uint16_t PhaseMask; ///< Адрес 1050: Битовяя маска на какие фазы подавать ШИМ: 0 бит - a, 1 бит - b, 2 бит - c
|
||||
uint16_t Frequency; ///< Адрес 1051: Частота ШИМ для пачки импульсов на тиристоры [Герцы]
|
||||
uint16_t Duty; ///< Адрес 1052: Скважность ШИМ для пачки импульсов на тиристоры [Проценты]
|
||||
uint16_t PulseLength; ///< Адрес 1053: Количесво импульсов в пачке [Количество]
|
||||
uint16_t PulseLength; ///< Адрес 1053: Длина пачки импульсов [0..1 x 65535 от 180 градусов]
|
||||
uint16_t reserved[6];
|
||||
}pwm;
|
||||
|
||||
|
||||
@@ -8,40 +8,93 @@
|
||||
#include "upp_main.h" // всё остальное по работе с УПП
|
||||
#include "upp_status.h"
|
||||
int cnt_oscil_size = 100;
|
||||
void UPP_Status_Handler(void)
|
||||
|
||||
void UPP_Status_Handler_SlowCalc(void)
|
||||
{
|
||||
static int pui_pusk_prev = 0;
|
||||
static int can_kvitir_prev = 0;
|
||||
int pui_pusk = upp.PUI.control->Pusk;
|
||||
int disc_pusk = GPIO_Read_Switch(&UPP_DIN.Pusk);
|
||||
int mest = GPIO_Read_Switch(&UPP_DIN.MestDist);
|
||||
int can_kvitir = 0;
|
||||
|
||||
|
||||
if(mest) // Если МЕСТНОЕ - управляем от ПУИ
|
||||
{
|
||||
upp.call->go = pui_pusk;
|
||||
// Если пришел СТОП от ПУИ - дополнительно квитируем ошибки
|
||||
if(!pui_pusk && pui_pusk_prev)
|
||||
{
|
||||
upp.call->kvitir = 1;
|
||||
}
|
||||
}
|
||||
else // Если ДИСТАНЦИОННОЕ - управляем от ПУИ
|
||||
{
|
||||
upp.call->go = disc_pusk;
|
||||
upp.call->kvitir = can_kvitir;
|
||||
if(can_kvitir && !can_kvitir_prev)
|
||||
{
|
||||
upp.call->kvitir = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Сброс на дефолтные по запросу
|
||||
if(upp.call->set_default_pui || upp.call->set_default_internal)
|
||||
{
|
||||
UPP_Params_SetDefault(upp.call->set_default_pui, upp.call->set_default_internal);
|
||||
upp.call->set_default_pui = 0;
|
||||
upp.call->set_default_internal = 0;
|
||||
}
|
||||
|
||||
#ifndef UPP_DISABLE_ERROR_BLOCK
|
||||
// если ошибка вызываем СТОП
|
||||
upp.call->error_stop = (errors.common != Err_None);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void UPP_Status_Handler_IRQ(void)
|
||||
{
|
||||
/* Хендлы для отладочных светодиодов (если выбран режим моргания) */
|
||||
GPIO_LED_Dynamic_Handle(&UPP_LEDS.green1);
|
||||
GPIO_LED_Dynamic_Handle(&UPP_LEDS.green2);
|
||||
GPIO_LED_Dynamic_Handle(&UPP_LEDS.red);
|
||||
|
||||
MB_DATA.InRegs.pui.Error = upp.errors->common;
|
||||
MB_DATA.InRegs.pui.WorkMode = upp.workmode;
|
||||
upp.PUI.values->Error = upp.errors->common;
|
||||
upp.PUI.values->Status.bit.Workmode = upp.workmode;
|
||||
upp.PUI.values->Status.bit.NoConnectionLSU = 0; //todo
|
||||
upp.PUI.values->Status.bit.NoInputVoltage = !upp.pm.f.isU;
|
||||
upp.PUI.values->Status.bit.CurrentLimited = upp.hangle.f.CurrentLimited;
|
||||
upp.PUI.values->Status.bit.OverVoltage = upp.errors->pui.err.OverVoltage;
|
||||
upp.PUI.values->Status.bit.UnderVoltage = upp.errors->pui.err.UnderVoltage;
|
||||
|
||||
MB_DATA.InRegs.pui.Uall = upp.pm.measured.final.Uamp * MB_INTERNAL.param.nominal.U;
|
||||
MB_DATA.InRegs.pui.Uab = upp.pm.measured.final.U[U_AB] * MB_INTERNAL.param.nominal.U;
|
||||
MB_DATA.InRegs.pui.Ubc = upp.pm.measured.final.U[U_BC] * MB_INTERNAL.param.nominal.U;
|
||||
MB_DATA.InRegs.pui.Uca = upp.pm.measured.final.U[U_CA] * MB_INTERNAL.param.nominal.U;
|
||||
|
||||
upp.PUI.values->Uall = upp.pm.measured.final.Uamp * MB_INTERNAL.param.nominal.U / 10;
|
||||
upp.PUI.values->Uab = upp.pm.measured.final.U[U_AB] * MB_INTERNAL.param.nominal.U / 10;
|
||||
upp.PUI.values->Ubc = upp.pm.measured.final.U[U_BC] * MB_INTERNAL.param.nominal.U / 10;
|
||||
upp.PUI.values->Uca = upp.pm.measured.final.U[U_CA] * MB_INTERNAL.param.nominal.U / 10;
|
||||
|
||||
MB_DATA.InRegs.pui.Iall = upp.pm.measured.final.Iamp * MB_INTERNAL.param.nominal.I;
|
||||
MB_DATA.InRegs.pui.Ia = upp.pm.measured.final.I[I_A] * MB_INTERNAL.param.nominal.I;
|
||||
MB_DATA.InRegs.pui.Ib = upp.pm.measured.final.I[I_B] * MB_INTERNAL.param.nominal.I;
|
||||
MB_DATA.InRegs.pui.Ic = upp.pm.measured.final.I[I_C] * MB_INTERNAL.param.nominal.I;
|
||||
upp.PUI.values->Iall = upp.pm.measured.final.Iamp * MB_INTERNAL.param.nominal.I;
|
||||
upp.PUI.values->Ia = upp.pm.measured.final.I[I_A] * MB_INTERNAL.param.nominal.I;
|
||||
upp.PUI.values->Ib = upp.pm.measured.final.I[I_B] * MB_INTERNAL.param.nominal.I;
|
||||
upp.PUI.values->Ic = upp.pm.measured.final.I[I_C] * MB_INTERNAL.param.nominal.I;
|
||||
|
||||
MB_DATA.InRegs.pui.Fall = upp.pm.measured.final.Fmean * 10;
|
||||
MB_DATA.InRegs.pui.Fab = upp.pm.measured.final.F[U_AB] * 10;
|
||||
MB_DATA.InRegs.pui.Fbc = upp.pm.measured.final.F[U_BC] * 10;
|
||||
MB_DATA.InRegs.pui.Fca = upp.pm.measured.final.F[U_CA] * 10;
|
||||
upp.PUI.values->Fall = upp.pm.measured.final.Fmean * 10;
|
||||
upp.PUI.values->Fab = upp.pm.measured.final.F[U_AB] * 10;
|
||||
upp.PUI.values->Fbc = upp.pm.measured.final.F[U_BC] * 10;
|
||||
upp.PUI.values->Fca = upp.pm.measured.final.F[U_CA] * 10;
|
||||
|
||||
|
||||
MB_DATA.InRegs.pui.Trad = upp.pm.measured.final.T[TEMP_RAD] * 10;
|
||||
MB_DATA.InRegs.pui.Tshkaf = upp.pm.measured.final.T[TEMP_SHKAF] * 10;
|
||||
|
||||
MB_DATA.InRegs.pui.Warnings.warn.NoConnectionPCH = 0; //todo
|
||||
MB_DATA.InRegs.pui.Warnings.warn.NoInputVoltage = !upp.pm.f.isU;
|
||||
MB_DATA.InRegs.pui.Warnings.warn.CurrentLimited = upp.hangle.f.CurrentLimited;
|
||||
MB_DATA.InRegs.pui.Warnings.warn.OverVoltage = !upp.errors->pui.err.OverVoltage;
|
||||
MB_DATA.InRegs.pui.Warnings.warn.UnderVoltage = !upp.errors->pui.err.UnderVoltage;
|
||||
upp.PUI.values->Trad = upp.pm.measured.final.T[TEMP_RAD] * 10;
|
||||
upp.PUI.values->Tshkaf = upp.pm.measured.final.T[TEMP_SHKAF] * 10;
|
||||
|
||||
|
||||
static int mb_u_cnt = 0;
|
||||
@@ -69,13 +122,4 @@ void UPP_Status_Handler(void)
|
||||
cnt_oscil = 0;
|
||||
}
|
||||
|
||||
|
||||
if(GPIO_Read_Switch(&UPP_DIN.Pusk))
|
||||
{
|
||||
upp.call->go = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
upp.call->go = 0;
|
||||
}
|
||||
}
|
||||
@@ -10,5 +10,6 @@
|
||||
#define _UPP_STATUS_H
|
||||
#include "main.h" // общие библиотеки, конфигурации и вербальные имена из CubeMX
|
||||
|
||||
void UPP_Status_Handler(void);
|
||||
void UPP_Status_Handler_SlowCalc(void);
|
||||
void UPP_Status_Handler_IRQ(void);
|
||||
#endif //_UPP_STATUS_H
|
||||
@@ -165,6 +165,22 @@
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression>\\UPP\../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c\351</Expression>
|
||||
</Bp>
|
||||
<Bp>
|
||||
<Number>1</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>183</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>134280762</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>1</BreakIfRCount>
|
||||
<Filename>..\Core\UPP\upp_main.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression>\\UPP\../Core/UPP/upp_main.c\183</Expression>
|
||||
</Bp>
|
||||
</Breakpoint>
|
||||
<WatchWindow1>
|
||||
<Ww>
|
||||
@@ -247,6 +263,26 @@
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>dbg_polarity</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>16</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>MB_DATA,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>17</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>MB_INTERNAL,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>18</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>&MB_INTERNAL.FuncCalls</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>19</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>pCoils</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<WatchWindow2>
|
||||
<Ww>
|
||||
@@ -317,40 +353,35 @@
|
||||
<Ww>
|
||||
<count>13</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>MB_DATA.InRegs.pui</ItemText>
|
||||
<ItemText>upp.errors->pui.err</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>14</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>upp.errors->pui.err</ItemText>
|
||||
<ItemText>MB_INTERNAL.param.nominal.U,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>15</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>MB_INTERNAL.param.nominal.U,0x0A</ItemText>
|
||||
<ItemText>MB_INTERNAL.param,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>16</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>MB_INTERNAL.param,0x0A</ItemText>
|
||||
<ItemText>upp.hangle,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>17</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>upp.hangle,0x0A</ItemText>
|
||||
<ItemText>MB_INTERNAL.oscil.data,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>18</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>MB_INTERNAL.oscil.data,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>19</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>hmodbus1</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>20</count>
|
||||
<count>19</count>
|
||||
<WinNumber>2</WinNumber>
|
||||
<ItemText>cnt_oscil_size,0x0A</ItemText>
|
||||
</Ww>
|
||||
@@ -402,6 +433,10 @@
|
||||
<Name>System Viewer\ADC3</Name>
|
||||
<WinId>35905</WinId>
|
||||
</Entry>
|
||||
<Entry>
|
||||
<Name>System Viewer\GPIOD</Name>
|
||||
<WinId>35903</WinId>
|
||||
</Entry>
|
||||
<Entry>
|
||||
<Name>System Viewer\TIM1</Name>
|
||||
<WinId>35904</WinId>
|
||||
@@ -1088,7 +1123,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>Application/User/Core</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
|
||||
@@ -294,16 +294,18 @@ PC8.Signal=S_TIM8_CH3
|
||||
PC9.GPIOParameters=GPIO_Label
|
||||
PC9.GPIO_Label=PWM6
|
||||
PC9.Signal=S_TIM8_CH4
|
||||
PD2.GPIOParameters=GPIO_Label
|
||||
PD2.GPIOParameters=GPIO_PuPd,GPIO_Label
|
||||
PD2.GPIO_Label=DIN3
|
||||
PD2.GPIO_PuPd=GPIO_PULLUP
|
||||
PD2.Locked=true
|
||||
PD2.Signal=GPIO_Input
|
||||
PD3.GPIOParameters=GPIO_Label
|
||||
PD3.GPIO_Label=ERR_24VDIO
|
||||
PD3.Locked=true
|
||||
PD3.Signal=GPIO_Input
|
||||
PD6.GPIOParameters=GPIO_Label
|
||||
PD6.GPIOParameters=GPIO_PuPd,GPIO_Label
|
||||
PD6.GPIO_Label=DIN2
|
||||
PD6.GPIO_PuPd=GPIO_PULLUP
|
||||
PD6.Locked=true
|
||||
PD6.Signal=GPIO_Input
|
||||
PE0.GPIOParameters=PinState,GPIO_Label
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,537 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ModbusPoll>
|
||||
<FileSchema r="0" c="0"/>
|
||||
<Version major="12" minor="2" patch="0" build="2516"/>
|
||||
<dpi>96</dpi>
|
||||
<WP left="-3" right="1676" top="-1" bottom="310" ShowCmd="1" MaxPosX="-8" MaxPosY="-31" MinPosX="0" MinPosY="606"/>
|
||||
<ScanRate>1000</ScanRate>
|
||||
<SlaveID>1</SlaveID>
|
||||
<Enable>1</Enable>
|
||||
<StopOnError>0</StopOnError>
|
||||
<OneBased>0</OneBased>
|
||||
<RowsDialog>0</RowsDialog>
|
||||
<HideNames>0</HideNames>
|
||||
<HexMode>0</HexMode>
|
||||
<DisplayAddr>0</DisplayAddr>
|
||||
<ColCount>16</ColCount>
|
||||
<RowCount>10</RowCount>
|
||||
<ColumnWidth>
|
||||
<CW>1330</CW>
|
||||
<CW>380</CW>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
<CW>1210</CW>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
</ColumnWidth>
|
||||
<RowHight>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
</RowHight>
|
||||
<ScrollPosV>0</ScrollPosV>
|
||||
<ScrollPosH>0</ScrollPosH>
|
||||
<FocusRow>3</FocusRow>
|
||||
<FocusCol>6</FocusCol>
|
||||
<LogText>
|
||||
<Eachread>0</Eachread>
|
||||
<Rate>1</Rate>
|
||||
<LogChangedOnly>0</LogChangedOnly>
|
||||
<LogErrors>0</LogErrors>
|
||||
<LogErrorsOnly>0</LogErrorsOnly>
|
||||
<LogAddress>1</LogAddress>
|
||||
<LogDate>0</LogDate>
|
||||
<TDelimiter>0</TDelimiter>
|
||||
<LogMs>1</LogMs>
|
||||
<Delimiter>0</Delimiter>
|
||||
<AutoStart>0</AutoStart>
|
||||
<Flush>0</Flush>
|
||||
<Append>0</Append>
|
||||
<NewLogFileAtMidnight>0</NewLogFileAtMidnight>
|
||||
<InsertHeader>0</InsertHeader>
|
||||
<NameCellsInTopRow>0</NameCellsInTopRow>
|
||||
<PollDefinition>0</PollDefinition>
|
||||
<LogName>Type log name here</LogName>
|
||||
<FileName></FileName>
|
||||
</LogText>
|
||||
<LogExcel>
|
||||
<Eachread>1</Eachread>
|
||||
<Rate>1</Rate>
|
||||
<StopAfter>1000</StopAfter>
|
||||
<LogChangedOnly>0</LogChangedOnly>
|
||||
<InsertHeader>1</InsertHeader>
|
||||
<NameCellsInTopRow>1</NameCellsInTopRow>
|
||||
<PollDefinition>1</PollDefinition>
|
||||
<LogName>Type log name here</LogName>
|
||||
</LogExcel>
|
||||
<Data>
|
||||
<Function>3</Function>
|
||||
<Address>1000</Address>
|
||||
<Quantity>80</Quantity>
|
||||
<EnronMode>0</EnronMode>
|
||||
<Formats>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="3"/>
|
||||
<F f="1" v="3800"/>
|
||||
<F f="1" v="600"/>
|
||||
<F f="1" v="1000"/>
|
||||
<F f="1" v="5000"/>
|
||||
<F f="1" v="1000"/>
|
||||
<F f="1" v="1000"/>
|
||||
<F f="1" v="30"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="90"/>
|
||||
<F f="1" v="90"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="14591"/>
|
||||
<F f="1" v="14591"/>
|
||||
<F f="1" v="635"/>
|
||||
<F f="1" v="635"/>
|
||||
<F f="1" v="1861"/>
|
||||
<F f="1" v="1861"/>
|
||||
<F f="1" v="1861"/>
|
||||
<F f="1" v="1861"/>
|
||||
<F f="1" v="1861"/>
|
||||
<F f="1" v="1861"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="564"/>
|
||||
<F f="1" v="40"/>
|
||||
<F f="1" v="2114"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="7"/>
|
||||
<F f="1" v="16000"/>
|
||||
<F f="1" v="16"/>
|
||||
<F f="1" v="50971"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="10"/>
|
||||
<F f="1" v="200"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="50971"/>
|
||||
<F f="1" v="14563"/>
|
||||
<F f="1" v="25"/>
|
||||
<F f="1" v="1250"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
</Formats>
|
||||
<Bytes>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>3</B>
|
||||
<B>0</B>
|
||||
<B>216</B>
|
||||
<B>14</B>
|
||||
<B>88</B>
|
||||
<B>2</B>
|
||||
<B>232</B>
|
||||
<B>3</B>
|
||||
<B>136</B>
|
||||
<B>19</B>
|
||||
<B>232</B>
|
||||
<B>3</B>
|
||||
<B>232</B>
|
||||
<B>3</B>
|
||||
<B>30</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>90</B>
|
||||
<B>0</B>
|
||||
<B>90</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>255</B>
|
||||
<B>56</B>
|
||||
<B>255</B>
|
||||
<B>56</B>
|
||||
<B>123</B>
|
||||
<B>2</B>
|
||||
<B>123</B>
|
||||
<B>2</B>
|
||||
<B>69</B>
|
||||
<B>7</B>
|
||||
<B>69</B>
|
||||
<B>7</B>
|
||||
<B>69</B>
|
||||
<B>7</B>
|
||||
<B>69</B>
|
||||
<B>7</B>
|
||||
<B>69</B>
|
||||
<B>7</B>
|
||||
<B>69</B>
|
||||
<B>7</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>52</B>
|
||||
<B>2</B>
|
||||
<B>40</B>
|
||||
<B>0</B>
|
||||
<B>66</B>
|
||||
<B>8</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>7</B>
|
||||
<B>0</B>
|
||||
<B>128</B>
|
||||
<B>62</B>
|
||||
<B>16</B>
|
||||
<B>0</B>
|
||||
<B>27</B>
|
||||
<B>199</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>10</B>
|
||||
<B>0</B>
|
||||
<B>200</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>27</B>
|
||||
<B>199</B>
|
||||
<B>227</B>
|
||||
<B>56</B>
|
||||
<B>25</B>
|
||||
<B>0</B>
|
||||
<B>226</B>
|
||||
<B>4</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
</Bytes>
|
||||
<CellData>
|
||||
<Cell idx="0">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Послед. фаз</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="1">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Кол-во фаз</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="2">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Номинал U, Вx10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="3">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Отклонение U+, %x100</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="4">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Отклонение U-, %x100</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="5">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Номинал F, Гцx100</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="6">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Отклонение F+, %x100</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="7">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Отклонение F-, %x100</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="8">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Номинал I, Аx10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="10">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Темпер. предупр.</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="11">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Темпер. авария</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="20">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>АЦП макс. Uab, Вх10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="21">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>АЦП макс. Uca, Вх10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="22">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>АЦП макс. Ic, Ах10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="23">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>АЦП макс. Ia, Ах10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="24">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>АЦП ур. нуля Uab</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="25">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>АЦП ур. нуля Uca</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="26">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>АЦП ур. нуля Ic</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="27">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>АЦП ур. нуля Ia</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="28">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>АЦП ур. нуля Trad</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="29">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>АЦП ур. нуля Tshkaf</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="40">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Ампл. Imax, % от Inom</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="41">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>rms_window_size</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="42">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>rms_exp_alpha</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="50">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>ШИМ PhaseMask</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="51">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>ШИМ Частота, Гц</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="52">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>ШИМ Скважность, %</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="53">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>ШИМ Длина пачки</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="71">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Угол Макс. 0..1</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="72">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Угол Мин. 0..1</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="73">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>ПИД Kp, x10 000</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="74">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>ПИД Ki, x10 000</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="75">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>ПИД Kd, x10 000</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
</CellData>
|
||||
<Scales/>
|
||||
<ValueNames/>
|
||||
<ChartSeries/>
|
||||
<BinNames/>
|
||||
</Data>
|
||||
</ModbusPoll>
|
||||
@@ -0,0 +1,138 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ModbusPoll>
|
||||
<FileSchema r="0" c="0"/>
|
||||
<Version major="12" minor="2" patch="0" build="2516"/>
|
||||
<dpi>96</dpi>
|
||||
<WP left="1" right="273" top="308" bottom="924" ShowCmd="1" MaxPosX="-1" MaxPosY="-1" MinPosX="-1" MinPosY="-1"/>
|
||||
<ScanRate>1000</ScanRate>
|
||||
<SlaveID>1</SlaveID>
|
||||
<Enable>1</Enable>
|
||||
<StopOnError>0</StopOnError>
|
||||
<OneBased>0</OneBased>
|
||||
<RowsDialog>4</RowsDialog>
|
||||
<HideNames>0</HideNames>
|
||||
<HexMode>0</HexMode>
|
||||
<DisplayAddr>0</DisplayAddr>
|
||||
<ColCount>2</ColCount>
|
||||
<RowCount>16</RowCount>
|
||||
<ColumnWidth>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
</ColumnWidth>
|
||||
<RowHight>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
</RowHight>
|
||||
<ScrollPosV>0</ScrollPosV>
|
||||
<ScrollPosH>0</ScrollPosH>
|
||||
<FocusRow>9</FocusRow>
|
||||
<FocusCol>2</FocusCol>
|
||||
<LogText>
|
||||
<Eachread>0</Eachread>
|
||||
<Rate>1</Rate>
|
||||
<LogChangedOnly>0</LogChangedOnly>
|
||||
<LogErrors>0</LogErrors>
|
||||
<LogErrorsOnly>0</LogErrorsOnly>
|
||||
<LogAddress>1</LogAddress>
|
||||
<LogDate>0</LogDate>
|
||||
<TDelimiter>0</TDelimiter>
|
||||
<LogMs>1</LogMs>
|
||||
<Delimiter>0</Delimiter>
|
||||
<AutoStart>0</AutoStart>
|
||||
<Flush>0</Flush>
|
||||
<Append>0</Append>
|
||||
<NewLogFileAtMidnight>0</NewLogFileAtMidnight>
|
||||
<InsertHeader>0</InsertHeader>
|
||||
<NameCellsInTopRow>0</NameCellsInTopRow>
|
||||
<PollDefinition>0</PollDefinition>
|
||||
<LogName>Type log name here</LogName>
|
||||
<FileName></FileName>
|
||||
</LogText>
|
||||
<LogExcel>
|
||||
<Eachread>1</Eachread>
|
||||
<Rate>1</Rate>
|
||||
<StopAfter>1000</StopAfter>
|
||||
<LogChangedOnly>0</LogChangedOnly>
|
||||
<InsertHeader>1</InsertHeader>
|
||||
<NameCellsInTopRow>1</NameCellsInTopRow>
|
||||
<PollDefinition>1</PollDefinition>
|
||||
<LogName>Type log name here</LogName>
|
||||
</LogExcel>
|
||||
<Data>
|
||||
<Function>1</Function>
|
||||
<Address>1000</Address>
|
||||
<Quantity>16</Quantity>
|
||||
<EnronMode>0</EnronMode>
|
||||
<Bytes>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
</Bytes>
|
||||
<CellData>
|
||||
<Cell idx="0">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Go</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="1">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Stop</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="2">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Kvitir</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="3">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Set default PUI</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="4">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Set Default Internal</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="15">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Reset MCU</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
</CellData>
|
||||
<ChartSeries/>
|
||||
</Data>
|
||||
</ModbusPoll>
|
||||
@@ -0,0 +1,277 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ModbusPoll>
|
||||
<FileSchema r="0" c="0"/>
|
||||
<Version major="12" minor="2" patch="0" build="2516"/>
|
||||
<dpi>96</dpi>
|
||||
<WP left="736" right="1240" top="310" bottom="902" ShowCmd="1" MaxPosX="-8" MaxPosY="-31" MinPosX="320" MinPosY="606"/>
|
||||
<ScanRate>100</ScanRate>
|
||||
<SlaveID>1</SlaveID>
|
||||
<Enable>1</Enable>
|
||||
<StopOnError>0</StopOnError>
|
||||
<OneBased>0</OneBased>
|
||||
<RowsDialog>0</RowsDialog>
|
||||
<HideNames>0</HideNames>
|
||||
<HexMode>0</HexMode>
|
||||
<DisplayAddr>0</DisplayAddr>
|
||||
<ColCount>4</ColCount>
|
||||
<RowCount>10</RowCount>
|
||||
<ColumnWidth>
|
||||
<CW>950</CW>
|
||||
<CW>1120</CW>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
</ColumnWidth>
|
||||
<RowHight>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
</RowHight>
|
||||
<ScrollPosV>0</ScrollPosV>
|
||||
<ScrollPosH>0</ScrollPosH>
|
||||
<FocusRow>1</FocusRow>
|
||||
<FocusCol>1</FocusCol>
|
||||
<LogText>
|
||||
<Eachread>0</Eachread>
|
||||
<Rate>1</Rate>
|
||||
<LogChangedOnly>0</LogChangedOnly>
|
||||
<LogErrors>0</LogErrors>
|
||||
<LogErrorsOnly>0</LogErrorsOnly>
|
||||
<LogAddress>1</LogAddress>
|
||||
<LogDate>0</LogDate>
|
||||
<TDelimiter>0</TDelimiter>
|
||||
<LogMs>1</LogMs>
|
||||
<Delimiter>0</Delimiter>
|
||||
<AutoStart>0</AutoStart>
|
||||
<Flush>0</Flush>
|
||||
<Append>0</Append>
|
||||
<NewLogFileAtMidnight>0</NewLogFileAtMidnight>
|
||||
<InsertHeader>0</InsertHeader>
|
||||
<NameCellsInTopRow>0</NameCellsInTopRow>
|
||||
<PollDefinition>0</PollDefinition>
|
||||
<LogName>Type log name here</LogName>
|
||||
<FileName></FileName>
|
||||
</LogText>
|
||||
<LogExcel>
|
||||
<Eachread>1</Eachread>
|
||||
<Rate>1</Rate>
|
||||
<StopAfter>1000</StopAfter>
|
||||
<LogChangedOnly>0</LogChangedOnly>
|
||||
<InsertHeader>1</InsertHeader>
|
||||
<NameCellsInTopRow>1</NameCellsInTopRow>
|
||||
<PollDefinition>1</PollDefinition>
|
||||
<LogName>Type log name here</LogName>
|
||||
</LogExcel>
|
||||
<Data>
|
||||
<Function>4</Function>
|
||||
<Address>0</Address>
|
||||
<Quantity>19</Quantity>
|
||||
<EnronMode>0</EnronMode>
|
||||
<Formats>
|
||||
<F f="1" v="0"/>
|
||||
<F f="3" v="0000 0000 0000 1010"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="1" v="0"/>
|
||||
<F f="0" v="0"/>
|
||||
<F f="0" v="213"/>
|
||||
<F f="0" v="198"/>
|
||||
</Formats>
|
||||
<Bytes>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>10</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>213</B>
|
||||
<B>0</B>
|
||||
<B>198</B>
|
||||
<B>0</B>
|
||||
</Bytes>
|
||||
<CellData>
|
||||
<Cell idx="0">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Текущая авария</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="1">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Состояние УПП</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="5">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>U, В</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="6">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Uab, В</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="7">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Ubc, В</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="8">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Uca, В</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="9">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>I, А x10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="10">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Ia, А x10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="11">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Ib, А x10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="12">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Ic, А x10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="13">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>F, Гц x10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="14">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Fab, Гц x10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="15">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Fbc, Гц x10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="16">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Fca, Гц x10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="17">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Tрад, °С x10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="18">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Tвнутр, °С x10</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
</CellData>
|
||||
<Scales/>
|
||||
<ValueNames/>
|
||||
<ChartSeries/>
|
||||
<BinNames>
|
||||
<BinName idx="0">
|
||||
<B0>Режим работы</B0>
|
||||
<B1>Режим работы</B1>
|
||||
<B2>Нет связи с ЛСУ </B2>
|
||||
<B3>Нет входной сети</B3>
|
||||
<B4>Токоограничение</B4>
|
||||
<B5>Повышенное напряжеине</B5>
|
||||
<B6>Пониежнное напряжение</B6>
|
||||
<B7></B7>
|
||||
<B8></B8>
|
||||
<B9></B9>
|
||||
<B10></B10>
|
||||
<B11></B11>
|
||||
<B12></B12>
|
||||
<B13></B13>
|
||||
<B14></B14>
|
||||
<B15></B15>
|
||||
</BinName>
|
||||
<BinName idx="1">
|
||||
<B0>Режим работы</B0>
|
||||
<B1>Режим работы</B1>
|
||||
<B2>Нет связи с ЛСУ</B2>
|
||||
<B3>Нет входной сети</B3>
|
||||
<B4>Токоограничение</B4>
|
||||
<B5>Повышенное напряжеине</B5>
|
||||
<B6>Пониженное напряжение</B6>
|
||||
<B7></B7>
|
||||
<B8></B8>
|
||||
<B9></B9>
|
||||
<B10></B10>
|
||||
<B11></B11>
|
||||
<B12></B12>
|
||||
<B13></B13>
|
||||
<B14></B14>
|
||||
<B15></B15>
|
||||
</BinName>
|
||||
</BinNames>
|
||||
</Data>
|
||||
</ModbusPoll>
|
||||
@@ -0,0 +1,169 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ModbusPoll>
|
||||
<FileSchema r="0" c="0"/>
|
||||
<Version major="12" minor="2" patch="0" build="2516"/>
|
||||
<dpi>96</dpi>
|
||||
<WP left="272" right="516" top="444" bottom="895" ShowCmd="1" MaxPosX="-8" MaxPosY="-31" MinPosX="0" MinPosY="895"/>
|
||||
<ScanRate>1000</ScanRate>
|
||||
<SlaveID>1</SlaveID>
|
||||
<Enable>1</Enable>
|
||||
<StopOnError>0</StopOnError>
|
||||
<OneBased>0</OneBased>
|
||||
<RowsDialog>0</RowsDialog>
|
||||
<HideNames>0</HideNames>
|
||||
<HexMode>0</HexMode>
|
||||
<DisplayAddr>0</DisplayAddr>
|
||||
<ColCount>2</ColCount>
|
||||
<RowCount>10</RowCount>
|
||||
<ColumnWidth>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
</ColumnWidth>
|
||||
<RowHight>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
<RH>200</RH>
|
||||
</RowHight>
|
||||
<ScrollPosV>0</ScrollPosV>
|
||||
<ScrollPosH>0</ScrollPosH>
|
||||
<FocusRow>6</FocusRow>
|
||||
<FocusCol>2</FocusCol>
|
||||
<LogText>
|
||||
<Eachread>0</Eachread>
|
||||
<Rate>1</Rate>
|
||||
<LogChangedOnly>0</LogChangedOnly>
|
||||
<LogErrors>0</LogErrors>
|
||||
<LogErrorsOnly>0</LogErrorsOnly>
|
||||
<LogAddress>1</LogAddress>
|
||||
<LogDate>0</LogDate>
|
||||
<TDelimiter>0</TDelimiter>
|
||||
<LogMs>1</LogMs>
|
||||
<Delimiter>0</Delimiter>
|
||||
<AutoStart>0</AutoStart>
|
||||
<Flush>0</Flush>
|
||||
<Append>0</Append>
|
||||
<NewLogFileAtMidnight>0</NewLogFileAtMidnight>
|
||||
<InsertHeader>0</InsertHeader>
|
||||
<NameCellsInTopRow>0</NameCellsInTopRow>
|
||||
<PollDefinition>0</PollDefinition>
|
||||
<LogName>Type log name here</LogName>
|
||||
<FileName></FileName>
|
||||
</LogText>
|
||||
<LogExcel>
|
||||
<Eachread>1</Eachread>
|
||||
<Rate>1</Rate>
|
||||
<StopAfter>1000</StopAfter>
|
||||
<LogChangedOnly>0</LogChangedOnly>
|
||||
<InsertHeader>1</InsertHeader>
|
||||
<NameCellsInTopRow>1</NameCellsInTopRow>
|
||||
<PollDefinition>1</PollDefinition>
|
||||
<LogName>Type log name here</LogName>
|
||||
</LogExcel>
|
||||
<Data>
|
||||
<Function>3</Function>
|
||||
<Address>0</Address>
|
||||
<Quantity>10</Quantity>
|
||||
<EnronMode>0</EnronMode>
|
||||
<Formats>
|
||||
<F f="1" v="300"/>
|
||||
<F f="1" v="5000"/>
|
||||
<F f="1" v="80"/>
|
||||
<F f="1" v="120"/>
|
||||
<F f="1" v="24"/>
|
||||
<F f="1" v="7"/>
|
||||
<F f="1" v="5000"/>
|
||||
<F f="1" v="30"/>
|
||||
<F f="1" v="1"/>
|
||||
<F f="1" v="0"/>
|
||||
</Formats>
|
||||
<Bytes>
|
||||
<B>44</B>
|
||||
<B>1</B>
|
||||
<B>136</B>
|
||||
<B>19</B>
|
||||
<B>80</B>
|
||||
<B>0</B>
|
||||
<B>120</B>
|
||||
<B>0</B>
|
||||
<B>24</B>
|
||||
<B>0</B>
|
||||
<B>7</B>
|
||||
<B>0</B>
|
||||
<B>136</B>
|
||||
<B>19</B>
|
||||
<B>30</B>
|
||||
<B>0</B>
|
||||
<B>1</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
<B>0</B>
|
||||
</Bytes>
|
||||
<CellData>
|
||||
<Cell idx="0">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Iref, %</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="1">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Тнт, мс</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="2">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Umin, %</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="3">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Umax, %</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="4">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Imax, % от 50 А</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="5">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Imin, %</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="6">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>TiMax, мкс</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="7">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Tdelay, с</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
<Cell idx="8">
|
||||
<Colors/>
|
||||
<Compare compare1="0" compare2="0" conditional1="0" conditional2="0"/>
|
||||
<Name>Interlance</Name>
|
||||
<Font used="false"/>
|
||||
</Cell>
|
||||
</CellData>
|
||||
<Scales/>
|
||||
<ValueNames/>
|
||||
<ChartSeries/>
|
||||
<BinNames/>
|
||||
</Data>
|
||||
</ModbusPoll>
|
||||
@@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ModbusPoll>
|
||||
<FileSchema r="0" c="0"/>
|
||||
<Version major="12" minor="2" patch="0" build="2516"/>
|
||||
<dpi>96</dpi>
|
||||
<WP left="271" right="516" top="312" bottom="449" ShowCmd="1" MaxPosX="-1" MaxPosY="-1" MinPosX="-1" MinPosY="-1"/>
|
||||
<ScanRate>1000</ScanRate>
|
||||
<SlaveID>1</SlaveID>
|
||||
<Enable>1</Enable>
|
||||
<StopOnError>0</StopOnError>
|
||||
<OneBased>0</OneBased>
|
||||
<RowsDialog>4</RowsDialog>
|
||||
<HideNames>0</HideNames>
|
||||
<HexMode>0</HexMode>
|
||||
<DisplayAddr>0</DisplayAddr>
|
||||
<ColCount>2</ColCount>
|
||||
<RowCount>1</RowCount>
|
||||
<ColumnWidth>
|
||||
<CW>900</CW>
|
||||
<CW>900</CW>
|
||||
</ColumnWidth>
|
||||
<RowHight>
|
||||
<RH>200</RH>
|
||||
</RowHight>
|
||||
<ScrollPosV>0</ScrollPosV>
|
||||
<ScrollPosH>0</ScrollPosH>
|
||||
<FocusRow>1</FocusRow>
|
||||
<FocusCol>2</FocusCol>
|
||||
<LogText>
|
||||
<Eachread>0</Eachread>
|
||||
<Rate>1</Rate>
|
||||
<LogChangedOnly>0</LogChangedOnly>
|
||||
<LogErrors>0</LogErrors>
|
||||
<LogErrorsOnly>0</LogErrorsOnly>
|
||||
<LogAddress>1</LogAddress>
|
||||
<LogDate>0</LogDate>
|
||||
<TDelimiter>0</TDelimiter>
|
||||
<LogMs>1</LogMs>
|
||||
<Delimiter>0</Delimiter>
|
||||
<AutoStart>0</AutoStart>
|
||||
<Flush>0</Flush>
|
||||
<Append>0</Append>
|
||||
<NewLogFileAtMidnight>0</NewLogFileAtMidnight>
|
||||
<InsertHeader>0</InsertHeader>
|
||||
<NameCellsInTopRow>0</NameCellsInTopRow>
|
||||
<PollDefinition>0</PollDefinition>
|
||||
<LogName>Type log name here</LogName>
|
||||
<FileName></FileName>
|
||||
</LogText>
|
||||
<LogExcel>
|
||||
<Eachread>1</Eachread>
|
||||
<Rate>1</Rate>
|
||||
<StopAfter>1000</StopAfter>
|
||||
<LogChangedOnly>0</LogChangedOnly>
|
||||
<InsertHeader>1</InsertHeader>
|
||||
<NameCellsInTopRow>1</NameCellsInTopRow>
|
||||
<PollDefinition>1</PollDefinition>
|
||||
<LogName>Type log name here</LogName>
|
||||
</LogExcel>
|
||||
<Data>
|
||||
<Function>3</Function>
|
||||
<Address>100</Address>
|
||||
<Quantity>1</Quantity>
|
||||
<EnronMode>0</EnronMode>
|
||||
<Formats>
|
||||
<F f="0" v="1"/>
|
||||
</Formats>
|
||||
<Bytes>
|
||||
<B>1</B>
|
||||
<B>0</B>
|
||||
</Bytes>
|
||||
<CellData/>
|
||||
<Scales/>
|
||||
<ValueNames/>
|
||||
<ChartSeries/>
|
||||
<BinNames/>
|
||||
</Data>
|
||||
</ModbusPoll>
|
||||
Reference in New Issue
Block a user