📄 stecx000.c
字号:
}while((SysInf.Flag.bSvPrmAccess == ON) && (MainSysAlmC != SYSALM6));
SysInf.Flag.bSvPrmReady = OFF;
SVQueueCode(0x33); /* Servo Parameter Ready */
do{
SVCom();
}while((SysInf.Flag.bSvPrmReady == OFF) && (MainSysAlmC != SYSALM6));
}
}
}
MaxMinCalc(); /* 億僀儞僩愝掕斖埻嶼弌 */
DispCheck(); /* 億僀儞僩乛嵟戝嵟彫巊梡僠僃僢僋 */
SysInf.Flag.bSeqEnable = ON;
SysInf.Flag.bSeqRun = ON;
}
SeqInit(); /* 僔乕働儞僗張棟弶婜壔 */
if(SysInf.Flag.bAxisFlag == ON && MainSysAlmC == 0 && SysInf.Flag.bAxisAlarm == OFF){
SvSw = 1; /* 僒乕儃ON/OFF SW OFF -> ON */
SVQueueCode(0x17); /* 僒乕儃ON */
SVCom();
SysInf.Flag.bServoStop = OFF; /* Servo Amp STOP OFF */
}
}
while(SysInf.Flag.bDownloadMode == OFF && MainSysAlmC != 1){ /* 捠忢儊僀儞儖乕僾 */
// if(SysInf.Flag.bLedMoniReq == OFF)
// P1.DR.BIT.B5 ^= 1; /* 儌僯僞俴俤俢侾揰柵 */
SeqMain(); /* 僔乕働儞僗張棟 */
E2WriteCheck(); /* EEPROM彂崬傒僠僃僢僋 */
/* 僷儔儊乕僞帺摦峏怴僠僃僢僋 */
if (SysInf.Flag.bUpdate == ON){
if (!Timer[TMUPDATE])
E2CondUpdate();
}
else if ((SysInf.Flag.bSeqRun == ON) && ((SysInf.Flag.bE2CondNo == ON) || (SysInf.Flag.bE2CondFlag == ON))){
/* 抜庢姺斣崋丄抜庢姺巊梡僼儔僌峏怴 */
if (E2SysWrite() == 0)
SysInf.Flag.bE2CondNo = SysInf.Flag.bE2CondFlag = OFF;
// E2CondCommRead((unsigned char *)&CondComm);
}
if (SysInf.Flag.bPndAlarm == ON)
Alarm(PenSysAlmC);
AlarmReset();
}
while(SysInf.Flag.bDownloadMode == ON || MainSysAlmC == 1){ /* 僟僂儞儘乕僪儌乕僪乮俢俬俹俽倂侾亅俉俷俶乯 */
ComAns();
if(SysInf.Flag.bFlashProg == OFF) /* 儊僀儞俠俹倀撪憼俥亅俼俷俵彂崬帪埲奜 */
PdCom();
}
while(1);
}
/*--------------------------------------------------------------------*
* MODULE : AlarmReset
* ABSTRACT : System Alarm & Axis Alarm Reset
* FUNCTION :
* NOTE :
* RETURN : void
* CREATE : 03.03 yoshi
* UPDATE : 2003.05.06 S.Izumi
*--------------------------------------------------------------------*/
void AlarmReset(void)
{
if (_SMPALM == ON){ /* system alarm */
switch (MainSysAlmC){
case SYSALM4: /* No.4 EEPROM R/W error */
if (_SDKEY == 5){ /* pendant "Reset" key push */
SysInf.Flag.bSysAlmReq = OFF;
MainSysAlmC = 0;
SysInf.Flag.bLedMoniReq = OFF;
SysInf.Flag.bMainAlarm = OFF;
}
break;
default:
break;
}
}
if (_SDTALMC <= 100){ /* Servo Alarm */
if (_SMSVALM == OFF){
SysInf.Flag.bLedMoniReq = OFF;
_SDTALMC = 0;
}
}
if (SysInf.Flag.bAxisAlarm == ON){ /* axis alarm */
switch (_SDTALMC + 50){
case AXISALM54: /* No.104 point data Un-setup */
case AXISALM57: /* No.107 point setting range over */
if (_SDKEY == 5){ /* pendant "Reset" key push */
_SDTALMC = 0;
SysInf.Flag.bAxisAlarm = OFF;
SysInf.Flag.bLedMoniReq = OFF;
SysInf.Flag.bServoStopReq = OFF;
SysInf.Flag.bServoStop = OFF; /* Servo Amp STOP OFF */
}
break;
case AXISALM56: /* No.106 over-run limit on */
if (_SDKEY == 5){ /* pendant "Reset" key push */
_SDTALMC = 0;
SysInf.Flag.bAxisAlarm = OFF;
SysInf.Flag.bLedMoniReq = OFF;
SysInf.Flag.bServoStopReq = OFF;
SysInf.Flag.bServoStop = OFF; /* Servo Amp STOP OFF */
SVQueueCode(0x00); /* 傾儔乕儉儕僙僢僩柦椷憲怣 */
}
break;
case AXISALM55: /* No.105 eeprom dara broken */
/* 弶婜壔憖嶌廔椆偱僋儕傾 */
break;
default:
break;
}
}
}
/*--------------------------------------------------------------------*
* MODULE : Alarm
* ABSTRACT : System & Axis Alarm
* FUNCTION :
* NOTE :
* RETURN : void
* CREATE : 03.03 yoshi
* UPDATE :
*--------------------------------------------------------------------*/
void Alarm(unsigned short code)
{
unsigned char cpu_stop = 0;
switch(code){
case SYSALM1: /* ALM_No.1 sum check of motion-parameter inside main-cpu */
{
unsigned short i, j;
unsigned short sum; /* 寁嶼俽倀俵抣 */
unsigned short Sum_ServoP; /* 撪憼俥亅俼俷俵偵彂偒崬傑傟偰偄傞俽倀俵 */
unsigned char *p = (unsigned char *)MachineDef;
for (j = 0; j < 4; j++) {
sum = 0; /* 寁嶼俽倀俵抣弶婜壔 */
for (i = 0; i < (sizeof(MachineDef[j]) - 2); i++, p++) { /* 婡夿僷儔儊乕僞椞堟亅俀僶僀僩暘乮俽倀俵椞堟偼彍偔乯 */
sum += *p; /* 俽倀俵寁嶼 */
}
Sum_ServoP = (*p++ << 8) + (*p++); /* 撪憼俥亅俼俷俵偵彂偒崬傑傟偰偄傞俽倀俵撉傒弌偟乮俀僶僀僩乯 */
if (sum != Sum_ServoP) {
MainSysAlmC = SYSALM1; /* 僔僗僥儉傾儔乕儉僐乕僪愝掕 */
SysInf.Flag.bSysAlmReq = ON;
SysInf.Flag.bLedMoniReq = ON;
SysInf.Flag.bServoStopReq = ON;
cpu_stop = ON;
}
}
}
break;
case SYSALM2: /* ALM_No.2 ladder oder error */
MainSysAlmC = SYSALM2; /* 僔僗僥儉傾儔乕儉僐乕僪愝掕 */
SysInf.Flag.bSeqEnable = OFF;
SysInf.Flag.bSysAlmReq = ON; /* sys.alarm flag set */
SysInf.Flag.bLedMoniReq = ON;
SysInf.Flag.bServoStopReq = ON;
break;
case SYSALM3: /* pendant P.C.B FROM sum error */
MainSysAlmC = SYSALM3; /* 僔僗僥儉傾儔乕儉僐乕僪愝掕 */
SysInf.Flag.bSysAlmReq = ON; /* sys.alarm flag set */
SysInf.Flag.bLedMoniReq = ON;
break;
case SYSALM4: /* EEPROM R/W error */
MainSysAlmC = SYSALM4; /* 僔僗僥儉傾儔乕儉僐乕僪愝掕 */
SysInf.Flag.bSysAlmReq = ON; /* sys.alarm flag set */
SysInf.Flag.bLedMoniReq = ON;
Mem_DPERR = SeqData.B.SMI[39 / 16].b.b7 = ON; /* 抜庢姺read error "DPERR" */
break;
case SYSALM5: /* communication error 1 main&pendant */
MainSysAlmC = SYSALM5; /* sys.alarm code set */
SysInf.Flag.bSysAlmReq = ON; /* sys.alarm flag set */
SysInf.Flag.bServoStopReq = ON;
SysInf.Flag.bServoStop = ON; /* Servo Amp STOP ON */
SysInf.Flag.bLedMoniReq = ON;
break;
case SYSALM6: /* communication error 2 main&servoamp */
MainSysAlmC = SYSALM6; /* 僔僗僥儉傾儔乕儉僐乕僪愝掕 */
SysInf.Flag.bSysAlmReq = ON; /* sys.alarm flag set */
SysInf.Flag.bServoStopReq = ON;
SysInf.Flag.bLedMoniReq = ON;
SCI2.SCR.BIT.TE = 0; /* SCI2 憲怣摦嶌嬛巭 */
SCI2.SCR.BIT.RE = 0; /* 庴怣嫋壜 */
break;
case SYSALM7: /* moment blackout error */
MainSysAlmC = SYSALM7; /* 僔僗僥儉傾儔乕儉僐乕僪愝掕 */
SysInf.Flag.bSysAlmReq = ON; /* sys.alarm flag set */
SysInf.Flag.bLedMoniReq = ON;
SysInf.Flag.bServoStopReq = ON;
break;
case SYSALM8:
MainSysAlmC = SYSALM8; /* 僔僗僥儉傾儔乕儉僐乕僪愝掕 */
SysInf.Flag.bSysAlmReq = ON; /* sys.alarm flag set */
SysInf.Flag.bLedMoniReq = ON;
break;
case SYSALM9: // 2004.09.28 Added by Sun
MainSysAlmC = SYSALM9; /* 僔僗僥儉傾儔乕儉僐乕僪愝掕 */
SysInf.Flag.bSysAlmReq = ON; /* sys.alarm flag set */
SysInf.Flag.bLedMoniReq = ON;
break;
case SYSALM10: /* */
MainSysAlmC = SYSALM10; /* 僔僗僥儉傾儔乕儉僐乕僪愝掕 */
SysInf.Flag.bSysAlmReq = ON; /* sys.alarm flag set */
SysInf.Flag.bLedMoniReq = ON;
break;
case AXISALM51:
case AXISALM52:
case AXISALM53:
case AXISALM55:
SysInf.Flag.bAxisAlarm = ON;
SysInf.Flag.bLedMoniReq = ON;
SysInf.Flag.bServoStop = ON; /* Servo Amp STOP ON */
SvSw = 0; /* 僒乕儃ON/OFF SW ON -> OFF */
SVQueueCode(0x17); /* 僒乕儃OFF */
SVCom();
_SDTALMC = code - 50;
break;
case AXISALM54:
case AXISALM56:
case AXISALM57:
SysInf.Flag.bAxisAlarm = ON;
SysInf.Flag.bLedMoniReq = ON;
SysInf.TRUN = 0;
SysInf.Flag.bMoveReq = OFF;
SysInf.Flag.bServoStopReq = ON;
CurPoint = 0;
DirectivePulse = 0;
_SDTALMC = code - 50;
break;
default:
if (code >= 51 && code <= 150) /* Servo Alarm Code */
{
SysInf.Flag.bAxisAlarm = ON;
SysInf.Flag.bLedMoniReq = ON;
SysInf.Flag.bServoStop = ON; /* Servo Amp STOP ON */
// SvSw = 0; /* 僒乕儃ON/OFF SW ON -> OFF */
// SVQueueCode(0x17); /* 僒乕儃OFF */
// SVCom();
_SDTALMC = code - 50;
}
break;
}
if(SysInf.Flag.bServoStopReq == ON){
SysInf.Flag.bServoStop = ON; /* Servo Amp STOP ON */
SVQueueCode(0x14); /* 尭懍掆巭 */
}
if(SysInf.Flag.bSysAlmReq == ON){ /* system alarm flag set reuest */
SysInf.Flag.bMainAlarm = ON; /* sys.alarm flag set */
}
if(cpu_stop == 0){
// set_imask_ccr(1);
// set_imask_exr(7);
// sleep();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -