Commit d4be3713 LN

增加控制滚刷功能。

1 个父辈 994b6ae4
......@@ -58,6 +58,7 @@
<add key="Agv_Log_Open" value="0" />
<add key="NeedCheckTray" value="0" />
<add key ="RfidServer_Port" value ="13000"/>
<add key ="Brush_Delay_Seconds" value ="5"/>
</appSettings>
<!-- <log4net> -->
<!-- <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> -->
......
......@@ -93,5 +93,7 @@ namespace OnlineStore.Common
public static string RfidServer_Port = "RfidServer_Port";
public static string Feed_LastShelfID_ = "Feed_LastShelfID_";
public static string Brush_Delay_Seconds = "Brush_Delay_Seconds";
}
}
......@@ -30,8 +30,8 @@ DO,0,分盘装置1定位气缸下降SOL,SeparateDevice_Down,7,PRO_AOI_IP_2,0,分盘装置1定位
DO,0,扫码NG料气缸1前进SOL,ScanNGCylinder_Forward,8,PRO_AOI_IP_2,0,扫码NG料气缸1前进SOL,Y029,Y029
DO,0,扫码NG料气缸1后退SOL,ScanNGCylinder_Back,9,PRO_AOI_IP_2,0,扫码NG料气缸1后退SOL,Y030,Y030
DO,0,分盘装置电机1驱动反转,SeparateDevice_BackRun,10,PRO_AOI_IP_2,0,分盘装置电机1驱动反转,Y031,Y031
,0,,,11,PRO_AOI_IP_2,0,,Y032,Y032
,0,,,12,PRO_AOI_IP_2,0,,Y033,Y033
DO,0,皮带线1滚刷电机运行,DLine_Brush1,11,PRO_AOI_IP_2,0,皮带线1滚刷电机运行,Y032,Y032
DO,0,皮带线2滚刷电机运行,DLine_Brush2,12,PRO_AOI_IP_2,0,皮带线2滚刷电机运行,Y033,Y033
,0,,,13,PRO_AOI_IP_2,0,,Y034,Y034
,0,,,14,PRO_AOI_IP_2,0,,Y035,Y035
,0,,,15,PRO_AOI_IP_2,0,,Y036,Y036
......@@ -30,8 +30,8 @@ DO,0,分盘装置2定位气缸下降SOL,SeparateDevice_Down,7,PRO_AOI_IP_3,0,分盘装置2定位
DO,0,扫码NG料气缸2前进SOL,ScanNGCylinder_Forward,8,PRO_AOI_IP_3,0,扫码NG料气缸2前进SOL,Y049,Y049
DO,0,扫码NG料气缸2后退SOL,ScanNGCylinder_Back,9,PRO_AOI_IP_3,0,扫码NG料气缸2后退SOL,Y050,Y050
,0,,,10,PRO_AOI_IP_3,0,,Y051,Y051
,0,,,11,PRO_AOI_IP_3,0,,Y052,Y052
,0,,,12,PRO_AOI_IP_3,0,,Y053,Y053
DO,0,皮带线3滚刷电机运行,DLine_Brush1,11,PRO_AOI_IP_3,0,皮带线3滚刷电机运行,Y052,Y052
DO,0,皮带线4滚刷电机运行,DLine_Brush2,12,PRO_AOI_IP_3,0,皮带线4滚刷电机运行,Y053,Y053
,0,,,13,PRO_AOI_IP_3,0,,Y054,Y054
,0,,,14,PRO_AOI_IP_3,0,,Y055,Y055
,0,,,15,PRO_AOI_IP_3,0,,Y056,Y056
......
......@@ -8,8 +8,8 @@ PRO,0,上料流水线入口AGV小车站号名称,AgvInName,C1,,,,,
PRO,0,上料流水线出口AGV小车站号名称,AgvOutName,C2,,,,,
,,,,,,,,,
AXIS,0,轴二提升上料轴,Batch_Axis,5,COM3,0,,,
PRO,0,提升上料轴上升待机点 P1,BatchAxisP1,6495000,,,,,
PRO,0,提升上料轴下降位置P2,BatchAxisP2,-1000,,,,,
PRO,0,提升上料轴上升待机点 P1,BatchAxisP1,6514600,,,,,
PRO,0,提升上料轴下降位置P2,BatchAxisP2,-800,,,,,
PRO,0,提升上料缓慢上升目标位置P3,BatchAxisP3,5950000,,,,,
PRO,0,提升上料轴目标速度,BatchAxis_TargetSpeed,4000,,,,,
PRO,0,提升上料轴加速度,BatchAxis_AddSpeed,300,,,,,
......
......@@ -9,7 +9,7 @@ PRO,0,上料流水线出口AGV小车站号名称,AgvOutName,C8,,,,,
,,,,,,,,,
AXIS,0,轴二提升上料轴,Batch_Axis,7,COM3,0,,,
PRO,0,提升上料轴上升待机点 P1,BatchAxisP1,6508000,,,,,
PRO,0,提升上料轴下降位置P2,BatchAxisP2,-118000,,,,,
PRO,0,提升上料轴下降位置P2,BatchAxisP2,-118500,,,,,
PRO,0,提升上料缓慢上升目标位置P3,BatchAxisP3,5573900,,,,,
PRO,0,提升上料轴目标速度,BatchAxis_TargetSpeed,4000,,,,,
PRO,0,提升上料轴加速度,BatchAxis_AddSpeed,400,,,,,
......
......@@ -47,14 +47,14 @@ namespace OnlineStore.DeviceLibrary
if (id.Equals(1))
{
IsNewType = true;
TrayLine1 = new OutTrayLineBean(330 + ((id - 1) * 3 + 1) , "皮带线" + "_" + ((id - 1) * 3 + 1) + " ", IO_Type.ExitLocation_Check1, IO_Type.ExitTray_Check1, IO_Type.DLine_Run1, IO_Type.EntryTray_Check3, this.DeviceID);
TrayLine2 = new OutTrayLineBean(330 + ((id - 1) * 3 + 2),"皮带线" + "_" + ((id - 1) * 3 + 2) + " ", IO_Type.ExitLocation_Check2, IO_Type.ExitTray_Check2, IO_Type.DLine_Run2, IO_Type.MiddleTray_Check3, this.DeviceID);
TrayLine1 = new OutTrayLineBean(330 + ((id - 1) * 3 + 1) , "皮带线" + "_" + ((id - 1) * 3 + 1) + " ", IO_Type.ExitLocation_Check1, IO_Type.ExitTray_Check1, IO_Type.DLine_Run1, IO_Type.EntryTray_Check3, this.DeviceID,IO_Type.DLine_Brush1);
TrayLine2 = new OutTrayLineBean(330 + ((id - 1) * 3 + 2),"皮带线" + "_" + ((id - 1) * 3 + 2) + " ", IO_Type.ExitLocation_Check2, IO_Type.ExitTray_Check2, IO_Type.DLine_Run2, IO_Type.MiddleTray_Check3, this.DeviceID,IO_Type.DLine_Brush2);
}
else
{
IsNewType = true;
TrayLine1 = new OutTrayLineBean(330+ ((id - 1) * 3 + 1),"皮带线" + "_" + ((id - 1) * 3 + 1) + " ", IO_Type.ExitLocation_Check1, IO_Type.ExitTray_Check1, IO_Type.DLine_Run1, IO_Type.MiddleTray_Check3, this.DeviceID);
TrayLine2 = new OutTrayLineBean(330+((id - 1) * 3 + 2),"皮带线" + "_" + ((id - 1) * 3 + 2) + " ", IO_Type.ExitLocation_Check2, IO_Type.ExitTray_Check2, IO_Type.DLine_Run2, IO_Type.EntryTray_Check3, this.DeviceID);
TrayLine1 = new OutTrayLineBean(330+ ((id - 1) * 3 + 1),"皮带线" + "_" + ((id - 1) * 3 + 1) + " ", IO_Type.ExitLocation_Check1, IO_Type.ExitTray_Check1, IO_Type.DLine_Run1, IO_Type.MiddleTray_Check3, this.DeviceID,IO_Type.DLine_Brush1);
TrayLine2 = new OutTrayLineBean(330+((id - 1) * 3 + 2),"皮带线" + "_" + ((id - 1) * 3 + 2) + " ", IO_Type.ExitLocation_Check2, IO_Type.ExitTray_Check2, IO_Type.DLine_Run2, IO_Type.EntryTray_Check3, this.DeviceID,IO_Type.DLine_Brush2);
}
Line3Turn = new LineTurnBean(DeviceID, IO_Type.DLine_Run3, IO_Type.Location_Check3);
if ((DeviceID % 100).Equals(1))
......
......@@ -201,53 +201,33 @@ namespace OnlineStore.DeviceLibrary
if (Config.SidesWayNum <= 0)
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_Stop2Down);
CheckLog("托盘检测:" + SecondMoveInfo.SLog + "阻挡1上升,等待FL_TrayCheck=1 ");
// IOMove(IO_Type.FL_StopCylinder_Down1, IO_VALUE.LOW);
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.FL_StopCylinder_Down1, IO_VALUE.LOW));
CheckLog("托盘检测:" + SecondMoveInfo.SLog + "阻挡1上升,等待FL_TrayCheck=1 ");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.FL_TrayCheck, IO_VALUE.HIGH));
}
else
{
TimeSpan span = DateTime.Now - SecondMoveInfo.LastSetpTime;
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_01_FixtureCheck);
LogUtil.debug(Name + "托盘阻挡:" + SecondMoveInfo.SLog + "阻挡气缸上升,下降耗时(" + FormUtil.GetSpanStr(span) + "),等待SW_TrayCheck=1)");
// IOMove(IO_Type.SW_StopDown, IO_VALUE.LOW);
//去掉延迟
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_Stop2Down);
LogUtil.debug(Name + "托盘阻挡:" + SecondMoveInfo.SLog + "阻挡气缸上升,下降耗时(" + FormUtil.GetSpanStr(span) + "),等待SW_TrayCheck=1)");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_TrayCheck, IO_VALUE.HIGH));
}
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_01_FixtureCheck))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_02_WaitFixture);
CheckLog("托盘检测:" + SecondMoveInfo.SLog + "再次等待SW_TrayCheck=1 :");
//CheckLog("托盘检测:" + SecondMoveInfo.SLog + "再次等待SW_TrayCheck=1并需要持续:" + TrayManager.SwTrayWaitTime);
// CheckAndMove(IO_Type.SW_StopDown, IO_VALUE.LOW);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_TrayCheck, IO_VALUE.HIGH));
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.SwTrayWaitTime));
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_02_WaitFixture))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_Stop2Down);
CheckLog("托盘检测:" + SecondMoveInfo.SLog + "阻挡气缸上升,等待SW_TrayCheck=1)");
CheckAndMove(IO_Type.SW_StopDown, IO_VALUE.LOW);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_TrayCheck, IO_VALUE.HIGH));
}
//else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_01_FixtureCheck))
//{
// SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_02_WaitFixture);
// CheckLog("托盘检测:" + SecondMoveInfo.SLog + "再次等待SW_TrayCheck=1 :");
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_TrayCheck, IO_VALUE.HIGH));
//}
//else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_02_WaitFixture))
//{
// SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_Stop2Down);
// CheckLog("托盘检测:" + SecondMoveInfo.SLog + "阻挡气缸上升,等待SW_TrayCheck=1)");
// CheckAndMove(IO_Type.SW_StopDown, IO_VALUE.LOW);
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_TrayCheck, IO_VALUE.HIGH));
//}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_03_Stop2Down))
{
// SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_04_Wait);
// if (Config.SidesWayNum > 0)
// {
// CheckLog("托盘检测:" + SecondMoveInfo.SLog + " ,等待编码信号稳定 SW_TrayCheck=1");
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_TrayCheck, IO_VALUE.HIGH));
// }
// else
// {
// CheckLog("托盘检测:" + SecondMoveInfo.SLog + " ,等待编码信号稳定 FL_TrayCheck=1");
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.FL_TrayCheck, IO_VALUE.HIGH));
// }
//}
//else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_04_Wait))
//{
{
UpdateTrayNum();
//出料中,需要拦盘
if (CurrTrayIsNeed(currTrayNum, true))
......@@ -915,8 +895,8 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.FI_25_CylinderDown);
CylinderMove(MoveInfo, IO_Type.SL_MoveCylinder_Up, IO_Type.SL_MoveCylinder_Down);
InLog("料盘移栽" + MoveInfo.SLog + ":上料机构下降, 托盘号【" + currTrayNum + "】,更新托盘信息 :" + LastPosParam.ToShortStr());
LastPosParam.TrayNumber = currTrayNum;
InLog("料盘移栽" + MoveInfo.SLog + ":上料机构下降, 托盘号【" + currTrayNum + "】,更新托盘信息 :" + LastPosParam.ToShortStr());
TrayManager.UpdateTrayInfo(currTrayNum, true, ReelType.InStore, LastPosParam, LastPosParam.NgMsg);
SServerManager.SendPosToStoreCheck(Name, LastPosParam);
}
......@@ -1087,7 +1067,7 @@ namespace OnlineStore.DeviceLibrary
else if (!result.Msg.Equals("") )
{
LastPosParam = result.Param;
LogUtil.error(Name + "【" + code + "】第[" + count + "]次 FI_23_GetPosID 失败,入库NG:"+result.Msg);
LogUtil.error(Name + "【" + code + "】第[" + count + "]次 FI_23_GetPosID 入库NG:"+result.Msg);
break;
}
else
......
......@@ -25,6 +25,9 @@ namespace OnlineStore.DeviceLibrary
private string LineRun_Do = "";
//最后一盘料的位置,>5时可置为0,0表示当前皮带线无料盘
public int LastTrayPosition = 0;
private string DLine_Brush_Do = "";
private int burshDelayS = ConfigAppSettings.GetIntValue(Setting_Init.Brush_Delay_Seconds);
private DateTime BrushStopTime = DateTime.Now;
private string Name = "";
private LineTurnBean lineRun = null;
internal LineMoveInfo MoveInfo = null;
......@@ -34,7 +37,7 @@ namespace OnlineStore.DeviceLibrary
}
internal bool Line3CanRun = true;
private int Id = 0;
public OutTrayLineBean(int id, string name, string exitLocationS, string exittrayS, string lineRundo, string line3checkDi, int dId)
public OutTrayLineBean(int id, string name, string exitLocationS, string exittrayS, string lineRundo, string line3checkDi, int dId, string brushDo)
{
this.Id = id;
this.equipBeanId = dId;
......@@ -44,6 +47,7 @@ namespace OnlineStore.DeviceLibrary
this.ExitTray_Check = exittrayS;
this.LineRun_Do = lineRundo;
this.Line3_TrayCheck = line3checkDi;
this.DLine_Brush_Do = brushDo;
lineRun = new LineTurnBean(dId, LineRun_Do, ExitLocation_Check);
}
......@@ -182,6 +186,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.DLO_07_LineRun);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
LogUtil.info(Name + "送料【" + posId + "】:" + MoveInfo.SLog + " [" + LastTrayPosition + "],转动到下个工位");
StartBrush();
lineRun.StartLineRun(LineEndProcess);
}
......@@ -250,6 +255,9 @@ namespace OnlineStore.DeviceLibrary
equipBean.Line3Turn.LastEndTime = DateTime.Now;
}
Line3CanRun = true;
equipBean.IOMove(DLine_Brush_Do, IO_VALUE.HIGH);
BrushStopTime = DateTime.Now.AddSeconds(burshDelayS);
}
/// <summary>
/// 此皮带线是否有盘。重启会重置为空
......@@ -287,6 +295,7 @@ namespace OnlineStore.DeviceLibrary
equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.LOW))
{
//皮带线1出口无料
StartBrush();
lineRun.StartLineRun(LineEndProcess);
}
else if (MoveInfo.MoveStep <= LineMoveStep.DLO_01_NGBack && MoveInfo.IsInWait.Equals(false) &&
......@@ -297,10 +306,26 @@ namespace OnlineStore.DeviceLibrary
{
Line3CanRun = false;
LogUtil.debug(Name + "出口有料,且" + Line3_TrayCheck + "=LOW,转动一个工位,[" + LineRun_Do + "] [" + ExitLocation_Check + "]");
StartBrush();
lineRun.StartLineRun(LineEndProcess);
}
}
}
if (DateTime.Now <= BrushStopTime || equipBean.IOValue(LineRun_Do).Equals(IO_VALUE.HIGH))
{
equipBean.CheckAndMove(DLine_Brush_Do, IO_VALUE.HIGH);
}
else
{
equipBean.CheckAndMove(DLine_Brush_Do, IO_VALUE.LOW);
}
}
public void StartBrush()
{
BrushStopTime = DateTime.Now.AddSeconds(burshDelayS + 8);
equipBean.IOMove(DLine_Brush_Do, IO_VALUE.HIGH);
}
}
......
......@@ -266,29 +266,28 @@ namespace OnlineStore.DeviceLibrary
if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_00_Stop1Down))
{
TimeSpan span = DateTime.Now - SecondMoveInfo.LastSetpTime;
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_01_FixtureCheck);
LogUtil.debug(Name + "托盘阻挡" + SecondMoveInfo.SLog + " 阻挡气缸上升,下降耗时(" + FormUtil.GetSpanStr(span) + "),等待 阻挡2托盘检测=1)");
// IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Check2, IO_VALUE.HIGH));
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_01_FixtureCheck))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_Stop2Down);
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 再次检测料盘信号");
//CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 等待" + TrayManager.SwTrayWaitTime + ",再次检测料盘信号");
// IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Check2, IO_VALUE.HIGH));
if (Config.SidesWayNum.Equals(4))
{
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(400));
}
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_03_Stop2Down))
{
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " ,等待编码信号稳定StopCylinder_Check2=1");
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_04_Wait);
LogUtil.debug(Name + "托盘阻挡" + SecondMoveInfo.SLog + " 阻挡气缸上升,下降耗时(" + FormUtil.GetSpanStr(span) + "),等待 阻挡2托盘检测=1)");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Check2, IO_VALUE.HIGH));
}
// else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_01_FixtureCheck))
// {
// SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_Stop2Down);
// CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 再次检测料盘信号");
// //CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 等待" + TrayManager.SwTrayWaitTime + ",再次检测料盘信号");
//// IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Check2, IO_VALUE.HIGH));
// if (Config.SidesWayNum.Equals(4))
// {
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(400));
// }
// }
//else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_03_Stop2Down))
//{
// CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " ,等待编码信号稳定StopCylinder_Check2=1");
// SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_04_Wait);
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Check2, IO_VALUE.HIGH));
//}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_04_Wait))
{
UpdateTrayNum();
......
......@@ -296,7 +296,7 @@ namespace OnlineStore.DeviceLibrary
else
{
LogUtil.error("【" + portName + "_" + slvAddr + "】 , 第" + i + "次,SuddenStop 发送数据失败");
Thread.Sleep(500);
Thread.Sleep(180);
}
}
}
......
......@@ -675,8 +675,16 @@ namespace OnlineStore.LoadCSVLibrary
/// </summary>
public static string SeparateDevice_BackRun = "SeparateDevice_BackRun";
// public static string NextStopCheck = "NextStopCheck";
/// <summary>
/// DO 0 皮带线1滚刷电机运行 DLine_Brush1 11 PRO_AOI_IP_2 0 皮带线1滚刷电机运行 Y032 Y032
/// </summary>
public static string DLine_Brush1 = "DLine_Brush1";
/// <summary>
/// DO 0 皮带线2滚刷电机运行 DLine_Brush2 12 PRO_AOI_IP_2 0 皮带线2滚刷电机运行 Y033 Y033
/// </summary>
public static string DLine_Brush2 = "DLine_Brush2";
}
public enum IO_VALUE
{
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!