Commit 907b095b LN

服务器通信功能修改

1 个父辈 67dc99ba
...@@ -171,11 +171,14 @@ namespace OnlineStore.ACSquareStore ...@@ -171,11 +171,14 @@ namespace OnlineStore.ACSquareStore
private void btnOpenAxisBreak_Click(object sender, EventArgs e) private void btnOpenAxisBreak_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnRShelfForward.Text);
StoreManager.Store.ShelfForward(2); StoreManager.Store.ShelfForward(2);
} }
private void btnCloseAxisBreak_Click(object sender, EventArgs e) private void btnCloseAxisBreak_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnRShelfBack.Text);
StoreManager.Store.ShelfBack(2); StoreManager.Store.ShelfBack(2);
} }
...@@ -230,48 +233,48 @@ namespace OnlineStore.ACSquareStore ...@@ -230,48 +233,48 @@ namespace OnlineStore.ACSquareStore
private void btnOpenDoor_Click(object sender, EventArgs e) private void btnOpenDoor_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnOpenLDoor.Text);
// StoreManager.Store.OpenDoor(1); // StoreManager.Store.OpenDoor(1);
IOManager.IOMove(IO_Type.LeftDoor_Close, IO_VALUE.LOW); IOManager.IOMove(IO_Type.LeftDoor_Close, IO_VALUE.LOW);
} }
private void btnCloseDoor_Click(object sender, EventArgs e) private void btnCloseDoor_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnCloseLDoor.Text);
// StoreManager.Store.CloseDoor(1); // StoreManager.Store.CloseDoor(1);
IOManager.IOMove(IO_Type.LeftDoor_Close, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.LeftDoor_Close, IO_VALUE.HIGH);
} }
private void btnOpenRDoor_Click(object sender, EventArgs e) private void btnOpenRDoor_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnOpenRDoor.Text);
// StoreManager.Store.OpenDoor(2); // StoreManager.Store.OpenDoor(2);
IOManager.IOMove(IO_Type.RightDoor_Close, IO_VALUE.LOW); IOManager.IOMove(IO_Type.RightDoor_Close, IO_VALUE.LOW);
} }
private void btnCloseRDoor_Click(object sender, EventArgs e) private void btnCloseRDoor_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnCloseRDoor.Text);
// StoreManager.Store.OpenDoor(2); // StoreManager.Store.OpenDoor(2);
IOManager.IOMove(IO_Type.RightDoor_Close, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.RightDoor_Close, IO_VALUE.HIGH);
} }
private void btnLShelfForward_Click(object sender, EventArgs e) private void btnLShelfForward_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnLShelfForward.Text);
StoreManager.Store.ShelfForward(1); StoreManager.Store.ShelfForward(1);
} }
private void btnLShelfBack_Click(object sender, EventArgs e) private void btnLShelfBack_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnLShelfBack.Text);
StoreManager.Store.ShelfBack(1); StoreManager.Store.ShelfBack(1);
} }
private void btnOpenB_Click(object sender, EventArgs e)
{
IOManager.IOMove(IO_Type.Axis_Brake, IO_VALUE.HIGH);
}
private void btnCloseB_Click(object sender, EventArgs e)
{
IOManager.IOMove(IO_Type.Axis_Brake, IO_VALUE.LOW);
}
private void btnLShelfStop_Click(object sender, EventArgs e) private void btnLShelfStop_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnLShelfStop.Text);
StoreManager.Store.LeftShlefMove.Stop(); StoreManager.Store.LeftShlefMove.Stop();
} }
private void btnRShlefStop_Click(object sender, EventArgs e) private void btnRShlefStop_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnRShlefStop.Text);
StoreManager.Store.RightShelfMove.Stop(); StoreManager.Store.RightShelfMove.Stop();
} }
} }
......
...@@ -61,4 +61,11 @@ ...@@ -61,4 +61,11 @@
修改问题: 修改问题:
1.界面进出轴P3显示错误。 1.界面进出轴P3显示错误。
2.入库时:前后轴先移动到库位,再移动升降轴。 2.入库时:前后轴先移动到库位,再移动升降轴。
3.出库去库位时:前后轴先移动到库位,再移动升降轴。
\ No newline at end of file \ No newline at end of file
3.出库去库位时:前后轴先移动到库位,再移动升降轴。
20200917
方仓的字段:
1 入库时的字段: door: 1为1号仓门入库 2为2号仓门入库
2 出库放到仓门口算出库完成,完成时发送 door=1为1号仓门 door=2为2号仓门
3 仓门状态上传: 字段为door1和doo2, 状态:opened为已打开, closed为已关闭, opening为打开中, closing为关闭中
4 开关门操作: 开门openDoor=1为1号仓门打开, =2为2号仓门打开, closeDoor=1为1号仓门关闭,=2为2号仓门关闭
\ No newline at end of file \ No newline at end of file
...@@ -224,5 +224,14 @@ namespace OnlineStore.Common ...@@ -224,5 +224,14 @@ namespace OnlineStore.Common
public static string rfidLoc = "rfidLoc"; public static string rfidLoc = "rfidLoc";
public static string barcode = "barcode"; public static string barcode = "barcode";
/// <summary>
/// 1 入库时的字段: door: 1为1号仓门入库 2为2号仓门入库
/// 2 出库放到仓门口算出库完成,完成时发送 door = 1为1号仓门 door = 2为2号仓门
/// </summary>
public static string door = "door";
public static string door1 = "door1";
public static string door2 = "door2";
public static string openDoor= "openDoor";
public static string closeDoor= "closeDoor";
} }
} }
...@@ -32,20 +32,20 @@ namespace OnlineStore.Common ...@@ -32,20 +32,20 @@ namespace OnlineStore.Common
return; return;
} }
log.Info(log.Logger.Name + " - " + msg); log.Info( msg);
AddToBox(msg, Color.Black); AddToBox(msg, Color.Black);
//clear(); //clear();
} }
public static void info(ILog log,string msg, Color color) public static void info(ILog log,string msg, Color color)
{ {
log.Info(log.Logger.Name + " - " + msg); log.Info( msg);
AddToBox(msg, color); AddToBox(msg, color);
} }
public static void debug(ILog log, string msg, Color color) public static void debug(ILog log, string msg, Color color)
{ {
log.Debug(log.Logger.Name + " - " + msg); log.Debug( msg);
if (debug_opened) if (debug_opened)
{ {
AddToBox(msg, color); AddToBox(msg, color);
...@@ -53,7 +53,7 @@ namespace OnlineStore.Common ...@@ -53,7 +53,7 @@ namespace OnlineStore.Common
} }
public static void debug(ILog log, string msg) public static void debug(ILog log, string msg)
{ {
log.Debug(log.Logger.Name + " - " + msg); log.Debug( msg);
if (debug_opened) if (debug_opened)
{ {
AddToBox(msg, Color.Gray); AddToBox(msg, Color.Gray);
...@@ -93,7 +93,7 @@ namespace OnlineStore.Common ...@@ -93,7 +93,7 @@ namespace OnlineStore.Common
} }
public static void error(ILog log, string errorMsg) public static void error(ILog log, string errorMsg)
{ {
log.Error(log.Logger.Name + " - " + errorMsg); log.Error( errorMsg);
AddToBox(errorMsg, Color.Red); AddToBox(errorMsg, Color.Red);
} }
private static void AddToBox(string msg, Color color) private static void AddToBox(string msg, Color color)
......
...@@ -27,6 +27,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -27,6 +27,7 @@ namespace OnlineStore.DeviceLibrary
/// 记录最后一次 出库的posID,出库完成发送给服务器之后清除 /// 记录最后一次 出库的posID,出库完成发送给服务器之后清除
/// </summary> /// </summary>
public string lastPosId = ""; public string lastPosId = "";
public int lastDoor = 0;
public StoreStatus lastPosIdStatus = StoreStatus.StoreOnline; public StoreStatus lastPosIdStatus = StoreStatus.StoreOnline;
/// <summary> /// <summary>
/// 轴列表 /// 轴列表
...@@ -1171,8 +1172,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -1171,8 +1172,9 @@ namespace OnlineStore.DeviceLibrary
//服务器返回时有:posId库位编号,plateW:料盘宽度,plateH:料盘高度, //服务器返回时有:posId库位编号,plateW:料盘宽度,plateH:料盘高度,
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];
InOutPosInfo inoutInfo = new InOutPosInfo(message, posId, plateH, plateW); int door = Convert.ToInt32(data[ParamDefine.door]);
InOutPosInfo inoutInfo = new InOutPosInfo(message, posId, plateH, plateW,door);
//根据发送的posId获取位置列表 //根据发送的posId获取位置列表
ACSquareSPosition position = CSVPositionReader<ACSquareSPosition>.GetPositon(posId); ACSquareSPosition position = CSVPositionReader<ACSquareSPosition>.GetPositon(posId);
...@@ -1180,7 +1182,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -1180,7 +1182,7 @@ namespace OnlineStore.DeviceLibrary
{ //出入库没有找到服务器发送的库位,需要打印日志方便查询原因 { //出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg = "入库未找到库位:【" + inoutInfo.ToStr() + "】 "; WarnMsg = "入库未找到库位:【" + inoutInfo.ToStr() + "】 ";
LogUtil.error(LOGGER, "收到服务器入库命令:入库未找到库位:【" + inoutInfo.ToStr() + "】"); LogUtil.error(LOGGER, "收到服务器入库命令:入库未找到库位:【" + inoutInfo.ToStr() + "】");
LogUtil.info(LOGGER, "收到服务器入库命令:入库未找到库位:【" + inoutInfo.ToStr() + "】"); LogUtil.info(LOGGER, "收到服务器入库命令:入库未找到库位:【" + inoutInfo.ToStr() + "】");
return; return;
} }
//TODO:判断BOX是否处于可以入库状态,如果调试或急停中,需要返回给服务器; //TODO:判断BOX是否处于可以入库状态,如果调试或急停中,需要返回给服务器;
...@@ -1503,15 +1505,25 @@ namespace OnlineStore.DeviceLibrary ...@@ -1503,15 +1505,25 @@ namespace OnlineStore.DeviceLibrary
} }
else if (storeStatus.Equals(StoreStatus.OutStoreBoxEnd) || storeStatus.Equals(StoreStatus.InStoreEnd)) else if (storeStatus.Equals(StoreStatus.OutStoreBoxEnd) || storeStatus.Equals(StoreStatus.InStoreEnd))
{ {
boxStatus.data.Add(ParamDefine.posId, lastPosId); boxStatus.data.Add(ParamDefine.posId, lastPosId);
if (lastPosIdStatus.Equals(StoreStatus.OutStoreBoxEnd) || lastPosIdStatus.Equals(StoreStatus.InStoreEnd))
{
boxStatus.data.Add(ParamDefine.door, lastDoor.ToString());
}
} }
else if (!lastPosId.Equals("")) else if (!lastPosId.Equals(""))
{ {
boxStatus.data.Add(ParamDefine.posId, lastPosId); boxStatus.data.Add(ParamDefine.posId, lastPosId);
boxStatus.status = (int)lastPosIdStatus; boxStatus.status = (int)lastPosIdStatus;
string doorP = "";
if (lastPosIdStatus.Equals(StoreStatus.OutStoreBoxEnd) || lastPosIdStatus.Equals(StoreStatus.InStoreEnd))
{
boxStatus.data.Add(ParamDefine.door, lastDoor.ToString());
doorP = "door【" + lastDoor + "】";
}
if (lastPosId != "") if (lastPosId != "")
{ {
LogUtil.info(LOGGER, "给服务器发送出入库完成消息:" + StoreName + ",status【" + lastPosIdStatus + "】posId【" + lastPosId + "】"); LogUtil.info(LOGGER, "给服务器发送出入库完成消息:" + StoreName + ",status【" + lastPosIdStatus + "】posId【" + lastPosId + "】" + doorP);
} }
lastPosId = ""; lastPosId = "";
} }
...@@ -1525,7 +1537,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -1525,7 +1537,9 @@ namespace OnlineStore.DeviceLibrary
// boxStatus.status = (int)StoreStatus.InStoreExecute; // boxStatus.status = (int)StoreStatus.InStoreExecute;
//} //}
} }
//3 仓门状态上传: 字段为door1和doo2, 状态: opened为已打开, closed为已关闭, opening为打开中, closing为关闭中
boxStatus.data.Add(ParamDefine.door1, GetDoorStatus(1));
boxStatus.data.Add(ParamDefine.door2, GetDoorStatus(2));
//温湿度 //温湿度
//ASTemperateParam param = HumitureServer.GetTemperateParam(Config.Temperate_Serveraddress); //ASTemperateParam param = HumitureServer.GetTemperateParam(Config.Temperate_Serveraddress);
...@@ -1559,26 +1573,67 @@ namespace OnlineStore.DeviceLibrary ...@@ -1559,26 +1573,67 @@ namespace OnlineStore.DeviceLibrary
Operation resultOperation = HttpHelper.Post(StoreManager.GetPostApi(server), lineOperation, false); Operation resultOperation = HttpHelper.Post(StoreManager.GetPostApi(server), lineOperation, false);
//发送状态信息到服务器 //发送状态信息到服务器
if (resultOperation == null || (resultOperation.op <= 0)) if (resultOperation == null )
{ {
//判断服务端是否返回出库操作 //判断服务端是否返回出库操作
return; return;
} }
if (resultOperation.op.Equals(1)) if (resultOperation.op > 0)
{
ReviceInStoreProcess("", resultOperation);
}
else if (resultOperation.op.Equals(2))
{
ReviceOutStoreProcess(resultOperation);
}
else if (resultOperation.op.Equals(5))
{ {
ProcessHumidityCMD(resultOperation); if (resultOperation.op.Equals(1))
{
ReviceInStoreProcess("", resultOperation);
}
else if (resultOperation.op.Equals(2))
{
ReviceOutStoreProcess(resultOperation);
}
else if (resultOperation.op.Equals(5))
{
ProcessHumidityCMD(resultOperation);
}
else
{
LogUtil.error("收到服务器命令:op=" + resultOperation.op + ",未找到对应处理");
}
} }
else else if (resultOperation.data != null)
{ {
LogUtil.error("收到服务器命令:op=" + resultOperation.op + ",未找到对应处理"); //4 开关门操作: 开门openDoor = 1为1号仓门打开, = 2为2号仓门打开, closeDoor = 1为1号仓门关闭,= 2为2号仓门关闭
bool result = false;
Dictionary<string, string> dataMap = resultOperation.data;
if (dataMap.ContainsKey(ParamDefine.openDoor))
{
if (dataMap[ParamDefine.openDoor].Equals(1))
{
LogUtil.info(StoreName + "收到服务器命令:openDoor=1 ");
result= OpenDoor(1);
}
else if (dataMap[ParamDefine.openDoor].Equals(2))
{
LogUtil.info(StoreName + "收到服务器命令:openDoor=2");
result = OpenDoor(2);
}
}
else if (dataMap.ContainsKey(ParamDefine.closeDoor))
{
if (dataMap[ParamDefine.closeDoor].Equals(1))
{
LogUtil.info(StoreName + "收到服务器命令:closeDoor=1");
result =CloseDoor(1);
}
else if (dataMap[ParamDefine.closeDoor].Equals(2))
{
LogUtil.info(StoreName + "收到服务器命令:closeDoor=2");
result = CloseDoor(2);
}
}
if (!result)
{
LogUtil.info(StoreName + "收到服务器命令:执行失败:" + result);
}
} }
TimeSpan span = DateTime.Now - time; TimeSpan span = DateTime.Now - time;
if (span.TotalMilliseconds > 10) if (span.TotalMilliseconds > 10)
......
...@@ -285,11 +285,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -285,11 +285,11 @@ namespace OnlineStore.DeviceLibrary
storeRunStatus = StoreRunStatus.Busy; storeRunStatus = StoreRunStatus.Busy;
storeStatus = StoreStatus.InStoreExecute; storeStatus = StoreStatus.InStoreExecute;
StoreMove.NewMove(StoreMoveType.InStore, param); StoreMove.NewMove(StoreMoveType.InStore, param);
if (StoreManager.UseShelfCheck) if (StoreManager.UseShelfCheck)
{ //料盘检测 { //料盘检测
InStoreLog(" 入库:SI_00 检测料盘信号");
StoreMove.NextMoveStep(StoreMoveStep.SI_00_TrayCheck); StoreMove.NextMoveStep(StoreMoveStep.SI_00_TrayCheck);
InStoreLog("入库:检测料盘信号 ");
if (param.PosInfo.ShelfType.Equals(1)) if (param.PosInfo.ShelfType.Equals(1))
{ {
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LeftShelf_Check, IO_VALUE.HIGH)); StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LeftShelf_Check, IO_VALUE.HIGH));
...@@ -297,7 +297,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -297,7 +297,7 @@ namespace OnlineStore.DeviceLibrary
else else
{ {
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.RightShelf_Check, IO_VALUE.HIGH)); StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.RightShelf_Check, IO_VALUE.HIGH));
} }
} }
else else
{ {
...@@ -311,8 +311,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -311,8 +311,8 @@ namespace OnlineStore.DeviceLibrary
} }
private void SI_02_Move() private void SI_02_Move()
{ {
InStoreLog("入库:SI_02_ 进出轴(叉子)动作至P1,关闭门锁=" + StoreMove.MoveParam.PosInfo.ShelfType); StoreMove.NextMoveStep(StoreMoveStep.SI_02_InOutToP1);
StoreMove.NextMoveStep(StoreMoveStep.SI_02_InOutAxisHome); InStoreLog("入库:进出轴(叉子)动作至P1,关闭门锁=" + StoreMove.MoveParam.PosInfo.ShelfType);
CloseDoor(StoreMove.MoveParam.PosInfo.ShelfType); CloseDoor(StoreMove.MoveParam.PosInfo.ShelfType);
InOutBackToP1(StoreMove.MoveParam.MoveP.InOut_P1); InOutBackToP1(StoreMove.MoveParam.MoveP.InOut_P1);
} }
...@@ -333,38 +333,38 @@ namespace OnlineStore.DeviceLibrary ...@@ -333,38 +333,38 @@ namespace OnlineStore.DeviceLibrary
SI_02_Move(); SI_02_Move();
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_02_InOutAxisHome) else if (StoreMove.MoveStep == StoreMoveStep.SI_02_InOutToP1)
{ {
InStoreLog("入库:SI_03 升降轴,前进轴 动作到P1 ,托架后退"); StoreMove.NextMoveStep(StoreMoveStep.SI_03_ToP1);
StoreMove.NextMoveStep(StoreMoveStep.SI_03_ReturnHome); InStoreLog("入库:升降轴到P1[" + moveP.UpDown_P1 + "],前进轴到P1[" + moveP.Middle_P1 + "] ,托架后退");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed); ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
ShelfBack(StoreMove.MoveParam.PosInfo.ShelfType, StoreMove); ShelfBack(StoreMove.MoveParam.PosInfo.ShelfType, StoreMove);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_03_ReturnHome) else if (StoreMove.MoveStep == StoreMoveStep.SI_03_ToP1)
{ {
InStoreLog("入库:SI_05 叉子进入入料口,进出轴至P2(进料口取料点) "); StoreMove.NextMoveStep(StoreMoveStep.SI_05_InoutToP2);
StoreMove.NextMoveStep(StoreMoveStep.SI_05_DeviceToDoor); InStoreLog("入库:叉子进入入料口,进出轴至P2(进料口取料点) [" + moveP.InOut_P2 + "] ");
ACAxisMove(Config.InOut_Axis, StoreMove.MoveParam.MoveP.InOut_P2, Config.InOutAxis_P2_Speed); ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_05_DeviceToDoor) else if (StoreMove.MoveStep == StoreMoveStep.SI_05_InoutToP2)
{ {
//NeedCheckSafetyLight = 0; //NeedCheckSafetyLight = 0;
InStoreLog("入库:SI_06 拿物品, 升降轴至P7(进料口取料缓冲点) ");
StoreMove.NextMoveStep(StoreMoveStep.SI_06_UpdownAxisUp); StoreMove.NextMoveStep(StoreMoveStep.SI_06_UpdownAxisUp);
InStoreLog("入库: 拿物品, 升降轴至P7(进料口取料缓冲点) [" + moveP.UpDown_P7 + "]");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P7, Config.UpDownAxis_P7_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P7, Config.UpDownAxis_P7_Speed);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_06_UpdownAxisUp) else if (StoreMove.MoveStep == StoreMoveStep.SI_06_UpdownAxisUp)
{ {
InStoreLog("入库:SI_07 叉子 从入料口抽出,进出轴至P1(待机点) "); StoreMove.NextMoveStep(StoreMoveStep.SI_07_InOutToP1 );
StoreMove.NextMoveStep(StoreMoveStep.SI_07_InoutBack); InStoreLog("入库: 叉子 从入料口抽出,进出轴至P1(待机点) [" + moveP.InOut_P1 + "]");
InOutBackToP1(moveP.InOut_P1); InOutBackToP1(moveP.InOut_P1);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_07_InoutBack) else if (StoreMove.MoveStep == StoreMoveStep.SI_07_InOutToP1 )
{ {
InStoreLog("入库:SI_08 判断是否拿到物料");
StoreMove.NextMoveStep(StoreMoveStep.SI_08_WaitShelfDI); StoreMove.NextMoveStep(StoreMoveStep.SI_08_WaitShelfDI);
InStoreLog("入库: 判断是否拿到物料");
if (StoreManager.UseShelfCheck) if (StoreManager.UseShelfCheck)
{ {
if (StoreMove.MoveParam.PosInfo.ShelfType.Equals(1)) if (StoreMove.MoveParam.PosInfo.ShelfType.Equals(1))
...@@ -381,50 +381,50 @@ namespace OnlineStore.DeviceLibrary ...@@ -381,50 +381,50 @@ namespace OnlineStore.DeviceLibrary
//判断是否拿到料 //判断是否拿到料
else if (StoreMove.MoveStep == StoreMoveStep.SI_08_WaitShelfDI) else if (StoreMove.MoveStep == StoreMoveStep.SI_08_WaitShelfDI)
{ {
InStoreLog("入库:SI_09 移动到库位点,前后轴至P2(库位点),"); StoreMove.NextMoveStep(StoreMoveStep.SI_09_MiddleToP3);
StoreMove.NextMoveStep(StoreMoveStep.SI_09_MoveToBag); InStoreLog("入库: 移动到库位点,前后轴至P2(库位点), [" + moveP.Middle_P2 + "]");
ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P2_Speed); ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
// ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed); // ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_09_MoveToBag) else if (StoreMove.MoveStep == StoreMoveStep.SI_09_MiddleToP3)
{ {
InStoreLog("入库:SI_10 移动到库位点,升降轴至P3(库位入库前点) ");
StoreMove.NextMoveStep(StoreMoveStep.SI_10_UpdownToBag); StoreMove.NextMoveStep(StoreMoveStep.SI_10_UpdownToBag);
InStoreLog("入库: 移动到库位点,升降轴至P3(库位入库前点) [" + moveP.UpDown_P3 + "] ");
//ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P2_Speed); //ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_10_UpdownToBag) else if (StoreMove.MoveStep == StoreMoveStep.SI_10_UpdownToBag)
{ {
InStoreLog("入库:SI_11 叉子进入库位中,进出轴至P4(库位取放料点) "); StoreMove.NextMoveStep(StoreMoveStep.SI_11_InoutToP4);
StoreMove.NextMoveStep(StoreMoveStep.SI_11_DeviceToBag); InStoreLog("入库:叉子进入库位中,进出轴至P4(库位取放料点) [" + moveP.InOut_P4 + "] ");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P4, Config.InOutAxis_P4_Speed); ACAxisMove(Config.InOut_Axis, moveP.InOut_P4, Config.InOutAxis_P4_Speed);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_11_DeviceToBag) else if (StoreMove.MoveStep == StoreMoveStep.SI_11_InoutToP4)
{ {
InStoreLog("入库:SI_12 放下物品,升降轴至P4(库位入料缓冲点), ");
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态) // 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PosInfo.PosId : ""; string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PosInfo.PosId : "";
lastPosId = posId; lastPosId = posId;
lastPosIdStatus = StoreStatus.InStoreEnd; lastDoor = StoreMove.MoveParam.PosInfo.ShelfType;
lastPosIdStatus = StoreStatus.InStoreEnd;
storeStatus = StoreStatus.InStoreEnd; storeStatus = StoreStatus.InStoreEnd;
//手动发给服务器状态,防止没有手动 //手动发给服务器状态,防止没有手动
//SendLineStatus(StoreID, posId, StoreStatus.InStoreEnd); //SendLineStatus(StoreID, posId, StoreStatus.InStoreEnd);
StoreMove.NextMoveStep(StoreMoveStep.SI_12_PutWareToBag); StoreMove.NextMoveStep(StoreMoveStep.SI_12_PutWare);
InStoreLog("入库:放下物品,升降轴至P4(库位入料缓冲点) ["+ moveP.UpDown_P4 + "], 更新状态=InStoreEnd, "+ lastDoor);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P4, Config.UpDownAxis_P4_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P4, Config.UpDownAxis_P4_Speed);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_12_PutWareToBag) else if (StoreMove.MoveStep == StoreMoveStep.SI_12_PutWare)
{ {
InStoreLog("入库:SI_13 叉子从库位中返回,进出轴动作至P1(待机点) "); StoreMove.NextMoveStep(StoreMoveStep.SI_13_InoutToP1);
InStoreLog("入库:叉子从库位中返回,进出轴动作至P1(待机点) ["+ moveP.InOut_P1 + "] ");
StoreMove.NextMoveStep(StoreMoveStep.SI_13_DeviceBackFromBag);
InOutBackToP1(moveP.InOut_P1); InOutBackToP1(moveP.InOut_P1);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_13_DeviceBackFromBag) else if (StoreMove.MoveStep == StoreMoveStep.SI_13_InoutToP1)
{ {
InStoreLog("入库:SI_14 检查叉子物料检测信号=low");
StoreMove.NextMoveStep(StoreMoveStep.SI_14_CheckTrayIsGo); StoreMove.NextMoveStep(StoreMoveStep.SI_14_CheckTrayIsGo);
InStoreLog("入库:检查叉子物料检测信号=low");
if (StoreManager.UseShelfCheck) if (StoreManager.UseShelfCheck)
{ {
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Fixture, IO_VALUE.LOW)); StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Fixture, IO_VALUE.LOW));
...@@ -432,8 +432,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -432,8 +432,8 @@ namespace OnlineStore.DeviceLibrary
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_14_CheckTrayIsGo) else if (StoreMove.MoveStep == StoreMoveStep.SI_14_CheckTrayIsGo)
{ {
InStoreLog("入库:SI_15 升降轴 返回待机点 ,托架前进");
StoreMove.NextMoveStep(StoreMoveStep.SI_15_UpdownBack); StoreMove.NextMoveStep(StoreMoveStep.SI_15_UpdownBack);
InStoreLog("入库:升降轴 返回待机点P1["+ moveP.UpDown_P1 + "] ,托架前进");
// ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed); // ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
ShelfForward(StoreMove.MoveParam.PosInfo.ShelfType); ShelfForward(StoreMove.MoveParam.PosInfo.ShelfType);
...@@ -441,11 +441,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -441,11 +441,9 @@ namespace OnlineStore.DeviceLibrary
else if (StoreMove.MoveStep == StoreMoveStep.SI_15_UpdownBack) else if (StoreMove.MoveStep == StoreMoveStep.SI_15_UpdownBack)
{ {
InStoreLog("入库:SI_15 前后轴 返回待机点 ");
StoreMove.NextMoveStep(StoreMoveStep.SI_16_GoBack); StoreMove.NextMoveStep(StoreMoveStep.SI_16_GoBack);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed); InStoreLog("入库: 前后轴 返回待机点P1 ["+ moveP.Middle_P1 + "],打开门锁 ");
// ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed); ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
// ShelfForward(StoreMove.MoveParam.PosInfo.ShelfType);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_16_GoBack) else if (StoreMove.MoveStep == StoreMoveStep.SI_16_GoBack)
{ {
...@@ -498,8 +496,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -498,8 +496,8 @@ namespace OnlineStore.DeviceLibrary
storeRunStatus = StoreRunStatus.Busy; storeRunStatus = StoreRunStatus.Busy;
StoreMove.NewMove(StoreMoveType.OutStore, param); StoreMove.NewMove(StoreMoveType.OutStore, param);
StoreMove.NextMoveStep(StoreMoveStep.SO_01_DeviceBack); StoreMove.NextMoveStep(StoreMoveStep.SO_01_InoutToP1);
OutStoreLog("出库:SO_01 叉子先运动到P1 , 开始"); OutStoreLog("出库: 叉子先运动到P1 , 开始");
InOutBackToP1(StoreMove.MoveParam.MoveP.InOut_P1); InOutBackToP1(StoreMove.MoveParam.MoveP.InOut_P1);
return true; return true;
} }
...@@ -520,58 +518,64 @@ namespace OnlineStore.DeviceLibrary ...@@ -520,58 +518,64 @@ namespace OnlineStore.DeviceLibrary
{ {
return; return;
} }
if (StoreMove.MoveStep == StoreMoveStep.SO_01_DeviceBack) if (StoreMove.MoveStep == StoreMoveStep.SO_01_InoutToP1)
{ {
StoreMove.NextMoveStep(StoreMoveStep.SO_02_ToBagPosition); StoreMove.NextMoveStep(StoreMoveStep.SO_02_MiddleToP2);
OutStoreLog("出库:SO_02 走到库位, 前后轴至P2(库位点), ,托架后退"); OutStoreLog("出库: 走到库位, 前后轴至P2(库位点) [" + moveP.Middle_P2 + "]");
// ComMoveToPosition(moveP.ComPress_P3,Config.CompAxis_P3_Speed); ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
ACAxisMove(Config.Middle_Axis, StoreMove.MoveParam.MoveP.Middle_P2, Config.MiddleAxis_P2_Speed);
// ACAxisMove(Config.UpDown_Axis, StoreMove.MoveParam.MoveP.UpDown_P5, Config.UpDownAxis_P5_Speed);
ShelfBack(StoreMove.MoveParam.PosInfo.ShelfType);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SO_02_ToBagPosition) else if (StoreMove.MoveStep == StoreMoveStep.SO_02_MiddleToP2)
{ {
StoreMove.NextMoveStep(StoreMoveStep.SO_03_UpdownMove); StoreMove.NextMoveStep(StoreMoveStep.SO_03_UpdownToP5);
OutStoreLog("出库:SO_03 走到库位, 升降轴至P5(库位出库前点) "); OutStoreLog("出库: 走到库位, 升降轴至P5(库位出库前点) ["+ moveP.UpDown_P5 + "]");
// ComMoveToPosition(moveP.ComPress_P3,Config.CompAxis_P3_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P5, Config.UpDownAxis_P5_Speed);
// ACAxisMove(Config.Middle_Axis, StoreMove.MoveParam.MoveP.Middle_P2, Config.MiddleAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, StoreMove.MoveParam.MoveP.UpDown_P5, Config.UpDownAxis_P5_Speed);
// ShelfBack(StoreMove.MoveParam.PosInfo.ShelfType); // ShelfBack(StoreMove.MoveParam.PosInfo.ShelfType);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SO_03_UpdownMove) else if (StoreMove.MoveStep == StoreMoveStep.SO_03_UpdownToP5)
{ {
StoreMove.NextMoveStep(StoreMoveStep.SO_04_DeviceToBag); StoreMove.NextMoveStep(StoreMoveStep.SO_04_InoutToP3);
OutStoreLog("出库:SO_04 叉子进入库位中, 进出轴至P3(库位取放料点) "); OutStoreLog("出库: 叉子进入库位中, 进出轴至P3(库位取放料点) ["+ moveP.InOut_P4 + "]");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P4, Config.InOutAxis_P3_Speed); ACAxisMove(Config.InOut_Axis, moveP.InOut_P4, Config.InOutAxis_P3_Speed);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SO_04_DeviceToBag) else if (StoreMove.MoveStep == StoreMoveStep.SO_04_InoutToP3)
{ {
OutStoreLog("出库:SO_05 拿起物品,升降轴至P6(库位出料缓冲点) "); StoreMove.NextMoveStep(StoreMoveStep.SO_05_GetWare);
StoreMove.NextMoveStep(StoreMoveStep.SO_05_BagWareToDevice); OutStoreLog("出库: 拿起物品,升降轴至P6(库位出料缓冲点) ["+ moveP.UpDown_P6 + "]");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P6, Config.UpDownAxis_P6_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P6, Config.UpDownAxis_P6_Speed);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SO_05_BagWareToDevice) else if (StoreMove.MoveStep == StoreMoveStep.SO_05_GetWare)
{ {
StoreMove.NextMoveStep(StoreMoveStep.SO_06_BagDeviceBack); if (IOManager.IOValue(IO_Type.LeftShelf_Check).Equals(IO_VALUE.LOW))
OutStoreLog("出库:SO_06 叉子从库位返回,进出轴至P1(待机点) "); {
StoreMove.MoveParam.PosInfo.ShelfType = 1;
InOutBackToP1(moveP.InOut_P1); OutStoreLog(" 出库: 当前未设置ShelfType,默认ShelfType=" + StoreMove.MoveParam.PosInfo.ShelfType);
}
else
{
StoreMove.MoveParam.PosInfo.ShelfType = 2;
OutStoreLog("出库: 当前未设置ShelfType,默认ShelfType=" + StoreMove.MoveParam.PosInfo.ShelfType);
}
//把库位的物品放到取到叉子上之后是出仓完成 //把库位的物品放到取到叉子上之后是出仓完成
string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PosInfo.PosId : ""; string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PosInfo.PosId : "";
lastPosId = posId; lastPosId = posId;
lastPosIdStatus = StoreStatus.OutStoreBoxEnd; lastPosIdStatus = StoreStatus.OutStoreBoxEnd;
storeStatus = StoreStatus.OutStoreBoxEnd; storeStatus = StoreStatus.OutStoreBoxEnd;
lastDoor = StoreMove.MoveParam.PosInfo.ShelfType;
StoreMove.NextMoveStep(StoreMoveStep.SO_06_InoutToP1);
OutStoreLog("出库: 叉子从库位返回,进出轴至P1(待机点)["+ moveP.InOut_P1 + "],更新状态=OutStoreBoxEnd, " + lastDoor);
InOutBackToP1(moveP.InOut_P1);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SO_06_BagDeviceBack) else if (StoreMove.MoveStep == StoreMoveStep.SO_06_InoutToP1)
{ {
StoreMove.NextMoveStep(StoreMoveStep.SO_07_CheckHasTray); StoreMove.NextMoveStep(StoreMoveStep.SO_07_CheckHasTray);
OutStoreLog("出库:SO_07 判断是否拿到料"); OutStoreLog("出库: 判断是否拿到料");
if (StoreManager.UseShelfCheck) if (StoreManager.UseShelfCheck)
{ {
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Fixture, IO_VALUE.HIGH)); StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Fixture, IO_VALUE.HIGH));
} }
} }
else if (StoreMove.MoveStep == StoreMoveStep.SO_07_CheckHasTray) else if (StoreMove.MoveStep == StoreMoveStep.SO_07_CheckHasTray)
{ {
...@@ -583,16 +587,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -583,16 +587,15 @@ namespace OnlineStore.DeviceLibrary
} }
StoreMove.NextMoveStep(StoreMoveStep.SO_08_UpdownBack); StoreMove.NextMoveStep(StoreMoveStep.SO_08_UpdownBack);
OutStoreLog("出库:SO_08 升降轴至P2(进料口出料前点), 托架后退 "); OutStoreLog("出库:升降轴至P2(进料口出料前点), ["+ moveP.UpDown_P2 + "] ");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P2, Config.UpDownAxis_P2_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P2, Config.UpDownAxis_P2_Speed);
// ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed); // ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
ShelfBack(StoreMove.MoveParam.PosInfo.ShelfType, StoreMove);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SO_08_UpdownBack) else if (StoreMove.MoveStep == StoreMoveStep.SO_08_UpdownBack)
{ {
StoreMove.NextMoveStep(StoreMoveStep.SO_09_ToDoorPosition); StoreMove.NextMoveStep(StoreMoveStep.SO_09_ToDoorPosition);
OutStoreLog("出库:SO_09 前后轴至P1(待机点) "); OutStoreLog("出库:前后轴至P1(待机点) ["+ moveP.Middle_P1 + "] ");
// ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P2, Config.UpDownAxis_P2_Speed); // ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P2, Config.UpDownAxis_P2_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed); ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
// ShelfBack(StoreMove.MoveParam.PosInfo.ShelfType, StoreMove); // ShelfBack(StoreMove.MoveParam.PosInfo.ShelfType, StoreMove);
...@@ -601,39 +604,79 @@ namespace OnlineStore.DeviceLibrary ...@@ -601,39 +604,79 @@ namespace OnlineStore.DeviceLibrary
{ {
//SO_10_DeviceToDoorPro(); //SO_10_DeviceToDoorPro();
StoreMove.NextMoveStep(StoreMoveStep.SO_10_WaitNoTray); StoreMove.NextMoveStep(StoreMoveStep.SO_10_WaitNoTray);
OutStoreLog("出库:SO_10_WaitNoTray 等待托架无料 "); int shelfType = StoreMove.MoveParam.PosInfo.ShelfType;
if (StoreMove.MoveParam.PosInfo.ShelfType.Equals(1)) OutStoreLog("出库:等待托架无料 [" + shelfType + "] ");
if (shelfType.Equals(1))
{ {
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LeftShelf_Check, IO_VALUE.LOW)); StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LeftShelf_Check, IO_VALUE.LOW));
} }
else else if (shelfType.Equals(2))
{ {
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.RightShelf_Check, IO_VALUE.LOW)); StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.RightShelf_Check, IO_VALUE.LOW));
} }
if (StoreMove.MoveParam.PosInfo.ShelfType.Equals(0))
{
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LeftShelf_Check, IO_VALUE.LOW));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.RightShelf_Check, IO_VALUE.LOW));
StoreMove.OneWaitCanEndStep = true;
}
} }
else if (StoreMove.MoveStep == StoreMoveStep.SO_10_WaitNoTray) else if (StoreMove.MoveStep == StoreMoveStep.SO_10_WaitNoTray)
{ {
StoreMove.NextMoveStep(StoreMoveStep.SO_11_DeviceToDoor); if (StoreMove.MoveParam.PosInfo.ShelfType.Equals(0))
OutStoreLog("出库:SO_11 叉子进出料口,进出轴至P2(进料口取料点) "); {
if (IOManager.IOValue(IO_Type.LeftShelf_Check).Equals(IO_VALUE.LOW))
{
StoreMove.MoveParam.PosInfo.ShelfType = 1;
OutStoreLog(" 出库: 当前未设置ShelfType,默认ShelfType=" + StoreMove.MoveParam.PosInfo.ShelfType);
}
else if (IOManager.IOValue(IO_Type.RightShelf_Check).Equals(IO_VALUE.LOW))
{
StoreMove.MoveParam.PosInfo.ShelfType = 2;
OutStoreLog("出库: 当前未设置ShelfType,默认ShelfType=" + StoreMove.MoveParam.PosInfo.ShelfType);
}
else
{
StoreMove.NextMoveStep(StoreMoveStep.SO_10_WaitNoTray);
int shelfType = StoreMove.MoveParam.PosInfo.ShelfType;
OutStoreLog("出库: 再次 等待托架无料 [" + shelfType + "] ");
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LeftShelf_Check, IO_VALUE.LOW));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.RightShelf_Check, IO_VALUE.LOW));
StoreMove.OneWaitCanEndStep = true;
}
}
if (StoreMove.MoveParam.PosInfo.ShelfType > 0)
{
StoreMove.NextMoveStep(StoreMoveStep.SO_11_ShelfBack);
OutStoreLog("出库: 托架后退 [" + StoreMove.MoveParam.PosInfo.ShelfType + "] ");
ShelfBack(StoreMove.MoveParam.PosInfo.ShelfType, StoreMove);
}
}
else if (StoreMove.MoveStep == StoreMoveStep.SO_11_ShelfBack)
{
StoreMove.NextMoveStep(StoreMoveStep.SO_12_InoutToP2);
OutStoreLog("出库: 叉子进出料口,进出轴至P2(进料口取料点) ["+ moveP.InOut_P2 + "] ");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed); ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SO_11_DeviceToDoor) else if (StoreMove.MoveStep == StoreMoveStep.SO_12_InoutToP2)
{ {
OutStoreLog("出库:SO_12 放下物品,升降轴至P8(进料口出料缓冲点) "); StoreMove.NextMoveStep(StoreMoveStep.SO_13_PutWare);
StoreMove.NextMoveStep(StoreMoveStep.SO_12_DevicePutWare); OutStoreLog("出库: 放下物品,升降轴至P8(进料口出料缓冲点) ["+ moveP.UpDown_P8 + "]");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P8, Config.UpDownAxis_P8_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P8, Config.UpDownAxis_P8_Speed);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SO_12_DevicePutWare) else if (StoreMove.MoveStep == StoreMoveStep.SO_13_PutWare)
{ {
StoreMove.NextMoveStep(StoreMoveStep.SO_13_DeviceOutFromDoor); StoreMove.NextMoveStep(StoreMoveStep.SO_14_InoutToP1);
OutStoreLog("出库:SO_13 叉子从出料口返回,,进出轴动作至P1(待机点) "); OutStoreLog("出库: 叉子从出料口返回,,进出轴动作至P1(待机点) ["+ moveP.InOut_P1 + "] ");
InOutBackToP1(moveP.InOut_P1); InOutBackToP1(moveP.InOut_P1);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SO_13_DeviceOutFromDoor) else if (StoreMove.MoveStep == StoreMoveStep.SO_14_InoutToP1)
{ {
StoreMove.NextMoveStep(StoreMoveStep.SO_14_CheckShelfDI); StoreMove.NextMoveStep(StoreMoveStep.SO_15_CheckShelfDI);
OutStoreLog("出库:SO_14 判断物料信号是否正确 "); OutStoreLog("出库: 判断物料信号是否正确 ");
if (StoreManager.UseShelfCheck) if (StoreManager.UseShelfCheck)
{ {
if (StoreMove.MoveParam.PosInfo.ShelfType.Equals(1)) if (StoreMove.MoveParam.PosInfo.ShelfType.Equals(1))
...@@ -647,15 +690,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -647,15 +690,15 @@ namespace OnlineStore.DeviceLibrary
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Fixture, IO_VALUE.LOW)); StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Fixture, IO_VALUE.LOW));
} }
} }
else if (StoreMove.MoveStep == StoreMoveStep.SO_14_CheckShelfDI) else if (StoreMove.MoveStep == StoreMoveStep.SO_15_CheckShelfDI)
{ {
StoreMove.NextMoveStep(StoreMoveStep.SO_15_GoBack); StoreMove.NextMoveStep(StoreMoveStep.SO_16_GoBack);
OutStoreLog("出库:SO_15 升降轴到P1(待机点) ,托架前进,打开门锁"); OutStoreLog("出库: 升降轴到P1(待机点) ["+ moveP.UpDown_P1 + "] ,托架前进,打开门锁");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
OpenDoor(StoreMove.MoveParam.PosInfo.ShelfType); OpenDoor(StoreMove.MoveParam.PosInfo.ShelfType);
ShelfForward(StoreMove.MoveParam.PosInfo.ShelfType, StoreMove); ShelfForward(StoreMove.MoveParam.PosInfo.ShelfType, StoreMove);
} }
else if (StoreMove.MoveStep == StoreMoveStep.SO_15_GoBack) else if (StoreMove.MoveStep == StoreMoveStep.SO_16_GoBack)
{ {
TimeSpan span = DateTime.Now - startOutStoreTime; TimeSpan span = DateTime.Now - startOutStoreTime;
string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PosInfo.PosId : ""; string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PosInfo.PosId : "";
...@@ -798,12 +841,76 @@ namespace OnlineStore.DeviceLibrary ...@@ -798,12 +841,76 @@ namespace OnlineStore.DeviceLibrary
private void InStoreLog(string msg) private void InStoreLog(string msg)
{ {
string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PosInfo.PosId : ""; string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PosInfo.PosId : "";
LogUtil.info(LOGGER, "【" + posId + "】" + msg, storeMoveColor); LogUtil.info(LOGGER, "【" + posId + "】[" + StoreMove.MoveStep + "] " + msg, storeMoveColor);
} }
private void OutStoreLog(string msg) private void OutStoreLog(string msg)
{ {
string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PosInfo.PosId : ""; string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PosInfo.PosId : "";
LogUtil.info(LOGGER, "【" + posId + "】" + msg, storeMoveColor); LogUtil.info(LOGGER, "【" + posId + "】["+StoreMove.MoveStep+"] " + msg, storeMoveColor);
}
private bool OpenDoor(int doorType)
{
return OpenCloseDoor(doorType, IO_VALUE.LOW);
}
private bool CloseDoor(int doorType)
{
return OpenCloseDoor(doorType, IO_VALUE.HIGH);
}
private bool OpenCloseDoor(int doorType,IO_VALUE value)
{
if (doorType.Equals(1))
{
if (IOManager.IOValue(IO_Type.LeftDoor_Close).Equals(IO_VALUE.HIGH))
{
IOManager.IOMove(IO_Type.LeftDoor_Close, value);
return true;
}
else
{
LogUtil.info("OpenCloseDoor [" + doorType + "] [" + value + "] 失败");
return false;
}
}
else
{
if (IOManager.IOValue(IO_Type.RightDoor_Close).Equals(IO_VALUE.HIGH))
{
IOManager.IOMove(IO_Type.RightDoor_Close, value);
return true;
}
else
{
LogUtil.info("OpenCloseDoor [" + doorType + "] [" + value + "] 失败");
return false;
}
}
}
private string GetDoorStatus(int doorType)
{
////3 仓门状态上传: 字段为door1和doo2, 状态: opened为已打开, closed为已关闭, opening为打开中, closing为关闭中
if (doorType.Equals(1))
{
if (IOManager.IOValue(IO_Type.LeftDoor_Close).Equals(IO_VALUE.HIGH))
{
return "opened";
}
else
{
return "closed";
}
}
else
{
if (IOManager.IOValue(IO_Type.RightDoor_Close).Equals(IO_VALUE.HIGH))
{
return "opened";
}
else
{
return "closed";
}
}
} }
} }
} }
...@@ -171,31 +171,31 @@ namespace OnlineStore.DeviceLibrary ...@@ -171,31 +171,31 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
///出库:叉子先运动到P1 ///出库:叉子先运动到P1
/// </summary> /// </summary>
SO_01_DeviceBack = 101, SO_01_InoutToP1 = 101,
/// <summary> /// <summary>
/// 出库:前后轴至P2(库位点),托架后退) /// 出库:前后轴至P2(库位点),托架后退)
/// </summary> /// </summary>
SO_02_ToBagPosition = 102, SO_02_MiddleToP2 = 102,
/// <summary> /// <summary>
/// 出库:升降轴至P5(库位出库前点) /// 出库:升降轴至P5(库位出库前点)
/// </summary> /// </summary>
SO_03_UpdownMove= 103, SO_03_UpdownToP5= 103,
/// <summary> /// <summary>
/// 出库:叉子进入库位中, 轴3( 叉子) 至P3(库位取放料点) /// 出库:叉子进入库位中, 轴3( 叉子) 至P3(库位取放料点)
/// </summary> /// </summary>
SO_04_DeviceToBag = 104, SO_04_InoutToP3 = 104,
/// <summary> /// <summary>
///出库: 库位的物品放入叉子上,轴2( 上下) 至P6( 库位出料缓冲点),轴4( 压紧) 至P2(压紧点) ///出库: 库位的物品放入叉子上,轴2( 上下) 至P6( 库位出料缓冲点),轴4( 压紧) 至P2(压紧点)
/// </summary> /// </summary>
SO_05_BagWareToDevice = 105, SO_05_GetWare = 105,
/// <summary> /// <summary>
///出库:叉子从 库位返回,轴3( 叉子) 至P1( 待机点) ///出库:叉子从 库位返回,轴3( 叉子) 至P1( 待机点)
/// </summary> /// </summary>
SO_06_BagDeviceBack = 106, SO_06_InoutToP1 = 106,
/// <summary> /// <summary>
/// 出库:检测叉子是否有料 /// 出库:检测叉子是否有料
...@@ -212,32 +212,36 @@ namespace OnlineStore.DeviceLibrary ...@@ -212,32 +212,36 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
SO_09_ToDoorPosition = 109, SO_09_ToDoorPosition = 109,
/// <summary> /// <summary>
/// 等待门口无料盘 /// 出库:等待门口无料盘
/// </summary> /// </summary>
SO_10_WaitNoTray = 110, SO_10_WaitNoTray = 110,
/// <summary>
/// 出库:托架后退
/// </summary>
SO_11_ShelfBack = 111,
/// <summary> /// <summary>
/// 出库:叉子进出料口,,轴3( 叉子) 至P2( 进料口取料点) /// 出库:叉子进出料口,,轴3( 叉子) 至P2( 进料口取料点)
/// /// </summary> /// /// </summary>
SO_11_DeviceToDoor = 111, SO_12_InoutToP2 = 112,
/// <summary> /// <summary>
/// 出库:把物品放下,,轴2( 上下) 至P8( 进料口出料缓冲点)轴4( 压紧) 至P1( 待机点) /// 出库:把物品放下,,轴2( 上下) 至P8( 进料口出料缓冲点)轴4( 压紧) 至P1( 待机点)
/// </summary> /// </summary>
SO_12_DevicePutWare = 112, SO_13_PutWare = 113,
/// <summary> /// <summary>
/// 出库:叉子从出料口返回,,轴3( 叉子) 动作至P1( 待机点) /// 出库:叉子从出料口返回,,轴3( 叉子) 动作至P1( 待机点)
/// </summary> /// </summary>
SO_13_DeviceOutFromDoor = 113, SO_14_InoutToP1 = 114,
/// <summary> /// <summary>
/// 出库:判断物料信号 /// 出库:判断物料信号
/// </summary> /// </summary>
SO_14_CheckShelfDI = 114, SO_15_CheckShelfDI = 115,
/// <summary> /// <summary>
/// 出库:升降轴返回,, 轴2至P1( 待机点) /// 出库:升降轴返回,, 轴2至P1( 待机点)
/// </summary> /// </summary>
SO_15_GoBack = 115, SO_16_GoBack = 116,
///// <summary> ///// <summary>
///// 等待拿走物品 ///// 等待拿走物品
///// </summary> ///// </summary>
...@@ -254,16 +258,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -254,16 +258,16 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 入库。。进出轴(叉子)先返回P1,关闭门锁 /// 入库。。进出轴(叉子)先返回P1,关闭门锁
/// </summary> /// </summary>
SI_02_InOutAxisHome = 202, SI_02_InOutToP1 = 202,
/// <summary> /// <summary>
/// 入库。。所有轴先回到待机点,轴2、轴1 动作到P1, 托架后退 /// 入库。。所有轴先回到待机点,轴2、轴1 动作到P1, 托架后退
/// </summary> /// </summary>
SI_03_ReturnHome = 203, SI_03_ToP1 = 203,
/// <summary> /// <summary>
/// 入库。。叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点) /// 入库。。叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点)
/// </summary> /// </summary>
SI_05_DeviceToDoor = 205, SI_05_InoutToP2 = 205,
/// <summary> /// <summary>
/// 入库。。把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点) /// 入库。。把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点)
/// </summary> /// </summary>
...@@ -273,7 +277,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -273,7 +277,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 入库。。叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点) /// 入库。。叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点)
/// </summary> /// </summary>
SI_07_InoutBack = 207, SI_07_InOutToP1 = 207,
/// <summary> /// <summary>
/// 入库。。等待物料信号到位 /// 入库。。等待物料信号到位
...@@ -282,7 +286,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -282,7 +286,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 入库。。移动到库位点,前后轴 至P3(库位入库前点) /// 入库。。移动到库位点,前后轴 至P3(库位入库前点)
/// </summary> /// </summary>
SI_09_MoveToBag = 209, SI_09_MiddleToP3 = 209,
/// <summary> /// <summary>
/// 入库。。移动到库位点,升降轴到库位 /// 入库。。移动到库位点,升降轴到库位
/// </summary> /// </summary>
...@@ -291,15 +295,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -291,15 +295,15 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 入库。。叉子进入库位中, 进出轴至P4(库位取放料点) /// 入库。。叉子进入库位中, 进出轴至P4(库位取放料点)
/// </summary> /// </summary>
SI_11_DeviceToBag = 211, SI_11_InoutToP4 = 211,
/// <summary> /// <summary>
/// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点) /// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)
/// </summary> /// </summary>
SI_12_PutWareToBag = 212, SI_12_PutWare = 212,
/// <summary> /// <summary>
/// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点) /// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
/// </summary> /// </summary>
SI_13_DeviceBackFromBag = 213, SI_13_InoutToP1 = 213,
/// <summary> /// <summary>
/// 入库。判断料叉物料检测信号是否消失 /// 入库。判断料叉物料检测信号是否消失
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!