Commit bd2f201a 几米阳光

增加批量上料模块状态

1 个父辈 8851ef0f
...@@ -302,15 +302,7 @@ namespace OnlineStore.AutoInOutStore ...@@ -302,15 +302,7 @@ namespace OnlineStore.AutoInOutStore
btnBatchInStore.Enabled = map[ParamDefine.startBatchIn].Equals(ParamDefine.enable); btnBatchInStore.Enabled = map[ParamDefine.startBatchIn].Equals(ParamDefine.enable);
btnGetOutTray.Enabled = map[ParamDefine.takeOutReel].Equals(ParamDefine.enable); btnGetOutTray.Enabled = map[ParamDefine.takeOutReel].Equals(ParamDefine.enable);
btnCloseDoor.Enabled = map[ParamDefine.closeLock].Equals(ParamDefine.enable); btnCloseDoor.Enabled = map[ParamDefine.closeLock].Equals(ParamDefine.enable);
//if (AutomaticBaiting.DoorStatus.Equals(2))
//{
// lblDoorStatus.Text = "仓门状态:关闭";
//}
//else
//{
// lblDoorStatus.Text = "仓门状态:打开";
//}
lblDoorStatus.Text = map[ParamDefine.doorStatus]; lblDoorStatus.Text = map[ParamDefine.doorStatus];
lblOutInfo.Visible = !lblWaitTragGo.Visible; lblOutInfo.Visible = !lblWaitTragGo.Visible;
lblOutInfo.Text = "批量出入库信息: 入库:" + AutomaticBaiting.BatchInStoreCount + "盘共" + AutomaticBaiting.BatchInStoreHeight + "mm," + lblOutInfo.Text = "批量出入库信息: 入库:" + AutomaticBaiting.BatchInStoreCount + "盘共" + AutomaticBaiting.BatchInStoreHeight + "mm," +
......
...@@ -1502,23 +1502,29 @@ namespace OnlineStore.DeviceLibrary ...@@ -1502,23 +1502,29 @@ namespace OnlineStore.DeviceLibrary
private int GetStoreStatus() private int GetStoreStatus()
{ {
return (int)storeStatus; int status = (int)storeStatus;
if (StoreMove.MoveType.Equals(StoreMoveType.InStore) && (StoreMove.IsNeedInStore.Equals(false)))
{
status = (int)StoreStatus.SendTrayOut;
}
//如果料仓没有出入库,但是自动上下料机构在上料中 //如果料仓没有出入库,但是自动上下料机构在上料中
if (storeStatus.Equals(StoreStatus.StoreOnline)) if (storeStatus.Equals(StoreStatus.StoreOnline))
{ {
if (AutomaticBaiting.StoreMove.MoveType.Equals(StoreMoveType.InStore)) if (AutomaticBaiting.StoreMove.MoveType.Equals(StoreMoveType.InStore))
{ {
return (int)StoreStatus.InStoreExecute; status = (int)StoreStatus.BatchInStore;
} }
else if (AutomaticBaiting.StoreMove.MoveType.Equals(StoreMoveType.StoreReset)) else if (AutomaticBaiting.StoreMove.MoveType.Equals(StoreMoveType.StoreReset))
{ {
return (int)StoreStatus.ResetMove; status = (int)StoreStatus.BatchReset;
} }
} }
if (IsDebug) if (IsDebug)
{ {
return (int)StoreStatus.Debugging; status = (int)StoreStatus.Debugging;
} }
return status;
} }
private void SendLineStatus() private void SendLineStatus()
......
...@@ -346,11 +346,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -346,11 +346,16 @@ namespace OnlineStore.DeviceLibrary
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_02_InOutAxisHome) else if (StoreMove.MoveStep == StoreMoveStep.SI_02_InOutAxisHome)
{ {
InStoreLog("入库:SI_03 所有轴回到待机点,轴2、轴1 动作到P1, 轴4动作至P3"); InStoreLog("入库:SI_03 所有轴回到待机点,轴2、轴1 动作到P1, 轴4动作至P3,等待吸盘处于上升位置");
StoreMove.NextMoveStep(StoreMoveStep.SI_03_ReturnHome); StoreMove.NextMoveStep(StoreMoveStep.SI_03_ReturnHome);
ComMoveToPosition(moveP.ComPress_P3); ComMoveToPosition(moveP.ComPress_P3);
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);
//此处需要等待吸盘在上升位置
KND.IOMove(IO_Type.SuckingDisc_Up, IO_VALUE.HIGH);
KND.IOMove(IO_Type.SuckingDisc_Down, IO_VALUE.LOW);
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SuckingDisc_Up, IO_VALUE.HIGH));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SuckingDisc_Down, IO_VALUE.LOW));
} }
else if (StoreMove.MoveStep == StoreMoveStep.SI_03_ReturnHome) else if (StoreMove.MoveStep == StoreMoveStep.SI_03_ReturnHome)
{ {
...@@ -844,17 +849,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -844,17 +849,22 @@ namespace OnlineStore.DeviceLibrary
StoreMove.NextMoveStep(StoreMoveStep.SO_08_ToDoorPosition); StoreMove.NextMoveStep(StoreMoveStep.SO_08_ToDoorPosition);
if (StoreMove.IsBatchInOutStore) if (StoreMove.IsBatchInOutStore)
{ {
OutStoreLog("出库:SO_08 升降轴到出料高点P2,旋转轴至P1(待机点),等待门锁关闭 "); OutStoreLog("出库:SO_08 升降轴到出料高点P2,旋转轴至P1(待机点),等待吸盘处于上升端");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_OutHigh_P2, Config.UpDownAxis_P2_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_OutHigh_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);
//BatchAxisUpTrayHeight(); //BatchAxisUpTrayHeight();
} }
else else
{ {
OutStoreLog("出库:SO_08 走到料门口,旋转轴至P1(待机点)升降轴至P2(进料口出料前点) "); OutStoreLog("出库:SO_08 走到料门口,旋转轴至P1(待机点)升降轴至P2(进料口出料前点),等待吸盘处于上升端 ");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_Door_P7, Config.UpDownAxis_P7_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_Door_P7, Config.UpDownAxis_P7_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed); ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
} }
//此处需要等待吸盘在上升位置
KND.IOMove(IO_Type.SuckingDisc_Up, IO_VALUE.HIGH);
KND.IOMove(IO_Type.SuckingDisc_Down, IO_VALUE.LOW);
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SuckingDisc_Up, IO_VALUE.HIGH));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SuckingDisc_Down, IO_VALUE.LOW));
} }
private void SO_10_DeviceToDoorPro() private void SO_10_DeviceToDoorPro()
{ {
......
...@@ -113,7 +113,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -113,7 +113,7 @@ namespace OnlineStore.DeviceLibrary
ClearOutStoreInfo(); ClearOutStoreInfo();
} }
public static void StopMove() public static void StopMove()
{ {
StoreMove.EndMove(); StoreMove.EndMove();
ClearInStoreInfo(); ClearInStoreInfo();
KND.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW); KND.IOMove(IO_Type.SuckingDisc_Work, IO_VALUE.LOW);
...@@ -128,7 +128,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -128,7 +128,7 @@ namespace OnlineStore.DeviceLibrary
{ {
LogUtil.info(Name + "复位失败:" + msg); LogUtil.info(Name + "复位失败:" + msg);
return false; return false;
} }
if (StoreManager.Store.alarmType.Equals(StoreAlarmType.BatchAlarm) || if (StoreManager.Store.alarmType.Equals(StoreAlarmType.BatchAlarm) ||
StoreManager.Store.alarmType.Equals(StoreAlarmType.BatchAxisAlarm) || StoreManager.Store.alarmType.Equals(StoreAlarmType.BatchIoTimeOut)) StoreManager.Store.alarmType.Equals(StoreAlarmType.BatchAxisAlarm) || StoreManager.Store.alarmType.Equals(StoreAlarmType.BatchIoTimeOut))
{ {
...@@ -290,7 +290,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -290,7 +290,7 @@ namespace OnlineStore.DeviceLibrary
if (KND.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH)) if (KND.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH))
{ {
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I06_SuckingDisc_Up); StoreMove.NextMoveStep(StoreMoveStep.AUTO_I06_SuckingDisc_Up);
LogUtil.info(Name + "入料: 吸盘上升,等待宽度到达" + StoreManager.Config.Default_TrayWidth); LogUtil.info(Name + "入料: 吸盘上升,等待宽度到达" + StoreManager.Config.Default_TrayWidth);
CylinderMove(IO_Type.SuckingDisc_Up, IO_Type.SuckingDisc_Down, true); CylinderMove(IO_Type.SuckingDisc_Up, IO_Type.SuckingDisc_Down, true);
if (StoreManager.Config.Default_TrayWidth.Equals(7)) if (StoreManager.Config.Default_TrayWidth.Equals(7))
...@@ -313,13 +313,23 @@ namespace OnlineStore.DeviceLibrary ...@@ -313,13 +313,23 @@ namespace OnlineStore.DeviceLibrary
//TODO 报警 //TODO 报警
WarnMsg = "吸盘吸料失败,请复位后拿出此料盘"; WarnMsg = "吸盘吸料失败,请复位后拿出此料盘";
StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, "吸盘吸料失败", WarnMsg, StoreMoveType.InStore); StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, "吸盘吸料失败", WarnMsg, StoreMoveType.InStore);
LogUtil.error(WarnMsg, 103);
} }
} }
else if (StoreMove.MoveStep.Equals(StoreMoveStep.AUTO_I06_SuckingDisc_Up)) else if (StoreMove.MoveStep.Equals(StoreMoveStep.AUTO_I06_SuckingDisc_Up))
{ {
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I07_BatchAxisUp); if (KND.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH))
LogUtil.info(Name + "入料: 批量上下料轴上升速度【" + StoreManager.Config.Batch_Axis.TargetSpeed + "】"); {
ACAxisSpeedMove(StoreManager.Config.Batch_Axis, StoreManager.Config.Batch_Axis.TargetSpeed); StoreMove.NextMoveStep(StoreMoveStep.AUTO_I07_BatchAxisUp);
LogUtil.info(Name + "入料: 批量上下料轴上升速度【" + StoreManager.Config.Batch_Axis.TargetSpeed + "】");
ACAxisSpeedMove(StoreManager.Config.Batch_Axis, StoreManager.Config.Batch_Axis.TargetSpeed);
}
else
{
WarnMsg = "吸盘吸料失败,请复位后拿出此料盘";
StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, "吸盘吸料失败", WarnMsg, StoreMoveType.InStore);
LogUtil.error(Name + "入料: 吸盘上升后未检测到吸盘压力信号,吸取料盘失败",105);
}
} }
else if (StoreMove.MoveStep.Equals(StoreMoveStep.AUTO_I07_BatchAxisUp)) else if (StoreMove.MoveStep.Equals(StoreMoveStep.AUTO_I07_BatchAxisUp))
{ {
...@@ -338,7 +348,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -338,7 +348,7 @@ namespace OnlineStore.DeviceLibrary
else else
{ {
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I08_GetPosId); StoreMove.NextMoveStep(StoreMoveStep.AUTO_I08_GetPosId);
LogUtil.info(Name + "入料: 从服务器获取入库PosId,尺寸:【" + LastWidth + "*" + LastHeight + "】二维码【" + LastCode + "】"); LogUtil.info(Name + "入料: 从服务器获取入库PosId,尺寸:【" + LastWidth + "*" + LastHeight + "】二维码【" + LastCode + "】");
GetInStorePosId(ProcessMsg()); GetInStorePosId(ProcessMsg());
......
...@@ -255,7 +255,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -255,7 +255,7 @@ namespace OnlineStore.DeviceLibrary
} }
return result; return result;
} }
#region Halcon扫码枪代码 #region Halcon扫码枪代码
public bool IsTestCamera = false; public bool IsTestCamera = false;
private static char spiltStr = '#'; private static char spiltStr = '#';
...@@ -327,15 +327,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -327,15 +327,15 @@ namespace OnlineStore.DeviceLibrary
{ {
message = ScanCodeManager.ReplaceCode(message); message = ScanCodeManager.ReplaceCode(message);
if (message.Equals("") || string.IsNullOrEmpty(message)) if (message.Equals("") || string.IsNullOrEmpty(message))
{ {
CodeMsg = "没有收到二维码信息,请重新放入料盘"; CodeMsg = "没有收到二维码信息,请重新放入料盘";
LogUtil.info(Name + "没有收到二维码信息,请重新放入料盘"); LogUtil.info(Name + "没有收到二维码信息,请重新放入料盘");
return; return;
} }
if (StoreManager.Store.storeRunStatus.Equals(StoreRunStatus.Wait)) if (StoreManager.Store.storeRunStatus.Equals(StoreRunStatus.Wait))
{ {
LogUtil.info(Name + "收到二维码【 " + message + "】,设备未启动,不需要发送服务器"); LogUtil.info(Name + "收到二维码【 " + message + "】,设备未启动,不需要发送服务器");
return; return;
} }
...@@ -343,12 +343,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -343,12 +343,12 @@ namespace OnlineStore.DeviceLibrary
{ {
string posId = ConfigAppSettings.GetValue(Setting_Init.DebugPosId); string posId = ConfigAppSettings.GetValue(Setting_Init.DebugPosId);
if (!posId.Equals("")) if (!posId.Equals(""))
{ {
LogUtil.info(Name + "调试模式,模拟库位号【" + posId + "】"); LogUtil.info(Name + "调试模式,模拟库位号【" + posId + "】");
if (StoreManager.Store.CanStarInOut()) if (StoreManager.Store.CanStarInOut())
{ {
LastPosId = posId; LastPosId = posId;
InOutStoreParam param = new InOutStoreParam(message, posId, LastHeight, LastWidth ); InOutStoreParam param = new InOutStoreParam(message, posId, LastHeight, LastWidth);
StoreManager.Store.StartInStoreMove(param, true); StoreManager.Store.StartInStoreMove(param, true);
//如果当前正在出入库中,需要记录下来,等待空闲时执行 //如果当前正在出入库中,需要记录下来,等待空闲时执行
LogUtil.info(Name + " 入库调试模拟:库位号【" + posId + "】二维码【" + message + "】 开始入库!"); LogUtil.info(Name + " 入库调试模拟:库位号【" + posId + "】二维码【" + message + "】 开始入库!");
...@@ -361,8 +361,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -361,8 +361,7 @@ namespace OnlineStore.DeviceLibrary
} }
} }
//开启服务器日志 //开启服务器日志
HttpHelper.isLog = 1; //HttpHelper.isLog = 1;
// CodeMsg = "收到二维码【 " + message + "】,发送给服务器获取入库PosID";
LogUtil.info(Name + "收到二维码【 " + message + "】,发送给服务器获取入库PosID"); LogUtil.info(Name + "收到二维码【 " + message + "】,发送给服务器获取入库PosID");
//发送扫码内容到服务器进行入库操作 //发送扫码内容到服务器进行入库操作
Operation operation = StoreManager.Store.getLineBoxStatus(); Operation operation = StoreManager.Store.getLineBoxStatus();
...@@ -378,29 +377,29 @@ namespace OnlineStore.DeviceLibrary ...@@ -378,29 +377,29 @@ namespace OnlineStore.DeviceLibrary
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);
HttpHelper.isLog = ConfigAppSettings.GetIntValue(Setting_Init.Server_Log_Open); //HttpHelper.isLog = ConfigAppSettings.GetIntValue(Setting_Init.Server_Log_Open);
if (resultOperation == null) if (resultOperation == null)
{ {
// CodeMsg = "二维码【" + message + "】没有收到服务器反馈"; // CodeMsg = "二维码【" + message + "】没有收到服务器反馈";
LogUtil.info(Name + "二维码【" + message + "】没有收到服务器反馈!"); LogUtil.info(Name + "二维码【" + message + "】没有收到服务器反馈!");
return; return;
} }
else if (!string.IsNullOrEmpty(resultOperation.msg)) else if (!string.IsNullOrEmpty(resultOperation.msg))
{ {
//如果有提示消息,直接显示提示 //如果有提示消息,直接显示提示
LogUtil.info(Name + "服务器反馈 二维码【" + message + "】 :" + resultOperation.msg); LogUtil.info(Name + "服务器反馈 二维码【" + message + "】 :" + resultOperation.msg);
return; return;
} }
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];
try try
{ {
int plateW = Convert.ToInt32(data[ParamDefine.plateW]); int plateW = Convert.ToInt32(data[ParamDefine.plateW]);
int plateH = Convert.ToInt32(data[ParamDefine.plateH]); int plateH = Convert.ToInt32(data[ParamDefine.plateH]);
string singleOut = data[ParamDefine.singleOut]; string singleOut = data[ParamDefine.singleOut];
...@@ -437,14 +436,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -437,14 +436,15 @@ namespace OnlineStore.DeviceLibrary
{ {
LogUtil.info(Name + " 收到服务器入库命令:库位号【" + posId + "】二维码【" + message + "】 正在忙碌中,无法入库!"); LogUtil.info(Name + " 收到服务器入库命令:库位号【" + posId + "】二维码【" + message + "】 正在忙碌中,无法入库!");
} }
}catch(Exception ex) }
catch (Exception ex)
{ {
LogUtil.error(Name +"解析服务发送的入库【"+posId+"】出错"+ ex.StackTrace); LogUtil.error(Name + "解析服务发送的入库【" + posId + "】出错" + ex.StackTrace);
} }
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
LogUtil.error(Name + ex.StackTrace); LogUtil.error(Name + ex.StackTrace);
} }
} }
......
...@@ -48,6 +48,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -48,6 +48,9 @@ namespace OnlineStore.DeviceLibrary
///2=急停,3=故障,4=警告,5=调试 ///2=急停,3=故障,4=警告,5=调试
/// 6=入库执行中,7=入仓完成,8=入仓失败 /// 6=入库执行中,7=入仓完成,8=入仓失败
/// 9=出库执行,10=出仓完成,11=出库失败 /// 9=出库执行,10=出仓完成,11=出库失败
/// 14=批量上料中
/// 15= 扫码失败或无库位料盘送出
/// 16=批量上料模块复位中
/// </summary> /// </summary>
public enum StoreStatus public enum StoreStatus
{ {
...@@ -100,9 +103,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -100,9 +103,22 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
OutStoreFaild = 11, OutStoreFaild = 11,
/// <summary> /// <summary>
/// 重置中(原点返回和重置都发此状态) /// 13=重置中(原点返回和重置都发此状态)
/// </summary> /// </summary>
ResetMove=13, ResetMove=13,
/// <summary>
/// 14=批量上料中
/// </summary>
BatchInStore=14,
/// <summary>
///15= 扫码失败或无库位料盘送出
/// </summary>
SendTrayOut=15,
/// <summary>
/// 16=批量上料模块复位中
/// </summary>
BatchReset=16,
} }
/// <summary> /// <summary>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!