| | |
| | | if (req.success) |
| | | { |
| | | string weight = (double.Parse(tray.oneTrayWeight1) / 100).ToString(); |
| | | //CMMLog.Debug("北区测试数据:包装下线重量:"+(decimal.Parse(tray.oneTrayWeight1) / 100).ToString("F2")); |
| | | //int weight = int.Parse(tray.oneTrayWeight) / 100; |
| | | ERPService.packageInfo(tray.machineNo, tray.trayCode, tray.lotNo, weight,1); |
| | | } |
| | |
| | | { |
| | | CMMLog.Info($"SecondWeightActionOne: machine:{query.machineNo},trayCode:{query.trayCode},weight:{query.weight}"); |
| | | //读取复称平台的重量 |
| | | //Convert.ToInt32(Completion(result[8]) + Completion(result[9]), 2).ToString() |
| | | //(decimal.Parse(tray.oneTrayWeight1) / 100).ToString("F2"); |
| | | //string weight = (decimal.Parse(Convert.ToInt32(Completion(result.result[4]) + Completion(result.result[5]), 2).ToString()) / 100).ToString("F2"); |
| | | string weight = ((result.result[3] * 65536 + result.result[4]) / 100).ToString(); |
| | | //string weight = ((result.result[3] * 65536 + result.result[4]) / 100).ToString(); |
| | | string weight = ((double)Convert.ToInt32(Completion(result.result[3]) + Completion(result.result[4]), 2) / 100).ToString(); |
| | | //CMMLog.Debug("北区测试数据:复称重量:" + ((double)Convert.ToInt32(Completion(result.result[3]) + Completion(result.result[4]), 2) / 100).ToString()); |
| | | |
| | | CMMLog.Info($"SecondWeightActionOne: 读取设备{plc.location},ip:{plc.ip}通道{plc.readAddr + 4}里面数据为{result.result[3]}."); |
| | | CMMLog.Info($"SecondWeightActionOne: 读取设备{plc.location},ip:{plc.ip}通道{plc.readAddr + 5}里面数据为{result.result[4]}."); |
| | | //double x = (double)Convert.ToInt32(Completion(result[8]) + Completion(result[9]), 2) / 100; |
| | | //CMMLog.Info($"SecondWeightActionOne: 读取设备{plc.location},ip:{plc.ip}通道{plc.readAddr + 4}里面数据为{result.result[3]}."); |
| | | CMMLog.Info($"SecondWeightActionOne: weight:{weight}"); |
| | | |
| | | //重量差值 |
| | |
| | | //读取通道1里面参数是否为1,判断叠盘机是否需要上料 |
| | | var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel |
| | | { |
| | | dataNum = 1, |
| | | dataNum = 3, |
| | | addr = pmInfo.readAddr + 1, |
| | | host = pmInfo.ip, |
| | | port = pmInfo.port |
| | |
| | | //参数1表示叠托点申请入料 |
| | | if (result.result[0] == 1) |
| | | { |
| | | CMMLog.Debug($"获取碟盘机信号:{JsonConvert.SerializeObject(result)}"); |
| | | var tasks = MongoDBSingleton.Instance.Find<TN_I_TASK_MST>(Query.EQ("CN_S_END_BIT", pmInfo.location), "TN_I_TASK_MST"); |
| | | //判断一下当前叠托点是否有任务占用 |
| | | if (ProcessHelper.CheckEndFree(pmInfo.location) && tasks.Count == 0) |
| | | { |
| | | //可以生成任务,调WMS接口获取任务信息 |
| | | bool req = WMSHelper.WMSOut(pmInfo.location, ""); |
| | | if (req) CMMLog.Debug($"调用WMS获取碟盘出库生成任务成功!");//现在任务由WMS自己下发,AMS做拦截处理(查询ext1里面对应的任务类型,并更改任务类型) |
| | | else CMMLog.Debug($"调用WMS获取碟盘出库生成任务失败!"); |
| | | string trayType = result.result[2] == 1 ? "田字托" : result.result[2] == 2 ? "川字托" : ""; |
| | | if (result.result[2] >= 1 && result.result[2] <= 2) |
| | | { |
| | | //可以生成任务,调WMS接口获取任务信息 |
| | | bool req = WMSHelper.WMSOut(pmInfo.location, "",trayType); |
| | | if (req) CMMLog.Debug($"调用WMS获取碟盘出库生成任务成功!");//现在任务由WMS自己下发,AMS做拦截处理(查询ext1里面对应的任务类型,并更改任务类型) |
| | | else CMMLog.Debug($"调用WMS获取碟盘出库生成任务失败!"); |
| | | } |
| | | |
| | | } |
| | | else CMMLog.Debug($"检查当前叠托点是否有任务占用,或者MST主表中有缓存架入叠盘机的任务!"); |
| | | } |
| | |
| | | host = plc.ip, |
| | | port = plc.port |
| | | }); |
| | | CMMLog.Debug($"缓存架入叠托,读取叠包口信号:{JsonConvert.SerializeObject(readres)}"); |
| | | if (readres != null) |
| | | { |
| | | var taskInfo = MongoDBSingleton.Instance.FindOne<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", taskNo), "TN_I_TASK_MST"); |
| | |
| | | //RegisterReadInPut 读取输入寄存器还是输出寄存器待定,读取通道1的数据 |
| | | var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel |
| | | { |
| | | dataNum = 1, |
| | | dataNum = 2, |
| | | addr = plc.readAddr+1, |
| | | host = plc.ip, |
| | | port = plc.port |
| | |
| | | { |
| | | string wmstaskno = ""; |
| | | string traycode = ""; |
| | | bool req = WMSHelper.WMSEmptyOut(plc.location, "", ref wmstaskno, ref traycode); |
| | | string trayType = ""; |
| | | if (result.result[1] == 1) trayType = "田字托"; |
| | | else trayType = "川字托"; |
| | | bool req = WMSHelper.WMSEmptyOut(plc.location, "",trayType, ref wmstaskno, ref traycode); |
| | | if (req) CMMLog.Debug($"调用WMS获取三楼拆盘机生成任务成功!"); |
| | | else CMMLog.Debug($"调用WMS获取三楼拆盘机生成任务失败!"); |
| | | } |
| | |
| | | info.productWeight = Convert.ToInt32(Completion(result[4]) + Completion(result[5]), 2).ToString(); |
| | | info.oneTrayWeight1 = Convert.ToInt32(Completion(result[6]) + Completion(result[7]), 2).ToString(); |
| | | info.oneTrayWeight = Convert.ToInt32(Completion(result[8]) + Completion(result[9]), 2).ToString(); |
| | | //info.oneTrayWeight = Convert.ToInt32(Completion(result[10]) + Completion(result[11]), 2).ToString(); |
| | | info.trayType = Convert.ToInt32(Completion(result[10]), 2).ToString(); |
| | | info.addState = Convert.ToInt32(Completion(result[11]), 2); |
| | | info.packageCode = Convert.ToInt32(Completion(result[12]), 2).ToString(); |
| | | |
| | |
| | | |
| | | |
| | | CMMLog.Info($"数据处理流程:获取MODBUS转换后的数据信息:location:{info.location},trayCode:{info.trayCode},productWeight:{info.productWeight}" + |
| | | $",oneTrayWeight1:{info.oneTrayWeight1},oneTrayWeight:{info.oneTrayWeight} "+ |
| | | $",oneTrayWeight1:{info.oneTrayWeight1},oneTrayWeight:{info.oneTrayWeight},trayType:{info.trayType} "+ |
| | | $"addState:{info.addState},packageCode:{info.packageCode}"); |
| | | |
| | | #endregion |
| | |
| | | var query1 = Query.And(Query.EQ("machineNo", location), Query.EQ("trayCode", "0")); |
| | | UpdateBuilder updateBuider = Update.Set("location", info.location). |
| | | Set("trayCode", info.trayCode).Set("productWeight", info.productWeight). |
| | | Set("oneTrayWeight", info.oneTrayWeight).Set("oneTrayWeight1", info.oneTrayWeight1). |
| | | Set("oneTrayWeight", info.oneTrayWeight).Set("oneTrayWeight1", info.oneTrayWeight1).Set("trayType", info.trayType). |
| | | Set("addWeight", info.addWeight).Set("packNg", info.packNg).Set("secondNg", info.secondNg).Set("addState", info.addState). |
| | | Set("packageCode", info.packageCode).Set("jsonData", json).Set("modify", DateTime.Now); |
| | | MongoDBSingleton.Instance.Update<MachineInfo>(query1, updateBuider, "MachineInfo", UpdateFlags.None); |
| | |
| | | { |
| | | UpdateBuilder updateBuider = Update.Set("location", info.location). |
| | | Set("trayCode", info.trayCode).Set("productWeight", info.productWeight). |
| | | Set("oneTrayWeight", info.oneTrayWeight).Set("oneTrayWeight1", info.oneTrayWeight1). |
| | | Set("oneTrayWeight", info.oneTrayWeight).Set("oneTrayWeight1", info.oneTrayWeight1).Set("trayType", info.trayType). |
| | | Set("addWeight", info.addWeight).Set("packNg", info.packNg).Set("secondNg", info.secondNg).Set("addState", info.addState). |
| | | Set("packageCode", info.packageCode).Set("jsonData", json).Set("modify", DateTime.Now); |
| | | MongoDBSingleton.Instance.Update<MachineInfo>(query2, updateBuider, "MachineInfo", UpdateFlags.None); |
| | |
| | | num[b] = Convert.ToInt32(Convert.ToString(int.Parse(machine.oneTrayWeight), 2).PadLeft(32, '0').ToString().Substring(k, 16), 2); |
| | | } |
| | | //for (int b = 10; b <= 11; b++) num[b] = 0;// 叠包后实际重量 && 复称结果 默认:0 |
| | | num[10] = string.IsNullOrEmpty(machine.palletLayers) ? 0 : int.Parse(machine.palletLayers); //是否需要叠托盘 |
| | | num[10] = int.Parse(machineInfoTwo.trayType); //托盘类型 |
| | | num[11] = machine.addState; //是否需要叠包 |
| | | num[12] = int.Parse(machine.packageCode); //袋号 |
| | | //员工编号 |