Commit 140cc20a LN

1

1 个父辈 0968b141
...@@ -255,19 +255,7 @@ namespace OnlineStore.DUOStore ...@@ -255,19 +255,7 @@ namespace OnlineStore.DUOStore
ktk.UpDown_P3 = FormUtil.GetIntValue(txtUpDownP3); ktk.UpDown_P3 = FormUtil.GetIntValue(txtUpDownP3);
ktk.UpDown_P4 = FormUtil.GetIntValue(txtUpDownP4); ktk.UpDown_P4 = FormUtil.GetIntValue(txtUpDownP4);
ktk.UpDown_P5 = FormUtil.GetIntValue(txtUpDownP5); ktk.UpDown_P5 = FormUtil.GetIntValue(txtUpDownP5);
ktk.UpDown_P6 = FormUtil.GetIntValue(txtUpDownP6); 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);
return ktk; return ktk;
} }
...@@ -307,9 +295,9 @@ namespace OnlineStore.DUOStore ...@@ -307,9 +295,9 @@ namespace OnlineStore.DUOStore
if (acPosition != null) if (acPosition != null)
{ {
acPosition.MiddleAxis_P2 = FormUtil.GetIntValue(txtMiddleP2); acPosition.MiddleAxis_P2 = FormUtil.GetIntValue(txtMiddleP2);
acPosition.InoutAxis_P3 = FormUtil.GetIntValue(txtInOutP3);
acPosition.UpdownAxis_IH_P3 = FormUtil.GetIntValue(txtUpDownP3); acPosition.UpdownAxis_IH_P3 = FormUtil.GetIntValue(txtUpDownP3);
acPosition.UpdownAxis_IL_P4 = FormUtil.GetIntValue(txtUpDownP4); acPosition.UpdownAxis_IL_P4 = FormUtil.GetIntValue(txtUpDownP4);
acPosition.InoutAxis_P3 = FormUtil.GetIntValue(txtInOutP3);
acPosition.UpdownAxis_OH_P5 = FormUtil.GetIntValue(txtUpDownP5); acPosition.UpdownAxis_OH_P5 = FormUtil.GetIntValue(txtUpDownP5);
acPosition.UpdownAxis_OL_P6 = FormUtil.GetIntValue(txtUpDownP6); acPosition.UpdownAxis_OL_P6 = FormUtil.GetIntValue(txtUpDownP6);
} }
......
...@@ -96,6 +96,7 @@ namespace OnlineStore.DUOStore ...@@ -96,6 +96,7 @@ namespace OnlineStore.DUOStore
/// </summary> /// </summary>
private void HideForm() private void HideForm()
{ {
DebugOpen(false);
this.Opacity = 0; this.Opacity = 0;
this.ShowInTaskbar = false; this.ShowInTaskbar = false;
this.notifyIcon1.Visible = true; this.notifyIcon1.Visible = true;
...@@ -214,6 +215,7 @@ namespace OnlineStore.DUOStore ...@@ -214,6 +215,7 @@ namespace OnlineStore.DUOStore
private void ShowStatus() private void ShowStatus()
{ {
formLineStatus(true); formLineStatus(true);
DebugOpen(false);
} }
private void formLineStatus(bool isStart) private void formLineStatus(bool isStart)
......
位置,优先级,高度,宽度,料仓ID,旋转轴库位点P2,升降轴库位出料前点P5,升降轴库位出料缓冲点P6,升降轴库位入料前点P3,升降轴库位入料缓冲点P4,进出轴库位点取料点P3 位置,优先级,高度,宽度,料仓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_4,259,32,15,2,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_5,258,32,15,2,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_6,257,32,15,2,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_7,256,32,15,2,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_8,255,32,15,2,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_9,254,32,15,2,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_10,253,32,15,2,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_11,252,32,15,2,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_12,251,32,15,2,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_13,250,32,15,2,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_14,249,32,15,2,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_15,248,32,15,2,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_16,247,12,15,2,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_17,246,12,15,2,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_18,245,12,15,2,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_19,244,12,15,2,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_20,243,12,15,2,436077,128728,139228,139228,128728,140800
2#AC2_1_1_21,242,12,15,1,436077,159195,169695,169695,159195,140800 2#AC2_1_1_21,242,12,15,2,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_4,241,12,15,2,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_5,240,12,15,2,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_6,239,12,15,2,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_7,238,12,15,2,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_8,237,12,15,2,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_9,236,12,15,2,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_10,235,12,15,2,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_11,234,12,15,2,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_12,233,12,15,2,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_13,232,12,15,2,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_14,231,12,15,2,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_15,230,12,15,2,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_16,229,12,15,2,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_17,228,12,15,2,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_18,227,12,15,2,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_19,226,12,15,2,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_20,225,12,15,2,435456,670221,680721,680721,670221,140800
2#AC2_1_2_21,224,12,15,1,435413,700236,713736,713736,700236,140800 2#AC2_1_2_21,224,12,15,2,435413,700236,713736,713736,700236,140800
...@@ -58,6 +58,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -58,6 +58,7 @@ namespace OnlineStore.DeviceLibrary
//添加调试 //添加调试
IsDebug = config.IsInDebug.Equals(1); IsDebug = config.IsInDebug.Equals(1);
Name = (" BOX_" + config.Id + " ").ToUpper(); Name = (" BOX_" + config.Id + " ").ToUpper();
MoveInfo = new StoreMoveInfo(ID, Name);
this.ID = config.Id; ; this.ID = config.Id; ;
this.Config = config; this.Config = config;
//温湿度 //温湿度
......
...@@ -16,6 +16,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -16,6 +16,7 @@ namespace OnlineStore.DeviceLibrary
{ {
public ConcurrentQueue<InOutParam> waitOutStoreList = new ConcurrentQueue<InOutParam>(); public ConcurrentQueue<InOutParam> waitOutStoreList = new ConcurrentQueue<InOutParam>();
#region 出入库结果验证 #region 出入库结果验证
private void CheckWait() private void CheckWait()
{ {
...@@ -148,9 +149,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -148,9 +149,7 @@ namespace OnlineStore.DeviceLibrary
InoutAxis.AbsMove(MoveInfo, InOut_P1, Config.InOutAxis_P1_Speed); InoutAxis.AbsMove(MoveInfo, InOut_P1, Config.InOutAxis_P1_Speed);
} }
} }
#endregion #endregion
#region 入库 #region 入库
...@@ -173,18 +172,18 @@ namespace OnlineStore.DeviceLibrary ...@@ -173,18 +172,18 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(Name + " 启动入库【" + param.ToStr() + "】出错,找不到库位信息"); LogUtil.error(Name + " 启动入库【" + param.ToStr() + "】出错,找不到库位信息");
return; return;
} }
LogInfo(" 启动入库【" + param.ToStr() + "】,压紧点P2【" + param.MoveP.ComPress_P2 + "】压紧前点P3【" + param.MoveP.ComPress_P3 + "】"); LogInfo(" 启动入库【" + param.ToStr() + "】 ");
storeRunStatus = StoreRunStatus.Busy; storeRunStatus = StoreRunStatus.Busy;
storeStatus = StoreStatus.InStoreExecute; storeStatus = StoreStatus.InStoreExecute;
MoveInfo.NewMove(MoveType.InStore, param); MoveInfo.NewMove(MoveType.InStore, param);
//新的料架库位 //新的料架库位
MoveInfo.NextMoveStep(StoreMoveStep.BI_11_InoutToP1); MoveInfo.NextMoveStep(StoreMoveStep.SI_01_InoutToP1);
MoveInfo.SingleInstore = true; MoveInfo.SingleInstore = true;
InOutStoreLog("料架取料:" + MoveInfo.SLog + " 叉子后退到待机点P1, 重置盘信息"); InOutStoreLog("料架取料:" + MoveInfo.SLog + " 进出轴返回P1");
InoutAxis.AbsMove(MoveInfo, Config.InOutAxis_P1, Config.InOutAxis_P1_Speed); InoutAxis.AbsMove(MoveInfo, Config.InOutAxis_P1, Config.InOutAxis_P1_Speed);
} }
protected override void InStoreProcess() protected override void InStoreProcess()
{ {
LineMoveP moveP = MoveInfo.MoveParam.MoveP; LineMoveP moveP = MoveInfo.MoveParam.MoveP;
...@@ -196,20 +195,101 @@ namespace OnlineStore.DeviceLibrary ...@@ -196,20 +195,101 @@ namespace OnlineStore.DeviceLibrary
{ {
return; 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 else
{ {
LogInfo(" 入库,MoveInfo.MoveStep=" + MoveInfo.MoveStep + ",没有对应的处理!"); LogUtil.error(Name + " 入库,MoveInfo.MoveStep=" + MoveInfo.MoveStep + ",没有对应的处理!");
} }
} }
#endregion #endregion
#region 出库 #region 出库
private DateTime startOutStoreTime = DateTime.Now; private DateTime startOutStoreTime = DateTime.Now;
public bool IsIgnoreComSig = false; //忽略料叉压紧信号
private void StartExecuctOut(InOutParam param) private void StartExecuctOut(InOutParam param)
{ {
...@@ -220,6 +300,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -220,6 +300,7 @@ namespace OnlineStore.DeviceLibrary
waitOutStoreList.Enqueue(param); waitOutStoreList.Enqueue(param);
} }
} }
public override bool StartOutStoreMove(InOutParam param) public override bool StartOutStoreMove(InOutParam param)
{ {
startOutStoreTime = DateTime.Now; startOutStoreTime = DateTime.Now;
...@@ -249,15 +330,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -249,15 +330,7 @@ namespace OnlineStore.DeviceLibrary
InOutBackToP1(MoveInfo.MoveParam.MoveP.InOut_P1); InOutBackToP1(MoveInfo.MoveParam.MoveP.InOut_P1);
return true; 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() protected override void OutStoreProcess()
{ {
LineMoveP moveP = MoveInfo.MoveParam.MoveP; LineMoveP moveP = MoveInfo.MoveParam.MoveP;
...@@ -268,21 +341,95 @@ namespace OnlineStore.DeviceLibrary ...@@ -268,21 +341,95 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.IsInWait) if (MoveInfo.IsInWait)
{ {
return; 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_02_ToPosition)
else if (MoveInfo.MoveStep <= StoreMoveStep.SO_01_InoutBack)
{ {
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 else
{ {
LogUtil.error(Name + " 出库处理,MoveInfo.MoveStep=" + MoveInfo.MoveStep + ",没有对应的处理!"); LogUtil.error(Name + " 出库处理,moveStatus=" + MoveInfo.MoveStep + ",没有对应的处理!");
} }
}
}
#endregion #endregion
......
...@@ -258,87 +258,87 @@ namespace OnlineStore.DeviceLibrary ...@@ -258,87 +258,87 @@ namespace OnlineStore.DeviceLibrary
/// <param name="message"></param> /// <param name="message"></param>
private bool GetPosIdByCode() private bool GetPosIdByCode()
{ {
try // try
{ // {
//string message = StoreManager.ProcessCode(LastWidth, LastHeight, LastScanCodes); // //string message = StoreManager.ProcessCode(LastWidth, LastHeight, LastScanCodes);
string message = MoveInfo.shelfLockDatas[MoveInfo.currShelfIndex].barcode; // string message = MoveInfo.shelfLockDatas[MoveInfo.currShelfIndex].barcode;
if (message.Equals("") || string.IsNullOrEmpty(message)) // if (message.Equals("") || string.IsNullOrEmpty(message))
{ // {
CodeMsg = "未扫到二维码"; // CodeMsg = "未扫到二维码";
LogInfo("未扫到二维码"); // LogInfo("未扫到二维码");
return false; // return false;
} // }
if (storeRunStatus.Equals(StoreRunStatus.Wait)) // if (storeRunStatus.Equals(StoreRunStatus.Wait))
{ // {
LogInfo("二维码【 " + message + "】,设备未启动,不需要发送服务器"); // LogInfo("二维码【 " + message + "】,设备未启动,不需要发送服务器");
return false; // return false;
} // }
// CodeMsg = "收到二维码【 " + message + "】,发送给服务器获取入库PosID"; // // CodeMsg = "收到二维码【 " + message + "】,发送给服务器获取入库PosID";
LogUtil.info(Name + "二维码【 " + message + "】,发送给服务器获取入库PosID"); // LogUtil.info(Name + "二维码【 " + message + "】,发送给服务器获取入库PosID");
//发送扫码内容到服务器进行入库操作 // //发送扫码内容到服务器进行入库操作
Operation operation = getLineBoxStatus(); // Operation operation = getLineBoxStatus();
operation.op = 1; // operation.op = 1;
// operation.data = new Dictionary<string, string>() { { "code", message }, { "boxId", 1.ToString() }, { ParamDefine.rfid, CurrShelfID }}; //// operation.data = new Dictionary<string, string>() { { "code", message }, { "boxId", 1.ToString() }, { ParamDefine.rfid, CurrShelfID }};
string server = ConfigAppSettings.GetValue(Setting_Init.http_server); // string server = ConfigAppSettings.GetValue(Setting_Init.http_server);
Operation resultOperation = HttpHelper.Post(StoreManager.GetPostApi(server), operation, false); // Operation resultOperation = HttpHelper.Post(StoreManager.GetPostApi(server), operation, false);
if (resultOperation == null) // if (resultOperation == null)
{ // {
CodeMsg = "二维码【" + message + "】没有收到服务器反馈"; // CodeMsg = "二维码【" + message + "】没有收到服务器反馈";
LogInfo("二维码【 " + message + "】没有收到服务器反馈!"); // LogInfo("二维码【 " + message + "】没有收到服务器反馈!");
return false; // return false;
} // }
else if (!string.IsNullOrEmpty(resultOperation.msg)) // else if (!string.IsNullOrEmpty(resultOperation.msg))
{ // {
//如果有提示消息,直接显示提示 // //如果有提示消息,直接显示提示
LogInfo("二维码【 " + message + "】 :" + resultOperation.msg); // LogInfo("二维码【 " + message + "】 :" + resultOperation.msg);
return false; // return false;
} // }
if (resultOperation.op.Equals(1)) // if (resultOperation.op.Equals(1))
{ // {
Dictionary<string, string> data = resultOperation.data; // Dictionary<string, string> data = resultOperation.data;
if (data != null && data.ContainsKey(ParamDefine.posId) && data.ContainsKey(ParamDefine.plateH) && data.ContainsKey(ParamDefine.plateW)) // if (data != null && data.ContainsKey(ParamDefine.posId) && data.ContainsKey(ParamDefine.plateH) && data.ContainsKey(ParamDefine.plateW))
{ // {
//服务器返回时有:posId库位编号,plateW:料盘宽度,plateH:料盘高度, // //服务器返回时有:posId库位编号,plateW:料盘宽度,plateH:料盘高度,
//postId格式BoxId#位置 // //postId格式BoxId#位置
string posId = data[ParamDefine.posId]; // string posId = data[ParamDefine.posId];
string plateW = data[ParamDefine.plateW]; // string plateW = data[ParamDefine.plateW];
string plateH = data[ParamDefine.plateH]; // string plateH = data[ParamDefine.plateH];
int storeId = InOutParam.GetPosStoreId(posId); // int storeId = InOutParam.GetPosStoreId(posId);
//根据发送的posId获取位置列表 // //根据发送的posId获取位置列表
ACBoxPosition position = CSVPositionReader<ACBoxPosition>.GetPositon(posId); // ACBoxPosition position = CSVPositionReader<ACBoxPosition>.GetPositon(posId);
if (position == null) // if (position == null)
{ //出入库没有找到服务器发送的库位,需要打印日志方便查询原因 // { //出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg = "入库未找到库位:二维码【" + message + "】库位【" + posId + "】 "; // WarnMsg = "入库未找到库位:二维码【" + message + "】库位【" + posId + "】 ";
LogUtil.error(Name + "收到服务器入库命令:入库未找到库位:二维码【" + message + "】库位【" + posId + "】"); // LogUtil.error(Name + "收到服务器入库命令:入库未找到库位:二维码【" + message + "】库位【" + posId + "】");
return false; // return false;
} // }
LogInfo(" 收到服务器入库命令:库位号【" + posId + "】二维码【" + message + "】设置入库参数 , 开始入库!"); // LogInfo(" 收到服务器入库命令:库位号【" + posId + "】二维码【" + message + "】设置入库参数 , 开始入库!");
int p3 = Config.CompAxis_P3; // int p3 = Config.CompAxis_P3;
// MoveInfo.MoveParam.UpdatePosId(message, posId, plateW, plateH, ComTargetPosition, p3); // // MoveInfo.MoveParam.UpdatePosId(message, posId, plateW, plateH, ComTargetPosition, p3);
return true; // return true;
} // }
} // }
else if (resultOperation.op.Equals(2)) // else if (resultOperation.op.Equals(2))
{ // {
ReviceOutStoreProcess(resultOperation); // ReviceOutStoreProcess(resultOperation);
} // }
else if (resultOperation.op.Equals(5)) // else if (resultOperation.op.Equals(5))
{ // {
humBean.ProcessHumidityCMD(resultOperation); // humBean.ProcessHumidityCMD(resultOperation);
} // }
else // else
{ // {
LogUtil.error("收到服务器命令:op=" + resultOperation.op + ",未找到对应处理"); // LogUtil.error("收到服务器命令:op=" + resultOperation.op + ",未找到对应处理");
} // }
} // }
catch (Exception ex) // catch (Exception ex)
{ // {
LogUtil.error(Name + "GetPosIdByCode" + ex.StackTrace); // LogUtil.error(Name + "GetPosIdByCode" + ex.StackTrace);
} // }
return false; return false;
} }
......
...@@ -45,7 +45,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -45,7 +45,7 @@ namespace OnlineStore.DeviceLibrary
this.Config = lineConfig; this.Config = lineConfig;
this.ID = lineConfig.Id; this.ID = lineConfig.Id;
MoveInfo = new StoreMoveInfo(ID); MoveInfo = new StoreMoveInfo(ID," DUO料仓 ");
Name = (" DUO料仓_" + Config.CID + " ").ToUpper(); Name = (" DUO料仓_" + Config.CID + " ").ToUpper();
List<string> ioList = new List<string>(); List<string> ioList = new List<string>();
AddDeviceName(ioList, Config.IOIPList); AddDeviceName(ioList, Config.IOIPList);
......
...@@ -211,14 +211,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -211,14 +211,14 @@ namespace OnlineStore.DeviceLibrary
p.InOut_P2 = box.Config.InOutAxis_P2 ; p.InOut_P2 = box.Config.InOutAxis_P2 ;
p.UpDown_P1 = box.Config.UpDownAxis_P1; 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_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.InOut_P11 = box.Config.InOutAxis_P11 ;
p.Middle_P11 = box.Config.MiddleAxis_P11; //p.Middle_P11 = box.Config.MiddleAxis_P11;
p.UpDown_P11 = box.Config.UpDownAxis_P11; //p.UpDown_P11 = box.Config.UpDownAxis_P11;
p.UpDown_P12 = box.Config.UpDownAxis_P12; //p.UpDown_P12 = box.Config.UpDownAxis_P12;
p.ComPress_P2 = box.Config.GetComP2(position.BagHigh); p.ComPress_P2 = box.Config.GetComP2(position.BagHigh);
p.ComPress_P3 = box.Config.CompAxis_P3; p.ComPress_P3 = box.Config.CompAxis_P3;
......
...@@ -231,7 +231,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -231,7 +231,6 @@ namespace OnlineStore.DeviceLibrary
{ {
if (!isInit) if (!isInit)
{ {
MoveInfo = new StoreMoveInfo(ID);
mainTimer = new System.Timers.Timer(); mainTimer = new System.Timers.Timer();
mainTimer.Enabled = false; mainTimer.Enabled = false;
......
...@@ -16,115 +16,71 @@ namespace OnlineStore.DeviceLibrary ...@@ -16,115 +16,71 @@ namespace OnlineStore.DeviceLibrary
public LineMoveP() 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> /// <summary>
/// 轴2( 升降轴) 扫码放料低点 P1 /// 轴2( 升降轴) 进料口取料点 P1
/// </summary> /// </summary>
public int UpDown_P1 = 0; public int UpDown_P1 { get; set; }
/// <summary> /// <summary>
/// 轴2( 升降轴) 扫码放料高点 P2 /// 轴2( 升降轴) 进料口出料前点P2
/// </summary> /// </summary>
public int UpDown_P2 = 0; public int UpDown_P2 { get; set; }
/// <summary> /// <summary>
/// 轴2( 升降轴) 库位入料前点P3 /// 轴2( 升降轴) 库位入料前点P3
/// </summary> /// </summary>
public int UpDown_P3 = 0; public int UpDown_P3 { get; set; }
/// <summary> /// <summary>
/// 轴2( 升降轴) 库位入料缓冲点P4 /// 轴2( 升降轴) 库位入料缓冲点P4
/// </summary> /// </summary>
public int UpDown_P4 = 0; public int UpDown_P4 { get; set; }
/// <summary> /// <summary>
/// 轴2( 升降轴) 库位出料前点P5 /// 轴2( 升降轴) 库位出料前点P5
/// </summary> /// </summary>
public int UpDown_P5 = 0; public int UpDown_P5 { get; set; }
/// <summary> /// <summary>
/// 轴2( 升降轴) 库位出料缓冲点P6 /// 轴2( 升降轴) 库位出料缓冲点P6
/// </summary> /// </summary>
public int UpDown_P6 = 0; public int UpDown_P6 { get; set; }
/// <summary> /// <summary>
/// 轴2( 升降轴) NG放料低点P11 /// 轴2( 升降轴) 进料口取料缓冲点P7
/// </summary> /// </summary>
public int UpDown_P11 = 0; public int UpDown_P7 { get; set; }
/// <summary> /// <summary>
/// 轴2( 升降轴) NG放料高点缓冲点P12 /// 轴2( 升降轴) 进料口出料缓冲点P8
/// </summary> /// </summary>
public int UpDown_P12 = 0; public int UpDown_P8 { get; set; }
/// <summary> /// <summary>
/// 轴1旋转轴 待机原位点/扫码点 P1 /// 轴1旋转轴 待机原位点 P1
/// </summary> /// </summary>
public int Middle_P1 = 0; public int Middle_P1 { get; set; }
/// <summary> /// <summary>
/// 轴1旋转轴 库位点 P2 /// 轴1旋转轴 库位点 P2
/// </summary> /// </summary>
public int Middle_P2 = 0; public int Middle_P2 { get; set; }
/// <summary>
/// 轴1旋转轴 NG放料点P11 P2
/// </summary>
public int Middle_P11 = 0;
/// <summary> /// <summary>
/// 轴3进出轴 待机原位点P1 /// 轴3进出轴 待机原位点P1
/// </summary> /// </summary>
public int InOut_P1 = 0; public int InOut_P1 { get; set; }
/// <summary> /// <summary>
/// 轴3进出轴 扫码放料点 /// 轴3进出轴 进料口取料点P2
/// </summary> /// </summary>
public int InOut_P2 = 0; public int InOut_P2 { get; set; }
/// <summary> /// <summary>
/// 轴3进出轴 库位点取料点P3 /// 轴3进出轴 库位点取料点P3
/// </summary> /// </summary>
public int InOut_P3 = 0; public int InOut_P3 { get; set; }
/// <summary>
/// 轴3进出轴 NG口放料点
/// </summary>
public int InOut_P11 = 0;
/// <summary> /// <summary>
/// 轴4( 压紧轴)待机原位点P1 /// 轴4( 压紧轴)待机原位点P1
/// </summary> /// </summary>
public int ComPress_P1 = 0; public int ComPress_P1 { get; set; }
/// <summary> /// <summary>
/// 轴4( 压紧轴)压紧点 P2 /// 轴4( 压紧轴)压紧点 P2
/// </summary> /// </summary>
public int ComPress_P2 = 0; public int ComPress_P2 { get; set; }
/// <summary> /// <summary>
/// 轴4( 压紧轴) 压紧前点P3 /// 轴4( 压紧轴) 压紧前点P3
/// </summary> /// </summary>
public int ComPress_P3 = 0; public int ComPress_P3 { get; set; }
/// <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;
} }
} }
...@@ -185,79 +185,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -185,79 +185,6 @@ namespace OnlineStore.DeviceLibrary
#endregion #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开始 #region 料架入库步骤,3000开始
/// <summary> /// <summary>
...@@ -519,73 +446,104 @@ namespace OnlineStore.DeviceLibrary ...@@ -519,73 +446,104 @@ namespace OnlineStore.DeviceLibrary
#endregion #endregion
#region 料仓内部入库步骤 #region 料仓内部入库步骤 200开始
/// <summary> /// <summary>
/// 入库检测 /// 入库,。进出轴返回P1
/// </summary> /// </summary>
SI_00_TrayCheck = 200, SI_01_InoutToP1 = 201,
/// <summary> /// <summary>
/// 入库,。定位气缸下降 /// 入库。 升降轴,旋转轴到P1,压紧轴到P3
/// </summary> /// </summary>
SI_01_LocationCylinderDown = 201, SI_02_AxisBack,
/// <summary> /// <summary>
/// 入库。。进出轴(叉子)先返回P1 /// 入库。进出轴到P2( 进料口取料点)
/// </summary> /// </summary>
SI_02_InOutAxisHome = 202, SI_03_InoutToP2 ,
/// <summary> /// <summary>
/// 入库。。所有轴先回到待机点,轴2、轴1 动作到P1,,轴4动作至P3 /// 入库。升降轴到P7( 进料口取料缓冲点)压紧轴到P2(压紧点)
/// </summary> /// </summary>
SI_03_ReturnHome = 203, SI_04_GetWare ,
/// <summary> /// <summary>
/// 入库。。压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点) /// 入库。进出轴返回P1
/// </summary> /// </summary>
SI_04_CompressWare = 204, SI_05_InoutToP1 ,
/// <summary> /// <summary>
/// 入库。。叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点) /// 入库。。移动到库位点,旋转轴到P2( 库位点),升降轴到P3(库位入库前点)
/// </summary> /// </summary>
SI_05_DeviceToDoor = 205, SI_06_ToBag ,
/// <summary> /// <summary>
/// 入库。。把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点),压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P2(压紧点) /// 入库。。进出轴到P3(库位取放料点)
/// </summary> /// </summary>
SI_06_DoorWarToDevice = 206, SI_07_InoutToP3 ,
/// <summary>
/// 入库。升降轴到P4( 库位入料缓冲点)压紧轴到P3( 压紧前点)
/// </summary>
SI_08_PutWare ,
/// <summary>
/// 入库。进出轴返回P1
/// </summary>
SI_09_InoutToP1 ,
/// <summary> /// <summary>
/// 入库。。叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点) /// 入库。旋转轴,升降轴,压紧轴到待机点P1
/// </summary> /// </summary>
SI_07_DeviceBackFromDoor = 207, SI_10_GoBack ,
#endregion
#region 料仓内部出库 500 开始
/// <summary> /// <summary>
/// 入库。。,验证是否检测到料盘信号 ///料仓出库:进出轴到P1
/// </summary> /// </summary>
SI_08_CheckTray = 208, SO_01_InoutBack =501,
/// <summary> /// <summary>
/// 入库。。移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点) /// 料仓出库:压紧轴到压紧前点P3 ,旋转轴到库位点P2,轴2(上下) 至P5(库位出库前点)
/// </summary> /// </summary>
SI_09_MoveToBag = 209, SO_02_ToPosition,
/// <summary> /// <summary>
/// 入库。。定位气缸退回 (有压紧轴的不需要此步骤) /// 料仓出库:进出轴到库位P3
/// </summary> /// </summary>
SI_10_LocationCylinder_Down = 210, SO_03_InoutToP3,
/// <summary> /// <summary>
/// 入库。。叉子进入库位中,轴3( 叉子) 至P3(库位取放料点) ///料仓出库:升降轴到P6,轴4( 压紧) 至P2(压紧点)
/// </summary> /// </summary>
SI_11_DeviceToBag = 211, SO_04_GetReel,
/// <summary> /// <summary>
/// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点) ///料仓出库:进出轴返回P1
/// </summary> /// </summary>
SI_12_PutWareToBag = 212, SO_05_InoutBack,
/// <summary> /// <summary>
/// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点) /// 料仓出库:旋转轴至P1,升降轴至P2
/// </summary> /// </summary>
SI_13_DeviceBackFromBag = 213, SO_06_ToDoor,
/// <summary> /// <summary>
/// 入库。。检测叉子是否还有物料 /// 料仓出库:进出轴到P2
/// /// </summary>
SO_07_InoutToP2,
/// <summary>
/// 料仓出库: 放下物品 升降轴至P1,压紧轴到P3
/// </summary> /// </summary>
SI_14_CheckTray = 214, SO_08_PutReel,
/// <summary> /// <summary>
/// 入库。。返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始 /// 料仓出库: 进出轴到P1
/// </summary> /// </summary>
SI_15_GoBack = 215, SO_09_InoutBack,
/// <summary>
/// 料仓出库:升降轴,旋转轴到待机点P1
/// </summary>
SO_10_GoBack,
#endregion #endregion
} }
......
...@@ -9,17 +9,11 @@ using System.Text; ...@@ -9,17 +9,11 @@ using System.Text;
namespace OnlineStore.DeviceLibrary namespace OnlineStore.DeviceLibrary
{ {
/// <summary>
/// 料仓当前运动信息类(出入库状态,步骤记录)
/// </summary>
public class StoreMoveInfo public class StoreMoveInfo
{ {
/// <summary>
/// 超时时间
/// </summary>
public int TimeOutSeconds = 60; public int TimeOutSeconds = 60;
public StoreMoveInfo(int storeId) public StoreMoveInfo(int storeId,string name)
{ {
moveType = MoveType.None; moveType = MoveType.None;
...@@ -27,58 +21,39 @@ namespace OnlineStore.DeviceLibrary ...@@ -27,58 +21,39 @@ namespace OnlineStore.DeviceLibrary
this.storeId = storeId; this.storeId = storeId;
this.moveStep = StoreMoveStep.Wait; this.moveStep = StoreMoveStep.Wait;
IsInWait = false; IsInWait = false;
// MoveNum = 0; this.Name = name;
} }
public string Name { get; set; } public string Name { get; set; }
public DateTime LastSetpTime { get; set; } public DateTime LastSetpTime { get; set; }
/// <summary>
/// =true表示满足一个等待条件,就可以完成此步骤的等待
/// </summary>
public bool OneWaitCanEndStep = false; public bool OneWaitCanEndStep = false;
public string SLog public string SLog
{ {
get { return " " + MoveStep + " "; } get { return " " + MoveStep + " "; }
} }
/// <summary>
/// 操作类型
/// </summary>
private MoveType moveType = MoveType.None; private MoveType moveType = MoveType.None;
public MoveType MoveType public MoveType MoveType
{ {
get { return moveType; } get { return moveType; }
} }
/// <summary>
///出入库参数
/// </summary>
public InOutParam MoveParam { get; set; } public InOutParam MoveParam { get; set; }
/// <summary>
/// 当前运动是哪个料仓
/// </summary>
public int storeId { get; set; } public int storeId { get; set; }
/// <summary>
/// 是否再当前步骤等待中
/// </summary>
public bool IsInWait { get; set; } public bool IsInWait { get; set; }
/// <summary>
/// 当前执行到的步骤
/// </summary>
private StoreMoveStep moveStep; private StoreMoveStep moveStep;
/// <summary>
/// 可以循环运动的次数(轴卡运动才需要)
/// </summary>
public int CanWhileCount = 0; public int CanWhileCount = 0;
/// <summary>
/// 料仓运动步骤记录
/// </summary>
public StoreMoveStep MoveStep public StoreMoveStep MoveStep
{ {
get { return moveStep; } get { return moveStep; }
...@@ -105,16 +80,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -105,16 +80,7 @@ namespace OnlineStore.DeviceLibrary
{ {
IsInWait = false; IsInWait = false;
WaitList = new List<WaitResultInfo>(); 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) public void NewMove(MoveType type, InOutParam param = null)
{ {
moveStep = StoreMoveStep.Wait; moveStep = StoreMoveStep.Wait;
...@@ -125,8 +91,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -125,8 +91,7 @@ namespace OnlineStore.DeviceLibrary
} }
this.MoveParam = param; this.MoveParam = param;
LastSetpTime = DateTime.Now; LastSetpTime = DateTime.Now;
WaitList = new List<WaitResultInfo>(); WaitList = new List<WaitResultInfo>();
currShelfIndex = -1;
SingleInstore = false; SingleInstore = false;
} }
public void EndMove() public void EndMove()
...@@ -145,54 +110,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -145,54 +110,12 @@ namespace OnlineStore.DeviceLibrary
} }
public List<WaitResultInfo> WaitList = new List<WaitResultInfo>(); public List<WaitResultInfo> WaitList = new List<WaitResultInfo>();
/// <summary> internal bool IsStep(StoreMoveStep step)
/// 入库时,需要循环料架的料盘取出
/// </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()
{ {
return moveStep.Equals(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;
} }
} }
public class WaitResultInfo public class WaitResultInfo
...@@ -229,38 +152,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -229,38 +152,7 @@ namespace OnlineStore.DeviceLibrary
wait.IsHomeMove = true; wait.IsHomeMove = true;
return wait; 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) public static WaitResultInfo WaitTime(int MScends)
{ {
WaitResultInfo wait = new WaitResultInfo(); WaitResultInfo wait = new WaitResultInfo();
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!