zhouquan
2025-07-23 dbf68d954db78f369b87e87212e1f82b5513a894
MES功能添加强制上传成功,以及关闭NG产品上传功能合并
7个文件已修改
107 ■■■■ 已修改文件
libs/halcon12/halcondotnet.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/halcon12/hdevenginedotnet.dll 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M141.Process/M141Config.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M141.Process/M141Process.cs 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M141.Process/MyMQTT.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M141.Process/UI/UIPrinter.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M141_AOI1.Process/AOI1Process.cs 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
libs/halcon12/halcondotnet.dll
Binary files differ
libs/halcon12/hdevenginedotnet.dll
Binary files differ
src/Bro.M141.Process/M141Config.cs
@@ -203,6 +203,16 @@
        public bool ISupMES { get; set; } = false;
        [Category("MES配置")]
        [Description("是否强制MES上传成功")]
        [DisplayName("是否强制MES上传成功")]
        public bool ISokMes { get; set; } = false;
        [Category("MES配置")]
        [Description("是否上传NG数据")]
        [DisplayName("是否上传NG数据")]
        public bool ISupNG { get; set; } = true;
        [Category("MES配置")]
        [Description("接口选择,0篮具接口,1数据上传接口,-1所有接口")]
        [DisplayName("接口选择")]
        public int MESchannel { get; set; } = 0;
src/Bro.M141.Process/M141Process.cs
@@ -1258,13 +1258,25 @@
                                M141Config.numpro = 0;
                            }
                            string Msgreceice = null;
                            if (pList[0].Result == "OK")
                            {
                                M141Config.numpro++;
                                Msgreceice = Task.Run(() => mqtt.MESForProduceAsync(pList[0], M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
                            }
                            //mqtt.demes(productList[0], M141Config.zwoid);
                            string Msgreceice = Task.Run(() => mqtt.MESForProduceAsync(pList[0], M141Config.mesnum2.ToString(),M141Config.numpro)).Result;
                            else
                            {
                                if (M141Config.ISupNG)
                                {
                                    Msgreceice = Task.Run(() => mqtt.MESForProduceAsync(pList[0], M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
                                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{pList[0].PID}启动NG上传");
                                }
                                else
                                {
                                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{pList[0].PID}关闭NG上传");
                                }
                            }
                            M141Config.mesnum2++;
                            if (Msgreceice == null)
                            {
@@ -1322,9 +1334,16 @@
                                            newp.Zword = plist[0].Zword;
                                            newp.Result = "NG";
                                            newp.SN = plist[0].SN;
                                            if (M141Config.ISupNG)
                                            {
                                            var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
                                            M141Config.mesnum2++;
                                            LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"前站NG排料产品{newp.PID}数据上传,结果为{newp.Result}");
                                                LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}启动NG上传");
                                            }
                                            else
                                            {
                                                LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}关闭NG上传");
                                            }
                                        }
                                        catch
@@ -1353,9 +1372,20 @@
                                            newp.BasketCode = plist[0].BasketCode;
                                            newp.Result = "NG";
                                            newp.SN = plist[0].SN;
                                            if (M141Config.ISupNG)
                                            {
                                            var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
                                            M141Config.mesnum2++;
                                            LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"PlcNumForAll,前站NG排料且plc触发清零产品{newp.PID}数据上传,结果为{newp.Result}");
                                                LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}启动NG上传");
                                            }
                                            else
                                            {
                                                LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}关闭NG上传");
                                            }
                                            //var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
                                            //M141Config.mesnum2++;
                                            //LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"PlcNumForAll,前站NG排料且plc触发清零产品{newp.PID}数据上传,结果为{newp.Result}");
                                        }
                                        catch
                                        {
@@ -1374,19 +1404,26 @@
                                            newp.Zword = plist[0].Zword;
                                            newp.Result = "NG";
                                            newp.SN = plist[0].SN;
                                            if (M141Config.ISupNG)
                                            {
                                            var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
                                            M141Config.mesnum2++;
                                            LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"numplca,前站NG排料且plc触发清零产品{newp.PID}数据上传,结果为{newp.Result}");
                                                LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}启动NG上传");
                                            }
                                            else
                                            {
                                                LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}关闭NG上传");
                                            }
                                            //var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
                                            //M141Config.mesnum2++;
                                            //LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"numplca,前站NG排料且plc触发清零产品{newp.PID}数据上传,结果为{newp.Result}");
                                        }
                                        catch
                                        {
                                        }
                                    }
                                }
                                PlcNumForAll = numplca;
                            }
src/Bro.M141.Process/MyMQTT.cs
@@ -134,7 +134,7 @@
            }
        }
        public async Task<string> MESForBasketAsync(string ztype, string zlsn, string zlpn, string zstatus, string zversion, int timeoutMs = 30000)
        public async Task<string> MESForBasketAsync(string ztype, string zlsn, string zlpn, string zstatus, string zversion, int timeoutMes = 30000)
        {
            var guid = Guid.NewGuid().ToString();
            var tcs = new TaskCompletionSource<string>(TaskCreationOptions.RunContinuationsAsynchronously);
@@ -157,7 +157,7 @@
            CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ 篮具 发送1:{message}");
            _sendChannel.BasicPublish("", "auto_line_mac_queue", null, body);
            var completed = await Task.WhenAny(tcs.Task, Task.Delay(timeoutMs));
            var completed = await Task.WhenAny(tcs.Task, Task.Delay(timeoutMes));
            _pendingTask1.TryRemove(guid, out _);
            if (completed == tcs.Task)
                return await tcs.Task;
src/Bro.M141.Process/UI/UIPrinter.cs
@@ -669,7 +669,7 @@
        int pronum = 0;
        private void button6_Click(object sender, EventArgs e)//sn,result,zword,zno,entray
        {
            string Msg = Task.Run(() => Process141.mqtt.MESForProduceAsync(new ProductModel() { SN = textBox3.Text, Result = textBox4.Text ,Zword= textBox5.Text,}, textBox8.Text, Convert.ToInt32(textBox6.Text), textBox7.Text)).Result;
            string Msg = Task.Run(() => Process141.mqtt.MESForProduceAsync(new ProductModel() { SN = textBox3.Text, Result = textBox4.Text ,Zword= textBox5.Text}, textBox8.Text, Convert.ToInt32(textBox6.Text), textBox7.Text)).Result;
            if (Msg == null)
            {
                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 物料 返回数据为 null");
src/Bro.M141_AOI1.Process/AOI1Process.cs
@@ -229,7 +229,14 @@
                        string zwordstr = Task.Run(() => mqtt.MESForBasketAsync("2", "DS02217", barcode, "1", ConfigAOI1.mesnum2.ToString())).Result;
                        ConfigAOI1.mesnum2++;
                        if (ConfigAOI1.ISokMes)
                        {
                            Plc1.WriteSingleAddress(1524, 1, out _);
                            Plc1.WriteSingleAddress(1514, 1, out _);
                            LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"已强制读栏具码运行设备");
                        }
                        else
                        {
                        try
                        {
                            var obj = JsonConvert.DeserializeObject<AutoLineMacQueueBak>(zwordstr);
@@ -252,6 +259,7 @@
                            Plc1.WriteSingleAddress(1524, 2, out _);
                            Plc1.WriteSingleAddress(1514, 1, out _);
                            LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ zwoid获取异常  返回数据为 {zwordstr} ");
                            }
                        }
                    }
                    else
@@ -364,7 +372,8 @@
                        if (datasZ.Count == CheckPointList.Count)
                        {
                            string Postion = "P" + opConfig.TriggerStr.Split('#')[0];
                            string csvhead = "Time,Pid,Postion";
                            string csvhead = "Time,Pid" +
                                ",Postion";
                            string csvdata = $"{DateTime.Now.ToString("yyyyMMddHHmmss")}T,{results[0].PID},{Postion}";
                            for (int i = 0; i < CheckPointList.Count; i++)
@@ -498,6 +507,15 @@
            if (ConfigAOI1.ISupMES)
            {
                string Msg = Task.Run(() => mqtt.MESForBasketAsync("1", "DS02216", "", "0", ConfigAOI1.mesnum1.ToString())).Result;
                if (ConfigAOI1.ISokMes)
                {
                    ConfigAOI1.mesnum1++;
                    Plc1.WriteSingleAddress(1590, 1, out _);
                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"已强制MES上传进料口空篮");
                }
                else
                {
                if (Msg != null)
                {
                    try
@@ -527,6 +545,7 @@
                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 篮具  进料口空篮 获取返回值失败  返回数据null ");
                }
            }
            }
            else
            {
                Plc1.WriteSingleAddress(1590, 1, out _);
@@ -549,6 +568,14 @@
            if (ConfigAOI1.ISupMES)
            {
                string Msg = Task.Run(() => mqtt.MESForBasketAsync("1", "DS02216", "", "1", ConfigAOI1.mesnum1.ToString())).Result;
                if (ConfigAOI1.ISokMes)
                {
                    ConfigAOI1.mesnum1++;
                    Plc1.WriteSingleAddress(1590, 1, out _);
                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"已强制MES上传进料口满载");
                }
                else
                {
                if (Msg != null)
                {
@@ -579,6 +606,7 @@
                    Plc1.WriteSingleAddress(1590, 2, out _);
                }
            }
            }
            else
            {
                Plc1.WriteSingleAddress(1590, 1, out _);
@@ -592,8 +620,6 @@
        public ResponseMessage MESup3(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice)
        {
            ResponseMessage msg = new ResponseMessage();
            if (ConfigAOI1.ISupMES)
            {