liudl
2025-02-16 c58ba7324d1ca0eb0941ac2762334c19d7d92e3f
Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -1749,8 +1749,22 @@
                    #endregion
                }
                break;
            #region 小车可放信号
            case "150":
                { // 获取工位任务号信息
                    var strMsg = "";
                    var http = new HttpService();
                    var modPosPallet = modDevice.listStation.FirstOrDefault(m => m.Text == "托盘码");
                    var (res, palletVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
                    // 获取托盘任务号
                    var modPosTask = modDevice.listStation.FirstOrDefault(m => m.Text == "任务号");
                    var (res1, val) = plcConn.GetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos);
                }
                break;
            #endregion
            default: break;
        }
@@ -1816,10 +1830,13 @@
                            // 通道号
                            var modPosTask = modDevice.listStation.FirstOrDefault(s => s.Text == "通道号");
                            // 演示模式直接写入1分道
                            var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "1");
                            // 演示模式直接写入分道号
                            Random random = new Random();
                            int ranNumber = random.Next(2) == 0 ? 1 : 5;
                            var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, ranNumber.ToString());
                            if (ret.IsSucceed)
                            {
                                Log.Information(string.Format("分道成功,道号是:" + ranNumber));
                                // 写入流程控制字 2
                                var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
                                if (!retVal.IsSucceed)
@@ -2521,7 +2538,7 @@
                            if (tasklist.Success != -1)
                            {
                                //获取拆垛物料品种(需要增加物料判断,同一个物料号可能会出现不同的码垛规则)
                                var pz = _db.Queryable<WcsMateialPzInfo>().First(m => m.SkuNo == tasklist.data[0].SkuNo);
                                var pz = _db.Queryable<WcsMateialPzInfo>().First(m => m.SkuNo == tasklist.data.SkuNo);
                                //下发拆托规格,拆箱数和托盘上总箱数(不绑定机器人,拆垛任务信息只下发一次)
                                // 给PLC写入任务数据
                                var listResult = new List<Result>();
@@ -2530,10 +2547,10 @@
                                listResult.Add(plcConn.SetPlcDBValue(Standard.PosType, modDevice.DbNumber, Standard.PlcPos, pz.PZNo));
                                //抓箱数
                                var qty = modDevice.listStation.FirstOrDefault(m => m.Text == "拆箱数量");
                                listResult.Add(plcConn.SetPlcDBValue(qty.PosType, modDevice.DbNumber, qty.PlcPos, tasklist.data[0].Qty.ToString()));
                                listResult.Add(plcConn.SetPlcDBValue(qty.PosType, modDevice.DbNumber, qty.PlcPos, tasklist.data.Qty.ToString()));
                                //总箱数
                                var qtycount = modDevice.listStation.FirstOrDefault(m => m.Text == "总箱数");
                                listResult.Add(plcConn.SetPlcDBValue(qtycount.PosType, modDevice.DbNumber, qtycount.PlcPos, tasklist.data[0].QtyCount.ToString()));
                                listResult.Add(plcConn.SetPlcDBValue(qtycount.PosType, modDevice.DbNumber, qtycount.PlcPos, tasklist.data.QtyCount.ToString()));
                                // 是否写入成功