#include "global.h" #if CHANG_SHENG_GEI_LI_MACHINE==1 static unsigned short cJiaLianNum = 0; unsigned char ManualDWFlg = 0; unsigned char CCJ_SingOneFlg = 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; pulse_buff = 3200; length_buff = 2990; YGearRatio = length_buff/pulse_buff; CCJ_SongZhou = 1; SetDirReverse(Y_AXIS, 0); } void CCJ_DelayAction(void) { } void CCJ_Action(void) { CCJ_StartStopAction(); CCJ_ChuiQiStep(); CCJ_StepAction(); if(CCJ_bRunning && !CCJ_STOP_IN) { 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; } if(CCJ_bYaDai) { CCJ_bYaDai = 0; CCJ_YaDai_VAVLE = ~CCJ_YaDai_VAVLE; } } void CCJ_MotorAction(void) { //DISPLAY_DATA1 = CCJ_MotorStep; //DISPLAY_DATA2 = CCJRunFlg; //DISPLAY_DATA3 = JYDCRunFlg; DISPLAY_DATA3 = CCJ_AutoStep; DISPLAY_DATA4 = CCJ_MotorStep;//GetCurSpeed(Y_AXIS); switch(CCJ_MotorStep) { case 1: if(!Y_DRV) { if(CCJ_bSingleXiChi) { CCJ_XiChi_MOTOR = 1; CCJ_MotorStep = 99; CCJ_ChuiQi_VAVLE = 1; CCJ_MotorDelay = dwTickCount + CCJ_PARAM_GLKW_TIME * 10; AxisContinueMoveAcc(Y_AXIS,CCJ_PARAM_SET_SPEED,1,CCJ_PARAM_SET_LOW_SPEED/2,CCJ_PARAM_SET_LOW_SPEED/2,30,30); } else { if(CCJ_GuoLian_IN) { AxisContinueMoveAcc(Y_AXIS,CCJ_PARAM_SET_LOW_SPEED,1,CCJ_PARAM_SET_LOW_SPEED/2,CCJ_PARAM_SET_LOW_SPEED/2,20,20); } else { AxisContinueMoveAcc(Y_AXIS,CCJ_PARAM_SET_SPEED,1,CCJ_PARAM_SET_LOW_SPEED/2,CCJ_PARAM_SET_LOW_SPEED/2,30,30); } CCJ_MotorDelay = dwTickCount + CCJ_PARAM_GLKW_TIME * 10; CCJ_MotorStep = 2; } } break; case 2: if(CCJ_GuoLian_IN) //在空位上 { AxisContinueMoveChangeSpeed(Y_AXIS,CCJ_PARAM_SET_LOW_SPEED,CCJ_PARAM_SET_LOW_SPEED/2,30,30); CCJ_MotorDelay = dwTickCount + CCJ_PARAM_DELAY_GOU_ZHEN * 10; //延时下勾针 CCJ_MotorStep = 3; } else if((dwTickCount >= CCJ_MotorDelay) && (CCJ_PARAM_GLKW_TIME >= 5) && Y_DRV) { CCJ_SetAlarmCode(CCJ_NO_KW_ALARM); } break; case 3: if(dwTickCount >= CCJ_MotorDelay) { CCJ_GouZhen_VAVLE = 1; CCJ_MotorStep = 4; CCJ_MotorDelay = dwTickCount + 600; } break; case 4: CCJ_MotorStep = 5; break; case 5: if(CCJ_GouZhen_FAST_IN) { CCJ_MotorStep = 6; CCJ_MotorDelay = dwTickCount + 2; } else if(dwTickCount >= CCJ_MotorDelay) { AxisEgmStop(Y_AXIS); CCJ_MotorStep = 10; CCJ_MotorDelay= dwTickCount + 600; } break; case 6: if(dwTickCount >= CCJ_MotorDelay) { AxisEgmStop(Y_AXIS); CCJ_MotorStep = 0; Cur_CC_Num++; } break; case 10: if(dwTickCount >= CCJ_MotorDelay) { if(!CCJ_GuoLian_IN) { CCJ_SetAlarmCode(CCJ_GOUZHEN_IN_ALARM); } else { CCJ_MotorStep = 11; AxisContinueMoveAcc(Y_AXIS,CCJ_PARAM_SET_LOW_SPEED,1,CCJ_PARAM_SET_LOW_SPEED/2,CCJ_PARAM_SET_LOW_SPEED/2,20,20); CCJ_MotorDelay= dwTickCount + CCJ_PARAM_DELAY_STOP*10; CCJ_MotorStep = 11; } } break; case 11: if(dwTickCount >= CCJ_MotorDelay) { AxisEgmStop(Y_AXIS); CCJ_SetAlarmCode(CCJ_NO_ZIPPER_ALARM); } } } void CCJ_AutoAction(void) { switch (CCJ_AutoStep) { //启动电机锁轴 case 1: CCJ_AutoDelay = dwTickCount + 220; CCJ_MotorDelay = dwTickCount; CCJ_AutoStep = 2; CCJ_SongZhou = 0; break; case 2: if (CCJ_STARTFLAG&&!CCJ_Wait_IN&&(link_DC_OVER_FLG||!JYDC_bRunning)) { if(dwTickCount >= CCJ_AutoDelay) { CCJ_MotorStep = 1; CCJ_AutoStep = 3; cJiaLianNum = 0; link_DC_OVER_FLG=0; } } break; //电机拖带完成 case 3: if((CCJ_MotorStep == 0) && (dwTickCount >= CCJ_AutoDelay)) { if(ManualDWFlg) { CCJ_AutoStep = 0; ManualDWFlg = 0; CCJ_bRunning = 0; } else { CCJ_YaDai_VAVLE = 1; CCJ_JiaLian_VAVLE = 1; // CCJ_AutoDelay = dwTickCount + CCJ_ERRORTIME; CCJ_AutoStep = 40; } //Link_TB_Set=0; } break; case 40: if(!CCJ_JiaLian_ORIGIN_IN) { CCJ_TLJLDELAY = dwTickCount + CCJ_PARAM_JLDW_TIME*10; CCJ_AutoStep = 4; } break; case 4: if(CCJ_JiaLian_IN ||dwTickCount >= CCJ_TLJLDELAY ) { if(CCJ_PARAM_YaDai_Enable) CCJ_GouZhen_VAVLE = 0; 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_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 = 60; CCJ_AutoDelay = dwTickCount + 5000; CCJ_AutoDelay1 = dwTickCount + CCJ_PARAM_JIALIAN_HOLD_TIME * 10; } break; case 60: if(CCJ_PARAM_TUILIAN_TIMES > 0) { if(dwTickCount >= CCJ_AutoDelay1) { CCJ_JiaLian_VAVLE = 0; } } if(!CCJ_TuiLian_ORIGIN_IN) { CCJ_TLJLDELAY = dwTickCount + CCJ_PARAM_TLDW_TIME*10; CCJ_AutoStep = 6; } break; case 6: if(CCJ_PARAM_TUILIAN_TIMES > 0) { if(dwTickCount >= CCJ_AutoDelay1) { CCJ_JiaLian_VAVLE = 0; } } if(CCJ_TuiLian_IN ||dwTickCount >= CCJ_TLJLDELAY) { CCJ_AutoStep = 7; CCJ_JiaLian_VAVLE = 0; CCJ_AutoDelay = dwTickCount + (unsigned long)10 * 7;//CCJ_PARAM_TUILIAN_ALARM_TIME; CCJ_AutoDelay1 = dwTickCount + 100 * 10; if(CCJ_PARAM_TUILIAN_TIMES == 0) { CCJ_TuiLian_VAVLE = 0; CCJ_GouZhen_VAVLE = 0; CCJ_ChuiQi_VAVLE = 0; CCJ_YaDai_VAVLE = 0; CCJ_AutoStep = 9; } } else if(dwTickCount >= CCJ_AutoDelay) //推止不到位 { CCJ_AutoStep = 0; CCJ_SetAlarmCode(CCJ_TUICHI_ALARM); } break; case 7: if(CCJ_JiaLian_ORIGIN_IN && !CCJ_JiaLian_IN ) { if((dwTickCount >= CCJ_AutoDelay)) { if(CCJ_PARAM_TUILIAN_TIMES >= 1) { CCJ_JiaLian_VAVLE = 1; } CCJ_AutoStep = 80; CCJ_AutoDelay1 = dwTickCount + 100 * 10; } } else { if(dwTickCount >= CCJ_AutoDelay1) { CCJ_AutoStep = 0; if(!CCJ_JiaLian_ORIGIN_IN) CCJ_SetAlarmCode(CCJ_JIALIAN_ORIGIN_ALARM); } else { CCJ_AutoDelay = dwTickCount + (unsigned long)10 * 4; } } break; case 80: if(!CCJ_JiaLian_ORIGIN_IN) { CCJ_TLJLDELAY = dwTickCount + CCJ_PARAM_JLDW_TIME*10; CCJ_AutoStep = 8; } break; case 8: if(CCJ_JiaLian_VAVLE && !CCJ_JiaLian_ORIGIN_IN && (CCJ_JiaLian_IN||dwTickCount >= CCJ_TLJLDELAY)) { CCJ_AutoDelay = dwTickCount + (unsigned long)10 * 5;//CCJ_PARAM_DELAY_TUILIAN; CCJ_AutoStep = 9; CCJ_AutoDelay1 = dwTickCount + 100 * 10; } else if(dwTickCount >= CCJ_AutoDelay1) { CCJ_AutoStep = 0; if(CCJ_JiaLian_ORIGIN_IN) CCJ_SetAlarmCode(CCJ_JIALIAN_ORIGIN_ALARM); else if(!CCJ_JiaLian_IN) { CCJ_SetAlarmCode(CCJ_JIALIAN_ALARM); } } break; case 9: if((dwTickCount >= CCJ_AutoDelay) && CCJ_TuiLian_VAVLE) { CCJ_TuiLian_VAVLE = 0; CCJ_AutoDelay1 = dwTickCount + 100 * 10; } else if(!CCJ_TuiLian_VAVLE) { if(CCJ_TuiLian_ORIGIN_IN && !CCJ_TuiLian_IN) { CCJ_JiaLian_VAVLE = 0; CCJ_GouZhen_VAVLE = 0; CCJ_ChuiQi_VAVLE = 0; CCJ_YaDai_VAVLE = 0; } else if(dwTickCount >= CCJ_AutoDelay1) { CCJ_AutoStep = 0; if(CCJ_TuiLian_ORIGIN_IN) CCJ_SetAlarmCode(CCJ_TUIJIA_ORIGIN_ALARM); else if(!CCJ_TuiLian_IN) { CCJ_SetAlarmCode(CCJ_TUICHI_ALARM); } } 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 = 10; } } break; case 10: if (dwTickCount >= CCJ_AutoDelay) { if(CCJ_SingOneFlg) { CCJ_bRunning = 0; CCJ_SingOneFlg=0; CCJ_AutoStep=0; } else { CCJ_AutoStep = 2; Link_TB_Set=1; } } break; default: break; } } void CCJ_StartStopAction(void) { //启动 if ((CCJ_bStart || CCJ_START_IN_UP || CCJ_bTest) && (CCJ_bRunning == 0 )&& !CCJ_STOP_IN) { CCJ_bStart = 0; CCJ_SingOneFlg = 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; //SetAlarmCode(CCJ_ALARM_ADDR,0); CCJ_bAlarmStop = 0; Link_TB_Set=1; CCJ_SingOneFlg = 0; } } if (CCJ_STOP_IN_UP || CCJ_bStop) { if(CCJ_bRunning&&(CCJ_AutoStep==2&&CCJ_MotorStep>=5||CCJ_MotorStep==0&&CCJ_AutoStep>=3)) { CCJ_SingOneFlg = 1; } else { CCJ_GouZhen_VAVLE = 0; CCJ_JiaLian_VAVLE = 0; CCJ_TuiLian_VAVLE = 0; CCJ_ChuiQi_VAVLE = 0; SetAlarmCode(CCJ_ALARM_ADDR,0); CCJ_YaDai_VAVLE = 0; CCJ_bStop = 0; AxisEgmStop(Y_AXIS); // AxisDecStop(Y_AXIS); CCJ_bRunning = 0; CCJ_AutoStep = 0; CCJ_MotorStep = 0; CCJ_SongZhou = 1; CCJ_XiChi_MOTOR = 0; CCJ_MaoShua_MOTOR = 0; CCJ_SingOneFlg = 0; } } if(CCJ_bAlarmStop) { CCJ_bAlarmStop = 0; AxisEgmStop(Y_AXIS); // AxisDecStop(Y_AXIS); CCJ_bRunning = 0; CCJ_AutoStep = 0; CCJ_XiChi_MOTOR = 0; CCJ_MotorStep = 0; if(Link_TB_FLG)SingOneFlg=1; } } void CCJ_StepAction(void) { //电机控制 CCJ_MotorAction(); if(CCJ_bRunning && !CCJ_STOP_IN) { CCJ_AutoAction(); } else if (!CCJ_STOP_IN && CCJ_bRunning == 0) { CCJ_ManualAction(); } } #endif