| | |
| | | using Microsoft.AspNetCore.Routing; |
| | | using Quartz; |
| | | using Quartz; |
| | | using SqlSugar; |
| | | using System.Net; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Common.Helper; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.BaseRepository; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.ConveyorLine.Enum; |
| | | using WIDESEAWCS_QuartzJob.DTO; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Repository; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | |
| | | private readonly IRouterService _routerService; |
| | | private readonly IRepository<Dt_Task> _taskRepository; |
| | | private readonly IRepository<Dt_StationManger> _stationMangerRepository; |
| | | |
| | | |
| | | public CommonConveyorLineJob(ICacheService cacheService, ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRepository<Dt_StationManger> stationMangerRepository, IRepository<Dt_Task> taskRepository, IRouterRepository routerRepository, IRouterService routerService) |
| | | private readonly ITaskHtyService _taskHtyService; |
| | | |
| | | |
| | | |
| | | public CommonConveyorLineJob(ICacheService cacheService, ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRepository<Dt_StationManger> stationMangerRepository, IRepository<Dt_Task> taskRepository, IRouterRepository routerRepository, IRouterService routerService, ITaskHtyService taskHtyService) |
| | | { |
| | | _cacheService = cacheService; |
| | | _taskService = taskService; |
| | |
| | | _routerService = routerService; |
| | | _stationMangerRepository = stationMangerRepository; |
| | | _taskRepository = taskRepository; |
| | | _taskHtyService = taskHtyService; |
| | | } |
| | | |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value); |
| | | if (flag && value != null) |
| | | { |
| | | OtherDevice device = (OtherDevice)value; |
| | | List<string> deviceStations = device.DeviceProDTOs.Select(x => x.DeviceChildCode).Distinct().ToList(); |
| | | List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode); |
| | | OtherDevice device = (OtherDevice)value; |
| | | List<string> deviceStations = device.DeviceProDTOs.Select(x => x.DeviceChildCode).Distinct().ToList();//è·å设å¤ä¸çç«å° |
| | | List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode); //è·å设å¤ä¸çç«å° |
| | | try |
| | | { |
| | | foreach (var item in stationMangers.Where(x => deviceStations.Contains(x.StationCode))) |
| | | foreach (var item in stationMangers.Where(x => deviceStations.Contains(x.StationCode))) //循ç¯è®¾å¤ä¸çç«å° |
| | | { |
| | | DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(R_ConveyorLineDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); |
| | | |
| | | DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(W_ConveyorLineDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); |
| | | |
| | | if (deviceProRead != null && deviceProWrite != null) |
| | | DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(R_ConveyorLineDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); //è¾é线读åçå
¨é¨åè®® |
| | | |
| | | DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(W_ConveyorLineDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); //è¾é线åå
¥çå
¨é¨åè®® |
| | | |
| | | if (deviceProRead != null && deviceProWrite != null) //读ååå
¥çåè®®å¤ææ¯å¦ä¸ºnull |
| | | { |
| | | R_ConveyorLineInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_ConveyorLineInfo>(deviceProRead.DeviceProAddress); |
| | | |
| | | W_ConveyorLineInfo conveyorLineInfoWrite = device.Communicator.ReadCustomer<W_ConveyorLineInfo>(deviceProWrite.DeviceProAddress); |
| | | R_ConveyorLineInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_ConveyorLineInfo>(deviceProRead.DeviceProAddress); //读ååè®® |
| | | |
| | | W_ConveyorLineInfo conveyorLineInfoWrite = device.Communicator.ReadCustomer<W_ConveyorLineInfo>(deviceProWrite.DeviceProAddress); //åå
¥åè®® |
| | | if (conveyorLineInfoRead == null || conveyorLineInfoWrite == null) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | R_ConveyorLineStatus conveyorLineStatus = conveyorLineInfoRead.Status.ByteToBoolObject<R_ConveyorLineStatus>(); |
| | | |
| | | ConveyorLineSignal conveyorLineSignalRead = conveyorLineInfoRead.Signal.ByteToBoolObject<ConveyorLineSignal>(); |
| | | bool ACK = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.ACK, item.StationCode); |
| | | |
| | | bool STB = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.STB, item.StationCode); |
| | | //ConveyorLineSignal conveyorLineSignalWrite = conveyorLineInfoWrite.Signal.ByteToBoolObject<ConveyorLineSignal>(); |
| | | //åºåºç«å° |
| | | if (item.StationType == StationTypeEnum.StationType_OnlyOutbound.ObjToInt()) |
| | | |
| | | R_ConveyorLineStatus conveyorLineStatus = conveyorLineInfoRead.Status.ByteToBoolObject<R_ConveyorLineStatus>(); //è·å设å¤ç¶æ |
| | | |
| | | ConveyorLineSignal conveyorLineSignalRead = conveyorLineInfoRead.Signal.ByteToBoolObject<ConveyorLineSignal>(); //è·å设å¤ä¿¡å· |
| | | bool ACK = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.ACK, item.StationCode); //è·åACKç¡®è®¤ä¿¡æ¯ |
| | | |
| | | bool STB = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.STB, item.StationCode); //è·åSTB请æ±ä¿¡æ¯ |
| | | //ConveyorLineSignal conveyorLineSignalWrite = conveyorLineInfoWrite.Signal.ByteToBoolObject<ConveyorLineSignal>(); |
| | | //åºåºç«å° |
| | | |
| | | if (item.StationType == StationTypeEnum.StationType_OnlyOutbound.ObjToInt()) //2007交äºå£è¿å
¥ |
| | | { |
| | | //WriteLog.Write_Log("2楼åºåº2007äº¤äºæµç¨ï¼å åæºå®æåºåºä»»å¡å®æ", $"{item.StationType}åºæµç¨", $"ä¸2007è¿è¡äº¤äº,ç«å°ç¼å·ï¼{item.StationCode}",item.StationType); |
| | | // åºåº |
| | | if (conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && !ACK)//åºåº |
| | | if (conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && !ACK)//2楼åºåº |
| | | { |
| | | if (!string.IsNullOrEmpty(conveyorLineInfoRead.Barcode))//éè´å
¥åº |
| | | if (!string.IsNullOrEmpty(conveyorLineInfoRead.Barcode)) |
| | | { |
| | | device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.EndPos, 2011, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.TaskNo, 1111, item.StationCode); |
| | | Dt_Task dt_Ta = _taskService.GetOutTaskInfo2(conveyorLineInfoRead.Barcode); |
| | | |
| | | |
| | | WriteLog.Write_Log("2楼åºåºæµç¨", $"{item.StationCode}åºåºæµç¨", $"è·å2楼åºåºä»»å¡,æçæ¡ç ï¼{dt_Ta.PalletCode}", dt_Ta); |
| | | if (dt_Ta != null) |
| | | { |
| | | WriteLog.Write_Log("2åºåºæµç¨", $"{item.StationCode}åºåºæµç¨",$"è·ååºåºä»»å¡æåå¼å§åplcåå
¥å½ä»¤,æçæ¡ç ï¼taskno:{dt_Ta.TaskNum}------endpos:{dt_Ta.OutboundPlatform}--------stb:{ACK}"); |
| | | device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode); |
| | | bool endpos = device.SetValue(W_ConveyorLineDB.EndPos, dt_Ta.OutboundPlatform, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode); |
| | | |
| | | WriteLog.Write_Log("2楼åºåºæµç¨", $"{item.StationCode}åºåºæµç¨", $"å¼å§å é¤ä»»å¡,æçæ¡ç ï¼{dt_Ta.PalletCode}"); |
| | | //å é¤ä»»å¡ |
| | | _taskRepository.DeleteData(dt_Ta); |
| | | |
| | | _taskHtyService.AddTaskHistory(dt_Ta, "èªå¨å®æ"); |
| | | |
| | | } |
| | | } |
| | | } |
| | | else if (!conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && ACK) |
| | |
| | | //åºå
¥åºç«å° |
| | | else if (item.StationType == StationTypeEnum.StationType_InboundAndOutbound.ObjToInt()) |
| | | { |
| | | //å
¥åºçæå åæºå
¥åºä»»å¡ |
| | | |
| | | //è¾éçº¿å®æä¿®æ¹æè¾éçº¿å®æç¶æå¾
å åæºæ§è¡ä»»å¡ |
| | | if (conveyorLineSignalRead.STB && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !ACK) |
| | | { |
| | | if (conveyorLineInfoRead.TaskNo != 0 && !string.IsNullOrEmpty(conveyorLineInfoRead.Barcode))//éè´å
¥åº |
| | | Dt_Task dt_Task = _taskService.GetTaskIninfo(conveyorLineInfoRead.Barcode); |
| | | WriteLog.Write_Log("1-2-3-4-5å
¥åºæµç¨", $"{item.StationCode}å
¥åºæµç¨", $"è·åå
¥åºä»»å¡,æçæ¡ç ï¼{dt_Task.PalletCode}", dt_Task); |
| | | if (!string.IsNullOrEmpty(conveyorLineInfoRead.Barcode)&& dt_Task !=null) |
| | | { |
| | | WebResponseContent contentweb = _taskService.UpdateTaskIninfo(conveyorLineInfoRead.Barcode, conveyorLineInfoRead.TaskNo); |
| | | bool ack = device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode); |
| | | bool taskno = device.SetValue(W_ConveyorLineDB.TaskNo,1, item.StationCode); |
| | | WriteLog.Write_Log("1-3-4-5åºå
¥åºæµç¨", $"{item.StationCode}åºåºæµç¨", $"è·ååºåºä»»å¡æåå¼å§åplcåå
¥å½ä»¤,æçæ¡ç ï¼{dt_Task.PalletCode},taskno:{taskno}------ack:{ack}"); |
| | | WebResponseContent contentweb = _taskService.UpdateTaskIninfo(conveyorLineInfoRead.Barcode,item.StationCode); //æ ¹æ®æ¡ç è·è®¾å¤ç¼å·å»æ¥è¯¢å¹¶ä¿®æ¹ä»»å¡ |
| | | WriteLog.Write_Log("1-3-4-5åºå
¥åºæµç¨", $"{item.StationCode}å
¥åºæµç¨", $"åplcåå
¥æåå¼å§ä¿®æ¹ä»»å¡,æçæ¡ç ï¼{dt_Task.PalletCode},ä¿®æ¹ä»»å¡æ¯å¦æå{contentweb.Status}"); |
| | | if (contentweb.Status) |
| | | { |
| | | device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode); |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | else if (!conveyorLineSignalRead.STB && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && ACK) |
| | | { |
| | | device.SetValue(W_ConveyorLineDB.ACK, false, item.StationCode); |
| | | } |
| | | else if (!conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Free && !conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && !ACK && conveyorLineInfoRead.TaskNo == 0)//åºåº |
| | | /*else if (!conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Free && !conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && !ACK && conveyorLineInfoRead.TaskNo == 0)//åºåº |
| | | { |
| | | Dt_Task task = _taskRepository.QueryFirst(x => x.CurrentAddress == item.StationCode && x.TaskState == TaskStatusEnum.New.ObjToInt() && x.DeviceCode == item.StationDeviceCode && _taskService.TaskOutboundTypes.Contains(x.TaskType)); |
| | | if (task != null ) |
| | |
| | | if (deviceProRead != null) |
| | | { |
| | | R_ConveyorLineInfo conveyorLineInfoRead2 = device.Communicator.ReadCustomer<R_ConveyorLineInfo>(deviceProRead.DeviceProAddress); |
| | | |
| | | |
| | | ConveyorLineSignal conveyorLineSignalRead2 = conveyorLineInfoRead2.Signal.ByteToBoolObject<ConveyorLineSignal>(); |
| | | |
| | | |
| | | R_ConveyorLineStatus conveyorLineStatus2 = conveyorLineInfoRead2.Status.ByteToBoolObject<R_ConveyorLineStatus>(); |
| | | |
| | | |
| | | if (!conveyorLineSignalRead2.STB && !conveyorLineSignalRead2.ACK && conveyorLineStatus.Online && conveyorLineStatus2.Free && !conveyorLineStatus2.Goods && !conveyorLineStatus2.Alarm && !STB && !ACK)//夿åºåºå£æ¯å¦ç©ºé² |
| | | { |
| | | Dt_StationManger? stationManger = stationMangers.FirstOrDefault(x => x.StationCode == item.StationCode); |
| | |
| | | } |
| | | } |
| | | } |
| | | }*/ |
| | | Dt_Task dt_Tas = _taskService.GetOutTaskInfo(item.StationCode); //è·ååºåºä»»å¡ |
| | | if (dt_Tas != null) |
| | | { |
| | | WriteLog.Write_Log("1-3-4-5åºåºæµç¨", $"{item.StationCode}åºåºæµç¨", $"è·ååºåºä»»å¡,æçæ¡ç ï¼{dt_Tas.PalletCode}", new |
| | | { |
| | | ååconveyorLineSignalReadSTB = !conveyorLineSignalRead.STB, |
| | | ååconveyorLineSignalReadACK = !conveyorLineSignalRead.ACK, |
| | | èæºconveyorLineStatusOnline = conveyorLineStatus.Online, |
| | | ææ è´§conveyorLineStatusGoods = conveyorLineStatus.Goods, |
| | | æ
éææ£å¸¸ååconveyorLineStatusAlarm = !conveyorLineStatus.Alarm, |
| | | å忬å°STB = !STB, |
| | | å忬å°ACK = !ACK |
| | | }); |
| | | } |
| | | else if (!conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && !ACK)//åºåº |
| | | else if (!conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && !ACK)//å
¶ä»æ¥¼å±åºåº |
| | | { |
| | | |
| | | Dt_Task dt_Ta = _taskService.GetOutTaskInfo(item.StationCode); |
| | | Dt_Task dt_Ta = _taskService.GetOutTaskInfo(item.StationCode); //è·ååºåºä»»å¡ |
| | | WriteLog.Write_Log("1-3-4-5åºåºæµç¨",$"{item.StationCode}åºåºæµç¨",$"è·ååºåºä»»å¡,æçæ¡ç ï¼{dt_Ta.PalletCode}",dt_Ta); |
| | | if (dt_Ta != null) |
| | | { |
| | | Dt_Router dt_Router = _routerRepository.QueryFirst(x => x.StartPosi == dt_Ta.TargetAddress); |
| | | //å åæºä»»å¡å®æä¸ä¸å°åæ¹æè¾é线ä¸ä¸å°åï¼è®¾å¤ç¼å·æ¹æè¾é线 |
| | | _taskService.UpdateTaskStatusToNext(dt_Ta.TaskNum); |
| | | device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.EndPos, dt_Router.NextPosi, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.STB, true, item.StationCode); |
| | | //å é¤ä»»å¡ |
| | | _taskRepository.DeleteData(dt_Ta); |
| | | bool taskno = device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode); |
| | | bool endpos = device.SetValue(W_ConveyorLineDB.EndPos, dt_Ta.OutboundPlatform, item.StationCode); |
| | | bool stb = device.SetValue(W_ConveyorLineDB.STB, true, item.StationCode); |
| | | WriteLog.Write_Log("1-3-4-5åºåºæµç¨", $"{item.StationCode}åºåºæµç¨",$"è·ååºåºä»»å¡æåå¼å§åplcåå
¥å½ä»¤,æçæ¡ç ï¼{dt_Ta.PalletCode},taskno:{taskno}------endpos:{endpos}--------stb:{stb}"); |
| | | |
| | | if (taskno && endpos && stb) |
| | | { |
| | | |
| | | //å åæºä»»å¡å®æä¸ä¸å°åæ¹æè¾é线ä¸ä¸å°åï¼è®¾å¤ç¼å·æ¹æè¾é线 |
| | | WebResponseContent webResponse = _taskService.UpdateTaskStatusToNext(dt_Ta.TaskNum); |
| | | |
| | | WriteLog.Write_Log("1-3-4-5åºåºæµç¨",$"{item.StationCode}åºåºæµç¨",$"åplcåå
¥æåå¼å§ä¿®æ¹ä»»å¡,æçæ¡ç ï¼{dt_Ta.PalletCode},ä¿®æ¹ä»»å¡æ¯å¦æå{webResponse.Status}"); |
| | | |
| | | if (webResponse.Status) |
| | | { |
| | | if (dt_Ta.TargetAddress != "2021" && dt_Ta.TargetAddress != "2020") |
| | | { |
| | | //å é¤ä»»å¡ |
| | | bool res = _taskRepository.DeleteData(dt_Ta); |
| | | WriteLog.Write_Log("1-3-4-5åºåºæµç¨", $"{item.StationCode}åºåºæµç¨",$"ä¿®æ¹ä»»å¡æåå¼å§å é¤ä»»å¡,æçæ¡ç ï¼{dt_Ta.PalletCode},å é¤ä»»å¡æ¯å¦æå{res}"); |
| | | |
| | | if (res) |
| | | { |
| | | _taskHtyService.AddTaskHistory(dt_Ta, "èªå¨å®æ"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | else if (!conveyorLineSignalRead.STB && conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && STB && !ACK) |
| | | { |
| | | device.SetValue(W_ConveyorLineDB.STB, false, item.StationCode); |
| | | } |
| | | |
| | | }//æ¸
æ¥ç¡®è®¤ä¿¡å· |
| | | |
| | | } |
| | | //å
¥åºç«å° |
| | | else if (item.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt()) |
| | | { |
| | | else if (item.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt()) //2014交äºå£ |
| | | { |
| | | if (conveyorLineSignalRead.STB && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !ACK) |
| | | { |
| | | if (conveyorLineInfoRead.TaskNo == 0 && !string.IsNullOrEmpty(conveyorLineInfoRead.Barcode))//éè´å
¥åº |
| | | Dt_Task dt_Task = _taskService.GetTaskIninfo(conveyorLineInfoRead.Barcode); |
| | | WriteLog.Write_Log("2楼å
¥åºæµç¨", $"{item.StationCode}å
¥åºæµç¨", $"æçæ¡ç ï¼{dt_Task.PalletCode},ä»»å¡{dt_Task}"); |
| | | if (conveyorLineInfoRead.TaskNo == 0 && !string.IsNullOrEmpty(conveyorLineInfoRead.Barcode)&& dt_Task != null)//éè´å
¥åº |
| | | { |
| | | Dt_Task dt_Ta = _taskService.GetTaskIninfo(conveyorLineInfoRead.Barcode); |
| | | if(dt_Ta != null) |
| | | Dt_Task dt_Ta = _taskService.GetTaskIninfo(conveyorLineInfoRead.Barcode); //éè¿æ¡ç 廿¥è¯¢ä»»å¡ |
| | | if (dt_Ta != null) |
| | | { |
| | | |
| | | device.SetValue(W_ConveyorLineDB.EndPos, dt_Ta.SourceAddress, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode); |
| | | bool endpos = device.SetValue(W_ConveyorLineDB.EndPos, dt_Ta.SourceAddress, item.StationCode); |
| | | bool taskno = device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode); |
| | | bool ack = device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode); |
| | | WriteLog.Write_Log("2楼å
¥åºæµç¨", $"{item.StationCode}å
¥åºæµç¨", $"è·åå
¥åºä»»å¡æåå¼å§åplcåå
¥å½ä»¤,æçæ¡ç ï¼{dt_Ta.PalletCode},taskno:{taskno}------endpos:{endpos}--------ack:{ack}"); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | if (!conveyorLineSignalRead.STB && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && ACK) |
| | | { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | catch (Exception ex) |
| | | { |
| | | //throw; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | //è·åæ£éç¶æææ è´§ç¶æ |
| | | public static bool GetPick() |
| | | { |
| | | //bool IsOccupied2008 = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2008"); |
| | | //bool IsOccupied2009 = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2009"); |
| | | //bool IsOccupied2015 = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2015"); |
| | | //bool IsOccupied2016 = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2016"); |
| | | |
| | | ////夿æ¯å¦æç« |
| | | //if (IsOccupied2008&&IsOccupied2009&&IsOccupied2015&&IsOccupied2016) |
| | | //{ |
| | | // return false; |
| | | //} |
| | | //else |
| | | //{ |
| | | // return true; |
| | | //} |
| | | |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | } |