kingno
5 天以前 e41fb4bea3afa879caaf6c9f316f01bacf262545
S2和S4结果联动.S2抛条码NG,其余NG到S4抛料
3个文件已修改
79 ■■■■■ 已修改文件
src/Bro.M141.Process/M141Config.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M141.Process/M141Process_ImageCheck.cs 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M141.Process/M141Process_Mysql.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M141.Process/M141Config.cs
@@ -963,10 +963,6 @@
        [Editor(typeof(FoldDialogEditor), typeof(UITypeEditor))]
        public string ImageFolder { get; set; }
        [Category("启动配置")]
        [Description("true:启动离线测试 false:停止离线测试")]
        [DisplayName("测试开关")]
        public bool IsStart { get; set; } = true;
        [Category("检测功能")]
src/Bro.M141.Process/M141Process_ImageCheck.cs
@@ -2,6 +2,7 @@
using Bro.Common.Helper;
using Bro.Common.Interface;
using Bro.Common.Model;
using Bro.DataBase.Model;
using Bro.M135.Common;
using Bro.M135.DBManager;
using HalconDotNet;
@@ -441,7 +442,7 @@
            return msg;
        }
@@ -481,26 +482,18 @@
            } while (true);
            var Defaultclass = M141Config.DefectClassCollection.FirstOrDefault(u => u.IsDefault);
            productList.ForEach(p =>
            {
                if (Defaultclass == null)
                {
                    if (string.IsNullOrEmpty(p.Result))
                    {
                        p.Result = "NG";
                    }
                }
                else
                {
                    if (string.IsNullOrEmpty(p.Result))
                    {
                        p.Result = Defaultclass.ClassName;
                    }
                }
            var Defaultclass = M141Config.DefectClassCollection.FirstOrDefault(u => u.ClassName == productList[0].Result);
                Plc1.WriteSingleAddress(1526, p.Result.ToUpper().Contains("NG") ? 2 : 1, out _);
            });
            if (M141Config.StationCode == "S4" && productList[0].Result == "OK")
            {
                ////mysqlhelper.GetS2Result(productList[0].SEQUENCE);
                Plc1.WriteSingleAddress(1526, mysqlhelper.GetS2Result(productList[0].SEQUENCE) ? 1 : 2, out _);
            }
            else
            {
                Plc1.WriteSingleAddress(1526, Defaultclass?.ClassValue ?? 2, out _);
            }
            Plc1.WriteSingleAddress(1516, 1, out _);
            return msg;
@@ -527,7 +520,7 @@
            return new ResponseMessage();
        }
        private async void OfflineDemoAsync(string imageFolder,bool isok,int saveimagetime)
        private async void OfflineDemoAsync(string imageFolder, bool isok, int saveimagetime)
        {
            await Task.Run(() =>
            {
@@ -544,7 +537,7 @@
                    {
                        continue;
                    }
                    if (imageFile.EndsWith("OK")& isok == false)
                    if (imageFile.EndsWith("OK") & isok == false)
                    {
                        continue;
                    }
@@ -552,7 +545,7 @@
                    {
                        continue;
                    }
                    var nameDatas = imageFile.Split(new char[] { '_'}, StringSplitOptions.RemoveEmptyEntries).ToList();
                    var nameDatas = imageFile.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                    if (nameDatas.Count != 5)
                    {
                        LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"文件{imageFile}命名不符合规范,不执行离线测试");
@@ -562,8 +555,8 @@
                    var sn = nameDatas[0];
                    var imageSeq = nameDatas[2][^1].ToString();
                    var measureBind = M141Config.MeasureBindCollection.FirstOrDefault(u => u.ImageSaveSeq == imageSeq);
                if (measureBind == null || !measureBind.IsFixed)
                    if (measureBind == null || !measureBind.IsFixed)
                    {
                        LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"离线测试,工位{(measureBind == null ? "未匹配" : $"{measureBind.WorkPosition}未开启")}");
                        continue;
@@ -579,11 +572,11 @@
                    Thread.Sleep(saveimagetime);
                    imgSet.HImage?.Dispose();
                    imgSet.HImage = null;
                }
            });
        }
        [ProcessMethod("printer", "printer", "打印机打印", InvokeType.TestInvoke)]
@@ -722,7 +715,7 @@
            UpdateDefectAsync(defects);
            var defectClass = GetDefectClassFromDefectList(defects);
            UpdateResult(DateTime.Now, p.SN, defectClass.ClassName, "",p.ImagePaths);
            UpdateResult(DateTime.Now, p.SN, defectClass.ClassName, "", p.ImagePaths);
            //产品序号+1
            //Interlocked.Increment(ref _productIndex);
src/Bro.M141.Process/M141Process_Mysql.cs
@@ -360,6 +360,32 @@
            return null;
        }
        public bool GetS2Result(string plcnum)
        {
            try
            {
                string mysqlstr = $"select data from forall where plcnum='{plcnum}' && device='S2' order by id desc limit 1";
                string str = selectmysql(mysqlstr, connStrAll);
                if (string.IsNullOrEmpty(str))
                {
                    return false;
                }
                else
                {
                    ProductModel p = null;
                    p = JsonConvert.DeserializeObject<ProductModel>(str, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All });
                    return p.Result=="OK";
                }
            }
            catch (Exception e)
            {
                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"数据库forlocal获取对象异常 {e.ToString()}");
            }
            return false;
        }
        public string Getbasketcode(string plcnum, out string sn)
        {
            sn = "Noread";