#include "global.h" #include "Action.h" byte_bits_t cRunState,cRunState1,cRunState2,cRunState3,cRunState4,cRunState5,cRunState6,cRunState7; byte_bits_t cTimeState; unsigned long cMachineType; unsigned long cScreenEnable; unsigned long cWifiEnable; unsigned short cSetPulseType; unsigned char AllRunFlg = 0; unsigned char JYDCRunFlg = 0,CCJRunFlg = 0; unsigned char LockMachineFlg = 0; unsigned char Y05Flg =0; unsigned char Y06Flg =0; unsigned char Y04Flg =0; unsigned char Y07Flg =0; static unsigned short old_machine_type; static unsigned short old_screen_type; static unsigned short old_wifi_type; //动作步就量 unsigned short cStepMByte,cStepMByte1,cStepMByte2,cStepMByte3,cStepMByte4,cStepMByte5, cStepMByte6,cStepMByte7,cStepMByte8,cStepMByte9,cStepMByte10,cStepMByte11,cStepMByte12, cStepMByte13,cStepMByte14,cStepMByte15,cStepMByte16,cStepMByte17,cStepMByte18,cStepMByte19, cStepMByte20,cStepMByte21,cStepMByte22,cStepMByte23,cStepMByte24,cStepMByte25,cStepMByte26; //定时器 unsigned long cDelayTime1,cDelayTime2,cDelayTime3,cDelayTime4,cDelayTime5,cDelayTime6, cDelayTime7,cDelayTime8,cDelayTime9,cDelayTime10,cDelayTime11,cDelayTime12,cDelayTime13,cDelayTime14, cDelayTime15,cDelayTime16,cDelayTime17,cDelayTime18,cDelayTime19,cDelayTime20,cDelayTime21,cDelayTime22, cDelayTime23,cDelayTime24,cDelayTime25,cDelayTime26,cDelayTime27,cDelayTime28,cDelayTime29,cDelayTime30, cDelayTime31,cDelayTime32,cDelayTime33,cDelayTime34,cDelayTime35; //8位变量 unsigned char cCharBuff1,cCharBuff2,cCharBuff3,cCharBuff4,cCharBuff5,cCharBuff6,cCharBuff7,cCharBuff8, cCharBuff9,cCharBuff10,cCharBuff11,cCharBuff12,cCharBuff13,cCharBuff14,cCharBuff15, cCharBuff16,cCharBuff17,cCharBuff18,cCharBuff19,cCharBuff20,cCharBuff21,cCharBuff22, cCharBuff23,cCharBuff24,cCharBuff25,cCharBuff26,cCharBuff27,cCharBuff28,cCharBuff29, cCharBuff30,cCharBuff31,cCharBuff32,cCharBuff33,cCharBuff34,cCharBuff35,cCharBuff36, cCharBuff37,cCharBuff38,cCharBuff39,cCharBuff40,cCharBuff41,cCharBuff41,cCharBuff42, cCharBuff43,cCharBuff44,cCharBuff45,cCharBuff46,cCharBuff47,cCharBuff48,cCharBuff49, cCharBuff50,cCharBuff51,cCharBuff52,cCharBuff53,cCharBuff54,cCharBuff55,cCharBuff56, cCharBuff57,cCharBuff58,cCharBuff59,cCharBuff60; //16位变量 unsigned short cUShort16Buff1,cUShort16Buff2,cUShort16Buff3,cUShort16Buff4,cUShort16Buff5,cUShort16Buff6,cUShort16Buff7, cUShort16Buff8,cUShort16Buff9,cUShort16Buff10,cUShort16Buff11,cUShort16Buff12,cUShort16Buff13,cUShort16Buff14, cUShort16Buff15,cUShort16Buff16,cUShort16Buff17,cUShort16Buff18,cUShort16Buff18,cUShort16Buff19,cUShort16Buff20, cUShort16Buff20,cUShort16Buff21,cUShort16Buff22,cUShort16Buff23,cUShort16Buff24,cUShort16Buff25,cUShort16Buff26, cUShort16Buff27,cUShort16Buff28,cUShort16Buff29,cUShort16Buff30,cUShort16Buff31,cUShort16Buff32,cUShort16Buff33, cUShort16Buff34,cUShort16Buff35,cUShort16Buff36,cUShort16Buff37,cUShort16Buff38,cUShort16Buff39,cUShort16Buff40; //有符号变量 //32位变量 unsigned long cUDword32Buff1,cUDword32Buff2,cUDword32Buff3,cUDword32Buff4,cUDword32Buff5,cUDword32Buff6,cUDword32Buff7, cUDword32Buff8,cUDword32Buff9,cUDword32Buff10,cUDword32Buff11,cUDword32Buff12,cUDword32Buff13, cUDword32Buff14,cUDword32Buff15; //有符号变量 long cDword32Buff1,cDword32Buff2,cDword32Buff3,cDword32Buff4,cDword32Buff5,cDword32Buff6,cDword32Buff7,cDword32Buff8,cDword32Buff9, cDword32Buff10,cDword32Buff11,cDword32Buff12,cDword32Buff13,cDword32Buff14,cDword32Buff15; short *Short16Buff1,*Short16Buff2,*Short16Buff3; long dwXRealPos,dwYRealPos,dwYRealPos_com,dwZRealPos,dwARealPos; long olddwXRealPos[5],olddwYRealPos[5]; unsigned char SingOneFlg = 0; unsigned long dwZipCnt = 0; unsigned char cSeBiaoEn = 0; unsigned char cSeBiaoOk = 0; unsigned short alarm_message_buff[ONE_MESSAGE_SIZE_WORD]; unsigned short message_size_buff[5]; unsigned char cWifiStep = 0; unsigned long CalInch(unsigned long length) { float length_buff; length_buff = length; return (unsigned long)round(length_buff / 2.539999); } unsigned long CalLengthCM(unsigned long length) { float length_buff; length_buff = length; return (unsigned long)round(length_buff * 2.539999); } long CalInch2(long length) { float length_buff; length_buff = length; return (long)round(length_buff / 2.539999); } long CalLengthCM2(long length) { float length_buff; length_buff = length; return (long)round(length_buff * 2.539999); } //计算生成速度 void CalProSP(unsigned short addr) { static unsigned long cProSpTime = 0; unsigned short i; long temp; i = dwTickCount - cProSpTime; temp=(60000)%i; if(temp) { user_datas[addr] = ((60000)/i)+1; } else { user_datas[addr] = (60000)/i; } cProSpTime = dwTickCount; } //增加产量 void AddToTal(unsigned short addr) { unsigned long buff; buff = user_datas[addr + 1] << 16; buff |= user_datas[addr]; buff++; user_datas[addr + 1] = buff >> 16; user_datas[addr] = buff & 0x0000FFFF; } //获取产量 unsigned long GetTotal(unsigned short addr) { unsigned long buff; buff = user_datas[addr + 1] << 16; buff |= user_datas[addr]; return buff; } //清除产量 void ClrcToTal(unsigned short addr) { user_datas[addr + 1] = 0; user_datas[addr] = 0; } //设置故障编号 void SetAlarmCode(unsigned short addr,unsigned short alarm_code) { user_datas[addr] = alarm_code; } //获取故障编号 unsigned short GetAlarmCode(unsigned short addr) { return user_datas[addr]; } void SetData32bits(unsigned short addr,long source_data) { user_datas[addr + 1] = (source_data & 0xFFFF0000) >> 16; user_datas[addr] = source_data & 0x0000FFFF; } unsigned long GetData32bits(unsigned short addr) { return (user_datas[addr] | (user_datas[addr + 1] >> 16)); } //开机读取机型 void GetMachineType(void) { hw_flash_data_read(MACHINE_TYPE_SAVE_ADDR, &cMachineType,4); if(cMachineType > 100) cMachineType = 0; MACHINE_TYPE_SET_DATA = cMachineType; old_machine_type = MACHINE_TYPE_SET_DATA; hw_flash_data_read(MACHINE_SCREEN_SAVE_ADDR, &cScreenEnable,4); if(cScreenEnable > 1) cScreenEnable = 1; MACHINE_SCREEN_SET_DATA = cScreenEnable; old_screen_type = MACHINE_SCREEN_SET_DATA; hw_flash_data_read(MACHINE_WIFI_SAVE_ADDR, &cWifiEnable,4); if(cWifiEnable > 1) cWifiEnable = 1; MACHINE_WIFI_SET_DATA = cWifiEnable; old_wifi_type = MACHINE_WIFI_SET_DATA; } //设置保存机型 void SetMachineType(void) { if(old_machine_type != MACHINE_TYPE_SET_DATA) { old_machine_type = MACHINE_TYPE_SET_DATA; hw_flash_data_write(MACHINE_TYPE_SAVE_ADDR, &old_machine_type,4); } if(old_screen_type != MACHINE_SCREEN_SET_DATA) { old_screen_type = MACHINE_SCREEN_SET_DATA; hw_flash_data_write(MACHINE_SCREEN_SAVE_ADDR, &old_screen_type,4); hw_flash_data_read(MACHINE_SCREEN_SAVE_ADDR, &cScreenEnable,4); } if(old_wifi_type != MACHINE_WIFI_SET_DATA) { old_wifi_type = MACHINE_WIFI_SET_DATA; hw_flash_data_write(MACHINE_WIFI_SAVE_ADDR, &old_wifi_type,4); } } //根据机型来选初始化脉冲 void InitPWM(void) { hw_pwm_init(120); } void InitAction(void) { //机型选择,重上电才有效 cMachineType =MACHINE_TYPE; //D300 //鑫业 #if (XIN_YE_MACHINE == 1) //由厂家程序内部选择 XY_Mechine_InitAction(); #endif //金龙 #if (JIN_LONG_MACHINE == 1) JL_Mechine_InitAction(); #endif //龙一机械 #if (LONG_YI_MACHINE == 1) //由厂家程序内部选择 LY_Mechine_InitAction(); #endif //昌盛给力 #if (CHANG_SHENG_GEI_LI_MACHINE == 1) GL_Mechine_InitAction(); #endif //宇纹轩 #if (YU_WEN_XUAN_MACHINE == 1) YWX_Mechine_InitAction(); #endif //福建盈兴 #if (FJ_YING_XING_MACHINE == 1) YX_Mechine_InitAction(); #endif //张春阳 #if (ZHANG_CHUN_YANG_MACHINE == 1) ZCY_Mechine_InitAction(); #endif //福建传驰 #if (FIE_YUE_MACHINE == 1) FY_Mechine_InitAction(); #endif //虎门飞跃 #if (Chuan_Chi_MACHINE == 1) CC_Mechine_InitAction(); #endif //付小伟 #if (FU_XIAO_WEI_MACHINE == 1) FXW_Mechine_InitAction(); #endif //锦泓 #if (JIN_HONG_MACHINE == 1) JH_Mechine_InitAction(); #endif //振宇 #if (ZHEN_YU_MACHINE == 1) ZHENYU_Mechine_InitAction(); #endif //俊跃 #if (JUN_YUE_MACHINE == 1) JUNYUE_Mechine_InitAction(); #endif //福晨 #if (FU_CHEN_MACHINE == 1) FC_Mechine_InitAction(); #endif // DEFAULT_OUT = 0; // DEFAULT_IN = 0; IOPinConfigure(); //初始化默認值 if(MACHINE_BOOT_WIFI) { M1000 = 1; user_datas[1604] = 1; } } void DelayAction(void) { #if 0 switch(MACHINE_TYPE) { case JIAO_YA_DIN_CUN:JYDC_DelayAction();break; case CHU_CHI_JI:CCJ_DelayAction();break; case JIAO_YA_CHU_CHI: { JYDC_DelayAction(); CCJ_DelayAction(); }break; default:; } #endif } //X30/X16外部中断动作 void ExtiAcitionX30(void) { #if 0 switch(MACHINE_TYPE) { case JIAO_YA_DIN_CUN:JYDC_ExtiActionX30();break; case CHU_CHI_JI:;break; case JIAO_YA_CHU_CHI: { JYDC_ExtiActionX30(); }break; default:; } #endif } //X31/X17外部中断动作 void ExtiAcitionX31(void) { #if 0 switch(MACHINE_TYPE) { case JIAO_YA_DIN_CUN:JYDC_ExtiActionX31();break; case MXC_NILONG:MXC_ExtiActionX31();break; case QIE_DUAN_JI:QueDuan_ExtiActionX31();break; case CHUAN_TOU_QIE_DUAN_JI:QDCT_ExtiActionX31();break; default:; } #endif } //X20外部中断动作 void ExtiAcitionX20(void) { #if 0 switch(MACHINE_TYPE) { case MXC_NILONG:MXC_ExtiActionX20();break; default:; } #endif } void Action(void) { InputPinConfig(); //输入可变 #if (XIN_YE_MACHINE == 1) //由厂家程序内部选择 XY_Mechine_Action(); #endif //金龙 #if (JIN_LONG_MACHINE == 1) JL_Mechine_Action(); #endif #if (LONG_YI_MACHINE == 1) //由厂家程序内部选择 LY_Mechine_Action(); #endif //昌盛给力 #if (CHANG_SHENG_GEI_LI_MACHINE == 1) GL_Mechine_Action(); #endif //宇纹轩 #if (YU_WEN_XUAN_MACHINE == 1) YWX_Mechine_Action(); #endif //福建盈兴 #if (FJ_YING_XING_MACHINE == 1) YX_Mechine_Action(); #endif //张春阳 #if (ZHANG_CHUN_YANG_MACHINE == 1) ZCY_Mechine_Action(); #endif //福建传驰 #if (Chuan_Chi_MACHINE == 1) CC_Mechine_Action(); #endif //虎门飞跃 #if (FIE_YUE_MACHINE == 1) FY_Mechine_Action(); #endif //付小伟 #if (FU_XIAO_WEI_MACHINE == 1) FXW_Mechine_Action(); #endif //锦泓 #if (JIN_HONG_MACHINE == 1) JH_Mechine_Action(); #endif //振宇 #if (ZHEN_YU_MACHINE == 1) ZHENYU_Mechine_Action(); #endif //俊跃 #if (JUN_YUE_MACHINE == 1) JUNYUE_Mechine_Action(); #endif //福晨 #if (FU_CHEN_MACHINE == 1) FC_Mechine_Action(); #endif OutputPinConfig(); //输出可变 } void PWMAction(void) { } unsigned long no_addr_buff[2]; //故障记录保存功能 void AlarmMessageSave(unsigned short alarm_addr) { unsigned short i = 0; hw_flash_data_read(SAVE_MESSAGE_START_ADDR, no_addr_buff,8); alarm_message_buff[0] = (no_addr_buff[0] + 1) & 0x0000FFFF; alarm_message_buff[1] = (no_addr_buff[0] + 1) >> 16; for(i = 1;i < (ONE_MESSAGE_SIZE_WORD - 3);i++)alarm_message_buff[i + 1] = user_datas[SAV_MESSAGE_USER_DATAS_START_ADDR + i - 1]; alarm_message_buff[ONE_MESSAGE_SIZE_WORD - 1] = mh_crc16_calc((unsigned char *)&alarm_message_buff[0],(ONE_MESSAGE_SIZE_WORD - 1) * 2); hw_flash_data_write(no_addr_buff[1],alarm_message_buff,ONE_MESSAGE_SIZE_WORD*2); hw_flash_data_write(SAVE_MESSAGE_START_ADDR,no_addr_buff,10); } //故障记录通讯读取功能 void AlarmMessageRead(void) { unsigned short i; switch(ALARM_MESSAGE_CMD) { case CMD_READ_MESSAGE: { hw_flash_data_read(SAVE_MESSAGE_START_ADDR, no_addr_buff,8); user_datas[SAV_MESSAGE_USER_DATAS_START_ADDR] = no_addr_buff[0] & 0x0000FFFF; user_datas[SAV_MESSAGE_USER_DATAS_START_ADDR+1] = no_addr_buff[0] << 16; user_datas[SAV_MESSAGE_USER_DATAS_START_ADDR+2] = no_addr_buff[1] & 0x0000FFFF; user_datas[SAV_MESSAGE_USER_DATAS_START_ADDR+3] = no_addr_buff[1] << 16; }break; case CMD_READ_ALARM_MESSAGE: { hw_flash_data_read(SAVE_MESSAGE_START_ADDR, alarm_message_buff,ONE_MESSAGE_SIZE_WORD*2); for(i=1;iIDR >> 0) & 0x01) == 0) save_times++; else save_times = 0; if((save_times >= 10000) && (cWifiStep == 0))cWifiStep = 1; switch(cWifiStep) { case 0:break; case 1: { j =(unsigned char) (round(sizeof(wifi_name) / 2)); for(i=0;i= reset_wifi_delay) { cWifiStep = 0; run_led_speed = 500000; } }break; case 4: { if(save_times == 0) { cWifiStep = 0; run_led_speed = 500000; } }break; default:; } } void CheckTimeOver(void) { /* #if USE_PSW static unsigned long psw_cnt_delay = 0; if(dwTickCount >= psw_cnt_delay) { psw_cnt_delay = dwTickCount + 3600000; MACHINE_LOCK_TIME++; } if(MACHINE_LOCK_PSW != (MACHINE_BASE_PSW * MACHINE_TYPE+1)) { if(MACHINE_LOCK_TIME >= (MACHINE_USE_DAY*24)) { LockMachineFlg = 1; MACHINE_LOCK_TIME = (MACHINE_USE_DAY*24); } } else { MACHINE_PSW_ENABLE = 9527; } if(LockMachineFlg && (MACHINE_PSW_ENABLE != 9527)) { Y00 = 0; Y04 = 0; Y06 = 0; AxisEgmStop(X_AXIS); } #endif*/ }