#include "global.h" #if FU_JIAN_MACHINE static unsigned short cJiaLianNum = 0; unsigned char ManualDWFlg = 0; void CCJ_ManualAction(void); void CCJ_MotorAction(void); void CCJ_ChuCiAction(void); void CCJ_AutoAction(void); void CCJ_StepAction(void); void CCJ_StartStopAction(void); void CCJ_ChuiQiStep(void); void CCJ_SetAlarmCode(unsigned alarm_code) { SetAlarmCode(CCJ_ALARM_ADDR,alarm_code); CCJ_bAlarmStop = 1; } void CCJ_ChuiQiStep(void) { if(CCJ_ChuiQi_VAVLE && !CCJ_bRunning) { if(CCJ_ChuiQiDelay < dwTickCount)CCJ_ChuiQi_VAVLE = 0; } } void CCJ_InitAction(void) { // float pulse_buff,length_buff; // CCJ_Param = (CCJ_ParamStrct *)&user_datas[80]; /* pulse_buff = CCJ_Param->MotorCyclePulse; length_buff = CCJ_Param->MotorCyclePulse; YGearRatio = length_buff/pulse_buff; SetAccTime(Y_AXIS,CCJ_Param->MotorAccTime); SetDecTime(Y_AXIS,CCJ_Param->MotorDecTime);*/ CCJ_SongZhou = 1; } void CCJ_DelayAction(void) { } void CCJ_Action(void) { CCJ_StartStopAction(); CCJ_ChuiQiStep(); CCJ_StepAction(); if(CCJ_bRunning && !STOP_IN) { CCJ_AutoAction(); if(!CCJ_bSingleXiChi) { if(CCJ_PARAM_XICHI_ENABLE)CCJ_XiChi_MOTOR = 1; else CCJ_XiChi_MOTOR = 0; } if(CCJ_PARAM_MAOSHUA_ENABLE)CCJ_MaoShua_MOTOR = 1; else CCJ_MaoShua_MOTOR = 0; } } void CCJ_ManualAction(void) { //手动勾针 if (CCJ_bManGouZhen) { CCJ_bManGouZhen = 0; CCJ_GouZhen_VAVLE = ~CCJ_GouZhen_VAVLE; /* if(CCJ_GouZhen_VAVLE) { SetDir(X_AXIS, 1); } else { SetDir(X_AXIS, 0); }*/ } //手动夹链 if(CCJ_bManJiaLian) { CCJ_bManJiaLian = 0; CCJ_JiaLian_VAVLE = ~CCJ_JiaLian_VAVLE; /* if(CCJ_JiaLian_VAVLE) { SetDir(Y_AXIS, 1); Y15 = 1; } else { SetDir(Y_AXIS, 0); Y15 = 0; }*/ } //手动推链 if (CCJ_bManTuiLian) { CCJ_bManTuiLian = 0; CCJ_TuiLian_VAVLE = ~CCJ_TuiLian_VAVLE; } if(CCJ_bMaoShuaMotor) { CCJ_bMaoShuaMotor = 0; CCJ_MaoShua_MOTOR = ~CCJ_MaoShua_MOTOR; } if(CCJ_bManXiChi) { CCJ_bManXiChi = 0; CCJ_XiChi_MOTOR =~CCJ_XiChi_MOTOR; } if(CCJ_bSongZhou) { CCJ_bSongZhou = 0; CCJ_SongZhou = ~CCJ_SongZhou; } if(CCJ_bChuiQi) { CCJ_bChuiQi = 0; CCJ_ChuiQi = 1; CCJ_ChuiQiDelay = CCJ_PARAM_CHUI_QI_TIME * 10 + dwTickCount; } } void CCJ_MotorAction(void) { DISPLAY_DATA1 = CCJ_MotorStep; DISPLAY_DATA2 = CCJRunFlg; DISPLAY_DATA3 = JYDCRunFlg; DISPLAY_DATA4 = CCJ_AutoStep; if((CCJ_MotorStep == 1) && (CCJRunFlg == 1) && !Y_DRV) { if(CCJ_bSingleXiChi) { CCJ_XiChi_MOTOR = 1; CCJ_MotorStep = 99; CCJ_ChuiQi_VAVLE = 1; CCJ_MotorDelay = dwTickCount + CCJ_PARAM_NO_ZIPPER_TIME * 10; AxisContinueMove(Y_AXIS,CCJ_PARAM_SET_SPEED,0); } else { if(CCJ_GuoLian_IN) { AxisContinueMove(Y_AXIS,CCJ_PARAM_SET_SPEED,0); } else { AxisContinueMove(Y_AXIS,CCJ_PARAM_SET_LOW_SPEED,0); } CCJ_MotorDelay = dwTickCount + CCJ_PARAM_NO_ZIPPER_TIME * 10; CCJ_MotorStep = 2; } } else if(CCJ_MotorStep == 2) { if(CCJ_GuoLian_IN_DW) { AxisChangeSpeed(Y_AXIS,CCJ_PARAM_SET_LOW_SPEED); CCJ_GouZhen_VAVLE = 1; CCJ_MotorDelay = dwTickCount + CCJ_PARAM_DELAY_GOU_ZHEN * 10; //延时下勾针 CCJ_MotorStep = 3; } else if((dwTickCount >= CCJ_MotorDelay) && (CCJ_PARAM_NO_ZIPPER_TIME >= 5) && Y_DRV) { CCJ_SetAlarmCode(CCJ_NO_ZIPPER_ALARM); } else { if(CCJ_ChuDaiStop_IN) { CCJ_SetAlarmCode(CCJ_START_ALARM); CCJ_bStop = 1; } } } else if((CCJ_MotorStep == 3) && (dwTickCount >= CCJ_MotorDelay)) { // if(CCJ_GuoLian_IN_DW) { CCJ_MotorStep = 4; CCJ_MotorDelay = dwTickCount + 4000; } } else if(CCJ_MotorStep == 4) { /* if(CCJ_GuoLian_IN) { CCJ_MotorStep = 5; CCJ_MotorDelay = dwTickCount + 4000; } else if(dwTickCount >= CCJ_MotorDelay) { CCJ_SetAlarmCode(CCJ_NO_ZIPPER_ALARM); CCJ_bStop = 1; } */ CCJ_MotorStep = 5; } else if(CCJ_MotorStep == 5) { if(CCJ_GouZhen_FAST_IN) { AxisEgmStop(Y_AXIS); CCJ_MotorStep = 0; CCJ_MotorDelay = dwTickCount; } } else if(CCJ_MotorStep == 99) { if(CCJRunFlg) { } else { AxisDecStop(Y_AXIS); CCJ_MotorStep = 1; } } } void CCJ_AutoAction(void) { unsigned long ch; switch (CCJ_AutoStep) { //启动电机锁轴 case 1: CCJ_AutoDelay = dwTickCount + 220; CCJ_MotorDelay = dwTickCount; CCJ_AutoStep = 2; CCJ_SongZhou = 0; break; case 2: if(dwTickCount >= CCJ_AutoDelay) { CCJ_MotorStep = 1; CCJ_AutoStep = 3; cJiaLianNum = 0; } break; //电机拖带完成 case 3: if((CCJ_MotorStep == 0) && (dwTickCount >= CCJ_AutoDelay)) { if(ManualDWFlg) { CCJ_AutoStep = 0; ManualDWFlg = 0; CCJ_bRunning = 0; } else { CCJ_JiaLian_VAVLE = 1; // CCJ_AutoDelay = dwTickCount + CCJ_ERRORTIME; CCJ_AutoStep = 4; } } break; case 4: if(CCJ_JiaLian_IN && !CCJ_JiaLian_ORIGIN_IN) { CCJ_AutoStep = 5; CCJ_AutoDelay = dwTickCount + (unsigned long)10 * CCJ_PARAM_DELAY_TUILIAN; } else if(dwTickCount >= CCJ_AutoDelay) //夹链不到位 { if(++cJiaLianNum >= CCJ_PARAM_JIALIAN_TIMES) { CCJ_AutoStep = 0; CCJ_bStop = 1; CCJ_SetAlarmCode(CCJ_JIALIAN_ALARM); } else { CCJ_JiaLian_VAVLE = 0; CCJ_AutoDelay = dwTickCount + (unsigned long)30 * 10; CCJ_AutoStep = 3; } } break; case 5: if(dwTickCount >= CCJ_AutoDelay) { CCJ_TuiLian_VAVLE = 1; CCJ_ChuiQi_VAVLE = 1; CCJ_AutoStep = 6; CCJ_AutoDelay = dwTickCount + CCJ_ERRORTIME+1500; cDelayTime3 = dwTickCount + CCJ_PARAM_JIALIAN_HOLD_TIME * 10; } break; case 6: if(CCJ_PARAM_TUILIAN_TIMES == 1) { if(dwTickCount >= cDelayTime3) { CCJ_JiaLian_VAVLE = 0; } } if(CCJ_TuiLian_IN && !CCJ_TuiLian_ORIGIN_IN) { CCJ_AutoStep = 7; CCJ_JiaLian_VAVLE = 0; CCJ_AutoDelay = dwTickCount + (unsigned long)10 * CCJ_PARAM_TUILIAN_ALARM_TIME; if(CCJ_PARAM_TUILIAN_TIMES == 0) { CCJ_TuiLian_VAVLE = 0; CCJ_GouZhen_VAVLE = 0; CCJ_ChuiQi_VAVLE = 0; CCJ_AutoStep = 8; } } else if(dwTickCount >= CCJ_AutoDelay) //推止不到位 { CCJ_AutoStep = 0; CCJ_bStop = 1; CCJ_SetAlarmCode(CCJ_TUICHI_ALARM); } break; case 7: if(CCJ_JiaLian_ORIGIN_IN && !CCJ_JiaLian_IN && CCJ_TuiLian_IN && (dwTickCount >= CCJ_AutoDelay)) { if(CCJ_PARAM_TUILIAN_TIMES == 1) CCJ_JiaLian_VAVLE = 1; } if(CCJ_JiaLian_VAVLE && !CCJ_JiaLian_ORIGIN_IN && CCJ_JiaLian_IN) { CCJ_AutoDelay = dwTickCount + (unsigned long)10 * CCJ_PARAM_DELAY_TUILIAN; CCJ_AutoStep = 8; } break; case 8: if(dwTickCount >= CCJ_AutoDelay) { CCJ_TuiLian_VAVLE = 0; } if(CCJ_TuiLian_ORIGIN_IN && !CCJ_TuiLian_IN) { CCJ_JiaLian_VAVLE = 0; CCJ_GouZhen_VAVLE = 0; CCJ_ChuiQi_VAVLE = 0; } if(!CCJ_JiaLian_VAVLE && !CCJ_JiaLian_IN && CCJ_JiaLian_ORIGIN_IN && !CCJ_GouZhen_IN) { CCJ_AutoDelay = dwTickCount + (unsigned long)10 * CCJ_PARAM_CYCLE_TIME; CCJ_AutoStep = 9; } break; case 9: if(CCJRunFlg == 1) { if (dwTickCount >= CCJ_AutoDelay) { if(CCJ_KaDai_IN) { CCJ_bRunning = 0; CCJ_bStop = 1; } else CCJ_AutoStep = 2; // CalProSP(78); // AddToTal(80); // if((GetTotal(CCJ_TOTAL_ADDR) >= GetTotal(CCJ_SET_TOTAL_ADDR)) && (GetTotal(CCJ_SET_TOTAL_ADDR) != 0)) { // CCJ_bStop = 1; } } } break; default: break; } } void CCJ_StartStopAction(void) { //启动 if ((CCJ_bStart || START_IN_UP || CCJ_bTest) && CCJ_bRunning == 0 && !STOP_IN) { CCJ_bStart = 0; if(CCJ_bTest)ManualDWFlg = 1; CCJ_bTest = 0; if(CCJ_GouZhen_IN)CCJ_SetAlarmCode(CCJ_GOUZHEN_IN_ALARM); else if(!CCJ_JiaLian_ORIGIN_IN)CCJ_SetAlarmCode(CCJ_JIALIAN_ORIGIN_ALARM); else if(!CCJ_TuiLian_ORIGIN_IN)CCJ_SetAlarmCode(CCJ_TUIJIA_ORIGIN_ALARM); else { CCJ_bRunning = 1; CCJ_AutoStep = 1; } } if (STOP_IN_UP || CCJ_bStop || CCJ_bManStop) { if(STOP_IN_UP || CCJ_bManStop) { CCJ_GouZhen_VAVLE = 0; CCJ_JiaLian_VAVLE = 0; CCJ_TuiLian_VAVLE = 0; CCJ_ChuiQi_VAVLE = 0; CCJ_SetAlarmCode(CCJ_NO_ALARM); } CCJ_bManStop = 0; CCJ_bStop = 0; AxisDecStop(Y_AXIS); CCJ_bRunning = 0; CCJ_AutoStep = 0; CCJ_MotorStep = 0; CCJ_SongZhou = 1; CCJ_XiChi_MOTOR = 0; CCJ_MaoShua_MOTOR = 0; } if(CCJ_bAlarmStop) { CCJ_bAlarmStop = 0; AxisDecStop(Y_AXIS); CCJ_bRunning = 0; CCJ_AutoStep = 0; } } void CCJ_StepAction(void) { unsigned char i; //电机控制 CCJ_MotorAction(); if(CCJ_bRunning && !STOP_IN) { CCJ_AutoAction(); } else if (!STOP_IN && CCJ_bRunning == 0) { CCJ_ManualAction(); } } #endif