From 56d73b9710766e7acab2e084a6af322175c78f1b Mon Sep 17 00:00:00 2001
From: xcd <834800634@qq.com>
Date: 星期六, 11 七月 2020 11:20:38 +0800
Subject: [PATCH] 添加急停按钮相关处理

---
 src/Bro.M071.Process/M071Process.cs |   52 ++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 40 insertions(+), 12 deletions(-)

diff --git a/src/Bro.M071.Process/M071Process.cs b/src/Bro.M071.Process/M071Process.cs
index 7f239ef..3305e4b 100644
--- a/src/Bro.M071.Process/M071Process.cs
+++ b/src/Bro.M071.Process/M071Process.cs
@@ -50,6 +50,8 @@
 
             base.Open();
 
+            InitialMotionCardBaseAxisAlarm();
+
             SwitchBeep(false);
             SwitchLightGreen(false);
             SwitchLightRed(false);
@@ -57,6 +59,21 @@
 
             Reset(null, null, null);
             FullReset(null);
+        }
+
+        private void InitialMotionCardBaseAxisAlarm()
+        {
+            if (outputCtrlCard != null)
+            {
+                outputCtrlCard.OnAxisAlarmRaised -= MotionCard_OnAxisAlarmRaised;
+                outputCtrlCard.OnAxisAlarmRaised += MotionCard_OnAxisAlarmRaised;
+            }
+        }
+
+        private void MotionCard_OnAxisAlarmRaised(int axisIndex, string alarmMsg)
+        {
+            RaisedAlarm(alarmMsg); 
+            MachineState = MachineState.Alarm;
         }
 
         private void InitialSetting()
@@ -202,6 +219,11 @@
             Config.SnapshotPointCollection.Where(u => u.IsEnabled).ToList().ForEach(s =>
                   {
                       _pauseHandle.WaitHandle.WaitOne();
+
+                      if (MachineState != MachineState.Running)
+                      {
+                          throw new ProcessException("鏈哄彴鐘舵�佷笉鍦ㄨ繍琛屼腑锛岄��鍑烘娴�");
+                      }
 
                       IDevice device = DeviceCollection.FirstOrDefault(u => u.Id == s.MotionOp.Device);
                       if (device == null)
@@ -379,7 +401,7 @@
 
                 //MES杈撳嚭 todo
                 if (Config.IsEnableMESUpload)
-                { 
+                {
                 }
 
                 //Excel鎶ヨ〃杈撳嚭 锛堝崟涓骇鍝佺殑excel瀵煎嚭锛�
@@ -472,17 +494,20 @@
                     {
                         foreach (var keyValue in keyUnit.MeasureValueDict)//鑾峰彇鍗曚釜閿殑鍗曚釜娴嬮噺item 缁撴灉
                         {
-                            KeyUnitData keyUnitData = new KeyUnitData();
-                            keyUnitData.Key = keyUnit.Key;
-                            keyUnitData.MeasurementItem = keyValue.Key;
-                            keyUnitData.ItemValue = keyValue.Value.ToString();
-                            keyUnitDatas.Add(keyUnitData);
+                            bool isExist = keyUnitDatas.Any(u => u.Key == keyUnit.Key && u.MeasurementItem == keyValue.Key);
+                            if (!isExist)//宸插瓨鍦� 涓嶉噸澶嶆坊鍔犲師濮嬫暟鎹�
+                            {
+                                KeyUnitData keyUnitData = new KeyUnitData();
+                                keyUnitData.Key = keyUnit.Key;
+                                keyUnitData.MeasurementItem = keyValue.Key;
+                                keyUnitData.ItemValue = keyValue.Value.ToString();
+                                keyUnitDatas.Add(keyUnitData);
 
-                            MeasurementAndKeyDataRelation measurementAndKeyDataRelation = new MeasurementAndKeyDataRelation();
-                            measurementAndKeyDataRelation.MeasurementUnitResultId = measurementUnitResult.ID;
-                            measurementAndKeyDataRelation.KeyUnitDataId = keyUnitData.ID;
-                            measurementAndKeyDataRelationList.Add(measurementAndKeyDataRelation);
-
+                                MeasurementAndKeyDataRelation measurementAndKeyDataRelation = new MeasurementAndKeyDataRelation();
+                                measurementAndKeyDataRelation.MeasurementUnitResultId = measurementUnitResult.ID;
+                                measurementAndKeyDataRelation.KeyUnitDataId = keyUnitData.ID;
+                                measurementAndKeyDataRelationList.Add(measurementAndKeyDataRelation);
+                            }
                         }
                     }
                 }
@@ -500,6 +525,9 @@
 
         private async void ExportProductionExcel(ProductionMeasurementUnitResultAndKeyUnitDataSet measurementUnitResultAndKeyUnitDataSet)
         {
+            if (!Config.IsCSVOutputEnabled)
+                return;
+
             await Task.Run(() =>
             {
                 ExcelExportSet excelExportDto = new ExcelExportSet();
@@ -524,7 +552,7 @@
                 excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[1]] = ExcelExportHelper.ListToDataTable(measurementUnitResultAndKeyUnitDataSet.MeasurementUnitResultList, measurementUnitResultColumns); ;
 
                 byte[] filecontent = ExcelExportHelper.ExportExcel(excelExportDto, false);
-                string dir = Path.Combine(Config.ResultDataSaveFolder, DateTime.Now.ToString("yyyyMMdd"));
+                string dir = Path.Combine(Config.LogPath, DateTime.Now.ToString("yyyyMMdd"));
                 if (!Directory.Exists(dir))
                 {
                     Directory.CreateDirectory(dir);

--
Gitblit v1.8.0