|  | @@ -1,10 +1,10 @@
 | 
	
		
			
				|  |  |  using Quartz;
 | 
	
		
			
				|  |  | -using System;
 | 
	
		
			
				|  |  |  using System.Collections.Generic;
 | 
	
		
			
				|  |  | -using System.Linq;
 | 
	
		
			
				|  |  | +using System.Threading;
 | 
	
		
			
				|  |  |  using System.Threading.Tasks;
 | 
	
		
			
				|  |  |  using WCS.Data;
 | 
	
		
			
				|  |  |  using WCS.PLC;
 | 
	
		
			
				|  |  | +using WCS.PLC.Model.Equipment;
 | 
	
		
			
				|  |  |  using WCS.Workflow;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  namespace WCS.Service.Quartz
 | 
	
	
		
			
				|  | @@ -30,14 +30,78 @@ namespace WCS.Service.Quartz
 | 
	
		
			
				|  |  |              ThreadHelper.TaskThread(BaseWorkflow.PutDevInfoToWMS);
 | 
	
		
			
				|  |  |              //更新PLC最后完成时间和各个设备任务数量
 | 
	
		
			
				|  |  |              ThreadHelper.TaskThread(BaseWorkflow.UpdateUnexecuteTask);
 | 
	
		
			
				|  |  | -            
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              //执行WCS逻辑
 | 
	
		
			
				|  |  |              WCS_PLCList.ExecuteWcs_Workflow();
 | 
	
		
			
				|  |  |              //执行Agv逻辑
 | 
	
		
			
				|  |  |              ThreadHelper.TaskThread(AgvWorkflow.AgvRun);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              ThreadHelper.TaskThread(AgvWorkflow.AgvUpdateStatus);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            ThreadHelper.TaskThread(WriteDataToLog);
 | 
	
		
			
				|  |  |              return Task.FromResult(string.Empty);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        private static int _writeDataToLog = 0;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        public void WriteDataToLog()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            if (Interlocked.Exchange(ref _writeDataToLog, 1) == 0)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                Thread.Sleep(1000);
 | 
	
		
			
				|  |  | +                var list = new List<EQUIPMENTINFO>();
 | 
	
		
			
				|  |  | +                foreach (var item in Current.PlcSet)
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    foreach (var equipmentInfo in item.WCS_EquipmentInfoSet)
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        list.Add(new EQUIPMENTINFO()
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            EQU_NO = equipmentInfo.Equ_No,
 | 
	
		
			
				|  |  | +                            EQU_PLCNAME = equipmentInfo.Equ_PlcName,
 | 
	
		
			
				|  |  | +                            //EQU_BARCODE = equipmentInfo.EQU_BARCODE,
 | 
	
		
			
				|  |  | +                            EQU_ALARAMSMSG = equipmentInfo.Equ_AlaramsMsg,
 | 
	
		
			
				|  |  | +                            EQU_NOTES = equipmentInfo.Equ_Notes,
 | 
	
		
			
				|  |  | +                            EQU_CONVSIGNALJSON =
 | 
	
		
			
				|  |  | +                            (equipmentInfo.Equ_Type == EquipmentType.conveyor.ToString()) ? equipmentInfo.EquSignal_Conv.ToJson() :
 | 
	
		
			
				|  |  | +                            (equipmentInfo.Equ_Type == EquipmentType.srm.ToString()) ? equipmentInfo.EquSignal_Srm.ToJson() : equipmentInfo.EquSignal_Rgv.ToJson(),
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                            EQU_BARCODE = equipmentInfo.EquSignal_Conv.BarCodeStr
 | 
	
		
			
				|  |  | +                        });
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                Log4netHelper.Logger_PLCDATALog.InfoFormat(list.ToJson());
 | 
	
		
			
				|  |  | +                Interlocked.Exchange(ref _writeDataToLog, 0);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public class EQUIPMENTINFO
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        /// <summary>
 | 
	
		
			
				|  |  | +        /// 设备名称
 | 
	
		
			
				|  |  | +        /// </summary>
 | 
	
		
			
				|  |  | +        public string EQU_NO { get; set; }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        /// <summary>
 | 
	
		
			
				|  |  | +        /// PLC名称
 | 
	
		
			
				|  |  | +        /// </summary>
 | 
	
		
			
				|  |  | +        public string EQU_PLCNAME { get; set; }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        /// <summary>
 | 
	
		
			
				|  |  | +        /// 读取到的条码
 | 
	
		
			
				|  |  | +        /// </summary>
 | 
	
		
			
				|  |  | +        public string EQU_BARCODE { get; set; }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        /// <summary>
 | 
	
		
			
				|  |  | +        /// 报警信息
 | 
	
		
			
				|  |  | +        /// </summary>
 | 
	
		
			
				|  |  | +        public string EQU_ALARAMSMSG { get; set; }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        public string EQU_NOTES { get; set; }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        /// <summary>
 | 
	
		
			
				|  |  | +        /// 设备信号集合
 | 
	
		
			
				|  |  | +        /// </summary>
 | 
	
		
			
				|  |  | +        public string EQU_CONVSIGNALJSON { get; set; }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |