Commit 140cc20a LN

1

1 个父辈 0968b141
......@@ -255,19 +255,7 @@ namespace OnlineStore.DUOStore
ktk.UpDown_P3 = FormUtil.GetIntValue(txtUpDownP3);
ktk.UpDown_P4 = FormUtil.GetIntValue(txtUpDownP4);
ktk.UpDown_P5 = FormUtil.GetIntValue(txtUpDownP5);
ktk.UpDown_P6 = FormUtil.GetIntValue(txtUpDownP6);
//ktk.UpDown_P7 = FormUtil.GetIntValue(txtUpDownP7);
//ktk.UpDown_P8 = FormUtil.GetIntValue(txtUpDownP8);
//ktk.InOut_P101 = FormUtil.GetIntValue(txtInoutP101);
//ktk.UpDown_LP101 = FormUtil.GetIntValue(txtUpdownP101);
//ktk.UpDown_HP102 = FormUtil.GetIntValue(txtUpdownP102);
//ktk.Middle_P101 = FormUtil.GetIntValue(txtMP101);
ktk.InOut_P11 = FormUtil.GetIntValue(txtInoutP11);
ktk.UpDown_P11 = FormUtil.GetIntValue(txtUpdownP11);
ktk.UpDown_P12 = FormUtil.GetIntValue(txtUpdownP12);
ktk.Middle_P11 = FormUtil.GetIntValue(txtMiddleP11);
ktk.UpDown_P6 = FormUtil.GetIntValue(txtUpDownP6);
return ktk;
}
......@@ -307,9 +295,9 @@ namespace OnlineStore.DUOStore
if (acPosition != null)
{
acPosition.MiddleAxis_P2 = FormUtil.GetIntValue(txtMiddleP2);
acPosition.InoutAxis_P3 = FormUtil.GetIntValue(txtInOutP3);
acPosition.UpdownAxis_IH_P3 = FormUtil.GetIntValue(txtUpDownP3);
acPosition.UpdownAxis_IL_P4 = FormUtil.GetIntValue(txtUpDownP4);
acPosition.InoutAxis_P3 = FormUtil.GetIntValue(txtInOutP3);
acPosition.UpdownAxis_OH_P5 = FormUtil.GetIntValue(txtUpDownP5);
acPosition.UpdownAxis_OL_P6 = FormUtil.GetIntValue(txtUpDownP6);
}
......
......@@ -96,6 +96,7 @@ namespace OnlineStore.DUOStore
/// </summary>
private void HideForm()
{
DebugOpen(false);
this.Opacity = 0;
this.ShowInTaskbar = false;
this.notifyIcon1.Visible = true;
......@@ -214,6 +215,7 @@ namespace OnlineStore.DUOStore
private void ShowStatus()
{
formLineStatus(true);
DebugOpen(false);
}
private void formLineStatus(bool isStart)
......
位置,优先级,高度,宽度,料仓ID,旋转轴库位点P2,升降轴库位出料前点P5,升降轴库位出料缓冲点P6,升降轴库位入料前点P3,升降轴库位入料缓冲点P4,进出轴库位点取料点P3
2#AC2_1_1_4,259,32,15,1,306200,1290614,1299614,1299614,1290614,1408002#AC2
2#AC2_1_1_5,258,32,15,1,306200,1334970,1343970,1343970,1334970,140800
2#AC2_1_1_6,257,32,15,1,306200,1381622,1392122,1392122,1381622,140800
2#AC2_1_1_7,256,32,15,1,306200,1424390,1433390,1433390,1424390,140800
2#AC2_1_1_8,255,32,15,1,306200,1471088,1481488,1481488,1471088,140800
2#AC2_1_1_9,254,32,15,1,306200,1514627,1525627,1525627,1514627,140800
2#AC2_1_1_10,253,32,15,1,306200,1561503,1570503,1570503,1561503,140800
2#AC2_1_1_11,252,32,15,1,306200,1603404,1612404,1612404,1603404,140800
2#AC2_1_1_12,251,32,15,1,306200,1650000,1660593,1660593,1650000,140800
2#AC2_1_1_13,250,32,15,1,306200,1693078,1702078,1702078,1693078,140800
2#AC2_1_1_14,249,32,15,1,306200,1738576,1747576,1747576,1738576,140800
2#AC2_1_1_15,248,32,15,1,306200,1785295,1794295,1794295,1785295,140800
2#AC2_1_1_16,247,12,15,1,436077,9671,20171,20171,9671,140800
2#AC2_1_1_17,246,12,15,1,436077,39893,50393,50393,39893,140800
2#AC2_1_1_18,245,12,15,1,436077,70661,81161,81161,70661,140800
2#AC2_1_1_19,244,12,15,1,436077,98713,109213,109213,98713,140800
2#AC2_1_1_20,243,12,15,1,436077,128728,139228,139228,128728,140800
2#AC2_1_1_21,242,12,15,1,436077,159195,169695,169695,159195,140800
2#AC2_1_2_4,241,12,15,1,436077,189134,199634,199634,189134,140800
2#AC2_1_2_5,240,12,15,1,436077,219845,230345,230345,219845,140800
2#AC2_1_2_6,239,12,15,1,436077,252000,262500,262500,252000,140800
2#AC2_1_2_7,238,12,15,1,436077,280421,290921,290921,280421,140800
2#AC2_1_2_8,237,12,15,1,436077,312224,322724,322724,312224,140800
2#AC2_1_2_9,236,12,15,1,436077,342256,352756,352756,342256,140800
2#AC2_1_2_10,235,12,15,1,436077,369382,379882,379882,369382,140800
2#AC2_1_2_11,234,12,15,1,436077,399751,410251,410251,399751,140800
2#AC2_1_2_12,233,12,15,1,436200,430923,441423,441423,430923,140800
2#AC2_1_2_13,232,12,15,1,436157,459859,470359,470359,459859,140800
2#AC2_1_2_14,231,12,15,1,436214,489685,500185,500185,489685,140800
2#AC2_1_2_15,230,12,15,1,436271,522581,533081,533081,522581,140800
2#AC2_1_2_16,229,12,15,1,435628,550105,560605,560605,550105,140800
2#AC2_1_2_17,228,12,15,1,435585,583474,593974,593974,583474,140800
2#AC2_1_2_18,227,12,15,1,435542,612943,623443,623443,612943,140800
2#AC2_1_2_19,226,12,15,1,435499,642389,652889,652889,642389,140800
2#AC2_1_2_20,225,12,15,1,435456,670221,680721,680721,670221,140800
2#AC2_1_2_21,224,12,15,1,435413,700236,713736,713736,700236,140800
2#AC2_1_1_4,259,32,15,2,306200,1290614,1299614,1299614,1290614,1408002#AC2
2#AC2_1_1_5,258,32,15,2,306200,1334970,1343970,1343970,1334970,140800
2#AC2_1_1_6,257,32,15,2,306200,1381622,1392122,1392122,1381622,140800
2#AC2_1_1_7,256,32,15,2,306200,1424390,1433390,1433390,1424390,140800
2#AC2_1_1_8,255,32,15,2,306200,1471088,1481488,1481488,1471088,140800
2#AC2_1_1_9,254,32,15,2,306200,1514627,1525627,1525627,1514627,140800
2#AC2_1_1_10,253,32,15,2,306200,1561503,1570503,1570503,1561503,140800
2#AC2_1_1_11,252,32,15,2,306200,1603404,1612404,1612404,1603404,140800
2#AC2_1_1_12,251,32,15,2,306200,1650000,1660593,1660593,1650000,140800
2#AC2_1_1_13,250,32,15,2,306200,1693078,1702078,1702078,1693078,140800
2#AC2_1_1_14,249,32,15,2,306200,1738576,1747576,1747576,1738576,140800
2#AC2_1_1_15,248,32,15,2,306200,1785295,1794295,1794295,1785295,140800
2#AC2_1_1_16,247,12,15,2,436077,9671,20171,20171,9671,140800
2#AC2_1_1_17,246,12,15,2,436077,39893,50393,50393,39893,140800
2#AC2_1_1_18,245,12,15,2,436077,70661,81161,81161,70661,140800
2#AC2_1_1_19,244,12,15,2,436077,98713,109213,109213,98713,140800
2#AC2_1_1_20,243,12,15,2,436077,128728,139228,139228,128728,140800
2#AC2_1_1_21,242,12,15,2,436077,159195,169695,169695,159195,140800
2#AC2_1_2_4,241,12,15,2,436077,189134,199634,199634,189134,140800
2#AC2_1_2_5,240,12,15,2,436077,219845,230345,230345,219845,140800
2#AC2_1_2_6,239,12,15,2,436077,252000,262500,262500,252000,140800
2#AC2_1_2_7,238,12,15,2,436077,280421,290921,290921,280421,140800
2#AC2_1_2_8,237,12,15,2,436077,312224,322724,322724,312224,140800
2#AC2_1_2_9,236,12,15,2,436077,342256,352756,352756,342256,140800
2#AC2_1_2_10,235,12,15,2,436077,369382,379882,379882,369382,140800
2#AC2_1_2_11,234,12,15,2,436077,399751,410251,410251,399751,140800
2#AC2_1_2_12,233,12,15,2,436200,430923,441423,441423,430923,140800
2#AC2_1_2_13,232,12,15,2,436157,459859,470359,470359,459859,140800
2#AC2_1_2_14,231,12,15,2,436214,489685,500185,500185,489685,140800
2#AC2_1_2_15,230,12,15,2,436271,522581,533081,533081,522581,140800
2#AC2_1_2_16,229,12,15,2,435628,550105,560605,560605,550105,140800
2#AC2_1_2_17,228,12,15,2,435585,583474,593974,593974,583474,140800
2#AC2_1_2_18,227,12,15,2,435542,612943,623443,623443,612943,140800
2#AC2_1_2_19,226,12,15,2,435499,642389,652889,652889,642389,140800
2#AC2_1_2_20,225,12,15,2,435456,670221,680721,680721,670221,140800
2#AC2_1_2_21,224,12,15,2,435413,700236,713736,713736,700236,140800
......@@ -58,6 +58,7 @@ namespace OnlineStore.DeviceLibrary
//添加调试
IsDebug = config.IsInDebug.Equals(1);
Name = (" BOX_" + config.Id + " ").ToUpper();
MoveInfo = new StoreMoveInfo(ID, Name);
this.ID = config.Id; ;
this.Config = config;
//温湿度
......
......@@ -16,6 +16,7 @@ namespace OnlineStore.DeviceLibrary
{
public ConcurrentQueue<InOutParam> waitOutStoreList = new ConcurrentQueue<InOutParam>();
#region 出入库结果验证
private void CheckWait()
{
......@@ -148,9 +149,7 @@ namespace OnlineStore.DeviceLibrary
InoutAxis.AbsMove(MoveInfo, InOut_P1, Config.InOutAxis_P1_Speed);
}
}
#endregion
#endregion
#region 入库
......@@ -173,18 +172,18 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(Name + " 启动入库【" + param.ToStr() + "】出错,找不到库位信息");
return;
}
LogInfo(" 启动入库【" + param.ToStr() + "】,压紧点P2【" + param.MoveP.ComPress_P2 + "】压紧前点P3【" + param.MoveP.ComPress_P3 + "】");
LogInfo(" 启动入库【" + param.ToStr() + "】 ");
storeRunStatus = StoreRunStatus.Busy;
storeStatus = StoreStatus.InStoreExecute;
MoveInfo.NewMove(MoveType.InStore, param);
//新的料架库位
MoveInfo.NextMoveStep(StoreMoveStep.BI_11_InoutToP1);
MoveInfo.NextMoveStep(StoreMoveStep.SI_01_InoutToP1);
MoveInfo.SingleInstore = true;
InOutStoreLog("料架取料:" + MoveInfo.SLog + " 叉子后退到待机点P1, 重置盘信息");
InOutStoreLog("料架取料:" + MoveInfo.SLog + " 进出轴返回P1");
InoutAxis.AbsMove(MoveInfo, Config.InOutAxis_P1, Config.InOutAxis_P1_Speed);
}
protected override void InStoreProcess()
{
LineMoveP moveP = MoveInfo.MoveParam.MoveP;
......@@ -196,20 +195,101 @@ namespace OnlineStore.DeviceLibrary
{
return;
}
if (MoveInfo.IsStep(StoreMoveStep.SI_01_InoutToP1))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_02_AxisBack);
InOutStoreLog("入库: 升降轴,旋转轴到P1,压紧轴到P3");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P3, Config.CompAxis_P3_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_02_AxisBack))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_03_InoutToP2);
InOutStoreLog("入库:进出轴到P2( 进料口取料点) ");
InoutAxis.AbsMove(MoveInfo, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_03_InoutToP2))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_04_GetWare );
InOutStoreLog("入库:升降轴到P7( 进料口取料缓冲点)压紧轴到P2(压紧点) ");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P2, Config.CompAxis_P2_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P7, Config.UpDownAxis_P7_Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_04_GetWare))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_05_InoutToP1 );
InOutStoreLog("入库:进出轴返回P1 ");
InOutBackToP1(moveP.InOut_P1);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_05_InoutToP1))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_06_ToBag);
InOutStoreLog("入库:移动到库位点,旋转轴到P2( 库位点),升降轴到P3(库位入库前点) ");
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_06_ToBag))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_07_InoutToP3 );
InOutStoreLog("入库:进出轴到P3(库位取放料点) ");
InoutAxis.AbsMove(MoveInfo, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
//关闭舱门
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_07_InoutToP3))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_08_PutWare);
InOutStoreLog("入库:升降轴到P4( 库位入料缓冲点)压紧轴到P3( 压紧前点) ");
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
string posId = MoveInfo.MoveParam.PosID;
lastPosId = posId;
lastPosIdStatus = StoreStatus.InStoreEnd;
storeStatus = StoreStatus.InStoreEnd;
//手动发给服务器状态,防止没有手动
//SendLineStatus(StoreID, posId, StoreStatus.InStoreEnd);
InoutAxis.AbsMove(MoveInfo, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P3, Config.CompAxis_P3_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P4, Config.UpDownAxis_P4_Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_08_PutWare))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_09_InoutToP1);
InOutStoreLog("入库:进出轴返回P1 ");
InOutBackToP1(moveP.InOut_P1);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_09_InoutToP1)
{
InOutStoreLog("入库:旋转轴,升降轴,压紧轴到待机点P1");
MoveInfo.NextMoveStep(StoreMoveStep.SI_10_GoBack);
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P1, Config.CompAxis_P1_Speed);
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_10_GoBack))
{
TimeSpan span = DateTime.Now - startInStoreTime;
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosID : "";
LogUtil.info(Name + " 【" + posId + "】入库结束,耗时【" + FormUtil.GetSpanStr(span) + "】");
MoveInfo.EndMove();
storeRunStatus = StoreRunStatus.Runing;
//设备连接,入库后,BOX恢复原始状态
storeStatus = StoreStatus.StoreOnline;
AutoInout.InOutEndProcess(this, MoveType.InStore);
}
else
{
LogInfo(" 入库,MoveInfo.MoveStep=" + MoveInfo.MoveStep + ",没有对应的处理!");
LogUtil.error(Name + " 入库,MoveInfo.MoveStep=" + MoveInfo.MoveStep + ",没有对应的处理!");
}
}
#endregion
#region 出库
private DateTime startOutStoreTime = DateTime.Now;
public bool IsIgnoreComSig = false; //忽略料叉压紧信号
private DateTime startOutStoreTime = DateTime.Now;
private void StartExecuctOut(InOutParam param)
{
......@@ -220,6 +300,7 @@ namespace OnlineStore.DeviceLibrary
waitOutStoreList.Enqueue(param);
}
}
public override bool StartOutStoreMove(InOutParam param)
{
startOutStoreTime = DateTime.Now;
......@@ -249,15 +330,7 @@ namespace OnlineStore.DeviceLibrary
InOutBackToP1(MoveInfo.MoveParam.MoveP.InOut_P1);
return true;
}
private void SO_03_ToBagPosition()
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_03_ToPosition);
InOutStoreLog("出库 " + MoveInfo.SLog + ":走到库位,压紧轴至P3(压紧前点) ,旋转轴至P2(库位点),升降轴至P5(库位出库前点) ,顶升上升");
ComAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.ComPress_P3, Config.CompAxis_P3_Speed);
MiddleAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.Middle_P2, Config.MiddleAxis_P2_Speed);
UpdownAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.UpDown_P5, Config.UpDownAxis_P5_Speed);
CylinderMove(MoveInfo, IO_Type.TopCylinder_Down, IO_Type.TopCylinder_Up);
}
protected override void OutStoreProcess()
{
LineMoveP moveP = MoveInfo.MoveParam.MoveP;
......@@ -268,21 +341,95 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.IsInWait)
{
return;
}
if (MoveInfo.MoveStep == StoreMoveStep.SO_01_InoutBack)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_02_ToPosition);
InOutStoreLog("出库:压紧轴到压紧前点P3 ,旋转轴到库位点P2,轴2(上下) 至P5(库位出库前点) ");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P3, Config.CompAxis_P3_Speed);
MiddleAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.Middle_P2, Config.MiddleAxis_P2_Speed);
UpdownAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.UpDown_P5, Config.UpDownAxis_P5_Speed);
}
else if (MoveInfo.MoveStep <= StoreMoveStep.SO_01_InoutBack)
else if (MoveInfo.MoveStep == StoreMoveStep.SO_02_ToPosition)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_03_InoutToP3);
InOutStoreLog("出库: 进出轴至P3(库位取放料点) [" + moveP.InOut_P3 + "] ");
InoutAxis.AbsMove(MoveInfo, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
}
else if (MoveInfo.MoveStep >= StoreMoveStep.BS_01_TopDown)
{
else if (MoveInfo.MoveStep == StoreMoveStep.SO_03_InoutToP3)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_04_GetReel);
InOutStoreLog("出库:升降轴到P6,轴4( 压紧) 至P2(压紧点) ");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P2, Config.CompAxis_P2_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P6, Config.UpDownAxis_P6_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_04_GetReel)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_05_InoutBack);
InOutStoreLog("出库:进出轴返回P1(待机点) ");
InOutBackToP1(moveP.InOut_P1);
//把库位的物品放到取到叉子上之后是出仓完成
string posId = MoveInfo.MoveParam.PosID;
lastPosId = posId;
lastPosIdStatus = StoreStatus.OutStoreBoxEnd;
storeStatus = StoreStatus.OutStoreBoxEnd;
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_05_InoutBack)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_06_ToDoor);
InOutStoreLog("出库:旋转轴 至P2( 库位点)升降轴到P3(库位入库前点) ");
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_06_ToDoor)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_07_InoutToP2);
InOutStoreLog("出库:进出轴到P2 ");
InoutAxis.AbsMove(MoveInfo, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_07_InoutToP2)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_08_PutReel);
InOutStoreLog("出库:放下物品 升降轴至P1,压紧轴到P3 ");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P3, Config.CompAxis_P3_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_08_PutReel)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_09_InoutBack);
InOutStoreLog("出库:进出轴返回P1");
InOutBackToP1(moveP.InOut_P1);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_09_InoutBack)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_10_GoBack);
InOutStoreLog("出库:升降轴,旋转轴到待机点P1 ");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P1, Config.CompAxis_P1_Speed);
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_10_GoBack)
{
TimeSpan span = DateTime.Now - startOutStoreTime;
string posId = MoveInfo.MoveParam.PosID;
storeStatus = StoreStatus.StoreOnline;
LogUtil.info(Name + " 【" + posId + "】 整个出库流程结束,耗时【" + FormUtil.GetSpanStr(span) + "】!");
MoveInfo.EndMove();
storeRunStatus = StoreRunStatus.Runing;
AutoInout.InOutEndProcess(this, MoveType.OutStore);
}
else
{
LogUtil.error(Name + " 出库处理,MoveInfo.MoveStep=" + MoveInfo.MoveStep + ",没有对应的处理!");
LogUtil.error(Name + " 出库处理,moveStatus=" + MoveInfo.MoveStep + ",没有对应的处理!");
}
}
}
#endregion
......
......@@ -258,87 +258,87 @@ namespace OnlineStore.DeviceLibrary
/// <param name="message"></param>
private bool GetPosIdByCode()
{
try
{
// try
// {
//string message = StoreManager.ProcessCode(LastWidth, LastHeight, LastScanCodes);
string message = MoveInfo.shelfLockDatas[MoveInfo.currShelfIndex].barcode;
if (message.Equals("") || string.IsNullOrEmpty(message))
{
CodeMsg = "未扫到二维码";
LogInfo("未扫到二维码");
return false;
}
if (storeRunStatus.Equals(StoreRunStatus.Wait))
{
LogInfo("二维码【 " + message + "】,设备未启动,不需要发送服务器");
return false;
}
// CodeMsg = "收到二维码【 " + message + "】,发送给服务器获取入库PosID";
LogUtil.info(Name + "二维码【 " + message + "】,发送给服务器获取入库PosID");
//发送扫码内容到服务器进行入库操作
Operation operation = getLineBoxStatus();
operation.op = 1;
// operation.data = new Dictionary<string, string>() { { "code", message }, { "boxId", 1.ToString() }, { ParamDefine.rfid, CurrShelfID }};
string server = ConfigAppSettings.GetValue(Setting_Init.http_server);
Operation resultOperation = HttpHelper.Post(StoreManager.GetPostApi(server), operation, false);
if (resultOperation == null)
{
CodeMsg = "二维码【" + message + "】没有收到服务器反馈";
LogInfo("二维码【 " + message + "】没有收到服务器反馈!");
return false;
}
else if (!string.IsNullOrEmpty(resultOperation.msg))
{
//如果有提示消息,直接显示提示
LogInfo("二维码【 " + message + "】 :" + resultOperation.msg);
return false;
}
if (resultOperation.op.Equals(1))
{
Dictionary<string, string> data = resultOperation.data;
if (data != null && data.ContainsKey(ParamDefine.posId) && data.ContainsKey(ParamDefine.plateH) && data.ContainsKey(ParamDefine.plateW))
{
//服务器返回时有:posId库位编号,plateW:料盘宽度,plateH:料盘高度,
//postId格式BoxId#位置
string posId = data[ParamDefine.posId];
string plateW = data[ParamDefine.plateW];
string plateH = data[ParamDefine.plateH];
int storeId = InOutParam.GetPosStoreId(posId);
//根据发送的posId获取位置列表
ACBoxPosition position = CSVPositionReader<ACBoxPosition>.GetPositon(posId);
if (position == null)
{ //出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg = "入库未找到库位:二维码【" + message + "】库位【" + posId + "】 ";
LogUtil.error(Name + "收到服务器入库命令:入库未找到库位:二维码【" + message + "】库位【" + posId + "】");
return false;
}
LogInfo(" 收到服务器入库命令:库位号【" + posId + "】二维码【" + message + "】设置入库参数 , 开始入库!");
int p3 = Config.CompAxis_P3;
// MoveInfo.MoveParam.UpdatePosId(message, posId, plateW, plateH, ComTargetPosition, p3);
return true;
}
}
else if (resultOperation.op.Equals(2))
{
ReviceOutStoreProcess(resultOperation);
}
else if (resultOperation.op.Equals(5))
{
humBean.ProcessHumidityCMD(resultOperation);
}
else
{
LogUtil.error("收到服务器命令:op=" + resultOperation.op + ",未找到对应处理");
}
}
catch (Exception ex)
{
LogUtil.error(Name + "GetPosIdByCode" + ex.StackTrace);
}
// //string message = StoreManager.ProcessCode(LastWidth, LastHeight, LastScanCodes);
// string message = MoveInfo.shelfLockDatas[MoveInfo.currShelfIndex].barcode;
// if (message.Equals("") || string.IsNullOrEmpty(message))
// {
// CodeMsg = "未扫到二维码";
// LogInfo("未扫到二维码");
// return false;
// }
// if (storeRunStatus.Equals(StoreRunStatus.Wait))
// {
// LogInfo("二维码【 " + message + "】,设备未启动,不需要发送服务器");
// return false;
// }
// // CodeMsg = "收到二维码【 " + message + "】,发送给服务器获取入库PosID";
// LogUtil.info(Name + "二维码【 " + message + "】,发送给服务器获取入库PosID");
// //发送扫码内容到服务器进行入库操作
// Operation operation = getLineBoxStatus();
// operation.op = 1;
//// operation.data = new Dictionary<string, string>() { { "code", message }, { "boxId", 1.ToString() }, { ParamDefine.rfid, CurrShelfID }};
// string server = ConfigAppSettings.GetValue(Setting_Init.http_server);
// Operation resultOperation = HttpHelper.Post(StoreManager.GetPostApi(server), operation, false);
// if (resultOperation == null)
// {
// CodeMsg = "二维码【" + message + "】没有收到服务器反馈";
// LogInfo("二维码【 " + message + "】没有收到服务器反馈!");
// return false;
// }
// else if (!string.IsNullOrEmpty(resultOperation.msg))
// {
// //如果有提示消息,直接显示提示
// LogInfo("二维码【 " + message + "】 :" + resultOperation.msg);
// return false;
// }
// if (resultOperation.op.Equals(1))
// {
// Dictionary<string, string> data = resultOperation.data;
// if (data != null && data.ContainsKey(ParamDefine.posId) && data.ContainsKey(ParamDefine.plateH) && data.ContainsKey(ParamDefine.plateW))
// {
// //服务器返回时有:posId库位编号,plateW:料盘宽度,plateH:料盘高度,
// //postId格式BoxId#位置
// string posId = data[ParamDefine.posId];
// string plateW = data[ParamDefine.plateW];
// string plateH = data[ParamDefine.plateH];
// int storeId = InOutParam.GetPosStoreId(posId);
// //根据发送的posId获取位置列表
// ACBoxPosition position = CSVPositionReader<ACBoxPosition>.GetPositon(posId);
// if (position == null)
// { //出入库没有找到服务器发送的库位,需要打印日志方便查询原因
// WarnMsg = "入库未找到库位:二维码【" + message + "】库位【" + posId + "】 ";
// LogUtil.error(Name + "收到服务器入库命令:入库未找到库位:二维码【" + message + "】库位【" + posId + "】");
// return false;
// }
// LogInfo(" 收到服务器入库命令:库位号【" + posId + "】二维码【" + message + "】设置入库参数 , 开始入库!");
// int p3 = Config.CompAxis_P3;
// // MoveInfo.MoveParam.UpdatePosId(message, posId, plateW, plateH, ComTargetPosition, p3);
// return true;
// }
// }
// else if (resultOperation.op.Equals(2))
// {
// ReviceOutStoreProcess(resultOperation);
// }
// else if (resultOperation.op.Equals(5))
// {
// humBean.ProcessHumidityCMD(resultOperation);
// }
// else
// {
// LogUtil.error("收到服务器命令:op=" + resultOperation.op + ",未找到对应处理");
// }
// }
// catch (Exception ex)
// {
// LogUtil.error(Name + "GetPosIdByCode" + ex.StackTrace);
// }
return false;
}
......
......@@ -45,7 +45,7 @@ namespace OnlineStore.DeviceLibrary
this.Config = lineConfig;
this.ID = lineConfig.Id;
MoveInfo = new StoreMoveInfo(ID);
MoveInfo = new StoreMoveInfo(ID," DUO料仓 ");
Name = (" DUO料仓_" + Config.CID + " ").ToUpper();
List<string> ioList = new List<string>();
AddDeviceName(ioList, Config.IOIPList);
......
......@@ -211,14 +211,14 @@ namespace OnlineStore.DeviceLibrary
p.InOut_P2 = box.Config.InOutAxis_P2 ;
p.UpDown_P1 = box.Config.UpDownAxis_P1;
// p.UpDown_P8 = box.Config.UpDownAxis_DoorIBPosition_P8;
// p.UpDown_P8 = box.Config.UpDownAxis_DoorIBPosition_P8;
p.UpDown_P2 = box.Config.UpDownAxis_P2;
// p.UpDown_P7 = box.Config.UpDownAxis_DoorOBPosition_P7;
// p.UpDown_P7 = box.Config.UpDownAxis_DoorOBPosition_P7;
p.InOut_P11 = box.Config.InOutAxis_P11 ;
p.Middle_P11 = box.Config.MiddleAxis_P11;
p.UpDown_P11 = box.Config.UpDownAxis_P11;
p.UpDown_P12 = box.Config.UpDownAxis_P12;
//p.InOut_P11 = box.Config.InOutAxis_P11 ;
//p.Middle_P11 = box.Config.MiddleAxis_P11;
//p.UpDown_P11 = box.Config.UpDownAxis_P11;
//p.UpDown_P12 = box.Config.UpDownAxis_P12;
p.ComPress_P2 = box.Config.GetComP2(position.BagHigh);
p.ComPress_P3 = box.Config.CompAxis_P3;
......
......@@ -231,7 +231,6 @@ namespace OnlineStore.DeviceLibrary
{
if (!isInit)
{
MoveInfo = new StoreMoveInfo(ID);
mainTimer = new System.Timers.Timer();
mainTimer.Enabled = false;
......
......@@ -16,115 +16,71 @@ namespace OnlineStore.DeviceLibrary
public LineMoveP()
{
}
public LineMoveP(BOX_Config Config)
{
this.ComPress_P1 = Config.CompAxis_P1 ;
this.InOut_P1 = Config.InOutAxis_P1 ;
this.Middle_P1 = Config.MiddleAxis_P1;
this.UpDown_P1 = Config.UpDownAxis_P1;
this.UpDown_P2 = Config.UpDownAxis_P2;
this.UpDown_P12 = Config.UpDownAxis_P12;
this.UpDown_P11 = Config.UpDownAxis_P11;
this.Middle_P11 = Config.MiddleAxis_P11;
this.InOut_P11 = Config.InOutAxis_P11;
this.InOut_P2 = Config.InOutAxis_P2;
}
}
/// <summary>
/// 轴2( 升降轴) 扫码放料低点 P1
/// 轴2( 升降轴) 进料口取料点 P1
/// </summary>
public int UpDown_P1 = 0;
public int UpDown_P1 { get; set; }
/// <summary>
/// 轴2( 升降轴) 扫码放料高点 P2
/// 轴2( 升降轴) 进料口出料前点P2
/// </summary>
public int UpDown_P2 = 0;
public int UpDown_P2 { get; set; }
/// <summary>
/// 轴2( 升降轴) 库位入料前点P3
/// </summary>
public int UpDown_P3 = 0;
public int UpDown_P3 { get; set; }
/// <summary>
/// 轴2( 升降轴) 库位入料缓冲点P4
/// </summary>
public int UpDown_P4 = 0;
public int UpDown_P4 { get; set; }
/// <summary>
/// 轴2( 升降轴) 库位出料前点P5
/// </summary>
public int UpDown_P5 = 0;
public int UpDown_P5 { get; set; }
/// <summary>
/// 轴2( 升降轴) 库位出料缓冲点P6
/// </summary>
public int UpDown_P6 = 0;
public int UpDown_P6 { get; set; }
/// <summary>
/// 轴2( 升降轴) NG放料低点P11
/// 轴2( 升降轴) 进料口取料缓冲点P7
/// </summary>
public int UpDown_P11 = 0;
public int UpDown_P7 { get; set; }
/// <summary>
/// 轴2( 升降轴) NG放料高点缓冲点P12
/// 轴2( 升降轴) 进料口出料缓冲点P8
/// </summary>
public int UpDown_P12 = 0;
public int UpDown_P8 { get; set; }
/// <summary>
/// 轴1旋转轴 待机原位点/扫码点 P1
/// 轴1旋转轴 待机原位点 P1
/// </summary>
public int Middle_P1 = 0;
public int Middle_P1 { get; set; }
/// <summary>
/// 轴1旋转轴 库位点 P2
/// </summary>
public int Middle_P2 = 0;
/// <summary>
/// 轴1旋转轴 NG放料点P11 P2
/// </summary>
public int Middle_P11 = 0;
public int Middle_P2 { get; set; }
/// <summary>
/// 轴3进出轴 待机原位点P1
/// </summary>
public int InOut_P1 = 0;
public int InOut_P1 { get; set; }
/// <summary>
/// 轴3进出轴 扫码放料点
/// 轴3进出轴 进料口取料点P2
/// </summary>
public int InOut_P2 = 0;
public int InOut_P2 { get; set; }
/// <summary>
/// 轴3进出轴 库位点取料点P3
/// </summary>
public int InOut_P3 = 0;
/// <summary>
/// 轴3进出轴 NG口放料点
/// </summary>
public int InOut_P11 = 0;
public int InOut_P3 { get; set; }
/// <summary>
/// 轴4( 压紧轴)待机原位点P1
/// </summary>
public int ComPress_P1 = 0;
public int ComPress_P1 { get; set; }
/// <summary>
/// 轴4( 压紧轴)压紧点 P2
/// </summary>
public int ComPress_P2 = 0;
public int ComPress_P2 { get; set; }
/// <summary>
/// 轴4( 压紧轴) 压紧前点P3
/// </summary>
public int ComPress_P3 = 0;
/// <summary>
/// 料架进出轴取料点
/// </summary>
public int InOut_P101 = 0;
/// <summary>
/// 料架旋转轴位置
/// </summary>
public int Middle_P101 = 0;
/// <summary>
/// 料架升降轴低点P101
/// </summary>
public int UpDown_LP101 = 0;
/// <summary>
/// 料架升降轴高点P102
/// </summary>
public int UpDown_HP102 = 0;
public int ComPress_P3 { get; set; }
}
}
......@@ -185,79 +185,6 @@ namespace OnlineStore.DeviceLibrary
#endregion
#region 出库步骤 2000开始
/// <summary>
///料仓出库:叉子先运动到P1
/// </summary>
SO_01_InoutBack = 2002,
/// <summary>
///料仓出库,,顶升气缸下降,先检测料架
/// </summary>
SO_02_TopDown = 2001,
/// <summary>
/// 料仓出库,,所有轴运行到库位,压紧轴到压紧前点P3 ,旋转轴到库位点P2,轴2(上下) 至P5(库位出库前点)
/// </summary>
SO_03_ToPosition = 2003,
/// <summary>
/// 料仓出库,,叉子进入库位中, 进出轴到库位P3
/// </summary>
SO_04_ToPos = 2004,
/// <summary>
///料仓出库,, 库位的物品放入叉子上,轴2( 上下) 至P6( 库位出料缓冲点),轴4( 压紧) 至P2(压紧点)
/// </summary>
SO_05_GetReel = 2005,
/// <summary>
///料仓出库,,叉子从 库位返回,轴3( 叉子) 至P1( 待机点)
/// </summary>
SO_06_InoutBack = 2006,
/// <summary>
/// 料仓出库,等待压紧信号确认
/// </summary>
SO_07_CheckComSig = 2007,
/// <summary>
/// 料仓出库,走到料架位置,旋转轴至P20,升降轴至P102,
/// </summary>
SO_08_ToShelfPosition = 2008,
/// <summary>
/// 料仓出库,定位气缸退回(有压紧轴的不需要此步骤),,定位气缸退回(Y104-1/PCI5O1-84) (Y104-2/PCI5O1-91) (Y104-2/PCI5O1-96) 退回到位
/// </summary>
SO_09_LocationDown = 2009,
/// <summary>
/// 等待门口无料盘
/// </summary>
SO_10_WaitNoTray = 2010,
/// <summary>
/// 料仓出库,叉子到料架,进出轴至P20
/// /// </summary>
SO_11_ToShelf = 2011,
/// <summary>
/// 料仓出库,,把物品放下,压紧轴到P1,升降轴至P20
/// </summary>
SO_12_PutReel = 2012,
/// <summary>
/// 料仓出库,,叉子从出料口返回,,进出轴到P1
/// </summary>
SO_13_InoutBack = 2013,
/// <summary>
/// 料仓出库,,升降轴返回,, 轴2至P1( 待机点),顶升气缸下降
/// </summary>
SO_14_GoBack = 2044,
#endregion
#region 料架入库步骤,3000开始
/// <summary>
......@@ -519,73 +446,104 @@ namespace OnlineStore.DeviceLibrary
#endregion
#region 料仓内部入库步骤
#region 料仓内部入库步骤 200开始
/// <summary>
/// 入库检测
/// 入库,。进出轴返回P1
/// </summary>
SI_00_TrayCheck = 200,
SI_01_InoutToP1 = 201,
/// <summary>
/// 入库,。定位气缸下降
/// 入库。 升降轴,旋转轴到P1,压紧轴到P3
/// </summary>
SI_01_LocationCylinderDown = 201,
SI_02_AxisBack,
/// <summary>
/// 入库。。进出轴(叉子)先返回P1
/// 入库。进出轴到P2( 进料口取料点)
/// </summary>
SI_02_InOutAxisHome = 202,
SI_03_InoutToP2 ,
/// <summary>
/// 入库。。所有轴先回到待机点,轴2、轴1 动作到P1,,轴4动作至P3
/// 入库。升降轴到P7( 进料口取料缓冲点)压紧轴到P2(压紧点)
/// </summary>
SI_03_ReturnHome = 203,
SI_04_GetWare ,
/// <summary>
/// 入库。。压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点)
/// 入库。进出轴返回P1
/// </summary>
SI_04_CompressWare = 204,
SI_05_InoutToP1 ,
/// <summary>
/// 入库。。叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点)
/// 入库。。移动到库位点,旋转轴到P2( 库位点),升降轴到P3(库位入库前点)
/// </summary>
SI_05_DeviceToDoor = 205,
SI_06_ToBag ,
/// <summary>
/// 入库。。把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点),压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P2(压紧点)
/// 入库。。进出轴到P3(库位取放料点)
/// </summary>
SI_06_DoorWarToDevice = 206,
SI_07_InoutToP3 ,
/// <summary>
/// 入库。升降轴到P4( 库位入料缓冲点)压紧轴到P3( 压紧前点)
/// </summary>
SI_08_PutWare ,
/// <summary>
/// 入库。进出轴返回P1
/// </summary>
SI_09_InoutToP1 ,
/// <summary>
/// 入库。。叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点)
/// 入库。旋转轴,升降轴,压紧轴到待机点P1
/// </summary>
SI_07_DeviceBackFromDoor = 207,
SI_10_GoBack ,
#endregion
#region 料仓内部出库 500 开始
/// <summary>
/// 入库。。,验证是否检测到料盘信号
/// </summary>
SI_08_CheckTray = 208,
///料仓出库:进出轴到P1
/// </summary>
SO_01_InoutBack =501,
/// <summary>
/// 入库。。移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)
/// 料仓出库:压紧轴到压紧前点P3 ,旋转轴到库位点P2,轴2(上下) 至P5(库位出库前点)
/// </summary>
SI_09_MoveToBag = 209,
SO_02_ToPosition,
/// <summary>
/// 入库。。定位气缸退回 (有压紧轴的不需要此步骤)
/// 料仓出库:进出轴到库位P3
/// </summary>
SI_10_LocationCylinder_Down = 210,
SO_03_InoutToP3,
/// <summary>
/// 入库。。叉子进入库位中,轴3( 叉子) 至P3(库位取放料点)
///料仓出库:升降轴到P6,轴4( 压紧) 至P2(压紧点)
/// </summary>
SI_11_DeviceToBag = 211,
SO_04_GetReel,
/// <summary>
/// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点)
///料仓出库:进出轴返回P1
/// </summary>
SI_12_PutWareToBag = 212,
SO_05_InoutBack,
/// <summary>
/// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
/// 料仓出库:旋转轴至P1,升降轴至P2
/// </summary>
SI_13_DeviceBackFromBag = 213,
SO_06_ToDoor,
/// <summary>
/// 入库。。检测叉子是否还有物料
/// 料仓出库:进出轴到P2
/// /// </summary>
SO_07_InoutToP2,
/// <summary>
/// 料仓出库: 放下物品 升降轴至P1,压紧轴到P3
/// </summary>
SI_14_CheckTray = 214,
SO_08_PutReel,
/// <summary>
/// 入库。。返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始
/// 料仓出库: 进出轴到P1
/// </summary>
SI_15_GoBack = 215,
SO_09_InoutBack,
/// <summary>
/// 料仓出库:升降轴,旋转轴到待机点P1
/// </summary>
SO_10_GoBack,
#endregion
}
......
......@@ -9,17 +9,11 @@ using System.Text;
namespace OnlineStore.DeviceLibrary
{
/// <summary>
/// 料仓当前运动信息类(出入库状态,步骤记录)
/// </summary>
{
public class StoreMoveInfo
{
/// <summary>
/// 超时时间
/// </summary>
{
public int TimeOutSeconds = 60;
public StoreMoveInfo(int storeId)
public StoreMoveInfo(int storeId,string name)
{
moveType = MoveType.None;
......@@ -27,58 +21,39 @@ namespace OnlineStore.DeviceLibrary
this.storeId = storeId;
this.moveStep = StoreMoveStep.Wait;
IsInWait = false;
// MoveNum = 0;
this.Name = name;
}
public string Name { get; set; }
public DateTime LastSetpTime { get; set; }
/// <summary>
/// =true表示满足一个等待条件,就可以完成此步骤的等待
/// </summary>
public bool OneWaitCanEndStep = false;
public string SLog
{
get { return " " + MoveStep + " "; }
}
/// <summary>
/// 操作类型
/// </summary>
private MoveType moveType = MoveType.None;
public MoveType MoveType
{
get { return moveType; }
}
/// <summary>
///出入库参数
/// </summary>
public InOutParam MoveParam { get; set; }
/// <summary>
/// 当前运动是哪个料仓
/// </summary>
public int storeId { get; set; }
/// <summary>
/// 是否再当前步骤等待中
/// </summary>
public bool IsInWait { get; set; }
/// <summary>
/// 当前执行到的步骤
/// </summary>
private StoreMoveStep moveStep;
/// <summary>
/// 可以循环运动的次数(轴卡运动才需要)
/// </summary>
public int CanWhileCount = 0;
/// <summary>
/// 料仓运动步骤记录
/// </summary>
public StoreMoveStep MoveStep
{
get { return moveStep; }
......@@ -105,16 +80,7 @@ namespace OnlineStore.DeviceLibrary
{
IsInWait = false;
WaitList = new List<WaitResultInfo>();
}
//public void NewMove(StoreMoveType type )
//{
// moveStep = StoreMoveStep.Wait;
// this.moveType = type;
// LastSetpTime = DateTime.Now;
// WaitList = new List<WaitResultInfo>();
// // MoveNum++;
// currShelfIndex = -1;
//}
}
public void NewMove(MoveType type, InOutParam param = null)
{
moveStep = StoreMoveStep.Wait;
......@@ -125,8 +91,7 @@ namespace OnlineStore.DeviceLibrary
}
this.MoveParam = param;
LastSetpTime = DateTime.Now;
WaitList = new List<WaitResultInfo>();
currShelfIndex = -1;
WaitList = new List<WaitResultInfo>();
SingleInstore = false;
}
public void EndMove()
......@@ -145,54 +110,12 @@ namespace OnlineStore.DeviceLibrary
}
public List<WaitResultInfo> WaitList = new List<WaitResultInfo>();
/// <summary>
/// 入库时,需要循环料架的料盘取出
/// </summary>
public List<string> ShelfPositionList = new List<string>();
private string currShelfPosId = "";
public int currShelfIndex = -1;
public bool NextShelfPos()
{
currShelfIndex++;
if (currShelfIndex >= ShelfPositionList.Count)
{
return false;
}
currShelfPosId = ShelfPositionList[currShelfIndex];
//设置取料位置
// MoveParam.UpdateShelfPosId(currShelfPosId);
return true;
}
/// <summary>
/// 入库时,料架已锁定库位的位置,无需扫码
/// </summary>
public bool IsShelfLocked = false;//料架是否锁定
/// <summary>
/// 料架锁定位置的料
/// </summary>
public List<ShelfLockData> shelfLockDatas = null;
public bool NextLockedShelfPos()
internal bool IsStep(StoreMoveStep step)
{
currShelfIndex++;
if (currShelfIndex >= shelfLockDatas.Count)
{
shelfLockDatas = null;
return false;
}
currShelfPosId = ShelfPositionList[shelfLockDatas[currShelfIndex].rfidLoc];
//设置取料位置
MoveParam.UpdatePosIdAndShelfId(shelfLockDatas[currShelfIndex].barcode,
shelfLockDatas[currShelfIndex].rfid,
shelfLockDatas[currShelfIndex].lockPos);
return true;
return moveStep.Equals(step);
}
}
public class WaitResultInfo
......@@ -229,38 +152,7 @@ namespace OnlineStore.DeviceLibrary
wait.IsHomeMove = true;
return wait;
}
//public static WaitResultInfo WaitStell(byte slvAddr, int targetPosition, int speed)
//{
// WaitResultInfo wait = new WaitResultInfo();
// wait.CanWhileMoveCount =10;
// wait.WaitType = WaitEnum.W004_StellMove;
// wait.SlvAddr = slvAddr;
// wait.IsHomeMove = false;
// wait.TargetPosition = targetPosition;
// wait.TargetSpeed = speed;
// return wait;
//}
// public static WaitResultInfo WaitStellHome(byte slvAddr, int targetPosition, int speed)
//{
// WaitResultInfo wait = new WaitResultInfo();
// wait.CanWhileMoveCount = 10;
// wait.WaitType = WaitEnum.W004_StellMove;
// wait.SlvAddr = slvAddr;
// wait.IsHomeMove = true;
// wait.TargetPosition = 0;
// wait.TargetSpeed = speed;
// return wait;
//}
//public static WaitResultInfo WaitShuoKe(int slvAddr, int targetPosition, bool isHome)
//{
// WaitResultInfo wait = new WaitResultInfo();
// wait.CanWhileMoveCount = 0;
// wait.WaitType = WaitEnum.W005_ShuoKe;
// wait.SlvAddr =(byte) slvAddr;
// wait.TargetPosition = targetPosition;
// wait.IsHomeMove = isHome;
// return wait;
//}
public static WaitResultInfo WaitTime(int MScends)
{
WaitResultInfo wait = new WaitResultInfo();
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!