第二台布线机,更改了送料储料机制,增加动态调节。
更换断线检测传感器检测机制。
This commit is contained in:
parent
27e0231636
commit
9e0e6c5fb6
@ -5892,8 +5892,8 @@ int OpticalRefreshDat(u32 para1, u32 para2)
|
||||
diry += g_optWorkCtrl.yCompenAfterTurn;
|
||||
g_optWorkCtrl.compenFlag1 = 0;
|
||||
|
||||
// g_optWorkCtrl.oldXCompenAfterTurn = g_optWorkCtrl.xCompenAfterTurn;
|
||||
// g_optWorkCtrl.oldYCompenAfterTurn = g_optWorkCtrl.yCompenAfterTurn;
|
||||
g_optWorkCtrl.oldXCompenAfterTurn = g_optWorkCtrl.xCompenAfterTurn;
|
||||
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]);
|
||||
@ -5990,7 +5990,6 @@ int OpticalRefreshDat(u32 para1, u32 para2)
|
||||
}
|
||||
else if(pFlCtrl->dtype == DATA_OPTI) // 吐丝数据
|
||||
{
|
||||
|
||||
// //速度匹配
|
||||
// if(IsOptStoringHigh2() == SENSOR_ON )
|
||||
// {
|
||||
@ -6228,12 +6227,8 @@ int OpticalRefreshDat(u32 para1, u32 para2)
|
||||
}
|
||||
|
||||
#if(AFTERTURN_COMPEN == 1)
|
||||
|
||||
void XYCompenCalcuAfterTurning(DataItem datItem)
|
||||
{
|
||||
s32 turnr;
|
||||
s32 abposr;
|
||||
DataItem tempDat;
|
||||
if(((datItem.dx != 0) || (datItem.dy != 0)) && (datItem.attr != DATA_PRESSURE))
|
||||
{
|
||||
if((datItem.dr == 0) && (g_optWorkCtrl.runSteps1 == 0))//先直线
|
||||
@ -6242,139 +6237,15 @@ void XYCompenCalcuAfterTurning(DataItem datItem)
|
||||
}
|
||||
else if((datItem.dr != 0) && (g_optWorkCtrl.runSteps1 == 10))//后拐弯
|
||||
{
|
||||
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.begainRBeforeWiring = g_workCtrl.workPos[MTR1_IDX];//用来计算补偿
|
||||
g_optWorkCtrl.runSteps1 = 20;
|
||||
printf("begin %d\r\n",g_optWorkCtrl.begainRBeforeWiring);
|
||||
}
|
||||
else if((datItem.dr == 0) && (g_optWorkCtrl.runSteps1 == 20))//拐弯之后
|
||||
{
|
||||
for(int i = 1; i < 6; i++)
|
||||
{
|
||||
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.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;
|
||||
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;
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -6531,16 +6402,20 @@ int OpticalWork(int mode)
|
||||
err = MoveU1ToPos(g_pOpticalMcPara->rkHighPos, NULL);//抬起机头
|
||||
|
||||
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_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_optWorkCtrl.usecomy = 1;
|
||||
}
|
||||
/* if (err == ERR_NONE)
|
||||
{
|
||||
err = MoveXYToPos(-1100, -6000, NULL);
|
||||
}*/
|
||||
if (err == ERR_NONE)
|
||||
{
|
||||
err = MoveXYRS1P1ToWorkPos(&curDat, NULL, 1, 0);
|
||||
@ -6809,7 +6684,6 @@ int OpticalWork(int mode)
|
||||
// 吐丝数据动作处理
|
||||
if (curDat.ctrl == DATA_OPTI)
|
||||
{
|
||||
// g_optWorkCtrl.runSteps1 = 0;
|
||||
g_optWorkCtrl.motoRunFlag = 1;
|
||||
err = MoveR1ToPos(2500, NULL);//旋转到吐丝位置:90°
|
||||
|
||||
@ -6880,8 +6754,8 @@ int OpticalWork(int mode)
|
||||
{
|
||||
g_optWorkCtrl.IsNoMaterialScanLen = g_pOpticalMcPara->materialFreeScanNum;
|
||||
|
||||
// g_optWorkCtrl.oldXCompenAfterTurn = 0;
|
||||
// g_optWorkCtrl.oldYCompenAfterTurn = 0;
|
||||
g_optWorkCtrl.oldXCompenAfterTurn = 0;
|
||||
g_optWorkCtrl.oldYCompenAfterTurn = 0;
|
||||
|
||||
if(err == ERR_NONE)
|
||||
{
|
||||
@ -7154,7 +7028,7 @@ int OpticalWork(int mode)
|
||||
//布线结束后偏移到吐丝位置(判定:偏移数据前是布线数据,后是吐丝数据)
|
||||
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_optWorkCtrl.useGapCorx = 0;
|
||||
@ -7163,7 +7037,7 @@ int OpticalWork(int mode)
|
||||
{
|
||||
g_workCtrl.workPos[MTY_IDX] -= g_pOpticalMcPara->yGapCorrect;
|
||||
g_optWorkCtrl.useGapCory = 0;
|
||||
}*/
|
||||
}
|
||||
spinLenForOffset = GetSyntheticLength(datx2 - datx1,daty2 - daty1);
|
||||
g_optWorkCtrl.isEndOfSpinFlag = 1;
|
||||
g_optWorkCtrl.cutingFlag = 1;
|
||||
@ -7287,14 +7161,26 @@ int OpticalWork(int mode)
|
||||
//前一根布线结束移到下一根布线起始(判定:偏移数据前是吐丝数据,后是吐丝数据)
|
||||
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);//抬起机头
|
||||
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_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_optWorkCtrl.usecomy = 1;
|
||||
@ -7335,7 +7221,7 @@ int OpticalWork(int mode)
|
||||
{
|
||||
FixMatCylinderOn();//顶料顶料
|
||||
DelayRef(200);
|
||||
/* ReadMotosPos(); //起始点到偏移的位置和移动到起始点反向增加间隙补偿
|
||||
ReadMotosPos(); //起始点到偏移的位置和移动到起始点反向增加间隙补偿
|
||||
|
||||
if(g_workCtrl.workPos[MTX_IDX] < g_motosPara.motosPos[MTX_IDX])
|
||||
{
|
||||
@ -7346,7 +7232,7 @@ int OpticalWork(int mode)
|
||||
{
|
||||
g_workCtrl.workPos[MTY_IDX] += g_pOpticalMcPara->yGapCorrect;
|
||||
g_optWorkCtrl.useGapCory = 1;
|
||||
}*/
|
||||
}
|
||||
err = MoveR1ToPos(PitkToRpp(g_workCtrl.workPos[MTR1_IDX]),NULL);
|
||||
|
||||
if (err == ERR_NONE)
|
||||
@ -7556,7 +7442,6 @@ int OpticalWork(int mode)
|
||||
{
|
||||
OpticalCloseAll();
|
||||
SetDatIdxToStart();
|
||||
Fan1MotoOff();
|
||||
err = OpticalGotoFinishPos();
|
||||
}
|
||||
|
||||
@ -7677,7 +7562,6 @@ void AllToReset(void)
|
||||
g_optWorkCtrl.motopreFlag = 0; // 已经压料标志
|
||||
// g_optWorkCtrl.lowingFlag = 1; // 需要下降机头标志
|
||||
|
||||
Fan1MotoOff();
|
||||
err = MoveU1ToPos(g_pOpticalMcPara->rkHighPos, NULL);//抬起机头
|
||||
|
||||
if (err == ERR_NONE)
|
||||
|
||||
@ -45,14 +45,11 @@ typedef struct
|
||||
|
||||
//补偿
|
||||
u8 runSteps1; //
|
||||
u8 drZeroNum; //直线段数
|
||||
s16 oldXCompenAfterTurn; // oldX拐弯之后的补偿
|
||||
s16 oldYCompenAfterTurn; // oldY拐弯之后的补偿
|
||||
s16 xCompenAfterTurn; // x拐弯之后的补偿
|
||||
s16 yCompenAfterTurn; // y拐弯之后的补偿
|
||||
s32 begainRBeforeWiring; // 布线起始角度
|
||||
s32 begainXBeforeWiring; // 布线起始位置X
|
||||
s32 begainYBeforeWiring; // 布线起始位置Y
|
||||
u8 compenFlag1; // 可以补偿标志
|
||||
|
||||
//-----------------------
|
||||
@ -76,8 +73,8 @@ typedef struct
|
||||
|
||||
u8 usecomx; // 使用反向运行补偿
|
||||
u8 usecomy; // 使用反向运行补偿
|
||||
// u8 useGapCorx; // 使用反向对接间隙补偿
|
||||
// u8 useGapCory; // 使用反向对接间隙补偿
|
||||
u8 useGapCorx; // 使用反向对接间隙补偿
|
||||
u8 useGapCory; // 使用反向对接间隙补偿
|
||||
int spinLenOffset; // 偏移长度
|
||||
|
||||
}OptWorkCtrl;
|
||||
@ -107,7 +104,7 @@ OptBorder g_optBorder;
|
||||
|
||||
#define MATERIAL_SCAN 1 // 无料检测(断线检测)
|
||||
|
||||
#define AFTERTURN_COMPEN 1 // 拐角补偿
|
||||
#define AFTERTURN_COMPEN 0 // 拐角补偿
|
||||
|
||||
#define XY_GAP_CONVERT 0 // 间隙补偿
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user