Commit a859c3a1 张东亮

左侧放料检查问题修改

1 个父辈 fe52978a
......@@ -43,6 +43,7 @@ namespace DeviceLibrary
/// 料盘高度
/// </summary>
public int PlateH { get; set; }
public int PlwHight { get; set; }
/// <summary>
/// 料盘宽度
/// </summary>
......
......@@ -58,11 +58,16 @@ namespace DeviceLibrary
}
bool checkReelIsPutOk(int curPos)
{
if ((RightMoveInfo.MoveStep >= MoveStep.R12_ShelfNoTray) || RightMoveInfo.MoveStep == MoveStep.Wait)//无料盘.空料串时定位信号不亮
{
LeftMoveInfo.log("右侧已无料盘,该盘为最后一盘,不检测");
return true;
}
bool enableCheck = ConfigHelper.Config.Get("左侧料盘放料串检查是否启用", true);
if (enableCheck)
{
var aixH = 1f * Math.Abs(_leftBatchAxisPositionWhileTrayCheck - curPos) / Config.Left_Batch_ChangeValue;
int plateH = LeftMoveInfo.MoveParam.PlateH == 0 ? PlwHight / Config.Right_Batch_ChangeValue:LeftMoveInfo.MoveParam.PlateH;
float plateH = Math.Max(LeftMoveInfo.MoveParam.PlwHight / Config.Right_Batch_ChangeValue, LeftMoveInfo.MoveParam.PlateH);
var canErrorMM = ConfigHelper.Config.Get("左侧料盘放料串检查厚度最大偏差值", 5);
if (Math.Abs(aixH - plateH) <= canErrorMM)
{
......@@ -107,13 +112,17 @@ namespace DeviceLibrary
case MoveStep.L03:
LeftMoveInfo.NextMoveStep(MoveStep.L04);
int targetP1 = Left_Batch_Axis.GetAclPosition() - ConfigHelper.Config.Get("LeftAxisDownValue", 50) * Config.Left_Batch_ChangeValue;
int currpoint = Left_Batch_Axis.GetAclPosition();
if (PlwHight > 5000)
{
int currpoint = Left_Batch_Axis.GetAclPosition();
int countPleHight = PlwHight / Config.Right_Batch_ChangeValue * Config.Left_Batch_ChangeValue;
targetP1 = currpoint - countPleHight + 5000;
LeftMoveInfo.MoveParam.PlateH = countPleHight / Config.Left_Batch_ChangeValue;
LeftMoveInfo.log($"出料提升机构,获取到料盘高度脉冲{PlwHight},当前位置{currpoint},计算盘高{LeftMoveInfo.MoveParam.PlateH}");
var target = currpoint - countPleHight + 5000;
if (target < targetP1)
{
targetP1 = target;
LeftMoveInfo.MoveParam.PlateH = countPleHight / Config.Left_Batch_ChangeValue;
LeftMoveInfo.log($"出料提升机构,获取到料盘高度脉冲{PlwHight},当前位置{currpoint},计算盘高{LeftMoveInfo.MoveParam.PlateH}");
}
}
int targetSpeed = Config.Left_Batch_P1_speed;
if (targetP1 <= 0)
......@@ -181,8 +190,21 @@ namespace DeviceLibrary
LeftMoveInfo.log($"批量轴上升到P2位置,LeftStartMovePosition={LeftStartMovePosition}");
break;
case MoveStep.L13:
bool enableCheck = ConfigHelper.Config.Get("左侧料盘放料串检查是否启用", true);
if (enableCheck)
{
//等待右侧测高完成
if ((RightMoveInfo.MoveStep > MoveStep.R04 && RightMoveInfo.MoveStep <= MoveStep.R10_WaitReelLeave) || RightMoveInfo.MoveStep == MoveStep.Wait)//测高完成
{
LeftMoveInfo.MoveParam.PlwHight = PlwHight;
LeftMoveInfo.log($"右侧测高完成:PlwHight={PlwHight}");
}
else
{
return;
}
}
var curPos = Left_Batch_Axis.GetAclPosition();
//判断当前料盘是否放到料串上
if (checkReelIsPutOk(curPos))
{
......@@ -213,6 +235,11 @@ namespace DeviceLibrary
LeftMoveInfo.log($"批量轴重新上升到P2位置,LeftStartMovePosition={LeftStartMovePosition}");
break;
case MoveStep.L16:
if (RightMoveInfo.MoveStep == MoveStep.Wait || RightShelfNoTray)
{
PlwHight = 0;
LeftMoveInfo.log($"右侧无料盘,PlwHight={PlwHight}");
}
LeftBatchAxisPositionWhileTrayCheck = Left_Batch_Axis.GetAclPosition();
LeftMoveInfo.NextMoveStep(MoveStep.L20_WaitLabel);
break;
......@@ -413,26 +440,26 @@ namespace DeviceLibrary
/// <summary>
/// 下降固定值
/// </summary>
void LeftBatchAxisDown()
{
//void LeftBatchAxisDown()
//{
int targetP1 = Left_Batch_Axis.GetAclPosition() - ConfigHelper.Config.Get("LeftAxisDownValue", 50) * Config.Left_Batch_ChangeValue;
if (PlwHight > 5000)
{
int currpoint = Left_Batch_Axis.GetAclPosition();
int countPleHight = PlwHight / Config.Right_Batch_ChangeValue * Config.Left_Batch_ChangeValue;
targetP1 = currpoint - countPleHight + 5000;
LeftMoveInfo.log($"出料提升机构,获取到料盘高度脉冲{PlwHight},当前位置{currpoint},计算盘高{countPleHight}");
}
int targetSpeed = Config.Left_Batch_P1_speed;
if (targetP1 <= 0)
{
LeftMoveInfo.log("出料提升机构,下降固定值小于0,设置回到0原点。");
targetP1 = 0;
}
LeftMoveInfo.log($"出料提升机构,下降固定值为{targetP1}脉冲!");
Left_Batch_Axis.AbsMove(LeftMoveInfo, targetP1, targetSpeed);
}
// int targetP1 = Left_Batch_Axis.GetAclPosition() - ConfigHelper.Config.Get("LeftAxisDownValue", 50) * Config.Left_Batch_ChangeValue;
// if (PlwHight > 5000)
// {
// int currpoint = Left_Batch_Axis.GetAclPosition();
// int countPleHight = PlwHight / Config.Right_Batch_ChangeValue * Config.Left_Batch_ChangeValue;
// targetP1 = currpoint - countPleHight + 5000;
// LeftMoveInfo.log($"出料提升机构,获取到料盘高度脉冲{PlwHight},当前位置{currpoint},计算盘高{countPleHight}");
// }
// int targetSpeed = Config.Left_Batch_P1_speed;
// if (targetP1 <= 0)
// {
// LeftMoveInfo.log("出料提升机构,下降固定值小于0,设置回到0原点。");
// targetP1 = 0;
// }
// LeftMoveInfo.log($"出料提升机构,下降固定值为{targetP1}脉冲!");
// Left_Batch_Axis.AbsMove(LeftMoveInfo, targetP1, targetSpeed);
//}
/// <summary>
/// 下降在上升以后,上升指定阈值,防止感应器失效
......
......@@ -26,7 +26,7 @@ namespace DeviceLibrary
//如果右侧可取料那么那么移动轴到p2点,夹爪释放。获取右侧的标签信息,右侧标签信息复位,否则等待
if (RightMoveInfo.MoveStep == MoveStep.R10_WaitReelLeave)
{
PlwHight = 0;
//PlwHight = 0;
MiddleMoveInfo.NextMoveStep(MoveStep.M02);
Take_Middle_Axis.AbsMove(MiddleMoveInfo, Config.Take_Middle_P2, Config.Take_Middle_P2_speed);
Take_UpDown_Axis.AbsMove(MiddleMoveInfo, Config.Take_UpDown_P2, Config.Take_UpDown_P2_speed);
......@@ -43,7 +43,7 @@ namespace DeviceLibrary
MiddleMoveInfo.log("等待右侧可以取料");
}
break;
//z轴移动到p3点,抓取,返回p2点
//z轴移动到p3点,抓取,返回p2点
case MoveStep.M02:
MiddleMoveInfo.NextMoveStep(MoveStep.M03);
Take_UpDown_Axis.AbsMove(MiddleMoveInfo, Config.Take_UpDown_P3, Config.Take_UpDown_P3_speed);
......@@ -58,10 +58,10 @@ namespace DeviceLibrary
break;
case MoveStep.M04:
MiddleMoveInfo.NextMoveStep(MoveStep.M05);
Take_UpDown_Axis.AbsMove(MiddleMoveInfo, Config.Take_UpDown_P2, Config.Take_UpDown_P2_speed);
Take_UpDown_Axis.AbsMove(MiddleMoveInfo, Config.Take_UpDown_P2, Config.Take_UpDown_P2_speed);
MiddleMoveInfo.log("上下轴返回P2点");
break;
//如果抓取完成或者定位低电平,进入下一步,右侧进行下一盘;如果左侧空闲,存在NG或抓取失败人工处理,如果右侧进料确认右侧进入继续取料步骤,如果中间ng轴会p1点否则继续下一个流程
//如果抓取完成或者定位低电平,进入下一步,右侧进行下一盘;如果左侧空闲,存在NG或抓取失败人工处理,如果右侧进料确认右侧进入继续取料步骤,如果中间ng轴会p1点否则继续下一个流程
case MoveStep.M05:
if (clampTool.IsClamp() || IOValue(IO_Type.RightTop_Check).Equals(IO_VALUE.LOW))
{
......@@ -83,12 +83,12 @@ namespace DeviceLibrary
{
if (MiddleMoveInfo.MoveParam.IsNg)
{
Msg.add(crc.GetString("Res0096","抓料失败请手动处理,请将料盘放入:NG箱,按右侧按钮继续"), MsgLevel.alarm);
Msg.add(crc.GetString("Res0096", "抓料失败请手动处理,请将料盘放入:NG箱,按右侧按钮继续"), MsgLevel.alarm);
MiddleMoveInfo.log("抓料失败请手动处理,请将料盘放入:NG箱,按右侧按钮继续");
}
else
{
Msg.add(crc.GetString("Res0097","抓料失败请手动处理,请将料盘放入: 左侧料串,按右侧按钮继续"), MsgLevel.alarm);
Msg.add(crc.GetString("Res0097", "抓料失败请手动处理,请将料盘放入: 左侧料串,按右侧按钮继续"), MsgLevel.alarm);
MiddleMoveInfo.log("抓料失败请手动处理,请将料盘放入: 左侧料串,按右侧按钮继续");
}
......@@ -110,7 +110,7 @@ namespace DeviceLibrary
MiddleMoveInfo.log("抓料失败,等待左侧允许放料");
}
break;
//NG料进入NG流程,正常入正常流程
//NG料进入NG流程,正常入正常流程
case MoveStep.M06_Wait:
break;
case MoveStep.M06:
......@@ -123,7 +123,7 @@ namespace DeviceLibrary
//else if (RightMoveInfo.MoveStep >= MoveStep.R06_GettedReelHigh && RightMoveInfo.MoveStep <= MoveStep.R10_WaitReelLeave)
else //if (LastHeightPos > 0)
{
MiddleMoveInfo.NextMoveStep(MoveStep.M07);
MiddleMoveInfo.NextMoveStep(MoveStep.M07);
MiddleMoveInfo.log($"开始往左侧料串移栽,{MiddleMoveInfo.MoveParam.ToStr()}");
}
//else if (MiddleMoveInfo.IsTimeOut(60))
......@@ -137,7 +137,7 @@ namespace DeviceLibrary
Msg.add(msg, MsgLevel.info);
}
//左侧空闲,等待贴标流程为打印标签,复制信息给标签流程,进入下一步,移动旋转轴到p3
else if(LeftMoveInfo.MoveStep == MoveStep.L10_WaitReelPut)
else if (LeftMoveInfo.MoveStep == MoveStep.L10_WaitReelPut)
{
if (clampTool.IsClamp())
{
......@@ -181,13 +181,25 @@ namespace DeviceLibrary
Msg.add(crc.GetString("Res0098", "等待左侧允许放料"), MsgLevel.info);
}
break;
//z轴到p4
//z轴到p4
case MoveStep.M08:
MiddleMoveInfo.NextMoveStep(MoveStep.M08_01);
if (MiddleMoveInfo.MoveParam.PlateW > 7)
{
MiddleMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
MiddleMoveInfo.log($"尺寸:{MiddleMoveInfo.MoveParam.PlateW},停留1500ms");
}
else
{
MiddleMoveInfo.log($"尺寸:{MiddleMoveInfo.MoveParam.PlateW},不停留");
}
break;
case MoveStep.M08_01:
MiddleMoveInfo.NextMoveStep(MoveStep.M09);
Take_UpDown_Axis.AbsMove(MiddleMoveInfo, Config.Take_UpDown_P4, Config.Take_UpDown_P4_speed);
MiddleMoveInfo.log("左侧允许放料,上下轴到P4");
break;
//夹爪释放复制信息给左侧流程,左侧进入到收到料流程
//夹爪释放复制信息给左侧流程,左侧进入到收到料流程
case MoveStep.M09:
if (clampTool.Release())
{
......@@ -200,11 +212,11 @@ namespace DeviceLibrary
else if (MiddleMoveInfo.IsTimeOut(10))
{
MiddleMoveInfo.NextMoveStep(MoveStep.M09);
MiddleMoveInfo.log("等待夹爪放松");
MiddleMoveInfo.log("等待夹爪放松");
}
Msg.add(crc.GetString("Res0050","等待夹爪放松"), MsgLevel.info);
Msg.add(crc.GetString("Res0050", "等待夹爪放松"), MsgLevel.info);
break;
//待机流程
//待机流程
case MoveStep.M10:
MiddleMoveInfo.NextMoveStep(MoveStep.M_ReturnToP1);
Take_UpDown_Axis.AbsMove(MiddleMoveInfo, Config.Take_UpDown_P1, Config.Take_UpDown_P1_speed);
......@@ -215,22 +227,23 @@ namespace DeviceLibrary
Take_Middle_Axis.AbsMove(MiddleMoveInfo, Config.Take_Middle_P1, Config.Take_Middle_P1_speed);
MiddleMoveInfo.log("放料完成,旋转轴返回待机点");
break;
//NG流程
//NG流程
case MoveStep.M20_ToNgBox:
if (PlwHight > 65*1000)
if (PlwHight > 65 * 1000)
{
Msg.add(crc.GetString("Res0166.2bf72810","NG物料厚度超过72mm无法放入NG箱"), MsgLevel.alarm);
Msg.add(crc.GetString("Res0166.2bf72810", "NG物料厚度超过72mm无法放入NG箱"), MsgLevel.alarm);
}
else if (PlwHight>0) {
else if (PlwHight > 0)
{
MiddleMoveInfo.NextMoveStep(MoveStep.M20_1_ToNgBox);
Take_UpDown_Axis.AbsMove(MiddleMoveInfo, Config.Take_UpDown_P1, Config.Take_UpDown_P1_speed);
MiddleMoveInfo.log("NG时上下轴转到P1");
}
else
{
Msg.add(crc.GetString("Res0182.2def73c9","NG物料, 等待测高"), MsgLevel.info);
Msg.add(crc.GetString("Res0182.2def73c9", "NG物料, 等待测高"), MsgLevel.info);
MiddleMoveInfo.log("NG物料, 等待测高");
}
break;
......@@ -263,7 +276,7 @@ namespace DeviceLibrary
MiddleMoveInfo.NextMoveStep(MoveStep.M22);
MiddleMoveInfo.log("等待夹爪放松");
}
Msg.add(crc.GetString("Res0050","等待夹爪放松"), MsgLevel.info);
Msg.add(crc.GetString("Res0050", "等待夹爪放松"), MsgLevel.info);
break;
case MoveStep.M23:
MiddleMoveInfo.NextMoveStep(MoveStep.M_ReturnToP1);
......@@ -288,12 +301,13 @@ namespace DeviceLibrary
return 7;
}
string MiddleState() {
string MiddleState()
{
string state = "";
if (MiddleMoveInfo.MoveStep == MoveStep.M_Standby || MiddleMoveInfo.MoveStep == MoveStep.Wait)
state += crc.GetString("Res0074","等待中");
state += crc.GetString("Res0074", "等待中");
else
state += crc.GetString("Res0045","当前ReelID:") + MiddleMoveInfo.MoveParam.WareCode;
state += crc.GetString("Res0045", "当前ReelID:") + MiddleMoveInfo.MoveParam.WareCode;
return state;
}
......
......@@ -222,11 +222,11 @@ namespace DeviceLibrary
{
if (IsHomeMove)
{
return "轴【" + AxisInfo.DisplayStr + "】原点返回";
return "【" + AxisInfo.DisplayStr + "】"+crc.GetString("AxisMoveControl_groupAxis_panel1_btnAxisReturnHome_Text","原点返回");
}
else
{
return "【" + AxisInfo.DisplayStr + "】绝对运动,目标位置【" + TargetPosition + "】";
return "【" + AxisInfo.DisplayStr + "】绝对运动,目标位置【" + TargetPosition + "】";
}
}
else if (WaitType.Equals(WaitEnum.W002_IOValue))
......
......@@ -99,6 +99,7 @@ namespace DeviceLibrary
M07,
M_ReturnToP1,
M08,
M08_01,
M09,
M10,
M20_ToNgBox,
......
......@@ -125,7 +125,7 @@ namespace OnlineStore.LoadCSVLibrary
{
get
{
return Explain + "(" + ProName + ")";
return crc.GetString(ProName, "Explain") + "(" + ProName + ")";
}
set
{
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!