peizhiyong
2025-08-01 2f6e00713e217f3fbb83db6e0cf67570b6df9fa0
src/Bro.M141.Process/M141Process.cs
@@ -1258,13 +1258,26 @@
                                M141Config.numpro = 0;
                            }
                            string Msgreceice = null;
                            if (pList[0].Result == "OK")
                            {
                                M141Config.numpro++;
                                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.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)
                            {
                                LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"产品{pList[0].PID}数据上传MES异常 返回数据为null");
@@ -1293,15 +1306,20 @@
                            int numplca = Convert.ToInt32(pList[0].SEQUENCE.Split('_')[0]);
                            LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"plc给出的产品序号为{numplca}");
                            lock (plcnumlock)
                            lock (plcnumlock)//1-29999
                            {
                                if (PlcNumForAll == -1)
                                {
                                    PlcNumForAll = numplca;
                                }
                                int differ = numplca - PlcNumForAll;
                                LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"两个产品中间的差值differ为{differ}");
                                if (differ > 1)
                                {
                                    for (int i = PlcNumForAll + 1; i < numplca; i++)
@@ -1316,8 +1334,17 @@
                                            newp.Zword = plist[0].Zword;
                                            newp.Result = "NG";
                                            newp.SN = plist[0].SN;
                                            var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.numpro)).Result;
                                            if (M141Config.ISupNG)
                                            {
                                                var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
                                                M141Config.mesnum2++;
                                                LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}启动NG上传");
                                            }
                                            else
                                            {
                                                LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}关闭NG上传");
                                            }
                                        }
                                        catch
                                        {
@@ -1327,11 +1354,12 @@
                                }
                                else if (differ == -29998 && differ == 1 && differ == 0)
                                {
                                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"生产过程中未失去产品");
                                }
                                else
                                else if ( differ<0 && differ>-29998)
                                {
                                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"PlcNumForAll为{PlcNumForAll},numplca为{numplca}");
                                    //产品从新计数时
                                    for (int i = PlcNumForAll + 1; i <= 29999; i++)
                                    {
                                        try
@@ -1344,17 +1372,26 @@
                                            newp.BasketCode = plist[0].BasketCode;
                                            newp.Result = "NG";
                                            newp.SN = plist[0].SN;
                                            var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.numpro)).Result;
                                            if (M141Config.ISupNG)
                                            {
                                                var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
                                                M141Config.mesnum2++;
                                                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
                                        {
                                        }
                                    }
                                    for (int i = 1; i < numplca; i++)
                                    {
                                        try
@@ -1367,18 +1404,26 @@
                                            newp.Zword = plist[0].Zword;
                                            newp.Result = "NG";
                                            newp.SN = plist[0].SN;
                                            var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.numpro)).Result;
                                            if (M141Config.ISupNG)
                                            {
                                                var tems = Task.Run(() => mqtt.MESForProduceAsync(newp, M141Config.mesnum2.ToString(), M141Config.numpro)).Result;
                                                M141Config.mesnum2++;
                                                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;
                            }