New file |
| | |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Collections.Concurrent; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using GZ.Modular.Redis; |
| | | using GZ.DB.Entity.OIDATABASE; |
| | | using GZ.DB.IRepository.OIDATABASE; |
| | | using GZ.DB.Repository.OIDATABASE; |
| | | using static System.Windows.Forms.VisualStyles.VisualStyleElement; |
| | | using System.Windows.Interop; |
| | | using static System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox; |
| | | |
| | | namespace GZ.Projects.AuxAllWCS |
| | | { |
| | | public partial class AutoThread |
| | | { |
| | | |
| | | private static AutoThread _instance; |
| | | |
| | | // ç§ææé 彿°é²æ¢å¤é¨å®ä¾å |
| | | private AutoThread() { } |
| | | |
| | | public static AutoThread Instance |
| | | { |
| | | get |
| | | { |
| | | if (_instance == null) |
| | | { |
| | | _instance = new AutoThread(); |
| | | } |
| | | return _instance; |
| | | } |
| | | } |
| | | |
| | | // 线ç¨å®å
¨çå§æç¼å |
| | | private static readonly ConcurrentDictionary<string, Delegate> _methodCache = new ConcurrentDictionary<string, Delegate>(); |
| | | |
| | | // æ¹æ³æ§è¡å¨ |
| | | public static object InvokeMethod(object instance, string methodName, params object[] args) |
| | | { |
| | | var cacheKey = $"{instance.GetType().FullName}_{methodName}"; |
| | | |
| | | if (!_methodCache.TryGetValue(cacheKey, out var methodDelegate)) |
| | | { |
| | | // è·åæ¹æ³ä¿¡æ¯ |
| | | var methodInfo = instance.GetType().GetMethod( |
| | | methodName, |
| | | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); |
| | | |
| | | if (methodInfo == null) |
| | | throw new MissingMethodException($"Method {methodName} not found"); |
| | | |
| | | // åå»ºå§æå¹¶ç¼å |
| | | methodDelegate = Delegate.CreateDelegate( |
| | | GetDelegateType(methodInfo), |
| | | instance, |
| | | methodInfo); |
| | | |
| | | _methodCache.TryAdd(cacheKey, methodDelegate); |
| | | } |
| | | |
| | | // æ§è¡å§æ |
| | | return methodDelegate.DynamicInvoke(args); |
| | | } |
| | | |
| | | // æ ¹æ®æ¹æ³ç¾åçæå¯¹åºçå§æç±»å |
| | | private static Type GetDelegateType(MethodInfo methodInfo) |
| | | { |
| | | var parameterTypes = methodInfo.GetParameters() |
| | | .Select(p => p.ParameterType) |
| | | .ToList(); |
| | | |
| | | if (methodInfo.ReturnType == typeof(void)) |
| | | { |
| | | return System.Linq.Expressions.Expression.GetActionType(parameterTypes.ToArray()); |
| | | } |
| | | else |
| | | { |
| | | parameterTypes.Add(methodInfo.ReturnType); |
| | | return System.Linq.Expressions.Expression.GetFuncType(parameterTypes.ToArray()); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// é
ç½®åå§åã |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | /// <param name="action"></param> |
| | | public void ThreadSettingInit(Tag tag, Action action) |
| | | { |
| | | Console.WriteLine("åå§åé
ç½® çº¿ç¨ run " + tag.Global.SettingsOver); |
| | | if (tag.Global.SettingsOver == 0) |
| | | { |
| | | action?.Invoke(); |
| | | tag.Global.SettingsOver = 1; |
| | | } |
| | | else if (Settings.deviceInfos.Count == 0) |
| | | { |
| | | tag.Global.SettingsOver = 0; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ·é¡º1 ä¿¡å·å¤ç |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void ThreadJS1(Tag tag) |
| | | { |
| | | Console.WriteLine($"ThreadJS1 æ·é¡º1 ä¿¡å·å¤ç =================> "); |
| | | var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 2 && x.deviceName == "Jsæ·é¡º1"); |
| | | |
| | | if (VERX != null) |
| | | { |
| | | if (tag.Js1.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 1) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 4, |
| | | endBit = VERX.location[0] |
| | | })); |
| | | LogHelper.Info($"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | //tag.Js1.D1212_LAST = 1; |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1212_LAST", "1", out string msg); |
| | | } |
| | | } |
| | | if (tag.Js1.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 0) |
| | | { |
| | | //tag.Js1.D1212_LAST = 0; |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1212_LAST", "0", out string msg); |
| | | } |
| | | if (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 4, |
| | | endBit = VERX.location[1] |
| | | })); |
| | | LogHelper.Info($"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | //tag.Js1.D1213_LAST = 1; |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1213_LAST", "1", out string msg); |
| | | } |
| | | } |
| | | if (tag.Js1.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 0) |
| | | { |
| | | //tag.Js1.D1213_LAST = 0; |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1213_LAST", "0", out string msg); |
| | | } |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// æ·é¡º2 ä¿¡å·å¤ç |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void ThreadJS2(Tag tag) |
| | | { |
| | | Console.WriteLine($"ThreadJS2 æ·é¡º2 ä¿¡å·å¤ç =================> "); |
| | | var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 2 && x.deviceName == "Jsæ·é¡º2"); |
| | | |
| | | if (VERX != null) |
| | | { |
| | | if (tag.Js2.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 1) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 4, |
| | | endBit = VERX.location[0] |
| | | })); |
| | | LogHelper.Info($"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | //tag.Js2.D1212_LAST = 1; |
| | | |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1212_LAST", "1", out string msg); |
| | | } |
| | | } |
| | | if (tag.Js2.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 0) |
| | | { |
| | | //tag.Js2.D1212_LAST = 0; |
| | | |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1212_LAST", "0", out string msg); |
| | | } |
| | | if (tag.Js2.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 1) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 4, |
| | | endBit = VERX.location[1] |
| | | })); |
| | | LogHelper.Info($"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | //tag.Js2.D1213_LAST = 1; |
| | | |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1213_LAST", "1", out string msg); |
| | | } |
| | | } |
| | | if (tag.Js2.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1213, 2) == 0) |
| | | { |
| | | //tag.Js2.D1213_LAST = 0; |
| | | |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1213_LAST", "0", out string msg); |
| | | } |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// ç»´å¸å°1 å·¦ |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void Threadwxr1L(Tag tag) |
| | | { |
| | | Console.WriteLine($"Threadwxr1L ç»´å¸å°1 å·¦ =================> "); |
| | | var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains("1")); |
| | | |
| | | if (VERX != null) |
| | | { |
| | | if (tag.wxr1.R44 && !tag.wxr1.R44_LAST && tag.wxr1.R10) |
| | | { |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode)) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 1, |
| | | cntrCode = traycode, |
| | | startBit = VERX.location[0], |
| | | endBit = "" |
| | | })); |
| | | LogHelper.Info($"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | tag.wxr1.R44_LAST = true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //TaskRepository ts = new TaskRepository(); |
| | | if (tag.wxr1.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã |
| | | { |
| | | if (tag.wxr1.R10) |
| | | { |
| | | tag.wxr1.R10_LAST = false; |
| | | } |
| | | else |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode)) |
| | | { |
| | | //䏿¥æ ¡éªã |
| | | ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/202", requestJson); |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/202", JsonConvert.SerializeObject(new |
| | | { |
| | | sceneType = 1, |
| | | cntrCode = traycode, |
| | | })); |
| | | if (str.Contains("true")) |
| | | { |
| | | //Conn.é»è®¤Redis.SetValue("ç»´å¸å°æè1.R10", "true", "ç»´å¸å°æè1Queue"); |
| | | tag.wxr1.R10 = true; |
| | | tag.wxr1.R44_LAST = false; |
| | | } |
| | | else |
| | | { |
| | | //æ¥è¦ã |
| | | } |
| | | } |
| | | else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç»´å¸å°1 å³ |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void Threadwxr1R(Tag tag) |
| | | { |
| | | Console.WriteLine($"Threadwxr1R ç»´å¸å°1 å³ =================> "); |
| | | var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains("1")); |
| | | |
| | | if (VERX != null) |
| | | { |
| | | if (tag.wxr1.R46 && !tag.wxr1.R46_LAST && tag.wxr1.R11) |
| | | { |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode)) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 1, |
| | | cntrCode = traycode, |
| | | startBit = VERX.location[1], |
| | | endBit = "" |
| | | })); |
| | | LogHelper.Info($"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | tag.wxr1.R46_LAST = true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (tag.wxr1.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã |
| | | { |
| | | if (tag.wxr1.R11) |
| | | { |
| | | tag.wxr1.R11_LAST = false; |
| | | } |
| | | else |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode)) |
| | | { |
| | | //䏿¥æ ¡éªã |
| | | ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/202", requestJson); |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/202", JsonConvert.SerializeObject(new |
| | | { |
| | | sceneType = 1, |
| | | cntrCode = traycode, |
| | | })); |
| | | if (str.Contains("true")) |
| | | { |
| | | //Conn.é»è®¤Redis.SetValue("ç»´å¸å°æè1.R10", "true", "ç»´å¸å°æè1Queue"); |
| | | tag.wxr1.R11 = true; |
| | | tag.wxr1.R46_LAST = false; |
| | | } |
| | | else |
| | | { |
| | | //æ¥è¦ã |
| | | } |
| | | } |
| | | else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç»´å¸å°2 å·¦ |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void Threadwxr2L(Tag tag) |
| | | { |
| | | Console.WriteLine($"Threadwxr2L ç»´å¸å°2 å·¦ =================> "); |
| | | var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains("2")); |
| | | |
| | | if (VERX != null) |
| | | { |
| | | if (tag.wxr2.R44 && !tag.wxr2.R44_LAST && tag.wxr2.R10) |
| | | { |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode)) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 1, |
| | | cntrCode = traycode, |
| | | startBit = VERX.location[0], |
| | | endBit = "" |
| | | })); |
| | | LogHelper.Info($"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | tag.wxr2.R44_LAST = true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (tag.wxr2.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã |
| | | { |
| | | if (tag.wxr2.R10) |
| | | { |
| | | tag.wxr2.R10_LAST = false; |
| | | } |
| | | else |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode)) |
| | | { |
| | | //䏿¥æ ¡éªã |
| | | ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/202", requestJson); |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/202", JsonConvert.SerializeObject(new |
| | | { |
| | | sceneType = 1, |
| | | cntrCode = traycode, |
| | | })); |
| | | if (str.Contains("true")) |
| | | { |
| | | //Conn.é»è®¤Redis.SetValue("ç»´å¸å°æè1.R10", "true", "ç»´å¸å°æè1Queue"); |
| | | tag.wxr2.R10 = true; |
| | | tag.wxr2.R44_LAST = false; |
| | | } |
| | | else |
| | | { |
| | | //æ¥è¦ã |
| | | } |
| | | } |
| | | else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç»´å¸å°2 å³ |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void Threadwxr2R(Tag tag) |
| | | { |
| | | Console.WriteLine($"Threadwxr2R ç»´å¸å°2 å³ =================> "); |
| | | |
| | | var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains("2")); |
| | | |
| | | if (VERX != null) |
| | | { |
| | | if (tag.wxr2.R46 && !tag.wxr2.R46_LAST && tag.wxr2.R11) |
| | | { |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode)) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 1, |
| | | cntrCode = traycode, |
| | | startBit = VERX.location[1], |
| | | endBit = "" |
| | | })); |
| | | LogHelper.Info($"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | tag.wxr2.R46_LAST = true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | TcpServer.TcpServerSend(VERX.deviceNo[2], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (tag.wxr2.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã |
| | | { |
| | | if (tag.wxr2.R11) |
| | | { |
| | | tag.wxr2.R11_LAST = false; |
| | | } |
| | | else |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode)) |
| | | { |
| | | //䏿¥æ ¡éªã |
| | | ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/202", requestJson); |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/202", JsonConvert.SerializeObject(new |
| | | { |
| | | sceneType = 1, |
| | | cntrCode = traycode, |
| | | })); |
| | | if (str.Contains("true")) |
| | | { |
| | | //Conn.é»è®¤Redis.SetValue("ç»´å¸å°æè1.R10", "true", "ç»´å¸å°æè1Queue"); |
| | | tag.wxr2.R11 = true; |
| | | tag.wxr2.R46_LAST = false; |
| | | } |
| | | else |
| | | { |
| | | //æ¥è¦ã |
| | | } |
| | | } |
| | | else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | public void ThreadTaskRun(Tag tag, Func<TaskEntity, bool> action) |
| | | { |
| | | Console.WriteLine($"ThreadTaskRun ä»»å¡ä¸å =================> "); |
| | | LogHelper.Info("ThreadTaskRun ä»»å¡ä¸å"); |
| | | |
| | | ITaskRepository taskservice = new TaskRepository(); |
| | | try |
| | | { |
| | | LogHelper.Info("ä»»å¡ä¸å ARG ä»»å¡ è¿å
¥"); |
| | | #region AGVä»»å¡ä¸åã |
| | | |
| | | var tklist = taskservice.FindList(x => x.S_B_STATE == "æªæ§è¡" && x.S_WORK_MODE == "AGV"); |
| | | if (tklist.Any()) |
| | | foreach (var tk in tklist.GroupBy(item => |
| | | { |
| | | var ticks = item.T_CREATE.Ticks; |
| | | return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute)); |
| | | }).OrderBy(x => x.Key)) |
| | | { |
| | | var ts = tk.OrderByDescending(x => x.N_PRIORITY).ToList(); |
| | | foreach (var t in ts) |
| | | { |
| | | var b = false; |
| | | b = action?.Invoke(t) ?? false; //new ViewModel().RunTask(t); |
| | | |
| | | if (b) |
| | | { |
| | | t.S_B_STATE = "å·²æ¨é"; |
| | | taskservice.Update(t); |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | //foreach (var tk in tklist.GroupBy(item => |
| | | //{ |
| | | // var ticks = item.T_CREATE.Ticks; |
| | | // return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute)); |
| | | //}).OrderBy(x => x.Key)) |
| | | //if (tklist.Any()) |
| | | //{ |
| | | |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Info(ex.Message + ex.StackTrace); |
| | | } |
| | | try |
| | | { |
| | | #region Rgv |
| | | |
| | | LogHelper.Info($"æ¥çRGV çµéï¼ã{tag.RGV.Rå½åçµé}ã å
çµç¶æï¼ã{tag.RGV.Rå
çµç¶æ}ã æ
é代ç ï¼ã{tag.RGV.RgvrunError}ã"); |
| | | |
| | | if (tag.RGV.taskend == 125) |
| | | { |
| | | System.Threading.Thread.Sleep(3000); |
| | | return; |
| | | } |
| | | LogHelper.Info("ä»»å¡ä¸å Rgv ä»»å¡ è¿å
¥"); |
| | | |
| | | var task1Isrun = false; |
| | | if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver != 1) |
| | | { |
| | | task1Isrun = true; |
| | | //if (tag.RGV.bit1taskOver_LAST == 1) |
| | | // RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg); |
| | | } |
| | | var task2Isrun = false; |
| | | if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver != 1) |
| | | { |
| | | task2Isrun = true; |
| | | //if (tag.RGV.bit2taskOver_LAST == 1) |
| | | // RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg); |
| | | } |
| | | if (task1Isrun || task2Isrun) |
| | | { |
| | | string mes = ""; |
| | | if (task1Isrun) |
| | | mes += tag.RGV.ReadTask1No + "æ§è¡ä¸..."; |
| | | if (task2Isrun) |
| | | mes += tag.RGV.ReadTask2No + "æ§è¡ä¸..."; |
| | | LogHelper.Info($"{mes} ä¸è½ä¸åæ°ä»»å¡ã"); |
| | | System.Threading.Thread.Sleep(3000); |
| | | return; |
| | | } |
| | | var thisOver = 0; |
| | | TaskEntity task1 = null; |
| | | TaskEntity task2 = null; |
| | | |
| | | LogHelper.Info($"æ¥çRGV 1å·¥ä½ä»»å¡ã"); |
| | | if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver == 1) |
| | | { |
| | | var taskno = tag.RGV.ReadTask1No; |
| | | LogHelper.Info($"RGV 1å·¥ä½ä»»å¡{tag.RGV.ReadTask1No}"); |
| | | string tno = "TN" + (DateTime.Now.ToString("yy")) + ((taskno.ToString()).PadLeft(8, '0')); |
| | | task1 = taskservice.FindEntity(x => x.S_TASK_NO == tno); |
| | | |
| | | LogHelper.Info($"RGV 1å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task1)}.bit1taskOver_LASTï¼{tag.RGV.bit1taskOver_LAST}"); |
| | | if (tag.RGV.bit1taskOver_LAST == 0 && task1 != null) |
| | | { |
| | | if (task1.S_B_STATE != "宿") |
| | | { |
| | | thisOver = 1; |
| | | if (task1.S_B_STATE == "åè´§å®æ") |
| | | { |
| | | task1.S_B_STATE = "宿"; |
| | | tag.RGV.ReadTask1No = 0; |
| | | } |
| | | else |
| | | { |
| | | task1.S_B_STATE = "åè´§å®æ"; |
| | | } |
| | | tag.RGV.bit1taskOver = 0; |
| | | LogHelper.Info($"RGV 1å·¥ä½ä»»å¡{task1.S_TASK_NO} ç¶æåæ¢ä¸º{task1.S_B_STATE}"); |
| | | //tag.RGV.bit1taskOver_LAST = 1; |
| | | RedisHelper.Add($"RGV.bit1taskOver_LAST", "1", out string msg); |
| | | LogHelper.Info($"RGV 1å·¥ä½ä»»å¡åå¤ç"); |
| | | taskservice.Update(task1); |
| | | LogHelper.Info($"RGV 1å·¥ä½ä»»å¡æ´æ°ã"); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("RGV1å·¥ä½ä»»å¡å·²ç»å®æã"); |
| | | } |
| | | } |
| | | } |
| | | else if (tag.RGV.ReadTask1No == 0) |
| | | { |
| | | LogHelper.Info($"RGV 1工使²¡æä»»å¡ã"); |
| | | } |
| | | |
| | | LogHelper.Info($"æ¥çRGV 2å·¥ä½ä»»å¡ã"); |
| | | if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver == 1) |
| | | { |
| | | var taskno = tag.RGV.ReadTask2No; |
| | | LogHelper.Info($"RGV 2å·¥ä½ä»»å¡{tag.RGV.ReadTask2No}"); |
| | | string tno = "TN" + (DateTime.Now.ToString("yy")) + ((taskno.ToString()).PadLeft(8, '0')); |
| | | task2 = taskservice.FindEntity(x => x.S_TASK_NO == tno); |
| | | |
| | | LogHelper.Info($"RGV2å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task2)}.bit2taskOver_LASTï¼{tag.RGV.bit2taskOver_LAST}"); |
| | | if (tag.RGV.bit2taskOver_LAST == 0 && task2 != null) |
| | | { |
| | | if (task2.S_B_STATE != "宿") |
| | | { |
| | | thisOver = 2; |
| | | if (task2.S_B_STATE == "åè´§å®æ") |
| | | { |
| | | task2.S_B_STATE = "宿"; |
| | | tag.RGV.ReadTask2No = 0; |
| | | } |
| | | else |
| | | { |
| | | task2.S_B_STATE = "åè´§å®æ"; |
| | | } |
| | | tag.RGV.bit2taskOver = 0; |
| | | LogHelper.Info($"RGV 2å·¥ä½ä»»å¡{task2.S_TASK_NO} ç¶æåæ¢ä¸º{task2.S_B_STATE}"); |
| | | RedisHelper.Add($"RGV.bit2taskOver_LAST", "1", out string msg); |
| | | LogHelper.Info($"RGV 2å·¥ä½ä»»å¡åå¤ç"); |
| | | taskservice.Update(task2); |
| | | LogHelper.Info($"RGV 2å·¥ä½ä»»å¡æ´æ°ã"); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("RGV2å·¥ä½ä»»å¡å·²ç»å®æã"); |
| | | } |
| | | } |
| | | } |
| | | else if (tag.RGV.ReadTask2No == 0) |
| | | { |
| | | LogHelper.Info($"RGV 2工使²¡æä»»å¡ã"); |
| | | } |
| | | |
| | | |
| | | |
| | | //if (thisOver > 0) |
| | | //{ |
| | | // var v2 = RedisHelper.Get<WriteGroupEntity>("RGVQueue", out string rev); |
| | | // if (v2 != null) |
| | | // { |
| | | // LogHelper.Info($"RGVQueue 读å°ç»æ-{JsonConvert.SerializeObject(v2)} \n ä¸ååè¿è¡æ¸
é¤ã"); |
| | | // var b = RedisHelper.Remove("RGVQueue", out rev); |
| | | // } |
| | | //} |
| | | |
| | | ///1 æè´§ å°±2 åã 1 没货 å°±2 å¸è´§ï¼ é½æè´§ å°±1å¸è´§ã 齿²¡è´§ å°±1å¸ |
| | | var tklist = taskservice.FindList(x => x.S_B_STATE == "æªæ§è¡" && x.S_WORK_MODE == "RGV").OrderBy(x => x.T_CREATE).ToList(); |
| | | if (task1 != null && task1.S_B_STATE != "宿") //1æä»»å¡ |
| | | { |
| | | if (task2 != null && task2.S_B_STATE != "宿")// 1 æä»»å¡ 2 æä»»å¡ã |
| | | { |
| | | LogHelper.Info($"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 乿任å¡{task2.S_TASK_NO}ã å¼å§å·¥ä½1 å¸è´§ã"); |
| | | tag.RGV.workMod = 1; |
| | | tag.RGV.taskmod = 2; |
| | | tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4)); |
| | | tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC); |
| | | System.Threading.Thread.Sleep(750); |
| | | //RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg); |
| | | //tag.RGV.taskend = 125; |
| | | //Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue"); |
| | | |
| | | LogHelper.Info($"{task1.S_TASK_NO}> bit1taskOver_LAST å 0"); |
| | | RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg); |
| | | LogHelper.Info($"{task1.S_TASK_NO}> end å 125"); |
| | | Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | } |
| | | else //1æä»»å¡ 2 没任å¡ã |
| | | { |
| | | |
| | | LogHelper.Info($"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡ã"); |
| | | |
| | | var leftSide = new List<string> { "1023", "1020" }; |
| | | var RightSide = new List<string> { "1002", "1008", "1010", "1016" }; |
| | | bool creT2 = false; |
| | | |
| | | // 2å· ä¼å
ç» 1020 1008 1016 |
| | | var t2 = tklist.OrderBy(x => x.T_CREATE).ToList().Find(x => x.S_START_LOC == "1020" || x.S_START_LOC == "1008" || x.S_START_LOC == "1016"); |
| | | if (t2 != null) |
| | | { |
| | | LogHelper.Info($"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾1020 1008 1016åè´§ä»»å¡{t2.S_TASK_NO}ã"); |
| | | tag.RGV.workMod = 2; |
| | | tag.RGV.taskmod = 1; |
| | | tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4)); |
| | | tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC); |
| | | t2.S_B_STATE = "å·²æ¨é"; |
| | | taskservice.Update(t2); |
| | | creT2 = true; |
| | | System.Threading.Thread.Sleep(750); |
| | | LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å 0"); |
| | | RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg); |
| | | LogHelper.Info($"{t2.S_TASK_NO}> end å 125"); |
| | | Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | } |
| | | ////2 妿æåä¾§åè´§ä»»å¡ãå°±åãæ²¡æ |
| | | //else if (leftSide.Contains(task1.S_START_LOC)) |
| | | //{ |
| | | // leftSide.Remove(task1.S_START_LOC); |
| | | // var lsde = leftSide.FirstOrDefault(); |
| | | // t2 = tklist.Find(x => x.S_START_LOC == lsde && x.S_END_LOC != "1017"); |
| | | // if (t2 != null) //åä¾§åè´§ä»»å¡ã |
| | | // { |
| | | // LogHelper.Info($"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡{t2.S_TASK_NO}ã"); |
| | | // tag.RGV.workMod = 2; |
| | | // tag.RGV.taskmod = 1; |
| | | // tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4)); |
| | | // tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC); |
| | | // t2.S_B_STATE = "å·²æ¨é"; |
| | | // taskservice.Update(t2); |
| | | // creT2 = true; |
| | | // System.Threading.Thread.Sleep(750); |
| | | // LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å 0"); |
| | | // RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg); |
| | | // LogHelper.Info($"{t2.S_TASK_NO}> end å 125"); |
| | | // Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | // } |
| | | //} |
| | | //else if (RightSide.Contains(task1.S_START_LOC)) |
| | | //{ |
| | | // RightSide.Remove(task1.S_START_LOC); |
| | | // t2 = tklist.Find(x => RightSide.Contains(x.S_START_LOC) && x.S_END_LOC != "1017"); |
| | | // if (t2 != null) //åä¾§åè´§ä»»å¡ã |
| | | // { |
| | | // LogHelper.Info($"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§ 1002,1010 åè´§ä»»å¡{t2.S_TASK_NO}ã"); |
| | | // tag.RGV.workMod = 2; |
| | | // tag.RGV.taskmod = 1; |
| | | // tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4)); |
| | | // tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC); |
| | | // t2.S_B_STATE = "å·²æ¨é"; |
| | | // taskservice.Update(t2); |
| | | // creT2 = true; |
| | | // System.Threading.Thread.Sleep(750); |
| | | // LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å 125"); |
| | | // RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg); |
| | | // LogHelper.Info($"{t2.S_TASK_NO}> end å 125"); |
| | | // Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | // } |
| | | //} |
| | | else //1 ç´æ¥å¸è´§ã |
| | | //if (!creT2) |
| | | { |
| | | LogHelper.Info($"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã 没æåä¾§åè´§ä»»å¡ 1å·¥ä½å¸è´§ã"); |
| | | tag.RGV.workMod = 1; |
| | | tag.RGV.taskmod = 2; |
| | | tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4)); |
| | | tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC); |
| | | System.Threading.Thread.Sleep(750); |
| | | LogHelper.Info($"{task1.S_TASK_NO}> bit1taskOver_LAST å 0"); |
| | | RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg); |
| | | LogHelper.Info($"{task1.S_TASK_NO}> taskend å 0"); |
| | | Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (task2 != null && task2.S_B_STATE != "宿")// 1 æ²¡ä»»å¡ 2 æä»»å¡ã |
| | | { |
| | | LogHelper.Info($"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 æä»»å¡{task2.S_TASK_NO}ãå·¥ä½2å¸è´§ãã"); |
| | | //2 å¸è´§ã |
| | | tag.RGV.workMod = 2; |
| | | tag.RGV.taskmod = 2; |
| | | tag.RGV.taskno2 = Convert.ToUInt32(task2.S_TASK_NO.Substring(4)); |
| | | tag.RGV.task2do = Convert.ToUInt16(task2.S_END_LOC); |
| | | System.Threading.Thread.Sleep(750); |
| | | LogHelper.Info($"{task2.S_TASK_NO}> bit2taskOver_LAST å 0"); |
| | | RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg); |
| | | //tag.RGV.taskend = 125; |
| | | LogHelper.Info($"{task2.S_TASK_NO}> taskend å125"); |
| | | Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | } |
| | | else if (tklist.Any()) //1mei ä»»å¡ 2 没任å¡ã |
| | | { |
| | | LogHelper.Info($"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 乿²¡ä»»å¡ãä¼å
1å·¥ä½ç»ç¹1017ä»»å¡ãã"); |
| | | //ãä¸ 1017ä»»å¡ ç»1å·å·¥ä½ã |
| | | //var lss = tklist.Take(2).ToList(); |
| | | var e1017first = tklist.Find(x => x.S_START_LOC == "1002" || x.S_START_LOC == "1010" || x.S_START_LOC == "1023"); |
| | | //if (e1017first != null) |
| | | //{ |
| | | // e1017first = tklist.FirstOrDefault(); |
| | | //} |
| | | if (e1017first != null) |
| | | { |
| | | LogHelper.Info($"æ¥çRGV1 ä»»å¡å·¥ä½2 没任å¡ã 1002 1010 1023åè´§ä»»å¡{e1017first.S_TASK_NO}ã"); |
| | | tag.RGV.workMod = 1; |
| | | tag.RGV.taskmod = 1; |
| | | uint tno = Convert.ToUInt32(e1017first.S_TASK_NO.Substring(4)); |
| | | LogHelper.Info($"{e1017first.S_TASK_NO}> 转æ¢åä»»å¡å·{tno} å¼å§åå
¥ã"); |
| | | tag.RGV.taskno1 = tno; |
| | | LogHelper.Info($"{e1017first.S_TASK_NO}>å¼å§åå
¥ task1do>>{e1017first.S_START_LOC}ã"); |
| | | tag.RGV.task1do = Convert.ToUInt16(e1017first.S_START_LOC); |
| | | LogHelper.Info($"{e1017first.S_TASK_NO}> æ´æ°ä»»å¡ã"); |
| | | e1017first.S_B_STATE = "å·²æ¨é"; |
| | | taskservice.Update(e1017first); |
| | | System.Threading.Thread.Sleep(750); |
| | | LogHelper.Info($"{e1017first.S_TASK_NO}> bit1taskOver_LAST å0"); |
| | | RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg); |
| | | LogHelper.Info($"{e1017first.S_TASK_NO}> taskend å125"); |
| | | //tag.RGV.taskend=125 |
| | | Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | } |
| | | else |
| | | { |
| | | var t2 = tklist.OrderBy(x => x.T_CREATE).ToList().Find(x => x.S_START_LOC == "1020" || x.S_START_LOC == "1008" || x.S_START_LOC == "1016"); |
| | | if (tklist != null) |
| | | { |
| | | LogHelper.Info($"æ¥çRGV1 没任å¡å·¥ä½2 没任å¡ã æ¾1020 1008 1016åè´§ä»»å¡{t2.S_TASK_NO}ã"); |
| | | tag.RGV.workMod = 2; |
| | | tag.RGV.taskmod = 1; |
| | | tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4)); |
| | | tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC); |
| | | t2.S_B_STATE = "å·²æ¨é"; |
| | | taskservice.Update(t2); |
| | | System.Threading.Thread.Sleep(750); |
| | | LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å 0"); |
| | | RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg); |
| | | LogHelper.Info($"{t2.S_TASK_NO}> end å 125"); |
| | | Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | LogHelper.Info($"rgv å¤ç宿ãtaskend 125"); |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Info(ex.Message + ex.StackTrace); |
| | | } |
| | | } |
| | | |
| | | |
| | | public void ThreadGrats(Tag tag, Action<HaiKangOrderInfo> continueTask) |
| | | { |
| | | Console.WriteLine($"ThreadGrats å
æ
å¤ç =================> "); |
| | | var taskCOdes = new List<string> { "Sarrive", "Srelease", "Earrive", "Erelease" }; |
| | | TaskActRepository taskActRepository = new TaskActRepository(); |
| | | TaskRepository taskRepository = new TaskRepository(); |
| | | var requires = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0); |
| | | foreach (var item in requires) |
| | | { |
| | | var tin = taskCOdes.IndexOf(item.S_ACTION_CODE); |
| | | if (tin == -1) |
| | | { |
| | | item.N_CREATEMETHOD = -1; |
| | | taskActRepository.Update(item); |
| | | continue; |
| | | } |
| | | //var task = taskRepository.FindEntity(x => x.S_TASK_NO == item.S_TASK_NO); |
| | | string loc = ""; |
| | | if (tin < 2) |
| | | { |
| | | loc = item.S_START_LOC; |
| | | } |
| | | else |
| | | { |
| | | loc = item.S_END_LOC; |
| | | } |
| | | if (loc == null) continue; else loc = loc.Trim(); |
| | | bool goin = tin % 2 == 0; |
| | | bool continuuuuu = false; |
| | | var dev = Settings.deviceInfos.Find(x => x.location.Contains(loc)); |
| | | if (dev != null) |
| | | { |
| | | var V = dev.location.ToList().FindIndex(x => x == loc) == 0; |
| | | //è½¦èµ°äº å¼å
æ
|
| | | if (!goin) |
| | | { |
| | | if (dev.deviceType == 1) |
| | | { |
| | | LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "å³")} å
æ
{(goin ? "å
³é" : "å¼å¯")} ç³è¯·ã" + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "R02" : "R04"), "true", dev.deviceName + "Queue")); |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + "." + (V ? "R02" : "R04"), "true", dev.deviceName + "Queue"); |
| | | |
| | | } |
| | | else if (dev.deviceType == 2) |
| | | { |
| | | LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "å³")} å
æ
{(goin ? "å
³é" : "å¼å¯")} ç³è¯·ã" + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "D1222" : "D1223"), "1", dev.deviceName + "Queue")); |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + "." + (V ? "D1222" : "D1223"), "1", dev.deviceName + "Queue"); |
| | | } |
| | | |
| | | item.N_CREATEMETHOD = 1; |
| | | taskActRepository.Update(item); |
| | | } |
| | | //车è¦è¿å
¥äº¤äºã |
| | | else |
| | | { |
| | | if (dev.deviceType == 1) |
| | | { |
| | | var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + "." + (V ? "R50" : "R52"));//读å
³éç¶æ |
| | | if (tf?.ToLower() == "true") |
| | | { |
| | | LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "å³")} å
æ
{(goin ? "å
³é" : "å¼å¯")} ç³è¯·ã å·²ç»å
³éï¼"); |
| | | continuuuuu = true; |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "å³")} å
æ
{(goin ? "å
³é" : "å¼å¯")} ç³è¯·ã" + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "R01" : "R03"), "true", dev.deviceName + "Queue")); |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + "." + (V ? "R01" : "R03"), "true", dev.deviceName + "Queue"); |
| | | } |
| | | |
| | | } |
| | | else if (dev.deviceType == 2) |
| | | { |
| | | var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + ".D1202"); |
| | | int numm = int.Parse(string.IsNullOrEmpty(tf) ? "0" : tf); |
| | | if (TcpServer.GetBitdata(numm, (V ? 0 : 1)) == 1) |
| | | { |
| | | LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "å³")} å
æ
{(goin ? "å
³é" : "å¼å¯")} ç³è¯·ã å·²ç»å
³éï¼"); |
| | | continuuuuu = true; |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "å³")} å
æ
{(goin ? "å
³é" : "å¼å¯")} ç³è¯·ã" + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "D1220" : "D1221"), dev.deviceName + "Queue")); |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + "." + (V ? "D1220" : "D1221"), "1", dev.deviceName + "Queue"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | if (continuuuuu) |
| | | { |
| | | LogHelper.Info($"{item.S_TASK_NO}{item.S_ACTION_CODE} 车è¾åéç»§ç»ä»»å¡ï¼"); |
| | | continueTask?.Invoke(new HaiKangOrderInfo |
| | | { |
| | | reqCode = item.S_ID.Replace("-", ""), |
| | | taskCode = item.S_TASK_NO |
| | | }); |
| | | item.N_CREATEMETHOD = 1; |
| | | taskActRepository.Update(item); |
| | | } |
| | | } |
| | | System.Threading.Thread.Sleep(3000); |
| | | //éç½®ä¿¡å· |
| | | foreach (var dev in Settings.deviceInfos.FindAll(x => x.deviceType == 2)) |
| | | { |
| | | var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + ".D1202"); |
| | | int numm = int.Parse(string.IsNullOrEmpty(tf) ? "0" : tf); |
| | | if (TcpServer.GetBitdata(numm, 0) == 0) |
| | | { |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + ".D1220", "0", dev.deviceName + "Queue"); |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + ".D1222", "0", dev.deviceName + "Queue"); |
| | | } |
| | | else if (TcpServer.GetBitdata(numm, 1) == 0) |
| | | { |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + ".D1221", "0", dev.deviceName + "Queue"); |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + ".D1223", "0", dev.deviceName + "Queue"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 1020 1023空æ¡ä¸çº¿ |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void ThreadEdown(Tag tag) |
| | | { |
| | | Console.WriteLine($"ThreadEdown 20 23 = ç©ºä¸æ£æµ =================> "); |
| | | TaskRepository taskRepository = new TaskRepository(); |
| | | foreach (var Bssx in new string[] { "1020", "1023" }) |
| | | { |
| | | var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.RtaskState"), typeof(System.UInt16)); |
| | | var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.RtaskState_LAST"), typeof(System.UInt16)); |
| | | var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.Ræçç "), typeof(System.String)); |
| | | Console.WriteLine($"{Bssx} ç©ºä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç } "); |
| | | if (RtaskState == 3 && RtaskState_LAST == 0) |
| | | { |
| | | var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != "宿" && x.S_B_STATE != "忶"); |
| | | string msg = ""; |
| | | if (task != null) |
| | | { |
| | | Console.WriteLine($"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | LogHelper.Info($"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | continue; |
| | | } |
| | | try |
| | | { |
| | | var listtep = new List<string>(); |
| | | if (Bssx == "1020") |
| | | { |
| | | if (tag.SF䏿ä½.RArrive1003 == 1) |
| | | { |
| | | listtep = new List<string> { "1012", "1004" }; |
| | | } |
| | | else |
| | | { |
| | | listtep = new List<string> { "1004", "1012" }; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (tag.SF䏿ä½.RArrive1005 == 1) |
| | | { |
| | | listtep = new List<string> { "1014", "1006" }; |
| | | } |
| | | else |
| | | { |
| | | listtep = new List<string> { "1006", "1014" }; |
| | | } |
| | | } |
| | | |
| | | foreach (var item in listtep)//(Bssx == "1020" ? new string[] { "1004", "1012" } : new string[] { "1006", "1014" })) |
| | | { |
| | | var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²"), typeof(System.UInt16)); |
| | | var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²_LAST"), typeof(System.UInt16)); |
| | | if (R5 == 5 && R5空é²_LAST == 0 && task == null) |
| | | { |
| | | task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != "宿" && x.S_B_STATE != "忶"); |
| | | msg = ""; |
| | | if (task != null) |
| | | { |
| | | Console.WriteLine($" {item}ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | LogHelper.Info($" {item}ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | continue; |
| | | } |
| | | |
| | | var b = TaskProcess.CreateTask("", Bssx, item, "空ä¸RGV", 5, new List<string> { Ræçç }, "RGV"); |
| | | if (b) |
| | | { |
| | | LogHelper.Debug($"è¾é线RGV空æä»»å¡ from:{Bssx}>to {item}å¼å§å建æå"); |
| | | RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out msg); |
| | | //Conn.é»è®¤Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "1", $"S{Bssx}ReadQueue"); |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "1", out msg); |
| | | //Conn.é»è®¤Redis.SetValue($"S{item}Read.R5空é²_LAST", "1", $"S{item}ReadQueue"); |
| | | break; |
| | | } |
| | | } |
| | | else if (R5 != 5 && R5空é²_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "0", out msg); |
| | | //Conn.é»è®¤Redis.SetValue($"S{item}Read.R5空é²_LAST", "0", $"S{item}ReadQueue"); |
| | | } |
| | | } |
| | | System.Threading.Thread.Sleep(1000); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message, ex); |
| | | Console.WriteLine(ex.Message + ex.StackTrace); |
| | | } |
| | | } |
| | | else if (RtaskState != 3 && RtaskState_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "0", out string msg); |
| | | //Conn.é»è®¤Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "0", $"S{Bssx}ReadQueue"); |
| | | } |
| | | System.Threading.Thread.Sleep(2000); |
| | | } |
| | | |
| | | foreach (var item in new string[] { "1004", "1012", "1006", "1014", "1026", "1017" }) |
| | | { |
| | | var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²"), typeof(System.UInt16)); |
| | | var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²_LAST"), typeof(System.UInt16)); |
| | | if (R5 != 5 && R5空é²_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "0", out string msg); |
| | | //Conn.é»è®¤Redis.SetValue($"S{item}Read.R5空é²_LAST", "0", $"S{item}ReadQueue"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void ThreadDdown(Tag tag) |
| | | { |
| | | Console.WriteLine($"ThreadDdown 08 10 ==================> 1026"); |
| | | TaskRepository taskRepository = new TaskRepository(); |
| | | foreach (var Bssx in new string[] { "1008", "1016" }) |
| | | { |
| | | var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.RtaskState"), typeof(System.UInt16)); |
| | | var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.RtaskState_LAST"), typeof(System.UInt16)); |
| | | var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.Ræçç "), typeof(System.String)); |
| | | Console.WriteLine($"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }"); |
| | | if (RtaskState == 3 && RtaskState_LAST == 0) |
| | | { |
| | | var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != "宿" && x.S_B_STATE != "忶"); |
| | | string msg = ""; |
| | | if (task != null) |
| | | { |
| | | Console.WriteLine($"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | LogHelper.Info($"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | continue; |
| | | } |
| | | |
| | | var item = "1026"; |
| | | var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²"), typeof(System.UInt16)); |
| | | var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²_LAST"), typeof(System.UInt16)); |
| | | if (R5 == 5 && R5空é²_LAST == 0) |
| | | { |
| | | task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != "宿" && x.S_B_STATE != "忶"); |
| | | msg = ""; |
| | | if (task != null) |
| | | { |
| | | Console.WriteLine($"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | LogHelper.Info($"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | continue; |
| | | } |
| | | var b = TaskProcess.CreateTask("", Bssx, item, "满转1026", 5, new List<string> { Ræçç }, "RGV"); |
| | | if (b) |
| | | { |
| | | RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out msg); |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "1", out string msg2); |
| | | //Conn.é»è®¤Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "1", $"S{Bssx}ReadQueue"); |
| | | //Conn.é»è®¤Redis.SetValue($"S{item}Read.R5空é²_LAST", "1", $"S{item}ReadQueue"); |
| | | break; |
| | | } |
| | | } |
| | | else if (R5 != 5 && R5空é²_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "0", out string msg2); |
| | | } |
| | | } |
| | | else if (RtaskState != 3 && RtaskState_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "0", out string msg); |
| | | //Conn.é»è®¤Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "0", $"S{Bssx}ReadQueue"); |
| | | } |
| | | System.Threading.Thread.Sleep(2000); |
| | | } |
| | | } |
| | | |
| | | public void Thread0210Down(Tag tag) |
| | | { |
| | | Console.WriteLine($"Thread0210Down ==================>"); |
| | | TaskRepository taskRepository = new TaskRepository(); |
| | | foreach (var Bssx in new string[] { "1002", "1010" }) |
| | | { |
| | | var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.RtaskState"), typeof(System.UInt16)); |
| | | var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.RtaskState_LAST"), typeof(System.UInt16)); |
| | | var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.Ræçç "), typeof(System.String)); |
| | | Console.WriteLine($"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }"); |
| | | if (RtaskState == 3 && RtaskState_LAST == 0) |
| | | { |
| | | var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != "宿" && x.S_B_STATE != "忶"); |
| | | string msg = ""; |
| | | if (task != null) |
| | | { |
| | | Console.WriteLine($"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | LogHelper.Info($"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | continue; |
| | | } |
| | | var item = "1017"; |
| | | var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²"), typeof(System.UInt16)); |
| | | var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²_LAST"), typeof(System.UInt16)); |
| | | if (R5 == 5 && R5空é²_LAST == 0) |
| | | { |
| | | task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != "宿" && x.S_B_STATE != "忶"); |
| | | msg = ""; |
| | | if (task != null) |
| | | { |
| | | Console.WriteLine($"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | LogHelper.Info($"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | continue; |
| | | } |
| | | var b = TaskProcess.CreateTask("", Bssx, item, "满转1017", 5, new List<string> { Ræçç }, "RGV"); |
| | | if (b) |
| | | { |
| | | RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out msg); |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "1", out string msg1); |
| | | //Conn.é»è®¤Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "1", $"S{Bssx}ReadQueue"); |
| | | //Conn.é»è®¤Redis.SetValue($"S{item}Read.R5空é²_LAST", "1", $"S{item}ReadQueue"); |
| | | break; |
| | | } |
| | | } |
| | | else if (R5 != 5 && R5空é²_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "0", out string msg1); |
| | | } |
| | | } |
| | | else if (RtaskState != 3 && RtaskState_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "0", out string msg); |
| | | } |
| | | System.Threading.Thread.Sleep(2000); |
| | | } |
| | | } |
| | | |
| | | |
| | | public void Thread䏿使£æµ(Tag tag) |
| | | { |
| | | Console.WriteLine($"Thread䏿使£æµ =====>"); |
| | | foreach (var ssx in new string[] { "1003", "1005", "1011", "1013" }) |
| | | { |
| | | var RArrive = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"FNK1003051113.RArrive{ssx}"), typeof(System.UInt16)); |
| | | var RArriveLast = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"FNK1003051113.RArrive{ssx}_LAST"), typeof(System.UInt16)); |
| | | if (RArrive == 1 && RArriveLast == 0) |
| | | { |
| | | if (ssx == "1005" && tag.SF䏿ä½.WRelease1005 == 0) |
| | | { |
| | | tag.FNK1.D2215 = 1; |
| | | //tag.SF䏿ä½.RArrive1005_LAST = 1; |
| | | RedisHelper.Add($"FNK1003051113.RArrive1005_LAST", "1", out string msg); |
| | | |
| | | //tag.SF䏿ä½.WRelease1005 = 0; |
| | | //tag.SF䏿ä½.WSafe0305 = 0; |
| | | } |
| | | else if (ssx == "1003" && tag.SF䏿ä½.WRelease1003 == 0) |
| | | { |
| | | tag.FNK1.D2210 = 1; |
| | | //tag.SF䏿ä½.RArrive1003_LAST = 1; |
| | | |
| | | RedisHelper.Add($"FNK1003051113.RArrive1003_LAST", "1", out string msg); |
| | | |
| | | //tag.SF䏿ä½.WRelease1003 = 0; |
| | | //tag.SF䏿ä½.WSafe0305 = 0; |
| | | } |
| | | else if (ssx == "1013" && tag.SF䏿ä½.WRelease1013 == 0) |
| | | { |
| | | tag.FNK2.D2215 = 1; |
| | | //tag.SF䏿ä½.RArrive1013_LAST = 1; |
| | | RedisHelper.Add($"FNK1003051113.RArrive1013_LAST", "1", out string msg); |
| | | |
| | | //tag.SF䏿ä½.WRelease1013 = 0; |
| | | //tag.SF䏿ä½.WSafe1113 = 0; |
| | | } |
| | | else if (ssx == "1011" && tag.SF䏿ä½.WRelease1011 == 0) |
| | | { |
| | | tag.FNK2.D2210 = 1; |
| | | //tag.SF䏿ä½.RArrive1011_LAST = 1; |
| | | RedisHelper.Add($"FNK1003051113.RArrive1011_LAST", "1", out string msg); |
| | | |
| | | //tag.SF䏿ä½.WRelease1011 = 0; |
| | | //tag.SF䏿ä½.WSafe1113 = 0; |
| | | } |
| | | } |
| | | else if (RArrive == 0 && RArriveLast == 1) |
| | | { |
| | | RedisHelper.Add($"FNK1003051113.RArrive{ssx}_LAST", "0", out string msg); |
| | | //Conn.é»è®¤Redis.SetValue($"FNK1003051113.RArrive{ssx}_LAST", "0", $"FNK1003051113Queue"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void ThreadFNK1Over(Tag tag) |
| | | { |
| | | Console.WriteLine($"ThreadFNK1Over =====>"); |
| | | if (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0) |
| | | { |
| | | tag.FNK1.D2215 = 0; |
| | | //tag.FNK1.D2212_LAST = 1; |
| | | RedisHelper.Add($"påé£ç§1ä¸çº¿.D2217_LAST", "1", out string msg); |
| | | |
| | | tag.SF䏿ä½.WRelease1005 = 1; |
| | | tag.SF䏿ä½.WSafe0305 = 1; |
| | | System.Threading.Thread.Sleep(1000); |
| | | RedisHelper.Add($"FNK1003051113.RArrive1005_LAST", "0", out msg); |
| | | } |
| | | if (tag.FNK1.D2216 == 1) |
| | | tag.FNK1.D2215 = 0; |
| | | else if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1) |
| | | //tag.FNK1.D2217_LAST = 0; |
| | | RedisHelper.Add($"påé£ç§1ä¸çº¿.D2217_LAST", "0", out string msg); |
| | | |
| | | if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0) |
| | | { |
| | | tag.FNK1.D2210 = 0; |
| | | //tag.FNK1.D2217_LAST = 1; |
| | | RedisHelper.Add($"påé£ç§1ä¸çº¿.D2212_LAST", "1", out string msg); |
| | | tag.SF䏿ä½.WRelease1003 = 1; |
| | | tag.SF䏿ä½.WSafe0305 = 1; |
| | | System.Threading.Thread.Sleep(1000); |
| | | RedisHelper.Add($"FNK1003051113.RArrive1003_LAST", "0", out msg); |
| | | } |
| | | //else if (tag.FNK1.D2211 == 1) |
| | | // tag.FNK1.D2210 = 0; |
| | | else if (tag.FNK1.D2212 == 0 && tag.FNK1.D2212_LAST == 1) |
| | | { |
| | | //tag.FNK1.D2212_LAST = 0; |
| | | RedisHelper.Add($"påé£ç§1ä¸çº¿.D2212_LAST", "0", out string msg); |
| | | } |
| | | if (tag.FNK1.D2211 == 1) |
| | | tag.FNK1.D2210 = 0; |
| | | |
| | | } |
| | | public void ThreadFNK2Over(Tag tag) |
| | | { |
| | | Console.WriteLine($"ThreadFNK2Over =====>"); |
| | | if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0) |
| | | { |
| | | tag.FNK2.D2215 = 0; |
| | | //tag.FNK2.D2212_LAST = 1; |
| | | RedisHelper.Add($"påé£ç§2ä¸çº¿.D2217_LAST", "1", out string msg); |
| | | |
| | | tag.SF䏿ä½.WRelease1013 = 1; |
| | | tag.SF䏿ä½.WSafe1113 = 1; |
| | | System.Threading.Thread.Sleep(1000); |
| | | RedisHelper.Add($"FNK1003051113.RArrive1013_LAST", "0", out msg); |
| | | } |
| | | else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1) |
| | | //tag.FNK2.D2217_LAST = 0; |
| | | RedisHelper.Add($"påé£ç§2ä¸çº¿.D2217_LAST", "0", out string msg); |
| | | |
| | | if (tag.FNK2.D2216 == 1) |
| | | tag.FNK2.D2215 = 0; |
| | | |
| | | if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0) |
| | | { |
| | | tag.FNK2.D2210 = 0; |
| | | //tag.FNK2.D2217_LAST = 1; |
| | | RedisHelper.Add($"påé£ç§2ä¸çº¿.D2212_LAST", "1", out string msg); |
| | | |
| | | tag.SF䏿ä½.WRelease1011 = 1; |
| | | tag.SF䏿ä½.WSafe1113 = 1; |
| | | System.Threading.Thread.Sleep(1000); |
| | | RedisHelper.Add($"FNK1003051113.RArrive1011_LAST", "0", out msg); |
| | | } |
| | | else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1) |
| | | { |
| | | //tag.FNK2.D2212_LAST = 0; |
| | | RedisHelper.Add($"påé£ç§2ä¸çº¿.D2212_LAST", "0", out string msg); |
| | | } |
| | | if (tag.FNK2.D2211 == 1) |
| | | tag.FNK2.D2210 = 0; |
| | | |
| | | } |
| | | |
| | | public void Thread1019Down(Tag tag) |
| | | { |
| | | Console.WriteLine($"1019ä»»å¡ç¶æï¼ =====>"); |
| | | Console.WriteLine($"1019ä»»å¡ç¶æï¼{tag.SA1019.RtaskState}- barcode:{tag.SA1019.Ræçç }- 空é²{tag.SA1019.R5空é²}"); |
| | | } |
| | | public void Thread1025Up(Tag tag) |
| | | { |
| | | Console.WriteLine($"SA1025 ä»»å¡ç¶æï¼ =====>"); |
| | | Console.WriteLine($"SA1025 ä»»å¡ç¶æï¼{tag.SA1025.RtaskState}- 空é²{tag.SA1025.R5空é²}"); |
| | | } |
| | | public void Thread1022Up(Tag tag) |
| | | { |
| | | Console.WriteLine($"SA1022 =====>"); |
| | | Console.WriteLine($"SA1022 ä»»å¡ç¶æï¼{tag.SA1022.RtaskState}- 空é²{tag.SA1022.R5空é²}"); |
| | | } |
| | | public void Thread1030Down(Tag tag) |
| | | { |
| | | Console.WriteLine($"SA1030 ä»»å¡ç¶æï¼ =====>"); |
| | | Console.WriteLine($"SA1030 ä»»å¡ç¶æï¼{tag.SA1030.RtaskState}- 空é²{tag.SA1030.R5空é²}-->对åºç»ç¹2001>空é²5ï¼{tag.SA2001.R5空é²}"); |
| | | } |
| | | public void Thread2030Down(Tag tag) |
| | | { |
| | | Console.WriteLine($"SA2030 ä»»å¡ç¶æï¼ =====>"); |
| | | Console.WriteLine($"SA2030 ä»»å¡ç¶æï¼{tag.SA2030.RtaskState}- 空é²{tag.SA2030.R5空é²} - barcode:{tag.SA2030.Ræçç }"); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | "DevelopVersion": "1.0.2.0", |
| | | "Encode": "Ij/zvOgkqNT5SmHrFKCAVQ==", |
| | | "CreationTime": "0001-01-01 00:00:00", |
| | | "LastWriteTime": "2025-06-18 23:06:58" |
| | | "LastWriteTime": "2025-06-23 08:57:03" |
| | | } |
| | |
| | | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0"> |
| | | <PropertyGroup> |
| | | <Platform Condition="'$(Configuration)' == ''">AnyCPU</Platform> |
| | | <OutputType>Exe</OutputType> |
| | | <OutputType>WinExe</OutputType> |
| | | <RootNamespace>GZ.Projects.AuxAllWCS</RootNamespace> |
| | | <AssemblyName>AuxAllWCS</AssemblyName> |
| | | <TargetFrameworkVersion>4.6.1</TargetFrameworkVersion> |
| | | <ProjectGuid>{E1166F09-DED5-4E32-AB55-4DE61A402132}</ProjectGuid> |
| | | <ProjectGuid>{50c6b7fe-daa2-4ebe-8ebe-6f6efc0a213c}</ProjectGuid> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'"> |
| | | <PlatformTarget>AnyCPU</PlatformTarget> |
| | |
| | | <DefineConstants>TRACE</DefineConstants> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <WarningLevel>4</WarningLevel> |
| | | </PropertyGroup> |
| | | <PropertyGroup> |
| | | <StartupObject /> |
| | | </PropertyGroup> |
| | | <ItemGroup> |
| | | <Reference Include="System"> |
| | |
| | | <Generator>MSBuild:Compile</Generator> |
| | | <SubType>Designer</SubType> |
| | | </Page> |
| | | <Compile Include="代ç \VSèªå®ä¹ç±»\AutoThread.cs" /> |
| | | <Compile Include="çé¢\View1.xaml.cs"> |
| | | <DependentUpon>View1.xaml</DependentUpon> |
| | | <SubType>Code</SubType> |
| | |
| | | <Compile Include="代ç \èªå®ä¹ç»æ.cs" /> |
| | | <Compile Include="代ç \èªå®ä¹ç±».cs" /> |
| | | <Compile Include="代ç \VSèªå®ä¹ç±»\TcpServer.cs" /> |
| | | <Compile Include="代ç \VSèªå®ä¹ç±»\AutoThread.cs" /> |
| | | <Compile Include="Properties\AssemblyInfo.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="App.config" /> |
| | | <None Include="Static\config.json"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </None> |
| | | <None Include="Static\js\app.829e775c.js.map"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </None> |
| | | <None Include="Static\js\chunk-vendors.3e768dfe.js.map"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </None> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Content Include="Static\css\a.css"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Static\css\app.d545ec97.css"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Static\favicon.ico"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Static\index.html"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Static\js\a.js"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Static\js\app.829e775c.js"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Static\js\chunk-vendors.3e768dfe.js"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Static\W.html"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </Content> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | </Project> |
| | |
| | | using Newtonsoft.Json; |
| | | #region [èªå®ä¹ç±»-VS][20250623083459471][AutoThread] |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Collections.Concurrent; |
| | |
| | | mes += tag.RGV.ReadTask2No + "æ§è¡ä¸..."; |
| | | LogHelper.Info($"{mes} ä¸è½ä¸åæ°ä»»å¡ã"); |
| | | System.Threading.Thread.Sleep(3000); |
| | | return; |
| | | return; |
| | | } |
| | | var thisOver = 0; |
| | | TaskEntity task1 = null; |
| | |
| | | |
| | | } |
| | | } |
| | | |
| | | #endregion [èªå®ä¹ç±»-VS][20250623083459471][AutoThread] |
| | |
| | | using GZ.DB.Repository.OIDATABASE; |
| | | using GZ.DB.IRepository.OIDATABASE; |
| | | using GZ.DB.Entity.OIDATABASE; |
| | | using GZ.Modular.Redis; |
| | | namespace GZ.Projects.AuxAllWCS |
| | | { |
| | | public partial class ViewModel : System.ComponentModel.INotifyPropertyChanged |
| | |
| | | //string V = inde ? "R05" : "R06"; |
| | | //Conn.é»è®¤Redis.SetValue(device2.deviceName + "." + V, "true", device2.deviceName + "Queue"); |
| | | string V2 = inde ? "R10_LAST" : "R11_LAST"; |
| | | //Conn.é»è®¤Redis.SetValue(device2.deviceName + "." + V2, "true", device2.deviceName + "Queue"); |
| | | |
| | | RedisHelper.Add(device2.deviceName + "." + V2, "true", out string msg1); |
| | | Conn.é»è®¤Redis.SetValue(device2.deviceName + "." + V2, "true", device2.deviceName + "Queue"); |
| | | TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]); |
| | | } |
| | | } |
| | |
| | | using GZ.DB.Repository.OIDATABASE; |
| | | using GZ.DB.IRepository.OIDATABASE; |
| | | using GZ.DB.Entity.OIDATABASE; |
| | | using GZ.Modular.Redis; |
| | | using System.Security.Cryptography; |
| | | using System.Windows.Interop; |
| | | namespace GZ.Projects.AuxAllWCS |
| | | { |
| | | /// <summary> |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250323111613779][ä¸å¡é»è¾.åå§åé
ç½®] |
| | | //LogHelper.Info("1111 +" + DateTime.Now); |
| | | //((Type)typeof(Utils)).GetMethod("ThreadSettingInit").Invoke(new Utils(), null); |
| | | //LogHelper.Info("2222 +" + DateTime.Now); |
| | | //((Type)typeof(Utils)).GetMethod("ThreadSettingInit").Invoke(new Utils(), new object[] { }); |
| | | //LogHelper.Info("3333 +" + DateTime.Now); |
| | | |
| | | Action myDelegate = () => SettingInit(); |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "ThreadSettingInit", new object[] { tag, myDelegate }); |
| | | //LogHelper.Info("4444 +" + DateTime.Now); |
| | | //AutoThread.InvokeMethod(AutoThread.Instance, "ThreadSettingInit", null); |
| | | //LogHelper.Info("4444 +" + DateTime.Now); |
| | | |
| | | //if (Tag.Global.SettingsOver == 0) |
| | | //{ |
| | | // SettingInit(); |
| | | // Tag.Global.SettingsOver = 1; |
| | | //} |
| | | //else if (Settings.deviceInfos.Count == 0) |
| | | //{ |
| | | // Tag.Global.SettingsOver = 0; |
| | | //} |
| | | //var _=tag.wxr1.R46_LAST; |
| | | //RedisHelper.Add($"ç»´å¸å°æè1.R46_LAST", "true", out string msg); |
| | | |
| | | #endregion [èæ¬][20250323111613779][ä¸å¡é»è¾.åå§åé
ç½®] |
| | | } |
| | | catch (Exception ex) |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250323151832119][ä¸å¡é»è¾.Program4] |
| | | //Conn.é»è®¤Redis.SetValue("西é¨å2.Param3","300","西é¨å2Queue"); |
| | | //return; |
| | | if (false) |
| | | { |
| | | List<string> locs = new List<string>() { "vxr1l", "vx1r", "vxr1c1", "vxr1c2", "vxr2l", "vxr2r", "vxr2c1", "vxr2c2" }; |
| | | List<string> sites = new List<string>() { "196365BB283162", "193841BB283149", "198756BB287300", "198767BB286133", "206987BB282931", "204460BB282975", "209405BB287057", "209377BB285899" }; |
| | | ////Conn.é»è®¤Redis.SetValue("西é¨å2.Param3","300","西é¨å2Queue"); |
| | | ////return; |
| | | //if(false){ |
| | | // List<string> locs = new List<string>() { "vxr1l", "vx1r", "vxr1c1", "vxr1c2", "vxr2l", "vxr2r", "vxr2c1", "vxr2c2" }; |
| | | // List<string> sites = new List<string>() { "196365BB283162", "193841BB283149", "198756BB287300", "198767BB286133", "206987BB282931", "204460BB282975", "209405BB287057", "209377BB285899" }; |
| | | |
| | | LocRepository locservice = new LocRepository(); |
| | | for (int i = 0; i < locs.Count; i++) |
| | | { |
| | | string loccode = locs[i]; |
| | | string sitesss = sites[i]; |
| | | var loc = locservice.FindEntity(x => x.S_LOC_CODE == loccode); |
| | | if (loc == null) |
| | | { |
| | | locservice.Insert(new LocEntity |
| | | { |
| | | S_ID = Guid.NewGuid().ToString(), |
| | | S_STATE = "ç¼è¾", |
| | | T_CREATE = DateTime.Now, |
| | | T_MODIFY = DateTime.Now, |
| | | S_DEEP = "vxr", |
| | | // LocRepository locservice = new LocRepository(); |
| | | // for (int i = 0; i < locs.Count; i++) |
| | | // { |
| | | // string loccode = locs[i]; |
| | | // string sitesss = sites[i]; |
| | | // var loc = locservice.FindEntity(x => x.S_LOC_CODE == loccode); |
| | | // if (loc == null) |
| | | // { |
| | | // locservice.Insert(new LocEntity |
| | | // { |
| | | // S_ID = Guid.NewGuid().ToString(), |
| | | // S_STATE = "ç¼è¾", |
| | | // T_CREATE = DateTime.Now, |
| | | // T_MODIFY = DateTime.Now, |
| | | // S_DEEP = "vxr", |
| | | |
| | | S_LOC_CODE = loccode, |
| | | S_AGV_SITE = sitesss, |
| | | // S_LOC_CODE = loccode, |
| | | // S_AGV_SITE = sitesss, |
| | | |
| | | S_LOCK_STATE = "æ ", |
| | | N_ROW = 1, |
| | | N_COL = 1, |
| | | N_AGV_CODE = 0, |
| | | N_AGV_SITE_LAYER = 0, |
| | | N_CAPACITY = 1, |
| | | N_CURRENT_NUM = 0, |
| | | S_TYPE = "", |
| | | // S_LOCK_STATE = "æ ", |
| | | // N_ROW = 1, |
| | | // N_COL = 1, |
| | | // N_AGV_CODE = 0, |
| | | // N_AGV_SITE_LAYER = 0, |
| | | // N_CAPACITY = 1, |
| | | // N_CURRENT_NUM = 0, |
| | | // S_TYPE = "", |
| | | |
| | | }); |
| | | } |
| | | } |
| | | // TaskProcess.CreateTask("", locs[6], locs[7], "test", 9, new List<string> { "test" }, 1, 1, 1); |
| | | } |
| | | // }); |
| | | // } |
| | | // } |
| | | // // TaskProcess.CreateTask("", locs[6], locs[7], "test", 9, new List<string> { "test" }, 1, 1, 1); |
| | | // } |
| | | |
| | | #endregion [èæ¬][20250323151832119][ä¸å¡é»è¾.Program4] |
| | | } |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250325083326611][ä¸å¡é»è¾.ç¬¬ä¸æ 段.æ·ç¬æè2] |
| | | //jsz2æ·ç¬æè2 |
| | | |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "ThreadJS2", new object[] { tag }); |
| | | |
| | | #endregion [èæ¬][20250325083326611][ä¸å¡é»è¾.ç¬¬ä¸æ 段.æ·ç¬æè2] |
| | | } |
| | | catch (Exception ex) |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250610002047005][ä¸å¡é»è¾.ç¬¬ä¸æ 段.ç»´ç³»å°1å·.ç»´å¸å°æè1R] |
| | | |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "Threadwxr1R", new object[] { tag }); |
| | | #endregion [èæ¬][20250610002047005][ä¸å¡é»è¾.ç¬¬ä¸æ 段.ç»´ç³»å°1å·.ç»´å¸å°æè1R] |
| | | } |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250325083315503][ä¸å¡é»è¾.ç¬¬ä¸æ 段.ç»´ç³»å°2å·.ç»´å¸å°æè2L] |
| | | |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "Threadwxr2L", new object[] { tag }); |
| | | #endregion [èæ¬][20250325083315503][ä¸å¡é»è¾.ç¬¬ä¸æ 段.ç»´ç³»å°2å·.ç»´å¸å°æè2L] |
| | | } |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250610002647095][ä¸å¡é»è¾.ç¬¬ä¸æ 段.ç»´ç³»å°2å·.ç»´å¸å°æè2R] |
| | | |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "Threadwxr2R", new object[] { tag }); |
| | | #endregion [èæ¬][20250610002647095][ä¸å¡é»è¾.ç¬¬ä¸æ 段.ç»´ç³»å°2å·.ç»´å¸å°æè2R] |
| | | } |
| | |
| | | } |
| | | ExitJudgeStack.TryPop(out int exitJudgeVal); |
| | | }); |
| | | |
| | | /// <summary> |
| | | /// ç¨åºç段:ä»»å¡ä¸å |
| | | /// æè¿°: |
| | |
| | | // - å
æ
交äºå¤çãã |
| | | Action<HaiKangOrderInfo> myDelegate = (t) => continueTask(t); |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "ThreadGrats", new object[] { tag, myDelegate }); |
| | | |
| | | // åé£ç§ä¸æå
æ
ã |
| | | #endregion [èæ¬][20250611223832523][ä¸å¡é»è¾.å
æ
å¤ç] |
| | | } |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250616094224396][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.1020空æ¡ä¸çº¿] |
| | | |
| | | //1020 1023 空æ¡ä¸çº¿ |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "ThreadEdown", new object[] { tag }); |
| | | #endregion [èæ¬][20250616094224396][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.1020空æ¡ä¸çº¿] |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250616094632985][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.å®å满ä¸çº¿] |
| | | |
| | | //å®å满ä¸çº¿ 1008 1016 -> 1026 |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "ThreadDdown", new object[] { tag }); |
| | | #endregion [èæ¬][20250616094632985][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.å®å满ä¸çº¿] |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250616094511322][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.è½¬åæ»¡ä¸çº¿] |
| | | |
| | | //è½¬åæ»¡ä¸çº¿ 1002 1010 - RGV2å·¥ä½ä¸å¯å° 1017 ä¸å¯ä¸å2å·¥ä½ä»»å¡ã |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "Thread0210Down", new object[] { tag }); |
| | | #endregion [èæ¬][20250616094511322][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.è½¬åæ»¡ä¸çº¿] |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250616095605911][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.䏿使£æµ] |
| | | |
| | | //䏿使£æµã 1003 å°ä½æ¶ å æ è¯ä¿¡å· å¹¶ ç»æºæ¢°æä¿¡å·ã |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "Thread䏿使£æµ", new object[] { tag }); |
| | | #endregion [èæ¬][20250616095605911][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.䏿使£æµ] |
| | |
| | | if (IsExitApp) { break; } |
| | | try |
| | | { |
| | | |
| | | ////2217 - 1003 |
| | | #region [èæ¬][20250616095709155][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.1å·FNKæºæ¢°æå®æ] |
| | | |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "ThreadFNK1Over", new object[] { tag }); |
| | | #endregion [èæ¬][20250616095709155][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.1å·FNKæºæ¢°æå®æ] |
| | | } |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250616095733680][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.2å·FNKæºæ¢°æå®æ] |
| | | |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "ThreadFNK2Over", new object[] { tag }); |
| | | #endregion [èæ¬][20250616095733680][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.2å·FNKæºæ¢°æå®æ] |
| | | } |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250617085750712][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.1022agvä¸ç©º.Program1] |
| | | |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "Thread1022Up", new object[] { tag }); |
| | | #endregion [èæ¬][20250617085750712][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.1022agvä¸ç©º.Program1] |
| | | } |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250617085800942][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.1030䏿¯æ.Program1] |
| | | |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "Thread1030Down", new object[] { tag }); |
| | | #endregion [èæ¬][20250617085800942][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.1030䏿¯æ.Program1] |
| | | } |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250617085809982][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.2030è¾é线ä¸å®å.Program1] |
| | | |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "Thread2030Down", new object[] { tag }); |
| | | #endregion [èæ¬][20250617085809982][ä¸å¡é»è¾.æµç¨2çå¤ççè¿åº.2030è¾é线ä¸å®å.Program1] |
| | | } |
| | |
| | | using GZ.DB.Repository.OIDATABASE; |
| | | using GZ.DB.IRepository.OIDATABASE; |
| | | using GZ.DB.Entity.OIDATABASE; |
| | | using static System.Windows.Forms.VisualStyles.VisualStyleElement; |
| | | namespace GZ.Projects.AuxAllWCS |
| | | { |
| | | public class Settings |
| | |
| | | #region [èªå®ä¹ç±»][20250325152141671][TaskProcess] |
| | | internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = "AGV", int cntrCount = 1, int startLayer = 1, int endLayer = 1) |
| | | { |
| | | LogHelper.Info($"è¾é线RGV空æä»»å¡ from:{from}>to {to}å¼å§å建>"); |
| | | |
| | | LogHelper.Debug($"è¾é线RGV空æä»»å¡ from:{from}>to {to}å¼å§å建>"); |
| | | var cntrInfo = string.Join(",", cntrs); |
| | | ILocRepository locc = new LocRepository(); |
| | | var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from); |
| | |
| | | }; |
| | | ITaskRepository taskserice = new TaskRepository(); |
| | | taskserice.Insert(wmsTask); |
| | | |
| | | if (workMode == "AGV") |
| | | { |
| | | fromLoc.S_LOCK_STATE = "åºåºé"; |
| | |
| | | locc.Update(endLoc); |
| | | } |
| | | |
| | | LogHelper.Info($"è¾é线RGV空æä»»å¡ from:{from}>to {to} å建{wmsTask.S_TASK_NO}æå"); |
| | | LogHelper.Debug($"è¾é线RGV空æä»»å¡ from:{from}>to {to} å建{wmsTask.S_TASK_NO}æå"); |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | |
| | | { |
| | | #region [èªå®ä¹ç±»][20250417094750211][Utils] |
| | | |
| | | |
| | | public void ThreadSettingInit() |
| | | { |
| | | Console.WriteLine("Utils ThreadSettingInit "); |
| | | |
| | | } |
| | | #endregion [èªå®ä¹ç±»][20250417094750211][Utils] |
| | | } |
| | | public class ToWMSMES |
| | |
| | | "Reserve1": "", |
| | | "Reserve2": "", |
| | | "Reserve3": "" |
| | | }, |
| | | { |
| | | "Id": "20250623084011631", |
| | | "Order": 25, |
| | | "Name": "Ræå¨1èªå¨2", |
| | | "FullName": "RGV.Ræå¨1èªå¨2", |
| | | "DataType": "System.UInt16", |
| | | "DataValue": "", |
| | | "SetValue": "", |
| | | "Address": "DB104.2", |
| | | "AddrType": "", |
| | | "Length": 1, |
| | | "Desc": "0-æ æ,1-æå¨,2-èæº,3-è±æº", |
| | | "Trigger": false, |
| | | "Reserve1": "", |
| | | "Reserve2": "", |
| | | "Reserve3": "" |
| | | } |
| | | ], |
| | | "GroupList": [], |
| | |
| | | } |
| | | ], |
| | | "CreationTime": "2025-02-26 15:31:23", |
| | | "LastWriteTime": "2025-06-18 08:31:50" |
| | | "LastWriteTime": "2025-06-23 08:50:40" |
| | | } |
| | |
| | | "ProjectSn": "1", |
| | | "DeviceList": [], |
| | | "CreationTime": "2025-02-26 15:31:23", |
| | | "LastWriteTime": "2025-06-18 08:31:50" |
| | | "LastWriteTime": "2025-06-23 08:51:04" |
| | | } |
| | |
| | | } |
| | | ], |
| | | "CreationTime": "2025-02-26 15:31:23", |
| | | "LastWriteTime": "2025-06-18 08:32:12" |
| | | "LastWriteTime": "2025-06-23 08:57:03" |
| | | } |
New file |
| | |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Collections.Concurrent; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using GZ.Modular.Redis; |
| | | using GZ.DB.Entity.OIDATABASE; |
| | | using GZ.DB.IRepository.OIDATABASE; |
| | | using GZ.DB.Repository.OIDATABASE; |
| | | using static System.Windows.Forms.VisualStyles.VisualStyleElement; |
| | | using System.Windows.Interop; |
| | | using static System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox; |
| | | |
| | | namespace GZ.Projects.AuxAllWCS |
| | | { |
| | | public partial class AutoThread |
| | | { |
| | | |
| | | private static AutoThread _instance; |
| | | |
| | | // ç§ææé 彿°é²æ¢å¤é¨å®ä¾å |
| | | private AutoThread() { } |
| | | |
| | | public static AutoThread Instance |
| | | { |
| | | get |
| | | { |
| | | if (_instance == null) |
| | | { |
| | | _instance = new AutoThread(); |
| | | } |
| | | return _instance; |
| | | } |
| | | } |
| | | |
| | | // 线ç¨å®å
¨çå§æç¼å |
| | | private static readonly ConcurrentDictionary<string, Delegate> _methodCache = new ConcurrentDictionary<string, Delegate>(); |
| | | |
| | | // æ¹æ³æ§è¡å¨ |
| | | public static object InvokeMethod(object instance, string methodName, params object[] args) |
| | | { |
| | | var cacheKey = $"{instance.GetType().FullName}_{methodName}"; |
| | | |
| | | if (!_methodCache.TryGetValue(cacheKey, out var methodDelegate)) |
| | | { |
| | | // è·åæ¹æ³ä¿¡æ¯ |
| | | var methodInfo = instance.GetType().GetMethod( |
| | | methodName, |
| | | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); |
| | | |
| | | if (methodInfo == null) |
| | | throw new MissingMethodException($"Method {methodName} not found"); |
| | | |
| | | // åå»ºå§æå¹¶ç¼å |
| | | methodDelegate = Delegate.CreateDelegate( |
| | | GetDelegateType(methodInfo), |
| | | instance, |
| | | methodInfo); |
| | | |
| | | _methodCache.TryAdd(cacheKey, methodDelegate); |
| | | } |
| | | |
| | | // æ§è¡å§æ |
| | | return methodDelegate.DynamicInvoke(args); |
| | | } |
| | | |
| | | // æ ¹æ®æ¹æ³ç¾åçæå¯¹åºçå§æç±»å |
| | | private static Type GetDelegateType(MethodInfo methodInfo) |
| | | { |
| | | var parameterTypes = methodInfo.GetParameters() |
| | | .Select(p => p.ParameterType) |
| | | .ToList(); |
| | | |
| | | if (methodInfo.ReturnType == typeof(void)) |
| | | { |
| | | return System.Linq.Expressions.Expression.GetActionType(parameterTypes.ToArray()); |
| | | } |
| | | else |
| | | { |
| | | parameterTypes.Add(methodInfo.ReturnType); |
| | | return System.Linq.Expressions.Expression.GetFuncType(parameterTypes.ToArray()); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// é
ç½®åå§åã |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | /// <param name="action"></param> |
| | | public void ThreadSettingInit(Tag tag, Action action) |
| | | { |
| | | Console.WriteLine("åå§åé
ç½® çº¿ç¨ run " + tag.Global.SettingsOver); |
| | | if (tag.Global.SettingsOver == 0) |
| | | { |
| | | action?.Invoke(); |
| | | tag.Global.SettingsOver = 1; |
| | | } |
| | | else if (Settings.deviceInfos.Count == 0) |
| | | { |
| | | tag.Global.SettingsOver = 0; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ·é¡º1 ä¿¡å·å¤ç |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void ThreadJS1(Tag tag) |
| | | { |
| | | Console.WriteLine($"ThreadJS1 æ·é¡º1 ä¿¡å·å¤ç =================> "); |
| | | var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 2 && x.deviceName == "Jsæ·é¡º1"); |
| | | |
| | | if (VERX != null) |
| | | { |
| | | if (tag.Js1.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 1) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 4, |
| | | endBit = VERX.location[0] |
| | | })); |
| | | LogHelper.Info($"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | //tag.Js1.D1212_LAST = 1; |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1212_LAST", "1", out string msg); |
| | | } |
| | | } |
| | | if (tag.Js1.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 0) |
| | | { |
| | | //tag.Js1.D1212_LAST = 0; |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1212_LAST", "0", out string msg); |
| | | } |
| | | if (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 4, |
| | | endBit = VERX.location[1] |
| | | })); |
| | | LogHelper.Info($"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | //tag.Js1.D1213_LAST = 1; |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1213_LAST", "1", out string msg); |
| | | } |
| | | } |
| | | if (tag.Js1.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 0) |
| | | { |
| | | //tag.Js1.D1213_LAST = 0; |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1213_LAST", "0", out string msg); |
| | | } |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// æ·é¡º2 ä¿¡å·å¤ç |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void ThreadJS2(Tag tag) |
| | | { |
| | | Console.WriteLine($"ThreadJS2 æ·é¡º2 ä¿¡å·å¤ç =================> "); |
| | | var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 2 && x.deviceName == "Jsæ·é¡º2"); |
| | | |
| | | if (VERX != null) |
| | | { |
| | | if (tag.Js2.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 1) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 4, |
| | | endBit = VERX.location[0] |
| | | })); |
| | | LogHelper.Info($"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | //tag.Js2.D1212_LAST = 1; |
| | | |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1212_LAST", "1", out string msg); |
| | | } |
| | | } |
| | | if (tag.Js2.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 0) |
| | | { |
| | | //tag.Js2.D1212_LAST = 0; |
| | | |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1212_LAST", "0", out string msg); |
| | | } |
| | | if (tag.Js2.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 1) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 4, |
| | | endBit = VERX.location[1] |
| | | })); |
| | | LogHelper.Info($"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | //tag.Js2.D1213_LAST = 1; |
| | | |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1213_LAST", "1", out string msg); |
| | | } |
| | | } |
| | | if (tag.Js2.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1213, 2) == 0) |
| | | { |
| | | //tag.Js2.D1213_LAST = 0; |
| | | |
| | | RedisHelper.Add($"Jsæ·é¡º1.D1213_LAST", "0", out string msg); |
| | | } |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// ç»´å¸å°1 å·¦ |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void Threadwxr1L(Tag tag) |
| | | { |
| | | Console.WriteLine($"Threadwxr1L ç»´å¸å°1 å·¦ =================> "); |
| | | var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains("1")); |
| | | |
| | | if (VERX != null) |
| | | { |
| | | if (tag.wxr1.R44 && !tag.wxr1.R44_LAST && tag.wxr1.R10) |
| | | { |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode)) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 1, |
| | | cntrCode = traycode, |
| | | startBit = VERX.location[0], |
| | | endBit = "" |
| | | })); |
| | | LogHelper.Info($"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | tag.wxr1.R44_LAST = true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //TaskRepository ts = new TaskRepository(); |
| | | if (tag.wxr1.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã |
| | | { |
| | | if (tag.wxr1.R10) |
| | | { |
| | | tag.wxr1.R10_LAST = false; |
| | | } |
| | | else |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode)) |
| | | { |
| | | //䏿¥æ ¡éªã |
| | | ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/202", requestJson); |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/202", JsonConvert.SerializeObject(new |
| | | { |
| | | sceneType = 1, |
| | | cntrCode = traycode, |
| | | })); |
| | | if (str.Contains("true")) |
| | | { |
| | | //Conn.é»è®¤Redis.SetValue("ç»´å¸å°æè1.R10", "true", "ç»´å¸å°æè1Queue"); |
| | | tag.wxr1.R10 = true; |
| | | tag.wxr1.R44_LAST = false; |
| | | } |
| | | else |
| | | { |
| | | //æ¥è¦ã |
| | | } |
| | | } |
| | | else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç»´å¸å°1 å³ |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void Threadwxr1R(Tag tag) |
| | | { |
| | | Console.WriteLine($"Threadwxr1R ç»´å¸å°1 å³ =================> "); |
| | | var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains("1")); |
| | | |
| | | if (VERX != null) |
| | | { |
| | | if (tag.wxr1.R46 && !tag.wxr1.R46_LAST && tag.wxr1.R11) |
| | | { |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode)) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 1, |
| | | cntrCode = traycode, |
| | | startBit = VERX.location[1], |
| | | endBit = "" |
| | | })); |
| | | LogHelper.Info($"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | tag.wxr1.R46_LAST = true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (tag.wxr1.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã |
| | | { |
| | | if (tag.wxr1.R11) |
| | | { |
| | | tag.wxr1.R11_LAST = false; |
| | | } |
| | | else |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode)) |
| | | { |
| | | //䏿¥æ ¡éªã |
| | | ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/202", requestJson); |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/202", JsonConvert.SerializeObject(new |
| | | { |
| | | sceneType = 1, |
| | | cntrCode = traycode, |
| | | })); |
| | | if (str.Contains("true")) |
| | | { |
| | | //Conn.é»è®¤Redis.SetValue("ç»´å¸å°æè1.R10", "true", "ç»´å¸å°æè1Queue"); |
| | | tag.wxr1.R11 = true; |
| | | tag.wxr1.R46_LAST = false; |
| | | } |
| | | else |
| | | { |
| | | //æ¥è¦ã |
| | | } |
| | | } |
| | | else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç»´å¸å°2 å·¦ |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void Threadwxr2L(Tag tag) |
| | | { |
| | | Console.WriteLine($"Threadwxr2L ç»´å¸å°2 å·¦ =================> "); |
| | | var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains("2")); |
| | | |
| | | if (VERX != null) |
| | | { |
| | | if (tag.wxr2.R44 && !tag.wxr2.R44_LAST && tag.wxr2.R10) |
| | | { |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode)) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 1, |
| | | cntrCode = traycode, |
| | | startBit = VERX.location[0], |
| | | endBit = "" |
| | | })); |
| | | LogHelper.Info($"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | tag.wxr2.R44_LAST = true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (tag.wxr2.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã |
| | | { |
| | | if (tag.wxr2.R10) |
| | | { |
| | | tag.wxr2.R10_LAST = false; |
| | | } |
| | | else |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode)) |
| | | { |
| | | //䏿¥æ ¡éªã |
| | | ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/202", requestJson); |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/202", JsonConvert.SerializeObject(new |
| | | { |
| | | sceneType = 1, |
| | | cntrCode = traycode, |
| | | })); |
| | | if (str.Contains("true")) |
| | | { |
| | | //Conn.é»è®¤Redis.SetValue("ç»´å¸å°æè1.R10", "true", "ç»´å¸å°æè1Queue"); |
| | | tag.wxr2.R10 = true; |
| | | tag.wxr2.R44_LAST = false; |
| | | } |
| | | else |
| | | { |
| | | //æ¥è¦ã |
| | | } |
| | | } |
| | | else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç»´å¸å°2 å³ |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void Threadwxr2R(Tag tag) |
| | | { |
| | | Console.WriteLine($"Threadwxr2R ç»´å¸å°2 å³ =================> "); |
| | | |
| | | var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains("2")); |
| | | |
| | | if (VERX != null) |
| | | { |
| | | if (tag.wxr2.R46 && !tag.wxr2.R46_LAST && tag.wxr2.R11) |
| | | { |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode)) |
| | | { |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new |
| | | { |
| | | requestType = 1, |
| | | cntrCode = traycode, |
| | | startBit = VERX.location[1], |
| | | endBit = "" |
| | | })); |
| | | LogHelper.Info($"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}"); |
| | | if (str.Contains("true")) |
| | | { |
| | | tag.wxr2.R46_LAST = true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | TcpServer.TcpServerSend(VERX.deviceNo[2], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (tag.wxr2.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã |
| | | { |
| | | if (tag.wxr2.R11) |
| | | { |
| | | tag.wxr2.R11_LAST = false; |
| | | } |
| | | else |
| | | if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode)) |
| | | { |
| | | //䏿¥æ ¡éªã |
| | | ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/202", requestJson); |
| | | var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/202", JsonConvert.SerializeObject(new |
| | | { |
| | | sceneType = 1, |
| | | cntrCode = traycode, |
| | | })); |
| | | if (str.Contains("true")) |
| | | { |
| | | //Conn.é»è®¤Redis.SetValue("ç»´å¸å°æè1.R10", "true", "ç»´å¸å°æè1Queue"); |
| | | tag.wxr2.R11 = true; |
| | | tag.wxr2.R46_LAST = false; |
| | | } |
| | | else |
| | | { |
| | | //æ¥è¦ã |
| | | } |
| | | } |
| | | else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | public void ThreadTaskRun(Tag tag, Func<TaskEntity, bool> action) |
| | | { |
| | | Console.WriteLine($"ThreadTaskRun ä»»å¡ä¸å =================> "); |
| | | LogHelper.Info("ThreadTaskRun ä»»å¡ä¸å"); |
| | | |
| | | ITaskRepository taskservice = new TaskRepository(); |
| | | try |
| | | { |
| | | LogHelper.Info("ä»»å¡ä¸å ARG ä»»å¡ è¿å
¥"); |
| | | #region AGVä»»å¡ä¸åã |
| | | |
| | | var tklist = taskservice.FindList(x => x.S_B_STATE == "æªæ§è¡" && x.S_WORK_MODE == "AGV"); |
| | | if (tklist.Any()) |
| | | foreach (var tk in tklist.GroupBy(item => |
| | | { |
| | | var ticks = item.T_CREATE.Ticks; |
| | | return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute)); |
| | | }).OrderBy(x => x.Key)) |
| | | { |
| | | var ts = tk.OrderByDescending(x => x.N_PRIORITY).ToList(); |
| | | foreach (var t in ts) |
| | | { |
| | | var b = false; |
| | | b = action?.Invoke(t) ?? false; //new ViewModel().RunTask(t); |
| | | |
| | | if (b) |
| | | { |
| | | t.S_B_STATE = "å·²æ¨é"; |
| | | taskservice.Update(t); |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | //foreach (var tk in tklist.GroupBy(item => |
| | | //{ |
| | | // var ticks = item.T_CREATE.Ticks; |
| | | // return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute)); |
| | | //}).OrderBy(x => x.Key)) |
| | | //if (tklist.Any()) |
| | | //{ |
| | | |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Info(ex.Message + ex.StackTrace); |
| | | } |
| | | try |
| | | { |
| | | #region Rgv |
| | | |
| | | LogHelper.Info($"æ¥çRGV çµéï¼ã{tag.RGV.Rå½åçµé}ã å
çµç¶æï¼ã{tag.RGV.Rå
çµç¶æ}ã æ
é代ç ï¼ã{tag.RGV.RgvrunError}ã"); |
| | | |
| | | if (tag.RGV.taskend == 125) |
| | | { |
| | | System.Threading.Thread.Sleep(3000); |
| | | return; |
| | | } |
| | | LogHelper.Info("ä»»å¡ä¸å Rgv ä»»å¡ è¿å
¥"); |
| | | |
| | | var task1Isrun = false; |
| | | if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver != 1) |
| | | { |
| | | task1Isrun = true; |
| | | //if (tag.RGV.bit1taskOver_LAST == 1) |
| | | // RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg); |
| | | } |
| | | var task2Isrun = false; |
| | | if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver != 1) |
| | | { |
| | | task2Isrun = true; |
| | | //if (tag.RGV.bit2taskOver_LAST == 1) |
| | | // RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg); |
| | | } |
| | | if (task1Isrun || task2Isrun) |
| | | { |
| | | string mes = ""; |
| | | if (task1Isrun) |
| | | mes += tag.RGV.ReadTask1No + "æ§è¡ä¸..."; |
| | | if (task2Isrun) |
| | | mes += tag.RGV.ReadTask2No + "æ§è¡ä¸..."; |
| | | LogHelper.Info($"{mes} ä¸è½ä¸åæ°ä»»å¡ã"); |
| | | System.Threading.Thread.Sleep(3000); |
| | | return; |
| | | } |
| | | var thisOver = 0; |
| | | TaskEntity task1 = null; |
| | | TaskEntity task2 = null; |
| | | |
| | | LogHelper.Info($"æ¥çRGV 1å·¥ä½ä»»å¡ã"); |
| | | if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver == 1) |
| | | { |
| | | var taskno = tag.RGV.ReadTask1No; |
| | | LogHelper.Info($"RGV 1å·¥ä½ä»»å¡{tag.RGV.ReadTask1No}"); |
| | | string tno = "TN" + (DateTime.Now.ToString("yy")) + ((taskno.ToString()).PadLeft(8, '0')); |
| | | task1 = taskservice.FindEntity(x => x.S_TASK_NO == tno); |
| | | |
| | | LogHelper.Info($"RGV 1å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task1)}.bit1taskOver_LASTï¼{tag.RGV.bit1taskOver_LAST}"); |
| | | if (tag.RGV.bit1taskOver_LAST == 0 && task1 != null) |
| | | { |
| | | if (task1.S_B_STATE != "宿") |
| | | { |
| | | thisOver = 1; |
| | | if (task1.S_B_STATE == "åè´§å®æ") |
| | | { |
| | | task1.S_B_STATE = "宿"; |
| | | tag.RGV.ReadTask1No = 0; |
| | | } |
| | | else |
| | | { |
| | | task1.S_B_STATE = "åè´§å®æ"; |
| | | } |
| | | tag.RGV.bit1taskOver = 0; |
| | | LogHelper.Info($"RGV 1å·¥ä½ä»»å¡{task1.S_TASK_NO} ç¶æåæ¢ä¸º{task1.S_B_STATE}"); |
| | | //tag.RGV.bit1taskOver_LAST = 1; |
| | | RedisHelper.Add($"RGV.bit1taskOver_LAST", "1", out string msg); |
| | | LogHelper.Info($"RGV 1å·¥ä½ä»»å¡åå¤ç"); |
| | | taskservice.Update(task1); |
| | | LogHelper.Info($"RGV 1å·¥ä½ä»»å¡æ´æ°ã"); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("RGV1å·¥ä½ä»»å¡å·²ç»å®æã"); |
| | | } |
| | | } |
| | | } |
| | | else if (tag.RGV.ReadTask1No == 0) |
| | | { |
| | | LogHelper.Info($"RGV 1工使²¡æä»»å¡ã"); |
| | | } |
| | | |
| | | LogHelper.Info($"æ¥çRGV 2å·¥ä½ä»»å¡ã"); |
| | | if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver == 1) |
| | | { |
| | | var taskno = tag.RGV.ReadTask2No; |
| | | LogHelper.Info($"RGV 2å·¥ä½ä»»å¡{tag.RGV.ReadTask2No}"); |
| | | string tno = "TN" + (DateTime.Now.ToString("yy")) + ((taskno.ToString()).PadLeft(8, '0')); |
| | | task2 = taskservice.FindEntity(x => x.S_TASK_NO == tno); |
| | | |
| | | LogHelper.Info($"RGV2å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task2)}.bit2taskOver_LASTï¼{tag.RGV.bit2taskOver_LAST}"); |
| | | if (tag.RGV.bit2taskOver_LAST == 0 && task2 != null) |
| | | { |
| | | if (task2.S_B_STATE != "宿") |
| | | { |
| | | thisOver = 2; |
| | | if (task2.S_B_STATE == "åè´§å®æ") |
| | | { |
| | | task2.S_B_STATE = "宿"; |
| | | tag.RGV.ReadTask2No = 0; |
| | | } |
| | | else |
| | | { |
| | | task2.S_B_STATE = "åè´§å®æ"; |
| | | } |
| | | tag.RGV.bit2taskOver = 0; |
| | | LogHelper.Info($"RGV 2å·¥ä½ä»»å¡{task2.S_TASK_NO} ç¶æåæ¢ä¸º{task2.S_B_STATE}"); |
| | | RedisHelper.Add($"RGV.bit2taskOver_LAST", "1", out string msg); |
| | | LogHelper.Info($"RGV 2å·¥ä½ä»»å¡åå¤ç"); |
| | | taskservice.Update(task2); |
| | | LogHelper.Info($"RGV 2å·¥ä½ä»»å¡æ´æ°ã"); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("RGV2å·¥ä½ä»»å¡å·²ç»å®æã"); |
| | | } |
| | | } |
| | | } |
| | | else if (tag.RGV.ReadTask2No == 0) |
| | | { |
| | | LogHelper.Info($"RGV 2工使²¡æä»»å¡ã"); |
| | | } |
| | | |
| | | |
| | | |
| | | //if (thisOver > 0) |
| | | //{ |
| | | // var v2 = RedisHelper.Get<WriteGroupEntity>("RGVQueue", out string rev); |
| | | // if (v2 != null) |
| | | // { |
| | | // LogHelper.Info($"RGVQueue 读å°ç»æ-{JsonConvert.SerializeObject(v2)} \n ä¸ååè¿è¡æ¸
é¤ã"); |
| | | // var b = RedisHelper.Remove("RGVQueue", out rev); |
| | | // } |
| | | //} |
| | | |
| | | ///1 æè´§ å°±2 åã 1 没货 å°±2 å¸è´§ï¼ é½æè´§ å°±1å¸è´§ã 齿²¡è´§ å°±1å¸ |
| | | var tklist = taskservice.FindList(x => x.S_B_STATE == "æªæ§è¡" && x.S_WORK_MODE == "RGV").OrderBy(x => x.T_CREATE).ToList(); |
| | | if (task1 != null && task1.S_B_STATE != "宿") //1æä»»å¡ |
| | | { |
| | | if (task2 != null && task2.S_B_STATE != "宿")// 1 æä»»å¡ 2 æä»»å¡ã |
| | | { |
| | | LogHelper.Info($"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 乿任å¡{task2.S_TASK_NO}ã å¼å§å·¥ä½1 å¸è´§ã"); |
| | | tag.RGV.workMod = 1; |
| | | tag.RGV.taskmod = 2; |
| | | tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4)); |
| | | tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC); |
| | | System.Threading.Thread.Sleep(750); |
| | | //RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg); |
| | | //tag.RGV.taskend = 125; |
| | | //Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue"); |
| | | |
| | | LogHelper.Info($"{task1.S_TASK_NO}> bit1taskOver_LAST å 0"); |
| | | RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg); |
| | | LogHelper.Info($"{task1.S_TASK_NO}> end å 125"); |
| | | Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | } |
| | | else //1æä»»å¡ 2 没任å¡ã |
| | | { |
| | | |
| | | LogHelper.Info($"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡ã"); |
| | | |
| | | var leftSide = new List<string> { "1023", "1020" }; |
| | | var RightSide = new List<string> { "1002", "1008", "1010", "1016" }; |
| | | bool creT2 = false; |
| | | |
| | | // 2å· ä¼å
ç» 1020 1008 1016 |
| | | var t2 = tklist.OrderBy(x => x.T_CREATE).ToList().Find(x => x.S_START_LOC == "1020" || x.S_START_LOC == "1008" || x.S_START_LOC == "1016"); |
| | | if (t2 != null) |
| | | { |
| | | LogHelper.Info($"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾1020 1008 1016åè´§ä»»å¡{t2.S_TASK_NO}ã"); |
| | | tag.RGV.workMod = 2; |
| | | tag.RGV.taskmod = 1; |
| | | tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4)); |
| | | tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC); |
| | | t2.S_B_STATE = "å·²æ¨é"; |
| | | taskservice.Update(t2); |
| | | creT2 = true; |
| | | System.Threading.Thread.Sleep(750); |
| | | LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å 0"); |
| | | RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg); |
| | | LogHelper.Info($"{t2.S_TASK_NO}> end å 125"); |
| | | Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | } |
| | | ////2 妿æåä¾§åè´§ä»»å¡ãå°±åãæ²¡æ |
| | | //else if (leftSide.Contains(task1.S_START_LOC)) |
| | | //{ |
| | | // leftSide.Remove(task1.S_START_LOC); |
| | | // var lsde = leftSide.FirstOrDefault(); |
| | | // t2 = tklist.Find(x => x.S_START_LOC == lsde && x.S_END_LOC != "1017"); |
| | | // if (t2 != null) //åä¾§åè´§ä»»å¡ã |
| | | // { |
| | | // LogHelper.Info($"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡{t2.S_TASK_NO}ã"); |
| | | // tag.RGV.workMod = 2; |
| | | // tag.RGV.taskmod = 1; |
| | | // tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4)); |
| | | // tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC); |
| | | // t2.S_B_STATE = "å·²æ¨é"; |
| | | // taskservice.Update(t2); |
| | | // creT2 = true; |
| | | // System.Threading.Thread.Sleep(750); |
| | | // LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å 0"); |
| | | // RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg); |
| | | // LogHelper.Info($"{t2.S_TASK_NO}> end å 125"); |
| | | // Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | // } |
| | | //} |
| | | //else if (RightSide.Contains(task1.S_START_LOC)) |
| | | //{ |
| | | // RightSide.Remove(task1.S_START_LOC); |
| | | // t2 = tklist.Find(x => RightSide.Contains(x.S_START_LOC) && x.S_END_LOC != "1017"); |
| | | // if (t2 != null) //åä¾§åè´§ä»»å¡ã |
| | | // { |
| | | // LogHelper.Info($"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§ 1002,1010 åè´§ä»»å¡{t2.S_TASK_NO}ã"); |
| | | // tag.RGV.workMod = 2; |
| | | // tag.RGV.taskmod = 1; |
| | | // tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4)); |
| | | // tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC); |
| | | // t2.S_B_STATE = "å·²æ¨é"; |
| | | // taskservice.Update(t2); |
| | | // creT2 = true; |
| | | // System.Threading.Thread.Sleep(750); |
| | | // LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å 125"); |
| | | // RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg); |
| | | // LogHelper.Info($"{t2.S_TASK_NO}> end å 125"); |
| | | // Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | // } |
| | | //} |
| | | else //1 ç´æ¥å¸è´§ã |
| | | //if (!creT2) |
| | | { |
| | | LogHelper.Info($"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã 没æåä¾§åè´§ä»»å¡ 1å·¥ä½å¸è´§ã"); |
| | | tag.RGV.workMod = 1; |
| | | tag.RGV.taskmod = 2; |
| | | tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4)); |
| | | tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC); |
| | | System.Threading.Thread.Sleep(750); |
| | | LogHelper.Info($"{task1.S_TASK_NO}> bit1taskOver_LAST å 0"); |
| | | RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg); |
| | | LogHelper.Info($"{task1.S_TASK_NO}> taskend å 0"); |
| | | Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (task2 != null && task2.S_B_STATE != "宿")// 1 æ²¡ä»»å¡ 2 æä»»å¡ã |
| | | { |
| | | LogHelper.Info($"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 æä»»å¡{task2.S_TASK_NO}ãå·¥ä½2å¸è´§ãã"); |
| | | //2 å¸è´§ã |
| | | tag.RGV.workMod = 2; |
| | | tag.RGV.taskmod = 2; |
| | | tag.RGV.taskno2 = Convert.ToUInt32(task2.S_TASK_NO.Substring(4)); |
| | | tag.RGV.task2do = Convert.ToUInt16(task2.S_END_LOC); |
| | | System.Threading.Thread.Sleep(750); |
| | | LogHelper.Info($"{task2.S_TASK_NO}> bit2taskOver_LAST å 0"); |
| | | RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg); |
| | | //tag.RGV.taskend = 125; |
| | | LogHelper.Info($"{task2.S_TASK_NO}> taskend å125"); |
| | | Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | } |
| | | else if (tklist.Any()) //1mei ä»»å¡ 2 没任å¡ã |
| | | { |
| | | LogHelper.Info($"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 乿²¡ä»»å¡ãä¼å
1å·¥ä½ç»ç¹1017ä»»å¡ãã"); |
| | | //ãä¸ 1017ä»»å¡ ç»1å·å·¥ä½ã |
| | | //var lss = tklist.Take(2).ToList(); |
| | | var e1017first = tklist.Find(x => x.S_START_LOC == "1002" || x.S_START_LOC == "1010" || x.S_START_LOC == "1023"); |
| | | //if (e1017first != null) |
| | | //{ |
| | | // e1017first = tklist.FirstOrDefault(); |
| | | //} |
| | | if (e1017first != null) |
| | | { |
| | | LogHelper.Info($"æ¥çRGV1 ä»»å¡å·¥ä½2 没任å¡ã 1002 1010 1023åè´§ä»»å¡{e1017first.S_TASK_NO}ã"); |
| | | tag.RGV.workMod = 1; |
| | | tag.RGV.taskmod = 1; |
| | | uint tno = Convert.ToUInt32(e1017first.S_TASK_NO.Substring(4)); |
| | | LogHelper.Info($"{e1017first.S_TASK_NO}> 转æ¢åä»»å¡å·{tno} å¼å§åå
¥ã"); |
| | | tag.RGV.taskno1 = tno; |
| | | LogHelper.Info($"{e1017first.S_TASK_NO}>å¼å§åå
¥ task1do>>{e1017first.S_START_LOC}ã"); |
| | | tag.RGV.task1do = Convert.ToUInt16(e1017first.S_START_LOC); |
| | | LogHelper.Info($"{e1017first.S_TASK_NO}> æ´æ°ä»»å¡ã"); |
| | | e1017first.S_B_STATE = "å·²æ¨é"; |
| | | taskservice.Update(e1017first); |
| | | System.Threading.Thread.Sleep(750); |
| | | LogHelper.Info($"{e1017first.S_TASK_NO}> bit1taskOver_LAST å0"); |
| | | RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg); |
| | | LogHelper.Info($"{e1017first.S_TASK_NO}> taskend å125"); |
| | | //tag.RGV.taskend=125 |
| | | Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | } |
| | | else |
| | | { |
| | | var t2 = tklist.OrderBy(x => x.T_CREATE).ToList().Find(x => x.S_START_LOC == "1020" || x.S_START_LOC == "1008" || x.S_START_LOC == "1016"); |
| | | if (tklist != null) |
| | | { |
| | | LogHelper.Info($"æ¥çRGV1 没任å¡å·¥ä½2 没任å¡ã æ¾1020 1008 1016åè´§ä»»å¡{t2.S_TASK_NO}ã"); |
| | | tag.RGV.workMod = 2; |
| | | tag.RGV.taskmod = 1; |
| | | tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4)); |
| | | tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC); |
| | | t2.S_B_STATE = "å·²æ¨é"; |
| | | taskservice.Update(t2); |
| | | System.Threading.Thread.Sleep(750); |
| | | LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å 0"); |
| | | RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg); |
| | | LogHelper.Info($"{t2.S_TASK_NO}> end å 125"); |
| | | Conn.é»è®¤Redis.SetValue("RGV.taskend", "125", "RGVQueue", false); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | LogHelper.Info($"rgv å¤ç宿ãtaskend 125"); |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Info(ex.Message + ex.StackTrace); |
| | | } |
| | | } |
| | | |
| | | |
| | | public void ThreadGrats(Tag tag, Action<HaiKangOrderInfo> continueTask) |
| | | { |
| | | Console.WriteLine($"ThreadGrats å
æ
å¤ç =================> "); |
| | | var taskCOdes = new List<string> { "Sarrive", "Srelease", "Earrive", "Erelease" }; |
| | | TaskActRepository taskActRepository = new TaskActRepository(); |
| | | TaskRepository taskRepository = new TaskRepository(); |
| | | var requires = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0); |
| | | foreach (var item in requires) |
| | | { |
| | | var tin = taskCOdes.IndexOf(item.S_ACTION_CODE); |
| | | if (tin == -1) |
| | | { |
| | | item.N_CREATEMETHOD = -1; |
| | | taskActRepository.Update(item); |
| | | continue; |
| | | } |
| | | //var task = taskRepository.FindEntity(x => x.S_TASK_NO == item.S_TASK_NO); |
| | | string loc = ""; |
| | | if (tin < 2) |
| | | { |
| | | loc = item.S_START_LOC; |
| | | } |
| | | else |
| | | { |
| | | loc = item.S_END_LOC; |
| | | } |
| | | if (loc == null) continue; else loc = loc.Trim(); |
| | | bool goin = tin % 2 == 0; |
| | | bool continuuuuu = false; |
| | | var dev = Settings.deviceInfos.Find(x => x.location.Contains(loc)); |
| | | if (dev != null) |
| | | { |
| | | var V = dev.location.ToList().FindIndex(x => x == loc) == 0; |
| | | //è½¦èµ°äº å¼å
æ
|
| | | if (!goin) |
| | | { |
| | | if (dev.deviceType == 1) |
| | | { |
| | | LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "å³")} å
æ
{(goin ? "å
³é" : "å¼å¯")} ç³è¯·ã" + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "R02" : "R04"), "true", dev.deviceName + "Queue")); |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + "." + (V ? "R02" : "R04"), "true", dev.deviceName + "Queue"); |
| | | |
| | | } |
| | | else if (dev.deviceType == 2) |
| | | { |
| | | LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "å³")} å
æ
{(goin ? "å
³é" : "å¼å¯")} ç³è¯·ã" + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "D1222" : "D1223"), "1", dev.deviceName + "Queue")); |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + "." + (V ? "D1222" : "D1223"), "1", dev.deviceName + "Queue"); |
| | | } |
| | | |
| | | item.N_CREATEMETHOD = 1; |
| | | taskActRepository.Update(item); |
| | | } |
| | | //车è¦è¿å
¥äº¤äºã |
| | | else |
| | | { |
| | | if (dev.deviceType == 1) |
| | | { |
| | | var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + "." + (V ? "R50" : "R52"));//读å
³éç¶æ |
| | | if (tf?.ToLower() == "true") |
| | | { |
| | | LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "å³")} å
æ
{(goin ? "å
³é" : "å¼å¯")} ç³è¯·ã å·²ç»å
³éï¼"); |
| | | continuuuuu = true; |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "å³")} å
æ
{(goin ? "å
³é" : "å¼å¯")} ç³è¯·ã" + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "R01" : "R03"), "true", dev.deviceName + "Queue")); |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + "." + (V ? "R01" : "R03"), "true", dev.deviceName + "Queue"); |
| | | } |
| | | |
| | | } |
| | | else if (dev.deviceType == 2) |
| | | { |
| | | var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + ".D1202"); |
| | | int numm = int.Parse(string.IsNullOrEmpty(tf) ? "0" : tf); |
| | | if (TcpServer.GetBitdata(numm, (V ? 0 : 1)) == 1) |
| | | { |
| | | LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "å³")} å
æ
{(goin ? "å
³é" : "å¼å¯")} ç³è¯·ã å·²ç»å
³éï¼"); |
| | | continuuuuu = true; |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "å³")} å
æ
{(goin ? "å
³é" : "å¼å¯")} ç³è¯·ã" + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "D1220" : "D1221"), dev.deviceName + "Queue")); |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + "." + (V ? "D1220" : "D1221"), "1", dev.deviceName + "Queue"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | if (continuuuuu) |
| | | { |
| | | LogHelper.Info($"{item.S_TASK_NO}{item.S_ACTION_CODE} 车è¾åéç»§ç»ä»»å¡ï¼"); |
| | | continueTask?.Invoke(new HaiKangOrderInfo |
| | | { |
| | | reqCode = item.S_ID.Replace("-", ""), |
| | | taskCode = item.S_TASK_NO |
| | | }); |
| | | item.N_CREATEMETHOD = 1; |
| | | taskActRepository.Update(item); |
| | | } |
| | | } |
| | | System.Threading.Thread.Sleep(3000); |
| | | //éç½®ä¿¡å· |
| | | foreach (var dev in Settings.deviceInfos.FindAll(x => x.deviceType == 2)) |
| | | { |
| | | var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + ".D1202"); |
| | | int numm = int.Parse(string.IsNullOrEmpty(tf) ? "0" : tf); |
| | | if (TcpServer.GetBitdata(numm, 0) == 0) |
| | | { |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + ".D1220", "0", dev.deviceName + "Queue"); |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + ".D1222", "0", dev.deviceName + "Queue"); |
| | | } |
| | | else if (TcpServer.GetBitdata(numm, 1) == 0) |
| | | { |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + ".D1221", "0", dev.deviceName + "Queue"); |
| | | Conn.é»è®¤Redis.SetValue(dev.deviceName + ".D1223", "0", dev.deviceName + "Queue"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 1020 1023空æ¡ä¸çº¿ |
| | | /// </summary> |
| | | /// <param name="tag"></param> |
| | | public void ThreadEdown(Tag tag) |
| | | { |
| | | Console.WriteLine($"ThreadEdown 20 23 = ç©ºä¸æ£æµ =================> "); |
| | | TaskRepository taskRepository = new TaskRepository(); |
| | | foreach (var Bssx in new string[] { "1020", "1023" }) |
| | | { |
| | | var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.RtaskState"), typeof(System.UInt16)); |
| | | var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.RtaskState_LAST"), typeof(System.UInt16)); |
| | | var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.Ræçç "), typeof(System.String)); |
| | | Console.WriteLine($"{Bssx} ç©ºä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç } "); |
| | | if (RtaskState == 3 && RtaskState_LAST == 0) |
| | | { |
| | | var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != "宿" && x.S_B_STATE != "忶"); |
| | | string msg = ""; |
| | | if (task != null) |
| | | { |
| | | Console.WriteLine($"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | LogHelper.Info($"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | continue; |
| | | } |
| | | try |
| | | { |
| | | var listtep = new List<string>(); |
| | | if (Bssx == "1020") |
| | | { |
| | | if (tag.SF䏿ä½.RArrive1003 == 1) |
| | | { |
| | | listtep = new List<string> { "1012", "1004" }; |
| | | } |
| | | else |
| | | { |
| | | listtep = new List<string> { "1004", "1012" }; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (tag.SF䏿ä½.RArrive1005 == 1) |
| | | { |
| | | listtep = new List<string> { "1014", "1006" }; |
| | | } |
| | | else |
| | | { |
| | | listtep = new List<string> { "1006", "1014" }; |
| | | } |
| | | } |
| | | |
| | | foreach (var item in listtep)//(Bssx == "1020" ? new string[] { "1004", "1012" } : new string[] { "1006", "1014" })) |
| | | { |
| | | var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²"), typeof(System.UInt16)); |
| | | var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²_LAST"), typeof(System.UInt16)); |
| | | if (R5 == 5 && R5空é²_LAST == 0 && task == null) |
| | | { |
| | | task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != "宿" && x.S_B_STATE != "忶"); |
| | | msg = ""; |
| | | if (task != null) |
| | | { |
| | | Console.WriteLine($" {item}ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | LogHelper.Info($" {item}ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | continue; |
| | | } |
| | | |
| | | var b = TaskProcess.CreateTask("", Bssx, item, "空ä¸RGV", 5, new List<string> { Ræçç }, "RGV"); |
| | | if (b) |
| | | { |
| | | LogHelper.Debug($"è¾é线RGV空æä»»å¡ from:{Bssx}>to {item}å¼å§å建æå"); |
| | | RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out msg); |
| | | //Conn.é»è®¤Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "1", $"S{Bssx}ReadQueue"); |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "1", out msg); |
| | | //Conn.é»è®¤Redis.SetValue($"S{item}Read.R5空é²_LAST", "1", $"S{item}ReadQueue"); |
| | | break; |
| | | } |
| | | } |
| | | else if (R5 != 5 && R5空é²_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "0", out msg); |
| | | //Conn.é»è®¤Redis.SetValue($"S{item}Read.R5空é²_LAST", "0", $"S{item}ReadQueue"); |
| | | } |
| | | } |
| | | System.Threading.Thread.Sleep(1000); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message, ex); |
| | | Console.WriteLine(ex.Message + ex.StackTrace); |
| | | } |
| | | } |
| | | else if (RtaskState != 3 && RtaskState_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "0", out string msg); |
| | | //Conn.é»è®¤Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "0", $"S{Bssx}ReadQueue"); |
| | | } |
| | | System.Threading.Thread.Sleep(2000); |
| | | } |
| | | |
| | | foreach (var item in new string[] { "1004", "1012", "1006", "1014", "1026", "1017" }) |
| | | { |
| | | var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²"), typeof(System.UInt16)); |
| | | var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²_LAST"), typeof(System.UInt16)); |
| | | if (R5 != 5 && R5空é²_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "0", out string msg); |
| | | //Conn.é»è®¤Redis.SetValue($"S{item}Read.R5空é²_LAST", "0", $"S{item}ReadQueue"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void ThreadDdown(Tag tag) |
| | | { |
| | | Console.WriteLine($"ThreadDdown 08 10 ==================> 1026"); |
| | | TaskRepository taskRepository = new TaskRepository(); |
| | | foreach (var Bssx in new string[] { "1008", "1016" }) |
| | | { |
| | | var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.RtaskState"), typeof(System.UInt16)); |
| | | var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.RtaskState_LAST"), typeof(System.UInt16)); |
| | | var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.Ræçç "), typeof(System.String)); |
| | | Console.WriteLine($"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }"); |
| | | if (RtaskState == 3 && RtaskState_LAST == 0) |
| | | { |
| | | var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != "宿" && x.S_B_STATE != "忶"); |
| | | string msg = ""; |
| | | if (task != null) |
| | | { |
| | | Console.WriteLine($"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | LogHelper.Info($"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | continue; |
| | | } |
| | | |
| | | var item = "1026"; |
| | | var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²"), typeof(System.UInt16)); |
| | | var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²_LAST"), typeof(System.UInt16)); |
| | | if (R5 == 5 && R5空é²_LAST == 0) |
| | | { |
| | | task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != "宿" && x.S_B_STATE != "忶"); |
| | | msg = ""; |
| | | if (task != null) |
| | | { |
| | | Console.WriteLine($"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | LogHelper.Info($"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | continue; |
| | | } |
| | | var b = TaskProcess.CreateTask("", Bssx, item, "满转1026", 5, new List<string> { Ræçç }, "RGV"); |
| | | if (b) |
| | | { |
| | | RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out msg); |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "1", out string msg2); |
| | | //Conn.é»è®¤Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "1", $"S{Bssx}ReadQueue"); |
| | | //Conn.é»è®¤Redis.SetValue($"S{item}Read.R5空é²_LAST", "1", $"S{item}ReadQueue"); |
| | | break; |
| | | } |
| | | } |
| | | else if (R5 != 5 && R5空é²_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "0", out string msg2); |
| | | } |
| | | } |
| | | else if (RtaskState != 3 && RtaskState_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "0", out string msg); |
| | | //Conn.é»è®¤Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "0", $"S{Bssx}ReadQueue"); |
| | | } |
| | | System.Threading.Thread.Sleep(2000); |
| | | } |
| | | } |
| | | |
| | | public void Thread0210Down(Tag tag) |
| | | { |
| | | Console.WriteLine($"Thread0210Down ==================>"); |
| | | TaskRepository taskRepository = new TaskRepository(); |
| | | foreach (var Bssx in new string[] { "1002", "1010" }) |
| | | { |
| | | var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.RtaskState"), typeof(System.UInt16)); |
| | | var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.RtaskState_LAST"), typeof(System.UInt16)); |
| | | var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{Bssx}Read.Ræçç "), typeof(System.String)); |
| | | Console.WriteLine($"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }"); |
| | | if (RtaskState == 3 && RtaskState_LAST == 0) |
| | | { |
| | | var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != "宿" && x.S_B_STATE != "忶"); |
| | | string msg = ""; |
| | | if (task != null) |
| | | { |
| | | Console.WriteLine($"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | LogHelper.Info($"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | continue; |
| | | } |
| | | var item = "1017"; |
| | | var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²"), typeof(System.UInt16)); |
| | | var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"S{item}Read.R5空é²_LAST"), typeof(System.UInt16)); |
| | | if (R5 == 5 && R5空é²_LAST == 0) |
| | | { |
| | | task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != "宿" && x.S_B_STATE != "忶"); |
| | | msg = ""; |
| | | if (task != null) |
| | | { |
| | | Console.WriteLine($"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | LogHelper.Info($"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡"); |
| | | continue; |
| | | } |
| | | var b = TaskProcess.CreateTask("", Bssx, item, "满转1017", 5, new List<string> { Ræçç }, "RGV"); |
| | | if (b) |
| | | { |
| | | RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out msg); |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "1", out string msg1); |
| | | //Conn.é»è®¤Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "1", $"S{Bssx}ReadQueue"); |
| | | //Conn.é»è®¤Redis.SetValue($"S{item}Read.R5空é²_LAST", "1", $"S{item}ReadQueue"); |
| | | break; |
| | | } |
| | | } |
| | | else if (R5 != 5 && R5空é²_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{item}Read.R5空é²_LAST", "0", out string msg1); |
| | | } |
| | | } |
| | | else if (RtaskState != 3 && RtaskState_LAST == 1) |
| | | { |
| | | RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "0", out string msg); |
| | | } |
| | | System.Threading.Thread.Sleep(2000); |
| | | } |
| | | } |
| | | |
| | | |
| | | public void Thread䏿使£æµ(Tag tag) |
| | | { |
| | | Console.WriteLine($"Thread䏿使£æµ =====>"); |
| | | foreach (var ssx in new string[] { "1003", "1005", "1011", "1013" }) |
| | | { |
| | | var RArrive = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"FNK1003051113.RArrive{ssx}"), typeof(System.UInt16)); |
| | | var RArriveLast = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($"FNK1003051113.RArrive{ssx}_LAST"), typeof(System.UInt16)); |
| | | if (RArrive == 1 && RArriveLast == 0) |
| | | { |
| | | if (ssx == "1005" && tag.SF䏿ä½.WRelease1005 == 0) |
| | | { |
| | | tag.FNK1.D2215 = 1; |
| | | //tag.SF䏿ä½.RArrive1005_LAST = 1; |
| | | RedisHelper.Add($"FNK1003051113.RArrive1005_LAST", "1", out string msg); |
| | | |
| | | //tag.SF䏿ä½.WRelease1005 = 0; |
| | | //tag.SF䏿ä½.WSafe0305 = 0; |
| | | } |
| | | else if (ssx == "1003" && tag.SF䏿ä½.WRelease1003 == 0) |
| | | { |
| | | tag.FNK1.D2210 = 1; |
| | | //tag.SF䏿ä½.RArrive1003_LAST = 1; |
| | | |
| | | RedisHelper.Add($"FNK1003051113.RArrive1003_LAST", "1", out string msg); |
| | | |
| | | //tag.SF䏿ä½.WRelease1003 = 0; |
| | | //tag.SF䏿ä½.WSafe0305 = 0; |
| | | } |
| | | else if (ssx == "1013" && tag.SF䏿ä½.WRelease1013 == 0) |
| | | { |
| | | tag.FNK2.D2215 = 1; |
| | | //tag.SF䏿ä½.RArrive1013_LAST = 1; |
| | | RedisHelper.Add($"FNK1003051113.RArrive1013_LAST", "1", out string msg); |
| | | |
| | | //tag.SF䏿ä½.WRelease1013 = 0; |
| | | //tag.SF䏿ä½.WSafe1113 = 0; |
| | | } |
| | | else if (ssx == "1011" && tag.SF䏿ä½.WRelease1011 == 0) |
| | | { |
| | | tag.FNK2.D2210 = 1; |
| | | //tag.SF䏿ä½.RArrive1011_LAST = 1; |
| | | RedisHelper.Add($"FNK1003051113.RArrive1011_LAST", "1", out string msg); |
| | | |
| | | //tag.SF䏿ä½.WRelease1011 = 0; |
| | | //tag.SF䏿ä½.WSafe1113 = 0; |
| | | } |
| | | } |
| | | else if (RArrive == 0 && RArriveLast == 1) |
| | | { |
| | | RedisHelper.Add($"FNK1003051113.RArrive{ssx}_LAST", "0", out string msg); |
| | | //Conn.é»è®¤Redis.SetValue($"FNK1003051113.RArrive{ssx}_LAST", "0", $"FNK1003051113Queue"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void ThreadFNK1Over(Tag tag) |
| | | { |
| | | Console.WriteLine($"ThreadFNK1Over =====>"); |
| | | if (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0) |
| | | { |
| | | tag.FNK1.D2215 = 0; |
| | | //tag.FNK1.D2212_LAST = 1; |
| | | RedisHelper.Add($"påé£ç§1ä¸çº¿.D2217_LAST", "1", out string msg); |
| | | |
| | | tag.SF䏿ä½.WRelease1005 = 1; |
| | | tag.SF䏿ä½.WSafe0305 = 1; |
| | | System.Threading.Thread.Sleep(1000); |
| | | RedisHelper.Add($"FNK1003051113.RArrive1005_LAST", "0", out msg); |
| | | } |
| | | if (tag.FNK1.D2216 == 1) |
| | | tag.FNK1.D2215 = 0; |
| | | else if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1) |
| | | //tag.FNK1.D2217_LAST = 0; |
| | | RedisHelper.Add($"påé£ç§1ä¸çº¿.D2217_LAST", "0", out string msg); |
| | | |
| | | if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0) |
| | | { |
| | | tag.FNK1.D2210 = 0; |
| | | //tag.FNK1.D2217_LAST = 1; |
| | | RedisHelper.Add($"påé£ç§1ä¸çº¿.D2212_LAST", "1", out string msg); |
| | | tag.SF䏿ä½.WRelease1003 = 1; |
| | | tag.SF䏿ä½.WSafe0305 = 1; |
| | | System.Threading.Thread.Sleep(1000); |
| | | RedisHelper.Add($"FNK1003051113.RArrive1003_LAST", "0", out msg); |
| | | } |
| | | //else if (tag.FNK1.D2211 == 1) |
| | | // tag.FNK1.D2210 = 0; |
| | | else if (tag.FNK1.D2212 == 0 && tag.FNK1.D2212_LAST == 1) |
| | | { |
| | | //tag.FNK1.D2212_LAST = 0; |
| | | RedisHelper.Add($"påé£ç§1ä¸çº¿.D2212_LAST", "0", out string msg); |
| | | } |
| | | if (tag.FNK1.D2211 == 1) |
| | | tag.FNK1.D2210 = 0; |
| | | |
| | | } |
| | | public void ThreadFNK2Over(Tag tag) |
| | | { |
| | | Console.WriteLine($"ThreadFNK2Over =====>"); |
| | | if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0) |
| | | { |
| | | tag.FNK2.D2215 = 0; |
| | | //tag.FNK2.D2212_LAST = 1; |
| | | RedisHelper.Add($"påé£ç§2ä¸çº¿.D2217_LAST", "1", out string msg); |
| | | |
| | | tag.SF䏿ä½.WRelease1013 = 1; |
| | | tag.SF䏿ä½.WSafe1113 = 1; |
| | | System.Threading.Thread.Sleep(1000); |
| | | RedisHelper.Add($"FNK1003051113.RArrive1013_LAST", "0", out msg); |
| | | } |
| | | else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1) |
| | | //tag.FNK2.D2217_LAST = 0; |
| | | RedisHelper.Add($"påé£ç§2ä¸çº¿.D2217_LAST", "0", out string msg); |
| | | |
| | | if (tag.FNK2.D2216 == 1) |
| | | tag.FNK2.D2215 = 0; |
| | | |
| | | if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0) |
| | | { |
| | | tag.FNK2.D2210 = 0; |
| | | //tag.FNK2.D2217_LAST = 1; |
| | | RedisHelper.Add($"påé£ç§2ä¸çº¿.D2212_LAST", "1", out string msg); |
| | | |
| | | tag.SF䏿ä½.WRelease1011 = 1; |
| | | tag.SF䏿ä½.WSafe1113 = 1; |
| | | System.Threading.Thread.Sleep(1000); |
| | | RedisHelper.Add($"FNK1003051113.RArrive1011_LAST", "0", out msg); |
| | | } |
| | | else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1) |
| | | { |
| | | //tag.FNK2.D2212_LAST = 0; |
| | | RedisHelper.Add($"påé£ç§2ä¸çº¿.D2212_LAST", "0", out string msg); |
| | | } |
| | | if (tag.FNK2.D2211 == 1) |
| | | tag.FNK2.D2210 = 0; |
| | | |
| | | } |
| | | |
| | | public void Thread1019Down(Tag tag) |
| | | { |
| | | Console.WriteLine($"1019ä»»å¡ç¶æï¼ =====>"); |
| | | Console.WriteLine($"1019ä»»å¡ç¶æï¼{tag.SA1019.RtaskState}- barcode:{tag.SA1019.Ræçç }- 空é²{tag.SA1019.R5空é²}"); |
| | | } |
| | | public void Thread1025Up(Tag tag) |
| | | { |
| | | Console.WriteLine($"SA1025 ä»»å¡ç¶æï¼ =====>"); |
| | | Console.WriteLine($"SA1025 ä»»å¡ç¶æï¼{tag.SA1025.RtaskState}- 空é²{tag.SA1025.R5空é²}"); |
| | | } |
| | | public void Thread1022Up(Tag tag) |
| | | { |
| | | Console.WriteLine($"SA1022 =====>"); |
| | | Console.WriteLine($"SA1022 ä»»å¡ç¶æï¼{tag.SA1022.RtaskState}- 空é²{tag.SA1022.R5空é²}"); |
| | | } |
| | | public void Thread1030Down(Tag tag) |
| | | { |
| | | Console.WriteLine($"SA1030 ä»»å¡ç¶æï¼ =====>"); |
| | | Console.WriteLine($"SA1030 ä»»å¡ç¶æï¼{tag.SA1030.RtaskState}- 空é²{tag.SA1030.R5空é²}-->对åºç»ç¹2001>空é²5ï¼{tag.SA2001.R5空é²}"); |
| | | } |
| | | public void Thread2030Down(Tag tag) |
| | | { |
| | | Console.WriteLine($"SA2030 ä»»å¡ç¶æï¼ =====>"); |
| | | Console.WriteLine($"SA2030 ä»»å¡ç¶æï¼{tag.SA2030.RtaskState}- 空é²{tag.SA2030.R5空é²} - barcode:{tag.SA2030.Ræçç }"); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = "AGV", int cntrCount = 1, int startLayer = 1, int endLayer = 1) |
| | | { |
| | | |
| | | LogHelper.Debug($"è¾é线RGV空æä»»å¡ from:{from}>to {to}å¼å§å建>"); |
| | | LogHelper.Info($"è¾é线RGV空æä»»å¡ from:{from}>to {to}å¼å§å建>"); |
| | | var cntrInfo = string.Join(",", cntrs); |
| | | ILocRepository locc = new LocRepository(); |
| | | var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from); |
| | |
| | | locc.Update(endLoc); |
| | | } |
| | | |
| | | LogHelper.Debug($"è¾é线RGV空æä»»å¡ from:{from}>to {to} å建{wmsTask.S_TASK_NO}æå"); |
| | | LogHelper.Info($"è¾é线RGV空æä»»å¡ from:{from}>to {to} å建{wmsTask.S_TASK_NO}æå"); |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | "Type": "MethodCode", |
| | | "Level": "Item", |
| | | "Statement": "public void OperateHKTaskStatus(System.Object param1)", |
| | | "EditCode": "HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\n if (string.IsNullOrEmpty(model.taskCode))\r\n return;\r\n // æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä»»å¡å·\r\n //var wcsTask = WCSHelper.GetTask(model.taskCode);\r\n ITaskRepository MainMissionService = new TaskRepository();\r\n var wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\n if (wcsTask != null)\r\n {\r\n if (!string.IsNullOrWhiteSpace(model.method))\r\n {\r\n ILocRepository locrep = new LocRepository();\r\n var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList();\r\n bool bobe = false;\r\n switch (model.method)\r\n {\r\n case \"start\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºæ§è¡ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n if (wcsTask.S_B_STATE.Trim() == \"å·²æ¨é\")\r\n {\r\n wcsTask.S_B_STATE = \"æ§è¡ä¸\";\r\n wcsTask.T_START_TIME = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n bobe = true;\r\n }\r\n break;\r\n case \"outbin\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåè´§å®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åè´§å®æ\";\r\n\r\n startloc.N_CURRENT_NUM = 0;\r\n startloc.S_LOCK_STATE = \"æ \";\r\n startloc.T_MODIFY = DateTime.Now;\r\n //ILocContainerRepository locContainerRepository = new LocContainerRepository();\r\n ////var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n //locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n MainMissionService.Update(wcsTask);\r\n locrep.Update(startloc);\r\n\r\n bobe = true;\r\n var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC));\r\n if (device != null)\r\n {\r\n if (device.deviceType == 1)\r\n {\r\n if (device.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n { //å¸è´§è¿è¡æ¸
空ï¼è§¦åæ«ç \r\n var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n string V = inde ? \"R05\" : \"R06\";\r\n Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"true\", device.deviceName + \"Queue\");\r\n TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if(device.deviceType == 2){\r\n\t\t\t\t\t\t\t\t\tvar inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n\t\t\t\t\t\t\t\t\t string V = inde? \"D1224\" : \"D1225\";\r\n\t\t\t\t\t\t\t\t\t Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"0\", device.deviceName + \"Queue\");\r\n }\r\n }\r\n //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n break;\r\n case \"end\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºå®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"宿\";\r\n wcsTask.T_END_TIME = DateTime.Now;\r\n\r\n bobe = true;\r\n //ILocContainerRepository locContainerRepository2 = new LocContainerRepository();\r\n //List<LocContainerEntity> llls = new List<LocContainerEntity>();\r\n //foreach (var c in cntrs)\r\n //{\r\n // var action = new LocContainerEntity()\r\n // {\r\n // S_ID = Guid.NewGuid().ToString(),\r\n // S_STATE = \"ç¼è¾\",\r\n // T_CREATE = DateTime.Now,\r\n // T_MODIFY = DateTime.Now,\r\n\r\n // S_LOC_CODE = endLoc.S_LOC_CODE,\r\n // S_CNTR_CODE = c,\r\n // S_TYPE = \"\",\r\n // };\r\n // llls.Add(action);\r\n //}\r\n\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n endLoc.N_CURRENT_NUM = 1;\r\n endLoc.T_MODIFY = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n if(Settings.deviceInfos.Find(x=>x.deviceType==2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC)))!=null)\r\n locrep.Update(endLoc);\r\n //locContainerRepository2.Insert(llls);\r\n\r\n var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC));\r\n if (device2 != null)\r\n {\r\n if (device2.deviceType == 1)\r\n {\r\n if (device2.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n {\r\n //string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R10\" : \"R11\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n //å¸è´§ååæçåèµ°ã ç¶åè§¦åæ«ç è¿è¡æ ¡éªã \r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n //string V = inde ? \"R05\" : \"R06\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n string V2 = inde ? \"R10_LAST\" : \"R11_LAST\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V2, \"true\", device2.deviceName + \"Queue\");\r\n TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if (device2.deviceType == 2)\r\n if (device2.deviceName.Contains(\"Jsæ·é¡º\"))\r\n {\r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n string V = inde? \"D1224\" : \"D1225\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"1\", device2.deviceName + \"Queue\");\r\n\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 3,\r\n cntrCode = cntrs.FirstOrDefault()\r\n }));\r\n //if (device2.deviceName.Contains(\"1\"))\r\n //{\r\n // if (inde) tag.Js1.D1224 = 1;\r\n // else tag.Js1.D1225 = 1;\r\n //}else\r\n //{\r\n // if (inde) tag.Js2.D1224 = 1;\r\n // else tag.Js2.D1225 = 1;\r\n //}\r\n }\r\n }\r\n\r\n //LocationMethod.JudgeLocation(wcsTask);\r\n break;\r\n case \"cancel\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåæ¶ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åæ¶\";\r\n //startloc.S_LOCK_STATE = \"æ \";\r\n //endLoc.S_LOCK_STATE = \"æ \";\r\n MainMissionService.Update(wcsTask);\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n var tare = taskActRepository.FindList(x => x.S_TASK_NO == wcsTask.S_TASK_NO);\r\n if (tare.Any())\r\n {\r\n if(tare.Find(x=>x.S_ACTION_CODE==\"outbin\")==null)\r\n {\r\n startloc.S_LOCK_STATE = \"æ \";\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(startloc);\r\n locrep.Update(endLoc);\r\n }else if (tare.Find(x => x.S_ACTION_CODE == \"end\") == null)\r\n {\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(endLoc);\r\n }\r\n }\r\n\r\n //locrep.Update(startloc);\r\n //locrep.Update(endLoc);\r\n //TaskProcess.OperateStatus(wcsTask, 7);\r\n //WCSHelper.Fail(wcsTask);\r\n break;\r\n case \"apply\":\r\n // å¤æè¯¥ä»»å¡çæ¥é©³ä½æ¯å¦æå
¶ä»å
¥åºæåºåºä»»å¡ï¼å¦ææï¼åå¨çä½çå¾
ï¼å¦ææ²¡æï¼åå
¥\r\n TaskisOk(wcsTask);\r\n break;\r\n }\r\n\r\n if (!string.IsNullOrEmpty(wcsTask.S_SRC_NO))\r\n {\r\n var mestask = MainMissionService.FindEntity(x => x.S_TASK_NO == wcsTask.S_SRC_NO);\r\n if (mestask!=null&&bobe)\r\n {\r\n if ( model.method != \"end\")\r\n {\r\n \tif (mestask.S_START_LOC == wcsTask.S_START_LOC&&mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t }));\r\n }\r\n else\r\n {\r\n if (mestask.S_END_LOC != wcsTask.S_END_LOC)\r\n {\r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µå®æï¼éç½®è¿è¡äºé¶æ®µã\");\r\n mestask.N_PRIORITY = -88;\r\n MainMissionService.Update(mestask);\r\n }\r\n else if(mestask.S_B_STATE == \"MES\")\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n {\r\n reqCode = wcsTask.S_SRC_NO,\r\n model.method\r\n }));\r\n }\r\n }\r\n\r\n }else if(mestask!=null && model.method== \"cancel\")\r\n {\r\n \t if(mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t })); \r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µåæ¶ï¼éç½®ç¹ï¼çº¿ç¨å¤çã\");\r\n mestask.N_PRIORITY = -1;\r\n mestask.S_B_STATE = \"MES_åæ¶\";\r\n MainMissionService.Update(mestask);\r\n }\r\n }\r\n TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data,wcsTask.S_START_LOC,wcsTask.S_END_LOC);\r\n //è°ç¨ç¬¬ä¸æ¹æ¥å£ï¼å¦ææï¼TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // ææ¶è®¾å®ä¸º0\r\n wcsTask.S_B_STATE = \"䏿¥ç¶æç©º\";\r\n //å®å
¨è¯·æ±ç\r\n //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n }\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"å½åä»»å¡å·ä»»å¡ä¸åå¨{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n }", |
| | | "Code": "public void OperateHKTaskStatus(System.Object param1)\r\n{HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\n if (string.IsNullOrEmpty(model.taskCode))\r\n return;\r\n // æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä»»å¡å·\r\n //var wcsTask = WCSHelper.GetTask(model.taskCode);\r\n ITaskRepository MainMissionService = new TaskRepository();\r\n var wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\n if (wcsTask != null)\r\n {\r\n if (!string.IsNullOrWhiteSpace(model.method))\r\n {\r\n ILocRepository locrep = new LocRepository();\r\n var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList();\r\n bool bobe = false;\r\n switch (model.method)\r\n {\r\n case \"start\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºæ§è¡ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n if (wcsTask.S_B_STATE.Trim() == \"å·²æ¨é\")\r\n {\r\n wcsTask.S_B_STATE = \"æ§è¡ä¸\";\r\n wcsTask.T_START_TIME = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n bobe = true;\r\n }\r\n break;\r\n case \"outbin\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåè´§å®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åè´§å®æ\";\r\n\r\n startloc.N_CURRENT_NUM = 0;\r\n startloc.S_LOCK_STATE = \"æ \";\r\n startloc.T_MODIFY = DateTime.Now;\r\n //ILocContainerRepository locContainerRepository = new LocContainerRepository();\r\n ////var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n //locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n MainMissionService.Update(wcsTask);\r\n locrep.Update(startloc);\r\n\r\n bobe = true;\r\n var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC));\r\n if (device != null)\r\n {\r\n if (device.deviceType == 1)\r\n {\r\n if (device.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n { //å¸è´§è¿è¡æ¸
空ï¼è§¦åæ«ç \r\n var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n string V = inde ? \"R05\" : \"R06\";\r\n Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"true\", device.deviceName + \"Queue\");\r\n TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if(device.deviceType == 2){\r\n\t\t\t\t\t\t\t\t\tvar inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n\t\t\t\t\t\t\t\t\t string V = inde? \"D1224\" : \"D1225\";\r\n\t\t\t\t\t\t\t\t\t Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"0\", device.deviceName + \"Queue\");\r\n }\r\n }\r\n //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n break;\r\n case \"end\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºå®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"宿\";\r\n wcsTask.T_END_TIME = DateTime.Now;\r\n\r\n bobe = true;\r\n //ILocContainerRepository locContainerRepository2 = new LocContainerRepository();\r\n //List<LocContainerEntity> llls = new List<LocContainerEntity>();\r\n //foreach (var c in cntrs)\r\n //{\r\n // var action = new LocContainerEntity()\r\n // {\r\n // S_ID = Guid.NewGuid().ToString(),\r\n // S_STATE = \"ç¼è¾\",\r\n // T_CREATE = DateTime.Now,\r\n // T_MODIFY = DateTime.Now,\r\n\r\n // S_LOC_CODE = endLoc.S_LOC_CODE,\r\n // S_CNTR_CODE = c,\r\n // S_TYPE = \"\",\r\n // };\r\n // llls.Add(action);\r\n //}\r\n\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n endLoc.N_CURRENT_NUM = 1;\r\n endLoc.T_MODIFY = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n if(Settings.deviceInfos.Find(x=>x.deviceType==2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC)))!=null)\r\n locrep.Update(endLoc);\r\n //locContainerRepository2.Insert(llls);\r\n\r\n var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC));\r\n if (device2 != null)\r\n {\r\n if (device2.deviceType == 1)\r\n {\r\n if (device2.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n {\r\n //string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R10\" : \"R11\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n //å¸è´§ååæçåèµ°ã ç¶åè§¦åæ«ç è¿è¡æ ¡éªã \r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n //string V = inde ? \"R05\" : \"R06\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n string V2 = inde ? \"R10_LAST\" : \"R11_LAST\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V2, \"true\", device2.deviceName + \"Queue\");\r\n TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if (device2.deviceType == 2)\r\n if (device2.deviceName.Contains(\"Jsæ·é¡º\"))\r\n {\r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n string V = inde? \"D1224\" : \"D1225\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"1\", device2.deviceName + \"Queue\");\r\n\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 3,\r\n cntrCode = cntrs.FirstOrDefault()\r\n }));\r\n //if (device2.deviceName.Contains(\"1\"))\r\n //{\r\n // if (inde) tag.Js1.D1224 = 1;\r\n // else tag.Js1.D1225 = 1;\r\n //}else\r\n //{\r\n // if (inde) tag.Js2.D1224 = 1;\r\n // else tag.Js2.D1225 = 1;\r\n //}\r\n }\r\n }\r\n\r\n //LocationMethod.JudgeLocation(wcsTask);\r\n break;\r\n case \"cancel\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåæ¶ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åæ¶\";\r\n //startloc.S_LOCK_STATE = \"æ \";\r\n //endLoc.S_LOCK_STATE = \"æ \";\r\n MainMissionService.Update(wcsTask);\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n var tare = taskActRepository.FindList(x => x.S_TASK_NO == wcsTask.S_TASK_NO);\r\n if (tare.Any())\r\n {\r\n if(tare.Find(x=>x.S_ACTION_CODE==\"outbin\")==null)\r\n {\r\n startloc.S_LOCK_STATE = \"æ \";\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(startloc);\r\n locrep.Update(endLoc);\r\n }else if (tare.Find(x => x.S_ACTION_CODE == \"end\") == null)\r\n {\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(endLoc);\r\n }\r\n }\r\n\r\n //locrep.Update(startloc);\r\n //locrep.Update(endLoc);\r\n //TaskProcess.OperateStatus(wcsTask, 7);\r\n //WCSHelper.Fail(wcsTask);\r\n break;\r\n case \"apply\":\r\n // å¤æè¯¥ä»»å¡çæ¥é©³ä½æ¯å¦æå
¶ä»å
¥åºæåºåºä»»å¡ï¼å¦ææï¼åå¨çä½çå¾
ï¼å¦ææ²¡æï¼åå
¥\r\n TaskisOk(wcsTask);\r\n break;\r\n }\r\n\r\n if (!string.IsNullOrEmpty(wcsTask.S_SRC_NO))\r\n {\r\n var mestask = MainMissionService.FindEntity(x => x.S_TASK_NO == wcsTask.S_SRC_NO);\r\n if (mestask!=null&&bobe)\r\n {\r\n if ( model.method != \"end\")\r\n {\r\n \tif (mestask.S_START_LOC == wcsTask.S_START_LOC&&mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t }));\r\n }\r\n else\r\n {\r\n if (mestask.S_END_LOC != wcsTask.S_END_LOC)\r\n {\r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µå®æï¼éç½®è¿è¡äºé¶æ®µã\");\r\n mestask.N_PRIORITY = -88;\r\n MainMissionService.Update(mestask);\r\n }\r\n else if(mestask.S_B_STATE == \"MES\")\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n {\r\n reqCode = wcsTask.S_SRC_NO,\r\n model.method\r\n }));\r\n }\r\n }\r\n\r\n }else if(mestask!=null && model.method== \"cancel\")\r\n {\r\n \t if(mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t })); \r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µåæ¶ï¼éç½®ç¹ï¼çº¿ç¨å¤çã\");\r\n mestask.N_PRIORITY = -1;\r\n mestask.S_B_STATE = \"MES_åæ¶\";\r\n MainMissionService.Update(mestask);\r\n }\r\n }\r\n TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data,wcsTask.S_START_LOC,wcsTask.S_END_LOC);\r\n //è°ç¨ç¬¬ä¸æ¹æ¥å£ï¼å¦ææï¼TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // ææ¶è®¾å®ä¸º0\r\n wcsTask.S_B_STATE = \"䏿¥ç¶æç©º\";\r\n //å®å
¨è¯·æ±ç\r\n //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n }\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"å½åä»»å¡å·ä»»å¡ä¸åå¨{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n }\r\n}", |
| | | "EditCode": "HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\n if (string.IsNullOrEmpty(model.taskCode))\r\n return;\r\n // æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä»»å¡å·\r\n //var wcsTask = WCSHelper.GetTask(model.taskCode);\r\n ITaskRepository MainMissionService = new TaskRepository();\r\n var wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\n if (wcsTask != null)\r\n {\r\n if (!string.IsNullOrWhiteSpace(model.method))\r\n {\r\n ILocRepository locrep = new LocRepository();\r\n var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList();\r\n bool bobe = false;\r\n switch (model.method)\r\n {\r\n case \"start\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºæ§è¡ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n if (wcsTask.S_B_STATE.Trim() == \"å·²æ¨é\")\r\n {\r\n wcsTask.S_B_STATE = \"æ§è¡ä¸\";\r\n wcsTask.T_START_TIME = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n bobe = true;\r\n }\r\n break;\r\n case \"outbin\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåè´§å®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åè´§å®æ\";\r\n\r\n startloc.N_CURRENT_NUM = 0;\r\n startloc.S_LOCK_STATE = \"æ \";\r\n startloc.T_MODIFY = DateTime.Now;\r\n //ILocContainerRepository locContainerRepository = new LocContainerRepository();\r\n ////var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n //locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n MainMissionService.Update(wcsTask);\r\n locrep.Update(startloc);\r\n\r\n bobe = true;\r\n var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC));\r\n if (device != null)\r\n {\r\n if (device.deviceType == 1)\r\n {\r\n if (device.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n { //å¸è´§è¿è¡æ¸
空ï¼è§¦åæ«ç \r\n var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n string V = inde ? \"R05\" : \"R06\";\r\n Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"true\", device.deviceName + \"Queue\");\r\n \r\n TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if(device.deviceType == 2){\r\n\t\t\t\t\t\t\t\t\tvar inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n\t\t\t\t\t\t\t\t\t string V = inde? \"D1224\" : \"D1225\";\r\n\t\t\t\t\t\t\t\t\t Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"0\", device.deviceName + \"Queue\");\r\n }\r\n }\r\n //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n break;\r\n case \"end\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºå®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"宿\";\r\n wcsTask.T_END_TIME = DateTime.Now;\r\n\r\n bobe = true;\r\n //ILocContainerRepository locContainerRepository2 = new LocContainerRepository();\r\n //List<LocContainerEntity> llls = new List<LocContainerEntity>();\r\n //foreach (var c in cntrs)\r\n //{\r\n // var action = new LocContainerEntity()\r\n // {\r\n // S_ID = Guid.NewGuid().ToString(),\r\n // S_STATE = \"ç¼è¾\",\r\n // T_CREATE = DateTime.Now,\r\n // T_MODIFY = DateTime.Now,\r\n\r\n // S_LOC_CODE = endLoc.S_LOC_CODE,\r\n // S_CNTR_CODE = c,\r\n // S_TYPE = \"\",\r\n // };\r\n // llls.Add(action);\r\n //}\r\n\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n endLoc.N_CURRENT_NUM = 1;\r\n endLoc.T_MODIFY = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n if(Settings.deviceInfos.Find(x=>x.deviceType==2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC)))!=null)\r\n locrep.Update(endLoc);\r\n //locContainerRepository2.Insert(llls);\r\n\r\n var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC));\r\n if (device2 != null)\r\n {\r\n if (device2.deviceType == 1)\r\n {\r\n if (device2.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n {\r\n //string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R10\" : \"R11\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n //å¸è´§ååæçåèµ°ã ç¶åè§¦åæ«ç è¿è¡æ ¡éªã \r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n //string V = inde ? \"R05\" : \"R06\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n string V2 = inde ? \"R10_LAST\" : \"R11_LAST\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V2, \"true\", device2.deviceName + \"Queue\");\r\n \r\n RedisHelper.Add(device2.deviceName + \".\" + V2, \"true\", out string msg1);\r\n TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if (device2.deviceType == 2)\r\n if (device2.deviceName.Contains(\"Jsæ·é¡º\"))\r\n {\r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n string V = inde? \"D1224\" : \"D1225\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"1\", device2.deviceName + \"Queue\");\r\n\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 3,\r\n cntrCode = cntrs.FirstOrDefault()\r\n }));\r\n //if (device2.deviceName.Contains(\"1\"))\r\n //{\r\n // if (inde) tag.Js1.D1224 = 1;\r\n // else tag.Js1.D1225 = 1;\r\n //}else\r\n //{\r\n // if (inde) tag.Js2.D1224 = 1;\r\n // else tag.Js2.D1225 = 1;\r\n //}\r\n }\r\n }\r\n\r\n //LocationMethod.JudgeLocation(wcsTask);\r\n break;\r\n case \"cancel\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåæ¶ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åæ¶\";\r\n //startloc.S_LOCK_STATE = \"æ \";\r\n //endLoc.S_LOCK_STATE = \"æ \";\r\n MainMissionService.Update(wcsTask);\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n var tare = taskActRepository.FindList(x => x.S_TASK_NO == wcsTask.S_TASK_NO);\r\n if (tare.Any())\r\n {\r\n if(tare.Find(x=>x.S_ACTION_CODE==\"outbin\")==null)\r\n {\r\n startloc.S_LOCK_STATE = \"æ \";\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(startloc);\r\n locrep.Update(endLoc);\r\n }else if (tare.Find(x => x.S_ACTION_CODE == \"end\") == null)\r\n {\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(endLoc);\r\n }\r\n }\r\n\r\n //locrep.Update(startloc);\r\n //locrep.Update(endLoc);\r\n //TaskProcess.OperateStatus(wcsTask, 7);\r\n //WCSHelper.Fail(wcsTask);\r\n break;\r\n case \"apply\":\r\n // å¤æè¯¥ä»»å¡çæ¥é©³ä½æ¯å¦æå
¶ä»å
¥åºæåºåºä»»å¡ï¼å¦ææï¼åå¨çä½çå¾
ï¼å¦ææ²¡æï¼åå
¥\r\n TaskisOk(wcsTask);\r\n break;\r\n }\r\n\r\n if (!string.IsNullOrEmpty(wcsTask.S_SRC_NO))\r\n {\r\n var mestask = MainMissionService.FindEntity(x => x.S_TASK_NO == wcsTask.S_SRC_NO);\r\n if (mestask!=null&&bobe)\r\n {\r\n if ( model.method != \"end\")\r\n {\r\n \tif (mestask.S_START_LOC == wcsTask.S_START_LOC&&mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t }));\r\n }\r\n else\r\n {\r\n if (mestask.S_END_LOC != wcsTask.S_END_LOC)\r\n {\r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µå®æï¼éç½®è¿è¡äºé¶æ®µã\");\r\n mestask.N_PRIORITY = -88;\r\n MainMissionService.Update(mestask);\r\n }\r\n else if(mestask.S_B_STATE == \"MES\")\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n {\r\n reqCode = wcsTask.S_SRC_NO,\r\n model.method\r\n }));\r\n }\r\n }\r\n\r\n }else if(mestask!=null && model.method== \"cancel\")\r\n {\r\n \t if(mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t })); \r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µåæ¶ï¼éç½®ç¹ï¼çº¿ç¨å¤çã\");\r\n mestask.N_PRIORITY = -1;\r\n mestask.S_B_STATE = \"MES_åæ¶\";\r\n MainMissionService.Update(mestask);\r\n }\r\n }\r\n TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data,wcsTask.S_START_LOC,wcsTask.S_END_LOC);\r\n //è°ç¨ç¬¬ä¸æ¹æ¥å£ï¼å¦ææï¼TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // ææ¶è®¾å®ä¸º0\r\n wcsTask.S_B_STATE = \"䏿¥ç¶æç©º\";\r\n //å®å
¨è¯·æ±ç\r\n //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n }\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"å½åä»»å¡å·ä»»å¡ä¸åå¨{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n }", |
| | | "Code": "public void OperateHKTaskStatus(System.Object param1)\r\n{HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\n if (string.IsNullOrEmpty(model.taskCode))\r\n return;\r\n // æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä»»å¡å·\r\n //var wcsTask = WCSHelper.GetTask(model.taskCode);\r\n ITaskRepository MainMissionService = new TaskRepository();\r\n var wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\n if (wcsTask != null)\r\n {\r\n if (!string.IsNullOrWhiteSpace(model.method))\r\n {\r\n ILocRepository locrep = new LocRepository();\r\n var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList();\r\n bool bobe = false;\r\n switch (model.method)\r\n {\r\n case \"start\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºæ§è¡ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n if (wcsTask.S_B_STATE.Trim() == \"å·²æ¨é\")\r\n {\r\n wcsTask.S_B_STATE = \"æ§è¡ä¸\";\r\n wcsTask.T_START_TIME = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n bobe = true;\r\n }\r\n break;\r\n case \"outbin\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåè´§å®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åè´§å®æ\";\r\n\r\n startloc.N_CURRENT_NUM = 0;\r\n startloc.S_LOCK_STATE = \"æ \";\r\n startloc.T_MODIFY = DateTime.Now;\r\n //ILocContainerRepository locContainerRepository = new LocContainerRepository();\r\n ////var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n //locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n MainMissionService.Update(wcsTask);\r\n locrep.Update(startloc);\r\n\r\n bobe = true;\r\n var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC));\r\n if (device != null)\r\n {\r\n if (device.deviceType == 1)\r\n {\r\n if (device.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n { //å¸è´§è¿è¡æ¸
空ï¼è§¦åæ«ç \r\n var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n string V = inde ? \"R05\" : \"R06\";\r\n Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"true\", device.deviceName + \"Queue\");\r\n \r\n TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if(device.deviceType == 2){\r\n\t\t\t\t\t\t\t\t\tvar inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n\t\t\t\t\t\t\t\t\t string V = inde? \"D1224\" : \"D1225\";\r\n\t\t\t\t\t\t\t\t\t Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"0\", device.deviceName + \"Queue\");\r\n }\r\n }\r\n //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n break;\r\n case \"end\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºå®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"宿\";\r\n wcsTask.T_END_TIME = DateTime.Now;\r\n\r\n bobe = true;\r\n //ILocContainerRepository locContainerRepository2 = new LocContainerRepository();\r\n //List<LocContainerEntity> llls = new List<LocContainerEntity>();\r\n //foreach (var c in cntrs)\r\n //{\r\n // var action = new LocContainerEntity()\r\n // {\r\n // S_ID = Guid.NewGuid().ToString(),\r\n // S_STATE = \"ç¼è¾\",\r\n // T_CREATE = DateTime.Now,\r\n // T_MODIFY = DateTime.Now,\r\n\r\n // S_LOC_CODE = endLoc.S_LOC_CODE,\r\n // S_CNTR_CODE = c,\r\n // S_TYPE = \"\",\r\n // };\r\n // llls.Add(action);\r\n //}\r\n\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n endLoc.N_CURRENT_NUM = 1;\r\n endLoc.T_MODIFY = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n if(Settings.deviceInfos.Find(x=>x.deviceType==2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC)))!=null)\r\n locrep.Update(endLoc);\r\n //locContainerRepository2.Insert(llls);\r\n\r\n var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC));\r\n if (device2 != null)\r\n {\r\n if (device2.deviceType == 1)\r\n {\r\n if (device2.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n {\r\n //string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R10\" : \"R11\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n //å¸è´§ååæçåèµ°ã ç¶åè§¦åæ«ç è¿è¡æ ¡éªã \r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n //string V = inde ? \"R05\" : \"R06\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n string V2 = inde ? \"R10_LAST\" : \"R11_LAST\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V2, \"true\", device2.deviceName + \"Queue\");\r\n \r\n RedisHelper.Add(device2.deviceName + \".\" + V2, \"true\", out string msg1);\r\n TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if (device2.deviceType == 2)\r\n if (device2.deviceName.Contains(\"Jsæ·é¡º\"))\r\n {\r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n string V = inde? \"D1224\" : \"D1225\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"1\", device2.deviceName + \"Queue\");\r\n\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 3,\r\n cntrCode = cntrs.FirstOrDefault()\r\n }));\r\n //if (device2.deviceName.Contains(\"1\"))\r\n //{\r\n // if (inde) tag.Js1.D1224 = 1;\r\n // else tag.Js1.D1225 = 1;\r\n //}else\r\n //{\r\n // if (inde) tag.Js2.D1224 = 1;\r\n // else tag.Js2.D1225 = 1;\r\n //}\r\n }\r\n }\r\n\r\n //LocationMethod.JudgeLocation(wcsTask);\r\n break;\r\n case \"cancel\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåæ¶ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åæ¶\";\r\n //startloc.S_LOCK_STATE = \"æ \";\r\n //endLoc.S_LOCK_STATE = \"æ \";\r\n MainMissionService.Update(wcsTask);\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n var tare = taskActRepository.FindList(x => x.S_TASK_NO == wcsTask.S_TASK_NO);\r\n if (tare.Any())\r\n {\r\n if(tare.Find(x=>x.S_ACTION_CODE==\"outbin\")==null)\r\n {\r\n startloc.S_LOCK_STATE = \"æ \";\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(startloc);\r\n locrep.Update(endLoc);\r\n }else if (tare.Find(x => x.S_ACTION_CODE == \"end\") == null)\r\n {\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(endLoc);\r\n }\r\n }\r\n\r\n //locrep.Update(startloc);\r\n //locrep.Update(endLoc);\r\n //TaskProcess.OperateStatus(wcsTask, 7);\r\n //WCSHelper.Fail(wcsTask);\r\n break;\r\n case \"apply\":\r\n // å¤æè¯¥ä»»å¡çæ¥é©³ä½æ¯å¦æå
¶ä»å
¥åºæåºåºä»»å¡ï¼å¦ææï¼åå¨çä½çå¾
ï¼å¦ææ²¡æï¼åå
¥\r\n TaskisOk(wcsTask);\r\n break;\r\n }\r\n\r\n if (!string.IsNullOrEmpty(wcsTask.S_SRC_NO))\r\n {\r\n var mestask = MainMissionService.FindEntity(x => x.S_TASK_NO == wcsTask.S_SRC_NO);\r\n if (mestask!=null&&bobe)\r\n {\r\n if ( model.method != \"end\")\r\n {\r\n \tif (mestask.S_START_LOC == wcsTask.S_START_LOC&&mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t }));\r\n }\r\n else\r\n {\r\n if (mestask.S_END_LOC != wcsTask.S_END_LOC)\r\n {\r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µå®æï¼éç½®è¿è¡äºé¶æ®µã\");\r\n mestask.N_PRIORITY = -88;\r\n MainMissionService.Update(mestask);\r\n }\r\n else if(mestask.S_B_STATE == \"MES\")\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n {\r\n reqCode = wcsTask.S_SRC_NO,\r\n model.method\r\n }));\r\n }\r\n }\r\n\r\n }else if(mestask!=null && model.method== \"cancel\")\r\n {\r\n \t if(mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t })); \r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µåæ¶ï¼éç½®ç¹ï¼çº¿ç¨å¤çã\");\r\n mestask.N_PRIORITY = -1;\r\n mestask.S_B_STATE = \"MES_åæ¶\";\r\n MainMissionService.Update(mestask);\r\n }\r\n }\r\n TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data,wcsTask.S_START_LOC,wcsTask.S_END_LOC);\r\n //è°ç¨ç¬¬ä¸æ¹æ¥å£ï¼å¦ææï¼TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // ææ¶è®¾å®ä¸º0\r\n wcsTask.S_B_STATE = \"䏿¥ç¶æç©º\";\r\n //å®å
¨è¯·æ±ç\r\n //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n }\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"å½åä»»å¡å·ä»»å¡ä¸åå¨{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n }\r\n}", |
| | | "CusMethod": { |
| | | "Name": "OperateHKTaskStatus", |
| | | "Params": [ |
| | |
| | | "Type": "ClassCode", |
| | | "Level": "Item", |
| | | "Statement": "public class TaskProcess", |
| | | "EditCode": "internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = \"AGV\", int cntrCount = 1, int startLayer = 1, int endLayer = 1)\r\n{\r\n\t\r\n LogHelper.Debug($\"è¾é线RGV空æä»»å¡ from:{from}>to {to}å¼å§å建>\");\r\n var cntrInfo = string.Join(\",\", cntrs);\r\n ILocRepository locc = new LocRepository();\r\n var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from);\r\n var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to);\r\n \r\n var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;\r\n var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;\r\n string t = \"F01\";\r\n if (s && !e) t = \"A002\";\r\n if (!s && e) t = \"A003\";\r\n if (s && e) t = \"A004\";\r\n try\r\n {\r\n\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n \tS_ID = Guid.NewGuid().ToString(),\r\n\t\tS_STATE = \"ç¼è¾\",\r\n\t\tT_CREATE = DateTime.Now,\r\n\t\tT_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = GenerateTaskNo(),\r\n S_START_LAREA = fromLoc.S_AREA_CODE,\r\n S_END_LAREA = endLoc.S_AREA_CODE,\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = from,\r\n S_END_LOC = to,\r\n S_TYPE = taskType,\r\n S_SRC_NO = no,//\r\n N_PRIORITY = pri,\r\n S_WORK_MODE = workMode,\r\n S_B_STATE = \"æªæ§è¡\",\r\n S_CNTRS = cntrInfo,\r\n N_START_LAYER = startLayer,\r\n N_END_LAYER = endLayer,\r\n N_CNTR_COUNT = cntrCount,\r\n S_INDEX=t,\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n taskserice.Insert(wmsTask);\r\n \r\n if (workMode == \"AGV\")\r\n {\r\n fromLoc.S_LOCK_STATE = \"åºåºé\";\r\n endLoc.S_LOCK_STATE = \"å
¥åºé\";\r\n locc.Update(fromLoc);\r\n locc.Update(endLoc);\r\n }\r\n \r\n LogHelper.Debug($\"è¾é线RGV空æä»»å¡ from:{from}>to {to} å建{wmsTask.S_TASK_NO}æå\");\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(\"CreateTask\" + ex.Message, ex);\r\n return false;\r\n }\r\n}\r\n\r\n\r\n internal static void AddActionRecord(string no, string state, string forkliftNo, string extData,string strloc,string endloc)\r\n {\r\n var action = new TaskActEntity()\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"ç¼è¾\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n S_START_LOC= strloc,\r\n S_END_LOC= endloc,\r\n S_ACTION_CODE = state,\r\n S_TASK_NO = no,\r\n S_EQ_NO = forkliftNo,\r\n S_EQ_TYPE = \"agv\",\r\n S_DATA = extData,\r\n N_CREATEMETHOD = 0\r\n };\r\n TaskActRepository taskserice = new TaskActRepository();\r\n taskserice.Insert(action);\r\n }\r\n\r\n public static System.String GenerateTaskNo()\r\n {\r\n var id = SYSHelper.GetSerialNumber(\"ä»»å¡å·\", \"TN\", \"1\");\r\n var date = DateTime.Now.ToString(\"yyMMdd\");\r\n return $\"TN{date}{id.ToString().PadLeft(4, '0')}\";\r\n }", |
| | | "Code": "public class TaskProcess\r\n{internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = \"AGV\", int cntrCount = 1, int startLayer = 1, int endLayer = 1)\r\n{\r\n\t\r\n LogHelper.Debug($\"è¾é线RGV空æä»»å¡ from:{from}>to {to}å¼å§å建>\");\r\n var cntrInfo = string.Join(\",\", cntrs);\r\n ILocRepository locc = new LocRepository();\r\n var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from);\r\n var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to);\r\n \r\n var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;\r\n var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;\r\n string t = \"F01\";\r\n if (s && !e) t = \"A002\";\r\n if (!s && e) t = \"A003\";\r\n if (s && e) t = \"A004\";\r\n try\r\n {\r\n\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n \tS_ID = Guid.NewGuid().ToString(),\r\n\t\tS_STATE = \"ç¼è¾\",\r\n\t\tT_CREATE = DateTime.Now,\r\n\t\tT_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = GenerateTaskNo(),\r\n S_START_LAREA = fromLoc.S_AREA_CODE,\r\n S_END_LAREA = endLoc.S_AREA_CODE,\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = from,\r\n S_END_LOC = to,\r\n S_TYPE = taskType,\r\n S_SRC_NO = no,//\r\n N_PRIORITY = pri,\r\n S_WORK_MODE = workMode,\r\n S_B_STATE = \"æªæ§è¡\",\r\n S_CNTRS = cntrInfo,\r\n N_START_LAYER = startLayer,\r\n N_END_LAYER = endLayer,\r\n N_CNTR_COUNT = cntrCount,\r\n S_INDEX=t,\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n taskserice.Insert(wmsTask);\r\n \r\n if (workMode == \"AGV\")\r\n {\r\n fromLoc.S_LOCK_STATE = \"åºåºé\";\r\n endLoc.S_LOCK_STATE = \"å
¥åºé\";\r\n locc.Update(fromLoc);\r\n locc.Update(endLoc);\r\n }\r\n \r\n LogHelper.Debug($\"è¾é线RGV空æä»»å¡ from:{from}>to {to} å建{wmsTask.S_TASK_NO}æå\");\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(\"CreateTask\" + ex.Message, ex);\r\n return false;\r\n }\r\n}\r\n\r\n\r\n internal static void AddActionRecord(string no, string state, string forkliftNo, string extData,string strloc,string endloc)\r\n {\r\n var action = new TaskActEntity()\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"ç¼è¾\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n S_START_LOC= strloc,\r\n S_END_LOC= endloc,\r\n S_ACTION_CODE = state,\r\n S_TASK_NO = no,\r\n S_EQ_NO = forkliftNo,\r\n S_EQ_TYPE = \"agv\",\r\n S_DATA = extData,\r\n N_CREATEMETHOD = 0\r\n };\r\n TaskActRepository taskserice = new TaskActRepository();\r\n taskserice.Insert(action);\r\n }\r\n\r\n public static System.String GenerateTaskNo()\r\n {\r\n var id = SYSHelper.GetSerialNumber(\"ä»»å¡å·\", \"TN\", \"1\");\r\n var date = DateTime.Now.ToString(\"yyMMdd\");\r\n return $\"TN{date}{id.ToString().PadLeft(4, '0')}\";\r\n }\r\n}", |
| | | "EditCode": "internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = \"AGV\", int cntrCount = 1, int startLayer = 1, int endLayer = 1)\r\n{\r\n\t\r\n LogHelper.Info($\"è¾é线RGV空æä»»å¡ from:{from}>to {to}å¼å§å建>\");\r\n var cntrInfo = string.Join(\",\", cntrs);\r\n ILocRepository locc = new LocRepository();\r\n var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from);\r\n var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to);\r\n \r\n var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;\r\n var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;\r\n string t = \"F01\";\r\n if (s && !e) t = \"A002\";\r\n if (!s && e) t = \"A003\";\r\n if (s && e) t = \"A004\";\r\n try\r\n {\r\n\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n \tS_ID = Guid.NewGuid().ToString(),\r\n\t\tS_STATE = \"ç¼è¾\",\r\n\t\tT_CREATE = DateTime.Now,\r\n\t\tT_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = GenerateTaskNo(),\r\n S_START_LAREA = fromLoc.S_AREA_CODE,\r\n S_END_LAREA = endLoc.S_AREA_CODE,\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = from,\r\n S_END_LOC = to,\r\n S_TYPE = taskType,\r\n S_SRC_NO = no,//\r\n N_PRIORITY = pri,\r\n S_WORK_MODE = workMode,\r\n S_B_STATE = \"æªæ§è¡\",\r\n S_CNTRS = cntrInfo,\r\n N_START_LAYER = startLayer,\r\n N_END_LAYER = endLayer,\r\n N_CNTR_COUNT = cntrCount,\r\n S_INDEX=t,\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n taskserice.Insert(wmsTask);\r\n \r\n if (workMode == \"AGV\")\r\n {\r\n fromLoc.S_LOCK_STATE = \"åºåºé\";\r\n endLoc.S_LOCK_STATE = \"å
¥åºé\";\r\n locc.Update(fromLoc);\r\n locc.Update(endLoc);\r\n }\r\n \r\n LogHelper.Info($\"è¾é线RGV空æä»»å¡ from:{from}>to {to} å建{wmsTask.S_TASK_NO}æå\");\r\n return true;\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(\"CreateTask\" + ex.Message, ex);\r\n return false;\r\n }\r\n}\r\n\r\n\r\n internal static void AddActionRecord(string no, string state, string forkliftNo, string extData,string strloc,string endloc)\r\n {\r\n var action = new TaskActEntity()\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"ç¼è¾\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n S_START_LOC= strloc,\r\n S_END_LOC= endloc,\r\n S_ACTION_CODE = state,\r\n S_TASK_NO = no,\r\n S_EQ_NO = forkliftNo,\r\n S_EQ_TYPE = \"agv\",\r\n S_DATA = extData,\r\n N_CREATEMETHOD = 0\r\n };\r\n TaskActRepository taskserice = new TaskActRepository();\r\n taskserice.Insert(action);\r\n }\r\n\r\n public static System.String GenerateTaskNo()\r\n {\r\n var id = SYSHelper.GetSerialNumber(\"ä»»å¡å·\", \"TN\", \"1\");\r\n var date = DateTime.Now.ToString(\"yyMMdd\");\r\n return $\"TN{date}{id.ToString().PadLeft(4, '0')}\";\r\n }", |
| | | "Code": "public class TaskProcess\r\n{internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = \"AGV\", int cntrCount = 1, int startLayer = 1, int endLayer = 1)\r\n{\r\n\t\r\n LogHelper.Info($\"è¾é线RGV空æä»»å¡ from:{from}>to {to}å¼å§å建>\");\r\n var cntrInfo = string.Join(\",\", cntrs);\r\n ILocRepository locc = new LocRepository();\r\n var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from);\r\n var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to);\r\n \r\n var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;\r\n var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;\r\n string t = \"F01\";\r\n if (s && !e) t = \"A002\";\r\n if (!s && e) t = \"A003\";\r\n if (s && e) t = \"A004\";\r\n try\r\n {\r\n\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n \tS_ID = Guid.NewGuid().ToString(),\r\n\t\tS_STATE = \"ç¼è¾\",\r\n\t\tT_CREATE = DateTime.Now,\r\n\t\tT_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = GenerateTaskNo(),\r\n S_START_LAREA = fromLoc.S_AREA_CODE,\r\n S_END_LAREA = endLoc.S_AREA_CODE,\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = from,\r\n S_END_LOC = to,\r\n S_TYPE = taskType,\r\n S_SRC_NO = no,//\r\n N_PRIORITY = pri,\r\n S_WORK_MODE = workMode,\r\n S_B_STATE = \"æªæ§è¡\",\r\n S_CNTRS = cntrInfo,\r\n N_START_LAYER = startLayer,\r\n N_END_LAYER = endLayer,\r\n N_CNTR_COUNT = cntrCount,\r\n S_INDEX=t,\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n taskserice.Insert(wmsTask);\r\n \r\n if (workMode == \"AGV\")\r\n {\r\n fromLoc.S_LOCK_STATE = \"åºåºé\";\r\n endLoc.S_LOCK_STATE = \"å
¥åºé\";\r\n locc.Update(fromLoc);\r\n locc.Update(endLoc);\r\n }\r\n \r\n LogHelper.Info($\"è¾é线RGV空æä»»å¡ from:{from}>to {to} å建{wmsTask.S_TASK_NO}æå\");\r\n return true;\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(\"CreateTask\" + ex.Message, ex);\r\n return false;\r\n }\r\n}\r\n\r\n\r\n internal static void AddActionRecord(string no, string state, string forkliftNo, string extData,string strloc,string endloc)\r\n {\r\n var action = new TaskActEntity()\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"ç¼è¾\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n S_START_LOC= strloc,\r\n S_END_LOC= endloc,\r\n S_ACTION_CODE = state,\r\n S_TASK_NO = no,\r\n S_EQ_NO = forkliftNo,\r\n S_EQ_TYPE = \"agv\",\r\n S_DATA = extData,\r\n N_CREATEMETHOD = 0\r\n };\r\n TaskActRepository taskserice = new TaskActRepository();\r\n taskserice.Insert(action);\r\n }\r\n\r\n public static System.String GenerateTaskNo()\r\n {\r\n var id = SYSHelper.GetSerialNumber(\"ä»»å¡å·\", \"TN\", \"1\");\r\n var date = DateTime.Now.ToString(\"yyMMdd\");\r\n return $\"TN{date}{id.ToString().PadLeft(4, '0')}\";\r\n }\r\n}", |
| | | "CusMethod": { |
| | | "Name": "", |
| | | "Params": [], |
| | |
| | | "InheritClass": "", |
| | | "Inherits": [] |
| | | } |
| | | }, |
| | | { |
| | | "ID": "20250623083459471", |
| | | "Name": "AutoThread", |
| | | "Desc": "", |
| | | "ParentID": "", |
| | | "Type": "VsCode", |
| | | "Level": "Item", |
| | | "Statement": "", |
| | | "EditCode": "using Newtonsoft.Json;\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.Concurrent;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Reflection;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing GZ.Modular.Redis;\r\nusing GZ.DB.Entity.OIDATABASE;\r\nusing GZ.DB.IRepository.OIDATABASE;\r\nusing GZ.DB.Repository.OIDATABASE;\r\nusing static System.Windows.Forms.VisualStyles.VisualStyleElement;\r\nusing System.Windows.Interop;\r\nusing static System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox;\r\n\r\nnamespace GZ.Projects.AuxAllWCS\r\n{\r\n public partial class AutoThread\r\n {\r\n\r\n private static AutoThread _instance;\r\n\r\n // ç§ææé 彿°é²æ¢å¤é¨å®ä¾å\r\n private AutoThread() { }\r\n\r\n public static AutoThread Instance\r\n {\r\n get\r\n {\r\n if (_instance == null)\r\n {\r\n _instance = new AutoThread();\r\n }\r\n return _instance;\r\n }\r\n }\r\n\r\n // 线ç¨å®å
¨çå§æç¼å\r\n private static readonly ConcurrentDictionary<string, Delegate> _methodCache = new ConcurrentDictionary<string, Delegate>();\r\n\r\n // æ¹æ³æ§è¡å¨\r\n public static object InvokeMethod(object instance, string methodName, params object[] args)\r\n {\r\n var cacheKey = $\"{instance.GetType().FullName}_{methodName}\";\r\n\r\n if (!_methodCache.TryGetValue(cacheKey, out var methodDelegate))\r\n {\r\n // è·åæ¹æ³ä¿¡æ¯\r\n var methodInfo = instance.GetType().GetMethod(\r\n methodName,\r\n BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);\r\n\r\n if (methodInfo == null)\r\n throw new MissingMethodException($\"Method {methodName} not found\");\r\n\r\n // åå»ºå§æå¹¶ç¼å\r\n methodDelegate = Delegate.CreateDelegate(\r\n GetDelegateType(methodInfo),\r\n instance,\r\n methodInfo);\r\n\r\n _methodCache.TryAdd(cacheKey, methodDelegate);\r\n }\r\n\r\n // æ§è¡å§æ\r\n return methodDelegate.DynamicInvoke(args);\r\n }\r\n\r\n // æ ¹æ®æ¹æ³ç¾åçæå¯¹åºçå§æç±»å\r\n private static Type GetDelegateType(MethodInfo methodInfo)\r\n {\r\n var parameterTypes = methodInfo.GetParameters()\r\n .Select(p => p.ParameterType)\r\n .ToList();\r\n\r\n if (methodInfo.ReturnType == typeof(void))\r\n {\r\n return System.Linq.Expressions.Expression.GetActionType(parameterTypes.ToArray());\r\n }\r\n else\r\n {\r\n parameterTypes.Add(methodInfo.ReturnType);\r\n return System.Linq.Expressions.Expression.GetFuncType(parameterTypes.ToArray());\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// é
ç½®åå§åã\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n /// <param name=\"action\"></param>\r\n public void ThreadSettingInit(Tag tag, Action action)\r\n {\r\n Console.WriteLine(\"åå§åé
ç½® çº¿ç¨ run \" + tag.Global.SettingsOver);\r\n if (tag.Global.SettingsOver == 0)\r\n {\r\n action?.Invoke();\r\n tag.Global.SettingsOver = 1;\r\n }\r\n else if (Settings.deviceInfos.Count == 0)\r\n {\r\n tag.Global.SettingsOver = 0;\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// æ·é¡º1 ä¿¡å·å¤ç\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void ThreadJS1(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadJS1 æ·é¡º1 ä¿¡å·å¤ç =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 2 && x.deviceName == \"Jsæ·é¡º1\");\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.Js1.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[0]\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js1.D1212_LAST = 1;\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js1.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 0)\r\n {\r\n //tag.Js1.D1212_LAST = 0; \r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[1]\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js1.D1213_LAST = 1;\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js1.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 0)\r\n {\r\n //tag.Js1.D1213_LAST = 0;\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"0\", out string msg);\r\n }\r\n }\r\n }\r\n /// <summary>\r\n /// æ·é¡º2 ä¿¡å·å¤ç\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void ThreadJS2(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadJS2 æ·é¡º2 ä¿¡å·å¤ç =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 2 && x.deviceName == \"Jsæ·é¡º2\");\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.Js2.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[0]\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js2.D1212_LAST = 1;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js2.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 0)\r\n {\r\n //tag.Js2.D1212_LAST = 0;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.Js2.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[1]\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js2.D1213_LAST = 1;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js2.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1213, 2) == 0)\r\n {\r\n //tag.Js2.D1213_LAST = 0;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"0\", out string msg);\r\n }\r\n }\r\n }\r\n /// <summary>\r\n /// ç»´å¸å°1 å·¦\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr1L(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr1L ç»´å¸å°1 å·¦ =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr1.R44 && !tag.wxr1.R44_LAST && tag.wxr1.R10)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[0],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr1.R44_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n //TaskRepository ts = new TaskRepository();\r\n if (tag.wxr1.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr1.R10)\r\n {\r\n tag.wxr1.R10_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr1.R10 = true;\r\n tag.wxr1.R44_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// ç»´å¸å°1 å³\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr1R(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr1R ç»´å¸å°1 å³ =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr1.R46 && !tag.wxr1.R46_LAST && tag.wxr1.R11)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[1],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr1.R46_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr1.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr1.R11)\r\n {\r\n tag.wxr1.R11_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr1.R11 = true;\r\n tag.wxr1.R46_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// ç»´å¸å°2 å·¦\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr2L(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr2L ç»´å¸å°2 å·¦ =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr2.R44 && !tag.wxr2.R44_LAST && tag.wxr2.R10)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[0],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr2.R44_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr2.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr2.R10)\r\n {\r\n tag.wxr2.R10_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr2.R10 = true;\r\n tag.wxr2.R44_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// ç»´å¸å°2 å³\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr2R(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr2R ç»´å¸å°2 å³ =================> \");\r\n\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr2.R46 && !tag.wxr2.R46_LAST && tag.wxr2.R11)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[1],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr2.R46_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[2], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr2.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr2.R11)\r\n {\r\n tag.wxr2.R11_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr2.R11 = true;\r\n tag.wxr2.R46_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n public void ThreadTaskRun(Tag tag, Func<TaskEntity, bool> action)\r\n {\r\n Console.WriteLine($\"ThreadTaskRun ä»»å¡ä¸å =================> \");\r\n LogHelper.Info(\"ThreadTaskRun ä»»å¡ä¸å\");\r\n\r\n ITaskRepository taskservice = new TaskRepository();\r\n try\r\n {\r\n LogHelper.Info(\"ä»»å¡ä¸å ARG ä»»å¡ è¿å
¥\");\r\n #region AGVä»»å¡ä¸åã\r\n\r\n var tklist = taskservice.FindList(x => x.S_B_STATE == \"æªæ§è¡\" && x.S_WORK_MODE == \"AGV\");\r\n if (tklist.Any())\r\n foreach (var tk in tklist.GroupBy(item =>\r\n {\r\n var ticks = item.T_CREATE.Ticks;\r\n return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));\r\n }).OrderBy(x => x.Key))\r\n {\r\n var ts = tk.OrderByDescending(x => x.N_PRIORITY).ToList();\r\n foreach (var t in ts)\r\n {\r\n var b = false;\r\n b = action?.Invoke(t) ?? false; //new ViewModel().RunTask(t);\r\n\r\n if (b)\r\n {\r\n t.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t);\r\n }\r\n }\r\n break;\r\n }\r\n //foreach (var tk in tklist.GroupBy(item =>\r\n //{\r\n // var ticks = item.T_CREATE.Ticks;\r\n // return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));\r\n //}).OrderBy(x => x.Key))\r\n //if (tklist.Any())\r\n //{\r\n\r\n #endregion\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Info(ex.Message + ex.StackTrace);\r\n }\r\n try\r\n {\r\n #region Rgv\r\n\r\n LogHelper.Info($\"æ¥çRGV çµéï¼ã{tag.RGV.Rå½åçµé}ã å
çµç¶æï¼ã{tag.RGV.Rå
çµç¶æ}ã æ
é代ç ï¼ã{tag.RGV.RgvrunError}ã\");\r\n\r\n if (tag.RGV.taskend == 125)\r\n {\r\n System.Threading.Thread.Sleep(3000);\r\n return;\r\n }\r\n LogHelper.Info(\"ä»»å¡ä¸å Rgv ä»»å¡ è¿å
¥\");\r\n\r\n var task1Isrun = false;\r\n if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver != 1)\r\n {\r\n task1Isrun = true;\r\n //if (tag.RGV.bit1taskOver_LAST == 1)\r\n // RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n }\r\n var task2Isrun = false;\r\n if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver != 1)\r\n {\r\n task2Isrun = true;\r\n //if (tag.RGV.bit2taskOver_LAST == 1)\r\n // RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n }\r\n if (task1Isrun || task2Isrun)\r\n {\r\n string mes = \"\";\r\n if (task1Isrun)\r\n mes += tag.RGV.ReadTask1No + \"æ§è¡ä¸...\";\r\n if (task2Isrun)\r\n mes += tag.RGV.ReadTask2No + \"æ§è¡ä¸...\";\r\n LogHelper.Info($\"{mes} ä¸è½ä¸åæ°ä»»å¡ã\");\r\n System.Threading.Thread.Sleep(3000);\r\n return; \r\n }\r\n var thisOver = 0;\r\n TaskEntity task1 = null;\r\n TaskEntity task2 = null;\r\n\r\n LogHelper.Info($\"æ¥çRGV 1å·¥ä½ä»»å¡ã\");\r\n if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver == 1)\r\n {\r\n var taskno = tag.RGV.ReadTask1No;\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{tag.RGV.ReadTask1No}\");\r\n string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n task1 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task1)}.bit1taskOver_LASTï¼{tag.RGV.bit1taskOver_LAST}\");\r\n if (tag.RGV.bit1taskOver_LAST == 0 && task1 != null)\r\n {\r\n if (task1.S_B_STATE != \"宿\")\r\n {\r\n thisOver = 1;\r\n if (task1.S_B_STATE == \"åè´§å®æ\")\r\n {\r\n task1.S_B_STATE = \"宿\";\r\n tag.RGV.ReadTask1No = 0;\r\n }\r\n else\r\n {\r\n task1.S_B_STATE = \"åè´§å®æ\";\r\n }\r\n tag.RGV.bit1taskOver = 0;\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{task1.S_TASK_NO} ç¶æåæ¢ä¸º{task1.S_B_STATE}\");\r\n //tag.RGV.bit1taskOver_LAST = 1;\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"1\", out string msg);\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡åå¤ç\");\r\n taskservice.Update(task1);\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡æ´æ°ã\");\r\n }\r\n else\r\n {\r\n LogHelper.Info(\"RGV1å·¥ä½ä»»å¡å·²ç»å®æã\");\r\n }\r\n }\r\n }\r\n else if (tag.RGV.ReadTask1No == 0)\r\n {\r\n LogHelper.Info($\"RGV 1工使²¡æä»»å¡ã\");\r\n }\r\n\r\n LogHelper.Info($\"æ¥çRGV 2å·¥ä½ä»»å¡ã\");\r\n if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver == 1)\r\n {\r\n var taskno = tag.RGV.ReadTask2No;\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡{tag.RGV.ReadTask2No}\");\r\n string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n task2 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n LogHelper.Info($\"RGV2å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task2)}.bit2taskOver_LASTï¼{tag.RGV.bit2taskOver_LAST}\");\r\n if (tag.RGV.bit2taskOver_LAST == 0 && task2 != null)\r\n {\r\n if (task2.S_B_STATE != \"宿\")\r\n {\r\n thisOver = 2;\r\n if (task2.S_B_STATE == \"åè´§å®æ\")\r\n {\r\n task2.S_B_STATE = \"宿\";\r\n tag.RGV.ReadTask2No = 0;\r\n }\r\n else\r\n {\r\n task2.S_B_STATE = \"åè´§å®æ\";\r\n }\r\n tag.RGV.bit2taskOver = 0;\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡{task2.S_TASK_NO} ç¶æåæ¢ä¸º{task2.S_B_STATE}\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"1\", out string msg);\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡åå¤ç\");\r\n taskservice.Update(task2);\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡æ´æ°ã\");\r\n }\r\n else\r\n {\r\n LogHelper.Info(\"RGV2å·¥ä½ä»»å¡å·²ç»å®æã\");\r\n }\r\n }\r\n }\r\n else if (tag.RGV.ReadTask2No == 0)\r\n {\r\n LogHelper.Info($\"RGV 2工使²¡æä»»å¡ã\");\r\n }\r\n\r\n\r\n\r\n //if (thisOver > 0)\r\n //{\r\n // var v2 = RedisHelper.Get<WriteGroupEntity>(\"RGVQueue\", out string rev);\r\n // if (v2 != null)\r\n // {\r\n // LogHelper.Info($\"RGVQueue 读å°ç»æ-{JsonConvert.SerializeObject(v2)} \\n ä¸ååè¿è¡æ¸
é¤ã\");\r\n // var b = RedisHelper.Remove(\"RGVQueue\", out rev);\r\n // }\r\n //}\r\n\r\n ///1 æè´§ å°±2 åã 1 没货 å°±2 å¸è´§ï¼ é½æè´§ å°±1å¸è´§ã 齿²¡è´§ å°±1å¸\r\n var tklist = taskservice.FindList(x => x.S_B_STATE == \"æªæ§è¡\" && x.S_WORK_MODE == \"RGV\").OrderBy(x => x.T_CREATE).ToList();\r\n if (task1 != null && task1.S_B_STATE != \"宿\") //1æä»»å¡\r\n {\r\n if (task2 != null && task2.S_B_STATE != \"宿\")// 1 æä»»å¡ 2 æä»»å¡ã \r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 乿任å¡{task2.S_TASK_NO}ã å¼å§å·¥ä½1 å¸è´§ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n //RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n //tag.RGV.taskend = 125;\r\n //Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\");\r\n\r\n LogHelper.Info($\"{task1.S_TASK_NO}> bit1taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{task1.S_TASK_NO}> end å 125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n else //1æä»»å¡ 2 没任å¡ã \r\n {\r\n\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡ã\");\r\n\r\n var leftSide = new List<string> { \"1023\", \"1020\" };\r\n var RightSide = new List<string> { \"1002\", \"1008\", \"1010\", \"1016\" };\r\n bool creT2 = false;\r\n\r\n // 2å· ä¼å
ç» 1020 1008 1016\r\n var t2 = tklist.OrderBy(x => x.T_CREATE).ToList().Find(x => x.S_START_LOC == \"1020\" || x.S_START_LOC == \"1008\" || x.S_START_LOC == \"1016\");\r\n if (t2 != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾1020 1008 1016åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 1;\r\n tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n t2.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t2);\r\n creT2 = true;\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n ////2 妿æåä¾§åè´§ä»»å¡ãå°±åãæ²¡æ\r\n //else if (leftSide.Contains(task1.S_START_LOC))\r\n //{\r\n // leftSide.Remove(task1.S_START_LOC);\r\n // var lsde = leftSide.FirstOrDefault();\r\n // t2 = tklist.Find(x => x.S_START_LOC == lsde && x.S_END_LOC != \"1017\");\r\n // if (t2 != null) //åä¾§åè´§ä»»å¡ã\r\n // {\r\n // LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n // tag.RGV.workMod = 2;\r\n // tag.RGV.taskmod = 1;\r\n // tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n // tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n // t2.S_B_STATE = \"å·²æ¨é\";\r\n // taskservice.Update(t2);\r\n // creT2 = true;\r\n // System.Threading.Thread.Sleep(750);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n // RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n // Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n // }\r\n //}\r\n //else if (RightSide.Contains(task1.S_START_LOC))\r\n //{\r\n // RightSide.Remove(task1.S_START_LOC);\r\n // t2 = tklist.Find(x => RightSide.Contains(x.S_START_LOC) && x.S_END_LOC != \"1017\");\r\n // if (t2 != null) //åä¾§åè´§ä»»å¡ã\r\n // {\r\n // LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§ 1002,1010 åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n // tag.RGV.workMod = 2;\r\n // tag.RGV.taskmod = 1;\r\n // tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n // tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n // t2.S_B_STATE = \"å·²æ¨é\";\r\n // taskservice.Update(t2);\r\n // creT2 = true;\r\n // System.Threading.Thread.Sleep(750);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 125\");\r\n // RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n // Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n // }\r\n //}\r\n else //1 ç´æ¥å¸è´§ã \r\n //if (!creT2)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã 没æåä¾§åè´§ä»»å¡ 1å·¥ä½å¸è´§ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{task1.S_TASK_NO}> bit1taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{task1.S_TASK_NO}> taskend å 0\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n }\r\n }\r\n else\r\n {\r\n if (task2 != null && task2.S_B_STATE != \"宿\")// 1 æ²¡ä»»å¡ 2 æä»»å¡ã \r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 æä»»å¡{task2.S_TASK_NO}ãå·¥ä½2å¸è´§ãã\");\r\n //2 å¸è´§ã\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno2 = Convert.ToUInt32(task2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(task2.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{task2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n //tag.RGV.taskend = 125;\r\n LogHelper.Info($\"{task2.S_TASK_NO}> taskend å125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n else if (tklist.Any()) //1mei ä»»å¡ 2 没任å¡ã\r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 乿²¡ä»»å¡ãä¼å
1å·¥ä½ç»ç¹1017ä»»å¡ãã\");\r\n //ãä¸ 1017ä»»å¡ ç»1å·å·¥ä½ã\r\n //var lss = tklist.Take(2).ToList();\r\n var e1017first = tklist.Find(x => x.S_START_LOC == \"1002\" || x.S_START_LOC == \"1010\" || x.S_START_LOC == \"1023\");\r\n //if (e1017first != null)\r\n //{\r\n // e1017first = tklist.FirstOrDefault();\r\n //}\r\n if (e1017first != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 ä»»å¡å·¥ä½2 没任å¡ã 1002 1010 1023åè´§ä»»å¡{e1017first.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 1;\r\n uint tno = Convert.ToUInt32(e1017first.S_TASK_NO.Substring(4));\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> 转æ¢åä»»å¡å·{tno} å¼å§åå
¥ã\");\r\n tag.RGV.taskno1 = tno;\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}>å¼å§åå
¥ task1do>>{e1017first.S_START_LOC}ã\");\r\n tag.RGV.task1do = Convert.ToUInt16(e1017first.S_START_LOC);\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> æ´æ°ä»»å¡ã\");\r\n e1017first.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(e1017first);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> bit1taskOver_LAST å0\");\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> taskend å125\");\r\n //tag.RGV.taskend=125\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n else\r\n {\r\n var t2 = tklist.OrderBy(x => x.T_CREATE).ToList().Find(x => x.S_START_LOC == \"1020\" || x.S_START_LOC == \"1008\" || x.S_START_LOC == \"1016\");\r\n if (tklist != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 没任å¡å·¥ä½2 没任å¡ã æ¾1020 1008 1016åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 1;\r\n tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n t2.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t2);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n }\r\n }\r\n }\r\n LogHelper.Info($\"rgv å¤ç宿ãtaskend 125\");\r\n #endregion\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Info(ex.Message + ex.StackTrace);\r\n }\r\n }\r\n\r\n\r\n public void ThreadGrats(Tag tag, Action<HaiKangOrderInfo> continueTask)\r\n {\r\n Console.WriteLine($\"ThreadGrats å
æ
å¤ç =================> \");\r\n var taskCOdes = new List<string> { \"Sarrive\", \"Srelease\", \"Earrive\", \"Erelease\" };\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n TaskRepository taskRepository = new TaskRepository();\r\n var requires = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0);\r\n foreach (var item in requires)\r\n {\r\n var tin = taskCOdes.IndexOf(item.S_ACTION_CODE);\r\n if (tin == -1)\r\n {\r\n item.N_CREATEMETHOD = -1;\r\n taskActRepository.Update(item);\r\n continue;\r\n }\r\n //var task = taskRepository.FindEntity(x => x.S_TASK_NO == item.S_TASK_NO);\r\n string loc = \"\";\r\n if (tin < 2)\r\n {\r\n loc = item.S_START_LOC;\r\n }\r\n else\r\n {\r\n loc = item.S_END_LOC;\r\n }\r\n if (loc == null) continue; else loc = loc.Trim();\r\n bool goin = tin % 2 == 0;\r\n bool continuuuuu = false;\r\n var dev = Settings.deviceInfos.Find(x => x.location.Contains(loc));\r\n if (dev != null)\r\n {\r\n var V = dev.location.ToList().FindIndex(x => x == loc) == 0;\r\n //è½¦èµ°äº å¼å
æ
\r\n if (!goin)\r\n {\r\n if (dev.deviceType == 1)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\");\r\n\r\n }\r\n else if (dev.deviceType == 2)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\");\r\n }\r\n\r\n item.N_CREATEMETHOD = 1;\r\n taskActRepository.Update(item);\r\n }\r\n //车è¦è¿å
¥äº¤äºã\r\n else\r\n {\r\n if (dev.deviceType == 1)\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".\" + (V ? \"R50\" : \"R52\"));//读å
³éç¶æ\r\n if (tf?.ToLower() == \"true\")\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã å·²ç»å
³éï¼\");\r\n continuuuuu = true;\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\");\r\n }\r\n\r\n }\r\n else if (dev.deviceType == 2)\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".D1202\");\r\n int numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n if (TcpServer.GetBitdata(numm, (V ? 0 : 1)) == 1)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã å·²ç»å
³éï¼\");\r\n continuuuuu = true;\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), \"1\", dev.deviceName + \"Queue\");\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n if (continuuuuu)\r\n {\r\n LogHelper.Info($\"{item.S_TASK_NO}{item.S_ACTION_CODE} 车è¾åéç»§ç»ä»»å¡ï¼\");\r\n continueTask?.Invoke(new HaiKangOrderInfo\r\n {\r\n reqCode = item.S_ID.Replace(\"-\", \"\"),\r\n taskCode = item.S_TASK_NO\r\n });\r\n item.N_CREATEMETHOD = 1;\r\n taskActRepository.Update(item);\r\n }\r\n }\r\n System.Threading.Thread.Sleep(3000);\r\n //é置信å·\r\n foreach (var dev in Settings.deviceInfos.FindAll(x => x.deviceType == 2))\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".D1202\");\r\n int numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n if (TcpServer.GetBitdata(numm, 0) == 0)\r\n {\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1220\", \"0\", dev.deviceName + \"Queue\");\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1222\", \"0\", dev.deviceName + \"Queue\");\r\n }\r\n else if (TcpServer.GetBitdata(numm, 1) == 0)\r\n {\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1221\", \"0\", dev.deviceName + \"Queue\");\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1223\", \"0\", dev.deviceName + \"Queue\");\r\n }\r\n }\r\n\r\n }\r\n /// <summary>\r\n /// 1020 1023空æ¡ä¸çº¿\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void ThreadEdown(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadEdown 20 23 = ç©ºä¸æ£æµ =================> \");\r\n TaskRepository taskRepository = new TaskRepository();\r\n foreach (var Bssx in new string[] { \"1020\", \"1023\" })\r\n {\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} ç©ºä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç } \");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n string msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n try\r\n {\r\n var listtep = new List<string>();\r\n if (Bssx == \"1020\")\r\n {\r\n if (tag.SF䏿ä½.RArrive1003 == 1)\r\n {\r\n listtep = new List<string> { \"1012\", \"1004\" };\r\n }\r\n else\r\n {\r\n listtep = new List<string> { \"1004\", \"1012\" };\r\n }\r\n }\r\n else\r\n {\r\n if (tag.SF䏿ä½.RArrive1005 == 1)\r\n {\r\n listtep = new List<string> { \"1014\", \"1006\" };\r\n }\r\n else\r\n {\r\n listtep = new List<string> { \"1006\", \"1014\" };\r\n }\r\n }\r\n\r\n foreach (var item in listtep)//(Bssx == \"1020\" ? new string[] { \"1004\", \"1012\" } : new string[] { \"1006\", \"1014\" }))\r\n {\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0 && task == null)\r\n {\r\n task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\" {item}ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\" {item}ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"空ä¸RGV\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n LogHelper.Debug($\"è¾é线RGV空æä»»å¡ from:{Bssx}>to {item}å¼å§å建æå\");\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"0\", $\"S{item}ReadQueue\");\r\n }\r\n }\r\n System.Threading.Thread.Sleep(1000);\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(ex.Message, ex);\r\n Console.WriteLine(ex.Message + ex.StackTrace);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n }\r\n\r\n foreach (var item in new string[] { \"1004\", \"1012\", \"1006\", \"1014\", \"1026\", \"1017\" })\r\n {\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"0\", $\"S{item}ReadQueue\");\r\n }\r\n }\r\n }\r\n\r\n public void ThreadDdown(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadDdown 08 10 ==================> 1026\");\r\n TaskRepository taskRepository = new TaskRepository();\r\n foreach (var Bssx in new string[] { \"1008\", \"1016\" })\r\n {\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n string msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n\r\n var item = \"1026\";\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"满转1026\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out msg);\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg2);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg2);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n }\r\n }\r\n\r\n public void Thread0210Down(Tag tag)\r\n {\r\n Console.WriteLine($\"Thread0210Down ==================>\");\r\n TaskRepository taskRepository = new TaskRepository();\r\n foreach (var Bssx in new string[] { \"1002\", \"1010\" })\r\n {\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n string msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n var item = \"1017\";\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"满转1017\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out msg);\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg1);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg1);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n }\r\n }\r\n\r\n\r\n public void Thread䏿使£æµ(Tag tag)\r\n {\r\n Console.WriteLine($\"Thread䏿使£æµ =====>\");\r\n foreach (var ssx in new string[] { \"1003\", \"1005\", \"1011\", \"1013\" })\r\n {\r\n var RArrive = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"FNK1003051113.RArrive{ssx}\"), typeof(System.UInt16));\r\n var RArriveLast = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"FNK1003051113.RArrive{ssx}_LAST\"), typeof(System.UInt16));\r\n if (RArrive == 1 && RArriveLast == 0)\r\n {\r\n if (ssx == \"1005\" && tag.SF䏿ä½.WRelease1005 == 0)\r\n {\r\n tag.FNK1.D2215 = 1;\r\n //tag.SF䏿ä½.RArrive1005_LAST = 1;\r\n RedisHelper.Add($\"FNK1003051113.RArrive1005_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1005 = 0;\r\n //tag.SF䏿ä½.WSafe0305 = 0;\r\n }\r\n else if (ssx == \"1003\" && tag.SF䏿ä½.WRelease1003 == 0)\r\n {\r\n tag.FNK1.D2210 = 1;\r\n //tag.SF䏿ä½.RArrive1003_LAST = 1;\r\n\r\n RedisHelper.Add($\"FNK1003051113.RArrive1003_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1003 = 0;\r\n //tag.SF䏿ä½.WSafe0305 = 0;\r\n }\r\n else if (ssx == \"1013\" && tag.SF䏿ä½.WRelease1013 == 0)\r\n {\r\n tag.FNK2.D2215 = 1;\r\n //tag.SF䏿ä½.RArrive1013_LAST = 1;\r\n RedisHelper.Add($\"FNK1003051113.RArrive1013_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1013 = 0;\r\n //tag.SF䏿ä½.WSafe1113 = 0;\r\n }\r\n else if (ssx == \"1011\" && tag.SF䏿ä½.WRelease1011 == 0)\r\n {\r\n tag.FNK2.D2210 = 1;\r\n //tag.SF䏿ä½.RArrive1011_LAST = 1;\r\n RedisHelper.Add($\"FNK1003051113.RArrive1011_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1011 = 0;\r\n //tag.SF䏿ä½.WSafe1113 = 0;\r\n }\r\n }\r\n else if (RArrive == 0 && RArriveLast == 1)\r\n {\r\n RedisHelper.Add($\"FNK1003051113.RArrive{ssx}_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"FNK1003051113.RArrive{ssx}_LAST\", \"0\", $\"FNK1003051113Queue\");\r\n }\r\n }\r\n }\r\n\r\n public void ThreadFNK1Over(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadFNK1Over =====>\");\r\n if (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0)\r\n {\r\n tag.FNK1.D2215 = 0;\r\n //tag.FNK1.D2212_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2217_LAST\", \"1\", out string msg);\r\n\r\n tag.SF䏿ä½.WRelease1005 = 1;\r\n tag.SF䏿ä½.WSafe0305 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1005_LAST\", \"0\", out msg);\r\n }\r\n if (tag.FNK1.D2216 == 1)\r\n tag.FNK1.D2215 = 0;\r\n else if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1)\r\n //tag.FNK1.D2217_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2217_LAST\", \"0\", out string msg);\r\n\r\n if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0)\r\n {\r\n tag.FNK1.D2210 = 0;\r\n //tag.FNK1.D2217_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2212_LAST\", \"1\", out string msg);\r\n tag.SF䏿ä½.WRelease1003 = 1;\r\n tag.SF䏿ä½.WSafe0305 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1003_LAST\", \"0\", out msg);\r\n }\r\n //else if (tag.FNK1.D2211 == 1)\r\n // tag.FNK1.D2210 = 0;\r\n else if (tag.FNK1.D2212 == 0 && tag.FNK1.D2212_LAST == 1)\r\n {\r\n //tag.FNK1.D2212_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.FNK1.D2211 == 1)\r\n tag.FNK1.D2210 = 0;\r\n\r\n }\r\n public void ThreadFNK2Over(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadFNK2Over =====>\");\r\n if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0)\r\n {\r\n tag.FNK2.D2215 = 0;\r\n //tag.FNK2.D2212_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2217_LAST\", \"1\", out string msg);\r\n\r\n tag.SF䏿ä½.WRelease1013 = 1;\r\n tag.SF䏿ä½.WSafe1113 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1013_LAST\", \"0\", out msg);\r\n }\r\n else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1)\r\n //tag.FNK2.D2217_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2217_LAST\", \"0\", out string msg);\r\n\r\n if (tag.FNK2.D2216 == 1)\r\n tag.FNK2.D2215 = 0;\r\n\r\n if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0)\r\n {\r\n tag.FNK2.D2210 = 0;\r\n //tag.FNK2.D2217_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2212_LAST\", \"1\", out string msg);\r\n\r\n tag.SF䏿ä½.WRelease1011 = 1;\r\n tag.SF䏿ä½.WSafe1113 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1011_LAST\", \"0\", out msg);\r\n }\r\n else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1)\r\n {\r\n //tag.FNK2.D2212_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.FNK2.D2211 == 1)\r\n tag.FNK2.D2210 = 0;\r\n\r\n }\r\n\r\n public void Thread1019Down(Tag tag)\r\n {\r\n Console.WriteLine($\"1019ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"1019ä»»å¡ç¶æï¼{tag.SA1019.RtaskState}- barcode:{tag.SA1019.Ræçç }- 空é²{tag.SA1019.R5空é²}\");\r\n }\r\n public void Thread1025Up(Tag tag)\r\n {\r\n Console.WriteLine($\"SA1025 ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"SA1025 ä»»å¡ç¶æï¼{tag.SA1025.RtaskState}- 空é²{tag.SA1025.R5空é²}\");\r\n }\r\n public void Thread1022Up(Tag tag)\r\n {\r\n Console.WriteLine($\"SA1022 =====>\");\r\n Console.WriteLine($\"SA1022 ä»»å¡ç¶æï¼{tag.SA1022.RtaskState}- 空é²{tag.SA1022.R5空é²}\");\r\n }\r\n public void Thread1030Down(Tag tag)\r\n {\r\n Console.WriteLine($\"SA1030 ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"SA1030 ä»»å¡ç¶æï¼{tag.SA1030.RtaskState}- 空é²{tag.SA1030.R5空é²}-->对åºç»ç¹2001>空é²5ï¼{tag.SA2001.R5空é²}\");\r\n }\r\n public void Thread2030Down(Tag tag)\r\n {\r\n Console.WriteLine($\"SA2030 ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"SA2030 ä»»å¡ç¶æï¼{tag.SA2030.RtaskState}- 空é²{tag.SA2030.R5空é²} - barcode:{tag.SA2030.Ræçç }\");\r\n }\r\n\r\n\r\n }\r\n}\r\n", |
| | | "Code": "using Newtonsoft.Json;\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.Concurrent;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Reflection;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing GZ.Modular.Redis;\r\nusing GZ.DB.Entity.OIDATABASE;\r\nusing GZ.DB.IRepository.OIDATABASE;\r\nusing GZ.DB.Repository.OIDATABASE;\r\nusing static System.Windows.Forms.VisualStyles.VisualStyleElement;\r\nusing System.Windows.Interop;\r\nusing static System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox;\r\n\r\nnamespace GZ.Projects.AuxAllWCS\r\n{\r\n public partial class AutoThread\r\n {\r\n\r\n private static AutoThread _instance;\r\n\r\n // ç§ææé 彿°é²æ¢å¤é¨å®ä¾å\r\n private AutoThread() { }\r\n\r\n public static AutoThread Instance\r\n {\r\n get\r\n {\r\n if (_instance == null)\r\n {\r\n _instance = new AutoThread();\r\n }\r\n return _instance;\r\n }\r\n }\r\n\r\n // 线ç¨å®å
¨çå§æç¼å\r\n private static readonly ConcurrentDictionary<string, Delegate> _methodCache = new ConcurrentDictionary<string, Delegate>();\r\n\r\n // æ¹æ³æ§è¡å¨\r\n public static object InvokeMethod(object instance, string methodName, params object[] args)\r\n {\r\n var cacheKey = $\"{instance.GetType().FullName}_{methodName}\";\r\n\r\n if (!_methodCache.TryGetValue(cacheKey, out var methodDelegate))\r\n {\r\n // è·åæ¹æ³ä¿¡æ¯\r\n var methodInfo = instance.GetType().GetMethod(\r\n methodName,\r\n BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);\r\n\r\n if (methodInfo == null)\r\n throw new MissingMethodException($\"Method {methodName} not found\");\r\n\r\n // åå»ºå§æå¹¶ç¼å\r\n methodDelegate = Delegate.CreateDelegate(\r\n GetDelegateType(methodInfo),\r\n instance,\r\n methodInfo);\r\n\r\n _methodCache.TryAdd(cacheKey, methodDelegate);\r\n }\r\n\r\n // æ§è¡å§æ\r\n return methodDelegate.DynamicInvoke(args);\r\n }\r\n\r\n // æ ¹æ®æ¹æ³ç¾åçæå¯¹åºçå§æç±»å\r\n private static Type GetDelegateType(MethodInfo methodInfo)\r\n {\r\n var parameterTypes = methodInfo.GetParameters()\r\n .Select(p => p.ParameterType)\r\n .ToList();\r\n\r\n if (methodInfo.ReturnType == typeof(void))\r\n {\r\n return System.Linq.Expressions.Expression.GetActionType(parameterTypes.ToArray());\r\n }\r\n else\r\n {\r\n parameterTypes.Add(methodInfo.ReturnType);\r\n return System.Linq.Expressions.Expression.GetFuncType(parameterTypes.ToArray());\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// é
ç½®åå§åã\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n /// <param name=\"action\"></param>\r\n public void ThreadSettingInit(Tag tag, Action action)\r\n {\r\n Console.WriteLine(\"åå§åé
ç½® çº¿ç¨ run \" + tag.Global.SettingsOver);\r\n if (tag.Global.SettingsOver == 0)\r\n {\r\n action?.Invoke();\r\n tag.Global.SettingsOver = 1;\r\n }\r\n else if (Settings.deviceInfos.Count == 0)\r\n {\r\n tag.Global.SettingsOver = 0;\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// æ·é¡º1 ä¿¡å·å¤ç\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void ThreadJS1(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadJS1 æ·é¡º1 ä¿¡å·å¤ç =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 2 && x.deviceName == \"Jsæ·é¡º1\");\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.Js1.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[0]\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js1.D1212_LAST = 1;\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js1.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 0)\r\n {\r\n //tag.Js1.D1212_LAST = 0; \r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[1]\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js1.D1213_LAST = 1;\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js1.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 0)\r\n {\r\n //tag.Js1.D1213_LAST = 0;\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"0\", out string msg);\r\n }\r\n }\r\n }\r\n /// <summary>\r\n /// æ·é¡º2 ä¿¡å·å¤ç\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void ThreadJS2(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadJS2 æ·é¡º2 ä¿¡å·å¤ç =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 2 && x.deviceName == \"Jsæ·é¡º2\");\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.Js2.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[0]\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js2.D1212_LAST = 1;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js2.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 0)\r\n {\r\n //tag.Js2.D1212_LAST = 0;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.Js2.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[1]\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js2.D1213_LAST = 1;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js2.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1213, 2) == 0)\r\n {\r\n //tag.Js2.D1213_LAST = 0;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"0\", out string msg);\r\n }\r\n }\r\n }\r\n /// <summary>\r\n /// ç»´å¸å°1 å·¦\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr1L(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr1L ç»´å¸å°1 å·¦ =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr1.R44 && !tag.wxr1.R44_LAST && tag.wxr1.R10)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[0],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr1.R44_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n //TaskRepository ts = new TaskRepository();\r\n if (tag.wxr1.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr1.R10)\r\n {\r\n tag.wxr1.R10_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr1.R10 = true;\r\n tag.wxr1.R44_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// ç»´å¸å°1 å³\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr1R(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr1R ç»´å¸å°1 å³ =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr1.R46 && !tag.wxr1.R46_LAST && tag.wxr1.R11)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[1],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr1.R46_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr1.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr1.R11)\r\n {\r\n tag.wxr1.R11_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr1.R11 = true;\r\n tag.wxr1.R46_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// ç»´å¸å°2 å·¦\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr2L(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr2L ç»´å¸å°2 å·¦ =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr2.R44 && !tag.wxr2.R44_LAST && tag.wxr2.R10)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[0],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr2.R44_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr2.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr2.R10)\r\n {\r\n tag.wxr2.R10_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr2.R10 = true;\r\n tag.wxr2.R44_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// ç»´å¸å°2 å³\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr2R(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr2R ç»´å¸å°2 å³ =================> \");\r\n\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr2.R46 && !tag.wxr2.R46_LAST && tag.wxr2.R11)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[1],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr2.R46_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[2], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr2.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr2.R11)\r\n {\r\n tag.wxr2.R11_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr2.R11 = true;\r\n tag.wxr2.R46_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n public void ThreadTaskRun(Tag tag, Func<TaskEntity, bool> action)\r\n {\r\n Console.WriteLine($\"ThreadTaskRun ä»»å¡ä¸å =================> \");\r\n LogHelper.Info(\"ThreadTaskRun ä»»å¡ä¸å\");\r\n\r\n ITaskRepository taskservice = new TaskRepository();\r\n try\r\n {\r\n LogHelper.Info(\"ä»»å¡ä¸å ARG ä»»å¡ è¿å
¥\");\r\n #region AGVä»»å¡ä¸åã\r\n\r\n var tklist = taskservice.FindList(x => x.S_B_STATE == \"æªæ§è¡\" && x.S_WORK_MODE == \"AGV\");\r\n if (tklist.Any())\r\n foreach (var tk in tklist.GroupBy(item =>\r\n {\r\n var ticks = item.T_CREATE.Ticks;\r\n return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));\r\n }).OrderBy(x => x.Key))\r\n {\r\n var ts = tk.OrderByDescending(x => x.N_PRIORITY).ToList();\r\n foreach (var t in ts)\r\n {\r\n var b = false;\r\n b = action?.Invoke(t) ?? false; //new ViewModel().RunTask(t);\r\n\r\n if (b)\r\n {\r\n t.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t);\r\n }\r\n }\r\n break;\r\n }\r\n //foreach (var tk in tklist.GroupBy(item =>\r\n //{\r\n // var ticks = item.T_CREATE.Ticks;\r\n // return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));\r\n //}).OrderBy(x => x.Key))\r\n //if (tklist.Any())\r\n //{\r\n\r\n #endregion\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Info(ex.Message + ex.StackTrace);\r\n }\r\n try\r\n {\r\n #region Rgv\r\n\r\n LogHelper.Info($\"æ¥çRGV çµéï¼ã{tag.RGV.Rå½åçµé}ã å
çµç¶æï¼ã{tag.RGV.Rå
çµç¶æ}ã æ
é代ç ï¼ã{tag.RGV.RgvrunError}ã\");\r\n\r\n if (tag.RGV.taskend == 125)\r\n {\r\n System.Threading.Thread.Sleep(3000);\r\n return;\r\n }\r\n LogHelper.Info(\"ä»»å¡ä¸å Rgv ä»»å¡ è¿å
¥\");\r\n\r\n var task1Isrun = false;\r\n if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver != 1)\r\n {\r\n task1Isrun = true;\r\n //if (tag.RGV.bit1taskOver_LAST == 1)\r\n // RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n }\r\n var task2Isrun = false;\r\n if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver != 1)\r\n {\r\n task2Isrun = true;\r\n //if (tag.RGV.bit2taskOver_LAST == 1)\r\n // RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n }\r\n if (task1Isrun || task2Isrun)\r\n {\r\n string mes = \"\";\r\n if (task1Isrun)\r\n mes += tag.RGV.ReadTask1No + \"æ§è¡ä¸...\";\r\n if (task2Isrun)\r\n mes += tag.RGV.ReadTask2No + \"æ§è¡ä¸...\";\r\n LogHelper.Info($\"{mes} ä¸è½ä¸åæ°ä»»å¡ã\");\r\n System.Threading.Thread.Sleep(3000);\r\n return; \r\n }\r\n var thisOver = 0;\r\n TaskEntity task1 = null;\r\n TaskEntity task2 = null;\r\n\r\n LogHelper.Info($\"æ¥çRGV 1å·¥ä½ä»»å¡ã\");\r\n if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver == 1)\r\n {\r\n var taskno = tag.RGV.ReadTask1No;\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{tag.RGV.ReadTask1No}\");\r\n string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n task1 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task1)}.bit1taskOver_LASTï¼{tag.RGV.bit1taskOver_LAST}\");\r\n if (tag.RGV.bit1taskOver_LAST == 0 && task1 != null)\r\n {\r\n if (task1.S_B_STATE != \"宿\")\r\n {\r\n thisOver = 1;\r\n if (task1.S_B_STATE == \"åè´§å®æ\")\r\n {\r\n task1.S_B_STATE = \"宿\";\r\n tag.RGV.ReadTask1No = 0;\r\n }\r\n else\r\n {\r\n task1.S_B_STATE = \"åè´§å®æ\";\r\n }\r\n tag.RGV.bit1taskOver = 0;\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{task1.S_TASK_NO} ç¶æåæ¢ä¸º{task1.S_B_STATE}\");\r\n //tag.RGV.bit1taskOver_LAST = 1;\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"1\", out string msg);\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡åå¤ç\");\r\n taskservice.Update(task1);\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡æ´æ°ã\");\r\n }\r\n else\r\n {\r\n LogHelper.Info(\"RGV1å·¥ä½ä»»å¡å·²ç»å®æã\");\r\n }\r\n }\r\n }\r\n else if (tag.RGV.ReadTask1No == 0)\r\n {\r\n LogHelper.Info($\"RGV 1工使²¡æä»»å¡ã\");\r\n }\r\n\r\n LogHelper.Info($\"æ¥çRGV 2å·¥ä½ä»»å¡ã\");\r\n if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver == 1)\r\n {\r\n var taskno = tag.RGV.ReadTask2No;\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡{tag.RGV.ReadTask2No}\");\r\n string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n task2 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n LogHelper.Info($\"RGV2å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task2)}.bit2taskOver_LASTï¼{tag.RGV.bit2taskOver_LAST}\");\r\n if (tag.RGV.bit2taskOver_LAST == 0 && task2 != null)\r\n {\r\n if (task2.S_B_STATE != \"宿\")\r\n {\r\n thisOver = 2;\r\n if (task2.S_B_STATE == \"åè´§å®æ\")\r\n {\r\n task2.S_B_STATE = \"宿\";\r\n tag.RGV.ReadTask2No = 0;\r\n }\r\n else\r\n {\r\n task2.S_B_STATE = \"åè´§å®æ\";\r\n }\r\n tag.RGV.bit2taskOver = 0;\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡{task2.S_TASK_NO} ç¶æåæ¢ä¸º{task2.S_B_STATE}\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"1\", out string msg);\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡åå¤ç\");\r\n taskservice.Update(task2);\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡æ´æ°ã\");\r\n }\r\n else\r\n {\r\n LogHelper.Info(\"RGV2å·¥ä½ä»»å¡å·²ç»å®æã\");\r\n }\r\n }\r\n }\r\n else if (tag.RGV.ReadTask2No == 0)\r\n {\r\n LogHelper.Info($\"RGV 2工使²¡æä»»å¡ã\");\r\n }\r\n\r\n\r\n\r\n //if (thisOver > 0)\r\n //{\r\n // var v2 = RedisHelper.Get<WriteGroupEntity>(\"RGVQueue\", out string rev);\r\n // if (v2 != null)\r\n // {\r\n // LogHelper.Info($\"RGVQueue 读å°ç»æ-{JsonConvert.SerializeObject(v2)} \\n ä¸ååè¿è¡æ¸
é¤ã\");\r\n // var b = RedisHelper.Remove(\"RGVQueue\", out rev);\r\n // }\r\n //}\r\n\r\n ///1 æè´§ å°±2 åã 1 没货 å°±2 å¸è´§ï¼ é½æè´§ å°±1å¸è´§ã 齿²¡è´§ å°±1å¸\r\n var tklist = taskservice.FindList(x => x.S_B_STATE == \"æªæ§è¡\" && x.S_WORK_MODE == \"RGV\").OrderBy(x => x.T_CREATE).ToList();\r\n if (task1 != null && task1.S_B_STATE != \"宿\") //1æä»»å¡\r\n {\r\n if (task2 != null && task2.S_B_STATE != \"宿\")// 1 æä»»å¡ 2 æä»»å¡ã \r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 乿任å¡{task2.S_TASK_NO}ã å¼å§å·¥ä½1 å¸è´§ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n //RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n //tag.RGV.taskend = 125;\r\n //Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\");\r\n\r\n LogHelper.Info($\"{task1.S_TASK_NO}> bit1taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{task1.S_TASK_NO}> end å 125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n else //1æä»»å¡ 2 没任å¡ã \r\n {\r\n\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡ã\");\r\n\r\n var leftSide = new List<string> { \"1023\", \"1020\" };\r\n var RightSide = new List<string> { \"1002\", \"1008\", \"1010\", \"1016\" };\r\n bool creT2 = false;\r\n\r\n // 2å· ä¼å
ç» 1020 1008 1016\r\n var t2 = tklist.OrderBy(x => x.T_CREATE).ToList().Find(x => x.S_START_LOC == \"1020\" || x.S_START_LOC == \"1008\" || x.S_START_LOC == \"1016\");\r\n if (t2 != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾1020 1008 1016åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 1;\r\n tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n t2.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t2);\r\n creT2 = true;\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n ////2 妿æåä¾§åè´§ä»»å¡ãå°±åãæ²¡æ\r\n //else if (leftSide.Contains(task1.S_START_LOC))\r\n //{\r\n // leftSide.Remove(task1.S_START_LOC);\r\n // var lsde = leftSide.FirstOrDefault();\r\n // t2 = tklist.Find(x => x.S_START_LOC == lsde && x.S_END_LOC != \"1017\");\r\n // if (t2 != null) //åä¾§åè´§ä»»å¡ã\r\n // {\r\n // LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n // tag.RGV.workMod = 2;\r\n // tag.RGV.taskmod = 1;\r\n // tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n // tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n // t2.S_B_STATE = \"å·²æ¨é\";\r\n // taskservice.Update(t2);\r\n // creT2 = true;\r\n // System.Threading.Thread.Sleep(750);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n // RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n // Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n // }\r\n //}\r\n //else if (RightSide.Contains(task1.S_START_LOC))\r\n //{\r\n // RightSide.Remove(task1.S_START_LOC);\r\n // t2 = tklist.Find(x => RightSide.Contains(x.S_START_LOC) && x.S_END_LOC != \"1017\");\r\n // if (t2 != null) //åä¾§åè´§ä»»å¡ã\r\n // {\r\n // LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§ 1002,1010 åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n // tag.RGV.workMod = 2;\r\n // tag.RGV.taskmod = 1;\r\n // tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n // tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n // t2.S_B_STATE = \"å·²æ¨é\";\r\n // taskservice.Update(t2);\r\n // creT2 = true;\r\n // System.Threading.Thread.Sleep(750);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 125\");\r\n // RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n // Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n // }\r\n //}\r\n else //1 ç´æ¥å¸è´§ã \r\n //if (!creT2)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã 没æåä¾§åè´§ä»»å¡ 1å·¥ä½å¸è´§ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{task1.S_TASK_NO}> bit1taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{task1.S_TASK_NO}> taskend å 0\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n }\r\n }\r\n else\r\n {\r\n if (task2 != null && task2.S_B_STATE != \"宿\")// 1 æ²¡ä»»å¡ 2 æä»»å¡ã \r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 æä»»å¡{task2.S_TASK_NO}ãå·¥ä½2å¸è´§ãã\");\r\n //2 å¸è´§ã\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno2 = Convert.ToUInt32(task2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(task2.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{task2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n //tag.RGV.taskend = 125;\r\n LogHelper.Info($\"{task2.S_TASK_NO}> taskend å125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n else if (tklist.Any()) //1mei ä»»å¡ 2 没任å¡ã\r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 乿²¡ä»»å¡ãä¼å
1å·¥ä½ç»ç¹1017ä»»å¡ãã\");\r\n //ãä¸ 1017ä»»å¡ ç»1å·å·¥ä½ã\r\n //var lss = tklist.Take(2).ToList();\r\n var e1017first = tklist.Find(x => x.S_START_LOC == \"1002\" || x.S_START_LOC == \"1010\" || x.S_START_LOC == \"1023\");\r\n //if (e1017first != null)\r\n //{\r\n // e1017first = tklist.FirstOrDefault();\r\n //}\r\n if (e1017first != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 ä»»å¡å·¥ä½2 没任å¡ã 1002 1010 1023åè´§ä»»å¡{e1017first.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 1;\r\n uint tno = Convert.ToUInt32(e1017first.S_TASK_NO.Substring(4));\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> 转æ¢åä»»å¡å·{tno} å¼å§åå
¥ã\");\r\n tag.RGV.taskno1 = tno;\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}>å¼å§åå
¥ task1do>>{e1017first.S_START_LOC}ã\");\r\n tag.RGV.task1do = Convert.ToUInt16(e1017first.S_START_LOC);\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> æ´æ°ä»»å¡ã\");\r\n e1017first.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(e1017first);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> bit1taskOver_LAST å0\");\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> taskend å125\");\r\n //tag.RGV.taskend=125\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n else\r\n {\r\n var t2 = tklist.OrderBy(x => x.T_CREATE).ToList().Find(x => x.S_START_LOC == \"1020\" || x.S_START_LOC == \"1008\" || x.S_START_LOC == \"1016\");\r\n if (tklist != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 没任å¡å·¥ä½2 没任å¡ã æ¾1020 1008 1016åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 1;\r\n tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n t2.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t2);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n }\r\n }\r\n }\r\n LogHelper.Info($\"rgv å¤ç宿ãtaskend 125\");\r\n #endregion\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Info(ex.Message + ex.StackTrace);\r\n }\r\n }\r\n\r\n\r\n public void ThreadGrats(Tag tag, Action<HaiKangOrderInfo> continueTask)\r\n {\r\n Console.WriteLine($\"ThreadGrats å
æ
å¤ç =================> \");\r\n var taskCOdes = new List<string> { \"Sarrive\", \"Srelease\", \"Earrive\", \"Erelease\" };\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n TaskRepository taskRepository = new TaskRepository();\r\n var requires = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0);\r\n foreach (var item in requires)\r\n {\r\n var tin = taskCOdes.IndexOf(item.S_ACTION_CODE);\r\n if (tin == -1)\r\n {\r\n item.N_CREATEMETHOD = -1;\r\n taskActRepository.Update(item);\r\n continue;\r\n }\r\n //var task = taskRepository.FindEntity(x => x.S_TASK_NO == item.S_TASK_NO);\r\n string loc = \"\";\r\n if (tin < 2)\r\n {\r\n loc = item.S_START_LOC;\r\n }\r\n else\r\n {\r\n loc = item.S_END_LOC;\r\n }\r\n if (loc == null) continue; else loc = loc.Trim();\r\n bool goin = tin % 2 == 0;\r\n bool continuuuuu = false;\r\n var dev = Settings.deviceInfos.Find(x => x.location.Contains(loc));\r\n if (dev != null)\r\n {\r\n var V = dev.location.ToList().FindIndex(x => x == loc) == 0;\r\n //è½¦èµ°äº å¼å
æ
\r\n if (!goin)\r\n {\r\n if (dev.deviceType == 1)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\");\r\n\r\n }\r\n else if (dev.deviceType == 2)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\");\r\n }\r\n\r\n item.N_CREATEMETHOD = 1;\r\n taskActRepository.Update(item);\r\n }\r\n //车è¦è¿å
¥äº¤äºã\r\n else\r\n {\r\n if (dev.deviceType == 1)\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".\" + (V ? \"R50\" : \"R52\"));//读å
³éç¶æ\r\n if (tf?.ToLower() == \"true\")\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã å·²ç»å
³éï¼\");\r\n continuuuuu = true;\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\");\r\n }\r\n\r\n }\r\n else if (dev.deviceType == 2)\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".D1202\");\r\n int numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n if (TcpServer.GetBitdata(numm, (V ? 0 : 1)) == 1)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã å·²ç»å
³éï¼\");\r\n continuuuuu = true;\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), \"1\", dev.deviceName + \"Queue\");\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n if (continuuuuu)\r\n {\r\n LogHelper.Info($\"{item.S_TASK_NO}{item.S_ACTION_CODE} 车è¾åéç»§ç»ä»»å¡ï¼\");\r\n continueTask?.Invoke(new HaiKangOrderInfo\r\n {\r\n reqCode = item.S_ID.Replace(\"-\", \"\"),\r\n taskCode = item.S_TASK_NO\r\n });\r\n item.N_CREATEMETHOD = 1;\r\n taskActRepository.Update(item);\r\n }\r\n }\r\n System.Threading.Thread.Sleep(3000);\r\n //é置信å·\r\n foreach (var dev in Settings.deviceInfos.FindAll(x => x.deviceType == 2))\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".D1202\");\r\n int numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n if (TcpServer.GetBitdata(numm, 0) == 0)\r\n {\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1220\", \"0\", dev.deviceName + \"Queue\");\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1222\", \"0\", dev.deviceName + \"Queue\");\r\n }\r\n else if (TcpServer.GetBitdata(numm, 1) == 0)\r\n {\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1221\", \"0\", dev.deviceName + \"Queue\");\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1223\", \"0\", dev.deviceName + \"Queue\");\r\n }\r\n }\r\n\r\n }\r\n /// <summary>\r\n /// 1020 1023空æ¡ä¸çº¿\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void ThreadEdown(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadEdown 20 23 = ç©ºä¸æ£æµ =================> \");\r\n TaskRepository taskRepository = new TaskRepository();\r\n foreach (var Bssx in new string[] { \"1020\", \"1023\" })\r\n {\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} ç©ºä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç } \");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n string msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n try\r\n {\r\n var listtep = new List<string>();\r\n if (Bssx == \"1020\")\r\n {\r\n if (tag.SF䏿ä½.RArrive1003 == 1)\r\n {\r\n listtep = new List<string> { \"1012\", \"1004\" };\r\n }\r\n else\r\n {\r\n listtep = new List<string> { \"1004\", \"1012\" };\r\n }\r\n }\r\n else\r\n {\r\n if (tag.SF䏿ä½.RArrive1005 == 1)\r\n {\r\n listtep = new List<string> { \"1014\", \"1006\" };\r\n }\r\n else\r\n {\r\n listtep = new List<string> { \"1006\", \"1014\" };\r\n }\r\n }\r\n\r\n foreach (var item in listtep)//(Bssx == \"1020\" ? new string[] { \"1004\", \"1012\" } : new string[] { \"1006\", \"1014\" }))\r\n {\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0 && task == null)\r\n {\r\n task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\" {item}ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\" {item}ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"空ä¸RGV\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n LogHelper.Debug($\"è¾é线RGV空æä»»å¡ from:{Bssx}>to {item}å¼å§å建æå\");\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"0\", $\"S{item}ReadQueue\");\r\n }\r\n }\r\n System.Threading.Thread.Sleep(1000);\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(ex.Message, ex);\r\n Console.WriteLine(ex.Message + ex.StackTrace);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n }\r\n\r\n foreach (var item in new string[] { \"1004\", \"1012\", \"1006\", \"1014\", \"1026\", \"1017\" })\r\n {\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"0\", $\"S{item}ReadQueue\");\r\n }\r\n }\r\n }\r\n\r\n public void ThreadDdown(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadDdown 08 10 ==================> 1026\");\r\n TaskRepository taskRepository = new TaskRepository();\r\n foreach (var Bssx in new string[] { \"1008\", \"1016\" })\r\n {\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n string msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n\r\n var item = \"1026\";\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"满转1026\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out msg);\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg2);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg2);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n }\r\n }\r\n\r\n public void Thread0210Down(Tag tag)\r\n {\r\n Console.WriteLine($\"Thread0210Down ==================>\");\r\n TaskRepository taskRepository = new TaskRepository();\r\n foreach (var Bssx in new string[] { \"1002\", \"1010\" })\r\n {\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n string msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n var item = \"1017\";\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"满转1017\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out msg);\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg1);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg1);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n }\r\n }\r\n\r\n\r\n public void Thread䏿使£æµ(Tag tag)\r\n {\r\n Console.WriteLine($\"Thread䏿使£æµ =====>\");\r\n foreach (var ssx in new string[] { \"1003\", \"1005\", \"1011\", \"1013\" })\r\n {\r\n var RArrive = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"FNK1003051113.RArrive{ssx}\"), typeof(System.UInt16));\r\n var RArriveLast = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"FNK1003051113.RArrive{ssx}_LAST\"), typeof(System.UInt16));\r\n if (RArrive == 1 && RArriveLast == 0)\r\n {\r\n if (ssx == \"1005\" && tag.SF䏿ä½.WRelease1005 == 0)\r\n {\r\n tag.FNK1.D2215 = 1;\r\n //tag.SF䏿ä½.RArrive1005_LAST = 1;\r\n RedisHelper.Add($\"FNK1003051113.RArrive1005_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1005 = 0;\r\n //tag.SF䏿ä½.WSafe0305 = 0;\r\n }\r\n else if (ssx == \"1003\" && tag.SF䏿ä½.WRelease1003 == 0)\r\n {\r\n tag.FNK1.D2210 = 1;\r\n //tag.SF䏿ä½.RArrive1003_LAST = 1;\r\n\r\n RedisHelper.Add($\"FNK1003051113.RArrive1003_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1003 = 0;\r\n //tag.SF䏿ä½.WSafe0305 = 0;\r\n }\r\n else if (ssx == \"1013\" && tag.SF䏿ä½.WRelease1013 == 0)\r\n {\r\n tag.FNK2.D2215 = 1;\r\n //tag.SF䏿ä½.RArrive1013_LAST = 1;\r\n RedisHelper.Add($\"FNK1003051113.RArrive1013_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1013 = 0;\r\n //tag.SF䏿ä½.WSafe1113 = 0;\r\n }\r\n else if (ssx == \"1011\" && tag.SF䏿ä½.WRelease1011 == 0)\r\n {\r\n tag.FNK2.D2210 = 1;\r\n //tag.SF䏿ä½.RArrive1011_LAST = 1;\r\n RedisHelper.Add($\"FNK1003051113.RArrive1011_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1011 = 0;\r\n //tag.SF䏿ä½.WSafe1113 = 0;\r\n }\r\n }\r\n else if (RArrive == 0 && RArriveLast == 1)\r\n {\r\n RedisHelper.Add($\"FNK1003051113.RArrive{ssx}_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"FNK1003051113.RArrive{ssx}_LAST\", \"0\", $\"FNK1003051113Queue\");\r\n }\r\n }\r\n }\r\n\r\n public void ThreadFNK1Over(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadFNK1Over =====>\");\r\n if (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0)\r\n {\r\n tag.FNK1.D2215 = 0;\r\n //tag.FNK1.D2212_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2217_LAST\", \"1\", out string msg);\r\n\r\n tag.SF䏿ä½.WRelease1005 = 1;\r\n tag.SF䏿ä½.WSafe0305 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1005_LAST\", \"0\", out msg);\r\n }\r\n if (tag.FNK1.D2216 == 1)\r\n tag.FNK1.D2215 = 0;\r\n else if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1)\r\n //tag.FNK1.D2217_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2217_LAST\", \"0\", out string msg);\r\n\r\n if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0)\r\n {\r\n tag.FNK1.D2210 = 0;\r\n //tag.FNK1.D2217_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2212_LAST\", \"1\", out string msg);\r\n tag.SF䏿ä½.WRelease1003 = 1;\r\n tag.SF䏿ä½.WSafe0305 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1003_LAST\", \"0\", out msg);\r\n }\r\n //else if (tag.FNK1.D2211 == 1)\r\n // tag.FNK1.D2210 = 0;\r\n else if (tag.FNK1.D2212 == 0 && tag.FNK1.D2212_LAST == 1)\r\n {\r\n //tag.FNK1.D2212_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.FNK1.D2211 == 1)\r\n tag.FNK1.D2210 = 0;\r\n\r\n }\r\n public void ThreadFNK2Over(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadFNK2Over =====>\");\r\n if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0)\r\n {\r\n tag.FNK2.D2215 = 0;\r\n //tag.FNK2.D2212_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2217_LAST\", \"1\", out string msg);\r\n\r\n tag.SF䏿ä½.WRelease1013 = 1;\r\n tag.SF䏿ä½.WSafe1113 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1013_LAST\", \"0\", out msg);\r\n }\r\n else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1)\r\n //tag.FNK2.D2217_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2217_LAST\", \"0\", out string msg);\r\n\r\n if (tag.FNK2.D2216 == 1)\r\n tag.FNK2.D2215 = 0;\r\n\r\n if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0)\r\n {\r\n tag.FNK2.D2210 = 0;\r\n //tag.FNK2.D2217_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2212_LAST\", \"1\", out string msg);\r\n\r\n tag.SF䏿ä½.WRelease1011 = 1;\r\n tag.SF䏿ä½.WSafe1113 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1011_LAST\", \"0\", out msg);\r\n }\r\n else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1)\r\n {\r\n //tag.FNK2.D2212_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.FNK2.D2211 == 1)\r\n tag.FNK2.D2210 = 0;\r\n\r\n }\r\n\r\n public void Thread1019Down(Tag tag)\r\n {\r\n Console.WriteLine($\"1019ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"1019ä»»å¡ç¶æï¼{tag.SA1019.RtaskState}- barcode:{tag.SA1019.Ræçç }- 空é²{tag.SA1019.R5空é²}\");\r\n }\r\n public void Thread1025Up(Tag tag)\r\n {\r\n Console.WriteLine($\"SA1025 ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"SA1025 ä»»å¡ç¶æï¼{tag.SA1025.RtaskState}- 空é²{tag.SA1025.R5空é²}\");\r\n }\r\n public void Thread1022Up(Tag tag)\r\n {\r\n Console.WriteLine($\"SA1022 =====>\");\r\n Console.WriteLine($\"SA1022 ä»»å¡ç¶æï¼{tag.SA1022.RtaskState}- 空é²{tag.SA1022.R5空é²}\");\r\n }\r\n public void Thread1030Down(Tag tag)\r\n {\r\n Console.WriteLine($\"SA1030 ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"SA1030 ä»»å¡ç¶æï¼{tag.SA1030.RtaskState}- 空é²{tag.SA1030.R5空é²}-->对åºç»ç¹2001>空é²5ï¼{tag.SA2001.R5空é²}\");\r\n }\r\n public void Thread2030Down(Tag tag)\r\n {\r\n Console.WriteLine($\"SA2030 ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"SA2030 ä»»å¡ç¶æï¼{tag.SA2030.RtaskState}- 空é²{tag.SA2030.R5空é²} - barcode:{tag.SA2030.Ræçç }\");\r\n }\r\n\r\n\r\n }\r\n}\r\n", |
| | | "CusMethod": { |
| | | "Name": "", |
| | | "Params": [], |
| | | "ReturnType": "" |
| | | }, |
| | | "CusClass": { |
| | | "Name": "", |
| | | "InheritClass": "", |
| | | "Inherits": [] |
| | | } |
| | | } |
| | | ], |
| | | "CreationTime": "2025-02-26 15:31:23", |
| | | "LastWriteTime": "2025-06-18 23:06:58", |
| | | "LastWriteTime": "2025-06-23 09:06:09", |
| | | "HasSaved": true |
| | | } |
| | |
| | | "ID": "20250323111613779", |
| | | "Name": "åå§åé
ç½®", |
| | | "Desc": "", |
| | | "Content": " if (Tag.Global.SettingsOver == 0)\r\n {\r\n SettingInit();\r\n Tag.Global.SettingsOver = 1;\r\n }\r\n else if(Settings.deviceInfos.Count == 0)\r\n {\r\n Tag.Global.SettingsOver = 0;\r\n }\r\n", |
| | | "ContentCopy": " if (Tag.Global.SettingsOver == 0)\r\n {\r\n SettingInit();\r\n Tag.Global.SettingsOver = 1;\r\n }\r\n else if(Settings.deviceInfos.Count == 0)\r\n {\r\n Tag.Global.SettingsOver = 0;\r\n }\r\n", |
| | | "Content": "\r\n Action myDelegate = () => SettingInit();\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadSettingInit\", new object[] { tag, myDelegate });", |
| | | "ContentCopy": "\r\n Action myDelegate = () => SettingInit();\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadSettingInit\", new object[] { tag, myDelegate });", |
| | | "ParentID": "20250226153120175", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250323151832119", |
| | | "Name": "Program4", |
| | | "Desc": "", |
| | | "Content": "//Conn.é»è®¤Redis.SetValue(\"西é¨å2.Param3\",\"300\",\"西é¨å2Queue\");\r\n//return;\r\nif(false){\r\n List<string> locs = new List<string>() { \"vxr1l\", \"vx1r\", \"vxr1c1\", \"vxr1c2\", \"vxr2l\", \"vxr2r\", \"vxr2c1\", \"vxr2c2\" };\r\n List<string> sites = new List<string>() { \"196365BB283162\", \"193841BB283149\", \"198756BB287300\", \"198767BB286133\", \"206987BB282931\", \"204460BB282975\", \"209405BB287057\", \"209377BB285899\" };\r\n\r\n LocRepository locservice = new LocRepository();\r\n for (int i = 0; i < locs.Count; i++)\r\n {\r\n string loccode = locs[i];\r\n string sitesss = sites[i];\r\n var loc = locservice.FindEntity(x => x.S_LOC_CODE == loccode);\r\n if (loc == null)\r\n {\r\n locservice.Insert(new LocEntity\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"ç¼è¾\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n S_DEEP = \"vxr\",\r\n\r\n S_LOC_CODE = loccode,\r\n S_AGV_SITE = sitesss,\r\n\r\n S_LOCK_STATE = \"æ \",\r\n N_ROW = 1,\r\n N_COL = 1,\r\n N_AGV_CODE = 0,\r\n N_AGV_SITE_LAYER = 0,\r\n N_CAPACITY = 1,\r\n N_CURRENT_NUM = 0,\r\n S_TYPE = \"\",\r\n\r\n });\r\n }\r\n }\r\n // TaskProcess.CreateTask(\"\", locs[6], locs[7], \"test\", 9, new List<string> { \"test\" }, 1, 1, 1);\r\n }\r\n", |
| | | "ContentCopy": "//Conn.é»è®¤Redis.SetValue(\"西é¨å2.Param3\",\"300\",\"西é¨å2Queue\");\r\n//return;\r\nif(false){\r\n List<string> locs = new List<string>() { \"vxr1l\", \"vx1r\", \"vxr1c1\", \"vxr1c2\", \"vxr2l\", \"vxr2r\", \"vxr2c1\", \"vxr2c2\" };\r\n List<string> sites = new List<string>() { \"196365BB283162\", \"193841BB283149\", \"198756BB287300\", \"198767BB286133\", \"206987BB282931\", \"204460BB282975\", \"209405BB287057\", \"209377BB285899\" };\r\n\r\n LocRepository locservice = new LocRepository();\r\n for (int i = 0; i < locs.Count; i++)\r\n {\r\n string loccode = locs[i];\r\n string sitesss = sites[i];\r\n var loc = locservice.FindEntity(x => x.S_LOC_CODE == loccode);\r\n if (loc == null)\r\n {\r\n locservice.Insert(new LocEntity\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"ç¼è¾\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n S_DEEP = \"vxr\",\r\n\r\n S_LOC_CODE = loccode,\r\n S_AGV_SITE = sitesss,\r\n\r\n S_LOCK_STATE = \"æ \",\r\n N_ROW = 1,\r\n N_COL = 1,\r\n N_AGV_CODE = 0,\r\n N_AGV_SITE_LAYER = 0,\r\n N_CAPACITY = 1,\r\n N_CURRENT_NUM = 0,\r\n S_TYPE = \"\",\r\n\r\n });\r\n }\r\n }\r\n // TaskProcess.CreateTask(\"\", locs[6], locs[7], \"test\", 9, new List<string> { \"test\" }, 1, 1, 1);\r\n }\r\n", |
| | | "Content": "////Conn.é»è®¤Redis.SetValue(\"西é¨å2.Param3\",\"300\",\"西é¨å2Queue\");\r\n////return;\r\n//if(false){\r\n// List<string> locs = new List<string>() { \"vxr1l\", \"vx1r\", \"vxr1c1\", \"vxr1c2\", \"vxr2l\", \"vxr2r\", \"vxr2c1\", \"vxr2c2\" };\r\n// List<string> sites = new List<string>() { \"196365BB283162\", \"193841BB283149\", \"198756BB287300\", \"198767BB286133\", \"206987BB282931\", \"204460BB282975\", \"209405BB287057\", \"209377BB285899\" };\r\n\r\n// LocRepository locservice = new LocRepository();\r\n// for (int i = 0; i < locs.Count; i++)\r\n// {\r\n// string loccode = locs[i];\r\n// string sitesss = sites[i];\r\n// var loc = locservice.FindEntity(x => x.S_LOC_CODE == loccode);\r\n// if (loc == null)\r\n// {\r\n// locservice.Insert(new LocEntity\r\n// {\r\n// S_ID = Guid.NewGuid().ToString(),\r\n// S_STATE = \"ç¼è¾\",\r\n// T_CREATE = DateTime.Now,\r\n// T_MODIFY = DateTime.Now,\r\n// S_DEEP = \"vxr\",\r\n\r\n// S_LOC_CODE = loccode,\r\n// S_AGV_SITE = sitesss,\r\n\r\n// S_LOCK_STATE = \"æ \",\r\n// N_ROW = 1,\r\n// N_COL = 1,\r\n// N_AGV_CODE = 0,\r\n// N_AGV_SITE_LAYER = 0,\r\n// N_CAPACITY = 1,\r\n// N_CURRENT_NUM = 0,\r\n// S_TYPE = \"\",\r\n\r\n// });\r\n// }\r\n// }\r\n// // TaskProcess.CreateTask(\"\", locs[6], locs[7], \"test\", 9, new List<string> { \"test\" }, 1, 1, 1);\r\n// }\r\n", |
| | | "ContentCopy": "////Conn.é»è®¤Redis.SetValue(\"西é¨å2.Param3\",\"300\",\"西é¨å2Queue\");\r\n////return;\r\n//if(false){\r\n// List<string> locs = new List<string>() { \"vxr1l\", \"vx1r\", \"vxr1c1\", \"vxr1c2\", \"vxr2l\", \"vxr2r\", \"vxr2c1\", \"vxr2c2\" };\r\n// List<string> sites = new List<string>() { \"196365BB283162\", \"193841BB283149\", \"198756BB287300\", \"198767BB286133\", \"206987BB282931\", \"204460BB282975\", \"209405BB287057\", \"209377BB285899\" };\r\n\r\n// LocRepository locservice = new LocRepository();\r\n// for (int i = 0; i < locs.Count; i++)\r\n// {\r\n// string loccode = locs[i];\r\n// string sitesss = sites[i];\r\n// var loc = locservice.FindEntity(x => x.S_LOC_CODE == loccode);\r\n// if (loc == null)\r\n// {\r\n// locservice.Insert(new LocEntity\r\n// {\r\n// S_ID = Guid.NewGuid().ToString(),\r\n// S_STATE = \"ç¼è¾\",\r\n// T_CREATE = DateTime.Now,\r\n// T_MODIFY = DateTime.Now,\r\n// S_DEEP = \"vxr\",\r\n\r\n// S_LOC_CODE = loccode,\r\n// S_AGV_SITE = sitesss,\r\n\r\n// S_LOCK_STATE = \"æ \",\r\n// N_ROW = 1,\r\n// N_COL = 1,\r\n// N_AGV_CODE = 0,\r\n// N_AGV_SITE_LAYER = 0,\r\n// N_CAPACITY = 1,\r\n// N_CURRENT_NUM = 0,\r\n// S_TYPE = \"\",\r\n\r\n// });\r\n// }\r\n// }\r\n// // TaskProcess.CreateTask(\"\", locs[6], locs[7], \"test\", 9, new List<string> { \"test\" }, 1, 1, 1);\r\n// }\r\n", |
| | | "ParentID": "20250226153120175", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250325083325390", |
| | | "Name": "æ·ç¬æè1", |
| | | "Desc": "", |
| | | "Content": "var VERX = Settings.deviceInfos?.Find(x =>x.deviceType==2&& x.deviceName == \"Jsæ·é¡º1\");\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.Js1.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[0]\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.Js1.D1212_LAST = 1;\r\n }\r\n }\r\n if(tag.Js1.D1212_LAST == 1 &&TcpServer.GetBitdata(tag.Js1.D1212, 2) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js1.D1212_LAST = 0;\r\n }\r\n\t\t\t\t\t\t\tif (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\trequestType = 4,\r\n\t\t\t\t\t\t\t\t\tendBit = VERX.location[1]\r\n\t\t\t\t\t\t\t\t}));\r\n\t\t\t\t\t\t\t\tLogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n\t\t\t\t\t\t\t\tif (str.Contains(\"true\"))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttag.Js1.D1213_LAST = 1;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}if(tag.Js1.D1213_LAST == 1 &&TcpServer.GetBitdata(tag.Js1.D1212, 3) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js1.D1213_LAST = 0;\r\n }\r\n }", |
| | | "ContentCopy": "var VERX = Settings.deviceInfos?.Find(x =>x.deviceType==2&& x.deviceName == \"Jsæ·é¡º1\");\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.Js1.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[0]\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.Js1.D1212_LAST = 1;\r\n }\r\n }\r\n if(tag.Js1.D1212_LAST == 1 &&TcpServer.GetBitdata(tag.Js1.D1212, 2) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js1.D1212_LAST = 0;\r\n }\r\n\t\t\t\t\t\t\tif (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\trequestType = 4,\r\n\t\t\t\t\t\t\t\t\tendBit = VERX.location[1]\r\n\t\t\t\t\t\t\t\t}));\r\n\t\t\t\t\t\t\t\tLogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n\t\t\t\t\t\t\t\tif (str.Contains(\"true\"))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttag.Js1.D1213_LAST = 1;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}if(tag.Js1.D1213_LAST == 1 &&TcpServer.GetBitdata(tag.Js1.D1212, 3) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js1.D1213_LAST = 0;\r\n }\r\n }", |
| | | "Content": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadJS1\", new object[] { tag });", |
| | | "ContentCopy": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadJS1\", new object[] { tag });", |
| | | "ParentID": "20250325083047245", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250325083326611", |
| | | "Name": "æ·ç¬æè2", |
| | | "Desc": "", |
| | | "Content": "//jsz2æ·ç¬æè2\r\n\r\n var VERX = Settings.deviceInfos?.Find(x =>x.deviceType==2&& x.deviceName == \"Jsæ·é¡º2\");\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.Js2.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[0]\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.Js2.D1212_LAST = 1;\r\n }\r\n } if(tag.Js2.D1212_LAST == 1 &&TcpServer.GetBitdata(tag.Js2.D1212, 2) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js2.D1212_LAST = 0;\r\n }\r\n if (tag.Js2.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[1]\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.Js2.D1213_LAST = 1;\r\n }\r\n }if(tag.Js2.D1213_LAST == 1 &&TcpServer.GetBitdata(tag.Js2.D1213, 2) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js2.D1213_LAST = 0;\r\n }\r\n }", |
| | | "ContentCopy": "//jsz2æ·ç¬æè2\r\n\r\n var VERX = Settings.deviceInfos?.Find(x =>x.deviceType==2&& x.deviceName == \"Jsæ·é¡º2\");\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.Js2.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[0]\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.Js2.D1212_LAST = 1;\r\n }\r\n } if(tag.Js2.D1212_LAST == 1 &&TcpServer.GetBitdata(tag.Js2.D1212, 2) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js2.D1212_LAST = 0;\r\n }\r\n if (tag.Js2.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[1]\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.Js2.D1213_LAST = 1;\r\n }\r\n }if(tag.Js2.D1213_LAST == 1 &&TcpServer.GetBitdata(tag.Js2.D1213, 2) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js2.D1213_LAST = 0;\r\n }\r\n }", |
| | | "Content": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadJS2\", new object[] { tag });", |
| | | "ContentCopy": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadJS2\", new object[] { tag });", |
| | | "ParentID": "20250325083047245", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250325083149366", |
| | | "Name": "ç»´å¸å°æè1L", |
| | | "Desc": "", |
| | | "Content": "\r\nvar VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr1.R44 && !tag.wxr1.R44_LAST && tag.wxr1.R10)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[0],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr1.R44_LAST = true; \r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n //TaskRepository ts = new TaskRepository();\r\n if (tag.wxr1.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n \tif (tag.wxr1.R10)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttag.wxr1.R10_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0],out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr1.R10 = true;\r\n tag.wxr1.R44_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }", |
| | | "ContentCopy": "\r\nvar VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr1.R44 && !tag.wxr1.R44_LAST && tag.wxr1.R10)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[0],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr1.R44_LAST = true; \r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n //TaskRepository ts = new TaskRepository();\r\n if (tag.wxr1.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n \tif (tag.wxr1.R10)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttag.wxr1.R10_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0],out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr1.R10 = true;\r\n tag.wxr1.R44_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }", |
| | | "Content": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr1L\", new object[] { tag });", |
| | | "ContentCopy": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr1L\", new object[] { tag });", |
| | | "ParentID": "20250610002001052", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250610002047005", |
| | | "Name": "ç»´å¸å°æè1R", |
| | | "Desc": "", |
| | | "Content": "var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr1.R46 && !tag.wxr1.R46_LAST && tag.wxr1.R11)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[1],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr1.R46_LAST = true; \r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr1.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n \tif (tag.wxr1.R11)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttag.wxr1.R11_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1],out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr1.R11 = true;\r\n tag.wxr1.R46_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }", |
| | | "ContentCopy": "var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr1.R46 && !tag.wxr1.R46_LAST && tag.wxr1.R11)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[1],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr1.R46_LAST = true; \r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr1.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n \tif (tag.wxr1.R11)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttag.wxr1.R11_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1],out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr1.R11 = true;\r\n tag.wxr1.R46_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }", |
| | | "Content": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr1R\", new object[] { tag });", |
| | | "ContentCopy": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr1R\", new object[] { tag });", |
| | | "ParentID": "20250610002001052", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250325083315503", |
| | | "Name": "ç»´å¸å°æè2L", |
| | | "Desc": "", |
| | | "Content": "\r\nvar VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr2.R44 && !tag.wxr2.R44_LAST && tag.wxr2.R10)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[0],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr2.R44_LAST = true; \r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr2.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n \tif (tag.wxr2.R10)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\ttag.wxr2.R10_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0],out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr2.R10 = true;\r\n tag.wxr2.R44_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }", |
| | | "ContentCopy": "\r\nvar VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr2.R44 && !tag.wxr2.R44_LAST && tag.wxr2.R10)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[0],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr2.R44_LAST = true; \r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr2.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n \tif (tag.wxr2.R10)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\ttag.wxr2.R10_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0],out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr2.R10 = true;\r\n tag.wxr2.R44_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }", |
| | | "Content": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr2L\", new object[] { tag });", |
| | | "ContentCopy": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr2L\", new object[] { tag });", |
| | | "ParentID": "20250610002414741", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250610002647095", |
| | | "Name": "ç»´å¸å°æè2R", |
| | | "Desc": "", |
| | | "Content": "var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr2.R46 && !tag.wxr2.R46_LAST && tag.wxr2.R11)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[1],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr2.R46_LAST = true; \r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[2], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr2.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n \tif (tag.wxr2.R11)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\ttag.wxr2.R11_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1],out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr2.R11 = true;\r\n tag.wxr2.R46_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }", |
| | | "ContentCopy": "var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr2.R46 && !tag.wxr2.R46_LAST && tag.wxr2.R11)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[1],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr2.R46_LAST = true; \r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[2], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr2.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n \tif (tag.wxr2.R11)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\ttag.wxr2.R11_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1],out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr2.R11 = true;\r\n tag.wxr2.R46_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }", |
| | | "Content": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr2R\", new object[] { tag });", |
| | | "ContentCopy": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr2R\", new object[] { tag });", |
| | | "ParentID": "20250610002414741", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250325085542733", |
| | | "Name": "ä»»å¡ä¸å", |
| | | "Desc": "", |
| | | "Content": "ITaskRepository taskservice = new TaskRepository();\r\nvar tklist = taskservice.FindList(x => x.S_B_STATE == \"æªæ§è¡\" && x.S_WORK_MODE == \"AGV\");\r\nif(tklist.Any())\r\nforeach (var tk in tklist.GroupBy(item =>\r\n{\r\n var ticks = item.T_CREATE.Ticks;\r\n return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));\r\n}).OrderBy(x => x.Key))\r\n{\r\n var ts = tk.OrderByDescending(x => x.N_PRIORITY).ToList();\r\n foreach (var t in ts)\r\n {\r\n var b = false;\r\n b = RunTask(t);\r\n\r\n if (b)\r\n {\r\n t.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t);\r\n }\r\n }\r\n break;\r\n}\r\n#region Rgv\r\n\r\nvar task1Isrun = false;\r\nif (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver != 1)\r\n{\r\n task1Isrun = true;\r\n if (tag.RGV.bit1taskOver_LAST == 1)\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n}\r\nvar task2Isrun = false;\r\nif (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver != 1)\r\n{\r\n task2Isrun = true;\r\n if (tag.RGV.bit2taskOver_LAST == 1)\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n}\r\nif (task1Isrun || task2Isrun)\r\n{\r\n string mes = \"\";\r\n if (task1Isrun)\r\n mes += tag.RGV.ReadTask1No + \"æ§è¡ä¸...\";\r\n if (task2Isrun)\r\n mes += tag.RGV.ReadTask2No + \"æ§è¡ä¸...\";\r\n LogHelper.Info($\"{mes} ä¸è½ä¸åæ°ä»»å¡ã\");\r\n throw new Exception($\"{mes} ä¸è½ä¸åæ°ä»»å¡ã\");\r\n //continue;\r\n}\r\nvar thisOver = 0;\r\n\r\nTaskEntity task1 = null;\r\nTaskEntity task2 = null;\r\n\r\nLogHelper.Info($\"æ¥çRGV 1å·¥ä½ä»»å¡ã\");\r\nif (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver == 1)\r\n{\r\n var taskno = tag.RGV.ReadTask1No;\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{tag.RGV.ReadTask1No}\");\r\n string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n task1 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task1)}.bit1taskOver_LASTï¼{tag.RGV.bit1taskOver_LAST}\");\r\n if (tag.RGV.bit1taskOver_LAST == 0 && task1 != null)\r\n {\r\n if (task1.S_B_STATE != \"宿\")\r\n {\r\n if (task1.S_B_STATE == \"åè´§å®æ\")\r\n {\r\n task1.S_B_STATE = \"宿\";\r\n }\r\n else\r\n {\r\n task1.S_B_STATE = \"åè´§å®æ\";\r\n }\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{task1.S_TASK_NO} ç¶æåæ¢ä¸º{task1.S_B_STATE}\");\r\n //tag.RGV.bit1taskOver_LAST = 1;\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"1\", out string msg);\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡åå¤ç\");\r\n taskservice.Update(task1);\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡æ´æ°ã\");\r\n }\r\n }\r\n}\r\nelse if (tag.RGV.ReadTask1No == 0)\r\n{\r\n LogHelper.Info($\"RGV 1工使²¡æä»»å¡ã\");\r\n}\r\n\r\nLogHelper.Info($\"æ¥çRGV 2å·¥ä½ä»»å¡ã\");\r\nif (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver == 1)\r\n{\r\n var taskno = tag.RGV.ReadTask2No;\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡{tag.RGV.ReadTask2No}\");\r\n string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n task2 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n LogHelper.Info($\"RGV2å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task2)}.bit1taskOver_LASTï¼{tag.RGV.bit2taskOver_LAST}\");\r\n if (tag.RGV.bit2taskOver_LAST == 0 && task2 != null)\r\n {\r\n if (task2.S_B_STATE != \"宿\")\r\n {\r\n if (task2.S_B_STATE == \"åè´§å®æ\")\r\n {\r\n task2.S_B_STATE = \"宿\";\r\n }\r\n else\r\n {\r\n task2.S_B_STATE = \"åè´§å®æ\";\r\n }\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡{task2.S_TASK_NO} ç¶æåæ¢ä¸º{task2.S_B_STATE}\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"1\", out string msg);\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡åå¤ç\");\r\n taskservice.Update(task2);\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡æ´æ°ã\");\r\n }\r\n }\r\n}\r\nelse if (tag.RGV.ReadTask2No == 0)\r\n{\r\n LogHelper.Info($\"RGV 2工使²¡æä»»å¡ã\");\r\n}\r\n\r\n\r\n///1 æè´§ å°±2 åã 1 没货 å°±2 å¸è´§ï¼ é½æè´§ å°±1å¸è´§ã 齿²¡è´§ å°±1å¸\r\ntklist = taskservice.FindList(x => x.S_B_STATE == \"æªæ§è¡\" && x.S_WORK_MODE == \"RGV\").OrderBy(x => x.T_CREATE).ToList();\r\nif (task1 != null && task1.S_B_STATE != \"宿\") //1æä»»å¡\r\n{\r\n if (task2 != null && task2.S_B_STATE != \"宿\")// 1 æä»»å¡ 2 æä»»å¡ã \r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 乿任å¡{task2.S_TASK_NO}ã å¼å§å·¥ä½1 å¸è´§ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n }\r\n else //1æä»»å¡ 2 没任å¡ã\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡ã\");\r\n //1 妿æåä¾§åè´§ä»»å¡ãå°±åãæ²¡æ\r\n var leftSide = new List<string> { \"1023\", \"1020\" };\r\n var RightSide = new List<string> { \"1002\", \"1008\", \"1010\", \"1016\" };\r\n bool creT2 = false;\r\n if (leftSide.Contains(task1.S_START_LOC))\r\n {\r\n leftSide.Remove(task1.S_START_LOC);\r\n var lsde = leftSide.FirstOrDefault();\r\n var t2 = tklist.Find(x => x.S_START_LOC == lsde && x.S_END_LOC != \"1017\");\r\n if (t2 != null) //åä¾§åè´§ä»»å¡ã\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 1;\r\n tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n t2.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t2);\r\n creT2 = true;\r\n }\r\n }\r\n else if (RightSide.Contains(task1.S_START_LOC))\r\n {\r\n RightSide.Remove(task1.S_START_LOC);\r\n var t2 = tklist.Find(x => RightSide.Contains(x.S_START_LOC) && x.S_END_LOC != \"1017\");\r\n if (t2 != null) //åä¾§åè´§ä»»å¡ã\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 1;\r\n tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n t2.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t2);\r\n creT2 = true;\r\n }\r\n }\r\n //else //1 ç´æ¥å¸è´§ã \r\n if (!creT2)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã 没æåä¾§åè´§ä»»å¡ 1å·¥ä½å¸è´§ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n }\r\n }\r\n}\r\nelse\r\n{\r\n if (task2 != null && task2.S_B_STATE != \"宿\")// 1 æ²¡ä»»å¡ 2 æä»»å¡ã \r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 æä»»å¡{task2.S_TASK_NO}ãå·¥ä½2å¸è´§ãã\");\r\n //2 å¸è´§ã\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno2 = Convert.ToUInt32(task2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(task2.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n }\r\n else //1mei ä»»å¡ 2 没任å¡ã\r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 乿²¡ä»»å¡ãä¼å
1å·¥ä½ç»ç¹1017ä»»å¡ãã\");\r\n //ãä¸ 1017ä»»å¡ ç»1å·å·¥ä½ã\r\n var lss = tklist.Take(2).ToList();\r\n var e1017first = lss.Find(x => x.S_END_LOC == \"1017\");\r\n if (e1017first == null)\r\n {\r\n e1017first = lss.FirstOrDefault();\r\n }\r\n if (e1017first != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 乿²¡ä»»å¡ã1å·¥ä½ä¸ä»»å¡{e1017first.S_TASK_NO}> ç»ç¹{e1017first.S_END_LOC}ã\");\r\n try\r\n {\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 1;\r\n uint tno = Convert.ToUInt32(e1017first.S_TASK_NO.Substring(4));\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> 转æ¢åä»»å¡å·{tno} å¼å§åå
¥ã\");\r\n tag.RGV.taskno1 = tno;\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}>å¼å§åå
¥ task1do>>{e1017first.S_START_LOC}ã\");\r\n tag.RGV.task1do = Convert.ToUInt16(e1017first.S_START_LOC);\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(ex.Message, ex);\r\n throw ex;\r\n }\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> taskend 125\");\r\n e1017first.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(e1017first);\r\n }\r\n }\r\n}\r\n\r\n#endregion", |
| | | "ContentCopy": "ITaskRepository taskservice = new TaskRepository();\r\nvar tklist = taskservice.FindList(x => x.S_B_STATE == \"æªæ§è¡\" && x.S_WORK_MODE == \"AGV\");\r\nif(tklist.Any())\r\nforeach (var tk in tklist.GroupBy(item =>\r\n{\r\n var ticks = item.T_CREATE.Ticks;\r\n return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));\r\n}).OrderBy(x => x.Key))\r\n{\r\n var ts = tk.OrderByDescending(x => x.N_PRIORITY).ToList();\r\n foreach (var t in ts)\r\n {\r\n var b = false;\r\n b = RunTask(t);\r\n\r\n if (b)\r\n {\r\n t.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t);\r\n }\r\n }\r\n break;\r\n}\r\n#region Rgv\r\n\r\nvar task1Isrun = false;\r\nif (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver != 1)\r\n{\r\n task1Isrun = true;\r\n if (tag.RGV.bit1taskOver_LAST == 1)\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n}\r\nvar task2Isrun = false;\r\nif (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver != 1)\r\n{\r\n task2Isrun = true;\r\n if (tag.RGV.bit2taskOver_LAST == 1)\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n}\r\nif (task1Isrun || task2Isrun)\r\n{\r\n string mes = \"\";\r\n if (task1Isrun)\r\n mes += tag.RGV.ReadTask1No + \"æ§è¡ä¸...\";\r\n if (task2Isrun)\r\n mes += tag.RGV.ReadTask2No + \"æ§è¡ä¸...\";\r\n LogHelper.Info($\"{mes} ä¸è½ä¸åæ°ä»»å¡ã\");\r\n throw new Exception($\"{mes} ä¸è½ä¸åæ°ä»»å¡ã\");\r\n //continue;\r\n}\r\nvar thisOver = 0;\r\n\r\nTaskEntity task1 = null;\r\nTaskEntity task2 = null;\r\n\r\nLogHelper.Info($\"æ¥çRGV 1å·¥ä½ä»»å¡ã\");\r\nif (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver == 1)\r\n{\r\n var taskno = tag.RGV.ReadTask1No;\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{tag.RGV.ReadTask1No}\");\r\n string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n task1 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task1)}.bit1taskOver_LASTï¼{tag.RGV.bit1taskOver_LAST}\");\r\n if (tag.RGV.bit1taskOver_LAST == 0 && task1 != null)\r\n {\r\n if (task1.S_B_STATE != \"宿\")\r\n {\r\n if (task1.S_B_STATE == \"åè´§å®æ\")\r\n {\r\n task1.S_B_STATE = \"宿\";\r\n }\r\n else\r\n {\r\n task1.S_B_STATE = \"åè´§å®æ\";\r\n }\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{task1.S_TASK_NO} ç¶æåæ¢ä¸º{task1.S_B_STATE}\");\r\n //tag.RGV.bit1taskOver_LAST = 1;\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"1\", out string msg);\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡åå¤ç\");\r\n taskservice.Update(task1);\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡æ´æ°ã\");\r\n }\r\n }\r\n}\r\nelse if (tag.RGV.ReadTask1No == 0)\r\n{\r\n LogHelper.Info($\"RGV 1工使²¡æä»»å¡ã\");\r\n}\r\n\r\nLogHelper.Info($\"æ¥çRGV 2å·¥ä½ä»»å¡ã\");\r\nif (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver == 1)\r\n{\r\n var taskno = tag.RGV.ReadTask2No;\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡{tag.RGV.ReadTask2No}\");\r\n string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n task2 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n LogHelper.Info($\"RGV2å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task2)}.bit1taskOver_LASTï¼{tag.RGV.bit2taskOver_LAST}\");\r\n if (tag.RGV.bit2taskOver_LAST == 0 && task2 != null)\r\n {\r\n if (task2.S_B_STATE != \"宿\")\r\n {\r\n if (task2.S_B_STATE == \"åè´§å®æ\")\r\n {\r\n task2.S_B_STATE = \"宿\";\r\n }\r\n else\r\n {\r\n task2.S_B_STATE = \"åè´§å®æ\";\r\n }\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡{task2.S_TASK_NO} ç¶æåæ¢ä¸º{task2.S_B_STATE}\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"1\", out string msg);\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡åå¤ç\");\r\n taskservice.Update(task2);\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡æ´æ°ã\");\r\n }\r\n }\r\n}\r\nelse if (tag.RGV.ReadTask2No == 0)\r\n{\r\n LogHelper.Info($\"RGV 2工使²¡æä»»å¡ã\");\r\n}\r\n\r\n\r\n///1 æè´§ å°±2 åã 1 没货 å°±2 å¸è´§ï¼ é½æè´§ å°±1å¸è´§ã 齿²¡è´§ å°±1å¸\r\ntklist = taskservice.FindList(x => x.S_B_STATE == \"æªæ§è¡\" && x.S_WORK_MODE == \"RGV\").OrderBy(x => x.T_CREATE).ToList();\r\nif (task1 != null && task1.S_B_STATE != \"宿\") //1æä»»å¡\r\n{\r\n if (task2 != null && task2.S_B_STATE != \"宿\")// 1 æä»»å¡ 2 æä»»å¡ã \r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 乿任å¡{task2.S_TASK_NO}ã å¼å§å·¥ä½1 å¸è´§ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n }\r\n else //1æä»»å¡ 2 没任å¡ã\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡ã\");\r\n //1 妿æåä¾§åè´§ä»»å¡ãå°±åãæ²¡æ\r\n var leftSide = new List<string> { \"1023\", \"1020\" };\r\n var RightSide = new List<string> { \"1002\", \"1008\", \"1010\", \"1016\" };\r\n bool creT2 = false;\r\n if (leftSide.Contains(task1.S_START_LOC))\r\n {\r\n leftSide.Remove(task1.S_START_LOC);\r\n var lsde = leftSide.FirstOrDefault();\r\n var t2 = tklist.Find(x => x.S_START_LOC == lsde && x.S_END_LOC != \"1017\");\r\n if (t2 != null) //åä¾§åè´§ä»»å¡ã\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 1;\r\n tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n t2.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t2);\r\n creT2 = true;\r\n }\r\n }\r\n else if (RightSide.Contains(task1.S_START_LOC))\r\n {\r\n RightSide.Remove(task1.S_START_LOC);\r\n var t2 = tklist.Find(x => RightSide.Contains(x.S_START_LOC) && x.S_END_LOC != \"1017\");\r\n if (t2 != null) //åä¾§åè´§ä»»å¡ã\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 1;\r\n tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n t2.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t2);\r\n creT2 = true;\r\n }\r\n }\r\n //else //1 ç´æ¥å¸è´§ã \r\n if (!creT2)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã 没æåä¾§åè´§ä»»å¡ 1å·¥ä½å¸è´§ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n }\r\n }\r\n}\r\nelse\r\n{\r\n if (task2 != null && task2.S_B_STATE != \"宿\")// 1 æ²¡ä»»å¡ 2 æä»»å¡ã \r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 æä»»å¡{task2.S_TASK_NO}ãå·¥ä½2å¸è´§ãã\");\r\n //2 å¸è´§ã\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno2 = Convert.ToUInt32(task2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(task2.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n }\r\n else //1mei ä»»å¡ 2 没任å¡ã\r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 乿²¡ä»»å¡ãä¼å
1å·¥ä½ç»ç¹1017ä»»å¡ãã\");\r\n //ãä¸ 1017ä»»å¡ ç»1å·å·¥ä½ã\r\n var lss = tklist.Take(2).ToList();\r\n var e1017first = lss.Find(x => x.S_END_LOC == \"1017\");\r\n if (e1017first == null)\r\n {\r\n e1017first = lss.FirstOrDefault();\r\n }\r\n if (e1017first != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 乿²¡ä»»å¡ã1å·¥ä½ä¸ä»»å¡{e1017first.S_TASK_NO}> ç»ç¹{e1017first.S_END_LOC}ã\");\r\n try\r\n {\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 1;\r\n uint tno = Convert.ToUInt32(e1017first.S_TASK_NO.Substring(4));\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> 转æ¢åä»»å¡å·{tno} å¼å§åå
¥ã\");\r\n tag.RGV.taskno1 = tno;\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}>å¼å§åå
¥ task1do>>{e1017first.S_START_LOC}ã\");\r\n tag.RGV.task1do = Convert.ToUInt16(e1017first.S_START_LOC);\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(ex.Message, ex);\r\n throw ex;\r\n }\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n System.Threading.Thread.Sleep(750);\r\n tag.RGV.taskend = 125;\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> taskend 125\");\r\n e1017first.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(e1017first);\r\n }\r\n }\r\n}\r\n\r\n#endregion", |
| | | "Content": "\r\n Func<TaskEntity, bool> myDelegate = (t) => RunTask(t);\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadTaskRun\", new object[] { tag, myDelegate });", |
| | | "ContentCopy": "\r\n Func<TaskEntity, bool> myDelegate = (t) => RunTask(t);\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadTaskRun\", new object[] { tag, myDelegate });", |
| | | "ParentID": "20250226153120175", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250611223832523", |
| | | "Name": "å
æ
å¤ç", |
| | | "Desc": "", |
| | | "Content": "// - å
æ
交äºå¤çãã\r\n var taskCOdes = new List<string> { \"Sarrive\", \"Srelease\", \"Earrive\", \"Erelease\" };\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n TaskRepository taskRepository = new TaskRepository();\r\n var requires = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0);\r\n foreach (var item in requires)\r\n {\r\n var tin = taskCOdes.IndexOf(item.S_ACTION_CODE);\r\n if (tin == -1)\r\n {\r\n item.N_CREATEMETHOD = -1;\r\n taskActRepository.Update(item);\r\n continue;\r\n }\r\n //var task = taskRepository.FindEntity(x => x.S_TASK_NO == item.S_TASK_NO);\r\n string loc = \"\";\r\n if (tin < 2)\r\n {\r\n loc = item.S_START_LOC;\r\n }\r\n else\r\n {\r\n loc = item.S_END_LOC;\r\n } \r\n\t\t\t\t\t\t\tif (loc == null) continue; else loc = loc.Trim();\r\n bool goin = tin % 2 == 0;\r\n bool continuuuuu =false;\r\n var dev = Settings.deviceInfos.Find(x => x.location.Contains(loc));\r\n if (dev != null)\r\n {\r\n var V = dev.location.ToList().FindIndex(x => x == loc) == 0;\r\n\t\t\t\t\t\t\t\t//è½¦èµ°äº å¼å
æ
\r\n if (!goin)\r\n {\r\n if (dev.deviceType == 1)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin?\"å
³é\":\"å¼å¯\")} ç³è¯·ã\"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\");\r\n\r\n }\r\n else if (dev.deviceType == 2)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin?\"å
³é\":\"å¼å¯\")} ç³è¯·ã\"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\");\r\n }\r\n \r\n\t item.N_CREATEMETHOD = 1;\r\n\t taskActRepository.Update(item);\r\n\t\t\t\t\t\t\t\t}\r\n //车è¦è¿å
¥äº¤äºã\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n if (dev.deviceType == 1)\r\n {\r\n\t\t\t\t\t\t\t\t\t\tvar tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".\" + (V ? \"R50\" : \"R52\"));//读å
³éç¶æ\r\n\t\t\t\t\t\t\t\t\t\tif (tf?.ToLower() == \"true\")\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tLogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin?\"å
³é\":\"å¼å¯\")} ç³è¯·ã å·²ç»å
³éï¼\");\r\n\t\t\t\t\t\t\t\t\t\t\tcontinuuuuu = true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tLogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin?\"å
³é\":\"å¼å¯\")} ç³è¯·ã\"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\"));\r\n\t\t\t\t\t\t\t\t\t\t\tConn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n }\r\n else if (dev.deviceType == 2)\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".D1202\");\r\n\t\t\t\t\t\t\t\t\t\tint numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n if (TcpServer.GetBitdata(numm,(V?0:1))==1)\r\n {\r\n\t\t\t\t\t\t\t\t\t\t\tLogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin?\"å
³é\":\"å¼å¯\")} ç³è¯·ã å·²ç»å
³éï¼\");\r\n continuuuuu = true;\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin?\"å
³é\":\"å¼å¯\")} ç³è¯·ã\"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), \"1\", dev.deviceName + \"Queue\");\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n if (continuuuuu)\r\n {\r\n\t\t\t\t\t\t\t\tLogHelper.Info($\"{item.S_TASK_NO}{item.S_ACTION_CODE} 车è¾åéç»§ç»ä»»å¡ï¼\");\r\n continueTask(new HaiKangOrderInfo\r\n {\r\n reqCode = item.S_ID.Replace(\"-\", \"\"),\r\n taskCode = item.S_TASK_NO\r\n });\r\n item.N_CREATEMETHOD = 1;\r\n taskActRepository.Update(item);\r\n }\r\n }\r\n System.Threading.Thread.Sleep(3000);\r\n //é置信å·\r\n foreach (var dev in Settings.deviceInfos.FindAll(x => x.deviceType == 2))\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".D1202\");\r\n int numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n if (TcpServer.GetBitdata(numm, 0) == 0)\r\n {\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1220\", \"0\", dev.deviceName + \"Queue\");\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1222\", \"0\", dev.deviceName + \"Queue\");\r\n }\r\n else if (TcpServer.GetBitdata(numm, 1) == 0)\r\n {\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1221\", \"0\", dev.deviceName + \"Queue\");\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1223\", \"0\", dev.deviceName + \"Queue\");\r\n }\r\n }\r\n \r\n // åé£ç§ä¸æå
æ
ã", |
| | | "ContentCopy": "// - å
æ
交äºå¤çãã\r\n var taskCOdes = new List<string> { \"Sarrive\", \"Srelease\", \"Earrive\", \"Erelease\" };\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n TaskRepository taskRepository = new TaskRepository();\r\n var requires = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0);\r\n foreach (var item in requires)\r\n {\r\n var tin = taskCOdes.IndexOf(item.S_ACTION_CODE);\r\n if (tin == -1)\r\n {\r\n item.N_CREATEMETHOD = -1;\r\n taskActRepository.Update(item);\r\n continue;\r\n }\r\n //var task = taskRepository.FindEntity(x => x.S_TASK_NO == item.S_TASK_NO);\r\n string loc = \"\";\r\n if (tin < 2)\r\n {\r\n loc = item.S_START_LOC;\r\n }\r\n else\r\n {\r\n loc = item.S_END_LOC;\r\n } \r\n\t\t\t\t\t\t\tif (loc == null) continue; else loc = loc.Trim();\r\n bool goin = tin % 2 == 0;\r\n bool continuuuuu =false;\r\n var dev = Settings.deviceInfos.Find(x => x.location.Contains(loc));\r\n if (dev != null)\r\n {\r\n var V = dev.location.ToList().FindIndex(x => x == loc) == 0;\r\n\t\t\t\t\t\t\t\t//è½¦èµ°äº å¼å
æ
\r\n if (!goin)\r\n {\r\n if (dev.deviceType == 1)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin?\"å
³é\":\"å¼å¯\")} ç³è¯·ã\"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\");\r\n\r\n }\r\n else if (dev.deviceType == 2)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin?\"å
³é\":\"å¼å¯\")} ç³è¯·ã\"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\");\r\n }\r\n \r\n\t item.N_CREATEMETHOD = 1;\r\n\t taskActRepository.Update(item);\r\n\t\t\t\t\t\t\t\t}\r\n //车è¦è¿å
¥äº¤äºã\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n if (dev.deviceType == 1)\r\n {\r\n\t\t\t\t\t\t\t\t\t\tvar tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".\" + (V ? \"R50\" : \"R52\"));//读å
³éç¶æ\r\n\t\t\t\t\t\t\t\t\t\tif (tf?.ToLower() == \"true\")\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tLogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin?\"å
³é\":\"å¼å¯\")} ç³è¯·ã å·²ç»å
³éï¼\");\r\n\t\t\t\t\t\t\t\t\t\t\tcontinuuuuu = true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tLogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin?\"å
³é\":\"å¼å¯\")} ç³è¯·ã\"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\"));\r\n\t\t\t\t\t\t\t\t\t\t\tConn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n }\r\n else if (dev.deviceType == 2)\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".D1202\");\r\n\t\t\t\t\t\t\t\t\t\tint numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n if (TcpServer.GetBitdata(numm,(V?0:1))==1)\r\n {\r\n\t\t\t\t\t\t\t\t\t\t\tLogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin?\"å
³é\":\"å¼å¯\")} ç³è¯·ã å·²ç»å
³éï¼\");\r\n continuuuuu = true;\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin?\"å
³é\":\"å¼å¯\")} ç³è¯·ã\"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), \"1\", dev.deviceName + \"Queue\");\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n if (continuuuuu)\r\n {\r\n\t\t\t\t\t\t\t\tLogHelper.Info($\"{item.S_TASK_NO}{item.S_ACTION_CODE} 车è¾åéç»§ç»ä»»å¡ï¼\");\r\n continueTask(new HaiKangOrderInfo\r\n {\r\n reqCode = item.S_ID.Replace(\"-\", \"\"),\r\n taskCode = item.S_TASK_NO\r\n });\r\n item.N_CREATEMETHOD = 1;\r\n taskActRepository.Update(item);\r\n }\r\n }\r\n System.Threading.Thread.Sleep(3000);\r\n //é置信å·\r\n foreach (var dev in Settings.deviceInfos.FindAll(x => x.deviceType == 2))\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".D1202\");\r\n int numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n if (TcpServer.GetBitdata(numm, 0) == 0)\r\n {\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1220\", \"0\", dev.deviceName + \"Queue\");\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1222\", \"0\", dev.deviceName + \"Queue\");\r\n }\r\n else if (TcpServer.GetBitdata(numm, 1) == 0)\r\n {\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1221\", \"0\", dev.deviceName + \"Queue\");\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1223\", \"0\", dev.deviceName + \"Queue\");\r\n }\r\n }\r\n \r\n // åé£ç§ä¸æå
æ
ã", |
| | | "Content": "// - å
æ
交äºå¤çãã\r\n Action<HaiKangOrderInfo> myDelegate = (t) => continueTask(t);\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadGrats\", new object[] { tag, myDelegate });\r\n \r\n // åé£ç§ä¸æå
æ
ã", |
| | | "ContentCopy": "// - å
æ
交äºå¤çãã\r\n Action<HaiKangOrderInfo> myDelegate = (t) => continueTask(t);\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadGrats\", new object[] { tag, myDelegate });\r\n \r\n // åé£ç§ä¸æå
æ
ã", |
| | | "ParentID": "20250226153120175", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250616094224396", |
| | | "Name": "1020空æ¡ä¸çº¿", |
| | | "Desc": "", |
| | | "Content": "foreach (var Bssx in new string[] { \"1020\", \"1023\" })\r\n{\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} ç©ºä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n try\r\n {\r\n foreach (var item in new string[] { \"1004\", \"1006\", \"1012\", \"1014\" })\r\n {\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"空ä¸RGV\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n LogHelper.Debug($\"è¾é线RGV空æä»»å¡ from:{Bssx}>to {item}å¼å§å建æå\");\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg1);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"0\", $\"S{item}ReadQueue\");\r\n }\r\n }\r\n System.Threading.Thread.Sleep(1000);\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(ex.Message, ex);\r\n Console.WriteLine(ex.Message + ex.StackTrace);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n}", |
| | | "ContentCopy": "foreach (var Bssx in new string[] { \"1020\", \"1023\" })\r\n{\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} ç©ºä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n try\r\n {\r\n foreach (var item in new string[] { \"1004\", \"1006\", \"1012\", \"1014\" })\r\n {\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"空ä¸RGV\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n LogHelper.Debug($\"è¾é线RGV空æä»»å¡ from:{Bssx}>to {item}å¼å§å建æå\");\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg1);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"0\", $\"S{item}ReadQueue\");\r\n }\r\n }\r\n System.Threading.Thread.Sleep(1000);\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(ex.Message, ex);\r\n Console.WriteLine(ex.Message + ex.StackTrace);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n}", |
| | | "Content": "\r\n //1020 1023 空æ¡ä¸çº¿\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadEdown\", new object[] { tag });", |
| | | "ContentCopy": "\r\n //1020 1023 空æ¡ä¸çº¿\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadEdown\", new object[] { tag });", |
| | | "ParentID": "20250614173821058", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250616094632985", |
| | | "Name": "å®å满ä¸çº¿", |
| | | "Desc": "", |
| | | "Content": "foreach (var Bssx in new string[] { \"1008\", \"1016\" })\r\n{\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var item = \"1026\";\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"满转1026\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out string msg);\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg2);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg2);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n}", |
| | | "ContentCopy": "foreach (var Bssx in new string[] { \"1008\", \"1016\" })\r\n{\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var item = \"1026\";\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"满转1026\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out string msg);\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg2);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg2);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n}", |
| | | "Content": "\r\n //å®å满ä¸çº¿ 1008 1016 -> 1026\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadDdown\", new object[] { tag });", |
| | | "ContentCopy": "\r\n //å®å满ä¸çº¿ 1008 1016 -> 1026\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadDdown\", new object[] { tag });", |
| | | "ParentID": "20250614173821058", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250616094511322", |
| | | "Name": "è½¬åæ»¡ä¸çº¿", |
| | | "Desc": "", |
| | | "Content": "//è½¬åæ»¡ä¸çº¿ 1002 1010 - RGV2å·¥ä½ä¸å¯å° 1017 ä¸å¯ä¸å2å·¥ä½ä»»å¡ã\r\nforeach (var Bssx in new string[] { \"1002\", \"1010\" })\r\n{\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var item = \"1017\";\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"满转1017\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out string msg);\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg1);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg1);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n}", |
| | | "ContentCopy": "//è½¬åæ»¡ä¸çº¿ 1002 1010 - RGV2å·¥ä½ä¸å¯å° 1017 ä¸å¯ä¸å2å·¥ä½ä»»å¡ã\r\nforeach (var Bssx in new string[] { \"1002\", \"1010\" })\r\n{\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var item = \"1017\";\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"满转1017\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out string msg);\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg1);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg1);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n}", |
| | | "Content": "\r\n //è½¬åæ»¡ä¸çº¿ 1002 1010 - RGV2å·¥ä½ä¸å¯å° 1017 ä¸å¯ä¸å2å·¥ä½ä»»å¡ã\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread0210Down\", new object[] { tag });", |
| | | "ContentCopy": "\r\n //è½¬åæ»¡ä¸çº¿ 1002 1010 - RGV2å·¥ä½ä¸å¯å° 1017 ä¸å¯ä¸å2å·¥ä½ä»»å¡ã\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread0210Down\", new object[] { tag });", |
| | | "ParentID": "20250614173821058", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250616095605911", |
| | | "Name": "䏿使£æµ", |
| | | "Desc": "", |
| | | "Content": "//䏿使£æµã 1003 å°ä½æ¶ å æ è¯ä¿¡å· å¹¶ ç»æºæ¢°æä¿¡å·ã \r\nforeach (var ssx in new string[] { \"1003\", \"1005\", \"1011\", \"1013\" })\r\n{\r\n var RArrive = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"FNK1003051113.RArrive{ssx}\"), typeof(System.UInt16));\r\n var RArriveLast = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"FNK1003051113.RArrive{ssx}_LAST\"), typeof(System.UInt16));\r\n if (RArrive == 1 && RArriveLast == 0)\r\n {\r\n if (ssx == \"1005\")\r\n {\r\n tag.FNK1.D2210 = 1;\r\n tag.SF䏿ä½.RArrive1005_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1005 = 0;\r\n tag.SF䏿ä½.WSafe0305 = 0;\r\n }\r\n else if (ssx == \"1003\")\r\n {\r\n tag.FNK2.D2215 = 1;\r\n tag.SF䏿ä½.RArrive1003_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1003 = 0;\r\n tag.SF䏿ä½.WSafe0305 = 0;\r\n }\r\n else if (ssx == \"1013\")\r\n {\r\n tag.FNK2.D2210 = 1;\r\n tag.SF䏿ä½.RArrive1013_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1013 = 0;\r\n tag.SF䏿ä½.WSafe1113 = 0;\r\n }\r\n else if (ssx == \"1011\")\r\n {\r\n tag.FNK2.D2215 = 1;\r\n tag.SF䏿ä½.RArrive1011_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1011 = 0;\r\n tag.SF䏿ä½.WSafe1113 = 0;\r\n }\r\n }\r\n else if (RArrive == 0 && RArriveLast == 1)\r\n {\r\n RedisHelper.Add($\"FNK1003051113.RArrive{ssx}_LAST\", \"0\", out string msg);\r\n }\r\n}", |
| | | "ContentCopy": "//䏿使£æµã 1003 å°ä½æ¶ å æ è¯ä¿¡å· å¹¶ ç»æºæ¢°æä¿¡å·ã \r\nforeach (var ssx in new string[] { \"1003\", \"1005\", \"1011\", \"1013\" })\r\n{\r\n var RArrive = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"FNK1003051113.RArrive{ssx}\"), typeof(System.UInt16));\r\n var RArriveLast = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"FNK1003051113.RArrive{ssx}_LAST\"), typeof(System.UInt16));\r\n if (RArrive == 1 && RArriveLast == 0)\r\n {\r\n if (ssx == \"1005\")\r\n {\r\n tag.FNK1.D2210 = 1;\r\n tag.SF䏿ä½.RArrive1005_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1005 = 0;\r\n tag.SF䏿ä½.WSafe0305 = 0;\r\n }\r\n else if (ssx == \"1003\")\r\n {\r\n tag.FNK2.D2215 = 1;\r\n tag.SF䏿ä½.RArrive1003_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1003 = 0;\r\n tag.SF䏿ä½.WSafe0305 = 0;\r\n }\r\n else if (ssx == \"1013\")\r\n {\r\n tag.FNK2.D2210 = 1;\r\n tag.SF䏿ä½.RArrive1013_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1013 = 0;\r\n tag.SF䏿ä½.WSafe1113 = 0;\r\n }\r\n else if (ssx == \"1011\")\r\n {\r\n tag.FNK2.D2215 = 1;\r\n tag.SF䏿ä½.RArrive1011_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1011 = 0;\r\n tag.SF䏿ä½.WSafe1113 = 0;\r\n }\r\n }\r\n else if (RArrive == 0 && RArriveLast == 1)\r\n {\r\n RedisHelper.Add($\"FNK1003051113.RArrive{ssx}_LAST\", \"0\", out string msg);\r\n }\r\n}", |
| | | "Content": "\r\n //䏿使£æµã 1003 å°ä½æ¶ å æ è¯ä¿¡å· å¹¶ ç»æºæ¢°æä¿¡å·ã \r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread䏿使£æµ\", new object[] { tag });", |
| | | "ContentCopy": "\r\n //䏿使£æµã 1003 å°ä½æ¶ å æ è¯ä¿¡å· å¹¶ ç»æºæ¢°æä¿¡å·ã \r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread䏿使£æµ\", new object[] { tag });", |
| | | "ParentID": "20250614173821058", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250616095709155", |
| | | "Name": "1å·FNKæºæ¢°æå®æ", |
| | | "Desc": "", |
| | | "Content": "if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0)\r\n{\r\n tag.FNK1.D2210 = 0;\r\n tag.FNK1.D2212_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1005 = 1;\r\n tag.SF䏿ä½.WSafe0305 = 1;\r\n}\r\nelse if (tag.FNK1.D2212 == 0 && tag.FNK1.D2212_LAST == 1)\r\n{\r\n tag.FNK1.D2212_LAST = 0;\r\n}\r\nif (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0)\r\n{\r\n tag.FNK1.D2215 = 0;\r\n tag.FNK1.D2217_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1003 = 1;\r\n tag.SF䏿ä½.WSafe0305 = 1;\r\n}\r\nelse if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1)\r\n tag.FNK1.D2217_LAST = 0;\r\n", |
| | | "ContentCopy": "if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0)\r\n{\r\n tag.FNK1.D2210 = 0;\r\n tag.FNK1.D2212_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1005 = 1;\r\n tag.SF䏿ä½.WSafe0305 = 1;\r\n}\r\nelse if (tag.FNK1.D2212 == 0 && tag.FNK1.D2212_LAST == 1)\r\n{\r\n tag.FNK1.D2212_LAST = 0;\r\n}\r\nif (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0)\r\n{\r\n tag.FNK1.D2215 = 0;\r\n tag.FNK1.D2217_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1003 = 1;\r\n tag.SF䏿ä½.WSafe0305 = 1;\r\n}\r\nelse if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1)\r\n tag.FNK1.D2217_LAST = 0;\r\n", |
| | | "Content": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadFNK1Over\", new object[] { tag });", |
| | | "ContentCopy": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadFNK1Over\", new object[] { tag });", |
| | | "ParentID": "20250614173821058", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250616095733680", |
| | | "Name": "2å·FNKæºæ¢°æå®æ", |
| | | "Desc": "", |
| | | "Content": " if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0)\r\n {\r\n tag.FNK2.D2210 = 0;\r\n tag.FNK2.D2212_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1013 = 1;\r\n tag.SF䏿ä½.WSafe1113 = 1;\r\n }\r\n else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1)\r\n {\r\n tag.FNK2.D2212_LAST = 0;\r\n }\r\n if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0)\r\n {\r\n tag.FNK2.D2215 = 0;\r\n tag.FNK2.D2217_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1011 = 1;\r\n tag.SF䏿ä½.WSafe1113 = 1;\r\n }\r\n else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1)\r\n tag.FNK2.D2217_LAST = 0;", |
| | | "ContentCopy": " if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0)\r\n {\r\n tag.FNK2.D2210 = 0;\r\n tag.FNK2.D2212_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1013 = 1;\r\n tag.SF䏿ä½.WSafe1113 = 1;\r\n }\r\n else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1)\r\n {\r\n tag.FNK2.D2212_LAST = 0;\r\n }\r\n if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0)\r\n {\r\n tag.FNK2.D2215 = 0;\r\n tag.FNK2.D2217_LAST = 1;\r\n\r\n tag.SF䏿ä½.WRelease1011 = 1;\r\n tag.SF䏿ä½.WSafe1113 = 1;\r\n }\r\n else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1)\r\n tag.FNK2.D2217_LAST = 0;", |
| | | "Content": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadFNK2Over\", new object[] { tag });", |
| | | "ContentCopy": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadFNK2Over\", new object[] { tag });", |
| | | "ParentID": "20250614173821058", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250617085708084", |
| | | "Name": "Program1", |
| | | "Desc": "", |
| | | "Content": "\r\n Console.WriteLine($\"1019ä»»å¡ç¶æï¼{tag.SA1019.RtaskState}- barcode:{tag.SA1019.Ræçç }- 空é²{tag.SA1019.R5空é²}\");", |
| | | "ContentCopy": "\r\n Console.WriteLine($\"1019ä»»å¡ç¶æï¼{tag.SA1019.RtaskState}- barcode:{tag.SA1019.Ræçç }- 空é²{tag.SA1019.R5空é²}\");", |
| | | "Content": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1019Down\", new object[] { tag });", |
| | | "ContentCopy": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1019Down\", new object[] { tag });", |
| | | "ParentID": "20250617081923670", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250617085712101", |
| | | "Name": "Program1", |
| | | "Desc": "", |
| | | "Content": "\r\n Console.WriteLine($\"SA1025 ä»»å¡ç¶æï¼{tag.SA1025.RtaskState}- 空é²{tag.SA1025.R5空é²}\");", |
| | | "ContentCopy": "\r\n Console.WriteLine($\"SA1025 ä»»å¡ç¶æï¼{tag.SA1025.RtaskState}- 空é²{tag.SA1025.R5空é²}\");", |
| | | "Content": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1025Up\", new object[] { tag });", |
| | | "ContentCopy": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1025Up\", new object[] { tag });", |
| | | "ParentID": "20250617081926036", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250617085750712", |
| | | "Name": "Program1", |
| | | "Desc": "", |
| | | "Content": "\r\n Console.WriteLine($\"SA1022 ä»»å¡ç¶æï¼{tag.SA1022.RtaskState}- 空é²{tag.SA1022.R5空é²}\");", |
| | | "ContentCopy": "\r\n Console.WriteLine($\"SA1022 ä»»å¡ç¶æï¼{tag.SA1022.RtaskState}- 空é²{tag.SA1022.R5空é²}\");", |
| | | "Content": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1022Up\", new object[] { tag });", |
| | | "ContentCopy": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1022Up\", new object[] { tag });", |
| | | "ParentID": "20250617081930010", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250617085800942", |
| | | "Name": "Program1", |
| | | "Desc": "", |
| | | "Content": "\r\n Console.WriteLine($\"SA1030 ä»»å¡ç¶æï¼{tag.SA1030.RtaskState}- 空é²{tag.SA1030.R5空é²}-->对åºç»ç¹2001>空é²5ï¼{tag.SA2001.R5空é²}\");", |
| | | "ContentCopy": "\r\n Console.WriteLine($\"SA1030 ä»»å¡ç¶æï¼{tag.SA1030.RtaskState}- 空é²{tag.SA1030.R5空é²}-->对åºç»ç¹2001>空é²5ï¼{tag.SA2001.R5空é²}\");", |
| | | "Content": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1030Down\", new object[] { tag });", |
| | | "ContentCopy": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1030Down\", new object[] { tag });", |
| | | "ParentID": "20250617081932131", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | "ID": "20250617085809982", |
| | | "Name": "Program1", |
| | | "Desc": "", |
| | | "Content": "\r\n Console.WriteLine($\"SA2030 ä»»å¡ç¶æï¼{tag.SA2030.RtaskState}- 空é²{tag.SA2030.R5空é²} - barcode:{tag.SA2030.Ræçç }\");", |
| | | "ContentCopy": "\r\n Console.WriteLine($\"SA2030 ä»»å¡ç¶æï¼{tag.SA2030.RtaskState}- 空é²{tag.SA2030.R5空é²} - barcode:{tag.SA2030.Ræçç }\");", |
| | | "Content": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread2030Down\", new object[] { tag });", |
| | | "ContentCopy": "\r\n AutoThread.InvokeMethod(AutoThread.Instance, \"Thread2030Down\", new object[] { tag });", |
| | | "ParentID": "20250617081938161", |
| | | "Children": [], |
| | | "Type": "Program", |
| | |
| | | } |
| | | ], |
| | | "CreationTime": "2025-02-26 15:31:20", |
| | | "LastWriteTime": "2025-06-18 23:06:58", |
| | | "LastWriteTime": "2025-06-23 08:38:47", |
| | | "HasSaved": true |
| | | } |