|
@@ -137,7 +137,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
PLCMsg = (PLCMessage)PLC.GetMessage();
|
|
|
}
|
|
|
bool occupied = true;
|
|
|
- if (PLCMsg != null)
|
|
|
+ if (PLCMsg != null && PLCMsg.originalPlcList.Count!=0)
|
|
|
{
|
|
|
if (robotID == 1)
|
|
|
{
|
|
@@ -169,6 +169,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
Log.WriteLog(LogType.NOT_DATABASE, LogFile.LOG, "获得机械手资源");
|
|
|
break;
|
|
|
}
|
|
|
+ Thread.Sleep(1000);
|
|
|
mt.EndTiming();
|
|
|
int activationCount = 0;
|
|
|
if (mt.IsLonger(60, 1, false, out activationCount))
|
|
@@ -185,7 +186,6 @@ namespace parkMonitor.server.CoreThread
|
|
|
Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "启动机械手资源超时,已启动回滚");
|
|
|
return false;
|
|
|
}
|
|
|
- Thread.Sleep(100);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -204,20 +204,33 @@ namespace parkMonitor.server.CoreThread
|
|
|
//命令回退
|
|
|
queueCmd.returnedCount += 1;
|
|
|
queuingThread.SetMessage(queueCmd);
|
|
|
- //线程计数调整
|
|
|
+ //机械手释放
|
|
|
if (robotAllocated)
|
|
|
{
|
|
|
Robot.robot1.occupied = false;
|
|
|
}
|
|
|
+ //线程计数调整,复位PLC指令
|
|
|
if (!queueCmd.manual)
|
|
|
{
|
|
|
if (isParking)
|
|
|
{
|
|
|
Robot.robot1.parkWaitCount -= 1;
|
|
|
+ ControlMessage cMsg = new ControlMessage
|
|
|
+ {
|
|
|
+ status = 6,
|
|
|
+ RobotID = 1
|
|
|
+ };
|
|
|
+ PLC.SetMessage(cMsg);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Robot.robot1.fetchWaitCount -= 1;
|
|
|
+ ControlMessage cMsg = new ControlMessage
|
|
|
+ {
|
|
|
+ status = 7,
|
|
|
+ RobotID = 1
|
|
|
+ };
|
|
|
+ PLC.SetMessage(cMsg);
|
|
|
}
|
|
|
}
|
|
|
//释放激光
|
|
@@ -362,7 +375,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
Log.WriteLog(LogType.NOT_DATABASE, LogFile.LOG, "停车流程:" + queueCmd.LicenseNum + "已分配车位");
|
|
|
break;
|
|
|
}
|
|
|
- Thread.Sleep(200);
|
|
|
+ Thread.Sleep(1000);
|
|
|
mt.EndTiming();
|
|
|
int activationCount = 0;
|
|
|
if (mt.IsLonger(5, 1, false, out activationCount))
|
|
@@ -378,7 +391,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, queueCmd.LicenseNum + "超时未获得车位,指令退回");
|
|
|
return null;
|
|
|
}
|
|
|
- Thread.Sleep(100);
|
|
|
+ //Thread.Sleep(1000);
|
|
|
}
|
|
|
}
|
|
|
return ppp;
|
|
@@ -475,8 +488,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, queueCmd.LicenseNum + "超时未获取激光数据,指令退回");
|
|
|
return null;
|
|
|
}
|
|
|
- Thread.Sleep(100);
|
|
|
-
|
|
|
+ //Thread.Sleep(1000);
|
|
|
}
|
|
|
}
|
|
|
return data;
|
|
@@ -492,7 +504,6 @@ namespace parkMonitor.server.CoreThread
|
|
|
mt.StartTiming();
|
|
|
while (!isClosing)
|
|
|
{
|
|
|
- Thread.Sleep(1000);
|
|
|
int storeStatus = 0;
|
|
|
if (PLC != null)
|
|
|
{
|
|
@@ -522,6 +533,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
+ Thread.Sleep(1000);
|
|
|
mt.EndTiming();
|
|
|
int activationCount = 0;
|
|
|
if (mt.IsLonger(120, 1, false, out activationCount))
|
|
@@ -537,7 +549,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, queueCmd.LicenseNum + "等待停车完成信号" + status + "超时,流程回滚");
|
|
|
return false;
|
|
|
}
|
|
|
- Thread.Sleep(100);
|
|
|
+ //Thread.Sleep(1000);
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
@@ -581,7 +593,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "超时未获取轮距雷达数据,流程回滚");
|
|
|
return false;
|
|
|
}
|
|
|
- Thread.Sleep(100);
|
|
|
+ //Thread.Sleep(1000);
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
@@ -777,6 +789,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
Rollback(queueCmd, ppp.parkingSpaceID, true, true, lmToBeReleased);
|
|
|
return;
|
|
|
}
|
|
|
+ //机械手异常则回滚
|
|
|
if (!WaitForStoreCompletionSignal(queueCmd, ppp.parkingSpaceID, ref robotError, 1))
|
|
|
{
|
|
|
Rollback(queueCmd, ppp.parkingSpaceID, true, true, lmToBeReleased);
|
|
@@ -787,7 +800,6 @@ namespace parkMonitor.server.CoreThread
|
|
|
status = 3;
|
|
|
cm.status = status;
|
|
|
PLC.SetMessage(cm);
|
|
|
- //机械手异常则回滚
|
|
|
if (!WaitForStoreCompletionSignal(queueCmd, ppp.parkingSpaceID, ref robotError, 0))
|
|
|
{
|
|
|
Rollback(queueCmd, ppp.parkingSpaceID, true, true, lmToBeReleased);
|
|
@@ -970,7 +982,6 @@ namespace parkMonitor.server.CoreThread
|
|
|
mt.StartTiming();
|
|
|
while (!isClosing)
|
|
|
{
|
|
|
- Thread.Sleep(2000);
|
|
|
PLCMsg = (PLCMessage)PLC.GetMessage();
|
|
|
int fetchingStatus = Convert.ToInt32(PLCMsg.originalPlcList[fetch_completed_address].Value);
|
|
|
//取车完成信号
|
|
@@ -996,6 +1007,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
+ Thread.Sleep(1000);
|
|
|
mt.EndTiming();
|
|
|
int activationCount = 0;
|
|
|
if (mt.IsLonger(120, 1, false, out activationCount))
|
|
@@ -1011,7 +1023,6 @@ namespace parkMonitor.server.CoreThread
|
|
|
Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, queueCmd.LicenseNum + "等待取车完成信号" + status + "超时,流程回滚");
|
|
|
return false;
|
|
|
}
|
|
|
- Thread.Sleep(100);
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
@@ -1053,7 +1064,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
count++;
|
|
|
if (count == 1)
|
|
|
{
|
|
|
- UILogServer.ins.error("无法获取车辆信息");
|
|
|
+ UILogServer.ins.error("无法获取车辆信息,请回滚流程");
|
|
|
Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "无法从数据库获取车辆信息,流程中止");
|
|
|
}
|
|
|
Thread.Sleep(5000);
|
|
@@ -1075,7 +1086,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
count++;
|
|
|
if (count == 1)
|
|
|
{
|
|
|
- UILogServer.ins.error("车位分配出现异常!!!");
|
|
|
+ UILogServer.ins.error("车位分配出现异常!!!请回滚流程并初始化系统");
|
|
|
Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "车位分配出现异常!!!");
|
|
|
}
|
|
|
Thread.Sleep(5000);
|