Исправлен момент загрузки, чтоб CAN не подтягивался к единице.

This commit is contained in:
2025-12-08 18:12:58 +03:00
parent 644ccb6a10
commit abb5ddf76b
12 changed files with 1029 additions and 1000 deletions
+28 -18
View File
@@ -27,10 +27,10 @@ int cal_addr=0;
int period_ready, period_blink;
FLAG chk,sig;
long time_1_5sec, time_5msec, time_5sec;
long time_1_5sec, time_5msec, time_3sec, time_5sec;
int READY = 100;
int WAKE = 5 * ADC_FREQ;
int WAKE = 10 * ADC_FREQ;
long low_count[2] = {0,0};
long err_count[6];
@@ -216,6 +216,7 @@ void Init_sensors()
time_1_5sec = (3 * ADC_FREQ) / 2;
time_5msec = (5 * ADC_FREQ) / 1000;
time_3sec = (3 * ADC_FREQ);
time_5sec = (5 * ADC_FREQ);
for(i=0;i<16;i++)
@@ -301,12 +302,17 @@ void Init_sensors_more()
{
int i;
for(i=0;i<24;i++) modbus[i] &= NOER;
for(i=0;i<4; i++) zer_count[i] = Zero_lev[i];
if(Desk==dsk_LOAD)
for(i=0;i<4;i++)
for(i=0;i<24;i++)
{
modbus[i] &= NOER;
sens_data[i]=0;
}
for(i=0;i<4;i++)
{
zer_count[i] = Zero_lev[i];
if(Desk==dsk_LOAD)
if(sens_type[i]==VOLTAGE)
{
if(i&1) sens_data[i]=560;
@@ -462,9 +468,12 @@ modbus[0x64+chan] = Numb;
if(Amplitude<75) Amplitude = 0;
Level = Amplitude / RADIX2;
sens_data[sens ] = Amplitude;
sens_data[sens-1] = Level;
if(!WAKE)
{
sens_data[sens ] = Amplitude;
sens_data[sens-1] = Level;
}
// Äåéñòâóþùåå (ñðåäíåêâàäðàòè÷íîå) çíà÷åíèå òðåòüåé ôàçû
Numb =-Current-aCurrent;
@@ -501,15 +510,15 @@ modbus[0x68+fazz+2] = lev_count[thrd];
error.all = 0;
no_ignor = !sens_error[chan].bit.Ignor;
if(er_anal( ((Numb-lev_count[chan])/Numb > 0.2) && (Numb>Curr_Edge),
&err_count[chan],time_1_5sec,0))
if(er_anal( ((Numb-lev_count[chan])/Numb > 0.3) && (Numb>Curr_Edge),
&err_count[chan],time_3sec,0))
{
error.bit.Wry = 1;
error.bit.Stop = no_ignor;
}
if(er_anal( ((Numb-lev_count[thrd])/Numb > 0.2) && (Numb>Curr_Edge),
&err_count[thrd],time_1_5sec,0))
if(er_anal( ((Numb-lev_count[thrd])/Numb > 0.3) && (Numb>Curr_Edge),
&err_count[thrd],time_3sec,0))
{
error.bit.Wry = 1;
error.bit.Stop = no_ignor;
@@ -527,7 +536,7 @@ modbus[0x68+fazz+2] = lev_count[thrd];
if(sens_type[chan]==VOLTAGE)
if(er_anal( (Level < sens_lo_edge[sens]),
&low_count[feed],time_1_5sec,0))
&low_count[feed],time_3sec,0))
{
error.bit.Out = 1;
error.bit.Stop = no_ignor;
@@ -545,11 +554,11 @@ modbus[0x68+fazz+2] = lev_count[thrd];
error.bit.Over = 1;
} }
if(chan==1)
if((chan==1)||(chan==3))
if(error.all)
if(!no_write)
{
Test_mem_limit(10);
Test_mem_limit(12);
Log_to_mem(Current);
Log_to_mem(aCurrent);
@@ -561,10 +570,11 @@ Log_to_mem(lev_count[thrd]);
Log_to_mem(Amplitude);
Log_to_mem(Level);
Log_to_mem(Zero_lev[chan]);
Log_to_mem(Curr_Edge);
Log_to_mem(error.all);
Log_to_mem(WAKE);
}