Compare commits
No commits in common. "main" and "optical-embos-V10.01.02" have entirely different histories.
main
...
optical-em
@ -279,9 +279,7 @@ void OpticalAsyncTask(void)
|
|||||||
{
|
{
|
||||||
int rslt;
|
int rslt;
|
||||||
rslt = ERR_NONE;
|
rslt = ERR_NONE;
|
||||||
#if(SCAN_TIMEINTERVAL == 1)
|
|
||||||
isEmptyMaterialSta(0);
|
|
||||||
#endif
|
|
||||||
#if (MODULE_LOOSE == 1) // 松料电机装置
|
#if (MODULE_LOOSE == 1) // 松料电机装置
|
||||||
if (((g_workCtrl.cursta.workStatus & WORK_STA_SIMULATE) == 0) &&
|
if (((g_workCtrl.cursta.workStatus & WORK_STA_SIMULATE) == 0) &&
|
||||||
1 ) // 松料允许;非模拟状态
|
1 ) // 松料允许;非模拟状态
|
||||||
@ -310,9 +308,6 @@ int SendOpticalTask(void) //
|
|||||||
if ((IsOptStoringLow2() == SENSOR_ON) ||
|
if ((IsOptStoringLow2() == SENSOR_ON) ||
|
||||||
0)
|
0)
|
||||||
{
|
{
|
||||||
#if(FEEDINGBACK_ADJUST == 1)
|
|
||||||
g_optWorkCtrl.feedingOpit = 1;
|
|
||||||
#endif
|
|
||||||
LooseMotorRevOn(); //松料电机 转动
|
LooseMotorRevOn(); //松料电机 转动
|
||||||
|
|
||||||
//printf("LooseMotor run %d\r\n");
|
//printf("LooseMotor run %d\r\n");
|
||||||
@ -323,39 +318,13 @@ int SendOpticalTask(void) //
|
|||||||
if((IsOptStoringLow1() == SENSOR_ON) ||
|
if((IsOptStoringLow1() == SENSOR_ON) ||
|
||||||
0)
|
0)
|
||||||
{
|
{
|
||||||
#if(FEEDINGBACK_ADJUST == 1)
|
LooseMotorRevOff(); // 松料电机 停止
|
||||||
if(g_optWorkCtrl.feedingOpit == 1)
|
|
||||||
{
|
|
||||||
#endif
|
|
||||||
LooseMotorRevOff(); // 松料电机 停止
|
|
||||||
#if(FEEDINGBACK_ADJUST == 1)
|
|
||||||
g_optWorkCtrl.feedingOpit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(g_optWorkCtrl.collectingOpit == 1)
|
|
||||||
{
|
|
||||||
LooseMotorOff();
|
|
||||||
g_optWorkCtrl.collectingOpit = 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if(FEEDINGBACK_ADJUST == 1)
|
//工作中,光纤储料低位1没触发且送料电机转动时,启动松料电机,
|
||||||
//工作中
|
|
||||||
if((g_workCtrl.cursta.workStatus & WORK_STA_WORKING) != 0 ||
|
|
||||||
// (g_workCtrl.cursta.workStatus & WORK_STA_BUSY) != 0 ||
|
|
||||||
0)
|
|
||||||
{
|
|
||||||
if(IsOptStoringLow1() == SENSOR_ON)
|
|
||||||
{
|
|
||||||
g_optWorkCtrl.collectingOpit = 1;
|
|
||||||
LooseMotorOn();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -364,7 +333,7 @@ int SendOpticalTask(void) //
|
|||||||
void OpticalTimerTask(void)
|
void OpticalTimerTask(void)
|
||||||
{
|
{
|
||||||
SendStatus(1); // 发送状态
|
SendStatus(1); // 发送状态
|
||||||
// OperatorTaskWhenRun(0);
|
OperatorTaskWhenRun(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int OpticalCloseAll(void)
|
int OpticalCloseAll(void)
|
||||||
@ -388,75 +357,28 @@ int sendOpticalTaskWhenRun(void) //
|
|||||||
//光纤储料低位1/2触发:开始松料
|
//光纤储料低位1/2触发:开始松料
|
||||||
|
|
||||||
int err = ERR_NONE;
|
int err = ERR_NONE;
|
||||||
#if(FEEDINGBACK_ADJUST == 1)
|
|
||||||
if(g_optWorkCtrl.pointOpit == 1)
|
if ((IsOptStoringLow2() == SENSOR_ON) ||
|
||||||
|
(IsOptStoringLow1() != SENSOR_ON) ||
|
||||||
|
0)
|
||||||
{
|
{
|
||||||
#endif
|
LooseMotorRevOn(); //松料电机 转动
|
||||||
if ((IsOptStoringLow2() == SENSOR_ON) ||
|
|
||||||
(IsOptStoringLow1() != SENSOR_ON) ||
|
|
||||||
0)
|
|
||||||
{
|
|
||||||
#if(FEEDINGBACK_ADJUST == 1)
|
|
||||||
g_optWorkCtrl.feedingOpit = 1;
|
|
||||||
#endif
|
|
||||||
LooseMotorRevOn(); //松料电机 转动
|
|
||||||
|
|
||||||
//printf("LooseMotor run %d\r\n");
|
//printf("LooseMotor run %d\r\n");
|
||||||
//DelayRef(300);
|
//DelayRef(300);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if((IsOptStoringLow1() == SENSOR_ON) ||
|
|
||||||
0)
|
|
||||||
{
|
|
||||||
LooseMotorRevOff(); // 松料电机 停止
|
|
||||||
#if(FEEDINGBACK_ADJUST == 1)
|
|
||||||
g_optWorkCtrl.feedingOpit = 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
#if(FEEDINGBACK_ADJUST == 1)
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((IsOptStoringLow2() == SENSOR_ON) ||
|
if((IsOptStoringLow1() == SENSOR_ON) ||
|
||||||
0)
|
0)
|
||||||
{
|
{
|
||||||
g_optWorkCtrl.feedingOpit = 1;
|
LooseMotorRevOff(); // 松料电机 停止
|
||||||
LooseMotorRevOn(); //松料电机 转动
|
}
|
||||||
|
|
||||||
//printf("LooseMotor run %d\r\n");
|
|
||||||
//DelayRef(300);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if((IsOptStoringLow1() == SENSOR_ON) ||
|
|
||||||
0)
|
|
||||||
{
|
|
||||||
if(g_optWorkCtrl.feedingOpit == 1)
|
|
||||||
{
|
|
||||||
LooseMotorRevOff(); // 松料电机 停止
|
|
||||||
g_optWorkCtrl.feedingOpit = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_optWorkCtrl.collectingOpit = 1;
|
|
||||||
LooseMotorOn();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(g_optWorkCtrl.collectingOpit == 1)
|
|
||||||
{
|
|
||||||
LooseMotorOff();
|
|
||||||
g_optWorkCtrl.collectingOpit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif
|
//工作中,光纤储料低位1没触发且送料电机转动时,启动松料电机,
|
||||||
return err;
|
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
#if(MATERIAL_SCAN == 1)
|
#if(MATERIAL_SCAN == 1)
|
||||||
|
|
||||||
@ -466,7 +388,6 @@ int isEmptyMaterialSta(u16 len)//
|
|||||||
{
|
{
|
||||||
if(g_optWorkCtrl.IsNoMaterialEn == 1)
|
if(g_optWorkCtrl.IsNoMaterialEn == 1)
|
||||||
{
|
{
|
||||||
#if(SCAN_TIMEINTERVAL == 0)
|
|
||||||
// //情况1
|
// //情况1
|
||||||
// if(IsEmptyMaterial() == SENSOR_ON)
|
// if(IsEmptyMaterial() == SENSOR_ON)
|
||||||
// {
|
// {
|
||||||
@ -486,6 +407,7 @@ int isEmptyMaterialSta(u16 len)//
|
|||||||
g_optWorkCtrl.IsNoMaterialScanLen = g_pOpticalMcPara->materialFreeScanNum;//断线检测扫描次数复位
|
g_optWorkCtrl.IsNoMaterialScanLen = g_pOpticalMcPara->materialFreeScanNum;//断线检测扫描次数复位
|
||||||
g_optWorkCtrl.IsNoMaterialFlag = 2;
|
g_optWorkCtrl.IsNoMaterialFlag = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
//情况3
|
//情况3
|
||||||
if((IsEmptyMaterial() != SENSOR_ON))
|
if((IsEmptyMaterial() != SENSOR_ON))
|
||||||
{
|
{
|
||||||
@ -513,48 +435,8 @@ int isEmptyMaterialSta(u16 len)//
|
|||||||
g_optWorkCtrl.IsNoMaterialFlag = 2;
|
g_optWorkCtrl.IsNoMaterialFlag = 2;
|
||||||
return STA_NORMAL_STOP;
|
return STA_NORMAL_STOP;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
|
|
||||||
if(g_optWorkCtrl.IsNoMaterialStart == 0)
|
|
||||||
{
|
|
||||||
g_optWorkCtrl.IsNoMaterialScanTime = GetMsSoftTimer();
|
|
||||||
g_optWorkCtrl.IsNoMaterialStart = 1;
|
|
||||||
}
|
|
||||||
if((IsEmptyMaterial() != SENSOR_ON))
|
|
||||||
{
|
|
||||||
g_optWorkCtrl.IsNoMaterialTime = 0;
|
|
||||||
g_optWorkCtrl.IsNoMaterialScanTime = GetMsSoftTimer();
|
|
||||||
}
|
|
||||||
u32 materTimer = GetMsSoftTimer();
|
|
||||||
if((materTimer - g_optWorkCtrl.IsNoMaterialScanTime + g_optWorkCtrl.IsNoMaterialTime) > 20000)
|
|
||||||
{
|
|
||||||
printf("curtime=%d,IsNoMaterialScanTime=%d, IsNoMaterialTime=%d\r\n",materTimer,g_optWorkCtrl.IsNoMaterialScanTime,g_optWorkCtrl.IsNoMaterialTime);
|
|
||||||
ReportError(ERR_NO_MATERIAL_ERROR);
|
|
||||||
g_optWorkCtrl.IsNoMaterialTime = 0;
|
|
||||||
g_optWorkCtrl.IsNoMaterialStart = 0;
|
|
||||||
g_optWorkCtrl.opticalSta = 1;//断线检测报警
|
|
||||||
return STA_NORMAL_STOP;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#if(SCAN_TIMEINTERVAL == 1)
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(g_optWorkCtrl.IsNoMaterialStart == 1)
|
|
||||||
{
|
|
||||||
g_optWorkCtrl.IsNoMaterialTime = GetMsSoftTimer() - g_optWorkCtrl.IsNoMaterialScanTime;
|
|
||||||
printf("IsNoMaterialTime=%d\r\n",g_optWorkCtrl.IsNoMaterialTime);
|
|
||||||
g_optWorkCtrl.IsNoMaterialStart = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(g_optWorkCtrl.opticalSta == 1)//断线检测报警
|
|
||||||
{
|
|
||||||
return ERR_NO_MATERIAL_ERROR;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -3916,7 +3798,7 @@ int MoveMTS1BHStop_a(u32 para1,u32 para2) // ֹͣ
|
|||||||
|
|
||||||
int MTP_1PulseToP1Pulse(s32 Pulse)
|
int MTP_1PulseToP1Pulse(s32 Pulse)
|
||||||
{
|
{
|
||||||
Pulse *= 8.488;// 8.488p/mm 电机每圈400脉冲,外径15
|
Pulse *= 8.488;// 8.488p/mm
|
||||||
return Pulse;
|
return Pulse;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4887,10 +4769,7 @@ int MoveXYRS1P1ToWorkPos(DataItem * pCurDat, MotoSpd *pSpd, int rToSpinPosFlag,i
|
|||||||
|
|
||||||
err = MoveXYR1S1P1ToPos(posx, posy, posr1, poss1, posp1, &spd, s1MotoRunFlag);
|
err = MoveXYR1S1P1ToPos(posx, posy, posr1, poss1, posp1, &spd, s1MotoRunFlag);
|
||||||
|
|
||||||
if(err == ERR_NONE)
|
g_optWorkCtrl.IsNoMaterialEn = 1;
|
||||||
{
|
|
||||||
g_optWorkCtrl.IsNoMaterialEn = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -4912,7 +4791,7 @@ int MoveXYRS1P1SToWorkPos(DataItem * pCurDat, int uh) //
|
|||||||
posr1 = PitkToRpp(g_workCtrl.workPos[MTR1_IDX]);
|
posr1 = PitkToRpp(g_workCtrl.workPos[MTR1_IDX]);
|
||||||
poss1 = g_workCtrl.workPos[MTS1_IDX];
|
poss1 = g_workCtrl.workPos[MTS1_IDX];
|
||||||
posp1 = g_workCtrl.workPos[MTP1_IDX];
|
posp1 = g_workCtrl.workPos[MTP1_IDX];
|
||||||
printf("work pos x:%d, y:%d\r\n",posx, posy);
|
|
||||||
g_optWorkCtrl.IsNoMaterialEn = 0;
|
g_optWorkCtrl.IsNoMaterialEn = 0;
|
||||||
|
|
||||||
if (uh != 0)
|
if (uh != 0)
|
||||||
@ -4936,10 +4815,7 @@ int MoveXYRS1P1SToWorkPos(DataItem * pCurDat, int uh) //
|
|||||||
err = MoveXYR1S1P1ToPos(posx, posy, posr1, poss1, posp1, NULL, 0);
|
err = MoveXYR1S1P1ToPos(posx, posy, posr1, poss1, posp1, NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(err == ERR_NONE)
|
g_optWorkCtrl.IsNoMaterialEn = 1;
|
||||||
{
|
|
||||||
g_optWorkCtrl.IsNoMaterialEn = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -5576,13 +5452,9 @@ int GetWorkPosFromIndex(void)
|
|||||||
break; // 结束
|
break; // 结束
|
||||||
}
|
}
|
||||||
ChangeWorkPos(&sewStep, 1);
|
ChangeWorkPos(&sewStep, 1);
|
||||||
#if(0)
|
|
||||||
printf("idx: %d\tposx = %d\tposy = %d\r\n",idx, g_workCtrl.workPos[MTX_IDX], g_workCtrl.workPos[MTY_IDX]);
|
|
||||||
DelayRef(10);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
g_workCtrl.workAvaible = DATA_VALID; // 工作坐标有效标志
|
g_workCtrl.workAvaible = DATA_VALID; // 工作坐标有效标志
|
||||||
printf("start x:%d,y:%d \r\n",g_workCtrl.workPos[MTX_IDX],g_workCtrl.workPos[MTY_IDX]);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6020,8 +5892,8 @@ int OpticalRefreshDat(u32 para1, u32 para2)
|
|||||||
diry += g_optWorkCtrl.yCompenAfterTurn;
|
diry += g_optWorkCtrl.yCompenAfterTurn;
|
||||||
g_optWorkCtrl.compenFlag1 = 0;
|
g_optWorkCtrl.compenFlag1 = 0;
|
||||||
|
|
||||||
// g_optWorkCtrl.oldXCompenAfterTurn = g_optWorkCtrl.xCompenAfterTurn;
|
g_optWorkCtrl.oldXCompenAfterTurn = g_optWorkCtrl.xCompenAfterTurn;
|
||||||
// g_optWorkCtrl.oldYCompenAfterTurn = g_optWorkCtrl.yCompenAfterTurn;
|
g_optWorkCtrl.oldYCompenAfterTurn = g_optWorkCtrl.yCompenAfterTurn;
|
||||||
}
|
}
|
||||||
|
|
||||||
// printf("rPos = %d, xPos = %d, yPos = %d,\r\n",g_motosPara.motosPos[MTR1_IDX],g_motosPara.motosPos[MTX_IDX],g_motosPara.motosPos[MTY_IDX]);
|
// printf("rPos = %d, xPos = %d, yPos = %d,\r\n",g_motosPara.motosPos[MTR1_IDX],g_motosPara.motosPos[MTX_IDX],g_motosPara.motosPos[MTY_IDX]);
|
||||||
@ -6118,7 +5990,6 @@ int OpticalRefreshDat(u32 para1, u32 para2)
|
|||||||
}
|
}
|
||||||
else if(pFlCtrl->dtype == DATA_OPTI) // 吐丝数据
|
else if(pFlCtrl->dtype == DATA_OPTI) // 吐丝数据
|
||||||
{
|
{
|
||||||
|
|
||||||
// //速度匹配
|
// //速度匹配
|
||||||
// if(IsOptStoringHigh2() == SENSOR_ON )
|
// if(IsOptStoringHigh2() == SENSOR_ON )
|
||||||
// {
|
// {
|
||||||
@ -6356,12 +6227,8 @@ int OpticalRefreshDat(u32 para1, u32 para2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if(AFTERTURN_COMPEN == 1)
|
#if(AFTERTURN_COMPEN == 1)
|
||||||
|
|
||||||
void XYCompenCalcuAfterTurning(DataItem datItem)
|
void XYCompenCalcuAfterTurning(DataItem datItem)
|
||||||
{
|
{
|
||||||
s32 turnr;
|
|
||||||
s32 abposr;
|
|
||||||
DataItem tempDat;
|
|
||||||
if(((datItem.dx != 0) || (datItem.dy != 0)) && (datItem.attr != DATA_PRESSURE))
|
if(((datItem.dx != 0) || (datItem.dy != 0)) && (datItem.attr != DATA_PRESSURE))
|
||||||
{
|
{
|
||||||
if((datItem.dr == 0) && (g_optWorkCtrl.runSteps1 == 0))//先直线
|
if((datItem.dr == 0) && (g_optWorkCtrl.runSteps1 == 0))//先直线
|
||||||
@ -6370,139 +6237,15 @@ void XYCompenCalcuAfterTurning(DataItem datItem)
|
|||||||
}
|
}
|
||||||
else if((datItem.dr != 0) && (g_optWorkCtrl.runSteps1 == 10))//后拐弯
|
else if((datItem.dr != 0) && (g_optWorkCtrl.runSteps1 == 10))//后拐弯
|
||||||
{
|
{
|
||||||
ReadAndFreshMotosPos();
|
g_optWorkCtrl.begainRBeforeWiring = g_workCtrl.workPos[MTR1_IDX];//用来计算补偿
|
||||||
// 转化为 -180--180度之间的数
|
|
||||||
|
|
||||||
abposr = g_motosPara.motosPos[MTR1_IDX];
|
|
||||||
ChangeRotToNP180(&abposr);
|
|
||||||
if(abposr < 0)
|
|
||||||
{
|
|
||||||
abposr += 10000;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_optWorkCtrl.begainXBeforeWiring = g_workCtrl.workPos[MTX_IDX];
|
|
||||||
g_optWorkCtrl.begainYBeforeWiring = g_workCtrl.workPos[MTY_IDX];
|
|
||||||
g_optWorkCtrl.begainRBeforeWiring = abposr;
|
|
||||||
g_optWorkCtrl.runSteps1 = 20;
|
g_optWorkCtrl.runSteps1 = 20;
|
||||||
printf("begin %d\r\n",g_optWorkCtrl.begainRBeforeWiring);
|
|
||||||
}
|
}
|
||||||
else if((datItem.dr == 0) && (g_optWorkCtrl.runSteps1 == 20))//拐弯之后
|
else if((datItem.dr == 0) && (g_optWorkCtrl.runSteps1 == 20))//拐弯之后
|
||||||
{
|
{
|
||||||
for(int i = 1; i < 6; i++)
|
g_optWorkCtrl.xCompenAfterTurn = g_pOpticalMcPara->rkMatThickness/100*cos(g_optWorkCtrl.begainRBeforeWiring/10000) - g_optWorkCtrl.oldXCompenAfterTurn;
|
||||||
{
|
g_optWorkCtrl.yCompenAfterTurn = g_pOpticalMcPara->rkMatThickness/100*sin(g_optWorkCtrl.begainRBeforeWiring/10000) - g_optWorkCtrl.oldYCompenAfterTurn;
|
||||||
if(GetADataItem(0, (GetDatIndex() + i), &tempDat) == 0)
|
g_optWorkCtrl.compenFlag1 = 1;
|
||||||
{
|
|
||||||
if(tempDat.dr != 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ReadAndFreshMotosPos();
|
|
||||||
// 转化为 -180--180度之间的数
|
|
||||||
|
|
||||||
abposr = g_motosPara.motosPos[MTR1_IDX];
|
|
||||||
ChangeRotToNP180(&abposr);
|
|
||||||
|
|
||||||
if(abposr <= 0)
|
|
||||||
{
|
|
||||||
abposr += 10000;
|
|
||||||
}
|
|
||||||
|
|
||||||
turnr = abposr - g_optWorkCtrl.begainRBeforeWiring;
|
|
||||||
printf("turn %d, begin %d,end %d\r\n",turnr,g_optWorkCtrl.begainRBeforeWiring,abposr);
|
|
||||||
|
|
||||||
if(g_optWorkCtrl.begainRBeforeWiring > 4900 && //角度是180,做80的区间近似值
|
|
||||||
g_optWorkCtrl.begainRBeforeWiring < 5100 &&
|
|
||||||
1)
|
|
||||||
{
|
|
||||||
if(((turnr > -2600) && (turnr < -2400)) ||
|
|
||||||
((turnr > 2400) && (turnr < 2600)) ) //直角转弯,X做补偿
|
|
||||||
{
|
|
||||||
g_optWorkCtrl.xCompenAfterTurn = g_pOpticalMcPara->xGapCorrect;
|
|
||||||
g_optWorkCtrl.yCompenAfterTurn = 0;
|
|
||||||
g_optWorkCtrl.compenFlag1 = 1;
|
|
||||||
printf("xCompen\r\n");
|
|
||||||
}
|
|
||||||
else if(turnr >= 100 && turnr<= 2400)
|
|
||||||
{
|
|
||||||
g_optWorkCtrl.xCompenAfterTurn = 0;
|
|
||||||
g_optWorkCtrl.yCompenAfterTurn = g_pOpticalMcPara->yGapCorrect;
|
|
||||||
g_optWorkCtrl.compenFlag1 = 1;
|
|
||||||
printf("yCompen\r\n");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_optWorkCtrl.xCompenAfterTurn = 0;
|
|
||||||
g_optWorkCtrl.yCompenAfterTurn = 0;
|
|
||||||
g_optWorkCtrl.compenFlag1 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
else if(g_optWorkCtrl.begainRBeforeWiring > 7400 && //角度是270,做100的区间近似值
|
|
||||||
g_optWorkCtrl.begainRBeforeWiring < 7600 &&
|
|
||||||
1)
|
|
||||||
{
|
|
||||||
if(((turnr > -2600) && (turnr < -2400)) ||
|
|
||||||
((turnr > 2400) && (turnr < 2600)) ) //直角转弯,Y做补偿
|
|
||||||
{
|
|
||||||
g_optWorkCtrl.xCompenAfterTurn = 0;
|
|
||||||
g_optWorkCtrl.yCompenAfterTurn = g_pOpticalMcPara->yGapCorrect;
|
|
||||||
g_optWorkCtrl.compenFlag1 = 1;
|
|
||||||
printf("yCompen\r\n");
|
|
||||||
|
|
||||||
}
|
|
||||||
else if(turnr >= -2400 && turnr <= -100) //还是原方向,反向x补偿
|
|
||||||
{
|
|
||||||
g_optWorkCtrl.xCompenAfterTurn = g_pOpticalMcPara->xGapCorrect;
|
|
||||||
g_optWorkCtrl.yCompenAfterTurn = 0;
|
|
||||||
g_optWorkCtrl.compenFlag1 = 1;
|
|
||||||
printf("xCompen\r\n");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_optWorkCtrl.xCompenAfterTurn = 0;
|
|
||||||
g_optWorkCtrl.yCompenAfterTurn = 0;
|
|
||||||
g_optWorkCtrl.compenFlag1 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
else if(g_optWorkCtrl.begainRBeforeWiring > 2400 && //角度是90,做100的区间近似值
|
|
||||||
g_optWorkCtrl.begainRBeforeWiring < 2600 )
|
|
||||||
{
|
|
||||||
if(turnr >= 30 && turnr<= 2400) //还是原方向,反向x补偿
|
|
||||||
{
|
|
||||||
g_optWorkCtrl.xCompenAfterTurn = g_pOpticalMcPara->xGapCorrect;
|
|
||||||
g_optWorkCtrl.yCompenAfterTurn = 0;
|
|
||||||
g_optWorkCtrl.compenFlag1 = 1;
|
|
||||||
printf("xCompen\r\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if((g_optWorkCtrl.begainRBeforeWiring > (-100) && g_optWorkCtrl.begainRBeforeWiring < 100) ||
|
|
||||||
(g_optWorkCtrl.begainRBeforeWiring > 9900 && g_optWorkCtrl.begainRBeforeWiring < 10100))
|
|
||||||
{
|
|
||||||
if(turnr >= -2400 && turnr <= -30) //还是原方向,反向y补偿
|
|
||||||
{
|
|
||||||
g_optWorkCtrl.xCompenAfterTurn = 0;
|
|
||||||
g_optWorkCtrl.yCompenAfterTurn = g_pOpticalMcPara->yGapCorrect;
|
|
||||||
g_optWorkCtrl.compenFlag1 = 1;
|
|
||||||
printf("yCompen\r\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// if((abs(g_workCtrl.workPos[MTR1_IDX] - g_optWorkCtrl.begainRBeforeWiring) < 2000) &&
|
|
||||||
// (g_optWorkCtrl.compenFlag1 == 0) )
|
|
||||||
// {
|
|
||||||
// g_optWorkCtrl.runSteps1 = 20;
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
g_optWorkCtrl.runSteps1 = 0;
|
g_optWorkCtrl.runSteps1 = 0;
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -6596,9 +6339,6 @@ int OpticalWork(int mode)
|
|||||||
g_optWorkCtrl.IsNoMaterialFlag = 2;
|
g_optWorkCtrl.IsNoMaterialFlag = 2;
|
||||||
g_optWorkCtrl.IsNoMaterialScanLen = g_pOpticalMcPara->materialFreeScanNum;
|
g_optWorkCtrl.IsNoMaterialScanLen = g_pOpticalMcPara->materialFreeScanNum;
|
||||||
g_optWorkCtrl.IsNoMaterialEn = 1;
|
g_optWorkCtrl.IsNoMaterialEn = 1;
|
||||||
#if(FEEDINGBACK_ADJUST == 1)
|
|
||||||
g_optWorkCtrl.pointOpit = 0;
|
|
||||||
#endif
|
|
||||||
err = OpticalCloseAll();
|
err = OpticalCloseAll();
|
||||||
// 打开吸风
|
// 打开吸风
|
||||||
FanMotosOn(); // 吸风开
|
FanMotosOn(); // 吸风开
|
||||||
@ -6662,16 +6402,20 @@ int OpticalWork(int mode)
|
|||||||
err = MoveU1ToPos(g_pOpticalMcPara->rkHighPos, NULL);//抬起机头
|
err = MoveU1ToPos(g_pOpticalMcPara->rkHighPos, NULL);//抬起机头
|
||||||
|
|
||||||
ReadMotosPos();
|
ReadMotosPos();
|
||||||
if(g_workCtrl.workPos[MTX_IDX] <= (g_motosPara.motosPos[MTX_IDX] + 200))
|
if(g_workCtrl.workPos[MTX_IDX] <= g_motosPara.motosPos[MTX_IDX])
|
||||||
{
|
{
|
||||||
g_workCtrl.workPos[MTX_IDX] -= g_pOpticalMcPara->startPosoffx;
|
g_workCtrl.workPos[MTX_IDX] -= g_pOpticalMcPara->startPosoffx;
|
||||||
g_optWorkCtrl.usecomx = 1;
|
g_optWorkCtrl.usecomx = 1;
|
||||||
}
|
}
|
||||||
if(g_workCtrl.workPos[MTY_IDX] <= (g_motosPara.motosPos[MTY_IDX] + 200))
|
if(g_workCtrl.workPos[MTY_IDX] <= g_motosPara.motosPos[MTY_IDX])
|
||||||
{
|
{
|
||||||
g_workCtrl.workPos[MTY_IDX] -= g_pOpticalMcPara->startPosoffy;
|
g_workCtrl.workPos[MTY_IDX] -= g_pOpticalMcPara->startPosoffy;
|
||||||
g_optWorkCtrl.usecomy = 1;
|
g_optWorkCtrl.usecomy = 1;
|
||||||
}
|
}
|
||||||
|
/* if (err == ERR_NONE)
|
||||||
|
{
|
||||||
|
err = MoveXYToPos(-1100, -6000, NULL);
|
||||||
|
}*/
|
||||||
if (err == ERR_NONE)
|
if (err == ERR_NONE)
|
||||||
{
|
{
|
||||||
err = MoveXYRS1P1ToWorkPos(&curDat, NULL, 1, 0);
|
err = MoveXYRS1P1ToWorkPos(&curDat, NULL, 1, 0);
|
||||||
@ -6682,13 +6426,11 @@ int OpticalWork(int mode)
|
|||||||
{
|
{
|
||||||
if(g_optWorkCtrl.usecomx == 1)
|
if(g_optWorkCtrl.usecomx == 1)
|
||||||
{
|
{
|
||||||
// printf("usecomx \r\n");
|
|
||||||
g_workCtrl.workPos[MTX_IDX] += g_pOpticalMcPara->startPosoffx;
|
g_workCtrl.workPos[MTX_IDX] += g_pOpticalMcPara->startPosoffx;
|
||||||
g_optWorkCtrl.usecomx = 0;
|
g_optWorkCtrl.usecomx = 0;
|
||||||
}
|
}
|
||||||
if(g_optWorkCtrl.usecomy == 1)
|
if(g_optWorkCtrl.usecomy == 1)
|
||||||
{
|
{
|
||||||
// printf("usecomy \r\n");
|
|
||||||
g_workCtrl.workPos[MTY_IDX] += g_pOpticalMcPara->startPosoffy;
|
g_workCtrl.workPos[MTY_IDX] += g_pOpticalMcPara->startPosoffy;
|
||||||
g_optWorkCtrl.usecomy = 0;
|
g_optWorkCtrl.usecomy = 0;
|
||||||
}
|
}
|
||||||
@ -6812,9 +6554,6 @@ int OpticalWork(int mode)
|
|||||||
if(curDat.ctrl == DATA_OPTI)
|
if(curDat.ctrl == DATA_OPTI)
|
||||||
{
|
{
|
||||||
curDat.ctrl = DATA_DRAWING;
|
curDat.ctrl = DATA_DRAWING;
|
||||||
#if(FEEDINGBACK_ADJUST == 1)
|
|
||||||
g_optWorkCtrl.pointOpit = 1;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetDatIndex() < GetFileItemNums())
|
if (GetDatIndex() < GetFileItemNums())
|
||||||
@ -6851,9 +6590,6 @@ int OpticalWork(int mode)
|
|||||||
//布线结束后的动作
|
//布线结束后的动作
|
||||||
if((oldDat.ctrl == DATA_DRAWING || oldDat.ctrl == DATA_PRESSURE) && g_optWorkCtrl.motopreFlag == 1)
|
if((oldDat.ctrl == DATA_DRAWING || oldDat.ctrl == DATA_PRESSURE) && g_optWorkCtrl.motopreFlag == 1)
|
||||||
{
|
{
|
||||||
#if(FEEDINGBACK_ADJUST == 1)
|
|
||||||
g_optWorkCtrl.pointOpit = 0;
|
|
||||||
#endif
|
|
||||||
FixMatCylinderOff();//顶料松开
|
FixMatCylinderOff();//顶料松开
|
||||||
DelayRef(300);
|
DelayRef(300);
|
||||||
UpClipMatClipCylinderOff();//上夹料松开
|
UpClipMatClipCylinderOff();//上夹料松开
|
||||||
@ -6948,10 +6684,6 @@ int OpticalWork(int mode)
|
|||||||
// 吐丝数据动作处理
|
// 吐丝数据动作处理
|
||||||
if (curDat.ctrl == DATA_OPTI)
|
if (curDat.ctrl == DATA_OPTI)
|
||||||
{
|
{
|
||||||
#if(FEEDINGBACK_ADJUST == 1)
|
|
||||||
g_optWorkCtrl.pointOpit = 1;
|
|
||||||
#endif
|
|
||||||
// g_optWorkCtrl.runSteps1 = 0;
|
|
||||||
g_optWorkCtrl.motoRunFlag = 1;
|
g_optWorkCtrl.motoRunFlag = 1;
|
||||||
err = MoveR1ToPos(2500, NULL);//旋转到吐丝位置:90°
|
err = MoveR1ToPos(2500, NULL);//旋转到吐丝位置:90°
|
||||||
|
|
||||||
@ -7022,8 +6754,8 @@ int OpticalWork(int mode)
|
|||||||
{
|
{
|
||||||
g_optWorkCtrl.IsNoMaterialScanLen = g_pOpticalMcPara->materialFreeScanNum;
|
g_optWorkCtrl.IsNoMaterialScanLen = g_pOpticalMcPara->materialFreeScanNum;
|
||||||
|
|
||||||
// g_optWorkCtrl.oldXCompenAfterTurn = 0;
|
g_optWorkCtrl.oldXCompenAfterTurn = 0;
|
||||||
// g_optWorkCtrl.oldYCompenAfterTurn = 0;
|
g_optWorkCtrl.oldYCompenAfterTurn = 0;
|
||||||
|
|
||||||
if(err == ERR_NONE)
|
if(err == ERR_NONE)
|
||||||
{
|
{
|
||||||
@ -7039,9 +6771,9 @@ int OpticalWork(int mode)
|
|||||||
{
|
{
|
||||||
err = MoveU1ToPos(g_pOpticalMcPara->rkLowPos, NULL);//机头下降
|
err = MoveU1ToPos(g_pOpticalMcPara->rkLowPos, NULL);//机头下降
|
||||||
PreMatCylinderOn();//压料
|
PreMatCylinderOn();//压料
|
||||||
DelayRef(g_pOpticalMcPara->PreWaitTime);
|
DelayRef(200);
|
||||||
PreMatCylinderOff();//压料松开
|
PreMatCylinderOff();//压料松开
|
||||||
DelayRef(100);
|
DelayRef(300);
|
||||||
UpClipMatClipCylinderOn();//上夹料夹料
|
UpClipMatClipCylinderOn();//上夹料夹料
|
||||||
}
|
}
|
||||||
if(err == ERR_NONE)
|
if(err == ERR_NONE)
|
||||||
@ -7296,7 +7028,7 @@ int OpticalWork(int mode)
|
|||||||
//布线结束后偏移到吐丝位置(判定:偏移数据前是布线数据,后是吐丝数据)
|
//布线结束后偏移到吐丝位置(判定:偏移数据前是布线数据,后是吐丝数据)
|
||||||
if((oldDataForOffset == DATA_DRAWING || oldDataForOffset == DATA_PRESSURE) && tmpDat.ctrl == DATA_OPTI)
|
if((oldDataForOffset == DATA_DRAWING || oldDataForOffset == DATA_PRESSURE) && tmpDat.ctrl == DATA_OPTI)
|
||||||
{
|
{
|
||||||
/* if(g_optWorkCtrl.useGapCorx == 1)
|
if(g_optWorkCtrl.useGapCorx == 1)
|
||||||
{
|
{
|
||||||
g_workCtrl.workPos[MTX_IDX] -= g_pOpticalMcPara->xGapCorrect;
|
g_workCtrl.workPos[MTX_IDX] -= g_pOpticalMcPara->xGapCorrect;
|
||||||
g_optWorkCtrl.useGapCorx = 0;
|
g_optWorkCtrl.useGapCorx = 0;
|
||||||
@ -7305,7 +7037,7 @@ int OpticalWork(int mode)
|
|||||||
{
|
{
|
||||||
g_workCtrl.workPos[MTY_IDX] -= g_pOpticalMcPara->yGapCorrect;
|
g_workCtrl.workPos[MTY_IDX] -= g_pOpticalMcPara->yGapCorrect;
|
||||||
g_optWorkCtrl.useGapCory = 0;
|
g_optWorkCtrl.useGapCory = 0;
|
||||||
}*/
|
}
|
||||||
spinLenForOffset = GetSyntheticLength(datx2 - datx1,daty2 - daty1);
|
spinLenForOffset = GetSyntheticLength(datx2 - datx1,daty2 - daty1);
|
||||||
g_optWorkCtrl.isEndOfSpinFlag = 1;
|
g_optWorkCtrl.isEndOfSpinFlag = 1;
|
||||||
g_optWorkCtrl.cutingFlag = 1;
|
g_optWorkCtrl.cutingFlag = 1;
|
||||||
@ -7429,14 +7161,26 @@ int OpticalWork(int mode)
|
|||||||
//前一根布线结束移到下一根布线起始(判定:偏移数据前是吐丝数据,后是吐丝数据)
|
//前一根布线结束移到下一根布线起始(判定:偏移数据前是吐丝数据,后是吐丝数据)
|
||||||
else if(oldDataForOffset == DATA_OPTI && tmpDat.ctrl == DATA_OPTI)
|
else if(oldDataForOffset == DATA_OPTI && tmpDat.ctrl == DATA_OPTI)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
// MoveXYToPos(-1100, -6000, NULL);
|
||||||
|
|
||||||
|
/* if(g_workCtrl.workPos[MTX_IDX] > 65000 ||
|
||||||
|
g_workCtrl.workPos[MTY_IDX] > 44000)
|
||||||
|
{
|
||||||
|
MoveXYToPos(70700, 64000, NULL);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MoveXYToPos(-1100, -6000, NULL);
|
||||||
|
}*/
|
||||||
err = MoveU1ToPos(g_pOpticalMcPara->rkHighPos, NULL);//抬起机头
|
err = MoveU1ToPos(g_pOpticalMcPara->rkHighPos, NULL);//抬起机头
|
||||||
ReadMotosPos();
|
ReadMotosPos();
|
||||||
if(g_workCtrl.workPos[MTX_IDX] <= (g_motosPara.motosPos[MTX_IDX] + 200))
|
if(g_workCtrl.workPos[MTX_IDX] <= g_motosPara.motosPos[MTX_IDX])
|
||||||
{
|
{
|
||||||
g_workCtrl.workPos[MTX_IDX] -= g_pOpticalMcPara->startPosoffx;
|
g_workCtrl.workPos[MTX_IDX] -= g_pOpticalMcPara->startPosoffx;
|
||||||
g_optWorkCtrl.usecomx = 1;
|
g_optWorkCtrl.usecomx = 1;
|
||||||
}
|
}
|
||||||
if(g_workCtrl.workPos[MTY_IDX] <= (g_motosPara.motosPos[MTY_IDX] + 200))
|
if(g_workCtrl.workPos[MTY_IDX] <= g_motosPara.motosPos[MTY_IDX])
|
||||||
{
|
{
|
||||||
g_workCtrl.workPos[MTY_IDX] -= g_pOpticalMcPara->startPosoffy;
|
g_workCtrl.workPos[MTY_IDX] -= g_pOpticalMcPara->startPosoffy;
|
||||||
g_optWorkCtrl.usecomy = 1;
|
g_optWorkCtrl.usecomy = 1;
|
||||||
@ -7451,13 +7195,11 @@ int OpticalWork(int mode)
|
|||||||
{
|
{
|
||||||
if(g_optWorkCtrl.usecomx == 1)
|
if(g_optWorkCtrl.usecomx == 1)
|
||||||
{
|
{
|
||||||
// printf("usecomx \r\n");
|
|
||||||
g_workCtrl.workPos[MTX_IDX] += g_pOpticalMcPara->startPosoffx;
|
g_workCtrl.workPos[MTX_IDX] += g_pOpticalMcPara->startPosoffx;
|
||||||
g_optWorkCtrl.usecomx = 0;
|
g_optWorkCtrl.usecomx = 0;
|
||||||
}
|
}
|
||||||
if(g_optWorkCtrl.usecomy == 1)
|
if(g_optWorkCtrl.usecomy == 1)
|
||||||
{
|
{
|
||||||
// printf("usecomy \r\n");
|
|
||||||
g_workCtrl.workPos[MTY_IDX] += g_pOpticalMcPara->startPosoffy;
|
g_workCtrl.workPos[MTY_IDX] += g_pOpticalMcPara->startPosoffy;
|
||||||
g_optWorkCtrl.usecomy = 0;
|
g_optWorkCtrl.usecomy = 0;
|
||||||
}
|
}
|
||||||
@ -7479,7 +7221,7 @@ int OpticalWork(int mode)
|
|||||||
{
|
{
|
||||||
FixMatCylinderOn();//顶料顶料
|
FixMatCylinderOn();//顶料顶料
|
||||||
DelayRef(200);
|
DelayRef(200);
|
||||||
/* ReadMotosPos(); //起始点到偏移的位置和移动到起始点反向增加间隙补偿
|
ReadMotosPos(); //起始点到偏移的位置和移动到起始点反向增加间隙补偿
|
||||||
|
|
||||||
if(g_workCtrl.workPos[MTX_IDX] < g_motosPara.motosPos[MTX_IDX])
|
if(g_workCtrl.workPos[MTX_IDX] < g_motosPara.motosPos[MTX_IDX])
|
||||||
{
|
{
|
||||||
@ -7490,7 +7232,7 @@ int OpticalWork(int mode)
|
|||||||
{
|
{
|
||||||
g_workCtrl.workPos[MTY_IDX] += g_pOpticalMcPara->yGapCorrect;
|
g_workCtrl.workPos[MTY_IDX] += g_pOpticalMcPara->yGapCorrect;
|
||||||
g_optWorkCtrl.useGapCory = 1;
|
g_optWorkCtrl.useGapCory = 1;
|
||||||
}*/
|
}
|
||||||
err = MoveR1ToPos(PitkToRpp(g_workCtrl.workPos[MTR1_IDX]),NULL);
|
err = MoveR1ToPos(PitkToRpp(g_workCtrl.workPos[MTR1_IDX]),NULL);
|
||||||
|
|
||||||
if (err == ERR_NONE)
|
if (err == ERR_NONE)
|
||||||
@ -7603,6 +7345,7 @@ int OpticalWork(int mode)
|
|||||||
if(g_optWorkCtrl.opticalSta == 1)//断线检测报警
|
if(g_optWorkCtrl.opticalSta == 1)//断线检测报警
|
||||||
{
|
{
|
||||||
err = ERR_NO_MATERIAL_ERROR;
|
err = ERR_NO_MATERIAL_ERROR;
|
||||||
|
g_optWorkCtrl.opticalSta = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ReportError(err);
|
ReportError(err);
|
||||||
@ -7637,9 +7380,9 @@ int OpticalWork(int mode)
|
|||||||
if(g_optWorkCtrl.opticalSta == 1)//断线检测报警
|
if(g_optWorkCtrl.opticalSta == 1)//断线检测报警
|
||||||
{
|
{
|
||||||
err = ERR_NO_MATERIAL_ERROR;
|
err = ERR_NO_MATERIAL_ERROR;
|
||||||
g_optWorkCtrl.IsNoMaterialEn = 0;
|
|
||||||
g_optWorkCtrl.opticalSta = 0;
|
g_optWorkCtrl.opticalSta = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
OpticalCloseAll();
|
OpticalCloseAll();
|
||||||
UpClipMatClipCylinderOn(); // 上夹料开
|
UpClipMatClipCylinderOn(); // 上夹料开
|
||||||
|
|
||||||
@ -7699,11 +7442,9 @@ int OpticalWork(int mode)
|
|||||||
{
|
{
|
||||||
OpticalCloseAll();
|
OpticalCloseAll();
|
||||||
SetDatIdxToStart();
|
SetDatIdxToStart();
|
||||||
Fan1MotoOff();
|
|
||||||
err = OpticalGotoFinishPos();
|
err = OpticalGotoFinishPos();
|
||||||
}
|
}
|
||||||
|
|
||||||
g_optWorkCtrl.IsNoMaterialEn = 0;
|
|
||||||
|
|
||||||
g_workCtrl.cursta.workStatus &= ~(WORK_STA_BUSY|WORK_STA_WORKING); // 清除正在忙标志
|
g_workCtrl.cursta.workStatus &= ~(WORK_STA_BUSY|WORK_STA_WORKING); // 清除正在忙标志
|
||||||
|
|
||||||
@ -7821,7 +7562,6 @@ void AllToReset(void)
|
|||||||
g_optWorkCtrl.motopreFlag = 0; // 已经压料标志
|
g_optWorkCtrl.motopreFlag = 0; // 已经压料标志
|
||||||
// g_optWorkCtrl.lowingFlag = 1; // 需要下降机头标志
|
// g_optWorkCtrl.lowingFlag = 1; // 需要下降机头标志
|
||||||
|
|
||||||
Fan1MotoOff();
|
|
||||||
err = MoveU1ToPos(g_pOpticalMcPara->rkHighPos, NULL);//抬起机头
|
err = MoveU1ToPos(g_pOpticalMcPara->rkHighPos, NULL);//抬起机头
|
||||||
|
|
||||||
if (err == ERR_NONE)
|
if (err == ERR_NONE)
|
||||||
@ -8209,11 +7949,11 @@ int FastJump(u32 idx)
|
|||||||
{
|
{
|
||||||
err = STA_WORK_OVER; // 结束
|
err = STA_WORK_OVER; // 结束
|
||||||
}
|
}
|
||||||
/* else
|
else
|
||||||
{
|
{
|
||||||
err = MoveXYRS1P1ToWorkPos(&curDat, NULL, 0, 0);
|
err = MoveXYRS1P1ToWorkPos(&curDat, NULL, 0, 0);
|
||||||
}
|
}
|
||||||
printf("after move to work\r\n");*/
|
printf("after move to work\r\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8283,7 +8023,7 @@ int OpticalStartWork(void)
|
|||||||
|
|
||||||
|
|
||||||
ReportError(err);
|
ReportError(err);
|
||||||
// ReportError(ERR_NONE);
|
ReportError(ERR_NONE);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8566,19 +8306,6 @@ void OutputByHand(u16 obj, u16 act, u16 para)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case OT_FIXMAT: //顶料
|
|
||||||
{
|
|
||||||
if (act == UP_OPEN_ON)
|
|
||||||
{
|
|
||||||
FixMatCylinderOff(); // 顶料气缸
|
|
||||||
}
|
|
||||||
else // 关闭
|
|
||||||
{
|
|
||||||
FixMatCylinderOn(); // 顶料气缸
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case OT_BLOWING: // 放料
|
case OT_BLOWING: // 放料
|
||||||
{
|
{
|
||||||
if (act == UP_OPEN_ON)
|
if (act == UP_OPEN_ON)
|
||||||
|
|||||||
@ -19,52 +19,6 @@
|
|||||||
#include "shell.h"
|
#include "shell.h"
|
||||||
#include "opticalpara.h"
|
#include "opticalpara.h"
|
||||||
#include "workctrl.h"
|
#include "workctrl.h"
|
||||||
|
|
||||||
//-------------------------------功能模块配置------------------------------------------
|
|
||||||
|
|
||||||
#if (1)
|
|
||||||
|
|
||||||
#define MATERIAL_SCAN 1 // 无料检测(断线检测)
|
|
||||||
#define SCAN_TIMEINTERVAL 1 // 使用时间间隔检测传感器
|
|
||||||
|
|
||||||
#define FEEDINGBACK_ADJUST 1 // 使用送料电机反转调整
|
|
||||||
#define AFTERTURN_COMPEN 1 // 拐角补偿
|
|
||||||
|
|
||||||
#define XY_GAP_CONVERT 0 // 间隙补偿
|
|
||||||
|
|
||||||
#define MODULE_X 1 // X电机模块
|
|
||||||
#define X_FINDZERO_DIR 1 // = -1, X向负方向找零位传感器; = 1, X向正方向找零位传感器;
|
|
||||||
|
|
||||||
|
|
||||||
#define MODULE_Y 1 // Y电机模块
|
|
||||||
|
|
||||||
#define MODULE_FEED_LL 0 // 进料模块
|
|
||||||
|
|
||||||
#define MOTO_LIFT 0 // 电机升降
|
|
||||||
#define LIFT_U1 1 // 提升1模块
|
|
||||||
#define LIFT_U2 0 // 提升2模块
|
|
||||||
#define LIFT_U3 0 // 提升3模块
|
|
||||||
|
|
||||||
#define AIR_LIFT 0 // 气动升降
|
|
||||||
|
|
||||||
#define MOTO_TURN 1 // 电机旋转跟踪
|
|
||||||
#define TURN_R1 1 // 旋转1模块
|
|
||||||
#define TURN_R2 0 // 旋转2模块
|
|
||||||
#define TURN_R3 0 // 旋转3模块
|
|
||||||
|
|
||||||
#define MODULE_SEND 1 //送料电机模块
|
|
||||||
#define MODULE_PULL 1 //拉料电机模块
|
|
||||||
#define MODULE_LOOSE 1 //松料电机模块
|
|
||||||
|
|
||||||
#define MODULE_PUSH 0 //推料
|
|
||||||
|
|
||||||
#define POS_EN_NONE 0x0000
|
|
||||||
#define POS_EN_X 0x0001
|
|
||||||
#define POS_EN_Y 0x0002
|
|
||||||
#define POS_EN_XY 0x0003
|
|
||||||
|
|
||||||
#endif
|
|
||||||
//---------------------------------------------------------------------------------------------------
|
|
||||||
//----------------------------------------工作控制参数定义------------------------------------
|
//----------------------------------------工作控制参数定义------------------------------------
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
@ -91,14 +45,11 @@ typedef struct
|
|||||||
|
|
||||||
//补偿
|
//补偿
|
||||||
u8 runSteps1; //
|
u8 runSteps1; //
|
||||||
u8 drZeroNum; //直线段数
|
|
||||||
s16 oldXCompenAfterTurn; // oldX拐弯之后的补偿
|
s16 oldXCompenAfterTurn; // oldX拐弯之后的补偿
|
||||||
s16 oldYCompenAfterTurn; // oldY拐弯之后的补偿
|
s16 oldYCompenAfterTurn; // oldY拐弯之后的补偿
|
||||||
s16 xCompenAfterTurn; // x拐弯之后的补偿
|
s16 xCompenAfterTurn; // x拐弯之后的补偿
|
||||||
s16 yCompenAfterTurn; // y拐弯之后的补偿
|
s16 yCompenAfterTurn; // y拐弯之后的补偿
|
||||||
s32 begainRBeforeWiring; // 布线起始角度
|
s32 begainRBeforeWiring; // 布线起始角度
|
||||||
s32 begainXBeforeWiring; // 布线起始位置X
|
|
||||||
s32 begainYBeforeWiring; // 布线起始位置Y
|
|
||||||
u8 compenFlag1; // 可以补偿标志
|
u8 compenFlag1; // 可以补偿标志
|
||||||
|
|
||||||
//-----------------------
|
//-----------------------
|
||||||
@ -108,11 +59,6 @@ typedef struct
|
|||||||
s32 IsNoMaterialScanLen; // 断线检测扫描长度
|
s32 IsNoMaterialScanLen; // 断线检测扫描长度
|
||||||
u8 IsNoMaterialFlag; // 断线标志 =0断线
|
u8 IsNoMaterialFlag; // 断线标志 =0断线
|
||||||
u8 IsNoMaterialEn; // 断线检测扫描启动
|
u8 IsNoMaterialEn; // 断线检测扫描启动
|
||||||
#if(SCAN_TIMEINTERVAL == 1)
|
|
||||||
u32 IsNoMaterialStart; // 断线检测扫描启动
|
|
||||||
u32 IsNoMaterialScanTime; // 断线检测扫描时间
|
|
||||||
u32 IsNoMaterialTime; // 断线检测已扫描时间
|
|
||||||
#endif
|
|
||||||
//-----------------------
|
//-----------------------
|
||||||
s32 encoder1Vale; // 编码器1值
|
s32 encoder1Vale; // 编码器1值
|
||||||
s32 encoder2Vale; // 编码器2值
|
s32 encoder2Vale; // 编码器2值
|
||||||
@ -127,14 +73,10 @@ typedef struct
|
|||||||
|
|
||||||
u8 usecomx; // 使用反向运行补偿
|
u8 usecomx; // 使用反向运行补偿
|
||||||
u8 usecomy; // 使用反向运行补偿
|
u8 usecomy; // 使用反向运行补偿
|
||||||
// u8 useGapCorx; // 使用反向对接间隙补偿
|
u8 useGapCorx; // 使用反向对接间隙补偿
|
||||||
// u8 useGapCory; // 使用反向对接间隙补偿
|
u8 useGapCory; // 使用反向对接间隙补偿
|
||||||
int spinLenOffset; // 偏移长度
|
int spinLenOffset; // 偏移长度
|
||||||
#if(FEEDINGBACK_ADJUST == 1)
|
|
||||||
u8 feedingOpit; // 送光纤
|
|
||||||
u8 collectingOpit; // 收光纤
|
|
||||||
u8 pointOpit; // 布线中
|
|
||||||
#endif
|
|
||||||
}OptWorkCtrl;
|
}OptWorkCtrl;
|
||||||
|
|
||||||
OptWorkCtrl g_optWorkCtrl;
|
OptWorkCtrl g_optWorkCtrl;
|
||||||
@ -154,23 +96,51 @@ typedef struct
|
|||||||
OptBorder g_optBorder;
|
OptBorder g_optBorder;
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
#define FUNC_BIT0 0x01
|
|
||||||
#define FUNC_BIT1 0x02
|
|
||||||
#define FUNC_BIT2 0x04
|
//-------------------------------功能模块配置------------------------------------------
|
||||||
#define FUNC_BIT3 0x08
|
|
||||||
#define FUNC_BIT4 0x10
|
#if (1)
|
||||||
#define FUNC_BIT5 0x20
|
|
||||||
#define FUNC_BIT6 0x40
|
#define MATERIAL_SCAN 1 // 无料检测(断线检测)
|
||||||
#define FUNC_BIT7 0x80
|
|
||||||
#define FUNC_BIT8 0x100
|
#define AFTERTURN_COMPEN 0 // 拐角补偿
|
||||||
#define FUNC_BIT9 0x200
|
|
||||||
#define FUNC_BIT10 0x400
|
#define XY_GAP_CONVERT 0 // 间隙补偿
|
||||||
#define FUNC_BIT11 0x800
|
|
||||||
#define FUNC_BIT12 0x1000
|
#define MODULE_X 1 // X电机模块
|
||||||
#define FUNC_BIT13 0x2000
|
#define X_FINDZERO_DIR 1 // = -1, X向负方向找零位传感器; = 1, X向正方向找零位传感器;
|
||||||
#define FUNC_BIT14 0x4000
|
|
||||||
#define FUNC_BIT15 0x8000
|
|
||||||
#define FUNC_BIT16 0x10000
|
#define MODULE_Y 1 // Y电机模块
|
||||||
|
|
||||||
|
#define MODULE_FEED_LL 0 // 进料模块
|
||||||
|
|
||||||
|
#define MOTO_LIFT 1 // 电机升降
|
||||||
|
#define LIFT_U1 1 // 提升1模块
|
||||||
|
#define LIFT_U2 0 // 提升2模块
|
||||||
|
#define LIFT_U3 0 // 提升3模块
|
||||||
|
|
||||||
|
#define AIR_LIFT 0 // 气动升降
|
||||||
|
|
||||||
|
#define MOTO_TURN 1 // 电机旋转跟踪
|
||||||
|
#define TURN_R1 1 // 旋转1模块
|
||||||
|
#define TURN_R2 0 // 旋转2模块
|
||||||
|
#define TURN_R3 0 // 旋转3模块
|
||||||
|
|
||||||
|
#define MODULE_SEND 1 //送料电机模块
|
||||||
|
#define MODULE_PULL 1 //拉料电机模块
|
||||||
|
#define MODULE_LOOSE 1 //松料电机模块
|
||||||
|
|
||||||
|
|
||||||
|
#define POS_EN_NONE 0x0000
|
||||||
|
#define POS_EN_X 0x0001
|
||||||
|
#define POS_EN_Y 0x0002
|
||||||
|
#define POS_EN_XY 0x0003
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//---------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------输入输出信号---------------------------------------------
|
//-------------------------------------------输入输出信号---------------------------------------------
|
||||||
@ -240,15 +210,10 @@ OptBorder g_optBorder;
|
|||||||
#define CORE_INPUT16_IDX DSS_DEF_IDX
|
#define CORE_INPUT16_IDX DSS_DEF_IDX
|
||||||
#define CORE_INPUT16_BIT DSS_DEF_BIT
|
#define CORE_INPUT16_BIT DSS_DEF_BIT
|
||||||
|
|
||||||
#if(AIR_LIFT == 1)
|
// J16
|
||||||
#define IN_ADJUST_LIFT_HIGH FUNC_BIT0 // 机头升降上位
|
#define IsBlowingCylinderPlaceOn() GetExInput(1)
|
||||||
#define IN_ADJUST_LIFT_LOW FUNC_BIT1 // 机头升降下位
|
#define CORE_INPUT17_IDX DSS_DEF_IDX
|
||||||
#endif
|
#define CORE_INPUT17_BIT DSS_DEF_BIT
|
||||||
|
|
||||||
#if(MODULE_PUSH == 1)
|
|
||||||
#define IN_ADJUST_PUSH_ON FUNC_BIT2 // 推料出位
|
|
||||||
#define IN_ADJUST_PUSH_OFF FUNC_BIT3 // 推料回位
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//输出信号
|
//输出信号
|
||||||
// H1
|
// H1
|
||||||
@ -273,26 +238,8 @@ OptBorder g_optBorder;
|
|||||||
#define Fan1MotoOn Output7On // 风机正转开
|
#define Fan1MotoOn Output7On // 风机正转开
|
||||||
#define Fan1MotoOff Output7Off // 风机正转关
|
#define Fan1MotoOff Output7Off // 风机正转关
|
||||||
|
|
||||||
#define LooseMotorOn Output8On // 松料电机反转开
|
|
||||||
#define LooseMotorOff Output8Off // 松料电机反转关
|
|
||||||
|
|
||||||
#if(MAX_SUPPORT_EXTIO >= 1)
|
|
||||||
#define FixMatCylinderOn() do{SetExtOutputOn(1,FUNC_BIT0);}while(0)//顶料气缸开
|
|
||||||
#define FixMatCylinderOff() do{SetExtOutputOff(1,FUNC_BIT0);}while(0)//顶料气缸关
|
|
||||||
#else
|
|
||||||
#define FixMatCylinderOn() do{SetExOutput(1,0);}while(0)//顶料气缸开
|
#define FixMatCylinderOn() do{SetExOutput(1,0);}while(0)//顶料气缸开
|
||||||
#define FixMatCylinderOff() do{SetExOutput(1,1);}while(0)//顶料气缸关
|
#define FixMatCylinderOff() do{SetExOutput(1,1);}while(0)//顶料气缸关
|
||||||
#endif
|
|
||||||
|
|
||||||
#if(AIR_LIFT == 1)
|
|
||||||
#define HeadLiftUp() do{SetExtOutputOn(1,FUNC_BIT1);}while(0)//机头升降上升
|
|
||||||
#define HeadLiftDown() do{SetExtOutputOff(1,FUNC_BIT1);}while(0)//机头升降下降
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if(MODULE_PUSH == 1)
|
|
||||||
#define PushMatCylinderOn() do{SetExtOutputOn(1,FUNC_BIT2);}while(0)//推料气缸开
|
|
||||||
#define PushMatCylinderOff() do{SetExtOutputOff(1,FUNC_BIT2);}while(0)//推料气缸开
|
|
||||||
#endif
|
|
||||||
//输入输出信号名称
|
//输入输出信号名称
|
||||||
static const char g_opticalInputName[INPUT_NUM][INPUT_STR_LEN] =
|
static const char g_opticalInputName[INPUT_NUM][INPUT_STR_LEN] =
|
||||||
{
|
{
|
||||||
@ -506,8 +453,8 @@ static const char g_opticalOutputName[OUTPUT_NUM][OUTPUT_STR_LEN] =
|
|||||||
#define OT_OWNCLIP 0x0110 // 下夹料气缸控制 开/关
|
#define OT_OWNCLIP 0x0110 // 下夹料气缸控制 开/关
|
||||||
#define OT_UPCLIP 0x0111 // 上夹料气缸控制 开/关
|
#define OT_UPCLIP 0x0111 // 上夹料气缸控制 开/关
|
||||||
#define OT_HEAD_SPIN 0x0112 // 机头旋转控制
|
#define OT_HEAD_SPIN 0x0112 // 机头旋转控制
|
||||||
#define OT_FIXMAT 0x0113 // 顶料气缸控制 开/关
|
|
||||||
|
|
||||||
|
#define OT_RESERVE1 0x0113 // 预留1
|
||||||
#define OT_RESERVE2 0x0114 // 预留2
|
#define OT_RESERVE2 0x0114 // 预留2
|
||||||
|
|
||||||
#define OT_HEAD_UPDOWN 0x0119 // 机头升降控制
|
#define OT_HEAD_UPDOWN 0x0119 // 机头升降控制
|
||||||
|
|||||||
@ -113,7 +113,7 @@ typedef struct
|
|||||||
u32 rkLiftAng; // 加工抬刀角度,范围 0--18000,单位0.01度
|
u32 rkLiftAng; // 加工抬刀角度,范围 0--18000,单位0.01度
|
||||||
s32 opitEndPosOffset; // 吐丝结束位置偏移, 范围:0--2000,单位0.01mm
|
s32 opitEndPosOffset; // 吐丝结束位置偏移, 范围:0--2000,单位0.01mm
|
||||||
//155
|
//155
|
||||||
u32 PreWaitTime; // 压料延时时间,范围 0--5000,单位ms
|
u32 rev156;
|
||||||
u32 rev157;
|
u32 rev157;
|
||||||
u32 rev158;
|
u32 rev158;
|
||||||
u32 rev159;
|
u32 rev159;
|
||||||
@ -360,7 +360,7 @@ static const char * g_opticalMcParastrlist[PARA_NUM] =
|
|||||||
"加工抬刀角度",
|
"加工抬刀角度",
|
||||||
"吐丝结束位置偏移",
|
"吐丝结束位置偏移",
|
||||||
// 155
|
// 155
|
||||||
"压料延时时间",
|
"",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
@ -675,7 +675,7 @@ static const u32 g_defOpticalMcParaList[PARA_NUM][4] =
|
|||||||
{PTYPE_U, 0, 18000, 0}, // u32 rkLiftAng; // 加工抬刀角度,范围 0--18000,单位0.01度
|
{PTYPE_U, 0, 18000, 0}, // u32 rkLiftAng; // 加工抬刀角度,范围 0--18000,单位0.01度
|
||||||
{PTYPE_S, 0, 2000,1000}, // s32 opitEndPosOffset; // 吐丝结束位置偏移, 范围:0--2000,单位0.01mm
|
{PTYPE_S, 0, 2000,1000}, // s32 opitEndPosOffset; // 吐丝结束位置偏移, 范围:0--2000,单位0.01mm
|
||||||
// 155
|
// 155
|
||||||
{PTYPE_U, 0, 5000, 200}, // u32 PreWaitTime; // 压料延时时间,范围 0--5000,单位ms
|
{PTYPE_U, 0, 0, 0}, //
|
||||||
{PTYPE_U, 0, 0, 0}, //
|
{PTYPE_U, 0, 0, 0}, //
|
||||||
{PTYPE_U, 0, 0, 0}, //
|
{PTYPE_U, 0, 0, 0}, //
|
||||||
{PTYPE_U, 0, 0, 0}, //
|
{PTYPE_U, 0, 0, 0}, //
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user