Files
dist_tester/src/ps.h

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_ */