Browse Source

新增供料器螺丝颜色字段及MES自动匹配功能

- CTQ_Data: 新增Feeder1ScrewColor/Feeder2ScrewColor属性
- SettingView: 供料器SN下方新增颜色输入框(Row26/27)
- Management: 新增MatchFeederByColor方法,三处MES响应点自动匹配
- CSV导出: 增加供料器颜色列
zly 1 tháng trước cách đây
mục cha
commit
51e7988432

+ 30 - 0
TeamAAS-VM/Core/Management.cs

@@ -3020,6 +3020,7 @@ namespace TeamAAS_VP.Core
                                                     {
                                                         color[i] = colorItem.Replace("color=", "").Trim();
                                                         SendTaskMessage($"color:{color[i]}", MessageLevel.Info);
+                                                        MatchFeederByColor(color[i]);
                                                     }
                                                     string ppidItem = item.FirstOrDefault(f => f.Contains("ppid="));
                                                     if (ppidItem != null)
@@ -3142,6 +3143,7 @@ namespace TeamAAS_VP.Core
                                                     {
                                                         color[i] = colorItem.Replace("color=", "").Trim();
                                                         SendTaskMessage($"color:{color[i]}", MessageLevel.Info);
+                                                        MatchFeederByColor(color[i]);
                                                     }
                                                     string ppidItem = item.FirstOrDefault(f => f.Contains("ppid="));
                                                     if (ppidItem != null)
@@ -3682,6 +3684,7 @@ namespace TeamAAS_VP.Core
                                                 {
                                                     color[i] = colorItem.Replace("color=", "").Trim();
                                                     SendTaskMessage($"color:{color[i]}", MessageLevel.Info);
+                                                    MatchFeederByColor(color[i]);
                                                 }
                                                 string ppidItem = item.FirstOrDefault(f => f.Contains("ppid="));
                                                 if (ppidItem != null)
@@ -3812,6 +3815,33 @@ namespace TeamAAS_VP.Core
 
         #region 方法
 
+        /// <summary>
+        /// 根据MES返回的产品颜色匹配供料器,仅记录日志
+        /// </summary>
+        private void MatchFeederByColor(string mesColor)
+        {
+            if (string.IsNullOrEmpty(mesColor)) return;
+
+            var deviceInfo = _configService.GetDeviceInfo(0);
+            if (deviceInfo?.DataInfo == null) return;
+
+            var feeder1Color = deviceInfo.DataInfo.Feeder1ScrewColor;
+            var feeder2Color = deviceInfo.DataInfo.Feeder2ScrewColor;
+
+            if (!string.IsNullOrEmpty(feeder1Color) && mesColor.Contains(feeder1Color))
+            {
+                SendTaskMessage($"产品颜色匹配供料器1: MES颜色={mesColor}, 供料器1颜色={feeder1Color}", MessageLevel.Info);
+            }
+            else if (!string.IsNullOrEmpty(feeder2Color) && mesColor.Contains(feeder2Color))
+            {
+                SendTaskMessage($"产品颜色匹配供料器2: MES颜色={mesColor}, 供料器2颜色={feeder2Color}", MessageLevel.Info);
+            }
+            else
+            {
+                SendTaskMessage($"产品颜色未匹配任何供料器: MES颜色={mesColor}, 供料器1颜色={feeder1Color}, 供料器2颜色={feeder2Color}", MessageLevel.Alarm);
+            }
+        }
+
         public void SendTaskMessage(string msg, MessageLevel level)
         {
             App.Current.Dispatcher.Invoke(() =>

+ 17 - 1
TeamAAS-VM/Models/CTQ_Data.cs

@@ -129,6 +129,18 @@ namespace TeamAAS_VP.Models
         /// </summary>
         public string Feeder2ScrewSN { get => _Feeder2ScrewSN; set => SetProperty(ref _Feeder2ScrewSN, value); }
 
+        private string _Feeder1ScrewColor;
+        /// <summary>
+        /// 供料器1螺丝颜色
+        /// </summary>
+        public string Feeder1ScrewColor { get => _Feeder1ScrewColor; set => SetProperty(ref _Feeder1ScrewColor, value); }
+
+        private string _Feeder2ScrewColor;
+        /// <summary>
+        /// 供料器2螺丝颜色
+        /// </summary>
+        public string Feeder2ScrewColor { get => _Feeder2ScrewColor; set => SetProperty(ref _Feeder2ScrewColor, value); }
+
         private string _CTQ_UNIT_OF_MEASURE;
         /// <summary>
         /// 单位
@@ -163,6 +175,8 @@ namespace TeamAAS_VP.Models
             ERROR_MESSAGE = string.Empty;
             Feeder1ScrewSN = string.Empty;
             Feeder2ScrewSN = string.Empty;
+            Feeder1ScrewColor = string.Empty;
+            Feeder2ScrewColor = string.Empty;
         }
 
         public CTQ_Data Copy()
@@ -188,7 +202,9 @@ namespace TeamAAS_VP.Models
                 CTQ_UNIT_OF_MEASURE = this.CTQ_UNIT_OF_MEASURE,
                 ERROR_MESSAGE = this.ERROR_MESSAGE,
                 Feeder1ScrewSN = this.Feeder1ScrewSN,
-                Feeder2ScrewSN = this.Feeder2ScrewSN
+                Feeder2ScrewSN = this.Feeder2ScrewSN,
+                Feeder1ScrewColor = this.Feeder1ScrewColor,
+                Feeder2ScrewColor = this.Feeder2ScrewColor
             };
         }
 

+ 2 - 2
TeamAAS-VM/ViewModels/AddScrewViewModel.cs

@@ -186,7 +186,7 @@ namespace TeamAAS_VP.ViewModels
             if (!appendMode || !File.Exists(savePath))
             {
                 //csvContent.AppendLine("日期时间,目标螺丝型号1,螺丝型号2,螺丝型号3,添加螺丝型号,添加螺丝员工,是否匹配");
-                csvContent.AppendLine("DateTime,Feeder1SN,Feeder2SN,AddScrew,UserID,Feeder,Results");
+                csvContent.AppendLine("DateTime,Feeder1SN,Feeder2SN,Feeder1Color,Feeder2Color,AddScrew,UserID,Feeder,Results");
             }
 
             // 处理数据行
@@ -199,7 +199,7 @@ namespace TeamAAS_VP.ViewModels
                 safeModel = $"\"{safeModel}\"";
             }
 
-            csvContent.AppendLine($"{dateTime},{DataInfo.Feeder1ScrewSN},{DataInfo.Feeder2ScrewSN},{model},{UserId},{feederName},{matchStr}");
+            csvContent.AppendLine($"{dateTime},{DataInfo.Feeder1ScrewSN},{DataInfo.Feeder2ScrewSN},{DataInfo.Feeder1ScrewColor},{DataInfo.Feeder2ScrewColor},{model},{UserId},{feederName},{matchStr}");
 
             // 写入文件:UTF-8带BOM编码,Excel打开无乱码
             if (appendMode && File.Exists(savePath))

+ 2 - 2
TeamAAS-VM/Views/AddScrewView.xaml.cs

@@ -234,7 +234,7 @@ namespace TeamAAS_VP.Views
             // 处理表头:仅当文件不存在/非追加模式时,才写入表头
             if (!appendMode || !File.Exists(savePath))
             {
-                csvContent.AppendLine("日期时间,目标螺丝型号1,螺丝型号2,螺丝型号3,添加螺丝型号,是否匹配");
+                csvContent.AppendLine("日期时间,目标螺丝型号1,螺丝型号2,供料器1颜色,供料器2颜色,螺丝型号3,添加螺丝型号,是否匹配");
             }
 
             // 处理数据行
@@ -247,7 +247,7 @@ namespace TeamAAS_VP.Views
                 safeModel = $"\"{safeModel}\"";
             }
 
-            csvContent.AppendLine($"{dateTime},{DataInfo.Feeder1ScrewSN},{DataInfo.Feeder2ScrewSN},{model},{matchStr}");
+            csvContent.AppendLine($"{dateTime},{DataInfo.Feeder1ScrewSN},{DataInfo.Feeder2ScrewSN},{DataInfo.Feeder1ScrewColor},{DataInfo.Feeder2ScrewColor},{model},{matchStr}");
 
             // 写入文件:UTF-8带BOM编码,Excel打开无乱码
             if (appendMode && File.Exists(savePath))

+ 22 - 0
TeamAAS-VM/Views/SettingView.xaml

@@ -734,6 +734,28 @@
                                     Grid.Column="1"
                                     Margin="6,2"
                                     Text="{Binding SelectDeviceInfo.DataInfo.Feeder2ScrewSN, Mode=TwoWay}" />
+                                <TextBlock
+                                    Grid.Row="26"
+                                    Grid.Column="0"
+                                    HorizontalAlignment="Right"
+                                    VerticalAlignment="Center"
+                                    Text="供料器1螺丝颜色:" />
+                                <TextBox
+                                    Grid.Row="26"
+                                    Grid.Column="1"
+                                    Margin="6,2"
+                                    Text="{Binding SelectDeviceInfo.DataInfo.Feeder1ScrewColor, Mode=TwoWay}" />
+                                <TextBlock
+                                    Grid.Row="27"
+                                    Grid.Column="0"
+                                    HorizontalAlignment="Right"
+                                    VerticalAlignment="Center"
+                                    Text="供料器2螺丝颜色:" />
+                                <TextBox
+                                    Grid.Row="27"
+                                    Grid.Column="1"
+                                    Margin="6,2"
+                                    Text="{Binding SelectDeviceInfo.DataInfo.Feeder2ScrewColor, Mode=TwoWay}" />
                             </Grid>
                         </Grid>
                     </ScrollViewer>