| | |
| | | internal class DeviceProcess |
| | | { |
| | | internal static void Analysis(string data, string ip) { |
| | | if (data.Length >= 6) { |
| | | //去掉消息头3F 00 |
| | | data = data.Substring(4); |
| | | //Console.WriteLine($"{ip}-{data}"); |
| | | if (data.Length == 8) { |
| | | var plc = Settings.deviceInfos.Where(a => a.address == ip && a.enable == 1).FirstOrDefault(); |
| | | if (plc != null) { |
| | | if (plc.deviceType == 1) { |
| | | |
| | | WCSTask cst = WCSHelper.GetTaskByEq(plc.deviceNo); |
| | | if (cst != null) |
| | | { |
| | | string rfid = Convert.ToString(data); |
| | | LogHelper.Info($"扫描结束,RFID:{rfid}", "AGV"); |
| | | if (rfid == cst.S_CNTR_CODE) |
| | | { |
| | | LogHelper.Info($"扫描RFID:{rfid}与任务RFID一致", "AGV"); |
| | | // 修改1012的参数6为1 |
| | | /* NDCApi.ChangeOrderParam(cst.S_CODE, 6, "1");*/ |
| | | } |
| | | else |
| | | { |
| | | WMSHelper.addAlarmRecord("流程异常", "低", $"扫描RFID:{rfid}与任务RFID:{cst.S_CNTR_CODE}不一致", "AGV"); |
| | | // 修改参数6为3 |
| | | /* NDCApi.ChangeOrderParam(cst.S_CODE, 6, "3");*/ |
| | | // 修改容器异常状态 |
| | | ContainerHelper.UpdateCntrState(cst.S_CNTR_CODE, 2, $"{plc.deviceNo}AGV扫码器,扫描RFID:{rfid}与任务RFID:{cst.S_CNTR_CODE}不一致"); |
| | | } |
| | | } |
| | | else if (plc.deviceType == 2) { |
| | | //出库缓存位的光电信息 |
| | | //如果有缓存位是空的状态,我们先判断有没有任务终点分配到这里,如果没有,就找一条出库任务,终点是虚拟点的任务,分配到这个空位 |
| | | //修改任务终点 |
| | | } |
| | | |
| | | |
| | | } |
| | | else { |
| | | Console.WriteLine($"TCP信号处理:未查询到IP为{ip}的数据,请检查deviceInfo配置中心是否存在该IP的数据!"); |