Commit 528b3ae2 张东亮

盘点-20ms刷新盘点IO

1 个父辈 cf88750c
...@@ -143,7 +143,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -143,7 +143,7 @@ namespace OnlineStore.DeviceLibrary
try try
{ {
UpdateAllDI(box.IP, sta); UpdateAllDI(box.IP, sta);
// LogUtil.info("ReadAllDI [" + box.IP + "]:" + string.Join(" ", sta)); //LogUtil.info("ReadAllDI [" + box.IP + "]:" + string.Join(" ", sta));
} }
catch (Exception ex) catch (Exception ex)
{ {
......
...@@ -44,6 +44,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -44,6 +44,7 @@ namespace OnlineStore.DeviceLibrary
//public ScanSocket scanSocket = new ScanSocket(); //public ScanSocket scanSocket = new ScanSocket();
private System.Timers.Timer serverConnectTimer = new System.Timers.Timer(); private System.Timers.Timer serverConnectTimer = new System.Timers.Timer();
private System.Timers.Timer IoCheckTimer = new System.Timers.Timer(); private System.Timers.Timer IoCheckTimer = new System.Timers.Timer();
private System.Timers.Timer readDITimer = new System.Timers.Timer();
public AC_SA_BoxBean(AC_SA_Config config) public AC_SA_BoxBean(AC_SA_Config config)
{ {
Init(); Init();
...@@ -58,6 +59,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -58,6 +59,12 @@ namespace OnlineStore.DeviceLibrary
IoCheckTimer.Enabled = false; IoCheckTimer.Enabled = false;
IoCheckTimer.Elapsed += IoCheckTimer_Elapsed; IoCheckTimer.Elapsed += IoCheckTimer_Elapsed;
readDITimer = new System.Timers.Timer();
readDITimer.Interval = 20;
readDITimer.AutoReset = true;
readDITimer.Enabled = false;
readDITimer.Elapsed += ReadDITimer_Elapsed;
//添加调试 //添加调试
IsDebug = ConfigAppSettings.GetIntValue(Setting_Init.IsInDebug).Equals(1); IsDebug = ConfigAppSettings.GetIntValue(Setting_Init.IsInDebug).Equals(1);
...@@ -128,6 +135,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -128,6 +135,13 @@ namespace OnlineStore.DeviceLibrary
} }
private void ReadDITimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if(StoreMove.MoveStep.Equals(StoreMoveStep.SC_03_MoveToHBag)&& IOManager.IOValue(IO_Type.CheckPos).Equals(IO_VALUE.HIGH))
{
reelIsExist = true;
}
}
/// <summary> /// <summary>
/// 配置速度,加减速时间 /// 配置速度,加减速时间
/// </summary> /// </summary>
......
...@@ -10,13 +10,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -10,13 +10,11 @@ namespace OnlineStore.DeviceLibrary
{ {
public partial class AC_SA_BoxBean public partial class AC_SA_BoxBean
{ {
//进出轴到P1
//InOutBackToP1(StoreMove.MoveParam.MoveP.InOut_P1);
bool reelIsExist = false;
protected override void InventoryProcess() protected override void InventoryProcess()
{ {
LineMoveP moveP = StoreMove.MoveParam.MoveP; LineMoveP moveP = StoreMove.MoveParam.MoveP;
bool IsExist = false;
if (StoreMove.IsInWait) if (StoreMove.IsInWait)
{ {
CheckWait(); CheckWait();
...@@ -31,7 +29,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -31,7 +29,6 @@ namespace OnlineStore.DeviceLibrary
ACAxisMove(Config.Middle_Axis, moveP.Middle_P3, Config.MiddleAxis_P2_Speed); ACAxisMove(Config.Middle_Axis, moveP.Middle_P3, Config.MiddleAxis_P2_Speed);
int outCount = ACServerManager.GetActualtPosition(Config.UpDown_Axis.DeviceName, Config.UpDown_Axis.GetAxisValue()); int outCount = ACServerManager.GetActualtPosition(Config.UpDown_Axis.DeviceName, Config.UpDown_Axis.GetAxisValue());
int disCount = Math.Abs(outCount - moveP.UpDown_P5); int disCount = Math.Abs(outCount - moveP.UpDown_P5);
//CheckPositionLog("升降轴当前位置与目标位置距离为(高低速距离阈值为150000)" + disCount.ToString());
if (disCount > 150000) if (disCount > 150000)
{ {
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P5, Config.UpDownAxis_P5_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P5, Config.UpDownAxis_P5_Speed);
...@@ -48,48 +45,36 @@ namespace OnlineStore.DeviceLibrary ...@@ -48,48 +45,36 @@ namespace OnlineStore.DeviceLibrary
StoreMove.NextMoveStep(StoreMoveStep.SC_03_MoveToHBag); StoreMove.NextMoveStep(StoreMoveStep.SC_03_MoveToHBag);
CheckPositionLog(" 升降轴到库位高点P9, UpDownAxis_P9_Speed=" + Config.UpDownAxis_P9_Speed.ToString()); CheckPositionLog(" 升降轴到库位高点P9, UpDownAxis_P9_Speed=" + Config.UpDownAxis_P9_Speed.ToString());
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P9, Config.UpDownAxis_P9_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P9, Config.UpDownAxis_P9_Speed);
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.CheckPos, IO_VALUE.HIGH)); //StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.CheckPos, IO_VALUE.HIGH));
StoreMove.OneWaitCanEndStep = true; //StoreMove.OneWaitCanEndStep = true;
} }
else if (StoreMove.MoveStep == StoreMoveStep.SC_03_MoveToHBag) else if (StoreMove.MoveStep == StoreMoveStep.SC_03_MoveToHBag)
{ {
ACServerManager.SuddenStop(Config.UpDown_Axis.DeviceName, Config.UpDown_Axis.GetAxisValue());
StoreMove.NextMoveStep(StoreMoveStep.SC_04_Inventory); StoreMove.NextMoveStep(StoreMoveStep.SC_04_Inventory);
StoreMove.WaitList.Add(WaitResultInfo.WaitTime(2000)); CheckPositionLog(" 升降轴到目标位置, 当前位置=" + ACServerManager.GetActualtPosition(Config.UpDown_Axis) + " 目标位置=" + ACServerManager.GetTargetPosition(Config.UpDown_Axis.DeviceName, Config.UpDown_Axis.GetAxisValue()));
int outCount = ACServerManager.GetActualtPosition(Config.UpDown_Axis); //ACServerManager.SuddenStop(Config.UpDown_Axis.DeviceName, Config.UpDown_Axis.GetAxisValue());
int errorCount = Math.Abs(outCount - moveP.UpDown_P9);
if (errorCount <= Config.UpDown_Axis.CanErrorCountMax) //int outCount = ACServerManager.GetActualtPosition(Config.UpDown_Axis);
{ //int errorCount = Math.Abs(outCount - moveP.UpDown_P9);
CheckPositionLog(" 升降轴到目标位置停止, 当前位置=" + ACServerManager.GetActualtPosition(Config.UpDown_Axis)); //if (errorCount <= Config.UpDown_Axis.CanErrorCountMax)
}
else
{
CheckPositionLog(" 升降轴未到目标停止, 当前位置=" + ACServerManager.GetActualtPosition(Config.UpDown_Axis));
}
// if (ACAxisMoveIsEnd(Config.UpDown_Axis, moveP.UpDown_P9,Config.UpDownAxis_P9_Speed, out string msg))
//{ //{
// CheckPositionLog(" 升降轴到目标位置, 当前位置=" + ACServerManager.GetActualtPosition(Config.UpDown_Axis)+" 目标位置="+ moveP.UpDown_P9 + " errorCount="+ errorCount);
//} //}
//else //else
//{ //{
// //IsExist = true; // CheckPositionLog(" 升降轴运动过程中检测到料盘, 当前位置=" + ACServerManager.GetActualtPosition(Config.UpDown_Axis) + " 目标位置=" + moveP.UpDown_P9 + " errorCount=" + errorCount+ " Config.UpDown_Axis.CanErrorCountMax=" + Config.UpDown_Axis.CanErrorCountMax);
// //IsExist = IOManager.IOValue(IO_Type.CheckPos).Equals(IO_VALUE.HIGH);
//} //}
}
else if (StoreMove.MoveStep == StoreMoveStep.SC_04_Inventory)
{
IsExist = IOManager.IOValue(IO_Type.CheckPos).Equals(IO_VALUE.HIGH);
Dictionary<string, string> paramMap = new Dictionary<string, string>(); Dictionary<string, string> paramMap = new Dictionary<string, string>();
paramMap.Add("cid", CID);//cid = 料仓CID paramMap.Add("cid", CID);//cid = 料仓CID
paramMap.Add("pos", StoreMove.MoveParam.PosInfo.PosId); // 库位 paramMap.Add("pos", StoreMove.MoveParam.PosInfo.PosId); // 库位
paramMap.Add("hasReel", IsExist.ToString()); // 是否有料 paramMap.Add("hasReel", reelIsExist.ToString()); // 是否有料
string server = StoreManager.GetAddr(StoreManager.Addr_posReelCheck, paramMap); string server = StoreManager.GetAddr(StoreManager.Addr_posReelCheck, paramMap);
string resultStr = HttpHelper.Post(server, ""); string resultStr = HttpHelper.Post(server, "");
CheckPositionLog("盘点仓位: [CID=" + CID + "] [" + StoreMove.MoveParam.PosInfo.PosId + "] [IO_Type.CheckPos=" + IsExist.ToString() + "] [resultStr=" + resultStr + "]"); CheckPositionLog("盘点仓位: [CID=" + CID + "] [" + StoreMove.MoveParam.PosInfo.PosId + "] [IO_Type.reelIsExist=" + reelIsExist.ToString() + "] [resultStr=" + resultStr + "]");
reelIsExist = false;
}
else if (StoreMove.MoveStep == StoreMoveStep.SC_04_Inventory)
{
StoreMove.EndMove(); StoreMove.EndMove();
storeRunStatus = StoreRunStatus.Runing; storeRunStatus = StoreRunStatus.Runing;
//设备连接,盘点后,BOX恢复原始状态 //设备连接,盘点后,BOX恢复原始状态
...@@ -107,11 +92,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -107,11 +92,10 @@ namespace OnlineStore.DeviceLibrary
{ {
try try
{ {
CurrInOutCount++;
CurrInOutACount++;
//是否自动状态 //是否自动状态
if (!autoNext) if (!autoNext)
{ {
readDITimer.Enabled = false;
return; return;
} }
if (storeMoveType.Equals(StoreMoveType.CheckPosition)) if (storeMoveType.Equals(StoreMoveType.CheckPosition))
...@@ -127,6 +111,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -127,6 +111,7 @@ namespace OnlineStore.DeviceLibrary
else else
{ {
autoNext = false; autoNext = false;
readDITimer.Enabled = false;
autoMsg = "自动盘点结束!"; autoMsg = "自动盘点结束!";
LogUtil.info(LOGGER, StoreName + "下一个索引不存在,自动盘点结束!"); LogUtil.info(LOGGER, StoreName + "下一个索引不存在,自动盘点结束!");
//回待机位 //回待机位
...@@ -138,27 +123,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -138,27 +123,10 @@ namespace OnlineStore.DeviceLibrary
autoPositionIndex = newIndex; autoPositionIndex = newIndex;
string posid = PositionNumList[autoPositionIndex]; string posid = PositionNumList[autoPositionIndex];
InOutPosInfo inoutinfo = new InOutPosInfo(autoInoutCode, posid); InOutPosInfo inoutinfo = new InOutPosInfo(autoInoutCode, posid);
//判断是否需要重置 LogUtil.info(LOGGER, StoreName + "自动进入下一个仓位:posid=" + posid);
if (CurrInOutACount >= Config.Box_ResetACount) autoMsg = "自动盘点:" + posid;
{ StartInventoryMove(new InOutParam(inoutinfo));
LogUtil.info(LOGGER, StoreName + "自动进入下一个仓位:posid=" + posid + ",当时已经盘点" + CurrInOutACount + "次,需要重置BOX");//,先把盘点信息存入排队列表中
Reset(false);
autoMsg = "自动盘点:" + posid;
AddWaitOutInfo(inoutinfo);
}
else if (CurrInOutCount >= Config.Box_ResetMCount)
{
LogUtil.info(LOGGER, StoreName + "自动进入下一个仓位:posid=" + posid + ",当时已经出盘点" + CurrInOutCount + "次,需要重置BOX旋转轴");
//ResetMiddleAxis(false);
autoMsg = "自动盘点:" + posid;
AddWaitOutInfo(inoutinfo);
}
else
{
LogUtil.info(LOGGER, StoreName + "自动进入下一个仓位:posid=" + posid);
autoMsg = "自动盘点:" + posid;
StartInventoryMove(new InOutParam(inoutinfo));
}
} }
} }
} }
...@@ -174,6 +142,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -174,6 +142,7 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
public void StartInventoryMove(InOutParam param) public void StartInventoryMove(InOutParam param)
{ {
readDITimer.Enabled = true;
startInStoreTime = DateTime.Now; startInStoreTime = DateTime.Now;
string posId = param != null ? param.PosInfo.PosId : ""; string posId = param != null ? param.PosInfo.PosId : "";
if (storeRunStatus == StoreRunStatus.Runing) if (storeRunStatus == StoreRunStatus.Runing)
......
...@@ -159,7 +159,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -159,7 +159,6 @@ namespace OnlineStore.DeviceLibrary
else else
{ {
wait.IsEnd = ACAxisMoveIsEnd(wait.AxisInfo, wait.TargetPosition, wait.TargetSpeed, out msg); wait.IsEnd = ACAxisMoveIsEnd(wait.AxisInfo, wait.TargetPosition, wait.TargetSpeed, out msg);
} }
if (!msg.Equals("")) if (!msg.Equals(""))
{ {
......
...@@ -470,6 +470,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -470,6 +470,9 @@ namespace OnlineStore.DeviceLibrary
case StoreStatus.OutStoreFaild: case StoreStatus.OutStoreFaild:
aa = "出库失败(" + WarnMsg + ")"; aa = "出库失败(" + WarnMsg + ")";
break; break;
case StoreStatus.CheckPosMove:
aa = "盘点中";
break;
} }
if (!aa.Equals("")) if (!aa.Equals(""))
{ {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!