123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- using Quartz;
- using System.Collections.Generic;
- 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
- {
- //原子操作
- [DisallowConcurrentExecution]
- public class WCSRunJobs : IJob
- {
- public Task Execute(IJobExecutionContext context)
- {
- ThreadHelper.TaskThread(WCSWorkflow.RefreshData);
- ThreadHelper.TaskThread(WCSWorkflow.UpdateTaskCurAddress);
- ThreadHelper.TaskThread(WCSWorkflow.UpdateExceptionTask);
- //查询最新日志
- ThreadHelper.TaskThread(WCSWorkflow.RefreshLogData);
- //更新任务进程
- ThreadHelper.TaskThread(BaseWorkflow.PutTaskStep);
- //上传LED设备异常任务
- ThreadHelper.TaskThread(BaseWorkflow.UpLoadExcToWMS);
- //上传设PLC备信息
- 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 == null ? "" : equipmentInfo.EquSignal_Conv.BarCodeStr
- });
- }
- }
- Log4netHelper.Logger_ProductLog.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; }
- }
- }
|