From 9bee050d1c0b3f850553aa3b151be6fa59f39120 Mon Sep 17 00:00:00 2001 From: CZ Date: Sat, 12 Oct 2024 11:43:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=83=E8=B7=B3=E7=8A=B6=E6=80=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Service/MyTask/PlcChargerStatusTask.cs | 80 ++++++++++++++++++++++++++ Service/MyTask/PlcHeartTask.cs | 39 +++---------- 2 files changed, 87 insertions(+), 32 deletions(-) create mode 100644 Service/MyTask/PlcChargerStatusTask.cs diff --git a/Service/MyTask/PlcChargerStatusTask.cs b/Service/MyTask/PlcChargerStatusTask.cs new file mode 100644 index 0000000..3a55898 --- /dev/null +++ b/Service/MyTask/PlcChargerStatusTask.cs @@ -0,0 +1,80 @@ +using HybirdFrameworkCore.Autofac; +using HybirdFrameworkCore.Autofac.Attribute; +using HybirdFrameworkCore.AutoTask; +using log4net; +using Repository.Station; +using Service.Plc.Client; +using Service.Plc.Msg; + +namespace Service.MyTask; + +[Scope] +public class PlcChargerStatusTask: ITask +{ + private static readonly ILog Log = LogManager.GetLogger(typeof(PlcChargerStatusTask)); + private volatile bool _stop; + public string Name() + { + return "PlcChargerStatusTask"; + } + + public int Interval() + { + return 1000 * 1; + } + + public BinInfoRepository BinInfoRepository { get; set; } + + public void Handle() + { + Log.Info("Plc start write heart"); + if (PlcMgr.PlcClient != null) + { + Log.Info("Plc write connect and satrt set value"); + HostToPlc writeHostToPlc = new HostToPlc(); + + var lstBinInfo = BinInfoRepository.Query(); + writeHostToPlc.ChargingStatus02.Value = (short)(lstBinInfo[1].ChargeStatus == 1 ? 1010 : 1000); + writeHostToPlc.ChargingStatus03.Value = (short)(lstBinInfo[2].ChargeStatus == 1 ? 1010 : 1000); + writeHostToPlc.ChargingStatus04.Value = (short)(lstBinInfo[3].ChargeStatus == 1 ? 1010 : 1000); + writeHostToPlc.ChargingStatus05.Value = (short)(lstBinInfo[4].ChargeStatus == 1 ? 1010 : 1000); + writeHostToPlc.ChargingStatus06.Value = (short)(lstBinInfo[5].ChargeStatus == 1 ? 1010 : 1000); + writeHostToPlc.ChargingStatus07.Value = (short)(lstBinInfo[6].ChargeStatus == 1 ? 1010 : 1000); + writeHostToPlc.ChargingStatus08.Value = (short)(lstBinInfo[7].ChargeStatus == 1 ? 1010 : 1000); + + ushort[] lstUsort = new[] + { + (ushort)(writeHostToPlc.ChargingStatus02.Value = (short)(lstBinInfo[1].ChargeStatus == 1 ? 1010 : 1000)), + (ushort)(writeHostToPlc.ChargingStatus03.Value = (short)(lstBinInfo[2].ChargeStatus == 1 ? 1010 : 1000)), + (ushort)(writeHostToPlc.ChargingStatus04.Value = (short)(lstBinInfo[3].ChargeStatus == 1 ? 1010 : 1000)), + (ushort)(writeHostToPlc.ChargingStatus05.Value = (short)(lstBinInfo[4].ChargeStatus == 1 ? 1010 : 1000)), + (ushort)(writeHostToPlc.ChargingStatus06.Value = (short)(lstBinInfo[5].ChargeStatus == 1 ? 1010 : 1000)), + (ushort)(writeHostToPlc.ChargingStatus07.Value = (short)(lstBinInfo[6].ChargeStatus == 1 ? 1010 : 1000)), + (ushort)(writeHostToPlc.ChargingStatus08.Value = (short)(lstBinInfo[7].ChargeStatus == 1 ? 1010 : 1000)), + }; + PlcMgr.PlcClient.Write("x=3;31", lstUsort); + + + Log.Info("Plc write finish"); + } + else + { + Log.Info("Plc write not connect"); + } + } + + public bool Stoped() + { + return _stop; + } + + public void Stop() + { + _stop = true; + } + + public void ResetStop() + { + _stop = false; + } +} \ No newline at end of file diff --git a/Service/MyTask/PlcHeartTask.cs b/Service/MyTask/PlcHeartTask.cs index d12a0e6..567cb45 100644 --- a/Service/MyTask/PlcHeartTask.cs +++ b/Service/MyTask/PlcHeartTask.cs @@ -1,18 +1,17 @@ -using HybirdFrameworkCore.Autofac; -using HybirdFrameworkCore.Autofac.Attribute; +using HybirdFrameworkCore.Autofac.Attribute; using HybirdFrameworkCore.AutoTask; using log4net; -using Repository.Station; using Service.Plc.Client; using Service.Plc.Msg; namespace Service.MyTask; [Scope] -public class PlcHeartTask: ITask +public class PlcHeartTask : ITask { private static readonly ILog Log = LogManager.GetLogger(typeof(PlcHeartTask)); private volatile bool _stop; + public string Name() { return "PlcHeartTask"; @@ -23,47 +22,23 @@ public class PlcHeartTask: ITask return 1000 * 1; } - private static bool heart = false; - public BinInfoRepository BinInfoRepository { get; set; } - public void Handle() { - Log.Info("Plc start write heart"); + Log.Info("Plc Start write heart"); if (PlcMgr.PlcClient != null) { - Log.Info("Plc write connect and satrt set value"); heart = !heart; HostToPlc writeHostToPlc = new HostToPlc(); writeHostToPlc.CommunicationDiagnosis.Value = (ushort)(heart ? 1 : 0); - - var lstBinInfo = BinInfoRepository.Query(); - writeHostToPlc.ChargingStatus02.Value = (short)(lstBinInfo[1].ChargeStatus == 1 ? 1010 : 1000); - writeHostToPlc.ChargingStatus03.Value = (short)(lstBinInfo[2].ChargeStatus == 1 ? 1010 : 1000); - writeHostToPlc.ChargingStatus04.Value = (short)(lstBinInfo[3].ChargeStatus == 1 ? 1010 : 1000); - writeHostToPlc.ChargingStatus05.Value = (short)(lstBinInfo[4].ChargeStatus == 1 ? 1010 : 1000); - writeHostToPlc.ChargingStatus06.Value = (short)(lstBinInfo[5].ChargeStatus == 1 ? 1010 : 1000); - writeHostToPlc.ChargingStatus07.Value = (short)(lstBinInfo[6].ChargeStatus == 1 ? 1010 : 1000); - writeHostToPlc.ChargingStatus08.Value = (short)(lstBinInfo[7].ChargeStatus == 1 ? 1010 : 1000); - bool write0 = PlcMgr.PlcClient.WriteValue(writeHostToPlc.CommunicationDiagnosis); - bool writeCharge2 = PlcMgr.PlcClient.WriteValue(writeHostToPlc.ChargingStatus02); - bool writeCharge3 = PlcMgr.PlcClient.WriteValue(writeHostToPlc.ChargingStatus03); - bool writeCharge4 = PlcMgr.PlcClient.WriteValue(writeHostToPlc.ChargingStatus04); - bool writeCharge5 = PlcMgr.PlcClient.WriteValue(writeHostToPlc.ChargingStatus05); - bool writeCharge6 = PlcMgr.PlcClient.WriteValue(writeHostToPlc.ChargingStatus06); - bool writeCharge7 = PlcMgr.PlcClient.WriteValue(writeHostToPlc.ChargingStatus07); - bool writeCharge8 = PlcMgr.PlcClient.WriteValue(writeHostToPlc.ChargingStatus08); - - Log.Info("Plc write finish"); + Log.Info("Plc Start write heart success"); } else - { - Log.Info("Plc write not connect"); - } + Log.Info("Plc Start write heart fail"); } - + public bool Stoped() { return _stop;