127 lines
3.6 KiB
C
127 lines
3.6 KiB
C
/*
|
|
* Diff_1.c
|
|
*
|
|
* Created on: 01-03-2017
|
|
* Author: Krzysztof Jakubczyk
|
|
*/
|
|
|
|
#include <math.h>
|
|
|
|
#include "tdefs.h"
|
|
#include "misc.h"
|
|
|
|
#include "helper.h"
|
|
#include "Diff.h"
|
|
#include "Diff_1.h"
|
|
|
|
int diff_1_initlog(void *arguments, void *logic)
|
|
{
|
|
struct diff_1_args *args = (struct diff_1_args *)arguments;
|
|
struct diff_logic *log = (struct diff_logic *)logic;
|
|
|
|
if(diff_init_io(&args->io,log))
|
|
return -1;
|
|
|
|
log->nast_.on = (args->params.bity & 0x0001)?1:0;
|
|
log->nast_.w = (args->params.bity & 0x0002)?1:0;
|
|
log->nast_.bl = (args->params.bity & 0x0004)?1:0;
|
|
log->nast_.bl2h = (args->params.bity & 0x0008)?1:0;
|
|
log->nast_.bl5h = (args->params.bity & 0x0010)?1:0;
|
|
log->nast_.sbc = (args->params.bity & 0x0020)?1:0;
|
|
log->nast_.h = (args->params.bity & 0x0040)?1:0;
|
|
log->nast_.r = (args->params.bity & 0x0080)?1:0;
|
|
log->nast_.cross_block = (args->params.bity & 0x0100)?1:0;
|
|
|
|
//ustawienie wartosci rozruchowych
|
|
log->nast_.khr_2h = args->params.k_2h * args->params.k_2h;
|
|
log->nast_.khp_2h = log->nast_.khr_2h * 0.98;//args->params.kp *args->params.kp;
|
|
log->nast_.khr_5h = args->params.k_5h * args->params.k_5h;
|
|
log->nast_.khp_5h = log->nast_.khr_5h * 0.98;//args->params.kp *args->params.kp;
|
|
log->nast_.Irr = args->params.Ir * 1.3577f;
|
|
log->nast_.Ipr = args->params.Ir * args->params.kp;
|
|
log->nast_.Ihdr = args->params.Ihd;
|
|
log->nast_.Irdr = args->params.rd;
|
|
log->nast_.kh1r = args->params.kh1;
|
|
log->nast_.kh1p = args->params.kh1 * args->params.kp;
|
|
log->nast_.kh2r = args->params.kh2;
|
|
log->nast_.kh2p = args->params.kh2 * args->params.kp;
|
|
log->nast_.Ir3c = args->params.Ihp * (args->params.kh1 - args->params.kh2);
|
|
log->nast_.Ip3c = log->nast_.Ir3c * args->params.kp;
|
|
log->nast_.Iror = args->params.Iro;
|
|
log->nast_.Irop = args->params.Iro * args->params.kp;
|
|
log->nast_.Ir4 = args->params.Ihg * args->params.kh2 + args->params.Ihp * (args->params.kh1 - args->params.kh2);
|
|
log->nast_.Ip4 = log->nast_.Ir4 * args->params.kp;
|
|
log->nast_.t_sbc = args->params.tbld * 1000;
|
|
log->nast_.Ih1 = args->params.Iro / args->params.kh1;
|
|
log->nast_.Ihp = args->params.Ihp;
|
|
log->nast_.Ihg = args->params.Ihg;
|
|
|
|
log->nast_.tz = args->params.t * 1000;
|
|
|
|
// log->nast_.ih_siemens = (args->params.Ih_typ == IH_SUM_IP) ? 1 : 0;
|
|
//--------
|
|
|
|
struct nast_trafo n1;
|
|
n1.GrP1 = args->params.GrP1;
|
|
n1.GrP2 = args->params.GrP2;
|
|
n1.GrP3 = args->params.GrP3;
|
|
n1.PT12 = args->params.PT12;
|
|
n1.PT13 = args->params.PT13;
|
|
// n1.Tr_zas = args->params.Tr_zas;
|
|
|
|
przelicz_nastawy1(log,n1);
|
|
|
|
return 0;
|
|
}
|
|
|
|
void diff_1(void *arguments, void *logic)
|
|
{
|
|
struct diff_logic *log = (struct diff_logic *)logic;
|
|
|
|
if(log->nast_.on) // jesli zabezpieczenie aktywne
|
|
{
|
|
przelicz_1200Hz_1(log);
|
|
|
|
//Sprawdzenie pobudzenia w stabilizowanej strefie dzialania
|
|
kryterium2(log,log->Ir1_,log->Ih1_,&log->P_.Pb1);
|
|
kryterium2(log,log->Ir2_,log->Ih2_,&log->P_.Pb2);
|
|
kryterium2(log,log->Ir3_,log->Ih3_,&log->P_.Pb3);
|
|
|
|
przelicz_1200Hz_2(log);
|
|
} else {
|
|
*log->Ir1=0;
|
|
*log->Ir2=0;
|
|
*log->Ir3=0;
|
|
*log->Ih1=0;
|
|
*log->Ih2=0;
|
|
*log->Ih3=0;
|
|
*log->Ir_L1_ortb=0;
|
|
*log->Ir_L2_ortb=0;
|
|
*log->Ir_L3_ortb=0;
|
|
// *log->Ih_L1_ortb=0;
|
|
//*log->Ih_L2_ortb=0;
|
|
//*log->Ih_L3_ortb=0;
|
|
*log->I2h1=0;
|
|
*log->I2h2=0;
|
|
*log->I2h3=0;
|
|
*log->I5h1=0;
|
|
*log->I5h2=0;
|
|
*log->I5h3=0;
|
|
clear_struct(&log->P);
|
|
clear_struct(&log->Pf1);
|
|
clear_struct(&log->Pf2);
|
|
clear_struct(&log->Pf3);
|
|
clear_struct(&log->W);
|
|
clear_struct(&log->Z);
|
|
clear_struct(&log->Zw1);
|
|
clear_struct(&log->Zw2);
|
|
clear_struct(&log->Zw3);
|
|
clear_struct(&log->BL2h1);
|
|
clear_struct(&log->BL2h2);
|
|
clear_struct(&log->BL2h3);
|
|
clear_struct(&log->BL5h1);
|
|
clear_struct(&log->BL5h2);
|
|
clear_struct(&log->BL5h3);
|
|
}
|
|
}
|