| | |
| | | } |
| | | _ct = DateTime.Now; |
| | | |
| | | if (M141Config.ISupMES && (M141Config.MESchannel == -1 || M141Config.MESchannel == 1)) |
| | | { |
| | | if (M141Config.numpro >= 50) |
| | | { |
| | | M141Config.numpro = 0; |
| | | } |
| | | //if (M141Config.ISupMES && (M141Config.MESchannel == -1 || M141Config.MESchannel == 1)) |
| | | //{ |
| | | // if (M141Config.numpro >= 50) |
| | | // { |
| | | // M141Config.numpro = 0; |
| | | // } |
| | | |
| | | string Msgreceice = null; |
| | | // string Msgreceice = null; |
| | | |
| | | if (pList[0].Result == "OK") |
| | | { |
| | | //M141Config.numpro++; |
| | | //Msgreceice = Task.Run(() => mqtt.MESForProduceAsync(pList[0], M141Config.mesnum2.ToString(), M141Config.numpro)).Result; |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{pList[0].PID}汇总OK暂时不上传"); |
| | | } |
| | | 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上传"); |
| | | // if (pList[0].Result == "OK") |
| | | // { |
| | | // //M141Config.numpro++; |
| | | // //Msgreceice = Task.Run(() => mqtt.MESForProduceAsync(pList[0], M141Config.mesnum2.ToString(), M141Config.numpro)).Result; |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{pList[0].PID}汇总OK暂时不上传"); |
| | | // } |
| | | // 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 && !M141Config.ISupNG) |
| | | { |
| | | if (!M141Config.ISupNG) |
| | | { |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{pList[0].PID}数据NG,开启关闭NG上传MES"); |
| | | } |
| | | else |
| | | { |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"产品{pList[0].PID}数据上传MES异常 返回数据为null"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | try |
| | | { |
| | | var obj = JsonConvert.DeserializeObject<AutoLineMacBarcodeQueueBak>(Msgreceice); |
| | | // } |
| | | // else |
| | | // { |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{pList[0].PID}关闭NG上传"); |
| | | // } |
| | | // } |
| | | // M141Config.mesnum2++; |
| | | // if (Msgreceice == null && !M141Config.ISupNG) |
| | | // { |
| | | // if (!M141Config.ISupNG) |
| | | // { |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{pList[0].PID}数据NG,开启关闭NG上传MES"); |
| | | // } |
| | | // else |
| | | // { |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"产品{pList[0].PID}数据上传MES异常 返回数据为null"); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // try |
| | | // { |
| | | // var obj = JsonConvert.DeserializeObject<AutoLineMacBarcodeQueueBak>(Msgreceice); |
| | | |
| | | if (obj.zstatus == "200") |
| | | { |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{pList[0].PID}数据上传MES成功 {Msgreceice}"); |
| | | // if (obj.zstatus == "200") |
| | | // { |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{pList[0].PID}数据上传MES成功 {Msgreceice}"); |
| | | |
| | | if (M141Config.Isprint && !string.IsNullOrEmpty(obj.tary_label)) |
| | | { |
| | | StartPrint(obj.tary_label, "Honeywell PX240S(300 dpi)"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"产品{pList[0].PID}数据上传MES失败 {Msgreceice}"); |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"产品{pList[0].PID}数据上传MES异常 {Msgreceice}"); |
| | | } |
| | | } |
| | | // if (M141Config.Isprint && !string.IsNullOrEmpty(obj.tary_label)) |
| | | // { |
| | | // StartPrint(obj.tary_label, "Honeywell PX240S(300 dpi)"); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"产品{pList[0].PID}数据上传MES失败 {Msgreceice}"); |
| | | // } |
| | | // } |
| | | // catch |
| | | // { |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"产品{pList[0].PID}数据上传MES异常 {Msgreceice}"); |
| | | // } |
| | | // } |
| | | |
| | | int numplca = Convert.ToInt32(pList[0].SEQUENCE.Split('_')[0]); |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"plc给出的产品序号为{numplca}"); |
| | | // int numplca = Convert.ToInt32(pList[0].SEQUENCE.Split('_')[0]); |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"plc给出的产品序号为{numplca}"); |
| | | |
| | | lock (plcnumlock)//1-29999 |
| | | { |
| | | // lock (plcnumlock)//1-29999 |
| | | // { |
| | | |
| | | if (PlcNumForAll == -1) |
| | | { |
| | | PlcNumForAll = numplca; |
| | | } |
| | | // if (PlcNumForAll == -1) |
| | | // { |
| | | // PlcNumForAll = numplca; |
| | | // } |
| | | |
| | | int differ = numplca - PlcNumForAll; |
| | | // int differ = numplca - PlcNumForAll; |
| | | |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"两个产品中间的差值differ为{differ}"); |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"两个产品中间的差值differ为{differ}"); |
| | | |
| | | if (differ > 1) |
| | | { |
| | | for (int i = PlcNumForAll + 1; i < numplca; i++) |
| | | { |
| | | try |
| | | { |
| | | var plist = mysqlhelper.GetProductList(i + "_1"); |
| | | ProductModel newp = new ProductModel(); |
| | | newp.SEQUENCE = plist[0].SEQUENCE; |
| | | newp.PID = plist[0].PID; |
| | | newp.BasketCode = plist[0].BasketCode; |
| | | newp.Zword = plist[0].Zword; |
| | | newp.Result = "NG"; |
| | | newp.SN = plist[0].SN; |
| | | // if (differ > 1) |
| | | // { |
| | | // for (int i = PlcNumForAll + 1; i < numplca; i++) |
| | | // { |
| | | // try |
| | | // { |
| | | // var plist = mysqlhelper.GetProductList(i + "_1"); |
| | | // ProductModel newp = new ProductModel(); |
| | | // newp.SEQUENCE = plist[0].SEQUENCE; |
| | | // newp.PID = plist[0].PID; |
| | | // newp.BasketCode = plist[0].BasketCode; |
| | | // newp.Zword = plist[0].Zword; |
| | | // newp.Result = "NG"; |
| | | // newp.SN = plist[0].SN; |
| | | |
| | | if (M141Config.IsfinDevice) |
| | | { |
| | | SummaryAllprodata(newp); |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}提前NG加入汇总数据报表统计"); |
| | | } |
| | | 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上传"); |
| | | } |
| | | // if (M141Config.IsfinDevice) |
| | | // { |
| | | // SummaryAllprodata(newp); |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}提前NG加入汇总数据报表统计"); |
| | | // } |
| | | // 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 |
| | | { |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{i + "_1"}上传失败"); |
| | | } |
| | | } |
| | | } |
| | | else if (differ == -29998 && differ == 1 && differ == 0) |
| | | { |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"生产过程中未失去产品"); |
| | | } |
| | | 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 |
| | | { |
| | | var plist = mysqlhelper.GetProductList(i + "_1"); |
| | | ProductModel newp = new ProductModel(); |
| | | newp.SEQUENCE = plist[0].SEQUENCE; |
| | | newp.PID = plist[0].PID; |
| | | newp.Zword = plist[0].Zword; |
| | | newp.BasketCode = plist[0].BasketCode; |
| | | newp.Result = "NG"; |
| | | newp.SN = plist[0].SN; |
| | | if (M141Config.IsfinDevice) |
| | | { |
| | | SummaryAllprodata(newp); |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}提前NG加入汇总数据报表统计"); |
| | | } |
| | | 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 |
| | | // { |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{i + "_1"}上传失败"); |
| | | // } |
| | | // } |
| | | // } |
| | | // else if (differ == -29998 && differ == 1 && differ == 0) |
| | | // { |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"生产过程中未失去产品"); |
| | | // } |
| | | // 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 |
| | | // { |
| | | // var plist = mysqlhelper.GetProductList(i + "_1"); |
| | | // ProductModel newp = new ProductModel(); |
| | | // newp.SEQUENCE = plist[0].SEQUENCE; |
| | | // newp.PID = plist[0].PID; |
| | | // newp.Zword = plist[0].Zword; |
| | | // newp.BasketCode = plist[0].BasketCode; |
| | | // newp.Result = "NG"; |
| | | // newp.SN = plist[0].SN; |
| | | // if (M141Config.IsfinDevice) |
| | | // { |
| | | // SummaryAllprodata(newp); |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}提前NG加入汇总数据报表统计"); |
| | | // } |
| | | // 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 |
| | | { |
| | | // } |
| | | // catch |
| | | // { |
| | | |
| | | } |
| | | } |
| | | for (int i = 1; i < numplca; i++) |
| | | { |
| | | try |
| | | { |
| | | var plist = mysqlhelper.GetProductList(i + "_1"); |
| | | ProductModel newp = new ProductModel(); |
| | | newp.SEQUENCE = plist[0].SEQUENCE; |
| | | newp.PID = plist[0].PID; |
| | | newp.BasketCode = plist[0].BasketCode; |
| | | newp.Zword = plist[0].Zword; |
| | | newp.Result = "NG"; |
| | | newp.SN = plist[0].SN; |
| | | if (M141Config.IsfinDevice) |
| | | { |
| | | SummaryAllprodata(newp); |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}提前NG加入汇总数据报表统计"); |
| | | } |
| | | 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上传"); |
| | | } |
| | | // } |
| | | // } |
| | | // for (int i = 1; i < numplca; i++) |
| | | // { |
| | | // try |
| | | // { |
| | | // var plist = mysqlhelper.GetProductList(i + "_1"); |
| | | // ProductModel newp = new ProductModel(); |
| | | // newp.SEQUENCE = plist[0].SEQUENCE; |
| | | // newp.PID = plist[0].PID; |
| | | // newp.BasketCode = plist[0].BasketCode; |
| | | // newp.Zword = plist[0].Zword; |
| | | // newp.Result = "NG"; |
| | | // newp.SN = plist[0].SN; |
| | | // if (M141Config.IsfinDevice) |
| | | // { |
| | | // SummaryAllprodata(newp); |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"产品{newp.PID}提前NG加入汇总数据报表统计"); |
| | | // } |
| | | // 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; |
| | | } |
| | | // //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; |
| | | // } |
| | | |
| | | } |
| | | else |
| | | { |
| | | LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"已关闭mes连接或者数据上传接口"); |
| | | } |
| | | //} |
| | | //else |
| | | //{ |
| | | // LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"已关闭mes连接或者数据上传接口"); |
| | | //} |
| | | } |
| | | |
| | | //ReplyPlcData(positionName, config.TriggerValue); |