2023 lines
83 KiB
C
2023 lines
83 KiB
C
#include <adc_tools.h>
|
|
#include <detect_errors_adc.h>
|
|
#include <edrk_main.h>
|
|
#include <math.h>
|
|
#include <message_modbus.h>
|
|
#include <modbus_hmi.h>
|
|
#include <modbus_hmi_read.h>
|
|
#include <modbus_hmi_update.h>
|
|
#include <optical_bus.h>
|
|
#include <params.h>
|
|
#include <params_norma.h>
|
|
#include <project.h>
|
|
#include <protect_levels.h>
|
|
#include <pump_control.h>
|
|
#include <v_rotor.h>
|
|
#include <vector.h>
|
|
#include "edrk_main.h"
|
|
#include "global_time.h"
|
|
#include "control_station.h"
|
|
#include "CAN_Setup.h"
|
|
#include "global_time.h"
|
|
#include "RS_Functions.h"
|
|
#include "mathlib.h"
|
|
#include "logs_hmi.h"
|
|
#include "detect_errors.h"
|
|
/*
|
|
#include "mathlib.h"
|
|
#include <math.h>
|
|
#include "IQmathLib.h"
|
|
*/
|
|
int hmi_watch_dog = 0;
|
|
int prev_kvitir = 0;
|
|
int prev_sbor = 0;
|
|
int kvitir1 = 0;
|
|
int sbor1 = 0;
|
|
int razbor1 = 0;
|
|
|
|
//30001 ResetErrors command to controller to reset errors 1-reset
|
|
//30002 SchemeAssemble Command to change scheme state 0-scheme dissasemble 1- assemble
|
|
//30003 IsPowerSetMode 0-control enigine by turnovers, 1- by power
|
|
//30004 SpecifiedPower Power set by user
|
|
//30005 SpecifiedTurnovers Turnovers set by user
|
|
|
|
//30006 UserValueUpdated command to controller to update set value 1-ative
|
|
|
|
//30007 ReportGet Command to get report 1-get 0- nothinhg
|
|
//30008 ReportArraySaved Sets to 1 when HMI is ready to get array(part of report)
|
|
//30009 PumpsControlMode Pumps Control mode. 0 = auto, 1= pump 1, 2= pump 2
|
|
|
|
//30010 MotoHoursPanel Ìîòî÷àñû äèñïëåÿ (ìèíóòû)
|
|
//30011 MotoHoursFan1 Ìîòî÷àñû ãðóïïû âåíòèëÿòîðîâ 1 (ìèíóòû)
|
|
//30012 MotoHoursFan2 Ìîòî÷àñû ãðóïïû âåíòèëÿòîðîâ 2 (ìèíóòû)
|
|
//30013 MotoHoursPump1 Ìîòî÷àñû îñíîâíîãî íàñîñà (ìèíóòû)
|
|
//30014 MotoHoursPump2 Ìîòî÷àñû ðåçåðâíîãî íàñîñà (ìèíóòû)
|
|
//30015 MotoHoursInvertorCharged Ìîòî÷àñû â ñîñòîÿíèè ""Ñèëîâàÿ ñõåìà ñîáðàíà"" (ìèíóòû)
|
|
//30016 MotoHoursInvertorGo Ìîòî÷àñû â ñîñòîÿíèè ""Õîä"" (ìèíóòû)
|
|
//30017 MotoHoursInvertorGoFault Ìîòî÷àñû â ñîñòîÿíèè ""Õîä ñ íåèñïðàâíîñòüþ"" (ìèíóòû)
|
|
//30018 MotoHoursInvertorAlarm Ìîòî÷àñû â ñîñòîÿíèè ""Àâàðèÿ"" (ìèíóòû)
|
|
|
|
#define COUNT_ANALOG_DATA_FROM_INGETEAM SIZE_ANALOG_DATA_REMOUTE //(18+1)
|
|
///////////////////////////////////////////////////
|
|
///
|
|
///////////////////////////////////////////////////
|
|
void func_unpack_answer_from_Ingeteam(unsigned int cc)
|
|
{
|
|
// Êîíòðîëüíày ñóììà
|
|
unsigned int DataOut;
|
|
int Data, Data1, Data2, DataAnalog1, DataAnalog2, DataAnalog3, DataAnalog4, i;
|
|
unsigned int h;
|
|
volatile unsigned char *pByte;
|
|
// static int vs11,vs12,vs1;
|
|
// static int DataCnt=0;
|
|
// int GoT,Assemble_scheme;
|
|
// static int prev_temp_Rele1=0, temp_Rele1=0, prev_temp_Rele2=0, temp_Rele2=0;
|
|
|
|
static int flag_prev_turn_on = 0;
|
|
static int flag_prev_turn_off = 0;
|
|
static int prev_byte01_bit4 = 0;
|
|
static int prev_byte01_bit1 = 0;
|
|
static int flag_wait_revers_sbor = 1;
|
|
static int flag_wait_revers_go = 1;
|
|
|
|
static unsigned int count_transmited = 0;
|
|
|
|
|
|
// Ðàçáèðàåì ïîëy êîìàíäû
|
|
// Âñå ýòî íàäî ïèõíóòü ñåáå
|
|
|
|
if (COUNT_ANALOG_DATA_FROM_INGETEAM > CONTROL_STATION_MAX_RAW_DATA)
|
|
xerror(main_er_ID(2),(void *)0);
|
|
|
|
for (h=1;h<COUNT_ANALOG_DATA_FROM_INGETEAM;h++)
|
|
control_station.raw_array_data[cc][h].all = modbus_table_analog_in[h].all;
|
|
|
|
|
|
}
|
|
|
|
///////////////////////////////////////////////////
|
|
///
|
|
///////////////////////////////////////////////////
|
|
|
|
void get_command_HMI(void)
|
|
{
|
|
|
|
int i;
|
|
static int prev_send_log = -1;
|
|
|
|
/////////////////
|
|
/////////////////
|
|
/////////////////
|
|
|
|
edrk.pult_cmd.kvitir = modbus_table_analog_in[1].all;
|
|
edrk.pult_cmd.sbor = modbus_table_analog_in[2].all;
|
|
edrk.pult_cmd.send_log = modbus_table_analog_in[7].all;
|
|
edrk.pult_cmd.pump_mode = modbus_table_analog_in[9].all;
|
|
|
|
|
|
// mode_pump = modbus_table_analog_in[9].all;
|
|
// 0 - auto on - rand pump
|
|
// 1 - auto on 1 pump
|
|
// 2 - auto on 2 pump
|
|
// 3 - manual on 1 pump
|
|
// 4 - manual on 2 pump
|
|
//////////////////////
|
|
pumps.pump1_engine_minutes = modbus_table_analog_in[13].all;
|
|
pumps.pump2_engine_minutes = modbus_table_analog_in[14].all;
|
|
|
|
|
|
edrk.pult_data.data_from_pult.nPCH = modbus_table_analog_in[34].all;
|
|
edrk.pult_data.data_from_pult.TimeToChangePump = modbus_table_analog_in[164].all;
|
|
|
|
edrk.pult_data.data_from_pult.count_build = modbus_table_analog_in[31].all;
|
|
edrk.pult_data.data_from_pult.count_revers = modbus_table_analog_in[32].all;
|
|
|
|
edrk.pult_data.data_from_pult.LastWorkPump = modbus_table_analog_in[36].all;
|
|
|
|
//
|
|
//Ñòàòóñ êàðòû è ôëåøêè ìîæíî óçíàòü â ðåãèñòðå 30033:
|
|
//Çíà÷åíèå 0 - íåò íè ôëåøêè, íè êàðòû;
|
|
//Çíà÷åíèå 1 - íåò ôëåøêè, åñòü êàðòà;
|
|
//Çíà÷åíèå 2 - åñòü ôëåøêà, íåò êàðòû;
|
|
//Çíà÷åíèå 3 - åñòü è ôëåøêà è êàðòà;
|
|
|
|
edrk.pult_cmd.log_what_memory = modbus_table_analog_in[33].all;
|
|
|
|
|
|
edrk.pult_cmd.sdusb = modbus_table_analog_in[35].all;
|
|
|
|
|
|
//moto
|
|
for (i=0;i<COUNT_MOTO_PULT;i++)
|
|
edrk.pult_data.data_from_pult.moto[i] = modbus_table_analog_in[10+i].all;
|
|
|
|
|
|
/////////////////
|
|
/////////////////
|
|
/////////////////
|
|
/////////////////
|
|
/////////////////
|
|
|
|
if (edrk.pult_cmd.kvitir == 1)
|
|
{
|
|
if (prev_kvitir==0)
|
|
kvitir1 = 1;
|
|
}
|
|
else
|
|
kvitir1 = 0;
|
|
|
|
// edrk.KvitirDISPLAY = kvitir1;
|
|
// edrk.from_display.bits.KVITIR = kvitir1;
|
|
|
|
control_station.array_cmd[CONTROL_STATION_INGETEAM_PULT_RS485][CONTROL_STATION_CMD_CHECKBACK] = kvitir1;
|
|
|
|
prev_kvitir = edrk.pult_cmd.kvitir;
|
|
|
|
|
|
/////////////////
|
|
/////////////////
|
|
/////////////////
|
|
/////////////////
|
|
/////////////////
|
|
/////////////////
|
|
|
|
if (edrk.pult_cmd.sbor == 1)
|
|
{
|
|
if (prev_sbor==0)
|
|
{
|
|
sbor1 = 1;
|
|
}
|
|
razbor1 = 0;
|
|
}
|
|
else
|
|
{
|
|
if (prev_sbor==1)
|
|
{
|
|
razbor1 = 1;
|
|
}
|
|
sbor1 = 0;
|
|
|
|
}
|
|
edrk.from_display.bits.SBOR_SHEMA = sbor1;
|
|
// edrk.from_display.bits.RAZBOR_SHEMA = razbor1;
|
|
prev_sbor = edrk.pult_cmd.sbor;
|
|
|
|
/////////////////
|
|
/////////////////
|
|
/////////////////
|
|
/////////////////
|
|
|
|
if (prev_send_log>=0 && prev_send_log != edrk.pult_cmd.send_log)
|
|
{
|
|
if (edrk.pult_cmd.send_log)
|
|
log_to_HMI.send_log = edrk.pult_cmd.send_log;
|
|
|
|
log_to_HMI.sdusb = edrk.pult_cmd.sdusb;
|
|
|
|
}
|
|
// else
|
|
// log_to_HMI.send_log = 0;
|
|
|
|
prev_send_log = edrk.pult_cmd.send_log;
|
|
|
|
/////////////////
|
|
/////////////////
|
|
/////////////////
|
|
|
|
control_station.array_cmd[CONTROL_STATION_INGETEAM_PULT_RS485][CONTROL_STATION_CMD_MODE_PUMP] = edrk.pult_cmd.pump_mode;
|
|
|
|
|
|
//
|
|
// control_station.array_cmd[CONTROL_STATION_INGETEAM_PULT_RS485][CONTROL_STATION_CMD_DISABLE_ON_PUMP] = modbus_table_analog_in[188].all;
|
|
// control_station.array_cmd[CONTROL_STATION_INGETEAM_PULT_RS485][CONTROL_STATION_CMD_DISABLE_ON_QTV] = modbus_table_analog_in[189].all;
|
|
// control_station.array_cmd[CONTROL_STATION_INGETEAM_PULT_RS485][CONTROL_STATION_CMD_DISABLE_ON_UMP] = modbus_table_analog_in[190].all;
|
|
// control_station.array_cmd[CONTROL_STATION_INGETEAM_PULT_RS485][CONTROL_STATION_CMD_ENABLE_ON_CHARGE] = modbus_table_analog_in[191].all;
|
|
// control_station.array_cmd[CONTROL_STATION_INGETEAM_PULT_RS485][CONTROL_STATION_CMD_MANUAL_DISCHARGE] = modbus_table_analog_in[180].all;
|
|
// control_station.array_cmd[CONTROL_STATION_INGETEAM_PULT_RS485][CONTROL_STATION_CMD_GO] = !modbus_table_analog_in[192].all;
|
|
//
|
|
// control_station.array_cmd[CONTROL_STATION_INGETEAM_PULT_RS485][CONTROL_STATION_CMD_] = modbus_table_analog_in[188].all;
|
|
|
|
/////////////////
|
|
/////////////////
|
|
/////////////////
|
|
/////////////////
|
|
|
|
parse_protect_levels_HMI();
|
|
|
|
}
|
|
|
|
///////////////////////////////////////////////////
|
|
///
|
|
///////////////////////////////////////////////////
|
|
|
|
int update_progress_load_hmi(int proc_load)
|
|
{
|
|
static unsigned int old_time_5 = 0;
|
|
volatile int perc_load=0, final_code = 0, c_l = 0;
|
|
|
|
// return 0;
|
|
|
|
update_tables_HMI_on_inited(proc_load);
|
|
|
|
|
|
old_time_5 = global_time.miliseconds;
|
|
do
|
|
{
|
|
|
|
if (final_code >= 4)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
// if (control_station.flag_waiting_answer[CONTROL_STATION_INGETEAM_PULT_RS485]==0)
|
|
// final_code = modbusNetworkSharing(0);
|
|
// else
|
|
final_code = modbusNetworkSharing(1);
|
|
|
|
// RS232_WorkingWith(0,1,0);
|
|
|
|
}
|
|
while (detect_pause_milisec(1500, &old_time_5)==0);//(100,&old_time));
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
///////////////////////////////////////////////////
|
|
///
|
|
///////////////////////////////////////////////////
|
|
|
|
|
|
void update_tables_HMI_on_inited(int perc_load)
|
|
{
|
|
Inverter_state state;
|
|
static int nn=0, ss=0;
|
|
static int prev_edrk_KVITIR=0;
|
|
int i,status;
|
|
|
|
// log_to_HMI.send_log = modbus_table_analog_in[7].all;
|
|
//setRegisterDiscreteOutput(log_to_HMI.flag_log_array_ready_sent, 310);
|
|
|
|
// LoadMode Read 00544 00544 Ðåæèì çàãðóçêè óïðàâëÿþùåãî êîíòðîëëåðà
|
|
setRegisterDiscreteOutput(0, 544);//
|
|
|
|
// Loading ReadWrite 30088 40088 Îòîáðàæåíèå çàãðóçêè 0-10
|
|
modbus_table_analog_out[88].all = perc_load;
|
|
|
|
// äëÿ ìîðãàíèå ëàìïîé îáìåíà
|
|
modbus_table_analog_out[4].all++;
|
|
|
|
|
|
// build version
|
|
modbus_table_analog_out[219].all = edrk.buildYear;
|
|
modbus_table_analog_out[220].all = edrk.buildMonth;
|
|
modbus_table_analog_out[221].all = edrk.buildDay;
|
|
|
|
|
|
}
|
|
|
|
///////////////////////////////////////////////////
|
|
///
|
|
///////////////////////////////////////////////////
|
|
void update_tables_HMI_discrete(void)
|
|
{
|
|
int real_box;
|
|
// òóò íàäî êâèòèðîâàíèå çàìåäëèòü!!!
|
|
// if (edrk.from_display.bits.KVITIR)
|
|
// setRegisterDiscreteOutput(edrk.from_display.bits.KVITIR, 301);
|
|
setRegisterDiscreteOutput(control_station.array_cmd[CONTROL_STATION_INGETEAM_PULT_RS485][CONTROL_STATION_CMD_CHECKBACK], 513);
|
|
// prev_edrk_KVITIR = edrk.from_display.bits.KVITIR;
|
|
/////
|
|
|
|
//setRegisterDiscreteOutput(edrk.RemouteFromDISPLAY, 302);
|
|
setRegisterDiscreteOutput(control_station.active_control_station[CONTROL_STATION_INGETEAM_PULT_RS485], 514);
|
|
|
|
setRegisterDiscreteOutput(hmi_watch_dog, 515);
|
|
|
|
|
|
setRegisterDiscreteOutput(edrk.StatusFunAll, 516);
|
|
setRegisterDiscreteOutput(edrk.StatusFunAll, 517);
|
|
|
|
setRegisterDiscreteOutput(edrk.StatusPump0, 518);
|
|
setRegisterDiscreteOutput(edrk.StatusPump1, 519);
|
|
|
|
setRegisterDiscreteOutput(edrk.from_shema_filter.bits.SVU,524);
|
|
setRegisterDiscreteOutput(edrk.from_shema_filter.bits.ZADA_DISPLAY,525);
|
|
// Ìåñòíîå_Äèñòàíöèîííîå_óïðàâëåíèå_ÁÑ Read 00523
|
|
// Ìåñòíîå_Äèñòàíöèîííîå_óïðàâëåíèå_ÁÑÓ Read 00524
|
|
// Îáîðîòû_çàäàò÷èê_ýêðàí Read 00525
|
|
|
|
|
|
setRegisterDiscreteOutput(edrk.from_ing1.bits.OHLAD_UTE4KA_WATER, 526);//
|
|
setRegisterDiscreteOutput(edrk.from_ing1.bits.NASOS_NORMA, 527);//
|
|
setRegisterDiscreteOutput(edrk.from_ing1.bits.OP_PIT_NORMA, 528);//
|
|
setRegisterDiscreteOutput(edrk.from_ing1.bits.UPC_24V_NORMA, 529);//
|
|
setRegisterDiscreteOutput(edrk.from_ing1.bits.ALL_KNOPKA_AVARIA, 530);//
|
|
setRegisterDiscreteOutput(edrk.SumSbor, 531);//
|
|
setRegisterDiscreteOutput(edrk.from_ing1.bits.ZARYAD_ON, 532);//
|
|
setRegisterDiscreteOutput(edrk.from_ing1.bits.VIPR_PREDOHR_NORMA, 533);//
|
|
setRegisterDiscreteOutput(!edrk.temper_limit_koeffs.code_status, 534);//
|
|
// setRegisterDiscreteOutput(1, 331);//
|
|
setRegisterDiscreteOutput(edrk.from_ing1.bits.ZAZEML_ON, 535);//
|
|
setRegisterDiscreteOutput(edrk.from_ing1.bits.NAGREV_ON, 536);//
|
|
setRegisterDiscreteOutput(edrk.from_ing1.bits.BLOCK_IZOL_NORMA, 537);//
|
|
setRegisterDiscreteOutput(edrk.from_ing1.bits.BLOCK_IZOL_AVARIA, 538);//
|
|
|
|
//////////////
|
|
// schemeStateOnController ReadWrite 00539 00539 Ñîñòîÿíèå ñõåìû íà êîíòðîëëåðå 0 - ðàçîáðàíà, 1-ñîáðàíà
|
|
// StateAnotherPowerChannel Read 00540 00540 Ñîñòîÿíèå äðóãîãî ñèëîâîãî êàíàëà: 0 - íåò àâàðèè, 1 àâàðèÿ
|
|
// InterfaceOpticalBus Read 00541 00541 Ñîñòîÿíèå îïòè÷åñêîé øèíû: 0 - íåò îáìåíà, 1 - åñòü îáìåí
|
|
// StateDriver Read 00542 00542 Ñîñòîÿíèå ïðèâîäà: 0 - íå ïîäêëþ÷åí ê îáìîòêå ÃÝÄ, 1 - ïîäêëþ÷åí ê îáìîòêå ÃÝÄ
|
|
// NumberPowerChannel Read 00543 00543 Íîìåð ñèëîâîãî êàíàëà: 0 - ïåðâûé, 1 - âòîðîé
|
|
|
|
|
|
setRegisterDiscreteOutput(edrk.Status_Ready.bits.ready_final, 539);
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.ANOTHER_BS_ALARM, 540);
|
|
setRegisterDiscreteOutput(optical_read_data.status == 1 && optical_write_data.status == 1 ? 1 : 0, 541);
|
|
setRegisterDiscreteOutput(edrk.Status_Rascepitel_Ok, 542);
|
|
|
|
if (edrk.flag_second_PCH==0)
|
|
setRegisterDiscreteOutput(0, 543);
|
|
else
|
|
setRegisterDiscreteOutput(1, 543);
|
|
|
|
// LoadMode Read 00544 00544 Ðåæèì çàãðóçêè óïðàâëÿþùåãî êîíòðîëëåðà
|
|
setRegisterDiscreteOutput(1, 544); //
|
|
|
|
// Loading ReadWrite 30088 40088 Îòîáðàæåíèå çàãðóçêè 0-10
|
|
|
|
setRegisterDiscreteOutput(control_station.active_array_cmd[CONTROL_STATION_CMD_BLOCK_BS]
|
|
|| edrk.from_shema.bits.SVU_BLOCK_QTV, 545);
|
|
//////////////
|
|
|
|
|
|
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk0_ack, 17);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk1_ack, 18);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk2_ack, 19);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk3_ack, 20);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk4_ack, 21);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk5_ack, 22);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk6_ack, 23);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk7_ack, 24);//
|
|
|
|
setRegisterDiscreteOutput(project.cds_tk[3].read.sbus.status_protect_current_ack.bit.tk0_ack, 25);//
|
|
setRegisterDiscreteOutput(project.cds_tk[3].read.sbus.status_protect_current_ack.bit.tk1_ack, 26);//
|
|
/////////////////////
|
|
if (edrk.flag_second_PCH==0)
|
|
setRegisterDiscreteOutput(edrk.errors.e4.bits.ANOTHER_BS_POWER_OFF, 27);
|
|
else
|
|
setRegisterDiscreteOutput(edrk.errors.e4.bits.ANOTHER_BS_POWER_OFF, 28);
|
|
|
|
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk0_current, 33);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk1_current, 34);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk2_current, 35);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk3_current, 36);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk4_current, 37);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk5_current, 38);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk6_current, 39);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk7_current, 40);//
|
|
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk0_current, 41);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk1_current, 42);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk2_current, 43);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk3_current, 44);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk4_current, 45);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk5_current, 46);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk6_current, 47);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk7_current, 48);//
|
|
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk0_current, 49);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk1_current, 50);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk2_current, 51);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk3_current, 52);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk4_current, 53);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk5_current, 54);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk6_current, 55);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.status_protect_current_ack.bit.tk7_current, 56);//
|
|
|
|
setRegisterDiscreteOutput(project.cds_tk[3].read.sbus.status_protect_current_ack.bit.tk0_current, 57);//
|
|
setRegisterDiscreteOutput(project.cds_tk[3].read.sbus.status_protect_current_ack.bit.tk1_current, 58);//
|
|
//////////////////////////
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 65);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 66);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 67);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 68);//
|
|
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.lock_status_error.bit.mintime_err_keys_7654, 69);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.lock_status_error.bit.mintime_err_keys_7654, 70);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.lock_status_error.bit.mintime_err_keys_7654, 71);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.lock_status_error.bit.mintime_err_keys_7654, 72);//
|
|
|
|
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 73);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 74);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 75);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 76);//
|
|
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.lock_status_error.bit.mintime_err_keys_7654, 77);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.lock_status_error.bit.mintime_err_keys_7654, 78);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.lock_status_error.bit.mintime_err_keys_7654, 79);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.lock_status_error.bit.mintime_err_keys_7654, 80);//
|
|
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 81);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 82);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 83);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 84);//
|
|
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.lock_status_error.bit.mintime_err_keys_7654, 85);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.lock_status_error.bit.mintime_err_keys_7654, 86);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.lock_status_error.bit.mintime_err_keys_7654, 87);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.lock_status_error.bit.mintime_err_keys_7654, 88);//
|
|
|
|
setRegisterDiscreteOutput(project.cds_tk[3].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 89);//
|
|
setRegisterDiscreteOutput(project.cds_tk[3].read.sbus.lock_status_error.bit.mintime_err_keys_3210, 90);//
|
|
|
|
/////////////////
|
|
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e3.bits.NOT_READY_TK_0, 97);//
|
|
setRegisterDiscreteOutput(edrk.errors.e3.bits.NOT_READY_TK_1, 98);//
|
|
setRegisterDiscreteOutput(edrk.errors.e3.bits.NOT_READY_TK_2, 99);//
|
|
setRegisterDiscreteOutput(edrk.errors.e3.bits.NOT_READY_TK_3, 100);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e3.bits.NOT_READY_IN_0, 101);//
|
|
setRegisterDiscreteOutput(edrk.errors.e3.bits.NOT_READY_IN_1, 102);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e3.bits.NOT_READY_OUT_0, 103);//
|
|
// setRegisterDiscreteOutput(edrk.errors.e3.bits.NOT_READY_OUT_1, 105);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e3.bits.NOT_READY_ADC_0, 104);//
|
|
setRegisterDiscreteOutput(edrk.errors.e3.bits.NOT_READY_HWP_0, 105);//
|
|
setRegisterDiscreteOutput(edrk.errors.e3.bits.NOT_READY_ADC_1, 106);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e3.bits.NOT_READY_CONTR, 107);//
|
|
|
|
|
|
///////////////////
|
|
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.KEY_AVARIA, 113);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e6.bits.QTV_ERROR_NOT_ANSWER, 114);
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.SVU_BLOCK_ON_QTV
|
|
|| control_station.active_array_cmd[CONTROL_STATION_CMD_BLOCK_BS], 115);
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.UMP_NOT_ANSWER, 116);
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.UMP_NOT_READY, 117);
|
|
setRegisterDiscreteOutput(edrk.errors.e6.bits.RASCEPITEL_ERROR_NOT_ANSWER, 118);
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.ANOTHER_RASCEPITEL_ON, 119);
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.AUTO_SET_MASTER, 120);
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.ANOTHER_PCH_NOT_ANSWER, 121);
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.WDOG_OPTICAL_BUS, 122);
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.ERROR_RAZBOR_SHEMA, 123);
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.NO_CONFIRM_ON_RASCEPITEL, 124);
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.ANOTHER_BS_NOT_ON_RASCEPITEL, 125);
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.ANOTHER_BS_VERY_LONG_WAIT, 126);
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.VERY_LONG_BOTH_READY2, 127);
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.BOTH_KEYS_CHARGE_DISCHARGE, 128);
|
|
|
|
// setRegisterDiscreteOutput(edrk.errors.e5.bits.OP_PIT, 115);//
|
|
// setRegisterDiscreteOutput(edrk.errors.e5.bits.POWER_UPC, 116);//
|
|
///////////////////
|
|
|
|
setRegisterDiscreteOutput(!control_station.alive_control_station[CONTROL_STATION_ZADATCHIK_CAN], 129);
|
|
setRegisterDiscreteOutput(!control_station.alive_control_station[CONTROL_STATION_MPU_SVU_CAN], 130);
|
|
// setRegisterDiscreteOutput(CAN_timeout[get_real_in_mbox(UNITS_TYPE_BOX,UMU_CAN_DEVICE)], 131); Èñêëþ÷¸í èç ñõåìû
|
|
real_box = get_real_in_mbox(UNITS_TYPE_BOX,BKSSD_CAN_DEVICE);
|
|
if (real_box != -1)
|
|
setRegisterDiscreteOutput(CAN_timeout[real_box], 132);
|
|
|
|
real_box = get_real_in_mbox(UNITS_TYPE_BOX,VPU_CAN);
|
|
if (real_box != -1)
|
|
setRegisterDiscreteOutput(CAN_timeout[real_box], 133);
|
|
real_box = get_real_in_mbox(UNITS_TYPE_BOX,ANOTHER_BSU1_CAN_DEVICE);
|
|
if (real_box != -1)
|
|
setRegisterDiscreteOutput(CAN_timeout[real_box], 134);
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.CAN2CAN_BS, 135);
|
|
|
|
|
|
if (edrk.flag_second_PCH==0)
|
|
setRegisterDiscreteOutput(edrk.warnings.e4.bits.ANOTHER_BS_POWER_OFF, 137);
|
|
else
|
|
setRegisterDiscreteOutput(edrk.warnings.e4.bits.ANOTHER_BS_POWER_OFF, 136);
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.ANOTHER_BS_ALARM, 138); // ; edrk.errors.e4.bits.FAST_OPTICAL_ALARM
|
|
setRegisterDiscreteOutput(edrk.warnings.e7.bits.ANOTHER_BS_ALARM, 139);// ; edrk.warnings.e4.bits.FAST_OPTICAL_ALARM
|
|
|
|
setRegisterDiscreteOutput(edrk.warnings.e7.bits.UMP_NOT_READY, 140);
|
|
|
|
setRegisterDiscreteOutput(edrk.warnings.e9.bits.SENSOR_ROTOR_1_BREAK, 141);
|
|
setRegisterDiscreteOutput(edrk.warnings.e9.bits.SENSOR_ROTOR_1_BREAK, 142);
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e9.bits.SENSOR_ROTOR_1_2_BREAK, 143);
|
|
|
|
|
|
|
|
///
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk0_ack, 145);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk1_ack, 146);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk2_ack, 147);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk3_ack, 148);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk4_ack, 149);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk5_ack, 150);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk6_ack, 151);//
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.status_protect_current_ack.bit.tk7_ack, 152);//
|
|
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk0_ack, 153);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk1_ack, 154);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk2_ack, 155);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk3_ack, 156);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk4_ack, 157);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk5_ack, 158);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk6_ack, 159);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.status_protect_current_ack.bit.tk7_ack, 160);//
|
|
|
|
|
|
|
|
|
|
// setRegisterDiscreteOutput(edrk.errors.e5.bits.KEY_AVARIA, 243);//
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.OP_PIT, 161);//
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.UTE4KA_WATER, 162);//
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.BLOCK_DOOR, 163);//
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.ERROR_PRE_CHARGE_ON, 164);//
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.FAN, 165);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.PUMP_1, 166);//
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.PRE_READY_PUMP, 167);//
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.ERROR_HEAT, 168);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.ERROR_PRED_VIPR, 170);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.ERROR_ISOLATE, 171);//
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.POWER_UPC, 172);//
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.ERROR_GROUND_NET, 173);//
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.PUMP_2, 174);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e5.bits.ERROR_ISOLATE, 175);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e5.bits.PRE_READY_PUMP, 176);//
|
|
|
|
|
|
///////////////////
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_1_MAX, 177);//
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_2_MAX, 178);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_1_MIN, 179);//
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_2_MIN, 180);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_A1B1_MAX, 181);//
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_A2B2_MAX, 182);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_B1C1_MAX, 183);//
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_B2C2_MAX, 184);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_A1B1_MIN, 185);//
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_A2B2_MIN, 186);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_B1C1_MIN, 187);//
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_B2C2_MIN, 188);//
|
|
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_IN_MAX, 189);//
|
|
setRegisterDiscreteOutput(edrk.errors.e0.bits.U_IN_MIN, 190);//
|
|
|
|
// setRegisterDiscreteOutput(edrk.errors.e0.bits.I_1_MAX, 191);//
|
|
// setRegisterDiscreteOutput(edrk.errors.e0.bits.I_2_MAX, 192);//
|
|
|
|
|
|
//////////////
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.I_UO2_MAX, 193);//
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.I_UO3_MAX, 194);//
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.I_UO4_MAX, 195);//
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.I_UO5_MAX, 196);//
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.I_UO6_MAX, 197);//
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.I_UO7_MAX, 198);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.I_BREAK_1_MAX, 199);//
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.I_BREAK_2_MAX, 200);//
|
|
|
|
// setRegisterDiscreteOutput(edrk.errors.e1.bits.HWP_ERROR, 201);//
|
|
////////////////////
|
|
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.T_AIR0_MAX, 203);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.T_AIR1_MAX, 204);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.T_AIR2_MAX, 205);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.T_AIR3_MAX, 206);//
|
|
|
|
setRegisterDiscreteOutput(edrk.power_limit.bits.limit_by_temper, 207);//
|
|
setRegisterDiscreteOutput(edrk.power_limit.bits.limit_from_freq, 211);//
|
|
setRegisterDiscreteOutput(edrk.power_limit.bits.limit_from_uom_fast, 212);//
|
|
setRegisterDiscreteOutput(edrk.power_limit.bits.limit_from_SVU, 213);//
|
|
setRegisterDiscreteOutput(edrk.power_limit.bits.limit_moment, 214);//
|
|
setRegisterDiscreteOutput(edrk.power_limit.bits.limit_Iout, 216);//
|
|
|
|
////////////////////
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.ERROR_PRE_CHARGE_ON, 209);//
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.ERROR_SBOR_SHEMA, 210);//
|
|
|
|
/////////////////////
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch0, 225);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch1, 226);//
|
|
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch2, 227);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch3, 228);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch4, 229);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch5, 230);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch6, 231);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch7, 232);//
|
|
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch8, 234);//
|
|
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch10, 235);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch11, 236);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch12, 237);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch13, 238);//
|
|
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch14, 239);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.plus.bit.ch15, 240);//
|
|
|
|
|
|
////////////////////
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.LINE_ERR0, 241);//
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.LINE_HWP, 242);//
|
|
////////////////////
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.minus.bit.ch2, 243);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.minus.bit.ch3, 244);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.minus.bit.ch4, 245);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.minus.bit.ch5, 246);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.minus.bit.ch6, 247);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.minus.bit.ch7, 248);//
|
|
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.minus.bit.ch8, 250);//
|
|
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.minus.bit.ch10, 251);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.minus.bit.ch11, 252);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.minus.bit.ch12, 253);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.minus.bit.ch13, 254);//
|
|
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.minus.bit.ch14, 255);//
|
|
setRegisterDiscreteOutput(project.hwp[0].read.comp_s.minus.bit.ch15, 256);//
|
|
|
|
|
|
|
|
////////////////////
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.LOSS_INPUT_A1B1, 257);//
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.LOSS_INPUT_B1C1, 258);//
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.LOSS_INPUT_A2B2, 259);//
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.LOSS_INPUT_B2C2, 260);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.LOW_FREQ_50HZ, 261);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e8.bits.LOW_FREQ_50HZ, 262);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.READ_OPTBUS || edrk.errors.e7.bits.WRITE_OPTBUS, 263);//
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.MASTER_SLAVE_SYNC, 264); //
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e6.bits.ERR_SBUS, 265);//
|
|
setRegisterDiscreteOutput(edrk.errors.e6.bits.ERR_PBUS, 266);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e6.bits.ER_DISBAL_BATT, 267);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e6.bits.QTV_ERROR_NOT_U, 268);//
|
|
setRegisterDiscreteOutput(edrk.errors.e6.bits.ERROR_PRE_CHARGE_U, 269);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.U_IN_20_PROCENTS_HIGH, 270);//
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.U_IN_10_PROCENTS_LOW, 271);//
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.U_IN_20_PROCENTS_LOW, 272);//
|
|
|
|
|
|
////////////////
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.lock_status_error.bit.err_power, 273);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.lock_status_error.bit.err_power, 274);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.lock_status_error.bit.err_power, 275);//
|
|
setRegisterDiscreteOutput(project.cds_tk[3].read.sbus.lock_status_error.bit.err_power, 276);//
|
|
setRegisterDiscreteOutput(project.cds_in[0].read.sbus.lock_status_error.bit.err_power, 277);//
|
|
setRegisterDiscreteOutput(project.cds_in[1].read.sbus.lock_status_error.bit.err_power, 278);//
|
|
setRegisterDiscreteOutput(project.cds_out[0].read.sbus.lock_status_error.bit.err_power, 279);//
|
|
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.NOT_VALID_CONTROL_STATION, 280);//
|
|
|
|
////////////////
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.LOSS_OUTPUT_U1, 281);//
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.LOSS_OUTPUT_V1, 282);//
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.LOSS_OUTPUT_W1, 283);//
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.LOSS_OUTPUT_U2, 284);//
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.LOSS_OUTPUT_V2, 285);//
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.LOSS_OUTPUT_W2, 286);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e8.bits.DISBALANCE_IM1_IM2, 287);//
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.VERY_FAST_GO_0to1, 288);//
|
|
|
|
////////////////
|
|
setRegisterDiscreteOutput(project.cds_tk[0].read.sbus.lock_status_error.bit.err_switch, 289);//
|
|
setRegisterDiscreteOutput(project.cds_tk[1].read.sbus.lock_status_error.bit.err_switch, 290);//
|
|
setRegisterDiscreteOutput(project.cds_tk[2].read.sbus.lock_status_error.bit.err_switch, 291);//
|
|
setRegisterDiscreteOutput(project.cds_tk[3].read.sbus.lock_status_error.bit.err_switch, 292);//
|
|
setRegisterDiscreteOutput(project.cds_in[0].read.sbus.lock_status_error.bit.err_switch, 293);//
|
|
setRegisterDiscreteOutput(project.cds_in[1].read.sbus.lock_status_error.bit.err_switch, 294);//
|
|
setRegisterDiscreteOutput(project.cds_out[0].read.sbus.lock_status_error.bit.err_switch, 295);//
|
|
|
|
setRegisterDiscreteOutput(project.adc[0].read.sbus.lock_status_error.bit.err_switch, 296);//
|
|
setRegisterDiscreteOutput(project.adc[1].read.sbus.lock_status_error.bit.err_switch, 298);//
|
|
|
|
////////////////
|
|
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.T_UO1_MAX, 305);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.T_UO2_MAX, 306);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.T_UO3_MAX, 307);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.T_UO4_MAX, 308);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.T_UO5_MAX, 309);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.T_UO6_MAX, 310);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.T_UO7_MAX, 311);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.T_UO1_MAX, 312);//
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.T_UO2_MAX, 313);//
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.T_UO3_MAX, 314);//
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.T_UO4_MAX, 315);//
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.T_UO5_MAX, 316);//
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.T_UO6_MAX, 317);//
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.T_UO7_MAX, 318);//
|
|
|
|
|
|
|
|
|
|
/////////////////////
|
|
|
|
setRegisterDiscreteOutput(edrk.warnings.e7.bits.READ_OPTBUS || edrk.warnings.e7.bits.WRITE_OPTBUS, 321);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e7.bits.MASTER_SLAVE_SYNC, 322);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e6.bits.ERROR_PRE_CHARGE_ANSWER, 323);//
|
|
|
|
setRegisterDiscreteOutput(edrk.warnings.e1.bits.NO_INPUT_SYNC_SIGNAL, 324);//
|
|
setRegisterDiscreteOutput(edrk.errors.e1.bits.NO_INPUT_SYNC_SIGNAL, 325);//
|
|
setRegisterDiscreteOutput(edrk.errors.e3.bits.ERR_INT_PWM_LONG
|
|
|| edrk.errors.e9.bits.ERR_PWM_WDOG
|
|
|| edrk.errors.e9.bits.ERR_INT_PWM_VERY_LONG, 326);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e5.bits.T_VIPR_MAX, 336);
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.T_AIR0_MAX, 337);
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.T_AIR1_MAX, 338);
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.T_AIR2_MAX, 339);
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.T_AIR3_MAX, 340);
|
|
setRegisterDiscreteOutput(edrk.warnings.e10.bits.T_BSU_Sensor_BK1, 341);
|
|
setRegisterDiscreteOutput(edrk.errors.e10.bits.T_BSU_Sensor_BK1, 342);
|
|
setRegisterDiscreteOutput(edrk.warnings.e10.bits.T_BSU_Sensor_BK2, 343);
|
|
setRegisterDiscreteOutput(edrk.errors.e10.bits.T_BSU_Sensor_BK2, 344);
|
|
//////
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.T_WATER_EXT_MAX, 345);//
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.T_WATER_INT_MAX, 346);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.T_WATER_EXT_MAX, 347);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.T_WATER_INT_MAX, 348);//
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e7.bits.T_ACDRIVE_BEAR_MAX_DNE, 349);//
|
|
setRegisterDiscreteOutput(edrk.errors.e9.bits.T_ACDRIVE_BEAR_MAX_NE, 350);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e7.bits.T_ACDRIVE_BEAR_MAX_DNE, 351);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e9.bits.T_ACDRIVE_BEAR_MAX_NE, 352);//
|
|
|
|
//////////////
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e10.bits.T_ACDRIVE_WINDING_U1, 353);//
|
|
setRegisterDiscreteOutput(edrk.errors.e10.bits.T_ACDRIVE_WINDING_V1, 354);//
|
|
setRegisterDiscreteOutput(edrk.errors.e10.bits.T_ACDRIVE_WINDING_W1, 355);//
|
|
setRegisterDiscreteOutput(edrk.errors.e10.bits.T_ACDRIVE_WINDING_U2, 356);//
|
|
setRegisterDiscreteOutput(edrk.errors.e10.bits.T_ACDRIVE_WINDING_V2, 357);//
|
|
setRegisterDiscreteOutput(edrk.errors.e10.bits.T_ACDRIVE_WINDING_W2, 358);//
|
|
|
|
setRegisterDiscreteOutput(edrk.warnings.e10.bits.T_ACDRIVE_WINDING_U1, 359);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e10.bits.T_ACDRIVE_WINDING_V1, 360);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e10.bits.T_ACDRIVE_WINDING_W1, 361);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e10.bits.T_ACDRIVE_WINDING_U2, 362);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e10.bits.T_ACDRIVE_WINDING_V2, 363);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e10.bits.T_ACDRIVE_WINDING_W2, 364);//
|
|
|
|
////////////////////
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.P_WATER_INT_MAX, 369);//
|
|
setRegisterDiscreteOutput(edrk.errors.e2.bits.P_WATER_INT_MIN, 370);//
|
|
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.P_WATER_INT_MAX, 371);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e2.bits.P_WATER_INT_MIN, 372);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e5.bits.PUMP_1, 373);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e5.bits.PUMP_2, 374);//
|
|
|
|
|
|
|
|
////
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_PUMP_ON_SBOR, 385);
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_RESTART_PUMP_1_ON_SBOR, 386);
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_RESTART_PUMP_2_ON_SBOR, 387);
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_RESTART_PUMP_ALL_ON_SBOR, 388);
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_PRED_ZARYAD, 389);
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_PRED_ZARYAD_AFTER, 390);
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_READY_UMP_BEFORE_QTV, 391);
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_STATUS_QTV, 392);
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_UMP_ON_AFTER, 393);
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_UMP_NOT_ON, 394);
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_UMP_NOT_OFF, 395);
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_RASCEPITEL_WAIT_CMD, 396);
|
|
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_RASCEPITEL_ON_AFTER, 397);
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_DISABLE_SBOR, 398);
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_VERY_LONG_SBOR, 399);
|
|
setRegisterDiscreteOutput(edrk.errors.e11.bits.ERROR_CONTROLLER_BUS, 400);
|
|
|
|
setRegisterDiscreteOutput(edrk.warnings.e9.bits.BREAK_TEMPER_WARNING, 417);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e9.bits.BREAK_TEMPER_ALARM, 418);//
|
|
setRegisterDiscreteOutput(edrk.warnings.e9.bits.BREAKER_GED_ON, 419);//
|
|
|
|
//////////////////
|
|
|
|
|
|
if (edrk.Mode_ScalarVectorUFConst == ALG_MODE_FOC_POWER ||
|
|
edrk.Mode_ScalarVectorUFConst == ALG_MODE_SCALAR_POWER) {
|
|
setRegisterDiscreteOutput(1, 520);
|
|
} else {
|
|
setRegisterDiscreteOutput(0, 520);
|
|
}
|
|
// setRegisterDiscreteOutput(TODO Áëîêèðîâêà ÑÂÓ, 546);//
|
|
setRegisterDiscreteOutput(!edrk.from_ing1.bits.UPC_24V_NORMA, 546);//
|
|
setRegisterDiscreteOutput(edrk.from_ing2.bits.SOST_ZAMKA, 547);//
|
|
setRegisterDiscreteOutput(edrk.from_shema_filter.bits.READY_UMP, 548);//
|
|
|
|
|
|
////////////////
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
void update_tables_HMI_analog(void)
|
|
{
|
|
int power_kw_full;
|
|
int power_kw;
|
|
int oborots;
|
|
|
|
Inverter_state state;
|
|
static int nn=0, ss=0, pl = 0;
|
|
// static int prev_edrk_KVITIR=0;
|
|
int i,status;
|
|
// static int check = 0;
|
|
|
|
hmi_watch_dog = !hmi_watch_dog; //was transmitted, need to change
|
|
|
|
//log_to_HMI.send_log = modbus_table_analog_in[7].all;
|
|
//setRegisterDiscreteOutput(log_to_HMI.flag_log_array_ready_sent, 310);
|
|
|
|
// setRegisterDiscreteOutput(ss, nn);
|
|
|
|
// äëÿ ìîðãàíèå ëàìïîé îáìåíà
|
|
modbus_table_analog_out[4].all++;// = ++check;
|
|
// test
|
|
// setRegisterDiscreteOutput(1, 293);
|
|
// setRegisterDiscreteOutput(1, 294);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
if (edrk.summ_errors)
|
|
{
|
|
modbus_table_analog_out[1].all = 6; // àâàðèß
|
|
modbus_table_analog_out[2].all = 3; // red
|
|
}
|
|
else
|
|
{
|
|
|
|
if (edrk.SumSbor || edrk.Status_Ready.bits.ImitationReady2)
|
|
{
|
|
if (edrk.Status_Ready.bits.ready_final)
|
|
{
|
|
//modbus_table_analog_out[2].all = 1; // green
|
|
if (edrk.Go)
|
|
{
|
|
modbus_table_analog_out[1].all = 3; // õîä
|
|
if (edrk.Provorot)
|
|
modbus_table_analog_out[1].all = 12; // Ïðîâîðîò = 11
|
|
|
|
}
|
|
else
|
|
modbus_table_analog_out[1].all = 2; // ready2
|
|
}
|
|
else
|
|
modbus_table_analog_out[1].all = 4; // building
|
|
}
|
|
else
|
|
{
|
|
if (edrk.Status_Ready.bits.ready1)
|
|
modbus_table_analog_out[1].all = 1; // ready1
|
|
else
|
|
modbus_table_analog_out[1].all = 0; // waiting
|
|
}
|
|
|
|
if (edrk.RazborNotFinish)
|
|
modbus_table_analog_out[1].all = 11; // ðàçáîð
|
|
|
|
if (edrk.Status_Perehod_Rascepitel==1 && edrk.cmd_to_rascepitel==1)
|
|
modbus_table_analog_out[1].all = 7; // ïîäêëþ÷åíèå ïðèâîäà
|
|
|
|
if (edrk.Status_Perehod_Rascepitel==1 && edrk.cmd_to_rascepitel==0)
|
|
modbus_table_analog_out[1].all = 8; // îòêëþ÷åíèå ïðèâîäà
|
|
|
|
if (edrk.RunZahvatRascepitel)
|
|
modbus_table_analog_out[1].all = 9; // çàïðîñ íà ïîäêëþ÷åíèå = 9
|
|
if (edrk.RunUnZahvatRascepitel)
|
|
modbus_table_analog_out[1].all = 10; // çàïðîñ íà îòêëþ÷åíèå = 10
|
|
|
|
//
|
|
//modbus_table_analog_out[1].all = 5; // íåèñïðàâíîñòü
|
|
|
|
if (modbus_table_analog_out[1].all == 1)
|
|
modbus_table_analog_out[2].all = 0; // gray
|
|
else
|
|
if (modbus_table_analog_out[1].all == 3 ||
|
|
modbus_table_analog_out[1].all == 12 ||
|
|
modbus_table_analog_out[1].all == 2)
|
|
modbus_table_analog_out[2].all = 1; // green
|
|
else
|
|
{
|
|
if (modbus_table_analog_out[2].all==0)
|
|
modbus_table_analog_out[2].all = 1; // green
|
|
else
|
|
modbus_table_analog_out[2].all = 0; // gray
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (edrk.errors.e6.bits.QTV_ERROR_NOT_ANSWER || edrk.errors.e6.bits.QTV_ERROR_NOT_U)
|
|
{
|
|
modbus_table_analog_out[10].all = 3;
|
|
modbus_table_analog_out[11].all = 3;
|
|
}
|
|
else
|
|
{
|
|
if (edrk.from_shema_filter.bits.QTV_ON_OFF)
|
|
{
|
|
modbus_table_analog_out[10].all = 1;
|
|
modbus_table_analog_out[11].all = 1;
|
|
}
|
|
else
|
|
{
|
|
modbus_table_analog_out[10].all = 0;
|
|
modbus_table_analog_out[11].all = 0;
|
|
}
|
|
}
|
|
|
|
|
|
if (edrk.from_ing1.bits.VIPR_PREDOHR_NORMA==1)
|
|
{
|
|
if (edrk.from_shema_filter.bits.QTV_ON_OFF==1)
|
|
modbus_table_analog_out[12].all = 1;
|
|
else
|
|
modbus_table_analog_out[12].all = 0;
|
|
}
|
|
else
|
|
modbus_table_analog_out[12].all = 3;
|
|
|
|
|
|
if (edrk.errors.e6.bits.UO1_KEYS || edrk.errors.e1.bits.I_BREAK_1_MAX || edrk.errors.e1.bits.I_BREAK_2_MAX || edrk.errors.e2.bits.T_UO1_MAX)
|
|
modbus_table_analog_out[13].all = 3;
|
|
else
|
|
if (edrk.warnings.e2.bits.T_UO1_MAX)
|
|
modbus_table_analog_out[13].all = 2;
|
|
else
|
|
modbus_table_analog_out[13].all = 1;
|
|
|
|
if (edrk.errors.e6.bits.UO2_KEYS || edrk.errors.e1.bits.I_UO2_MAX || edrk.errors.e2.bits.T_UO2_MAX)
|
|
modbus_table_analog_out[14].all = 3;
|
|
else
|
|
if (edrk.warnings.e2.bits.T_UO2_MAX)
|
|
modbus_table_analog_out[14].all = 2;
|
|
else
|
|
modbus_table_analog_out[14].all = 1;
|
|
|
|
if (edrk.errors.e6.bits.UO3_KEYS || edrk.errors.e1.bits.I_UO3_MAX || edrk.errors.e2.bits.T_UO3_MAX)
|
|
modbus_table_analog_out[15].all = 3;
|
|
else
|
|
if (edrk.warnings.e2.bits.T_UO3_MAX)
|
|
modbus_table_analog_out[15].all = 2;
|
|
else
|
|
modbus_table_analog_out[15].all = 1;
|
|
|
|
if (edrk.errors.e6.bits.UO4_KEYS || edrk.errors.e1.bits.I_UO4_MAX || edrk.errors.e2.bits.T_UO4_MAX)
|
|
modbus_table_analog_out[16].all = 3;
|
|
else
|
|
if (edrk.warnings.e2.bits.T_UO4_MAX)
|
|
modbus_table_analog_out[16].all = 2;
|
|
else
|
|
modbus_table_analog_out[16].all = 1;
|
|
|
|
if (edrk.errors.e6.bits.UO5_KEYS || edrk.errors.e1.bits.I_UO5_MAX || edrk.errors.e2.bits.T_UO5_MAX)
|
|
modbus_table_analog_out[17].all = 3;
|
|
else
|
|
if (edrk.warnings.e2.bits.T_UO5_MAX)
|
|
modbus_table_analog_out[17].all = 2;
|
|
else
|
|
modbus_table_analog_out[17].all = 1;
|
|
|
|
if (edrk.errors.e6.bits.UO6_KEYS || edrk.errors.e1.bits.I_UO6_MAX || edrk.errors.e2.bits.T_UO6_MAX)
|
|
modbus_table_analog_out[18].all = 3;
|
|
else
|
|
if (edrk.warnings.e2.bits.T_UO6_MAX)
|
|
modbus_table_analog_out[18].all = 2;
|
|
else
|
|
modbus_table_analog_out[18].all = 1;
|
|
|
|
if (edrk.errors.e6.bits.UO7_KEYS || edrk.errors.e1.bits.I_UO7_MAX || edrk.errors.e2.bits.T_UO7_MAX)
|
|
modbus_table_analog_out[19].all = 3;
|
|
else
|
|
if (edrk.warnings.e2.bits.T_UO7_MAX)
|
|
modbus_table_analog_out[19].all = 2;
|
|
else
|
|
modbus_table_analog_out[19].all = 1;
|
|
|
|
|
|
// motor_state
|
|
if (edrk.errors.e10.bits.T_ACDRIVE_WINDING_U1 || edrk.errors.e10.bits.T_ACDRIVE_WINDING_V1 ||
|
|
edrk.errors.e10.bits.T_ACDRIVE_WINDING_W1 || edrk.errors.e10.bits.T_ACDRIVE_WINDING_U2 ||
|
|
edrk.errors.e10.bits.T_ACDRIVE_WINDING_V2 || edrk.errors.e10.bits.T_ACDRIVE_WINDING_W2 ||
|
|
edrk.errors.e7.bits.T_ACDRIVE_BEAR_MAX_DNE || edrk.errors.e9.bits.T_ACDRIVE_BEAR_MAX_NE) {
|
|
modbus_table_analog_out[20].all = 3;
|
|
} else if (edrk.warnings.e10.bits.T_ACDRIVE_WINDING_U1 || edrk.warnings.e10.bits.T_ACDRIVE_WINDING_V1 ||
|
|
edrk.warnings.e10.bits.T_ACDRIVE_WINDING_W1 || edrk.warnings.e10.bits.T_ACDRIVE_WINDING_U2 ||
|
|
edrk.warnings.e10.bits.T_ACDRIVE_WINDING_V2 || edrk.warnings.e10.bits.T_ACDRIVE_WINDING_W2 ||
|
|
edrk.warnings.e7.bits.T_ACDRIVE_BEAR_MAX_DNE || edrk.warnings.e9.bits.T_ACDRIVE_BEAR_MAX_NE
|
|
|| edrk.power_limit.all
|
|
) {
|
|
modbus_table_analog_out[20].all = 2;
|
|
} else {
|
|
modbus_table_analog_out[20].all = 1;
|
|
}
|
|
|
|
|
|
// ump state
|
|
if (edrk.from_ing1.bits.ZARYAD_ON || edrk.from_shema_filter.bits.UMP_ON_OFF)
|
|
{
|
|
modbus_table_analog_out[21].all = 1; //green
|
|
}
|
|
else
|
|
{
|
|
if (edrk.errors.e7.bits.ERROR_SBOR_SHEMA || edrk.errors.e5.bits.ERROR_PRE_CHARGE_ON ||
|
|
edrk.errors.e6.bits.ERROR_PRE_CHARGE_ANSWER || edrk.errors.e6.bits.ERROR_PRE_CHARGE_U || edrk.errors.e7.bits.UMP_NOT_READY)
|
|
modbus_table_analog_out[21].all = 3; // alarm
|
|
else
|
|
if (edrk.warnings.e7.bits.UMP_NOT_READY)
|
|
modbus_table_analog_out[21].all = 2; //fault
|
|
else
|
|
{
|
|
if (edrk.Stage_Sbor == STAGE_SBOR_STATUS_UMP_ON && edrk.SumSbor)
|
|
{
|
|
if (modbus_table_analog_out[21].all==0)
|
|
modbus_table_analog_out[21].all = 1; //green
|
|
else
|
|
modbus_table_analog_out[21].all = 0; //gray
|
|
}
|
|
else
|
|
modbus_table_analog_out[21].all = 0;
|
|
}
|
|
}
|
|
|
|
|
|
modbus_table_analog_out[30].all = fast_round_with_limiter(_IQtoF(filter.iqUin_m1)*NORMA_ACP/1.41, LIMITER_U_I_PULT);
|
|
modbus_table_analog_out[31].all = fast_round_with_limiter(_IQtoF(filter.iqUin_m2)*NORMA_ACP/1.41, LIMITER_U_I_PULT);
|
|
|
|
// if (edrk.Status_Ready.bits.ready_final==0)
|
|
// {
|
|
// modbus_table_analog_out[32].all = edrk.Stage_Sbor;
|
|
// modbus_table_analog_out[33].all = edrk.Sbor_Mode;//_IQtoF(analog.iqIin_1)*NORMA_ACP;
|
|
// }
|
|
// else
|
|
// {
|
|
modbus_table_analog_out[32].all = fast_round_with_limiter(_IQtoF(analog.iqIin_1)*NORMA_ACP, LIMITER_U_I_PULT);
|
|
modbus_table_analog_out[33].all = fast_round_with_limiter(_IQtoF(analog.iqIin_2)*NORMA_ACP, LIMITER_U_I_PULT);
|
|
// }
|
|
|
|
|
|
// modbus_table_analog_out[34].all = _IQtoF(filter.iqU_1_long)*NORMA_ACP;
|
|
modbus_table_analog_out[35].all = fast_round_with_limiter(_IQtoF(filter.iqU_2_long)*NORMA_ACP, LIMITER_U_I_PULT);
|
|
modbus_table_analog_out[34].all = fast_round_with_limiter(_IQtoF(filter.iqU_1_long)*NORMA_ACP, LIMITER_U_I_PULT);
|
|
|
|
modbus_table_analog_out[36].all = fast_round_with_limiter(_IQtoF(analog.iqIbreak_1+analog.iqIbreak_2)*NORMA_ACP, LIMITER_U_I_PULT);//Ibreak
|
|
|
|
|
|
|
|
// modbus_table_analog_out[37].all = fast_round(_IQtoF(analog.iqIu_1_rms)*NORMA_ACP);
|
|
// modbus_table_analog_out[38].all = fast_round(_IQtoF(analog.iqIv_1_rms)*NORMA_ACP);
|
|
// modbus_table_analog_out[39].all = fast_round(_IQtoF(analog.iqIw_1_rms)*NORMA_ACP);
|
|
//
|
|
// modbus_table_analog_out[40].all = fast_round(_IQtoF(analog.iqIu_2_rms)*NORMA_ACP);
|
|
// modbus_table_analog_out[41].all = fast_round(_IQtoF(analog.iqIv_2_rms)*NORMA_ACP);
|
|
// modbus_table_analog_out[42].all = fast_round(_IQtoF(analog.iqIw_2_rms)*NORMA_ACP);
|
|
|
|
modbus_table_analog_out[37].all = //fast_round(_IQtoF(filter.iqIm_1)*NORMA_ACP_RMS);
|
|
modbus_table_analog_out[38].all = //fast_round(_IQtoF(filter.iqIm_1)*NORMA_ACP_RMS);
|
|
modbus_table_analog_out[39].all = fast_round_with_limiter(_IQtoF(filter.iqIm_1)*NORMA_ACP_RMS, LIMITER_U_I_PULT);
|
|
|
|
modbus_table_analog_out[40].all = //fast_round(_IQtoF(filter.iqIm_2)*NORMA_ACP_RMS);
|
|
modbus_table_analog_out[41].all = //fast_round(_IQtoF(filter.iqIm_2)*NORMA_ACP_RMS);
|
|
modbus_table_analog_out[42].all = fast_round_with_limiter(_IQtoF(filter.iqIm_2)*NORMA_ACP_RMS, LIMITER_U_I_PULT);
|
|
|
|
// if (edrk.flag_second_PCH == 0) {
|
|
// modbus_table_analog_out[43].all = modbus_table_analog_out[44].all = fast_round(_IQtoF(filter.iqIm_1 + filter.iqIm_2)*NORMA_ACP_RMS);
|
|
// //modbus_table_analog_out[44].all = fast_round(_IQtoF(filter.iqIm_1 + filter.iqIm_2)*NORMA_ACP_RMS);
|
|
// } else {
|
|
// modbus_table_analog_out[43].all = modbus_table_analog_out[44].all = fast_round(_IQtoF(filter.iqIm_1 + filter.iqIm_2)*NORMA_ACP_RMS);
|
|
// //modbus_table_analog_out[44].all = fast_round(_IQtoF(filter.iqIm_1 + filter.iqIm_2)*NORMA_ACP_RMS);
|
|
// }
|
|
modbus_table_analog_out[43].all = modbus_table_analog_out[44].all = fast_round_with_limiter(_IQtoF(filter.iqIm_1 + filter.iqIm_2)*NORMA_ACP_RMS, LIMITER_U_I_PULT);
|
|
|
|
modbus_table_analog_out[45].all = 0; //edrk.I_zad_vozbud_exp;
|
|
|
|
// modbus_table_analog_out[4].all = control_station.active_array_cmd[CONTROL_STATION_CMD_SET_ROTOR];
|
|
// modbus_table_analog_out[5].all = control_station.active_array_cmd[CONTROL_STATION_CMD_SET_POWER];
|
|
|
|
|
|
//#if (_FLOOR6__)
|
|
// power_kw_full = edrk.power_kw_full;
|
|
// power_kw = edrk.power_kw;
|
|
// oborots = edrk.oborots;
|
|
//
|
|
// if (edrk.oborots)
|
|
// oborots = edrk.oborots;
|
|
// else
|
|
// oborots = edrk.zadanie.oborots_zad;
|
|
//
|
|
//
|
|
// if (edrk.Mode_ScalarVectorUFConst==ALG_MODE_SCALAR_OBOROTS
|
|
// || (edrk.Mode_ScalarVectorUFConst==ALG_MODE_FOC_OBOROTS)
|
|
// || (edrk.Mode_ScalarVectorUFConst==ALG_MODE_UF_CONST)
|
|
// ) // oborots
|
|
// {
|
|
// power_kw_full = (edrk.zadanie.oborots_zad)*50;
|
|
// power_kw = (edrk.zadanie.oborots_zad)*25;
|
|
// }
|
|
// else
|
|
// {
|
|
// oborots = edrk.zadanie.power_zad/25;
|
|
//// modbus_table_analog_out[48].all = abs(edrk.zadanie.power_zad);
|
|
// }
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//#else
|
|
power_kw_full = fast_round_with_limiter(edrk.power_kw_full, LIMITER_U_I_PULT);
|
|
power_kw = edrk.power_kw;
|
|
oborots = edrk.oborots;
|
|
//#endif
|
|
|
|
|
|
if (edrk.Mode_ScalarVectorUFConst==ALG_MODE_UF_CONST) // UFCONST
|
|
{
|
|
modbus_table_analog_out[47].all = 0;//fast_round(edrk.zadanie.fzad*100.0); //Îáîðîòû äâèãàòåëÿ çàäàííûå
|
|
modbus_table_analog_out[46].all = 0; //Ìîùíîñòü äâèãàòåëÿ çàäàííàÿ
|
|
}
|
|
else
|
|
if (edrk.Mode_ScalarVectorUFConst==ALG_MODE_SCALAR_OBOROTS) // scalar oborots
|
|
{
|
|
modbus_table_analog_out[47].all = edrk.zadanie.oborots_zad; //Îáîðîòû äâèãàòåëÿ çàäàííûå
|
|
|
|
if (oborots>=0)
|
|
modbus_table_analog_out[46].all = power_kw_full; //Ìîùíîñòü âàëà òåêóùàÿ ñóììàðíàÿ
|
|
else
|
|
modbus_table_analog_out[46].all = -power_kw_full; //Ìîùíîñòü äâèãàòåëÿ çàäàííàÿ
|
|
|
|
}
|
|
else
|
|
if (edrk.Mode_ScalarVectorUFConst==ALG_MODE_SCALAR_POWER) // scalar power
|
|
{
|
|
modbus_table_analog_out[47].all = oborots; //Îáîðîòû äâèãàòåëÿ çàäàííûå
|
|
modbus_table_analog_out[46].all = edrk.zadanie.power_zad; //Ìîùíîñòü äâèãàòåëÿ çàäàííàÿ
|
|
|
|
}
|
|
else
|
|
if (edrk.Mode_ScalarVectorUFConst==ALG_MODE_FOC_OBOROTS) // foc oborots
|
|
{
|
|
modbus_table_analog_out[47].all = edrk.zadanie.oborots_zad; //Îáîðîòû äâèãàòåëÿ çàäàííûå
|
|
|
|
if (oborots>=0)
|
|
modbus_table_analog_out[46].all = power_kw_full; //Ìîùíîñòü âàëà òåêóùàÿ ñóììàðíàÿ
|
|
else
|
|
modbus_table_analog_out[46].all = -power_kw_full; //Ìîùíîñòü äâèãàòåëÿ çàäàííàÿ
|
|
|
|
// modbus_table_analog_out[46].all = 0; //Ìîùíîñòü äâèãàòåëÿ çàäàííàÿ
|
|
|
|
}
|
|
else
|
|
if (edrk.Mode_ScalarVectorUFConst==ALG_MODE_FOC_POWER) // foc power
|
|
{
|
|
modbus_table_analog_out[47].all = oborots; //Îáîðîòû äâèãàòåëÿ çàäàííûå
|
|
modbus_table_analog_out[46].all = edrk.zadanie.power_zad; //Ìîùíîñòü äâèãàòåëÿ çàäàííàÿ
|
|
|
|
}
|
|
else
|
|
{
|
|
modbus_table_analog_out[46].all = 0;//-1; //Ìîùíîñòü äâèãàòåëÿ çàäàííàÿ
|
|
modbus_table_analog_out[47].all = 0;//-1; //Îáîðîòû äâèãàòåëÿ çàäàííûå
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//#if (_FLOOR6___)
|
|
// if (edrk.Mode_ScalarVectorUFConst==ALG_MODE_SCALAR_OBOROTS
|
|
// || (edrk.Mode_ScalarVectorUFConst==ALG_MODE_FOC_OBOROTS)
|
|
// || (edrk.Mode_ScalarVectorUFConst==ALG_MODE_UF_CONST)
|
|
// ) // oborots
|
|
// {
|
|
// // èìèòàöèÿ îáîðîòîâ äëÿ òåñòà
|
|
// if (edrk.oborots == 0)
|
|
// {
|
|
// if (edrk.zadanie.oborots_zad>0)
|
|
// modbus_table_analog_out[49].all = edrk.zadanie.oborots_zad - 1;
|
|
// else if (edrk.zadanie.oborots_zad<0)
|
|
// modbus_table_analog_out[49].all = edrk.zadanie.oborots_zad + 1;
|
|
// else
|
|
// modbus_table_analog_out[49].all = 0;
|
|
//
|
|
// }
|
|
// else
|
|
// {
|
|
// modbus_table_analog_out[49].all = edrk.oborots; // îáîðîòû òåêóùèå
|
|
// }
|
|
//
|
|
// if (edrk.zadanie.oborots_zad<0)
|
|
// modbus_table_analog_out[48].all = -(edrk.zadanie.oborots_zad)*25; //Ìîùíîñòü äâèãàòåëÿ òåêóùàÿ êÂò
|
|
// else
|
|
// modbus_table_analog_out[48].all = (edrk.zadanie.oborots_zad)*25; //Ìîùíîñòü äâèãàòåëÿ òåêóùàÿ êÂò
|
|
//
|
|
// }
|
|
// else
|
|
// {
|
|
// modbus_table_analog_out[49].all = edrk.zadanie.power_zad/25;
|
|
// modbus_table_analog_out[48].all = abs(edrk.zadanie.power_zad);
|
|
// }
|
|
//
|
|
// modbus_table_analog_out[5].all = abs(power_kw*2);//power_kw_full; //Ìîùíîñòü âàëà òåêóùàÿ ñóììàðíàÿ
|
|
//#else
|
|
|
|
modbus_table_analog_out[48].all = abs(power_kw); //Ìîùíîñòü äâèãàòåëÿ òåêóùàÿ êÂò
|
|
modbus_table_analog_out[49].all = oborots; // îáîðîòû òåêóùèå
|
|
modbus_table_analog_out[5].all = abs(power_kw_full); //Ìîùíîñòü âàëà òåêóùàÿ ñóììàðíàÿ
|
|
modbus_table_analog_out[6].all = fast_round(_IQtoF(edrk.zadanie.iq_limit_power_zad_rmp)*NORMA_ACP*NORMA_ACP/1000.0);//abs(power_kw_full); //Ìîùíîñòü âàëà òåêóùàÿ ñóììàðíàÿ
|
|
//#endif
|
|
|
|
|
|
// modbus_table_analog_out[48].all = fast_round(_IQtoF((filter.Power) * NORMA_ACP * NORMA_ACP) / 1000.0); //Ìîùíîñòü äâèãàòåëÿ òåêóùàÿ êÂò
|
|
|
|
for (i=0;i<2;i++)
|
|
modbus_table_analog_out[50+i].all = fast_round_with_delta(modbus_table_analog_out[50+i].all, edrk.temper_edrk.real_int_temper_water[i]/10.0, 1);
|
|
|
|
|
|
modbus_table_analog_out[52].all = fast_round_with_delta(modbus_table_analog_out[52].all, edrk.p_water_edrk.filter_real_int_p_water[0]/10.0, 1);
|
|
|
|
for (i=0;i<6;i++)
|
|
modbus_table_analog_out[53+i].all = fast_round_with_delta(modbus_table_analog_out[53+i].all, edrk.temper_edrk.real_int_temper_u[1+i]/10.0, 1);
|
|
|
|
modbus_table_analog_out[59].all = fast_round_with_delta(modbus_table_analog_out[59].all, edrk.temper_edrk.real_int_temper_u[0]/10.0, 1);
|
|
|
|
for (i=0;i<4;i++)
|
|
modbus_table_analog_out[60+i].all = fast_round_with_delta(modbus_table_analog_out[60+i].all, edrk.temper_edrk.real_int_temper_air[i]/10.0, 1);
|
|
|
|
modbus_table_analog_out[8].all = fast_round_with_delta(modbus_table_analog_out[8].all, edrk.temper_edrk.max_real_int_temper_u/10.0, 1);
|
|
|
|
if (edrk.errors.e2.bits.T_AIR0_MAX)
|
|
modbus_table_analog_out[64].all = 3;
|
|
else
|
|
if (edrk.warnings.e2.bits.T_AIR0_MAX)
|
|
modbus_table_analog_out[64].all = 2;
|
|
else
|
|
modbus_table_analog_out[64].all = 1;
|
|
|
|
if (edrk.errors.e2.bits.T_AIR1_MAX)
|
|
modbus_table_analog_out[65].all = 3;
|
|
else
|
|
if (edrk.warnings.e2.bits.T_AIR1_MAX)
|
|
modbus_table_analog_out[65].all = 2;
|
|
else
|
|
modbus_table_analog_out[65].all = 1;
|
|
|
|
if (edrk.errors.e2.bits.T_AIR2_MAX)
|
|
modbus_table_analog_out[66].all = 3;
|
|
else
|
|
if (edrk.warnings.e2.bits.T_AIR2_MAX)
|
|
modbus_table_analog_out[66].all = 2;
|
|
else
|
|
modbus_table_analog_out[66].all = 1;
|
|
|
|
if (edrk.errors.e2.bits.T_AIR3_MAX)
|
|
modbus_table_analog_out[67].all = 3;
|
|
else
|
|
if (edrk.warnings.e2.bits.T_AIR3_MAX)
|
|
modbus_table_analog_out[67].all = 2;
|
|
else
|
|
modbus_table_analog_out[67].all = 1;
|
|
|
|
|
|
|
|
if (edrk.auto_master_slave.local.bits.master)
|
|
modbus_table_analog_out[68].all = 0; // master salve
|
|
else
|
|
if (edrk.auto_master_slave.local.bits.slave)
|
|
modbus_table_analog_out[68].all = 1; // master salve
|
|
else
|
|
if (edrk.auto_master_slave.local.bits.try_master)
|
|
modbus_table_analog_out[68].all = 3; // master salve
|
|
else
|
|
if (edrk.errors.e7.bits.AUTO_SET_MASTER)
|
|
modbus_table_analog_out[68].all = 4; // master salve
|
|
else
|
|
modbus_table_analog_out[68].all = 2; // master salve
|
|
|
|
for (i=0;i<6;i++)
|
|
modbus_table_analog_out[69+i].all = fast_round(edrk.temper_acdrive.winding.filter_real_temper[0+i]);
|
|
|
|
modbus_table_analog_out[9].all = fast_round(edrk.temper_acdrive.winding.max_real_int_temper/10.0);
|
|
|
|
modbus_table_analog_out[75].all = fast_round(edrk.temper_acdrive.bear.filter_real_temper[0]);
|
|
modbus_table_analog_out[76].all = fast_round(edrk.temper_acdrive.bear.filter_real_temper[1]);
|
|
|
|
modbus_table_analog_out[23].all = fast_round(edrk.temper_acdrive.bear.max_real_int_temper/10.0);
|
|
|
|
for (i=0;i<6;i++)
|
|
{
|
|
status = get_status_temper_acdrive_winding(i);
|
|
if (status==4)
|
|
modbus_table_analog_out[77+i].all = 3;
|
|
if (status==2)
|
|
modbus_table_analog_out[77+i].all = 2;
|
|
if (status==1)
|
|
modbus_table_analog_out[77+i].all = 1;
|
|
}
|
|
|
|
for (i=0;i<2;i++)
|
|
{
|
|
status = get_status_temper_acdrive_bear(i);
|
|
if (status==4)
|
|
modbus_table_analog_out[83+i].all = 3;
|
|
if (status==2)
|
|
modbus_table_analog_out[83+i].all = 2;
|
|
if (status==1)
|
|
modbus_table_analog_out[83+i].all = 1;
|
|
}
|
|
|
|
|
|
//UOM
|
|
modbus_table_analog_out[85].all = edrk.from_uom.level_value;
|
|
|
|
if (edrk.from_uom.ready==1)
|
|
{
|
|
if (edrk.from_uom.error)
|
|
modbus_table_analog_out[86].all = 1; // êðàñíûé
|
|
else
|
|
{
|
|
if (edrk.from_uom.level_value==0)
|
|
modbus_table_analog_out[86].all = 2; // çåëåíûé
|
|
else
|
|
{
|
|
if (edrk.power_limit.bits.limit_UOM || edrk.power_limit.bits.limit_from_uom_fast)
|
|
{
|
|
// ìîðãàåì æåëòûé-ñåðûé
|
|
if (modbus_table_analog_out[86].all==0)
|
|
modbus_table_analog_out[86].all = 3; //æåëòûé
|
|
else
|
|
modbus_table_analog_out[86].all = 0; //gray
|
|
}
|
|
else
|
|
modbus_table_analog_out[86].all = 3;
|
|
|
|
//modbus_table_analog_out[86].all = 3; // æåëòûé
|
|
}
|
|
}
|
|
}
|
|
else
|
|
modbus_table_analog_out[86].all = 0; // ñåðûé
|
|
|
|
|
|
// active control station
|
|
// CONTROL_STATION_TERMINAL_RS232 = 0, -
|
|
// CONTROL_STATION_TERMINAL_CAN, -
|
|
//
|
|
// CONTROL_STATION_INGETEAM_PULT_RS485, -
|
|
// CONTROL_STATION_MPU_SVU_CAN,
|
|
// CONTROL_STATION_MPU_KEY_CAN,
|
|
// CONTROL_STATION_MPU_SVU_RS485,
|
|
// CONTROL_STATION_MPU_KEY_RS485,
|
|
// CONTROL_STATION_ZADATCHIK_CAN,
|
|
// CONTROL_STATION_VPU_CAN,
|
|
|
|
modbus_table_analog_out[87].all = edrk.active_post_upravl;
|
|
|
|
|
|
// load procents
|
|
modbus_table_analog_out[88].all = 0; //error
|
|
|
|
// 0- ñåðûé, çåëåíûé, æåëòûé, êðàñíûé - öâåò ïîñòà óïðàâëåíèÿ ñì. [87].
|
|
if (modbus_table_analog_out[87].all == 10)
|
|
modbus_table_analog_out[89].all = 3; //red
|
|
else
|
|
modbus_table_analog_out[89].all = 1; //no error
|
|
|
|
/////////////////////////////
|
|
/////////////////////////////
|
|
if (edrk.warnings.e7.bits.READ_OPTBUS
|
|
&& edrk.warnings.e7.bits.WRITE_OPTBUS
|
|
&& edrk.warnings.e7.bits.MASTER_SLAVE_SYNC)
|
|
modbus_table_analog_out[90].all = 2; //warning
|
|
else
|
|
if (edrk.errors.e7.bits.READ_OPTBUS
|
|
|| edrk.errors.e7.bits.WRITE_OPTBUS
|
|
|| edrk.errors.e7.bits.MASTER_SLAVE_SYNC
|
|
|| edrk.errors.e1.bits.NO_INPUT_SYNC_SIGNAL)
|
|
modbus_table_analog_out[90].all = 3; //error
|
|
else
|
|
if (edrk.warnings.e7.bits.READ_OPTBUS
|
|
|| edrk.warnings.e7.bits.WRITE_OPTBUS
|
|
|| edrk.warnings.e7.bits.MASTER_SLAVE_SYNC
|
|
|| edrk.warnings.e1.bits.NO_INPUT_SYNC_SIGNAL)
|
|
modbus_table_analog_out[90].all = 5; //warning
|
|
else
|
|
if (edrk.ms.ready1==0)
|
|
modbus_table_analog_out[90].all = 1; //find
|
|
else
|
|
modbus_table_analog_out[90].all = 0; //ok
|
|
|
|
modbus_table_analog_out[91].all = protect_levels.abnormal_temper_acdrive_winding_U1 / 10;
|
|
modbus_table_analog_out[92].all = protect_levels.abnormal_temper_acdrive_winding_V1 / 10;
|
|
modbus_table_analog_out[93].all = protect_levels.abnormal_temper_acdrive_winding_W1 / 10;
|
|
modbus_table_analog_out[94].all = protect_levels.abnormal_temper_acdrive_winding_U2 / 10;
|
|
modbus_table_analog_out[95].all = protect_levels.abnormal_temper_acdrive_winding_V2 / 10;
|
|
modbus_table_analog_out[96].all = protect_levels.abnormal_temper_acdrive_winding_W2 / 10;
|
|
modbus_table_analog_out[97].all = protect_levels.abnormal_temper_acdrive_bear_DNE / 10;
|
|
modbus_table_analog_out[98].all = protect_levels.abnormal_temper_acdrive_bear_NE / 10;
|
|
|
|
modbus_table_analog_out[99].all = protect_levels.alarm_temper_acdrive_winding_U1 / 10;
|
|
modbus_table_analog_out[100].all = protect_levels.alarm_temper_acdrive_winding_V1 / 10;
|
|
modbus_table_analog_out[101].all = protect_levels.alarm_temper_acdrive_winding_W1 / 10;
|
|
modbus_table_analog_out[102].all = protect_levels.alarm_temper_acdrive_winding_U2 / 10;
|
|
modbus_table_analog_out[103].all = protect_levels.alarm_temper_acdrive_winding_V2 / 10;
|
|
modbus_table_analog_out[104].all = protect_levels.alarm_temper_acdrive_winding_W2 / 10;
|
|
modbus_table_analog_out[105].all = protect_levels.alarm_temper_acdrive_bear_DNE / 10;
|
|
modbus_table_analog_out[106].all = protect_levels.alarm_temper_acdrive_bear_NE / 10;
|
|
|
|
modbus_table_analog_out[107].all = protect_levels.abnormal_temper_u_01 / 10;
|
|
modbus_table_analog_out[108].all = protect_levels.abnormal_temper_u_02 / 10;
|
|
modbus_table_analog_out[109].all = protect_levels.abnormal_temper_u_03 / 10;
|
|
modbus_table_analog_out[110].all = protect_levels.abnormal_temper_u_04 / 10;
|
|
modbus_table_analog_out[111].all = protect_levels.abnormal_temper_u_05 / 10;
|
|
modbus_table_analog_out[112].all = protect_levels.abnormal_temper_u_06 / 10;
|
|
modbus_table_analog_out[113].all = protect_levels.abnormal_temper_u_07 / 10;
|
|
modbus_table_analog_out[114].all = protect_levels.alarm_temper_u_01 / 10;
|
|
modbus_table_analog_out[115].all = protect_levels.alarm_temper_u_02 / 10;
|
|
modbus_table_analog_out[116].all = protect_levels.alarm_temper_u_03 / 10;
|
|
modbus_table_analog_out[117].all = protect_levels.alarm_temper_u_04 / 10;
|
|
modbus_table_analog_out[118].all = protect_levels.alarm_temper_u_05 / 10;
|
|
modbus_table_analog_out[119].all = protect_levels.alarm_temper_u_06 / 10;
|
|
modbus_table_analog_out[120].all = protect_levels.alarm_temper_u_07 / 10;
|
|
|
|
modbus_table_analog_out[123].all = protect_levels.abnormal_temper_water_int / 10;
|
|
modbus_table_analog_out[124].all = protect_levels.abnormal_temper_water_ext / 10;
|
|
modbus_table_analog_out[125].all = protect_levels.alarm_p_water_min_int / 10;
|
|
modbus_table_analog_out[126].all = protect_levels.alarm_temper_water_int / 10;
|
|
modbus_table_analog_out[127].all = protect_levels.alarm_temper_water_ext / 10;
|
|
modbus_table_analog_out[128].all = protect_levels.alarm_p_water_max_int / 10;
|
|
|
|
modbus_table_analog_out[129].all = protect_levels.abnormal_temper_air_int_01 / 10;
|
|
modbus_table_analog_out[130].all = protect_levels.abnormal_temper_air_int_02 / 10;
|
|
modbus_table_analog_out[131].all = protect_levels.abnormal_temper_air_int_03 / 10;
|
|
modbus_table_analog_out[132].all = protect_levels.abnormal_temper_air_int_04 / 10;
|
|
modbus_table_analog_out[133].all = protect_levels.alarm_temper_air_int_01 / 10;
|
|
modbus_table_analog_out[134].all = protect_levels.alarm_temper_air_int_02 / 10;
|
|
modbus_table_analog_out[135].all = protect_levels.alarm_temper_air_int_03 / 10;
|
|
modbus_table_analog_out[136].all = protect_levels.alarm_temper_air_int_04 / 10;
|
|
|
|
// toControllerAlarmMinUlineA1B1C1 30137
|
|
// toControllerAlarmMinUlineA2B2C2 30138
|
|
// toControllerAlarmMinUdcUP 30139
|
|
// toControllerAlarmMinUdcDOWN 30140
|
|
// toControllerAlarmMaxUlineA1B1C1 30142
|
|
// toControllerAlarmMaxUlineA2B2C2 30143
|
|
// toControllerAlarmMaxUdcUP 30144
|
|
// toControllerAlarmMaxUdcDOWN 30145
|
|
|
|
modbus_table_analog_out[137].all = _IQtoF(analog_protect.in_voltage[0].setup.levels.iqNominal_minus20) * NORMA_ACP;//_IQtoF(edrk.iqMIN_U_IN) * NORMA_ACP;
|
|
modbus_table_analog_out[138].all = _IQtoF(analog_protect.in_voltage[1].setup.levels.iqNominal_minus20) * NORMA_ACP;
|
|
|
|
modbus_table_analog_out[139].all = _IQtoF(edrk.iqMIN_U_ZPT) * NORMA_ACP;
|
|
modbus_table_analog_out[140].all = _IQtoF(edrk.iqMIN_U_ZPT) * NORMA_ACP;
|
|
|
|
modbus_table_analog_out[142].all = _IQtoF(analog_protect.in_voltage[0].setup.levels.iqNominal_plus20) * NORMA_ACP;
|
|
modbus_table_analog_out[143].all = _IQtoF(analog_protect.in_voltage[1].setup.levels.iqNominal_plus20) * NORMA_ACP;
|
|
|
|
// modbus_table_analog_out[141].all = //_IQtoF(edrk.iqMAX_U_IN) * NORMA_ACP;
|
|
// modbus_table_analog_out[140].all = _IQtoF(edrk.iqMAX_U_IN) * NORMA_ACP;
|
|
|
|
modbus_table_analog_out[144].all = _IQtoF(edrk.iqMAX_U_ZPT) * NORMA_ACP;
|
|
modbus_table_analog_out[145].all = _IQtoF(edrk.iqMAX_U_ZPT) * NORMA_ACP;
|
|
|
|
modbus_table_analog_out[146].all = protect_levels.alarm_Izpt_max;
|
|
|
|
modbus_table_analog_out[155].all = protect_levels.alarm_Imax_U01;
|
|
modbus_table_analog_out[156].all = protect_levels.alarm_Imax_U02;
|
|
modbus_table_analog_out[157].all = protect_levels.alarm_Imax_U03;
|
|
modbus_table_analog_out[158].all = protect_levels.alarm_Imax_U04;
|
|
modbus_table_analog_out[159].all = protect_levels.alarm_Imax_U05;
|
|
modbus_table_analog_out[160].all = protect_levels.alarm_Imax_U06;
|
|
modbus_table_analog_out[161].all = protect_levels.alarm_Imax_U07;
|
|
modbus_table_analog_out[162].all = protect_levels.alarm_Iged_max;
|
|
|
|
|
|
// save nPCH TimeToChangePump
|
|
modbus_table_analog_out[163].all = edrk.pult_data.data_to_pult.nPCH;
|
|
modbus_table_analog_out[154].all = edrk.pult_data.data_to_pult.TimeToChangePump;
|
|
|
|
modbus_table_analog_out[222].all = edrk.pult_data.data_to_pult.count_build;
|
|
modbus_table_analog_out[223].all = edrk.pult_data.data_to_pult.count_revers;
|
|
|
|
|
|
|
|
modbus_table_analog_out[197].all = edrk.pult_data.flagSaveDataPCH;
|
|
|
|
|
|
|
|
|
|
// build version
|
|
modbus_table_analog_out[219].all = edrk.buildYear;
|
|
modbus_table_analog_out[220].all = edrk.buildMonth;
|
|
modbus_table_analog_out[221].all = edrk.buildDay;
|
|
|
|
//moto
|
|
for (i=0;i<COUNT_MOTO_PULT;i++)
|
|
modbus_table_analog_out[i+201].all = edrk.pult_data.data_to_pult.moto[i];
|
|
|
|
modbus_table_analog_out[200].all = edrk.pult_data.flagSaveDataMoto;
|
|
modbus_table_analog_out[198].all = edrk.pult_data.flagSaveSlowLogs;
|
|
// modbus_table_analog_out[198].all = edrk.pult_data.flagSaveParamLogs;
|
|
|
|
modbus_table_analog_out[7].all = edrk.freq_50hz_1;
|
|
|
|
|
|
//////////////// log////
|
|
update_logs_cmd_HMI();
|
|
|
|
/*
|
|
Îáíîâëåíèå ìîòî÷àñîâ ñ êîíòðîëëåðà â ïàìÿòè ìîíèòîðà.
|
|
Ïðè çàãðóçêå íîâîãî ÏÎ â ðåãèñòðàõ 30010-30027 ïîÿâèòñÿ
|
|
íåèíèöèàëèçèðîâàííîå çíà÷åíèå FFFF.
|
|
Îáíîâèòü ìîòî÷àñû äî àêòóàëüíûõ çíà÷åíèé ìîæíî
|
|
ñëåäóþùèì îáðàçîì: çàïèñàòü â ðåãèñòðû 40701-40718 äàííûå, à
|
|
çàòåì îòïðàâèòü åäèíèöó â ðåãèñòð 40700. Äàííûå ïðèìåíÿòñÿ,
|
|
îòîáðàçÿòñÿ íà çàêëàäêå "Ìîòî÷àñû" è ïðèåäóò îáðàòíî â ðåãèñòðû 30010-30027.
|
|
*/
|
|
// if ()
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
* 40194 - ñîõðàíèòü ñòðîêó äàííûõ èç ðåãèñòðîâ 40300-40399 â ëîãåð LOGS1;
|
|
40224 - ñîõðàíèòü ñòðîêó äàííûõ èç ðåãèñòðîâ 40400-40499 â ëîãåð LOGS2;
|
|
40225 - ñîõðàíèòü ñòðîêó äàííûõ èç ðåãèñòðîâ 40500-40599 â ëîãåð LOGS3;
|
|
40226 - ñîõðàíèòü ñòðîêó äàííûõ èç ðåãèñòðîâ 40600-40699 â ëîãåð LOGS4;
|
|
40227 - ñîõðàíèòü ñòðîêó äàííûõ èç ðåãèñòðîâ 40700-40799 â ëîãåð LOGS5;
|
|
*/
|
|
|
|
void update_LoggerParams(void)
|
|
{
|
|
int i;
|
|
|
|
for (i=0;i<28;i++)
|
|
{
|
|
modbus_table_analog_out[164+i].all = edrk.pult_data.logger_params[i];
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
void update_logs_cmd_HMI(void)
|
|
{
|
|
modbus_table_analog_out[192].all = log_to_HMI.enable_progress_bar; // stateLogsReport
|
|
modbus_table_analog_out[193].all = log_to_HMI.progress_bar; // controlProgressBar
|
|
modbus_table_analog_out[194].all = log_to_HMI.ReportLogOut; // ReportGetOut
|
|
modbus_table_analog_out[195].all = log_to_HMI.cleanLogs; // cleanLogs == 1
|
|
modbus_table_analog_out[196].all = log_to_HMI.saveLogsToSDCard; // saveLogsToSDCard 1-SD 2-USB
|
|
|
|
// modbus_table_analog_out[224].all = log_to_HMI.tick_step2;
|
|
// modbus_table_analog_out[225].all = log_to_HMI.tick_step3;
|
|
// modbus_table_analog_out[226].all = log_to_HMI.tick_step4;
|
|
// modbus_table_analog_out[227].all = log_to_HMI.tick_step5;
|
|
|
|
|
|
}
|
|
|
|
void update_tables_HMI(void)
|
|
{
|
|
update_tables_HMI_analog();
|
|
update_tables_HMI_discrete();
|
|
}
|
|
|
|
|
|
void setStateHMI(Inverter_state state) {
|
|
switch (state) {
|
|
case state_ready1:
|
|
modbus_table_analog_out[1].all = 1;
|
|
modbus_table_analog_out[2].all = 1;
|
|
break;
|
|
case state_ready2:
|
|
modbus_table_analog_out[1].all = 2;
|
|
modbus_table_analog_out[2].all = 1;
|
|
break;
|
|
case state_go:
|
|
modbus_table_analog_out[1].all = 3;
|
|
modbus_table_analog_out[2].all = 1;
|
|
break;
|
|
case state_assemble:
|
|
modbus_table_analog_out[1].all = 4;
|
|
modbus_table_analog_out[2].all = 1;
|
|
break;
|
|
case state_fault:
|
|
modbus_table_analog_out[1].all = 5;
|
|
modbus_table_analog_out[2].all = 2;
|
|
break;
|
|
case state_accident:
|
|
modbus_table_analog_out[1].all = 6;
|
|
modbus_table_analog_out[2].all = 3;
|
|
break;
|
|
default:
|
|
modbus_table_analog_out[1].all = 0;
|
|
modbus_table_analog_out[2].all = 0;
|
|
|
|
};
|
|
}
|
|
///////////////////////////////////////////////////
|
|
///
|
|
///////////////////////////////////////////////////
|
|
|
|
void setElementsColorsHMI(Inverter_state state) {
|
|
int i = 10;
|
|
if ((state == state_not_init) || (state == state_ready1)) {
|
|
//All grey
|
|
for (i = 10; i <= 22; ++i) {
|
|
modbus_table_analog_out[i].all = 0;
|
|
}
|
|
} else if (state == state_assemble) {
|
|
//UMP
|
|
for (i = 10; i <= 22; ++i) {
|
|
modbus_table_analog_out[i].all = 0;
|
|
}
|
|
modbus_table_analog_out[21].all = 1;
|
|
} else if (state == state_ready2) {
|
|
//All green
|
|
for (i = 10; i <= 22; ++i) {
|
|
modbus_table_analog_out[i].all = 0;
|
|
}
|
|
modbus_table_analog_out[10].all = 1;
|
|
modbus_table_analog_out[11].all = 1;
|
|
modbus_table_analog_out[12].all = 1;
|
|
} else if (state == state_go) {
|
|
//Almost all
|
|
for (i = 10; i <= 22; ++i) {
|
|
modbus_table_analog_out[i].all = 1;
|
|
}
|
|
modbus_table_analog_out[21].all = 0;
|
|
} else if (state == state_fault) {
|
|
for (i = 10; i <= 22; ++i) {
|
|
modbus_table_analog_out[i].all = 2;
|
|
}
|
|
} else if (state == state_accident) {
|
|
for (i = 10; i <= 22; ++i) {
|
|
modbus_table_analog_out[i].all = 3;
|
|
}
|
|
}
|
|
}
|
|
///////////////////////////////////////////////////
|
|
///
|
|
///////////////////////////////////////////////////
|
|
///////////////////////////////////////////////////
|
|
///
|
|
///////////////////////////////////////////////////
|
|
void inc_count_build(void)
|
|
{
|
|
// edrk.pult_data.data.count_build = edrk.pult_data.data_from_pult.moto[21];
|
|
|
|
edrk.pult_data.data.count_build++;
|
|
if (edrk.pult_data.data.count_build>32760)
|
|
edrk.pult_data.data.count_build = 1;
|
|
|
|
// edrk.pult_data.data_to_pult.count_build = edrk.pult_data.data.count_build;
|
|
// edrk.pult_data.data_to_pult.moto[21] = edrk.pult_data.data_to_pult.count_build;
|
|
}
|
|
|
|
|
|
|
|
void inc_count_revers(void)
|
|
{
|
|
// edrk.pult_data.data.count_revers = edrk.pult_data.data_from_pult.moto[22];
|
|
|
|
edrk.pult_data.data.count_revers++;
|
|
if (edrk.pult_data.data.count_revers>32760)
|
|
edrk.pult_data.data.count_revers = 1;
|
|
|
|
// edrk.pult_data.data_to_pult.count_revers = edrk.pult_data.data.count_revers;
|
|
// edrk.pult_data.data_to_pult.moto[22] = edrk.pult_data.data_to_pult.count_revers
|
|
|
|
}
|
|
|
|
|
|
void update_nPCH(void)
|
|
{
|
|
|
|
static int pause_w = 5, first_run = 1; // 10 ñåê çàäåðæêà íà ïðèåì äàííûõ îò ïóëüòà
|
|
int flag_1 = 0, flag_2 = 0, i;
|
|
static int prev_active = 0;
|
|
|
|
if (control_station.alive_control_station[CONTROL_STATION_INGETEAM_PULT_RS485]==0)
|
|
{
|
|
pause_w = 5;
|
|
}
|
|
|
|
if (pause_w > 1)
|
|
{
|
|
pause_w--;
|
|
// if (edrk.pult_data.nPCH_from_pult)
|
|
// if (pause_w > 1)
|
|
// pause_w = 1;
|
|
prev_active = control_station.alive_control_station[CONTROL_STATION_INGETEAM_PULT_RS485];
|
|
return;
|
|
}
|
|
|
|
// ïðîâåðêà íà -1 â ïóëüòå
|
|
// åñëè â ïóëüòå -1 è ìû òîëüêî çàïóñòèëèñü, çíà÷èò íàäî âñå îáíóëèòü
|
|
// èíà÷å çàïîìèíàåì òî ÷òî â ïóëüòå
|
|
if (pause_w==1 && first_run)
|
|
{
|
|
//íîìåð Ï×
|
|
if (edrk.pult_data.data_from_pult.nPCH==-1) // íåò èíèòà
|
|
{
|
|
edrk.pult_data.data_to_pult.nPCH = edrk.pult_data.data.nPCH = 0;
|
|
}
|
|
else
|
|
edrk.pult_data.data_to_pult.nPCH = edrk.pult_data.data.nPCH = edrk.pult_data.data_from_pult.nPCH;
|
|
|
|
//ìîòî÷àñû ïåðåêëþ÷åíèÿ ñ íàñîñà íà íàñîñ
|
|
if (edrk.pult_data.data_from_pult.TimeToChangePump == -1) // íåò èíèòà
|
|
edrk.pult_data.data_to_pult.TimeToChangePump = edrk.pult_data.data.TimeToChangePump = 0;
|
|
else
|
|
edrk.pult_data.data_to_pult.TimeToChangePump = edrk.pult_data.data.TimeToChangePump = edrk.pult_data.data_from_pult.TimeToChangePump;
|
|
|
|
//ìîòî÷àñû + ðåâåðñ + êîë-âî ñáîðîâ
|
|
for (i=0;i<COUNT_MOTO_PULT;i++)
|
|
{
|
|
if (edrk.pult_data.data_from_pult.moto[i] == -1) // íåò èíèòà
|
|
edrk.pult_data.data_to_pult.moto[i] = edrk.pult_data.data.moto[i] = 0;
|
|
else
|
|
edrk.pult_data.data_to_pult.moto[i] = edrk.pult_data.data.moto[i] = edrk.pult_data.data_from_pult.moto[i];
|
|
}
|
|
|
|
// count_build
|
|
if (edrk.pult_data.data_from_pult.count_build==-1) // íåò èíèòà
|
|
{
|
|
edrk.pult_data.data_to_pult.count_build = edrk.pult_data.data.count_build = 0;
|
|
}
|
|
else
|
|
edrk.pult_data.data_to_pult.count_build = edrk.pult_data.data.count_build = edrk.pult_data.data_from_pult.count_build;
|
|
|
|
// count_revers
|
|
if (edrk.pult_data.data_from_pult.count_revers == -1) // íåò èíèòà
|
|
{
|
|
edrk.pult_data.data_to_pult.count_revers = edrk.pult_data.data.count_revers = 0;
|
|
}
|
|
else
|
|
edrk.pult_data.data_to_pult.count_revers = edrk.pult_data.data.count_revers = edrk.pult_data.data_from_pult.count_revers;
|
|
|
|
//
|
|
pause_w = 0;
|
|
first_run = 0;
|
|
}
|
|
|
|
//íîìåð Ï×
|
|
// ëîâèì èçìåíåíèÿ îò ïóëüòà
|
|
if (edrk.pult_data.data_from_pult.nPCH != edrk.pult_data.data.nPCH && edrk.pult_data.data_from_pult.nPCH>=0)
|
|
{
|
|
edrk.pult_data.data_to_pult.nPCH = edrk.pult_data.data_from_pult.nPCH;
|
|
flag_1 = 1;
|
|
edrk.pult_data.data.nPCH = edrk.pult_data.data_from_pult.nPCH;
|
|
}
|
|
|
|
// òóò ïóëüò âûäàë -1 çíà÷èò îí îáíîâèë ïðîøèâêó
|
|
if (edrk.pult_data.data_from_pult.nPCH != edrk.pult_data.data.nPCH && edrk.pult_data.data_from_pult.nPCH == -1)
|
|
{
|
|
edrk.pult_data.data_to_pult.nPCH = edrk.pult_data.data.nPCH;
|
|
flag_1 = 1;
|
|
}
|
|
|
|
|
|
//ìîòî÷àñû ïåðåêëþ÷åíèÿ ñ íàñîñà íà íàñîñ
|
|
// ëîâèì èçìåíåíèÿ îò ïóëüòà
|
|
if (edrk.pult_data.data_from_pult.TimeToChangePump != edrk.pult_data.data.TimeToChangePump
|
|
&& edrk.pult_data.data_from_pult.TimeToChangePump >= 0)
|
|
{
|
|
edrk.pult_data.data_to_pult.TimeToChangePump = edrk.pult_data.data_from_pult.TimeToChangePump;
|
|
flag_1 = 1;
|
|
edrk.pult_data.data.TimeToChangePump = edrk.pult_data.data_from_pult.TimeToChangePump;
|
|
}
|
|
|
|
// òóò ïóëüò âûäàë -1 çíà÷èò îí îáíîâèë ïðîøèâêó
|
|
if (edrk.pult_data.data_from_pult.TimeToChangePump != edrk.pult_data.data.TimeToChangePump
|
|
&& edrk.pult_data.data_from_pult.TimeToChangePump == -1)
|
|
{
|
|
edrk.pult_data.data_to_pult.TimeToChangePump = edrk.pult_data.data.TimeToChangePump;
|
|
flag_1 = 1;
|
|
}
|
|
|
|
// build
|
|
// òóò ïóëüò âûäàë -1 çíà÷èò îí îáíîâèë ïðîøèâêó
|
|
if (edrk.pult_data.data_from_pult.count_build != edrk.pult_data.data.count_build
|
|
&& edrk.pult_data.data_from_pult.count_build == -1)
|
|
{
|
|
edrk.pult_data.data_to_pult.count_build = edrk.pult_data.data.count_build;
|
|
flag_1 = 1;
|
|
}
|
|
|
|
if (edrk.pult_data.data_from_pult.count_build != edrk.pult_data.data.count_build)
|
|
{
|
|
edrk.pult_data.data_to_pult.count_build = edrk.pult_data.data.count_build;
|
|
flag_1 = 1;
|
|
}
|
|
|
|
// revers
|
|
// òóò ïóëüò âûäàë -1 çíà÷èò îí îáíîâèë ïðîøèâêó
|
|
if (edrk.pult_data.data_from_pult.count_revers != edrk.pult_data.data.count_revers
|
|
&& edrk.pult_data.data_from_pult.count_revers == -1)
|
|
{
|
|
edrk.pult_data.data_to_pult.count_revers = edrk.pult_data.data.count_revers;
|
|
flag_1 = 1;
|
|
}
|
|
|
|
if (edrk.pult_data.data_from_pult.count_revers != edrk.pult_data.data.count_revers )
|
|
{
|
|
edrk.pult_data.data_to_pult.count_revers = edrk.pult_data.data.count_revers;
|
|
flag_1 = 1;
|
|
}
|
|
// äàåì êîìàíäó ñîõðàíèòü
|
|
edrk.pult_data.flagSaveDataPCH = flag_1;
|
|
|
|
|
|
// moto
|
|
for (i=0;i<COUNT_MOTO_PULT;i++)
|
|
{
|
|
// òóò ïóëüò âûäàë -1 çíà÷èò îí îáíîâèë ïðîøèâêó
|
|
if (edrk.pult_data.data_from_pult.moto[i] == -1)
|
|
flag_2 = 1;
|
|
else
|
|
edrk.pult_data.data.moto[i] = edrk.pult_data.data_from_pult.moto[i];
|
|
}
|
|
|
|
// åñòü õîòü îäíà -1 â äàííûõ, çíà÷èò òàì íîâàÿ ïðîøèâêà, ñîõðàíÿåì ÷òî ïîìíèì
|
|
if (flag_2)
|
|
{
|
|
for (i=0;i<COUNT_MOTO_PULT;i++)
|
|
{
|
|
edrk.pult_data.data_to_pult.moto[i] = edrk.pult_data.data.moto[i];
|
|
}
|
|
}
|
|
|
|
// äàåì êîìàíäó ñîõðàíèòü
|
|
edrk.pult_data.flagSaveDataMoto = flag_2;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
prev_active = control_station.alive_control_station[CONTROL_STATION_INGETEAM_PULT_RS485];
|
|
|
|
}
|
|
|
|
|
|
#define COUNT_WAIT_SAVE_LOG 3000
|
|
|
|
void set_write_slow_logs(int cmd)
|
|
{
|
|
static int prev_cmd = 0, flag_wait = 0, flag_clear = 0;
|
|
static unsigned int time_wait_save_log = 0, time_wait_clear_log = 0;
|
|
int to_store = 0;
|
|
|
|
if (edrk.pult_cmd.log_what_memory == 3)
|
|
to_store = 3;
|
|
else
|
|
if (edrk.pult_cmd.log_what_memory >= 2)
|
|
to_store = 2;
|
|
else
|
|
if (edrk.pult_cmd.log_what_memory >= 1)
|
|
to_store = 1;
|
|
else
|
|
to_store = 0;
|
|
|
|
//40198 - ñîõðàíåíèÿ ïàðàìåòðîâ ñèñòåìû (äåñÿòèìèíóòíûé ëîãåð) íà ôëåøêó (2), íà êàðòó (1), íà êàðòó+usb (3)
|
|
if (prev_cmd == 0 && cmd && to_store && flag_wait == 0)
|
|
{
|
|
edrk.pult_data.flagSaveSlowLogs = to_store;
|
|
flag_wait = 1;
|
|
time_wait_save_log = global_time.miliseconds;
|
|
}
|
|
|
|
|
|
if (flag_wait)
|
|
{
|
|
if (detect_pause_milisec(COUNT_WAIT_SAVE_LOG, &time_wait_save_log))
|
|
{
|
|
flag_wait = 0;
|
|
flag_clear = 1; // äàåì êîìàíäó íà ñòèðàíèå
|
|
edrk.pult_data.flagSaveSlowLogs = 0;
|
|
time_wait_clear_log = global_time.miliseconds;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (flag_clear) // ñòèðàåì
|
|
{
|
|
edrk.pult_data.flagSaveSlowLogs = 100;
|
|
if (detect_pause_milisec(COUNT_WAIT_SAVE_LOG, &time_wait_clear_log))
|
|
{
|
|
flag_wait = 0;
|
|
flag_clear = 0;
|
|
edrk.pult_data.flagSaveSlowLogs = 0;
|
|
}
|
|
|
|
}
|
|
|
|
//Ñòàòóñ êàðòû è ôëåøêè ìîæíî óçíàòü â ðåãèñòðå 30033:
|
|
|
|
// Çíà÷åíèå 0 - íåò íè ôëåøêè, íè êàðòû;
|
|
// Çíà÷åíèå 1 - íåò ôëåøêè, åñòü êàðòà;
|
|
// Çíà÷åíèå 2 - åñòü ôëåøêà, íåò êàðòû;
|
|
// Çíà÷åíèå 3 - åñòü è ôëåøêà è êàðòà;
|
|
}
|
|
|