Compare commits

...

3 Commits

Author SHA1 Message Date
f1708a9836 增加按压时间设定 2026-01-16 09:38:06 +08:00
9e0e6c5fb6 第二台布线机,更改了送料储料机制,增加动态调节。
更换断线检测传感器检测机制。
2025-12-10 14:50:34 +08:00
27e0231636 优化间隙补偿,增加风机自动控制动作 2025-10-21 09:14:38 +08:00
3 changed files with 447 additions and 121 deletions

View File

@ -279,7 +279,9 @@ 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 ) // 松料允许;非模拟状态
@ -308,6 +310,9 @@ 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");
@ -318,13 +323,39 @@ int SendOpticalTask(void) //
if((IsOptStoringLow1() == SENSOR_ON) || if((IsOptStoringLow1() == SENSOR_ON) ||
0) 0)
{ {
#if(FEEDINGBACK_ADJUST == 1)
if(g_optWorkCtrl.feedingOpit == 1)
{
#endif
LooseMotorRevOff(); // 松料电机 停止 LooseMotorRevOff(); // 松料电机 停止
} #if(FEEDINGBACK_ADJUST == 1)
g_optWorkCtrl.feedingOpit = 0;
} }
} }
//工作中光纤储料低位1没触发且送料电机转动时启动松料电机 else
{
if(g_optWorkCtrl.collectingOpit == 1)
{
LooseMotorOff();
g_optWorkCtrl.collectingOpit = 0;
}
#endif
}
}
}
#if(FEEDINGBACK_ADJUST == 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;
} }
@ -333,7 +364,7 @@ int SendOpticalTask(void) //
void OpticalTimerTask(void) void OpticalTimerTask(void)
{ {
SendStatus(1); // 发送状态 SendStatus(1); // 发送状态
OperatorTaskWhenRun(0); // OperatorTaskWhenRun(0);
} }
int OpticalCloseAll(void) int OpticalCloseAll(void)
@ -357,11 +388,17 @@ int sendOpticalTaskWhenRun(void) //
//光纤储料低位1/2触发开始松料 //光纤储料低位1/2触发开始松料
int err = ERR_NONE; int err = ERR_NONE;
#if(FEEDINGBACK_ADJUST == 1)
if(g_optWorkCtrl.pointOpit == 1)
{
#endif
if ((IsOptStoringLow2() == SENSOR_ON) || if ((IsOptStoringLow2() == SENSOR_ON) ||
(IsOptStoringLow1() != SENSOR_ON) || (IsOptStoringLow1() != 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");
@ -373,11 +410,52 @@ int sendOpticalTaskWhenRun(void) //
0) 0)
{ {
LooseMotorRevOff(); // 松料电机 停止 LooseMotorRevOff(); // 松料电机 停止
#if(FEEDINGBACK_ADJUST == 1)
g_optWorkCtrl.feedingOpit = 0;
#endif
} }
} }
//工作中光纤储料低位1没触发且送料电机转动时启动松料电机 #if(FEEDINGBACK_ADJUST == 1)
}
else
{
if ((IsOptStoringLow2() == SENSOR_ON) ||
0)
{
g_optWorkCtrl.feedingOpit = 1;
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
return err; return err;
} }
#if(MATERIAL_SCAN == 1) #if(MATERIAL_SCAN == 1)
@ -388,6 +466,7 @@ 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)
// { // {
@ -407,7 +486,6 @@ 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))
{ {
@ -435,8 +513,48 @@ 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
@ -3798,7 +3916,7 @@ int MoveMTS1BHStop_a(u32 para1,u32 para2) // ֹͣ
int MTP_1PulseToP1Pulse(s32 Pulse) int MTP_1PulseToP1Pulse(s32 Pulse)
{ {
Pulse *= 8.488;// 8.488p/mm Pulse *= 8.488;// 8.488p/mm 电机每圈400脉冲外径15
return Pulse; return Pulse;
} }
@ -4769,8 +4887,11 @@ 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;
} }
@ -4791,7 +4912,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)
@ -4815,8 +4936,11 @@ 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;
} }
@ -5452,9 +5576,13 @@ 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;
} }
@ -5892,8 +6020,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]);
@ -5990,6 +6118,7 @@ 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 )
// { // {
@ -6227,8 +6356,12 @@ 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))//先直线
@ -6237,15 +6370,139 @@ void XYCompenCalcuAfterTurning(DataItem datItem)
} }
else if((datItem.dr != 0) && (g_optWorkCtrl.runSteps1 == 10))//后拐弯 else if((datItem.dr != 0) && (g_optWorkCtrl.runSteps1 == 10))//后拐弯
{ {
g_optWorkCtrl.begainRBeforeWiring = g_workCtrl.workPos[MTR1_IDX];//用来计算补偿 ReadAndFreshMotosPos();
// 转化为 -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))//拐弯之后
{ {
g_optWorkCtrl.xCompenAfterTurn = g_pOpticalMcPara->rkMatThickness/100*cos(g_optWorkCtrl.begainRBeforeWiring/10000) - g_optWorkCtrl.oldXCompenAfterTurn; for(int i = 1; i < 6; i++)
g_optWorkCtrl.yCompenAfterTurn = g_pOpticalMcPara->rkMatThickness/100*sin(g_optWorkCtrl.begainRBeforeWiring/10000) - g_optWorkCtrl.oldYCompenAfterTurn; {
if(GetADataItem(0, (GetDatIndex() + i), &tempDat) == 0)
{
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; 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;
// }
} }
} }
} }
@ -6339,6 +6596,9 @@ 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(); // 吸风开
@ -6402,20 +6662,16 @@ 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]) if(g_workCtrl.workPos[MTX_IDX] <= (g_motosPara.motosPos[MTX_IDX] + 200))
{ {
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]) if(g_workCtrl.workPos[MTY_IDX] <= (g_motosPara.motosPos[MTY_IDX] + 200))
{ {
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);
@ -6426,11 +6682,13 @@ 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;
} }
@ -6554,6 +6812,9 @@ 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())
@ -6590,6 +6851,9 @@ 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();//上夹料松开
@ -6684,6 +6948,10 @@ 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°
@ -6754,8 +7022,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)
{ {
@ -6771,9 +7039,9 @@ int OpticalWork(int mode)
{ {
err = MoveU1ToPos(g_pOpticalMcPara->rkLowPos, NULL);//机头下降 err = MoveU1ToPos(g_pOpticalMcPara->rkLowPos, NULL);//机头下降
PreMatCylinderOn();//压料 PreMatCylinderOn();//压料
DelayRef(200); DelayRef(g_pOpticalMcPara->PreWaitTime);
PreMatCylinderOff();//压料松开 PreMatCylinderOff();//压料松开
DelayRef(300); DelayRef(100);
UpClipMatClipCylinderOn();//上夹料夹料 UpClipMatClipCylinderOn();//上夹料夹料
} }
if(err == ERR_NONE) if(err == ERR_NONE)
@ -7028,7 +7296,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;
@ -7037,7 +7305,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;
@ -7161,26 +7429,14 @@ 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]) if(g_workCtrl.workPos[MTX_IDX] <= (g_motosPara.motosPos[MTX_IDX] + 200))
{ {
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]) if(g_workCtrl.workPos[MTY_IDX] <= (g_motosPara.motosPos[MTY_IDX] + 200))
{ {
g_workCtrl.workPos[MTY_IDX] -= g_pOpticalMcPara->startPosoffy; g_workCtrl.workPos[MTY_IDX] -= g_pOpticalMcPara->startPosoffy;
g_optWorkCtrl.usecomy = 1; g_optWorkCtrl.usecomy = 1;
@ -7195,11 +7451,13 @@ 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;
} }
@ -7221,7 +7479,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])
{ {
@ -7232,7 +7490,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)
@ -7345,7 +7603,6 @@ 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);
@ -7380,9 +7637,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(); // 上夹料开
@ -7442,9 +7699,11 @@ 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); // 清除正在忙标志
@ -7562,6 +7821,7 @@ 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)
@ -7949,11 +8209,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");*/
} }
} }
@ -8023,7 +8283,7 @@ int OpticalStartWork(void)
ReportError(err); ReportError(err);
ReportError(ERR_NONE); // ReportError(ERR_NONE);
return err; return err;
} }
@ -8306,6 +8566,19 @@ 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)

View File

@ -19,6 +19,52 @@
#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
@ -45,11 +91,14 @@ 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; // 可以补偿标志
//----------------------- //-----------------------
@ -59,6 +108,11 @@ 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值
@ -73,10 +127,14 @@ 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;
@ -96,51 +154,23 @@ typedef struct
OptBorder g_optBorder; OptBorder g_optBorder;
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
#define FUNC_BIT0 0x01
#define FUNC_BIT1 0x02
//-------------------------------功能模块配置------------------------------------------ #define FUNC_BIT2 0x04
#define FUNC_BIT3 0x08
#if (1) #define FUNC_BIT4 0x10
#define FUNC_BIT5 0x20
#define MATERIAL_SCAN 1 // 无料检测(断线检测) #define FUNC_BIT6 0x40
#define FUNC_BIT7 0x80
#define AFTERTURN_COMPEN 0 // 拐角补偿 #define FUNC_BIT8 0x100
#define FUNC_BIT9 0x200
#define XY_GAP_CONVERT 0 // 间隙补偿 #define FUNC_BIT10 0x400
#define FUNC_BIT11 0x800
#define MODULE_X 1 // X电机模块 #define FUNC_BIT12 0x1000
#define X_FINDZERO_DIR 1 // = -1, X向负方向找零位传感器; = 1, X向正方向找零位传感器; #define FUNC_BIT13 0x2000
#define FUNC_BIT14 0x4000
#define FUNC_BIT15 0x8000
#define MODULE_Y 1 // Y电机模块 #define FUNC_BIT16 0x10000
#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
//---------------------------------------------------------------------------------------------------
//-------------------------------------------输入输出信号--------------------------------------------- //-------------------------------------------输入输出信号---------------------------------------------
@ -210,10 +240,15 @@ 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
// J16 #if(AIR_LIFT == 1)
#define IsBlowingCylinderPlaceOn() GetExInput(1) #define IN_ADJUST_LIFT_HIGH FUNC_BIT0 // 机头升降上位
#define CORE_INPUT17_IDX DSS_DEF_IDX #define IN_ADJUST_LIFT_LOW FUNC_BIT1 // 机头升降下位
#define CORE_INPUT17_BIT DSS_DEF_BIT #endif
#if(MODULE_PUSH == 1)
#define IN_ADJUST_PUSH_ON FUNC_BIT2 // 推料出位
#define IN_ADJUST_PUSH_OFF FUNC_BIT3 // 推料回位
#endif
//输出信号 //输出信号
// H1 // H1
@ -238,8 +273,26 @@ 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] =
{ {
@ -453,8 +506,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 // 机头升降控制

View File

@ -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 rev156; u32 PreWaitTime; // 压料延时时间,范围 0--5000单位ms
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, 0, 0}, // {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}, //