电梯bug erp成品调拨入库单同步

This commit is contained in:
2024-08-21 10:43:32 +08:00
parent 241d6ae94c
commit c70b9be7fc
5 changed files with 66 additions and 50 deletions

View File

@@ -2208,56 +2208,56 @@ namespace Tnb.WarehouseMgr
Logger.Information($"当前:{devName.Match(@"\d+")}#梯");
var tags = new[] { "SysStatus", "RunStatus", "FloorNo", "DoorStatus", "AGVStatus" };
(int sysStatus, int runStatus, int curFloorNo, int doorStatus, int agvStatus) eleStatusMulti = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
if (eleStatusMulti.agvStatus != (int)EnumAgvStatus.AGV运行状态)
{
_ = await _elevatorControlService.WriteTagAsync(devName, ElevatorConsts.AGVControl, 1);
}
//var tags = new[] { "SysStatus", "RunStatus", "FloorNo", "DoorStatus", "AGVStatus" };
//(int sysStatus, int runStatus, int curFloorNo, int doorStatus, int agvStatus) eleStatusMulti = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
//if (eleStatusMulti.agvStatus != (int)EnumAgvStatus.AGV运行状态)
//{
// _ = await _elevatorControlService.WriteTagAsync(devName, ElevatorConsts.AGVControl, 1);
//}
if (!_elevatorAgvCtlStatusMap.TryGetValue(disTask.id, out int agvCtlStatus) || agvCtlStatus != (int)EnumAgvStatus.AGV运行状态)
{
do
{
eleStatusMulti = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
Logger.Information($"{devName.Match(@"\d+")}#, 当前Agv状态:{eleStatusMulti.agvStatus.ToEnum<EnumAgvStatus>()}");
await Task.Delay(1000);
} while (eleStatusMulti.agvStatus != (int)EnumAgvStatus.AGV运行状态);
Logger.Information($"{devName.Match(@"\d+")}#, 当前Agv状态:{eleStatusMulti.agvStatus.ToEnum<EnumAgvStatus>()}");
_elevatorAgvCtlStatusMap[disTask.id] = eleStatusMulti.agvStatus;
}
//if (!_elevatorAgvCtlStatusMap.TryGetValue(disTask.id, out int agvCtlStatus) || agvCtlStatus != (int)EnumAgvStatus.AGV运行状态)
//{
// do
// {
// eleStatusMulti = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
// Logger.Information($"{devName.Match(@"\d+")}#, 当前Agv状态:{eleStatusMulti.agvStatus.ToEnum<EnumAgvStatus>()}");
// await Task.Delay(1000);
// } while (eleStatusMulti.agvStatus != (int)EnumAgvStatus.AGV运行状态);
// Logger.Information($"{devName.Match(@"\d+")}#, 当前Agv状态:{eleStatusMulti.agvStatus.ToEnum<EnumAgvStatus>()}");
// _elevatorAgvCtlStatusMap[disTask.id] = eleStatusMulti.agvStatus;
//}
int doorStatus = -1;
bool closeDoorRes = await _elevatorControlService.SendOpenCloseCmd(devName, 4); //向电梯发送前门关门指令
Logger.Information($"关门结果:{closeDoorRes}");
do
{
doorStatus = await _elevatorControlService.GetTagAsync(devName, ElevatorConsts.DoorStatus);
Logger.Information($"当前门状态:{doorStatus}");
await Task.Delay(1000);
} while (doorStatus != 4);
Logger.Information($"当前门状态:{doorStatus}");
//int doorStatus = -1;
//bool closeDoorRes = await _elevatorControlService.SendOpenCloseCmd(devName, 4); //向电梯发送前门关门指令
//Logger.Information($"关门结果:{closeDoorRes}");
//do
//{
// doorStatus = await _elevatorControlService.GetTagAsync(devName, ElevatorConsts.DoorStatus);
// Logger.Information($"当前门状态:{doorStatus}");
// await Task.Delay(1000);
//} while (doorStatus != 4);
//Logger.Information($"当前门状态:{doorStatus}");
int floor = await GetRealFloor(devName, disTask.end_floor);
//int floor = await GetRealFloor(devName, disTask.end_floor);
//电梯任务手动执行任务状态上报
(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) tuple = (-1, -1, -1, -1, -1);
tuple = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
Logger.Information($"目标楼层:{floor} 当前楼层:{tuple.floorNo}");
////电梯任务手动执行任务状态上报
//(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) tuple = (-1, -1, -1, -1, -1);
//tuple = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
//Logger.Information($"目标楼层:{floor} 当前楼层:{tuple.floorNo}");
Logger.Information($"开始呼梯 {devName}到{floor}");
//发送到目标楼的指令
dynamic result = await _elevatorControlService.WriteTagAsync(devName, ElevatorConsts.FloorExecute, floor);
//Logger.Information($"开始呼梯 {devName}到{floor}");
////发送到目标楼的指令
//dynamic result = await _elevatorControlService.WriteTagAsync(devName, ElevatorConsts.FloorExecute, floor);
do
{
tuple = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
await Task.Delay(1000);
} while (tuple.sysStatus != 3 || tuple.runStatus != 0 || floor != tuple.floorNo);
//do
//{
// tuple = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
// await Task.Delay(1000);
//} while (tuple.sysStatus != 3 || tuple.runStatus != 0 || floor != tuple.floorNo);
Logger.Information($"sysStatus:{tuple.sysStatus},runStatus:{tuple.runStatus},当前楼层floorNo:{tuple.floorNo},目标楼层disTask.end_floor={floor}");
//Logger.Information($"sysStatus:{tuple.sysStatus},runStatus:{tuple.runStatus},当前楼层floorNo:{tuple.floorNo},目标楼层disTask.end_floor={floor}");
if (tuple.sysStatus.ToEnum<EnumSysStatus>() == EnumSysStatus. && tuple.runStatus.ToEnum<EnumRunStatus>() == EnumRunStatus.)
//if (tuple.sysStatus.ToEnum<EnumSysStatus>() == EnumSysStatus.正常状态 && tuple.runStatus.ToEnum<EnumRunStatus>() == EnumRunStatus.停梯)
{
Logger.Information($"disTask.require_id={disTask.require_id}");
List<string> disTaskIds = new() { disTasks[0].id };