| | |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Communicator; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | |
| | | [DisallowConcurrentExecution] |
| | | public class ZXJJob : JobBase, IJob |
| | | { |
| | | public static bool W_ZXJ_Heat = true; |
| | | private readonly ITaskService _taskService; |
| | | WebSocketServer _webSocketServer; |
| | | public ZXJJob(ITaskService taskService, WebSocketServer webSocketServer) |
| | | private readonly Idt_ErrormsginfoService _ErrormsginfoService; |
| | | public ZXJJob(ITaskService taskService, WebSocketServer webSocketServer,Idt_ErrormsginfoService errormsginfoService) |
| | | { |
| | | _taskService = taskService;//注å
¥ |
| | | _webSocketServer = webSocketServer; |
| | | _ErrormsginfoService = errormsginfoService; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | |
| | | bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value); |
| | | if (flag && value != null) |
| | | { |
| | | OtherDevice device = (OtherDevice)value; |
| | | |
| | | try |
| | | { |
| | | //Example |
| | | //device.GetValue 读å |
| | | //device.SetValue åå
¥ |
| | | //_taskService.Repository; //ä»å¨å±ï¼è¿è¡æ°æ®åºè®¿é® |
| | | OHTReadData oHTReadData = new OHTReadData(); |
| | | //todo:读åè®¾å¤æ°æ®ï¼ |
| | | |
| | | |
| | | //todo:设å¤ç¶ææ°æ®åéç»å端 |
| | | |
| | | |
| | | |
| | | //WriteInfo(device.DeviceName, "infoLog"); |
| | | |
| | | //WriteDebug(device.DeviceName, "debugLog"); |
| | | //天车PLC对象 |
| | | OtherDevice TCevice = (OtherDevice)Storage.Devices.Find(v => v.DeviceName == "天车"); |
| | | if (TCevice.Communicator.IsConnected) |
| | | { |
| | | #region 读åå¤©è½¦è®¾å¤æ°æ® |
| | | OHTJob.oHTReadData.R_HeartBeat = TCevice.GetValue<DeviceDBName, bool>(DeviceDBName.R_HeartBeat); |
| | | OHTJob.oHTReadData.R_RunMode = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_RunMode); |
| | | OHTJob.oHTReadData.R_RunState = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_RunState); |
| | | OHTJob.oHTReadData.R_AlarmCode = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_AlarmCode); |
| | | OHTJob.oHTReadData.R_TaskState = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_TaskState); |
| | | OHTJob.oHTReadData.R_CurrentLine = TCevice.GetValue<DeviceDBName, int>(DeviceDBName.R_CurrentLine); |
| | | OHTJob.oHTReadData.R_CurrentColumn = TCevice.GetValue<DeviceDBName, int>(DeviceDBName.R_CurrentColumn); |
| | | OHTJob.oHTReadData.R_RiseUp_Position = TCevice.GetValue<DeviceDBName, int>(DeviceDBName.R_RiseUp_Position); |
| | | OHTJob.oHTReadData.R_TaskNumber = TCevice.GetValue<DeviceDBName, int>(DeviceDBName.R_TaskNumber); |
| | | OHTJob.oHTReadData.R_Loaded_1 = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_Loaded_1); |
| | | OHTJob.oHTReadData.R_Loaded_2 = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_Loaded_2); |
| | | OHTJob.oHTReadData.weight = TCevice.GetValue<DeviceDBName, float>(DeviceDBName.weight); |
| | | #endregion |
| | | } |
| | | else |
| | | { |
| | | throw new Exception($"天车PLCè¿æ¥å¤±è´¥"); |
| | | } |
| | | //æ´å½¢æºPLC对象 |
| | | OtherDevice device = (OtherDevice)value; |
| | | if (device.Communicator.IsConnected) |
| | | { |
| | | #region è¯»åæ´å½¢æºè®¾å¤æ°æ® |
| | | OHTJob.oHTReadData.R_ZXJ_HeartBeat = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_HeartBeat); |
| | | OHTJob.oHTReadData.R_ZXJ_isWork = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_isWork); |
| | | OHTJob.oHTReadData.R_ZXJ_RGVMode = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_RGVMode); |
| | | OHTJob.oHTReadData.R_ZXJ_TCMode = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_TCMode); |
| | | OHTJob.oHTReadData.R_ZXJ_TC_isready = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_TC_isready); |
| | | OHTJob.oHTReadData.R_TCMode_TC = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_TCMode_TC); |
| | | OHTJob.oHTReadData.R_TCMode_CC = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_TCMode_CC); |
| | | OHTJob.oHTReadData.R_HC_isReady = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_HC_isReady); |
| | | OHTJob.oHTReadData.R_HC_isReadyWork = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_HC_isReadyWork); |
| | | OHTJob.oHTReadData.R_issafe = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_issafe); |
| | | #endregion |
| | | if (W_ZXJ_Heat) |
| | | { |
| | | W_ZXJ_Heat = false; |
| | | device.SetValue(ZXJDBName.W_ZXJ_HeartBeat, W_ZXJ_Heat); |
| | | } |
| | | else |
| | | { |
| | | W_ZXJ_Heat = true; |
| | | device.SetValue(ZXJDBName.W_ZXJ_HeartBeat, W_ZXJ_Heat); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | throw new Exception($"æ´å½¢æºPLCè¿æ¥å¤±è´¥"); |
| | | } |
| | | //è§æ´æºPLC对象 |
| | | OtherDevice GZJevice = (OtherDevice)Storage.Devices.Find(v => v.DeviceName == "é³æè§æ´æº"); |
| | | if (GZJevice.Communicator.IsConnected) |
| | | { |
| | | #region 读åè§æ´æºè®¾å¤æ°æ® |
| | | OHTJob.oHTReadData.R_ZXJ_HeartBeat = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_GZJ_HeartBeat); |
| | | OHTJob.oHTReadData.R_GZJ_isWork = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_GZJ_isWork); |
| | | OHTJob.oHTReadData.R_RGVMode = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_RGVMode); |
| | | OHTJob.oHTReadData.R_CCMode = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_CCMode); |
| | | OHTJob.oHTReadData.R_TCMode = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_TCMode); |
| | | OHTJob.oHTReadData.R_DK_isready = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_DK_isready); |
| | | OHTJob.oHTReadData.R_XK_isready = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_XK_isready); |
| | | OHTJob.oHTReadData.R_TC_isready = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_TC_isready); |
| | | #endregion |
| | | } |
| | | else |
| | | { |
| | | throw new Exception($"è§æ´æºPLCè¿æ¥å¤±è´¥"); |
| | | } |
| | | //ç¶ææ°æ®åéç»å端 |
| | | string ohtData = JsonConvert.SerializeObject(OHTJob.oHTReadData); |
| | | _webSocketServer.PublishAllClientPayload(ohtData); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteError(device.DeviceName, "é误", ex); |
| | | //ç¶ææ°æ®åéç»å端 |
| | | string ohtData = JsonConvert.SerializeObject(OHTJob.oHTReadData); |
| | | _webSocketServer.PublishAllClientPayload(ohtData); |
| | | _ErrormsginfoService.UpdateErrorMsg(ex.Message, 1); |
| | | } |
| | | } |
| | | |
| | | |
| | | return Task.CompletedTask; |
| | | } |
| | | |