| | |
| | | /// <param name="plcInfo"></param> |
| | | public static void WriteItemInfoTwo(Settings.PlcInfo plcInfo) |
| | | { |
| | | CMMLog.Debug($"WriteItemInfo:Start!"); |
| | | CMMLog.Debug($"WriteItemInfoTwo:Start!"); |
| | | |
| | | try |
| | | { |
| | |
| | | host = plcInfo.ip, |
| | | port = plcInfo.port |
| | | }); |
| | | CMMLog.Debug($"WriteItemInfo:读取【翻页】通道数据为:{JsonConvert.SerializeObject(result)}!"); |
| | | CMMLog.Debug($"WriteItemInfoTwo:读取【翻页】通道数据为:{JsonConvert.SerializeObject(result)}!"); |
| | | if (true) // result != null && result.errCode == 0 |
| | | { |
| | | // 示例:读出值为1 获取1~5编号的物料数据;读出值为2 获取6~10编号的物料数据 规则 result.result[0] * 5 - 4 起始编号 |
| | | //int startItemNo = 1; |
| | | int startItemNo = result.result[0] * 5 - 4; |
| | | CMMLog.Debug($"WriteItemInfo:翻页数据为:{startItemNo}!"); |
| | | CMMLog.Debug($"WriteItemInfoTwo:翻页数据为:{startItemNo}!"); |
| | | var reLocationTask = MongoDBSingleton.Instance.Find<ERPItemTable>(Query.And(Query.In("item_no", new List<MongoDB.Bson.BsonValue>() { startItemNo, startItemNo + 1, startItemNo + 2, startItemNo + 3, startItemNo + 4 })), "ERPItemTable").ToList(); |
| | | int reLocationTaskNum = reLocationTask != null ? reLocationTask.Count : 0; |
| | | CMMLog.Debug($"WriteItemInfo:查询出ERP物料表数据数量为:{reLocationTaskNum}!备注:只有数量为5才会写入数据"); |
| | | CMMLog.Debug($"WriteItemInfoTwo:查询出ERP物料表数据数量为:{reLocationTaskNum}!备注:只有数量为5才会写入数据"); |
| | | if (reLocationTaskNum == 5) |
| | | { |
| | | int no = 0; |
| | |
| | | // 内存地址 20~29 协议地址 21~30 产品型号 |
| | | // HandleItemInfo(a.item_spec, 20, 29, num); |
| | | HandleItemInfoChina(a.item_spec, 0, 9, num); |
| | | CMMLog.Debug($"WriteItemInfo:物料信息处理-2。处理数据:{a.item_spec},处理后数据:{JsonConvert.SerializeObject(num)}"); |
| | | CMMLog.Debug($"WriteItemInfoTwo:物料信息处理-2。处理数据:{a.item_spec},处理后数据:{JsonConvert.SerializeObject(num)}"); |
| | | // 内存地址 30~49 协议地址 31~50 物料编码 |
| | | HandleItemInfo(a.item_code, 10, 24, num); |
| | | CMMLog.Debug($"WriteItemInfo:物料信息处理-2。处理数据:{a.item_code},处理后数据:{JsonConvert.SerializeObject(num)}"); |
| | | CMMLog.Debug($"WriteItemInfoTwo:物料信息处理-2。处理数据:{a.item_code},处理后数据:{JsonConvert.SerializeObject(num)}"); |
| | | // 内存地址 50~64 协议地址 51~65 物料名称 |
| | | // HandleItemInfo(a.item_name, 50, 64, num); |
| | | HandleItemInfoChina(a.item_name, 25, 44, num);// 中文处理 |
| | | CMMLog.Debug($"WriteItemInfo:物料信息处理-2。处理数据:{a.item_name},处理后数据:{JsonConvert.SerializeObject(num)}"); |
| | | CMMLog.Debug($"WriteItemInfoTwo:物料信息处理-2。处理数据:{a.item_name},处理后数据:{JsonConvert.SerializeObject(num)}"); |
| | | // 内存地址 65~69 协议地址 66~70 计量单位 |
| | | HandleItemInfo(a.item_uom, 45, 49, num); |
| | | CMMLog.Debug($"WriteItemInfo:物料信息处理-2。处理数据:{a.item_uom},处理后数据:{JsonConvert.SerializeObject(num)}"); |
| | | CMMLog.Debug($"WriteItemInfoTwo:物料信息处理-2。处理数据:{a.item_uom},处理后数据:{JsonConvert.SerializeObject(num)}"); |
| | | |
| | | CMMLog.Debug($"WriteItemInfo:发送物料信息。序号:{a.item_no},ip:{plcInfo.ip},port:{plcInfo.port},写入起始地址:{writeAddr},写入数据:{JsonConvert.SerializeObject(num)}"); |
| | | CMMLog.Debug($"WriteItemInfoTwo:发送物料信息。序号:{a.item_no},ip:{plcInfo.ip},port:{plcInfo.port},写入起始地址:{writeAddr},写入数据:{JsonConvert.SerializeObject(num)}"); |
| | | |
| | | var wirteall01 = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti |
| | | { |
| | |
| | | data = num |
| | | }); |
| | | int writeResult = wirteall01 != null ? wirteall01.errCode : 1; |
| | | CMMLog.Debug($"WriteItemInfo:发送物料信息。序号:{a.item_no},写入结果:{writeResult}。ip:{plcInfo.ip},port:{plcInfo.port},写入起始地址:{writeAddr},写入数据:{JsonConvert.SerializeObject(num)}"); |
| | | CMMLog.Debug($"WriteItemInfoTwo:发送物料信息。序号:{a.item_no},写入结果:{writeResult}。ip:{plcInfo.ip},port:{plcInfo.port},写入起始地址:{writeAddr},写入数据:{JsonConvert.SerializeObject(num)}"); |
| | | }); |
| | | } |
| | | } |
| | | else CMMLog.Debug($"WriteItemInfo:未读取【翻页】通道数据!"); |
| | | else CMMLog.Debug($"WriteItemInfoTwo:未读取【翻页】通道数据!"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | CMMLog.Debug($"WriteItemInfo Error:{ex.Message}"); |
| | | CMMLog.Debug($"WriteItemInfoTwo Error:{ex.Message}"); |
| | | } |
| | | |
| | | CMMLog.Debug($"WriteItemInfo:End!"); |
| | | CMMLog.Debug($"WriteItemInfoTwo:End!"); |
| | | } |
| | | |
| | | public static void HandleItemInfo(string itemInfo,int startIndex, int endIndex , int[] num) |