/// <summary> /// 添加所有固定辊台信息 /// </summary> private void AddAllFrt() { List <WCS_CONFIG_DEVICE> list = CommonSQL.GetDevInfo(DeviceType.固定辊台); if (list == null || list.Count == 0) { return; } foreach (WCS_CONFIG_DEVICE d in list) { AddFrt(new DevInfoFRT() { devName = d.DEVICE, area = d.AREA, isLock = d.IS_LOCK == 1 ? true : false, isUseful = d.IS_USEFUL == 1 ? true : false, lockID1 = d.LOCK_ID1, lockID2 = d.LOCK_ID2, taskType = (TaskTypeEnum)d.FLAG, _ = new DeviceFRT() }); ADS.mSocket.AddClient(d.DEVICE, d.IP, d.PORT, DevInfoFRT.GetDataOrder()); if (d.IS_USEFUL == 0) { ADS.mSocket.UpdateUserful(d.DEVICE, false); } } }
/// <summary> /// 添加固定辊台信息 /// </summary> private void AddFrt(DevInfoFRT frt) { if (!devices.Exists(c => c.devName == frt.devName)) { devices.Add(frt); } }
/// <summary> /// 扫码数据处理 /// </summary> /// <param name="devName"></param> /// <param name="code"></param> public void GetCode(string devName, string code) { try { if (!code.StartsWith("@") || code.Split('@').Length != 2) { return; } if (devices.Exists(c => c.devName == devName)) { DevInfoFRT f = devices.Find(c => c.devName == devName); //if (f._.ActionStatus == ActionEnum.运行中 || f._.RollerStatus != RollerStatusEnum.辊台停止) //{ // throw new Exception(string.Format("辊台未停止,不处理扫码.", code)); //} //是否满足任务 if (CommonSQL.GetInTask(code, out string tid)) { if (!string.IsNullOrEmpty(tid)) { if (string.IsNullOrEmpty(f.lockID1)) { // 请求WMS分配 if (ADS.AssignInSite(f.area, tid)) { f.IsLockUnlockNew(f.isLock, tid, f.lockID2); } } else if (string.IsNullOrEmpty(f.lockID2)) { if (tid != f.lockID1) { // 请求WMS分配 if (ADS.AssignInSite(f.area, tid)) { f.IsLockUnlockNew(f.isLock, f.lockID1, tid); } } } } } else { throw new Exception(string.Format("读取二维码[{0}]异常.", code)); } } } catch (Exception ex) { // LOG CommonSQL.LogErr("FRT.DoTaskNew()", "固定辊台作业[设备]", (ex.Message + ex.Source), devName); } }
public void Update() { bool con = ADS.mSocket.IsConnected(DevName); DevInfoFRT frt = ADS.mFrt.devices.Find(c => c.devName == DevName); if (isconnect != con) { IsConnected = con; } if (isUseful != frt.isUseful) { IsUseful = frt.isUseful; } if (!con) { return; } if (actionsta != frt._.ActionStatus) { ActionStatus = frt._.ActionStatus; } if (devicesta != frt._.DeviceStatus) { DeviceStatus = frt._.DeviceStatus; } if (commandsta != frt._.CommandStatus) { CommandStatus = frt._.CommandStatus; } if (currenttask != frt._.CurrentTask) { CurrentTask = frt._.CurrentTask; } if (finishtask != frt._.FinishTask) { FinishTask = frt._.FinishTask; } if (rollersta != frt._.RollerStatus) { RollerStatus = frt._.RollerStatus; } if (rollerdir != frt._.RollerDiretion) { RollerDiretion = frt._.RollerDiretion; } if (goodstatus != frt._.GoodsStatus) { GoodsStatus = frt._.GoodsStatus; } if (errormsg != frt._.ErrorMessage) { ErrorMessage = frt._.ErrorMessage; } IsScan1 = !string.IsNullOrEmpty(frt.lockID1); IsScan2 = !string.IsNullOrEmpty(frt.lockID2); UpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); if (frt._.CurrentTask == TaskEnum.辊台任务 && frt._.FinishTask == TaskEnum.辊台任务 && frt._.RollerStatus == RollerStatusEnum.辊台停止) { frt.StopRoller(); } }