217 lines
6.8 KiB
C
217 lines
6.8 KiB
C
/*
|
|
* ps.h
|
|
*
|
|
* Created on: 09-08-2016
|
|
* Author: Krzysztof Jakubczyk
|
|
*/
|
|
|
|
#ifndef PS_H_
|
|
#define PS_H_
|
|
|
|
#include "tdefs.h"
|
|
|
|
struct Nastawy_przeliczone_ps
|
|
{
|
|
float Imin;///< minimalna wartosc prąadu dzialania
|
|
float Iomin;///< Minimalna wartość rozruchowa prądu zerowego przekaźnika identyfikacji zwarć z udziałem ziemi
|
|
float Iokh;///<Współczynnik stabilizacji charakterystyki przekaźnika identyfikacji zwarć z udziałem ziemi
|
|
float I2min;///<Minimalna wartość rozruchowa prądu zerowego przekaźnika składowej przeciwnej prądu
|
|
float I2kh;///<Współczynnik stabilizacji charakterystyki przekaźnika składowej przeciwnej prądu
|
|
float tanfi1;// wspolczynnik kata prostej
|
|
float tanfi2;// wspolczynnik kata prostej
|
|
float X1f; //wartośc rozruchowa reaktancji do przodu strefa zewnetrzna
|
|
float X1r; //wartośc rozruchowa reaktancji do tyłu strefa zewnetrzna
|
|
float R1f; //wartośc rozruchowa rezystancji do przodu strefa zewnetrzna
|
|
float R1r; //wartośc rozruchowa rezystancji do tyłu strefa zewnetrzna
|
|
float X2f; //wartośc rozruchowa reaktancji do przodu strefa wewnetrzna
|
|
float X2r; //wartośc rozruchowa reaktancji do tyłu strefa wewnetrzna
|
|
float R2f; //wartośc rozruchowa rezystancji do przodu strefa wewnetrzna
|
|
float R2r; //wartośc rozruchowa rezystancji do tyłu strefa wewnetrzna
|
|
float dRl1f;//wartośc rezystancjirozruchowej prostej wynikającej z obszaru obciażenia do przodu strefa zewnetrzna
|
|
float dRl1r;//wartośc rezystancjirozruchowej prostej wynikającej z obszaru obciażenia do tyłu strefa zewnetrzna
|
|
float dRl2f;//wartośc rezystancjirozruchowej prostej wynikającej z obszaru obciażenia do przodu strefa wewnetrzna
|
|
float dRl2r;//wartośc rezystancjirozruchowej prostej wynikającej z obszaru obciażenia do tyłu strefa wewnetrzna
|
|
float dRlf;//nastawa różnicy rezystancji do przodu
|
|
float dRlr;//nastawa różnicy rezystancji do tyłu
|
|
float przekladnia;//wartosc przekladni impedancji
|
|
short tpass;//rozruchowy czas przejscia od strefy 1 do 2
|
|
|
|
u32 tdbl; ///< Czas uruchomienia deblokady zabezpieczeń po wykryciu kołysania mocy
|
|
u32 tPS; ///< nastawa czasu opóźnienia zadziałania
|
|
u16 lPS;///<licznik kołysan asynchronicznych
|
|
|
|
u8 on;///<Przekaźnik aktywny/nieaktywny
|
|
u8 W;///<Dzialanie na wyłączenie
|
|
u8 D3I2;///<Deblokada od poziomu składowej przeciwnej prądu
|
|
u8 D3Io;///<Deblokada od poziomu składowej zerowej prądu
|
|
u8 bl;///<Blokada przekaźnikawłączona/wyłączona
|
|
};
|
|
|
|
enum stan_kolysanie
|
|
{
|
|
kolysanie_OK,
|
|
wejscie_w_strefe1,
|
|
oczekiwanie_na_strefe2,
|
|
kolysanie_mocy,
|
|
blokada_kolysania
|
|
};
|
|
|
|
struct Wyjscia_binarne_ps
|
|
{
|
|
u8 Bl_PS;///< blokada od kołysań mocy
|
|
u8 PS_syn;///< Sygnalizacja wykrycia synchronicznych kołysań mocy
|
|
u8 PS_asyn;///< Sygnalizacja wykrycia asynchronicznych kołysań mocy
|
|
u8 Z; ///<Zadziałanie przekaźnika kołysań mocy
|
|
u8 W; ///< Wyłączenie przez przekaźnik wykrywania kołysań mocy
|
|
};
|
|
|
|
|
|
|
|
struct dane_wewnetrzne_ps
|
|
{
|
|
//Wyjscia_rejestratora Rej; ///< dane ostatniego zaklocenia
|
|
|
|
float R;
|
|
float X;
|
|
float absR;
|
|
float absX;
|
|
float Rz;
|
|
|
|
short liczIo;
|
|
short liczI2;
|
|
short liczk;
|
|
short liczs1;
|
|
short liczs2;
|
|
int liczdbl;
|
|
int licztPS;
|
|
short liczlPS;
|
|
|
|
enum stan_kolysanie stan_kolysanie;
|
|
|
|
u8 Ps1;
|
|
u8 Ps2;
|
|
u8 P_Io;
|
|
u8 P_I2;
|
|
|
|
short tpass;// czas przejscia ze strefy 1 do 2
|
|
short t1;// czas przejscia przez strefe 2
|
|
|
|
// Time czas_; // moment wystapienia zaklocenia (rejestr tymczasowy - przed zapisem)
|
|
u32 dl_; // dlugosc czasu trwania zaklocenia (rejestr tymczasowy - przed zapisem)
|
|
u8 wsk_rej_; // nowy zapis rejestracji parametrow zaklocenia (spelnienie kryterium identyfikacji)
|
|
struct Wyjscia_binarne_ps b;
|
|
};
|
|
|
|
struct Wejscie_ps
|
|
{
|
|
float U1_orta; ///< ortogonalna a składowej zgodnej napięcia
|
|
float U1_ortb; ///< ortogonalna b składowej zgodnej napięcia
|
|
float U1; ///<składowa zgodna napięcia
|
|
float I1_orta; ///< ortogonalna a składowej zgodnej prądu
|
|
float I1_ortb; ///< ortogonalna b składowej zgodnej prądu
|
|
float I1; ///<składowa zgodna prądu
|
|
float I2; ///<składowa przeciwna prądu
|
|
float I0; ///<składowa zerowa prądu
|
|
};
|
|
|
|
struct ps_logic
|
|
{
|
|
u8 *stan_bl;
|
|
u8 stan_bl_bit;
|
|
|
|
float *U1_orta;
|
|
float *U1_ortb;
|
|
float *U1;
|
|
float *I1_orta;
|
|
float *I1_ortb;
|
|
float *I1;
|
|
float *I2;
|
|
float *I0;
|
|
|
|
struct analog_in_params *param_U;
|
|
struct analog_in_params *param_I;
|
|
|
|
u8 *test;
|
|
u8 test_bit;
|
|
|
|
u8 *Bl_PS;
|
|
u8 Bl_PS_bit;
|
|
/*
|
|
u8 *PS_syn;
|
|
u8 PS_syn_bit;
|
|
|
|
u8 *PS_asyn;
|
|
u8 PS_asyn_bit;
|
|
*/
|
|
u8 *Z;
|
|
u8 Z_bit;
|
|
|
|
u8 *W;
|
|
u8 W_bit;
|
|
|
|
struct Wejscie_ps w;
|
|
struct dane_wewnetrzne_ps dw;
|
|
struct Nastawy_przeliczone_ps nast_;// struktura z parametrami
|
|
};
|
|
|
|
struct ps_io
|
|
{
|
|
u32 stan_bl_in;
|
|
u32 U1_orta_float_in;
|
|
u32 U1_ortb_float_in;
|
|
u32 U1_float_in;
|
|
u32 I1_orta_float_in;
|
|
u32 I1_ortb_float_in;
|
|
u32 I1_float_in;
|
|
u32 I2_float_in;
|
|
u32 I0_float_in;
|
|
u32 param_U_ptr_in;
|
|
u32 param_I_ptr_in;
|
|
u32 test_in;
|
|
u32 Bl_PS_out;
|
|
// u32 PS_syn_out;
|
|
// u32 PS_asyn_out;
|
|
u32 Z_out;
|
|
u32 W_out;
|
|
}__attribute__((__packed__));
|
|
|
|
struct ps_params
|
|
{
|
|
u32 bity; ///< nastawy bitowe;
|
|
double Rf;///<Zasięg rezystancyjny do przodu strefy zewnętrznej
|
|
double Xf;///<Zasięg reaktancyjny do przodu strefy zewnętrznej
|
|
double Rr;///<Zasięg rezystancyjny do tyłu strefy zewnętrznej
|
|
double Xr;///<Zasięg reaktancyjny do tyłu strefy zewnętrznej
|
|
double dRf;///<różnica zasięgu rezystancyjnego do przodu strefy wewnętrznej
|
|
double dXf;///<różnica zasięgu reaktancyjnego do przodu strefy wewnętrznej
|
|
double dRr;///<różnica zasięgu rezystancyjnego do tyłu strefy wewnętrznej
|
|
double dXr;///<różnica zasięgu reaktancyjnego do przodu strefy wewnętrznej
|
|
double fi1;///<Kąt nachylenia charakterystyki
|
|
double RLf;///<Zasięg „ do przodu” kryterium blokady działania w zakresie prądów obciążenia
|
|
double RLr;///<Zasięg „ do tyłu” kryterium blokady działania w zakresie prądów obciążenia
|
|
double fi2;///<Kąt kierunkowy blokady działania w zakresie prądów obciążenia
|
|
double Iomin;///< Minimalna wartość rozruchowa prądu zerowego przekaźnika identyfikacji zwarć z udziałem ziemi
|
|
double Iokh;///<Współczynnik stabilizacji charakterystyki przekaźnika identyfikacji zwarć z udziałem ziemi
|
|
double I2min;///<Minimalna wartość rozruchowa prądu zerowego przekaźnika składowej przeciwnej prądu
|
|
double I2kh;///<Współczynnik stabilizacji charakterystyki przekaźnika składowej przeciwnej prądu
|
|
double tpass;///<Minimalny czas przejścia impedancji pomiędzy strefami powodujący rozruch przekaźnika
|
|
double tdbl;///<Czas uruchomienia deblokady zabezpieczeń po wykryciu kołysania mocy
|
|
double tPS;///<Czas działania funkcji wyłączenia od kołysania mocy
|
|
double lPS;///<Ilość powtórzeń kołysania w czasie tPS powodujące wyłączenie
|
|
double Imin;///< minimalna wartosc prąadu dzialania
|
|
}__attribute__((__packed__));
|
|
|
|
struct ps_args
|
|
{
|
|
struct ps_io io;
|
|
struct ps_params params;
|
|
// u16 crc;
|
|
}__attribute__((__packed__));
|
|
|
|
extern void ps(void *args, void *logic);
|
|
extern void ps_100hz(void *args, void *logic);
|
|
extern void ps_20hz(void *args, void *logic);
|
|
extern int ps_initlog(void *arguments, void *logic);
|
|
|
|
#endif /* PS_H_ */
|