📄 channelstatus.c
字号:
//*******************************************************************************
//Copyright (c) 2007,派利斯电子(北京)有限公司 硬件部
//文件名称: Channelstatus.c
//摘 要: 本文件主要包含PT2060程序中间隙电压,电源电压和OK状态等的操作
//当前版本: D-1
//作 者: 佟文杰
//完成日期: 4/16/2007
//修 改 人:
//修改原因:
//修改日期:
//*******************************************************************************
#define CHANNELSTATUS_C
#include "channelstatus.h"
xdata struct Channel ChStatusModule;
//--------------------------------------------------------------
//函数名称:void SetGapLow(unsigned char uchChannel, int iGapLow)
//功 能:将间隙电压低限设置到通道模块中
//输入参数:通道号,间隙电压下限
//返 回:无
//完成日期:4/13/2007
//--------------------------------------------------------------
void SetGapLow(unsigned char uchChannel, int iGapLow)
{
ChStatusModule.iGAPLow[uchChannel - 1] = iGapLow;
}
//----------------------------------------------------------------
//函数名称:void SetGapHigh(unsigned char uchChannel, int iGapHigh)
//功 能:将间隙电压高限设置到通道模块
//输入参数:通道号,间隙电压上限
//返 回:无
//完成日期:4/13/2007
//----------------------------------------------------------------
void SetGapHigh(unsigned char uchChannel, int iGapHigh)//初始化时设置
{
ChStatusModule.iGAPHigh[uchChannel - 1] = iGapHigh;
}
//------------------------------------------------------------------
//函数名称:void SetGapVoltChannel(unsigned char uchChannel, int iGapVolt)
//功 能:将间隙电压设置到通道模块
//输入参数:通道号,间隙电压
//返 回:无
//完成日期:4/13/2007
//------------------------------------------------------------------
void SetGapVoltChannel(unsigned char uchChannel, int iGapVolt)
{
ChStatusModule.iGAPVoltage[uchChannel - 1] = iGapVolt;
}
//------------------------------------------------------------------
//函数名称:void SetEnableStatusChannel(unsigned char uchChannel,unsigned char uchEnableFlag)
//功 能:设置通道是否工作到通道模块
//输入参数:通道号,是否工作状态
//返 回:无
//完成日期:4/13/2007
//------------------------------------------------------------------
void SetEnableStatusChannel(unsigned char uchChannel,unsigned char uchEnableFlag)
{
ChStatusModule.uchEnableStatus[uchChannel - 1] = uchEnableFlag;
}
//------------------------------------------------------------------
//函数名称:void SetChTypeChannel(unsigned char uchChannel, unsigned char uchChannelType)
//功 能:将通道类型设置到通道状态模块
//输入参数:通道号,通道类型
//返 回:无
//------------------------------------------------------------------
void SetChTypeChannel(unsigned char uchChannel, unsigned char uchChannelType)
{
ChStatusModule.uchChType[uchChannel - 1] = uchChannelType;
}
//------------------------------------------------------------------
//函数名称:void JudgeChannelGapstatus(unsigned char uchChannel)
//功 能:判断通道间隙电压的状态
//输入参数:通道号
//返 回:无
//完成日期:4/13/2007
//------------------------------------------------------------------
void JudgeChannelGapstatus(unsigned char uchChannel) //乘以100和大于、小于看实际情况
{
if (ChStatusModule.uchEnableStatus[uchChannel - 1] == 1)
{
if ((ChStatusModule.iGAPVoltage[uchChannel - 1] <= ChStatusModule.iGAPHigh[uchChannel - 1])
&& (ChStatusModule.iGAPVoltage[uchChannel - 1] >= ChStatusModule.iGAPLow[uchChannel - 1]))
{
ChStatusModule.uchGapStatus[uchChannel - 1] = 0; //GAP OK
}
else if (ChStatusModule.iGAPVoltage[uchChannel - 1] > ChStatusModule.iGAPHigh[uchChannel - 1])
{
ChStatusModule.uchGapStatus[uchChannel - 1] = 2; //GAP高报警
}
else if (ChStatusModule.iGAPVoltage[uchChannel - 1] < ChStatusModule.iGAPLow[uchChannel - 1])
{
ChStatusModule.uchGapStatus[uchChannel - 1] = 1; //GAP低报警
}
}
else if (ChStatusModule.uchEnableStatus[uchChannel - 1] == 0)
{
ChStatusModule.uchGapStatus[uchChannel - 1] = 0; //当Disable掉通道后,通道状态为GAP OK
}
}
//------------------------------------------------------------------
//函数名称:void JudgeChannelOKstatus(unsigned char uchChannel)
//功 能:判断通道OK的状态
//输入参数:通道号
//返 回:无
//完成日期:4/13/2007
//------------------------------------------------------------------
void JudgeChannelOKstatus(unsigned char uchChannel)
{
if (ChStatusModule.uchGapStatus[uchChannel - 1] == 0)
{
ChStatusModule.uchOKStatus[uchChannel - 1] = 0;
}
else if (ChStatusModule.uchGapStatus[uchChannel - 1] == 1)
{
ChStatusModule.uchOKStatus[uchChannel - 1] = 1;
}
else if (ChStatusModule.uchGapStatus[uchChannel - 1] == 2)
{
ChStatusModule.uchOKStatus[uchChannel - 1] = 2;
}
}
//------------------------------------------------------------------
//函数名称:void ProcessChannelGaps(unsigned char uchChannel)
//功 能:处理通道OK状态
//输入参数:通道号
//返 回:无
//完成日期:4/13/2007
//------------------------------------------------------------------
void ProcessChannelGaps(unsigned char uchChannel)
{
static unsigned char xdata s_uchCountData = 0;
JudgeChannelGapstatus(uchChannel);
JudgeChannelOKstatus(uchChannel);
SetGapStatusMain(uchChannel, ChStatusModule.uchGapStatus[uchChannel - 1]);
if (ChStatusModule.uchChType[0] == 22)
{
SetChannelOkStatusMain(uchChannel,(ChStatusModule.uchOKStatus[0] || ChStatusModule.uchOKStatus[1]));
}
else
{
SetChannelOkStatusMain(uchChannel,ChStatusModule.uchOKStatus[uchChannel - 1]);
}
SetSystemOkStatusMain(ChStatusModule.uchOKStatus[1] || ChStatusModule.uchOKStatus[0]);
s_uchCountData++;
if (s_uchCountData >= 250)
{
JudgePowerStatus();
SetPowerStatusMain(ChStatusModule.uchPowerStatus);
s_uchCountData = 0; //不要每圈程序都执行电源检测,10圈检测电源一次
}
}
//------------------------------------------------------------------
//函数名称:void InitChannelParaVariable(void)
//功 能:初始化通道状态模块的参数
//输入参数:无
//返 回:无
//完成日期:4/13/2007
//------------------------------------------------------------------
void InitChannelParaVariable(void)
{
unsigned char xdata i;
for (i=0; i<2; i++)
{
ChStatusModule.uchOKStatus[i] = 0;
ChStatusModule.uchGapStatus[i] = 0;
}
}
//-----------------------------------------------------------------------
//函数名称:void JudgePowerStatus(void)
//功 能:测试电源的状态
//输入参数:无
//返 回:无
//完成日期:4/16/2007
//-----------------------------------------------------------------------
void JudgePowerStatus(void)
{
xdata unsigned char uchTempVariable;
ChStatusModule.uchPowerNumber++;
if (ChStatusModule.uchPowerNumber == 1)
{
uchTempVariable = HWTestSystemVoltage(0x00);
if ((uchTempVariable < VOL_CHANNEL1_H) && (uchTempVariable > VOL_CHANNEL1_L))
{
ChStatusModule.uchVol_Channel1 = 0;
}
else
{
ChStatusModule.uchVol_Channel1 = 1;
}
}
else if (ChStatusModule.uchPowerNumber == 2)
{
uchTempVariable = HWTestSystemVoltage(0x01);
if ((uchTempVariable < VOL_CHANNEL2_H) && (uchTempVariable > VOL_CHANNEL2_L))
{
ChStatusModule.uchVol_Channel2 = 0;
}
else
{
ChStatusModule.uchVol_Channel2 = 1;
}
}
else if (ChStatusModule.uchPowerNumber == 3)
{
uchTempVariable = HWTestSystemVoltage(0x02);
if ((uchTempVariable < VOL_CHANNEL3_H) && (uchTempVariable > VOL_CHANNEL3_L))
{
ChStatusModule.uchVol_Channel3 = 0;
}
else
{
ChStatusModule.uchVol_Channel3 = 1;
}
}
else if (ChStatusModule.uchPowerNumber == 4)
{
uchTempVariable = HWTestSystemVoltage(0x03);
if ((uchTempVariable < VOL_CHANNEL4_H) && (uchTempVariable > VOL_CHANNEL4_L))
{
ChStatusModule.uchVol_Channel4 = 0;
}
else
{
ChStatusModule.uchVol_Channel4 = 1;
}
}
else if (ChStatusModule.uchPowerNumber == 5)
{
uchTempVariable = HWTestSystemVoltage(0x04);
if ((uchTempVariable < VOL_CHANNEL5_H) && (uchTempVariable > VOL_CHANNEL5_L))
{
ChStatusModule.uchVol_Channel5 = 0;
}
else
{
ChStatusModule.uchVol_Channel5 = 1;
}
}
else if (ChStatusModule.uchPowerNumber == 6)
{
uchTempVariable = HWTestSystemVoltage(0x06);
if ((uchTempVariable < VOL_CHANNEL7_H) && (uchTempVariable > VOL_CHANNEL7_L))
{
ChStatusModule.uchVol_Channel7 = 0;
}
else
{
ChStatusModule.uchVol_Channel7 = 1;
}
}
else if (ChStatusModule.uchPowerNumber == 7)
{
uchTempVariable = HWTestSystemVoltage(0x07);
if ((uchTempVariable < VOL_CHANNEL8_H) && (uchTempVariable > VOL_CHANNEL8_L))
{
ChStatusModule.uchVol_Channel8 = 0;
}
else
{
ChStatusModule.uchVol_Channel8 = 1;
}
}
else
{
ChStatusModule.uchPowerNumber = 0;
}
ChStatusModule.uchVol_Channel = ChStatusModule.uchVol_Channel1 + (ChStatusModule.uchVol_Channel2 << 1) + (ChStatusModule.uchVol_Channel3 << 2) + (ChStatusModule.uchVol_Channel4 << 3)
+ (ChStatusModule.uchVol_Channel5 << 4) + (ChStatusModule.uchVol_Channel7 << 5) + (ChStatusModule.uchVol_Channel8 << 6);
ChStatusModule.uchPowerStatus = ChStatusModule.uchVol_Channel;
FeedDog();
}
//-----------------------------------------------------------------------
//函数名称:void InitChannelModulePara(void)
//功 能:初始化通道模块参数
//输入参数:无
//返 回:无
//完成日期:4/16/2007
//-----------------------------------------------------------------------
void InitChannelModulePara(void)
{
ChStatusModule.uchPowerStatus = 0;
ChStatusModule.uchPowerNumber = 0;
ChStatusModule.uchVol_Channel = 0;
ChStatusModule.uchVol_Channel1 = 0;
ChStatusModule.uchVol_Channel2 = 0;
ChStatusModule.uchVol_Channel3 = 0;
ChStatusModule.uchVol_Channel4 = 0;
ChStatusModule.uchVol_Channel5 = 0;
ChStatusModule.uchVol_Channel7 = 0;
ChStatusModule.uchVol_Channel8 = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -