111
cjs
2025-06-10 fb892155304372a62658b48a351f392f227c30bb
111
1个文件已添加
4个文件已修改
302 ■■■■■ 已修改文件
ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/.vs/Hanhe.iWCS.TaizhouGEMTwoProtocol/v17/DocumentLayout.backup.json 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs 203 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProcessHelper.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/.vs/Hanhe.iWCS.TaizhouGEMTwoProtocol/v17/DocumentLayout.backup.json
New file
@@ -0,0 +1,65 @@
{
  "Version": 1,
  "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u6CF0\u5DDE\u683C\u6797\u7F8E\\ams\\Hanhe.iWCS.TaizhouGEMTwoProtocol\\",
  "Documents": [],
  "DocumentGroupContainers": [
    {
      "Orientation": 0,
      "VerticalTabListWidth": 256,
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": -1,
          "Children": [
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
            }
          ]
        },
        {
          "DockedWidth": 22,
          "SelectedChildIndex": -1,
          "Children": [
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:1:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
            }
          ]
        }
      ]
    }
  ]
}
ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs
@@ -621,6 +621,10 @@
            /// </summary>
            public string oneTrayWeight { get; set; } = "0";
            /// <summary>
            /// 设备通道数据2——复称毛重:32位整数
            /// </summary>
            public string oneTrayWeightFC { get; set; } = "0,0";
            /// <summary>
            /// 设备通道数据2——托盘类型:32位整数
            /// </summary>
            public string trayType { get; set; } = "0";
ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs
@@ -569,8 +569,7 @@
                        //    num[b] = Convert.ToInt32(Convert.ToString(int.Parse(taskInfo.Ext2), 2).PadLeft(32, '0').ToString().Substring(k, 16), 2);
                        //}
                        CMMLog.Debug($"{num}");
                        Console.WriteLine(num);
                        CMMLog.Debug($"{JsonConvert.SerializeObject(num)}");
                        var wirteall = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
                        {
                            addr = plc.writeAddr + 5,
@@ -737,7 +736,9 @@
                {
                    if(plc.deviceType == "22")
                    {
                        var newWeight = result.result[19] + "," + result.result[20];
                        MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(Query.EQ("trayCode", model.ext2), Update.Set("secondNg", result.result[2]), UpdateFlags.None);
                        MongoDBSingleton.Instance.Update<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", model.ext2), Update.Set("secondNg", result.result[2]).Set("oneTrayWeightFC",newWeight), UpdateFlags.None);
                    }
                    else
                    {
@@ -1159,32 +1160,6 @@
                else if (readres.result[0] == 2)
                {
                    TSHelper.GoToAGV(taskNo, 10, 3);
                    //var task = MongoDBSingleton.Instance.FindOne<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", taskNo), "TN_I_TASK_MST");
                    //var machine = MongoDBSingleton.Instance.FindOne<WMSInfo>(Query.EQ("trayCode", task.CN_S_BATCH_NO), "WMSInfo");
                    //if (machine != null)
                    //{
                    //    if (Settings.cacheStackWrite == "0")
                    //    {
                    //        int[] num = DiePan(machine);
                    //
                    //        var wirteall01 = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
                    //        {
                    //            addr = plc.writeAddr + 10,
                    //            host = plc.ip,
                    //            port = plc.port,
                    //            data = num
                    //        });
                    //    }
                    //    else WriteCacheStackingData(plc, task, machine);
                    //
                    //    var wirte = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
                    //    {
                    //        addr = plc.writeAddr + 1,
                    //        host = plc.ip,
                    //        port = plc.port,
                    //        data = 2
                    //    });
                    //}
                }
            }
            else CMMLog.Debug($"缓存入叠盘机,1013,plc=null!");
@@ -1192,7 +1167,7 @@
        public static void WriteCacheStackingData(Settings.PlcInfo plc, TN_I_TASK_MST task, WMSInfo machine)
        {
            if (plc.deviceType == "22")
            if (plc.deviceType == "23")
            {
                //四钴车间
                var machineTwo = MongoDBSingleton.Instance.FindOne<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", task.CN_S_BATCH_NO), "MachineInfoTwoTetracobalt");
@@ -1204,7 +1179,7 @@
                    CMMLog.Info($"3楼缓存架入叠托:写入数据:{JsonConvert.SerializeObject(num)},IPort:{plc.ip},{plc.port}");
                    var wirteall01 = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
                    {
                        addr = plc.writeAddr + 10,
                        addr = plc.writeAddr + 5,
                        host = plc.ip,
                        port = plc.port,
                        data = num
@@ -1245,12 +1220,12 @@
        {
            var ErpItemInfo = MongoDBSingleton.Instance.FindOne<ERPItemTable>(Query.EQ("item_code", machineInfoTwo.materialCode), "ERPItemTable");
            CMMLog.Info($"3楼缓存架入叠托:收到信号5,查询MachineInfoTwoTetracobalt表信息:{JsonConvert.SerializeObject(ErpItemInfo)}。");
            CMMLog.Info($"3楼缓存架入叠托:收到信号4,查询ERPItemTable表信息:{JsonConvert.SerializeObject(ErpItemInfo)}。");
            //偏移量 +11 通道范围: 40311 ~ 40390
            CMMLog.Info($"叠盘机数据处理.");
            //10~19通道
            int[] num = new int[105];//总长度:80
            int[] num = new int[105];//总长度:105
            #region   0~23 => 6~29
            int a = 0;//员工编号处理
@@ -1262,8 +1237,10 @@
            a = 0;//托盘码处理
            for (int b = 5; b <= 7; b++)
            {
                num[b] = int.Parse(AsciiToTen(machine.trayCode.Substring(a, 2)));
                a = a + 2;
                //num[b] = int.Parse(AsciiToTen(machine.trayCode.Substring(a, 2)));
                //a = a + 2;
                num[b] = 0;
            }
            num[8] = int.Parse(AsciiToTen(machine.location));//包装机号
            for (int b = 9; b <= 10; b++)
@@ -1281,7 +1258,12 @@
                int k = b % 2 == 0 ? 0 : 16;
                num[b] = Convert.ToInt32(Convert.ToString(int.Parse(machine.oneTrayWeight), 2).PadLeft(32, '0').ToString().Substring(k, 16), 2);
            }
            for (int b = 15; b <= 16; b++) num[b] = 0;// 叠包后实际重量 && 复称结果 默认:0
            for (int b = 15; b <= 16; b++)
            {
                var arrTwo = machineInfoTwo.oneTrayWeightFC.Split(',').ToList();
                num[b] = int.Parse(arrTwo[b - 15]);//复称重量
            }
            //for (int b = 15; b <= 16; b++) num[b] = 0;// 叠包后实际重量 && 复称结果 默认:0
            num[17] = int.Parse(machineInfoTwo.trayType);
            num[18] = machine.addState;//是否需要叠包
@@ -1388,69 +1370,96 @@
            var plc = Settings.GetPlcInfo().Where(a => a.deviceType == ip).FirstOrDefault();
            if(plc != null)
            {
                OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
                if(plc.deviceType == "23")
                {
                    addr = plc.writeAddr + 1,
                    host = plc.ip,
                    data = 2,//4
                    port = plc.port
                });
                Thread.Sleep(100);
                var readres = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
                {
                    dataNum = 2,
                    addr = plc.readAddr + 1,
                    host = plc.ip,
                    port = plc.port
                });
                if (readres != null)
                {
                    var taskInfo = MongoDBSingleton.Instance.FindOne<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", taskNo), "TN_I_TASK_MST");
                    if (readres.result[0] == 3 && readres.result[1] == 1)
                    var wirte = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
                    {
                        CMMLog.Debug($"3楼缓存架入叠托OK:TaskNo:{taskInfo.CN_S_TASK_NO},叠包OK写入值3。");
                        //读码信息比对结果:OK           读到通道2参数为1时,小车将托盘放置在叠盘机上(改参数10为7)
                        var wirte = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
                        addr = plc.writeAddr + 1,
                        host = plc.ip,
                        data = 3,
                        port = plc.port
                    });
                    if (wirte.errCode == 0)
                    {
                        var taskInfo = MongoDBSingleton.Instance.FindOne<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", taskNo), "TN_I_TASK_MST");
                        MongoDBSingleton.Instance.Remove<WMSInfo>(Query.EQ("trayCode", taskInfo.CN_S_BATCH_NO), RemoveFlags.Single);
                        wirte = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
                        {
                            addr = plc.writeAddr + 1,
                            host = plc.ip,
                            data = 3,//4
                            data = 0,
                            port = plc.port
                        });
                        if (wirte.errCode == 0)
                        TSHelper.GoToAGV(taskNo, 10, 7);
                    }
                }
                else
                {
                    OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
                    {
                        addr = plc.writeAddr + 1,
                        host = plc.ip,
                        data = 2,
                        port = plc.port
                    });
                    var readres = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
                    {
                        dataNum = 2,
                        addr = plc.readAddr + 1,
                        host = plc.ip,
                        port = plc.port
                    });
                    if (readres != null)
                    {
                        var taskInfo = MongoDBSingleton.Instance.FindOne<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", taskNo), "TN_I_TASK_MST");
                        if (readres.result[0] == 3 && readres.result[1] == 1)
                        {
                            //并删除WMSInfo中间表中对应托盘号的数据(也可在小车离开叠盘机之后删除,暂定通道2参数1)
                            CMMLog.Debug($"读码信息比对结果:OK ,并删除WMSInfo中间表中对应托盘号的数据");
                            MongoDBSingleton.Instance.Remove<WMSInfo>(Query.EQ("trayCode", taskInfo.CN_S_BATCH_NO), RemoveFlags.Single);
                            CMMLog.Debug($"3楼缓存架入叠托OK:TaskNo:{taskInfo.CN_S_TASK_NO},叠包OK写入值4。");
                            if (CacheStackingMouth8(plc))
                            CMMLog.Debug($"3楼缓存架入叠托OK:TaskNo:{taskInfo.CN_S_TASK_NO},叠包OK写入值3。");
                            //读码信息比对结果:OK           读到通道2参数为1时,小车将托盘放置在叠盘机上(改参数10为7)
                            var wirte = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
                            {
                                CMMLog.Debug($"3楼缓存架入叠托OK:TaskNo:{taskInfo.CN_S_TASK_NO},叠包OK写入值成功,更改AGV参数10为7,让小车离开。");
                                TSHelper.GoToAGV(taskNo, 10, 7);
                                addr = plc.writeAddr + 1,
                                host = plc.ip,
                                data = 3,
                                port = plc.port
                            });
                            if (wirte.errCode == 0)
                            {
                                //并删除WMSInfo中间表中对应托盘号的数据(也可在小车离开叠盘机之后删除,暂定通道2参数1)
                                CMMLog.Debug($"读码信息比对结果:OK ,并删除WMSInfo中间表中对应托盘号的数据");
                                MongoDBSingleton.Instance.Remove<WMSInfo>(Query.EQ("trayCode", taskInfo.CN_S_BATCH_NO), RemoveFlags.Single);
                                CMMLog.Debug($"3楼缓存架入叠托OK:TaskNo:{taskInfo.CN_S_TASK_NO},叠包OK写入值4。");
                                if (CacheStackingMouth8(plc))
                                {
                                    CMMLog.Debug($"3楼缓存架入叠托OK:TaskNo:{taskInfo.CN_S_TASK_NO},叠包OK写入值成功,更改AGV参数10为7,让小车离开。");
                                    TSHelper.GoToAGV(taskNo, 10, 7);
                                }
                            }
                        }
                    }
                    else if (readres.result[0] == 3 && readres.result[1] == 2)
                    {
                        CMMLog.Debug($"读码信息比对结果:条码与传送的数据不一致");
                        //二期--调用 WMS 改道接口 获取 目标点位,并 更改 AGV 站点
                        string ChangeBit = WMSHelper.WmsUpdateWay(taskInfo.CN_S_SOURCE_NO, plc.Extend);
                        if (!string.IsNullOrEmpty(ChangeBit))
                        else if (readres.result[0] == 3 && readres.result[1] == 2)
                        {
                            int[] parms = { StockInstance.Instance.GetAGVCodeForBitCode(taskInfo.CN_S_END_BIT), StockInstance.Instance.GetAGVCodeForBitCode(ChangeBit) };
                            TSHelper.ChangeParam(taskNo, 1, parms);
                            TSHelper.GoToAGV(taskNo, 3, 1);// 泰州格林美更改起点层数为1-荆门也需要更改
                            CMMLog.Debug($"读码信息比对结果:条码与传送的数据不一致");
                            //二期--调用 WMS 改道接口 获取 目标点位,并 更改 AGV 站点
                            string ChangeBit = WMSHelper.WmsUpdateWay(taskInfo.CN_S_SOURCE_NO, plc.Extend);
                            if (!string.IsNullOrEmpty(ChangeBit))
                            {
                                int[] parms = { StockInstance.Instance.GetAGVCodeForBitCode(taskInfo.CN_S_END_BIT), StockInstance.Instance.GetAGVCodeForBitCode(ChangeBit) };
                                TSHelper.ChangeParam(taskNo, 1, parms);
                                TSHelper.GoToAGV(taskNo, 3, 1);// 泰州格林美更改起点层数为1-荆门也需要更改
                            //TSHelper.ChangeParam(taskNo, 1, StockInstance.Instance.GetAGVCodeForBitCode(taskInfo.CN_S_END_BIT));
                            //TSHelper.ChangeParam(taskNo, 2, StockInstance.Instance.GetAGVCodeForBitCode(ChangeBit));
                            TSHelper.GoToAGV(taskNo, 10, 8);
                            MongoDBSingleton.Instance.Update<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", taskNo), Update.Set("CN_S_END_BIT", ChangeBit).Set("CN_S_START_BIT", taskInfo.CN_S_END_BIT), "TN_I_TASK_MST", UpdateFlags.None);
                                //TSHelper.ChangeParam(taskNo, 1, StockInstance.Instance.GetAGVCodeForBitCode(taskInfo.CN_S_END_BIT));
                                //TSHelper.ChangeParam(taskNo, 2, StockInstance.Instance.GetAGVCodeForBitCode(ChangeBit));
                                TSHelper.GoToAGV(taskNo, 10, 8);
                                MongoDBSingleton.Instance.Update<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", taskNo), Update.Set("CN_S_END_BIT", ChangeBit).Set("CN_S_START_BIT", taskInfo.CN_S_END_BIT), "TN_I_TASK_MST", UpdateFlags.None);
                            }
                            else CMMLog.Debug($"调用WMS改道接口,未获取到可用点位。");
                            Console.WriteLine($"读码信息比对结果:条码与传送的数据不一致");
                        }
                        else CMMLog.Debug($"调用WMS改道接口,未获取到可用点位。");
                        Console.WriteLine($"读码信息比对结果:条码与传送的数据不一致");
                        //PLCControl.CacheStackingMouth6(plc);
                    }
                    //PLCControl.CacheStackingMouth6(plc);
                }
            }
        }
@@ -2742,7 +2751,7 @@
        /// <param name="info"></param>
        /// <param name="result"></param>
        /// <param name="noPack">true : MES交互方式  false : 无MES交互方式</param>
        private static void GetMachineDataTetracobalt(int[] result ,bool noPack = true)
        private static void GetMachineDataTetracobalt(int[] result, ref string timeStamp, bool noPack = true)
        {
            CMMLog.Info($"数据处理流程:进入数据处理流程!");
            
@@ -2792,7 +2801,7 @@
                    info.addState = Convert.ToInt32(Completion(result[18]), 2);
                    if (info.addState == 0) CMMLog.Error($"数据处理流程:获取MODBUS信息异常:是否叠包值为0.");
                    info.packageCode = Convert.ToInt32(Completion(result[19]), 2).ToString();
                    info.productTime = Convert.ToInt32(Completion(result[21]) + Completion(result[22]), 2).ToString();
                    info.productTime = Convert.ToInt32(Completion(result[20]) + Completion(result[21]), 2).ToString();
                    //info.addWeight = Convert.ToInt32(Completion(result[10]) + Completion(result[11]), 2).ToString();
                    //info.packNg = 1;//不需要此参数 result[12]
@@ -2847,18 +2856,22 @@
                        //注意:这里赋值中间表参数请对照信息交互表具体通道值对应
                        UpdateBuilder update = Update.Set("palletLayers", info.secondNg.ToString()).Set("overlappingLayers", info.addState.ToString()).Set("bagNo", info.packageCode).
                            Set("lotNo", info.lotNo).Set("productType", info.productType).Set("materialCode", info.materialCode).Set("materialName", info.materialName).Set("measurementUnit", info.measurementUnit);
                        MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(Query.EQ("machineNo", location), update, "MachiMachineInfoTetracobaltneInfo", UpdateFlags.None);
                        MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(Query.EQ("machineNo", location), update, "MachineInfoTetracobalt", UpdateFlags.None);
                        MongoDBSingleton.Instance.Update<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", trayCode), update, "MachineInfoTwoTetracobalt", UpdateFlags.None);
                    }
                    //在中间表中找到刚刚插入的MES数据(目前还没有读取并写入设备数据)
                    timeStamp = ProcessHelper.GetTimeStamp(31, 1, 1);
                    trayCode = "VW" + timeStamp;
                    var query1 = Query.And(Query.EQ("machineNo", location), Query.EQ("trayCode", "0"));
                    UpdateBuilder updateBuider = Update.Set("empCode", info.empCode).Set("location", info.location).
                        Set("trayCode", info.trayCode).Set("productWeight", info.productWeight).
                        Set("trayCode", trayCode).Set("productWeight", info.productWeight).
                        Set("trayCodeWeight", info.trayCodeWeight).Set("oneTrayWeight", info.oneTrayWeight).Set("trayType", info.trayType).Set("addState", info.addState).
                        Set("addWeight", info.addWeight).Set("packNg", info.packNg).Set("secondNg", info.secondNg).Set("productTime", info.productTime).
                        Set("addWeight", info.addWeight).Set("packNg", info.packNg).Set("secondNg", info.secondNg).Set("productTime", info.productTime).Set("packageCode", info.packageCode).
                        Set("jsonData", json).Set("modify", DateTime.Now);
                    MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(query1, updateBuider, "MachineInfoTetracobalt", UpdateFlags.None);
                    MongoDBSingleton.Instance.Update<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", trayCode), updateBuider, "MachineInfoTwoTetracobalt", UpdateFlags.None);
                    MongoDBSingleton.Instance.Update<MachineInfoTwoTetracobalt>(query1, updateBuider, "MachineInfoTwoTetracobalt", UpdateFlags.None);
                    CMMLog.Info($"数据处理流程:更新MachineInfoTetracobalt中间表刚刚插入的MES数据!设备号为:{location},托盘号为:{trayCode}");
                }
                else
@@ -3705,7 +3718,8 @@
                                                if (trayCode.errCode == 0 && trayCode.result.Length == 105)
                                                {
                                                    //获取托盘码等信息  读取通道 11、12、13的数据作为托盘码   读取其它通道 重量 叠包等信息 所有数据存入MachineInfo表
                                                    GetMachineDataTetracobalt(trayCode.result, false);
                                                    string timeStamp = "";
                                                    GetMachineDataTetracobalt(trayCode.result, ref timeStamp, false);
                                                    var tray = MongoDBSingleton.Instance.FindOne<MachineInfoTetracobalt>(Query.EQ("machineNo", pmInfo.location), "MachineInfoTetracobalt");
                                                    if (tray != null)
                                                    {
@@ -3723,9 +3737,10 @@
                                                        if (IsContLaterCode)
                                                        {
                                                            string timeStamp = ProcessHelper.GetTimeStamp(31, 1, 1);
                                                            tray.trayCode = "VW" + timeStamp;
                                                            MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(Query.EQ("_id", tray._id), Update.Set("trayCode", tray.trayCode), UpdateFlags.None);
                                                            //string timeStamp = ProcessHelper.GetTimeStamp(31, 1, 1);
                                                            //tray.trayCode = "VW" + timeStamp;
                                                            //MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(Query.EQ("_id", tray._id), Update.Set("trayCode", tray.trayCode), UpdateFlags.None);
                                                            //MongoDBSingleton.Instance.Update<MachineInfoTwoTetracobalt>(Query.EQ("_id", tray._id), Update.Set("trayCode", tray.trayCode), UpdateFlags.None);
                                                            CMMLog.Debug($"(四钴车间)包装下线流程-{pmInfo.location}:托盘码:{tray.trayCode}");
                                                            if (tray.addState == 0)
                                                            {
@@ -4066,7 +4081,7 @@
            {
                if (action)
                {
                    int[] num = new int[4] { 2, 0, 1, 1 };
                    int[] num = new int[4] { 2, 0, 0, 1 };
                    var writeRes = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
                    {
                        host = plc.ip,
@@ -4086,7 +4101,7 @@
                    CMMLog.Debug($"查询设备{plc.location}通道{plc.readAddr}里面数据为{result.result[0]}、{result.result[1]}、{result.result[3]}.");
                    if (result != null && result.errCode == 0)
                    {
                        if (result.result[0] == 2 && result.result[1] == 2 && result.result[2] == 2)
                        if (result.result[0] == 2 && result.result[1] == 2 && result.result[3] == 2)
                        {
                            //推送小车进入
                            TSHelper.GoToAGV(taskNo, 10, 3);
ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProcessHelper.cs
@@ -406,6 +406,7 @@
                    result = true;
                }
            }
            var bussTypeInfo = Settings.GetHouWeiCodeo().Where(a => a.location == mst.Ext1).FirstOrDefault();
            if (bussTypeInfo != null)
            {
@@ -593,7 +594,6 @@
            //入库输送线上有两个输送口
            //判断输送线模式和中间表模式都是入库模式
            try
            {
                string endMachLoc = "";
@@ -612,7 +612,7 @@
                    });
                    if (modeResult != null && modeResult.errCode == 0)
                    {
                        CMMLog.Debug($"InWareTask:读取滚筒机{plc.ip}通道号为:{plc.readAddr}的值为:{modeResult.result[0]}");
                        CMMLog.Debug($"InWareTask:读取滚筒机{plc.ip}通道号为:{plc.readAddr}的值为:{JsonConvert.SerializeObject(modeResult.result)}");
                        if (modeResult.result[0] == 1)
                        {
                            action = false;
ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs
@@ -576,11 +576,11 @@
                        {
                            int timeInt = int.Parse(trayCode);
                            var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoCom>(Query.EQ("timeStamp", timeInt), "TimeCuoInfoCom");
                            CMMLog.Info($"WMSIn-{startBit}:{ItemCode}:查询条件:timeStamp={timeInt},读出 TimeCuoInfoCom 表数据为:{JsonConvert.SerializeObject(time)}");
                            CMMLog.Info($"WMSInTwo-{startBit}:{ItemCode}:查询条件:timeStamp={timeInt},读出 TimeCuoInfoCom 表数据为:{JsonConvert.SerializeObject(time)}");
                            if (ItemCode == "time" && time != null)
                            {
                                int TimeStamp = string.IsNullOrEmpty(timeStamp) ? time.timeStamp : int.Parse(timeStamp);
                                CMMLog.Info($"WMSIn-{startBit}:time获取时间戳数据为:{TimeStamp}!");
                                CMMLog.Info($"WMSInTwo-{startBit}:time获取时间戳数据为:{TimeStamp}!");
                                model.data.Add(new ItemData()
                                {
                                    //1楼拆盘机调WMS获取入库终点,传输时间戳数据(暂定)
@@ -612,7 +612,7 @@
                                // 非ERP变更流程可以直接删除 TimeCuoInfoCom 表
                                if (ERPService.ERPSwitch01 == "0")
                                {
                                    CMMLog.Info($"WMSIn-{startBit}:查询条件:timeStamp={timeInt},非ERP变更流程直接删除 TimeCuoInfoCom 表!");
                                    CMMLog.Info($"WMSInTwo-{startBit}:查询条件:timeStamp={timeInt},非ERP变更流程直接删除 TimeCuoInfoCom 表!");
                                    MongoDBSingleton.Instance.Remove<TimeCuoInfoCom>(Query.EQ("timeStamp", timeInt), RemoveFlags.Single);
                                }
                            }
@@ -645,10 +645,10 @@
                        else
                        {
                            var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.EQ("timeStamp", timeStamp), "TimeCuoInfoCom");
                            CMMLog.Info($"WMSIn-{startBit}:{ItemCode}:查询条件:timeStamp={timeStamp},读出 TimeCuoInfoComTwo 表数据为:{JsonConvert.SerializeObject(time)}");
                            CMMLog.Info($"WMSInTwo-{startBit}:{ItemCode}:查询条件:timeStamp={timeStamp},读出 TimeCuoInfoComTwo 表数据为:{JsonConvert.SerializeObject(time)}");
                            if (ItemCode == "time" && time != null)
                            {
                                CMMLog.Info($"WMSIn-{startBit}:time获取时间戳数据为:{time.TimeCuo}!");
                                CMMLog.Info($"WMSInTwo-{startBit}:time获取时间戳数据为:{time.TimeCuo}!");
                                model.data.Add(new ItemData()
                                {
                                    //1楼拆盘机调WMS获取入库终点,传输时间戳数据(暂定)
@@ -724,14 +724,14 @@
                string reqStr = "物料名=" + ItemCode + ";数量";
                string feedback = "";
                CMMLog.Info($"WMSIn-{startBit}:【调用wms获取入库货位】:发送数据:{JsonConvert.SerializeObject(msgData)},物料条件:ItemCode:{ItemCode},trayCode:{trayCode}");
                CMMLog.Info($"WMSInTwo-{startBit}:【调用wms获取入库货位】:发送数据:{JsonConvert.SerializeObject(msgData)},物料条件:ItemCode:{ItemCode},trayCode:{trayCode}");
                var url = hao.WebUrl + "GlmInSendTask";
                try
                {
                    //hao.WebUrl = "http://192.168.1.199:9001/api/";
                    feedback = helper.WebPost(url, msgData).Replace(@"\", "").Trim();
                    Console.WriteLine(feedback);
                    CMMLog.Info($"WMSIn-{startBit}:【调用wms获取入库货位】:接收数据:" + feedback);
                    CMMLog.Info($"WMSInTwo-{startBit}:【调用wms获取入库货位】:接收数据:" + feedback);
                    if (!string.IsNullOrEmpty(feedback))
                    {
                        //var wmsResponse = JsonConvert.DeserializeObject<WMSResponseModel>(feedback.Substring(1, feedback.Length - 2));
@@ -739,28 +739,28 @@
                        //var res = feedback.Replace("{", "").Replace("}", "").Replace(":", "=").Replace(",", ";").Replace('"', ' ');
                        if (wmsResponse.Success == true)
                        {
                            msg = $"WMSIn-{startBit}:【调用wms获取入库货位】成功!返回结果=" + wmsResponse.Success + ";调用WebUrl=" + url + ";输入参数=" + msgData;
                            msg = $"WMSInTwo-{startBit}:【调用wms获取入库货位】成功!返回结果=" + wmsResponse.Success + ";调用WebUrl=" + url + ";输入参数=" + msgData;
                        }
                        else
                        {
                            string errMsg = wmsResponse.Code + "-" + wmsResponse.Msg;
                            msg = $"WMSIn-{startBit}:【调用wms获取入库货位】失败!错误原因=" + errMsg + ";调用WebUrl=" + url + ";输入参数=" + msgData;
                            msg = $"WMSInTwo-{startBit}:【调用wms获取入库货位】失败!错误原因=" + errMsg + ";调用WebUrl=" + url + ";输入参数=" + msgData;
                        }
                        result = wmsResponse.Success;
                    }
                    else
                    {
                        string errMsg = "参数反馈空值";
                        msg = $"WMSIn-{startBit}:【调用wms获取入库货位】失败!错误原因=" + errMsg + ";调用WebUrl=" + url + ";输入参数=" + msgData;
                        msg = $"WMSInTwo-{startBit}:【调用wms获取入库货位】失败!错误原因=" + errMsg + ";调用WebUrl=" + url + ";输入参数=" + msgData;
                    }
                }
                catch (Exception e)
                {
                    CMMLog.Error(string.Format($"WMSIn-{startBit}:【调用wms获取入库货位失败】异常{0}", e.Message), e);
                    msg = $"WMSIn-{startBit}:【调用wms获取入库货位】失败!解析返回值出错=" + feedback + ";调用WebUrl=" + url + ";输入参数=" + msgData;
                    CMMLog.Error(string.Format($"WMSInTwo-{startBit}:【调用wms获取入库货位失败】异常{0}", e.Message), e);
                    msg = $"WMSInTwo-{startBit}:【调用wms获取入库货位】失败!解析返回值出错=" + feedback + ";调用WebUrl=" + url + ";输入参数=" + msgData;
                }
            }
            else msg = string.Format($"WMSIn-{startBit}:调用wms失败,ams工作中心没有设置!");
            else msg = string.Format($"WMSInTwo-{startBit}:调用wms失败,ams工作中心没有设置!");
            CMMLog.Info(msg);
            Console.WriteLine(msg);
            return result;