936 lines
36 KiB
C
936 lines
36 KiB
C
|
|
#include "..\h\predefine.h"
|
|||
|
|
#ifdef _tyck_c_
|
|||
|
|
#undef _tyck_c_
|
|||
|
|
/*SYS relational*/
|
|||
|
|
#include <math.h>
|
|||
|
|
|
|||
|
|
#include "stdio.h"
|
|||
|
|
|
|||
|
|
#include "..\h\lib.h"
|
|||
|
|
#include "..\h\variable.h"
|
|||
|
|
#include "..\h\tyck.h"
|
|||
|
|
#include "..\h\predefine.h"
|
|||
|
|
#include "..\h\com_lib.h"
|
|||
|
|
#include ".\inc\analog_tyck.h"
|
|||
|
|
#include ".\inc\parameter_tyck.h"
|
|||
|
|
|
|||
|
|
extern void Reset_Init(void);
|
|||
|
|
extern void PowerInitData(void);
|
|||
|
|
|
|||
|
|
void timer_interrupt(void);
|
|||
|
|
void tyck_main(void);
|
|||
|
|
|
|||
|
|
void TimerManage(void);
|
|||
|
|
|
|||
|
|
void JiSuanUI(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ
|
|||
|
|
void ComputeTemperature(); //<2F><><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>
|
|||
|
|
void JiSuanMeasureValue(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
void CWWDProtectUnit(NoDirectProtectItemType *CWWDYJ); //<2F>¶ȸ澯
|
|||
|
|
void CheckQDKC();
|
|||
|
|
void SaveLoadWave_tyck(void);
|
|||
|
|
|
|||
|
|
unsigned int TestCount = 0; //
|
|||
|
|
extern void digit_Polling(void);//luoyang add
|
|||
|
|
void TestShow(void); //
|
|||
|
|
extern void gse_handle();
|
|||
|
|
extern void SendGetTimeCommand();
|
|||
|
|
extern void block_CheckYaoXin();
|
|||
|
|
extern void CopyYaoXinBianWei();
|
|||
|
|
extern void digit_mainTask();
|
|||
|
|
extern void CWWDProtectUnit(NoDirectProtectItemType *CWWDYJ);
|
|||
|
|
extern void CheckIOYaoXinEx(unsigned char IOType,unsigned char Index,unsigned int yxStart);
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**************************************************
|
|||
|
|
* void timer_interrupt(void)
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>20ms/24=5ms/6
|
|||
|
|
* <EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD>
|
|||
|
|
*************************************************/
|
|||
|
|
void timer_interrupt(void)
|
|||
|
|
{
|
|||
|
|
static volatile int intFlag = 0;
|
|||
|
|
|
|||
|
|
ClockTick(&SysTime);
|
|||
|
|
ModiClock();
|
|||
|
|
|
|||
|
|
if(0 != intFlag)
|
|||
|
|
{
|
|||
|
|
printf("ms int is not return\n");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
intFlag = 1;
|
|||
|
|
#ifdef CCES_ADI
|
|||
|
|
execute_as_subscriber();
|
|||
|
|
#endif
|
|||
|
|
if(Init_IP == TEST_START) //<2F><><EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
//TimerManage(); //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//checkYaoXinObject(); //
|
|||
|
|
digit_Polling(); // luoyang add
|
|||
|
|
//changeFourierVarType();//
|
|||
|
|
CheckAnalogZcp(&ZcpSet);
|
|||
|
|
SaveWave(); //<2F><><EFBFBD><EFBFBD>4<EFBFBD>ܲ<EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
SaveLoadWave_tyck(); //<2F><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>
|
|||
|
|
CheckChuanDongTest(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//JiSuanUI(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ
|
|||
|
|
#ifdef DEVICE_TYPE_CONVENTIONAL
|
|||
|
|
ComputeTemperature(); //<2F><><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>
|
|||
|
|
#endif
|
|||
|
|
if(LS_TR == TYCK_LS)
|
|||
|
|
{
|
|||
|
|
block_CheckYaoXin();
|
|||
|
|
}
|
|||
|
|
if(!(CheckValue & SET_ERROR_BIT))
|
|||
|
|
{
|
|||
|
|
CheckRmote();
|
|||
|
|
#ifdef TYCK_HK_FUNC
|
|||
|
|
CheckQDKC();
|
|||
|
|
#endif
|
|||
|
|
CWWDProtectUnit(&TYCK_CWWD1YJ); //<2F>¶<EFBFBD>1<EFBFBD>澯Ԫ<E6BEAF><D4AA>
|
|||
|
|
CWWDProtectUnit(&TYCK_CWWD2YJ); //<2F>¶<EFBFBD>2<EFBFBD>澯Ԫ<E6BEAF><D4AA>
|
|||
|
|
CWWDProtectUnit(&TYCK_CWWD3YJ); //<2F>¶<EFBFBD>3<EFBFBD>澯Ԫ<E6BEAF><D4AA>
|
|||
|
|
CWWDProtectUnit(&TYCK_CWWD4YJ); //<2F>¶<EFBFBD>4<EFBFBD>澯Ԫ<E6BEAF><D4AA>
|
|||
|
|
}
|
|||
|
|
TimerManage(); //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//<2F><><EFBFBD>㷢<EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>ֵ<EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>ʽ<EEB7BD><CABD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
} //end of if(Init_IP==TEST_START)
|
|||
|
|
|
|||
|
|
//gse_handle();
|
|||
|
|
intFlag = 0;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
void SaveLoadWave_tyck(void)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>
|
|||
|
|
|
|||
|
|
unsigned int i, j;
|
|||
|
|
unsigned int SampleIP,digitalData;
|
|||
|
|
unsigned char Ch;
|
|||
|
|
|
|||
|
|
int readIP;
|
|||
|
|
|
|||
|
|
switch(LuBoValue.LB_IP)
|
|||
|
|
{
|
|||
|
|
case LB_LOAD_WAVE_START: //<2F><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ʼ
|
|||
|
|
|
|||
|
|
if(DigitalWaveChannelSet.Number > 0)
|
|||
|
|
{
|
|||
|
|
digitalData = GetDigitalWaveData();
|
|||
|
|
//printf("pDigitalWave->Buffer[Key] = %d",pDigitalWave->Buffer[Key].Number);
|
|||
|
|
}
|
|||
|
|
if(LuBoValue.Count < LuBoValue.Length)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>δ<EFBFBD>꣬<EFBFBD><EAA3AC><EFBFBD>沨<EFBFBD><E6B2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
SampleIP = LuBoValue.Count;
|
|||
|
|
//for(i = 0; i < 4; i++)
|
|||
|
|
for(i = 0; i < LoadWave.LengthOfNewData; i++)
|
|||
|
|
{
|
|||
|
|
readIP = (LoadWave.IP_last + i) % (REALWAVE_LEN);
|
|||
|
|
for(j = 0; j < MemPtrSet.pWave->ChannelNum; j++)
|
|||
|
|
{
|
|||
|
|
MemPtrSet.pWave->ChannelData[j].Data[SampleIP] = LoadWave.Buffer[j][readIP]; //<2F><><EFBFBD>沨<EFBFBD><E6B2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
if(AD_MODE_I ==TYCK_ADType)
|
|||
|
|
{
|
|||
|
|
if((j==TYCK_I7_WAVE)||(j==TYCK_I8_WAVE)||(j==TYCK_I9_WAVE)||(j==TYCK_I10_WAVE))
|
|||
|
|
{
|
|||
|
|
MemPtrSet.pWave->ChannelData[j].Data[SampleIP]=0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if((j==TYCK_U1_WAVE)||(j==TYCK_U2_WAVE))
|
|||
|
|
{
|
|||
|
|
MemPtrSet.pWave->ChannelData[j].Data[SampleIP]=0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
MemPtrSet.pWave->ChannelData[j].Length = SampleIP + 1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>
|
|||
|
|
if(DigitalWaveChannelSet.Number > 0)
|
|||
|
|
{
|
|||
|
|
//pDigitalWave->Data[SampleIP] = digitalData;
|
|||
|
|
MemPtrSet.pWave->DigitalData.Data[SampleIP] = digitalData;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
SampleIP++;
|
|||
|
|
LuBoValue.Count = SampleIP;
|
|||
|
|
if(SampleIP >= LuBoValue.Length) //¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if(0 == MemPtrSet.pWave->ChannelNum && DigitalWaveChannelSet.Number > 0)
|
|||
|
|
{
|
|||
|
|
MemPtrSet.pWave->ChannelData[0].Length = LuBoValue.Length; //<2F><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
LuBoValue.LB_IP = LB_LOAD_WAVE_END; //<2F><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
} //end for(i=0;i<4;i++)
|
|||
|
|
} //end if(.....
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>ͨ<EFBFBD><CDA8>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
|||
|
|
for(j = 0; j < MemPtrSet.pWave->ChannelNum; j++) MemPtrSet.pWave->ChannelData[j].Length = LuBoValue.Length; //<2F><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if(0 == MemPtrSet.pWave->ChannelNum && DigitalWaveChannelSet.Number > 0)
|
|||
|
|
{
|
|||
|
|
MemPtrSet.pWave->ChannelData[0].Length = LuBoValue.Length; //<2F><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
LuBoValue.LB_IP = LB_LOAD_WAVE_END; //<2F><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case LB_LOAD_WAVE_END: //<2F><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//<2F>ȴ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7>ͣ<EFBFBD><CDA3><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<C9BA><F3A3ACBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>־LuBoValue.LB_IP<49><50>ֵ<EFBFBD><EFBFBD>ΪLB_LOAD_WAVE_CLOSE
|
|||
|
|
|
|||
|
|
if(MovDataToASDU(&Ch, 0, PROTOCOL_DATA_TYPE_LOADWAVE, LuBoValue.SourceAdd) == SUCCESS) LuBoValue.LB_IP = LB_LOAD_WAVE_CLOSE;
|
|||
|
|
break;
|
|||
|
|
case LB_LOAD_WAVE_CLOSE: //<2F><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
break;
|
|||
|
|
}//endcase
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void JiSuanUI(void)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
float FS_temp, FC_temp;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Чֵ
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>1
|
|||
|
|
FS_temp = ChannelValue[CH_TYCK_I1].YouXiaoZhi[JiBo].FS;
|
|||
|
|
FC_temp = ChannelValue[CH_TYCK_I1].YouXiaoZhi[JiBo].FC;
|
|||
|
|
ChannelValue[CH_TYCK_I1].YouXiaoZhi[JiBo].Analog.Value = sqrt(FS_temp * FS_temp + FC_temp * FC_temp);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>2
|
|||
|
|
FS_temp = ChannelValue[CH_TYCK_I2].YouXiaoZhi[JiBo].FS;
|
|||
|
|
FC_temp = ChannelValue[CH_TYCK_I2].YouXiaoZhi[JiBo].FC;
|
|||
|
|
ChannelValue[CH_TYCK_I2].YouXiaoZhi[JiBo].Analog.Value = sqrt(FS_temp * FS_temp + FC_temp * FC_temp);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>3
|
|||
|
|
FS_temp = ChannelValue[CH_TYCK_I3].YouXiaoZhi[JiBo].FS;
|
|||
|
|
FC_temp = ChannelValue[CH_TYCK_I3].YouXiaoZhi[JiBo].FC;
|
|||
|
|
ChannelValue[CH_TYCK_I3].YouXiaoZhi[JiBo].Analog.Value = sqrt(FS_temp * FS_temp + FC_temp * FC_temp);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>4
|
|||
|
|
FS_temp = ChannelValue[CH_TYCK_I4].YouXiaoZhi[JiBo].FS;
|
|||
|
|
FC_temp = ChannelValue[CH_TYCK_I4].YouXiaoZhi[JiBo].FC;
|
|||
|
|
ChannelValue[CH_TYCK_I4].YouXiaoZhi[JiBo].Analog.Value = sqrt(FS_temp * FS_temp + FC_temp * FC_temp);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>5
|
|||
|
|
FS_temp = ChannelValue[CH_TYCK_I5].YouXiaoZhi[JiBo].FS;
|
|||
|
|
FC_temp = ChannelValue[CH_TYCK_I5].YouXiaoZhi[JiBo].FC;
|
|||
|
|
ChannelValue[CH_TYCK_I5].YouXiaoZhi[JiBo].Analog.Value = sqrt(FS_temp * FS_temp + FC_temp * FC_temp);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>6
|
|||
|
|
FS_temp = ChannelValue[CH_TYCK_I6].YouXiaoZhi[JiBo].FS;
|
|||
|
|
FC_temp = ChannelValue[CH_TYCK_I6].YouXiaoZhi[JiBo].FC;
|
|||
|
|
ChannelValue[CH_TYCK_I6].YouXiaoZhi[JiBo].Analog.Value = sqrt(FS_temp * FS_temp + FC_temp * FC_temp);
|
|||
|
|
//<2F><>ѹ1
|
|||
|
|
FS_temp = ChannelValue[CH_TYCK_U1].YouXiaoZhi[JiBo].FS;
|
|||
|
|
FC_temp = ChannelValue[CH_TYCK_U1].YouXiaoZhi[JiBo].FC;
|
|||
|
|
ChannelValue[CH_TYCK_U1].YouXiaoZhi[JiBo].Analog.Value = sqrt(FS_temp * FS_temp + FC_temp * FC_temp);
|
|||
|
|
//<2F><>ѹ2
|
|||
|
|
FS_temp = ChannelValue[CH_TYCK_U2].YouXiaoZhi[JiBo].FS;
|
|||
|
|
FC_temp = ChannelValue[CH_TYCK_U2].YouXiaoZhi[JiBo].FC;
|
|||
|
|
ChannelValue[CH_TYCK_U2].YouXiaoZhi[JiBo].Analog.Value = sqrt(FS_temp * FS_temp + FC_temp * FC_temp);
|
|||
|
|
|
|||
|
|
|
|||
|
|
//20200305 add by linwei <20><><EFBFBD><EFBFBD>4·<34><C2B7><EFBFBD><EFBFBD>
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>7
|
|||
|
|
FS_temp = ChannelValue[CH_TYCK_I7].YouXiaoZhi[JiBo].FS;
|
|||
|
|
FC_temp = ChannelValue[CH_TYCK_I7].YouXiaoZhi[JiBo].FC;
|
|||
|
|
ChannelValue[CH_TYCK_I7].YouXiaoZhi[JiBo].Analog.Value = sqrt(FS_temp * FS_temp + FC_temp * FC_temp);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>8
|
|||
|
|
FS_temp = ChannelValue[CH_TYCK_I8].YouXiaoZhi[JiBo].FS;
|
|||
|
|
FC_temp = ChannelValue[CH_TYCK_I8].YouXiaoZhi[JiBo].FC;
|
|||
|
|
ChannelValue[CH_TYCK_I8].YouXiaoZhi[JiBo].Analog.Value = sqrt(FS_temp * FS_temp + FC_temp * FC_temp);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>9
|
|||
|
|
FS_temp = ChannelValue[CH_TYCK_I9].YouXiaoZhi[JiBo].FS;
|
|||
|
|
FC_temp = ChannelValue[CH_TYCK_I9].YouXiaoZhi[JiBo].FC;
|
|||
|
|
ChannelValue[CH_TYCK_I9].YouXiaoZhi[JiBo].Analog.Value = sqrt(FS_temp * FS_temp + FC_temp * FC_temp);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>10
|
|||
|
|
FS_temp = ChannelValue[CH_TYCK_I10].YouXiaoZhi[JiBo].FS;
|
|||
|
|
FC_temp = ChannelValue[CH_TYCK_I10].YouXiaoZhi[JiBo].FC;
|
|||
|
|
ChannelValue[CH_TYCK_I10].YouXiaoZhi[JiBo].Analog.Value = sqrt(FS_temp * FS_temp + FC_temp * FC_temp);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void ComputeTemperature()
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>
|
|||
|
|
|
|||
|
|
float I1, T1, K1; //<2F>¶<EFBFBD>1 <20>¶Ȼ<C2B6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>б<EFBFBD><D0B1>
|
|||
|
|
float I2, T2, K2; //<2F>¶<EFBFBD>2 <20>¶Ȼ<C2B6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>б<EFBFBD><D0B1>
|
|||
|
|
float I3, T3, K3; //<2F>¶<EFBFBD>3 <20>¶Ȼ<C2B6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>б<EFBFBD><D0B1>
|
|||
|
|
float I4, T4, K4; //<2F>¶<EFBFBD>4 <20>¶Ȼ<C2B6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>б<EFBFBD><D0B1>
|
|||
|
|
|
|||
|
|
float Itemp1, Itemp2 ,Itemp3, Itemp4;
|
|||
|
|
|
|||
|
|
I1 = TYCK_WD1ISet;
|
|||
|
|
T1 = TYCK_WD1TSet;
|
|||
|
|
K1 = TYCK_WD1KSet;
|
|||
|
|
I2 = TYCK_WD2ISet;
|
|||
|
|
T2 = TYCK_WD2TSet;
|
|||
|
|
K2 = TYCK_WD2KSet;
|
|||
|
|
|
|||
|
|
I3 = TYCK_WD3ISet;
|
|||
|
|
T3 = TYCK_WD3TSet;
|
|||
|
|
K3 = TYCK_WD3KSet;
|
|||
|
|
I4 = TYCK_WD4ISet;
|
|||
|
|
T4 = TYCK_WD4TSet;
|
|||
|
|
K4 = TYCK_WD4KSet;
|
|||
|
|
|
|||
|
|
//20150416 luoyang modi <20>¶Ȳ<C2B6><C8B2><EFBFBD><EFBFBD><EFBFBD>ȡƽ<C8A1><C6BD>ֵ
|
|||
|
|
//Itemp1 = (float)ChannelValue[CH_TYCK_WD1].SampleValue_Digit[ChannelValue[CH_TYCK_WD1].FSCount];
|
|||
|
|
//Itemp2 = (float)ChannelValue[CH_TYCK_WD2].SampleValue_Digit[ChannelValue[CH_TYCK_WD2].FSCount];
|
|||
|
|
//Itemp3 = (float)ChannelValue[CH_TYCK_WD3].SampleValue_Digit[ChannelValue[CH_TYCK_WD3].FSCount];
|
|||
|
|
//Itemp4 = (float)ChannelValue[CH_TYCK_WD4].SampleValue_Digit[ChannelValue[CH_TYCK_WD4].FSCount];
|
|||
|
|
|
|||
|
|
|
|||
|
|
//printf("WD1 smp val = %d\n",ChannelValue[CH_TYCK_WD1].SampleValue_Digit[ChannelValue[CH_TYCK_WD1].FSCount]);
|
|||
|
|
//printf("WD2 smp va2 = %d\n",ChannelValue[CH_TYCK_WD2].SampleValue_Digit[ChannelValue[CH_TYCK_WD2].FSCount]);
|
|||
|
|
|
|||
|
|
//printf("WD3 smp va3 = %d\n",ChannelValue[CH_TYCK_WD3].SampleValue_Digit[ChannelValue[CH_TYCK_WD3].FSCount]);
|
|||
|
|
//printf("WD4 smp va4 = %d\n",ChannelValue[CH_TYCK_WD4].SampleValue_Digit[ChannelValue[CH_TYCK_WD4].FSCount]);
|
|||
|
|
|
|||
|
|
if(WD_SOURCE_GSE != ChannelValue[CH_TYCK_WD1].source)
|
|||
|
|
{
|
|||
|
|
//printf("ChannelValue[CH_TYCK_WD1].source=%d",ChannelValue[CH_TYCK_WD1].source);
|
|||
|
|
Itemp1 = SmpValueSet[CH_TYCK_WD1].averageValue;
|
|||
|
|
//printf("Itemp1=%f",Itemp1);
|
|||
|
|
ChannelValue[CH_TYCK_WD1].YouXiaoZhi[JiBo].Analog.Value = K1 * (Itemp1 - I1) + T1; //<2F>¶<EFBFBD>1
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(WD_SOURCE_GSE != ChannelValue[CH_TYCK_WD2].source)
|
|||
|
|
{
|
|||
|
|
Itemp2 = SmpValueSet[CH_TYCK_WD2].averageValue;
|
|||
|
|
ChannelValue[CH_TYCK_WD2].YouXiaoZhi[JiBo].Analog.Value = K2 * (Itemp2 - I2) + T2; //<2F>¶<EFBFBD>2
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(WD_SOURCE_GSE != ChannelValue[CH_TYCK_WD3].source)
|
|||
|
|
{
|
|||
|
|
Itemp3 = SmpValueSet[CH_TYCK_WD3].averageValue;
|
|||
|
|
ChannelValue[CH_TYCK_WD3].YouXiaoZhi[JiBo].Analog.Value = K3 * (Itemp3 - I3) + T3; //<2F>¶<EFBFBD>3
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(WD_SOURCE_GSE != ChannelValue[CH_TYCK_WD4].source)
|
|||
|
|
{
|
|||
|
|
Itemp4 = SmpValueSet[CH_TYCK_WD4].averageValue;
|
|||
|
|
ChannelValue[CH_TYCK_WD4].YouXiaoZhi[JiBo].Analog.Value = K4 * (Itemp4 - I4) + T4; //<2F>¶<EFBFBD>4
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void TimerManage(void)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>:<3A><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
MeasureSendDelay++;
|
|||
|
|
|
|||
|
|
if(DelayTime != 0) DelayTime++; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if(RemoteValue.DelayTime != 0) RemoteValue.DelayTime++; //ң<>ؼ<EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
if(ChuanDongTest.TestDelay!=0) ChuanDongTest.TestDelay++;
|
|||
|
|
RecordChuKouSoe2(&TYCK_CWWD1YJ, 1);
|
|||
|
|
RecordChuKouSoe2(&TYCK_CWWD2YJ, 1);
|
|||
|
|
RecordChuKouSoe2(&TYCK_CWWD3YJ, 1);
|
|||
|
|
RecordChuKouSoe2(&TYCK_CWWD4YJ, 1);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
void JiSuanMeasureValue(void)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|||
|
|
unsigned int i;
|
|||
|
|
|
|||
|
|
//Buffer[0...9]:Ϊһ<CEAA><D2BB>ֵ<EFBFBD><D6B5>Buffer[10...19]<5D><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ
|
|||
|
|
|
|||
|
|
if(DisplayMode == SETVALUE_MODE_1)
|
|||
|
|
{
|
|||
|
|
//<2F><>ʾģʽΪһ<CEAA><D2BB>ֵ
|
|||
|
|
//һ<><D2BB>ֵ
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>1
|
|||
|
|
//MeasureValue.Buffer[0].Value = ChannelValue[CH_TYCK_I1].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[0].Value = ChannelValue[CH_TYCK_I1].rms.Value;
|
|||
|
|
MeasureValue.Buffer[0].Quality = ChannelValue[CH_TYCK_I1].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>2
|
|||
|
|
//MeasureValue.Buffer[1].Value = ChannelValue[CH_TYCK_I2].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[1].Value = ChannelValue[CH_TYCK_I2].rms.Value;
|
|||
|
|
MeasureValue.Buffer[1].Quality = ChannelValue[CH_TYCK_I2].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>3
|
|||
|
|
//MeasureValue.Buffer[2].Value = ChannelValue[CH_TYCK_I3].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[2].Value = ChannelValue[CH_TYCK_I3].rms.Value;
|
|||
|
|
MeasureValue.Buffer[2].Quality = ChannelValue[CH_TYCK_I3].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>4
|
|||
|
|
//MeasureValue.Buffer[3].Value = ChannelValue[CH_TYCK_I4].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[3].Value = ChannelValue[CH_TYCK_I4].rms.Value;
|
|||
|
|
MeasureValue.Buffer[3].Quality = ChannelValue[CH_TYCK_I4].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>5
|
|||
|
|
//MeasureValue.Buffer[4].Value = ChannelValue[CH_TYCK_I5].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[4].Value = ChannelValue[CH_TYCK_I5].rms.Value;
|
|||
|
|
MeasureValue.Buffer[4].Quality = ChannelValue[CH_TYCK_I5].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>6
|
|||
|
|
//MeasureValue.Buffer[5].Value = ChannelValue[CH_TYCK_I6].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[5].Value = ChannelValue[CH_TYCK_I6].rms.Value;
|
|||
|
|
MeasureValue.Buffer[5].Quality = ChannelValue[CH_TYCK_I6].Quality;
|
|||
|
|
|
|||
|
|
//20200305 add by linwei <20><><EFBFBD><EFBFBD>4·<34><C2B7><EFBFBD><EFBFBD>
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>7
|
|||
|
|
//MeasureValue.Buffer[6].Value = ChannelValue[CH_TYCK_I7].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[6].Value = ChannelValue[CH_TYCK_I7].rms.Value;
|
|||
|
|
MeasureValue.Buffer[6].Quality = ChannelValue[CH_TYCK_I7].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>8
|
|||
|
|
//MeasureValue.Buffer[7].Value = ChannelValue[CH_TYCK_I8].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[7].Value = ChannelValue[CH_TYCK_I8].rms.Value;
|
|||
|
|
MeasureValue.Buffer[7].Quality = ChannelValue[CH_TYCK_I8].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>9
|
|||
|
|
//MeasureValue.Buffer[8].Value = ChannelValue[CH_TYCK_I9].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[8].Value = ChannelValue[CH_TYCK_I9].rms.Value;
|
|||
|
|
MeasureValue.Buffer[8].Quality = ChannelValue[CH_TYCK_I9].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>10
|
|||
|
|
//MeasureValue.Buffer[9].Value = ChannelValue[CH_TYCK_I10].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[9].Value = ChannelValue[CH_TYCK_I10].rms.Value;
|
|||
|
|
MeasureValue.Buffer[9].Quality = ChannelValue[CH_TYCK_I10].Quality;
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><>ѹ1
|
|||
|
|
//MeasureValue.Buffer[10].Value = ChannelValue[CH_TYCK_U1].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[10].Value = ChannelValue[CH_TYCK_U1].rms.Value;
|
|||
|
|
MeasureValue.Buffer[10].Quality = ChannelValue[CH_TYCK_U1].Quality;
|
|||
|
|
//<2F><>ѹ2
|
|||
|
|
//MeasureValue.Buffer[11].Value = ChannelValue[CH_TYCK_U2].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[11].Value = ChannelValue[CH_TYCK_U2].rms.Value;
|
|||
|
|
MeasureValue.Buffer[11].Quality = ChannelValue[CH_TYCK_U2].Quality;
|
|||
|
|
|
|||
|
|
//<2F>¶<EFBFBD>1
|
|||
|
|
MeasureValue.Buffer[12].Value = ChannelValue[CH_TYCK_WD1].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
//<2F>¶<EFBFBD>2
|
|||
|
|
MeasureValue.Buffer[13].Value = ChannelValue[CH_TYCK_WD2].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
//<2F>¶<EFBFBD>3
|
|||
|
|
MeasureValue.Buffer[14].Value = ChannelValue[CH_TYCK_WD3].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
//<2F>¶<EFBFBD>4
|
|||
|
|
MeasureValue.Buffer[15].Value = ChannelValue[CH_TYCK_WD4].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
|
|||
|
|
|
|||
|
|
if(AD_MODE_I ==TYCK_ADType)
|
|||
|
|
{
|
|||
|
|
MeasureValue.Buffer[6].Value = 0;
|
|||
|
|
MeasureValue.Buffer[7].Value = 0;
|
|||
|
|
MeasureValue.Buffer[8].Value = 0;
|
|||
|
|
MeasureValue.Buffer[9].Value = 0;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
MeasureValue.Buffer[10].Value=0;
|
|||
|
|
MeasureValue.Buffer[11].Value=0;
|
|||
|
|
MeasureValue.Buffer[12].Value=0;
|
|||
|
|
MeasureValue.Buffer[13].Value=0;
|
|||
|
|
MeasureValue.Buffer[14].Value=0;
|
|||
|
|
MeasureValue.Buffer[15].Value=0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>1
|
|||
|
|
MeasureValue.Buffer[16].Value = MeasureValue.Buffer[0].Value / ChannelValue[CH_TYCK_I1].BianBi;
|
|||
|
|
MeasureValue.Buffer[16].Quality = MeasureValue.Buffer[0].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>2
|
|||
|
|
MeasureValue.Buffer[17].Value = MeasureValue.Buffer[1].Value / ChannelValue[CH_TYCK_I2].BianBi;
|
|||
|
|
MeasureValue.Buffer[17].Quality = MeasureValue.Buffer[1].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>3
|
|||
|
|
MeasureValue.Buffer[18].Value = MeasureValue.Buffer[2].Value / ChannelValue[CH_TYCK_I3].BianBi;
|
|||
|
|
MeasureValue.Buffer[18].Quality = MeasureValue.Buffer[2].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>4
|
|||
|
|
MeasureValue.Buffer[19].Value = MeasureValue.Buffer[3].Value / ChannelValue[CH_TYCK_I4].BianBi;
|
|||
|
|
MeasureValue.Buffer[19].Quality = MeasureValue.Buffer[3].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>5
|
|||
|
|
MeasureValue.Buffer[20].Value = MeasureValue.Buffer[4].Value / ChannelValue[CH_TYCK_I5].BianBi;
|
|||
|
|
MeasureValue.Buffer[20].Quality = MeasureValue.Buffer[4].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>6
|
|||
|
|
MeasureValue.Buffer[21].Value = MeasureValue.Buffer[5].Value / ChannelValue[CH_TYCK_I6].BianBi;
|
|||
|
|
MeasureValue.Buffer[21].Quality = MeasureValue.Buffer[5].Quality;
|
|||
|
|
|
|||
|
|
//20200305 add by linwei <20><><EFBFBD><EFBFBD>4·<34><C2B7><EFBFBD><EFBFBD>
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>7
|
|||
|
|
MeasureValue.Buffer[22].Value = MeasureValue.Buffer[6].Value / ChannelValue[CH_TYCK_I7].BianBi;
|
|||
|
|
MeasureValue.Buffer[22].Quality = MeasureValue.Buffer[6].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>8
|
|||
|
|
MeasureValue.Buffer[23].Value = MeasureValue.Buffer[7].Value / ChannelValue[CH_TYCK_I8].BianBi;
|
|||
|
|
MeasureValue.Buffer[23].Quality = MeasureValue.Buffer[7].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>9
|
|||
|
|
MeasureValue.Buffer[24].Value = MeasureValue.Buffer[8].Value / ChannelValue[CH_TYCK_I9].BianBi;
|
|||
|
|
MeasureValue.Buffer[24].Quality = MeasureValue.Buffer[8].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>10
|
|||
|
|
MeasureValue.Buffer[25].Value = MeasureValue.Buffer[9].Value / ChannelValue[CH_TYCK_I10].BianBi;
|
|||
|
|
MeasureValue.Buffer[25].Quality = MeasureValue.Buffer[9].Quality;
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><>ѹ1
|
|||
|
|
MeasureValue.Buffer[26].Value = MeasureValue.Buffer[10].Value * 1000 / ChannelValue[CH_TYCK_U1].BianBi;
|
|||
|
|
MeasureValue.Buffer[26].Quality = MeasureValue.Buffer[10].Quality;
|
|||
|
|
//<2F><>ѹ2
|
|||
|
|
MeasureValue.Buffer[27].Value = MeasureValue.Buffer[11].Value * 1000 / ChannelValue[CH_TYCK_U2].BianBi;
|
|||
|
|
MeasureValue.Buffer[27].Quality = MeasureValue.Buffer[11].Quality;
|
|||
|
|
|
|||
|
|
//<2F>¶<EFBFBD>1
|
|||
|
|
MeasureValue.Buffer[28].Value = MeasureValue.Buffer[12].Value;
|
|||
|
|
//<2F>¶<EFBFBD>2
|
|||
|
|
MeasureValue.Buffer[29].Value = MeasureValue.Buffer[13].Value;
|
|||
|
|
//<2F>¶<EFBFBD>3
|
|||
|
|
MeasureValue.Buffer[30].Value = MeasureValue.Buffer[14].Value;
|
|||
|
|
//<2F>¶<EFBFBD>4
|
|||
|
|
MeasureValue.Buffer[31].Value = MeasureValue.Buffer[15].Value;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
//<2F><>ʾģʽΪ<CABD><CEAA><EFBFBD><EFBFBD>ֵ
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>1
|
|||
|
|
//MeasureValue.Buffer[16].Value = ChannelValue[CH_TYCK_I1].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[16].Value = ChannelValue[CH_TYCK_I1].rms.Value;
|
|||
|
|
MeasureValue.Buffer[16].Quality = ChannelValue[CH_TYCK_I1].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>2
|
|||
|
|
//MeasureValue.Buffer[17].Value = ChannelValue[CH_TYCK_I2].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[17].Value = ChannelValue[CH_TYCK_I2].rms.Value;
|
|||
|
|
MeasureValue.Buffer[17].Quality = ChannelValue[CH_TYCK_I2].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>3
|
|||
|
|
//MeasureValue.Buffer[18].Value = ChannelValue[CH_TYCK_I3].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[18].Value = ChannelValue[CH_TYCK_I3].rms.Value;
|
|||
|
|
MeasureValue.Buffer[18].Quality = ChannelValue[CH_TYCK_I3].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>4
|
|||
|
|
//MeasureValue.Buffer[19].Value = ChannelValue[CH_TYCK_I4].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[19].Value = ChannelValue[CH_TYCK_I4].rms.Value;
|
|||
|
|
MeasureValue.Buffer[19].Quality = ChannelValue[CH_TYCK_I4].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>5
|
|||
|
|
//MeasureValue.Buffer[20].Value = ChannelValue[CH_TYCK_I5].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[20].Value = ChannelValue[CH_TYCK_I5].rms.Value;
|
|||
|
|
MeasureValue.Buffer[20].Quality = ChannelValue[CH_TYCK_I5].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>6
|
|||
|
|
//MeasureValue.Buffer[21].Value = ChannelValue[CH_TYCK_I6].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[21].Value = ChannelValue[CH_TYCK_I6].rms.Value;
|
|||
|
|
MeasureValue.Buffer[21].Quality = ChannelValue[CH_TYCK_I6].Quality;
|
|||
|
|
|
|||
|
|
//20200305 add by linwei <20><><EFBFBD><EFBFBD>4·<34><C2B7><EFBFBD><EFBFBD>
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>7
|
|||
|
|
//MeasureValue.Buffer[22].Value = ChannelValue[CH_TYCK_I7].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[22].Value = ChannelValue[CH_TYCK_I7].rms.Value;
|
|||
|
|
MeasureValue.Buffer[22].Quality = ChannelValue[CH_TYCK_I7].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>8
|
|||
|
|
//MeasureValue.Buffer[23].Value = ChannelValue[CH_TYCK_I8].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[23].Value = ChannelValue[CH_TYCK_I8].rms.Value;
|
|||
|
|
MeasureValue.Buffer[23].Quality = ChannelValue[CH_TYCK_I8].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>9
|
|||
|
|
//MeasureValue.Buffer[24].Value = ChannelValue[CH_TYCK_I9].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[24].Value = ChannelValue[CH_TYCK_I9].rms.Value;
|
|||
|
|
MeasureValue.Buffer[24].Quality = ChannelValue[CH_TYCK_I9].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>10
|
|||
|
|
//MeasureValue.Buffer[25].Value = ChannelValue[CH_TYCK_I10].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[25].Value = ChannelValue[CH_TYCK_I10].rms.Value;
|
|||
|
|
MeasureValue.Buffer[25].Quality = ChannelValue[CH_TYCK_I10].Quality;
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><>ѹ1
|
|||
|
|
//MeasureValue.Buffer[26].Value = ChannelValue[CH_TYCK_U1].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[26].Value = ChannelValue[CH_TYCK_U1].rms.Value;
|
|||
|
|
MeasureValue.Buffer[26].Quality = ChannelValue[CH_TYCK_U1].Quality;
|
|||
|
|
//<2F><>ѹ2
|
|||
|
|
//MeasureValue.Buffer[27].Value = ChannelValue[CH_TYCK_U2].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
MeasureValue.Buffer[27].Value = ChannelValue[CH_TYCK_U2].rms.Value;
|
|||
|
|
MeasureValue.Buffer[27].Quality = ChannelValue[CH_TYCK_U2].Quality;
|
|||
|
|
|
|||
|
|
//<2F>¶<EFBFBD>1
|
|||
|
|
MeasureValue.Buffer[28].Value = ChannelValue[CH_TYCK_WD1].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
//<2F>¶<EFBFBD>2
|
|||
|
|
MeasureValue.Buffer[29].Value = ChannelValue[CH_TYCK_WD2].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
//<2F>¶<EFBFBD>1
|
|||
|
|
MeasureValue.Buffer[30].Value = ChannelValue[CH_TYCK_WD3].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
//<2F>¶<EFBFBD>2
|
|||
|
|
MeasureValue.Buffer[31].Value = ChannelValue[CH_TYCK_WD4].YouXiaoZhi[JiBo].Analog.Value;
|
|||
|
|
|
|||
|
|
if(AD_MODE_I ==TYCK_ADType)
|
|||
|
|
{
|
|||
|
|
MeasureValue.Buffer[22].Value = 0;
|
|||
|
|
MeasureValue.Buffer[23].Value = 0;
|
|||
|
|
MeasureValue.Buffer[24].Value = 0;
|
|||
|
|
MeasureValue.Buffer[25].Value = 0;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
MeasureValue.Buffer[26].Value=0;
|
|||
|
|
MeasureValue.Buffer[27].Value=0;
|
|||
|
|
MeasureValue.Buffer[28].Value=0;
|
|||
|
|
MeasureValue.Buffer[29].Value=0;
|
|||
|
|
MeasureValue.Buffer[30].Value=0;
|
|||
|
|
MeasureValue.Buffer[31].Value=0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//һ<><D2BB>ֵ
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>1
|
|||
|
|
MeasureValue.Buffer[0].Value = MeasureValue.Buffer[16].Value * ChannelValue[CH_TYCK_I1].BianBi;
|
|||
|
|
MeasureValue.Buffer[0].Quality = MeasureValue.Buffer[16].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>2
|
|||
|
|
MeasureValue.Buffer[1].Value = MeasureValue.Buffer[17].Value * ChannelValue[CH_TYCK_I2].BianBi;
|
|||
|
|
MeasureValue.Buffer[1].Quality = MeasureValue.Buffer[17].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>3
|
|||
|
|
MeasureValue.Buffer[2].Value = MeasureValue.Buffer[18].Value * ChannelValue[CH_TYCK_I3].BianBi;
|
|||
|
|
MeasureValue.Buffer[2].Quality = MeasureValue.Buffer[18].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>4
|
|||
|
|
MeasureValue.Buffer[3].Value = MeasureValue.Buffer[19].Value * ChannelValue[CH_TYCK_I4].BianBi;
|
|||
|
|
MeasureValue.Buffer[3].Quality = MeasureValue.Buffer[19].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>5
|
|||
|
|
MeasureValue.Buffer[4].Value = MeasureValue.Buffer[20].Value * ChannelValue[CH_TYCK_I5].BianBi;
|
|||
|
|
MeasureValue.Buffer[4].Quality = MeasureValue.Buffer[20].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>6
|
|||
|
|
MeasureValue.Buffer[5].Value = MeasureValue.Buffer[21].Value * ChannelValue[CH_TYCK_I6].BianBi;
|
|||
|
|
MeasureValue.Buffer[5].Quality = MeasureValue.Buffer[21].Quality;
|
|||
|
|
|
|||
|
|
//20200305 add by linwei <20><><EFBFBD><EFBFBD>4·<34><C2B7><EFBFBD><EFBFBD>
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>7
|
|||
|
|
MeasureValue.Buffer[6].Value = MeasureValue.Buffer[22].Value * ChannelValue[CH_TYCK_I7].BianBi;
|
|||
|
|
MeasureValue.Buffer[6].Quality = MeasureValue.Buffer[22].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>8
|
|||
|
|
MeasureValue.Buffer[7].Value = MeasureValue.Buffer[23].Value * ChannelValue[CH_TYCK_I8].BianBi;
|
|||
|
|
MeasureValue.Buffer[7].Quality = MeasureValue.Buffer[23].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>9
|
|||
|
|
MeasureValue.Buffer[8].Value = MeasureValue.Buffer[24].Value * ChannelValue[CH_TYCK_I9].BianBi;
|
|||
|
|
MeasureValue.Buffer[8].Quality = MeasureValue.Buffer[24].Quality;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>10
|
|||
|
|
MeasureValue.Buffer[9].Value = MeasureValue.Buffer[25].Value * ChannelValue[CH_TYCK_I10].BianBi;
|
|||
|
|
MeasureValue.Buffer[9].Quality = MeasureValue.Buffer[25].Quality;
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><>ѹ1
|
|||
|
|
MeasureValue.Buffer[10].Value = MeasureValue.Buffer[26].Value * ChannelValue[CH_TYCK_U1].BianBi / 1000;
|
|||
|
|
MeasureValue.Buffer[10].Quality = MeasureValue.Buffer[26].Quality;
|
|||
|
|
//<2F><>ѹ2
|
|||
|
|
MeasureValue.Buffer[11].Value = MeasureValue.Buffer[27].Value * ChannelValue[CH_TYCK_U2].BianBi / 1000;
|
|||
|
|
MeasureValue.Buffer[11].Quality = MeasureValue.Buffer[27].Quality;
|
|||
|
|
|
|||
|
|
//<2F>¶<EFBFBD>1
|
|||
|
|
MeasureValue.Buffer[12].Value = MeasureValue.Buffer[28].Value;
|
|||
|
|
//<2F>¶<EFBFBD>2
|
|||
|
|
MeasureValue.Buffer[13].Value = MeasureValue.Buffer[29].Value;
|
|||
|
|
//<2F>¶<EFBFBD>3
|
|||
|
|
MeasureValue.Buffer[14].Value = MeasureValue.Buffer[30].Value;
|
|||
|
|
//<2F>¶<EFBFBD>4
|
|||
|
|
MeasureValue.Buffer[15].Value = MeasureValue.Buffer[31].Value;
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
//װ<><D7B0>ʱ<EFBFBD><CAB1>
|
|||
|
|
MeasureValue.Time.Msecond = Clock.Msecond; //<2F><><EFBFBD>룬2<EBA3AC>ֽڣ<D6BD><DAA3><EFBFBD>Χ<EFBFBD><CEA7>0<EFBFBD><30>59999
|
|||
|
|
MeasureValue.Time.Minute = Clock.Minute; //<2F>֣<EFBFBD>1<EFBFBD>ֽڣ<D6BD><DAA3><EFBFBD>Χ<EFBFBD><CEA7>0<EFBFBD><30>59
|
|||
|
|
MeasureValue.Time.Hour = Clock.Hour; //Сʱ<D0A1><CAB1>1<EFBFBD>ֽڣ<D6BD><DAA3><EFBFBD>Χ<EFBFBD><CEA7>0<EFBFBD><30>23
|
|||
|
|
MeasureValue.Time.Date = Clock.Date; //<2F><><EFBFBD>ڣ<EFBFBD>1<EFBFBD>ֽڣ<D6BD><DAA3><EFBFBD>Χ<EFBFBD><CEA7>1<EFBFBD><31>31
|
|||
|
|
MeasureValue.Time.Month = Clock.Month; //<2F>£<EFBFBD>1<EFBFBD>ֽڣ<D6BD><DAA3><EFBFBD>Χ<EFBFBD><CEA7>1<EFBFBD><31>12
|
|||
|
|
MeasureValue.Time.Year = Clock.Year; //<2F>꣬2<EAA3AC>ֽڣ<D6BD><DAA3><EFBFBD>Χ<EFBFBD><CEA7>2000<30><30>2099
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void maintask(void)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD><DFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
SysResetSoeRecord(); //ϵͳ<CFB5><CDB3>λ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>¼
|
|||
|
|
CopyYaoXinBianWei();
|
|||
|
|
digit_mainTask();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Чֵ
|
|||
|
|
ComputeAnalogTrueRms(&ZcpSet);
|
|||
|
|
if(YCThresholdSet.avail == 0)
|
|||
|
|
{
|
|||
|
|
JiSuanMeasureValue(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
SendMeasureValue(); //<2F><><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>ֵ <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>Ϊ<EFBFBD><CEAA><EFBFBD>У<EFBFBD><D0A3>Ͳ<EFBFBD><CDB2><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ӿڷ<D3BF><DAB7><EFBFBD><EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>Ҫʹ<D2AA><CAB9><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
SendGetTimeCommand();
|
|||
|
|
ReceiveData(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ProcessASDU(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//SendData(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
setValueSelfCheck(); //<2F><>ֵ<EFBFBD>Լ<EFBFBD>
|
|||
|
|
//<2F><>ѹ<EFBFBD><D1B9>Ͷ<EFBFBD><CDB6> 20200313 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD>崦<EFBFBD><E5B4A6>
|
|||
|
|
CheckSoftStrapCtrl();
|
|||
|
|
#ifdef DEVICE_TYPE_DIGITAL
|
|||
|
|
CheckIOYaoXin(IO_TYPE_IN20_OUT6,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼IO<49>Լ<EFBFBD><D4BC><EFBFBD>ң<EFBFBD><D2A3>
|
|||
|
|
CheckIOYaoXin(IO_TYPE_IN20_OUT6,1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼IO<49>Լ<EFBFBD><D4BC><EFBFBD>ң<EFBFBD><D2A3>
|
|||
|
|
CheckIOYaoXin(IO_TYPE_IN20_OUT6,2); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼IO<49>Լ<EFBFBD><D4BC><EFBFBD>ң<EFBFBD><D2A3>
|
|||
|
|
#else
|
|||
|
|
/*
|
|||
|
|
CheckIOYaoXin(IO_TYPE_IN20_OUT6,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼IO<49>Լ<EFBFBD><D4BC><EFBFBD>ң<EFBFBD><D2A3>
|
|||
|
|
CheckIOYaoXin(IO_TYPE_IN20_OUT6,1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼IO<49>Լ<EFBFBD><D4BC><EFBFBD>ң<EFBFBD><D2A3>
|
|||
|
|
CheckIOYaoXin(IO_TYPE_IN15_OUT10,2); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼IO<49>Լ<EFBFBD><D4BC><EFBFBD>ң<EFBFBD><D2A3>
|
|||
|
|
CheckIOYaoXin(IO_TYPE_IN15_OUT10,3); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼IO<49>Լ<EFBFBD><D4BC><EFBFBD>ң<EFBFBD><D2A3>
|
|||
|
|
*/
|
|||
|
|
//20150803 luoyang modi
|
|||
|
|
CheckIOYaoXinEx(IO_TYPE_IN0_OUT16,0,TYCK_YAOXIN_ZJ_IO1_START); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼IO<49>Լ<EFBFBD><D4BC><EFBFBD>ң<EFBFBD><D2A3>
|
|||
|
|
CheckIOYaoXinEx(IO_TYPE_IN0_OUT16,1,TYCK_YAOXIN_ZJ_IO2_START); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼IO<49>Լ<EFBFBD><D4BC><EFBFBD>ң<EFBFBD><D2A3>
|
|||
|
|
CheckIOYaoXinEx(IO_TYPE_IN30_OUT0,2,TYCK_YAOXIN_ZJ_IO3_START); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼IO<49>Լ<EFBFBD><D4BC><EFBFBD>ң<EFBFBD><D2A3>
|
|||
|
|
CheckIOYaoXinEx(IO_TYPE_IN30_OUT0,3,TYCK_YAOXIN_ZJ_IO4_START); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼IO<49>Լ<EFBFBD><D4BC><EFBFBD>ң<EFBFBD><D2A3>
|
|||
|
|
#endif
|
|||
|
|
CheckRemote_ryb();
|
|||
|
|
|
|||
|
|
if(LS_TR == TYCK_LS)
|
|||
|
|
{
|
|||
|
|
block_CalcStatus();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/******************************************************************************
|
|||
|
|
* Function: SoftReset
|
|||
|
|
* Description:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬ң<EFBFBD>ء<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鰴ť<EFBFBD><EFBFBD>
|
|||
|
|
* Calls: none
|
|||
|
|
* Called By:
|
|||
|
|
* Input: RstMode<EFBFBD><EFBFBD><EFBFBD>鷽ʽ FG_MODE_YK-ң<EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD> FG_MODE_AN-<EFBFBD><EFBFBD>ť<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* Ouput:
|
|||
|
|
* Return:
|
|||
|
|
* others:
|
|||
|
|
* History:
|
|||
|
|
* 1.luoyang created
|
|||
|
|
*
|
|||
|
|
*******************************************************************************/
|
|||
|
|
void SoftReset(unsigned char RstMode)
|
|||
|
|
{
|
|||
|
|
CanShuType CanShuValue;
|
|||
|
|
CanShuValue.Number = 0;
|
|||
|
|
|
|||
|
|
//ң<>ظ<EFBFBD><D8B8><EFBFBD>
|
|||
|
|
if(FG_MODE_YK == RstMode)
|
|||
|
|
{
|
|||
|
|
RecordSOE(FG_YK, CanShuValue);
|
|||
|
|
}
|
|||
|
|
//<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
else if(FG_MODE_SD == RstMode)
|
|||
|
|
{
|
|||
|
|
RecordSOE(FG_AN, CanShuValue);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//printf("len = %d",sizeof(YaoXinSet) / sizeof(YaoXinObjectType));
|
|||
|
|
|
|||
|
|
FGIP = TEST_START;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źţ<C5BA><C5A3><EFBFBD><EFBFBD><EFBFBD>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>բ<EFBFBD><EFBFBD>
|
|||
|
|
//D_OUT(FGQ_KC,ON);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źű<C5BA><C5B1>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//FGKeepTimer = 1;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
/******************************************************************************
|
|||
|
|
* Function: KCHandle
|
|||
|
|
* Description:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* Calls: none
|
|||
|
|
* Called By:
|
|||
|
|
* Input:
|
|||
|
|
* Ouput:
|
|||
|
|
* Return:
|
|||
|
|
* others:
|
|||
|
|
* History:
|
|||
|
|
* 1.luoyang created
|
|||
|
|
*
|
|||
|
|
*******************************************************************************/
|
|||
|
|
void RemoteKCHandle()
|
|||
|
|
{
|
|||
|
|
int KCObjectNo;
|
|||
|
|
int KCNo;
|
|||
|
|
|
|||
|
|
KCObjectNo = RemoteObject.Object[RemoteValue.ObjectNo].Out_On_No;
|
|||
|
|
|
|||
|
|
if(KCObjectNo > TYCK_KC_NUM)
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F>ϴλ<CFB4>δִ<CEB4><D6B4><EFBFBD><EFBFBD>
|
|||
|
|
if(TEST_CLOSE != TYCK_QDKCSet[KCObjectNo].Status)
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//û<>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB2><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
if(KC_TYPE_WFK == TYCK_KCTXSet[KCObjectNo].Type && 0 == TYCK_KCTXSet[KCObjectNo].Time)
|
|||
|
|
{
|
|||
|
|
TYCK_QDKCSet[KCObjectNo].StatusNext = RemoteValue.Property;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if(ON != RemoteValue.Property)
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
TYCK_QDKCSet[KCObjectNo].StatusNext = ON;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TYCK_QDKCSet[KCObjectNo].Status = TEST_START;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/******************************************************************************
|
|||
|
|
* Function: CheckQDKC
|
|||
|
|
* Description:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* Calls: none
|
|||
|
|
* Called By:
|
|||
|
|
* Input:
|
|||
|
|
* Ouput:
|
|||
|
|
* Return:
|
|||
|
|
* others:
|
|||
|
|
* History:
|
|||
|
|
* 1.luoyang created 20140618
|
|||
|
|
*
|
|||
|
|
*******************************************************************************/
|
|||
|
|
void CheckQDKC()
|
|||
|
|
{
|
|||
|
|
int i;
|
|||
|
|
CanShuType CanShu;
|
|||
|
|
unsigned int Temp[2],Temp1[2];
|
|||
|
|
|
|||
|
|
CanShu.Number = 0;
|
|||
|
|
|
|||
|
|
for(i = 0;i < TYCK_KC_NUM;i++)
|
|||
|
|
{
|
|||
|
|
if(KC_TYPE_QDQS == TYCK_KCTXSet[i].Type)
|
|||
|
|
{
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
switch(TYCK_QDKCSet[i].Status)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
case TEST_START:
|
|||
|
|
D_OUT(TYCK_QDKCSet[i].KCNo,TYCK_QDKCSet[i].StatusNext);
|
|||
|
|
|
|||
|
|
if(ON == TYCK_QDKCSet[i].StatusNext)
|
|||
|
|
{
|
|||
|
|
TYCK_QDKCSet[i].Status = TEST_DELAY;
|
|||
|
|
RecordSOE(TYCK_QDKCSet[i].SOECodeStart,CanShu);
|
|||
|
|
if(KC_TYPE_WFK != TYCK_KCTXSet[i].Type && 0 != TYCK_KCTXSet[i].Time)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
TYCK_QDKCSet[i].Timer = 1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else if(OFF == TYCK_QDKCSet[i].StatusNext)
|
|||
|
|
{
|
|||
|
|
TYCK_QDKCSet[i].Status = TEST_CLOSE;
|
|||
|
|
RecordSOE(TYCK_QDKCSet[i].SOECodeStart + 1,CanShu);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TYCK_QDKCSet[i].CFKRBak[0] = TYCK_QDKCSet[i].KRMask[0] & InPort.PortStatus[0];
|
|||
|
|
TYCK_QDKCSet[i].CFKRBak[1] = TYCK_QDKCSet[i].KRMask[1] & InPort.PortStatus[1];
|
|||
|
|
break;
|
|||
|
|
case TEST_DELAY:
|
|||
|
|
//<2F><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if(KC_TYPE_WFK == TYCK_KCTXSet[i].Type)
|
|||
|
|
{
|
|||
|
|
if(0 == TYCK_KCTXSet[i].Time)
|
|||
|
|
{
|
|||
|
|
TYCK_QDKCSet[i].Status = TEST_CLOSE;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
TYCK_QDKCSet[i].Timer++;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>䵽<EFBFBD><E4B5BD><EFBFBD>ջ<EFBFBD>
|
|||
|
|
if(TYCK_QDKCSet[i].Timer >= TYCK_KCTXSet[i].Time)
|
|||
|
|
{
|
|||
|
|
D_OUT(TYCK_QDKCSet[i].KCNo,OFF);
|
|||
|
|
TYCK_QDKCSet[i].Status = TEST_CLOSE;
|
|||
|
|
TYCK_QDKCSet[i].StatusNext = OFF;
|
|||
|
|
TYCK_QDKCSet[i].Timer = 0;
|
|||
|
|
RecordSOE(TYCK_QDKCSet[i].SOECodeStart + 1,CanShu);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//<2F>з<EFBFBD><D0B7><EFBFBD>
|
|||
|
|
else if(KC_TYPE_FK == TYCK_KCTXSet[i].Type)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>źŵ<C5BA>λ
|
|||
|
|
if(YaoXinStatus[TYCK_QDKCSet[i].FKYaoXinNo] == TYCK_QDKCSet[i].StatusNext)
|
|||
|
|
{
|
|||
|
|
D_OUT(TYCK_QDKCSet[i].KCNo,OFF);
|
|||
|
|
TYCK_QDKCSet[i].Status = TEST_CLOSE;
|
|||
|
|
TYCK_QDKCSet[i].StatusNext = OFF;
|
|||
|
|
TYCK_QDKCSet[i].Timer = 0;
|
|||
|
|
RecordSOE(TYCK_QDKCSet[i].SOECodeStart + 2,CanShu);
|
|||
|
|
RecordSOE(TYCK_QDKCSet[i].SOECodeStart + 1,CanShu);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
TYCK_QDKCSet[i].Timer++;
|
|||
|
|
if(TYCK_QDKCSet[i].Timer >= TYCK_KCTXSet[i].Time)
|
|||
|
|
{
|
|||
|
|
D_OUT(TYCK_QDKCSet[i].KCNo,OFF);
|
|||
|
|
TYCK_QDKCSet[i].Status = TEST_CLOSE;
|
|||
|
|
TYCK_QDKCSet[i].StatusNext = OFF;
|
|||
|
|
TYCK_QDKCSet[i].Timer = 0;
|
|||
|
|
RecordSOE(TYCK_QDKCSet[i].SOECodeStart + 3,CanShu);
|
|||
|
|
RecordSOE(TYCK_QDKCSet[i].SOECodeStart + 1,CanShu);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
TYCK_QDKCSet[i].CFKRBak[0] = TYCK_QDKCSet[i].KRMask[0] & InPort.PortStatus[0];
|
|||
|
|
TYCK_QDKCSet[i].CFKRBak[1] = TYCK_QDKCSet[i].KRMask[1] & InPort.PortStatus[1];
|
|||
|
|
break;
|
|||
|
|
case TEST_CLOSE:
|
|||
|
|
Temp[0] = TYCK_QDKCSet[i].KRMask[0] & InPort.PortStatus[0];
|
|||
|
|
Temp[1] = TYCK_QDKCSet[i].KRMask[1] & InPort.PortStatus[1];
|
|||
|
|
//<2F><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ0
|
|||
|
|
if(KC_TYPE_WFK == TYCK_KCTXSet[i].Type && 0 == TYCK_KCTXSet[i].Time)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD>б<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD>ø<EFBFBD><C3B8>飬<EFBFBD>ջ<EFBFBD>
|
|||
|
|
if(ON == TYCK_QDKCSet[i].StatusNext)
|
|||
|
|
{
|
|||
|
|
if((!(Temp[0] || Temp[1]) && (TYCK_QDKCSet[i].CFKRBak[0] || TYCK_QDKCSet[i].CFKRBak[1])) || TEST_START == FGIP)
|
|||
|
|
{
|
|||
|
|
TYCK_QDKCSet[i].Status = TEST_START;
|
|||
|
|
TYCK_QDKCSet[i].StatusNext = OFF;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>п<EFBFBD><D0BF><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>Ϊ<EFBFBD><CEAA>Ч
|
|||
|
|
Temp1[0] = (Temp[0] ^ TYCK_QDKCSet[i].CFKRBak[0]) & InPort.PortStatus[0];
|
|||
|
|
Temp1[1] = (Temp[1] ^ TYCK_QDKCSet[i].CFKRBak[1]) & InPort.PortStatus[1];
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if(Temp1[0] || Temp1[1])
|
|||
|
|
{
|
|||
|
|
TYCK_QDKCSet[i].Status = TEST_START;
|
|||
|
|
TYCK_QDKCSet[i].StatusNext = ON;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>п<EFBFBD><D0BF><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>Ϊ<EFBFBD><CEAA>Ч
|
|||
|
|
Temp1[0] = (Temp[0] ^ TYCK_QDKCSet[i].CFKRBak[0]) & InPort.PortStatus[0];
|
|||
|
|
Temp1[1] = (Temp[1] ^ TYCK_QDKCSet[i].CFKRBak[1]) & InPort.PortStatus[1];
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if(Temp1[0] || Temp1[1])
|
|||
|
|
{
|
|||
|
|
TYCK_QDKCSet[i].Status = TEST_START;
|
|||
|
|
TYCK_QDKCSet[i].StatusNext = ON;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
TYCK_QDKCSet[i].CFKRBak[0] = Temp[0];
|
|||
|
|
TYCK_QDKCSet[i].CFKRBak[1] = Temp[1];
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
if(TEST_START == FGIP)
|
|||
|
|
{
|
|||
|
|
FGIP = TEST_CLOSE;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
#endif
|