From c3fdd3ead425cf39da619a8e69a1a1784a28b492 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周三, 02 10月 2024 09:34:15 +0800 Subject: [PATCH] 调整sda --- SDA/iWareSda/SdaMainForm.cs | 212 ++++++++++++++++------------------------------------ 1 files changed, 66 insertions(+), 146 deletions(-) diff --git a/SDA/iWareSda/SdaMainForm.cs b/SDA/iWareSda/SdaMainForm.cs index fa08681..c005de3 100644 --- a/SDA/iWareSda/SdaMainForm.cs +++ b/SDA/iWareSda/SdaMainForm.cs @@ -32,16 +32,16 @@ private static IDictionary<string, string> realtimePlcValueDict_Srm = new Dictionary<string, string>(); /// <summary> - /// RGV瀹炴椂PLC鍊煎瓧鍏� + /// Station瀹炴椂PLC鍊煎瓧鍏� /// </summary> - private static IDictionary<string, string> realtimePlcValueDict_Rgv = new Dictionary<string, string>(); + private static IDictionary<string, string> realtimePlcValueDict_Station = new Dictionary<string, string>(); #region 鍙戦�乄CS蹇冭烦 /// <summary> /// 鍙戦�佸爢鍨涙満鐨勫績璺� /// </summary> private List<Thread> SendStackerHeartToSrmThreads = new List<Thread>(); - private List<Thread> SendStackerHeartToRgvThreads = new List<Thread>(); + private List<Thread> SendStackerHeartToStationThreads = new List<Thread>(); /// <summary> /// 鍙戦�佽緭閫佺嚎鐨勫績璺� /// </summary> @@ -51,7 +51,7 @@ private List<Thread> GetSrmStateThreads = new List<Thread>(); - private List<Thread> GetRgvStateThreads = new List<Thread>(); + private List<Thread> GetStationStateThreads = new List<Thread>(); private List<Thread> GetLineStateThreads = new List<Thread>(); #endregion @@ -62,16 +62,16 @@ public static bool isShowPlcValue_Srm = false; /// <summary> - /// 鏄惁瑕佹樉绀哄疄鏃禦gv鐨凱LC鍊煎爢鍨涙満 + /// 鏄惁瑕佹樉绀哄疄鏃禨tation鐨凱LC鍊煎爢鍨涙満 /// </summary> - public static bool isShowPlcValue_Rgv = false; + public static bool isShowPlcValue_Station = false; static string errorStr = string.Empty; static string infoStr_ChangeHandshake = string.Empty; static string errorStr_Line = string.Empty; static string errorStr_Srm = string.Empty; - static string errorStr_Rgv = string.Empty; + static string errorStr_Station = string.Empty; static string infoStr_SaveLine = string.Empty; static string infoStr_Connection = string.Empty; @@ -107,14 +107,9 @@ try { #region 瀵瑰鍙戝竷WCF褰㈠紡鏁版嵁璁块棶鏈嶅姟 - var srmServiceHost = new ServiceHost(typeof(iWareSda.SrmService)); - srmServiceHost.Open(); - //var lineServiceHost = new ServiceHost(typeof(iWareSda.LineService)); - //lineServiceHost.Open(); - - var rgvServiceHost = new ServiceHost(typeof(iWareSda.RgvService)); - rgvServiceHost.Open(); + var StationServiceHost = new ServiceHost(typeof(iWareSda.StationService)); + StationServiceHost.Open(); #endregion @@ -140,91 +135,35 @@ #region 鐘舵�佷俊鎭幏鍙� - //鑾峰彇鍫嗗灈鏈虹殑鐘舵�佷俊鎭� - Srm_CacheEntity.DeviceObjs.ForEach(x => - { - var thread = new Thread(new ParameterizedThreadStart(GetSrmInfo)); - thread.Name = string.Format("鑾峰彇鍫嗗灈鏈簕0}鐨勭姸鎬�", x.View.DeviceName); - GetSrmStateThreads.Add(thread); - StartThread(thread, x); - }); - ////妯℃嫙娴嬭瘯 - //var y = Srm_CacheEntity.DeviceObjs[3]; - //var thread_test = new Thread(new ParameterizedThreadStart(GetSrmInfo)); - //thread_test.Name = string.Format("鑾峰彇鍫嗗灈鏈簕0}鐨勭姸鎬�", y.View.DeviceName); - //GetSrmStateThreads.Add(thread_test); - //StartThread(thread_test, y); - - //鑾峰彇Rgv鐨勭姸鎬佷俊鎭� - Rgv_CacheEntity.DeviceObjs.ForEach(x => + //鑾峰彇Station鐨勭姸鎬佷俊鎭� + Station_CacheEntity.DeviceObjs.ForEach(x => { - var thread = new Thread(new ParameterizedThreadStart(GetRgvInfo)); - thread.Name = string.Format("鑾峰彇Rgv{0}鐨勭姸鎬�", x.View.DeviceName); - GetRgvStateThreads.Add(thread); + var thread = new Thread(new ParameterizedThreadStart(GetStationInfo)); + thread.Name = string.Format("鑾峰彇Station{0}鐨勭姸鎬�", x.View.DeviceName); + GetStationStateThreads.Add(thread); StartThread(thread, x); }); - /* - Rgv_CacheEntity.DeviceObjs.ForEach(x => - { - var thread = new Thread(new ParameterizedThreadStart(HandleRGVAckBug)); - thread.Name = string.Format("淇Rgv{0}鐨凙CK BUG", x.View.DeviceName); - GetRgvStateThreads.Add(thread); - StartThread(thread, x); - }); - //*/ - - ////鑾峰彇杈撻�佺嚎鐨勭姸鎬佷俊鎭� - //HuscoLine_CacheEntity.DeviceObjs.ForEach(x => - //{ - // var thread = new Thread(new ParameterizedThreadStart(GetLineInfo)); - // thread.Name = string.Format("鑾峰彇杈撻�佺嚎{0}鐨勭姸鎬�", x.View.DeviceName); - // GetLineStateThreads.Add(thread); - // StartThread(thread, x); - //}); #endregion #region 璁惧鍙戦�佸績璺� - //寮�鍚� 鍫嗗灈鏈� 蹇冭烦鐨勭嚎绋� - Srm_CacheEntity.DeviceObjs.ForEach(x => + + //寮�鍚� Station 蹇冭烦鐨勭嚎绋� + Station_CacheEntity.DeviceObjs.ForEach(x => { - var thread = new Thread(new ParameterizedThreadStart(SendStackerHeartToSrm)); - thread.Name = string.Format("鑷姩鍙戦�佸爢鍨涙満{0}蹇冭烦", x.View.DeviceName); - SendStackerHeartToSrmThreads.Add(thread); + var thread = new Thread(new ParameterizedThreadStart(SendStackerHeartToStation)); + thread.Name = string.Format("鑷姩鍙戦�丼tation{0}蹇冭烦", x.View.DeviceName); + SendStackerHeartToStationThreads.Add(thread); StartThread(thread, x); }); - //寮�鍚� Rgv 蹇冭烦鐨勭嚎绋� - Rgv_CacheEntity.DeviceObjs.ForEach(x => - { - var thread = new Thread(new ParameterizedThreadStart(SendStackerHeartToRgv)); - thread.Name = string.Format("鑷姩鍙戦�丷gv{0}蹇冭烦", x.View.DeviceName); - SendStackerHeartToRgvThreads.Add(thread); - StartThread(thread, x); - }); - /* - //寮�鍚� 杈撻�佺嚎 蹇冭烦鐨勭嚎绋� - HuscoLine_CacheEntity.DeviceObjs.ForEach(x => - { - var thread = new Thread(new ParameterizedThreadStart(SendStackerHeartToLine)); - thread.Name = string.Format("鑷姩鍙戦�佽緭閫佺嚎{0}蹇冭烦", x.View.DeviceName); - SendStackerHeartToLineThreads.Add(thread); - StartThread(thread, x); - }); - //*/ #endregion - #region UI鏄剧ず - - var treadShowUI = new Thread(ShowUI); - treadShowUI.Start(); - - #endregion new Thread(DeleteData).Start(); //*/ @@ -492,16 +431,16 @@ #endregion - #region Rgv + #region Station #region 璁惧鐘舵�佷俊鎭� /// <summary> - /// 鑾峰彇 Rgv 鐨勭姸鎬佷俊鎭� + /// 鑾峰彇 Station 鐨勭姸鎬佷俊鎭� /// </summary> /// <param name="obj"></param> - private void GetRgvInfo(object obj) + private void GetStationInfo(object obj) { - var s = (RgvEntity)obj; + var s = (StationEntity)obj; if (s.plcService != null && !s.plcService.IsConnected) { s.plcService.Close(); @@ -514,8 +453,8 @@ s.InitData(); if (s.plcService == null || !s.plcService.IsConnected) { - errorStr_Rgv = "Rgv" + s.View.DeviceName + "杩炴帴宸叉柇寮�锛屾鍦ㄥ皾璇曟墦寮�銆傘�傘��"; - errorStr_Rgv = SysHelper.Language(WareSdaStruct.LanguageFlg, errorStr_Rgv, "Piler connection disconnected,waiting for reconnection "); + errorStr_Station = "Station" + s.View.DeviceName + "杩炴帴宸叉柇寮�锛屾鍦ㄥ皾璇曟墦寮�銆傘�傘��"; + errorStr_Station = SysHelper.Language(WareSdaStruct.LanguageFlg, errorStr_Station, "Piler connection disconnected,waiting for reconnection "); s.plcService.Close(); s.plcService.OpenService(); Thread.Sleep(100); @@ -524,7 +463,7 @@ else { var s7 = s.plcService; - var Rgv_db = s.DBBlockForWrite; + var Station_db = s.DBBlockForWrite; s.SetPropertyValueForRead(); s.SetPropertyValueForWrite(); @@ -533,44 +472,44 @@ //s.View.BodyTestName = s.GetBodyTestName(s.View.r_S); //s.View.StateName = s.GetStateName(s.View.R_State); - if (SdaMainForm.isShowPlcValue_Rgv) + if (SdaMainForm.isShowPlcValue_Station) { - string dbValues = SdaHelper.GetStrShow<RgvView, RgvDBForWrite, RgvDBForRead>(s.View, s.DBBlockForWrite, s.DBBlockForRead, "", "", s.View.DeviceId, s.View.DeviceName); - realtimePlcValueDict_Rgv[s.View.DeviceName] = dbValues; + string dbValues = SdaHelper.GetStrShow<StationView, StationDBForWrite, StationDBForRead>(s.View, s.DBBlockForWrite, s.DBBlockForRead, "", "", s.View.DeviceId, s.View.DeviceName); + realtimePlcValueDict_Station[s.View.DeviceName] = dbValues; } else { - realtimePlcValueDict_Rgv[s.View.DeviceName] = ""; + realtimePlcValueDict_Station[s.View.DeviceName] = ""; } - foreach (var item in s.View.R_RgvForReadCommList) + foreach (var item in s.View.R_StationForReadCommList) { //鍒ゆ柇濡傛灉ACK=1锛屽垯鍐欏叆STB涓�0 if (item.R_ACK == true) { - var writeObj = s.View.W_RgvForWriteCommList.Where(x => x.StationCode == item.StationCode).FirstOrDefault(); - var writeAddressObj = s.DBBlockForWrite.W_RgvForWriteCommList.Where(x => x.StationCode == item.StationCode).FirstOrDefault(); - MessageModel fr = s.plcService.WriteValuePoint(writeAddressObj.W_STP, false, writeObj.W_STP); + var writeObj = s.View.W_StationForWriteCommList.Where(x => x.StationCode == item.StationCode).FirstOrDefault(); + var writeAddressObj = s.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == item.StationCode).FirstOrDefault(); + MessageModel fr = null; if (fr.result == false) { - Log4NetHelper.WriteErrorLog(LogType.SrmTheadService, "鑾峰彇 RGV鍜岃緭閫佺嚎 鐨勭姸鎬佷俊鎭椂锛屽垽鏂瑼CK=1锛屾洿鏂癝TB涓�0鏃堕敊璇�:" + fr.resMsg, null); + Log4NetHelper.WriteErrorLog(LogType.SrmTheadService, "鑾峰彇 Station鍜岃緭閫佺嚎 鐨勭姸鎬佷俊鎭椂锛屽垽鏂瑼CK=1锛屾洿鏂癝TB涓�0鏃堕敊璇�:" + fr.resMsg, null); } } } //璧嬪�兼姤璀� //s.View.R_Line_WarningDBList = s.GetLineAlertDatas(); - s.View.R_Rgv_WarningDBList = s.GetRgvAlertDatas(); + s.View.R_Station_WarningDBList = s.GetStationAlertDatas(); } } catch (Exception ex) { s.InitData(); - errorStr_Rgv = "GetRgvInfo鍑虹幇寮傚父:" + ex.Message; - errorStr_Rgv = SysHelper.Language(WareSdaStruct.LanguageFlg, errorStr_Rgv, - "GetRgvInfo throw exceptions: " + ex.Message); + errorStr_Station = "GetStationInfo鍑虹幇寮傚父:" + ex.Message; + errorStr_Station = SysHelper.Language(WareSdaStruct.LanguageFlg, errorStr_Station, + "GetStationInfo throw exceptions: " + ex.Message); - Log4NetHelper.WriteErrorLog(LogType.RgvSdaService, "鑾峰彇 Rgv 鐨勭姸鎬佷俊鎭嚭鐜板紓甯�", ex); + Log4NetHelper.WriteErrorLog(LogType.StationSdaService, "鑾峰彇 Station 鐨勭姸鎬佷俊鎭嚭鐜板紓甯�", ex); } Thread.Sleep(1000); } @@ -582,26 +521,26 @@ #region 蹇冭烦鐩稿叧 /// <summary> - /// 鍙戦�佺粰Rgv鐨勫績璺� + /// 鍙戦�佺粰Station鐨勫績璺� /// </summary> /// <param name="obj"></param> - private void SendStackerHeartToRgv(object obj) + private void SendStackerHeartToStation(object obj) { bool handShakeValue = true; while (true) { - var s = (RgvEntity)obj; + var s = (StationEntity)obj; handShakeValue = !handShakeValue; try { if (s.plcService != null && !s.plcService.IsConnected) { - errorStr_Rgv = SysHelper.Language(WareSdaStruct.LanguageFlg, "Rgv" + s.View.DeviceName + "杩炴帴宸叉柇寮�", "Piler connection disconnected "); + errorStr_Station = SysHelper.Language(WareSdaStruct.LanguageFlg, "Station" + s.View.DeviceName + "杩炴帴宸叉柇寮�", "Piler connection disconnected "); Thread.Sleep(100); continue; } - errorStr_Rgv = SysHelper.Language(WareSdaStruct.LanguageFlg, "Rgv" + s.View.DeviceName + "杩炴帴宸茶繛鎺ャ�傘�傘��", "Piler connection connected "); + errorStr_Station = SysHelper.Language(WareSdaStruct.LanguageFlg, "Station" + s.View.DeviceName + "杩炴帴宸茶繛鎺ャ�傘�傘��", "Piler connection connected "); if (s.plcService != null && s.plcService.IsConnected) { MessageModel fr = s.plcService.WriteValuePoint(s.DBBlockForWrite.W_HandShake, handShakeValue, s.View.W_HandShake); @@ -615,8 +554,8 @@ } catch (Exception ex) { - errorStr_Rgv = SysHelper.Language(WareSdaStruct.LanguageFlg, "鍙戦�佸績璺崇粰Rgv鍑虹幇寮傚父銆傘�傘��" + ex.Message, "Send to stacker for heart beat throw expection: " + ex.Message); - Log4NetHelper.WriteErrorLog(LogType.SdaService, "鍙戦�佺粰Rgv鐨勫績璺冲嚭鐜板紓甯�:" + ex.Message, ex); + errorStr_Station = SysHelper.Language(WareSdaStruct.LanguageFlg, "鍙戦�佸績璺崇粰Station鍑虹幇寮傚父銆傘�傘��" + ex.Message, "Send to stacker for heart beat throw expection: " + ex.Message); + Log4NetHelper.WriteErrorLog(LogType.SdaService, "鍙戦�佺粰Station鐨勫績璺冲嚭鐜板紓甯�:" + ex.Message, ex); } } } @@ -675,7 +614,7 @@ //line.View.R_WarningDBList = line.GetAlertDatas(); string dbValues = SdaHelper.GetStrShow<HuscoLineView, HuscoLineDBForWrite, HuscoLineDBForRead>(line.View, line.DBBlockForWrite, line.DBBlockForRead, HuscoLine_CacheEntity.W_DBHeader, HuscoLine_CacheEntity.R_DBHeader, line.View.DeviceId, line.View.DeviceName); - this.tb_Rgv.Text = dbValues + " \r\n AssemblyBarcode:" + _AssemblyBarcode + " \r\n CoilCode:" + _CoilCode + " \r\n"; + this.tb_Station.Text = dbValues + " \r\n AssemblyBarcode:" + _AssemblyBarcode + " \r\n CoilCode:" + _CoilCode + " \r\n"; //棣栧厛璇诲彇鎻℃墜淇″彿鏄惁鏄痶rue锛屽彧鏈塼rue 鐨勬椂鍊欐墠鑳芥嬁鍊� var isRead = Convert.ToInt32(line.plcService.ReadValuePoint("", handShareAddress, typeof(Int32))); @@ -796,32 +735,13 @@ Thread.Sleep(1000); try { - foreach (var item in realtimePlcValueDict_Srm) - { - if (item.Key == "Srm1") - { - this.tb_Srm1.Text = item.Value; - } - else if (item.Key == "Srm2") - { - this.tb_Srm2.Text = item.Value; - } - else if (item.Key == "Srm3") - { - this.tb_Srm3.Text = item.Value; - } - else if (item.Key == "Srm4") - { - this.tb_Srm4.Text = item.Value; - } - } - var str_rgv = ""; - foreach (var item in realtimePlcValueDict_Rgv) + var str_Station = ""; + foreach (var item in realtimePlcValueDict_Station) { - str_rgv += item.Value; + str_Station += item.Value; } - this.tb_Rgv.Text = str_rgv; + this.tb_Station.Text = str_Station; } catch (Exception) @@ -856,7 +776,7 @@ { realtimePlcValueDict_Srm.Add(x.View.DeviceName, ""); }); - Rgv_CacheEntity.DeviceObjs.ForEach(x => + Station_CacheEntity.DeviceObjs.ForEach(x => { realtimePlcValueDict_Srm.Add(x.View.DeviceName, ""); }); @@ -1012,36 +932,36 @@ private void button2_Click_1(object sender, EventArgs e) { - isShowPlcValue_Rgv = true; + isShowPlcValue_Station = true; } private void button1_Click_1(object sender, EventArgs e) { - isShowPlcValue_Rgv = false; + isShowPlcValue_Station = false; } /* /// <summary> - /// 涓�鐩村瓨鍦≧GVACK淇″彿鏃犳硶娓呴櫎鐨凚UG锛屽仛涓畾鏃舵竻闄ょ殑绾跨▼ + /// 涓�鐩村瓨鍦⊿tationACK淇″彿鏃犳硶娓呴櫎鐨凚UG锛屽仛涓畾鏃舵竻闄ょ殑绾跨▼ /// </summary> - public void HandleRGVAckBug(object obj) + public void HandleStationAckBug(object obj) { - var s = (RgvEntity)obj; + var s = (StationEntity)obj; while (true) { Thread.Sleep(1000); - bool finishRgv = (bool)s.plcService.ReadValuePoint(s.DBBlockForRead.R_RGV_Finish, typeof(bool)); - bool finisAck = (bool)s.plcService.ReadValuePoint(s.DBBlockForWrite.W_RGV_FinishACK, typeof(bool)); + bool finishStation = (bool)s.plcService.ReadValuePoint(s.DBBlockForRead.R_Station_Finish, typeof(bool)); + bool finisAck = (bool)s.plcService.ReadValuePoint(s.DBBlockForWrite.W_Station_FinishACK, typeof(bool)); - if (finisAck == false && finishRgv == true) + if (finisAck == false && finishStation == true) { Thread.Sleep(10000);//濡傛灉10绉掕繕娌℃竻闄わ紝灏卞己鍒舵竻闄� - finishRgv = (bool)s.plcService.ReadValuePoint(s.DBBlockForRead.R_RGV_Finish, typeof(bool)); - finisAck = (bool)s.plcService.ReadValuePoint(s.DBBlockForWrite.W_RGV_FinishACK, typeof(bool)); - if (finisAck == false && finishRgv == true) + finishStation = (bool)s.plcService.ReadValuePoint(s.DBBlockForRead.R_Station_Finish, typeof(bool)); + finisAck = (bool)s.plcService.ReadValuePoint(s.DBBlockForWrite.W_Station_FinishACK, typeof(bool)); + if (finisAck == false && finishStation == true) { - s.plcService.WriteValuePoint(s.DBBlockForWrite.W_RGV_FinishACK, true, s.View.W_RGV_FinishACK);//閲嶅彂涓�娆� 20230503 鐜嬮摦 + s.plcService.WriteValuePoint(s.DBBlockForWrite.W_Station_FinishACK, true, s.View.W_Station_FinishACK);//閲嶅彂涓�娆� 20230503 鐜嬮摦 } } -- Gitblit v1.9.3