|  |  |  | 
|---|
|  |  |  | package com.zy.core.model.protocol; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.zy.asrs.entity.BasDevp; | 
|---|
|  |  |  | import com.zy.asrs.entity.BasDevpErrorLog; | 
|---|
|  |  |  | import lombok.Data; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | // ---------------------------------------------------------------- | 
|---|
|  |  |  | // 目标站 | 
|---|
|  |  |  | private Short staNo; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private String barcode; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // ---------------------------------------------------------------- | 
|---|
|  |  |  | // 自动 | 
|---|
|  |  |  | 
|---|
|  |  |  | // 低 | 
|---|
|  |  |  | private boolean low; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 叠盘叠满 | 
|---|
|  |  |  | private boolean full; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 锁定标记 | 
|---|
|  |  |  | private boolean pakMk = true; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //lfd入库印记  当stamp>=2时才入库 | 
|---|
|  |  |  | private Integer stamp = 0; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private boolean err = false; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 外形检测 ------------------------------------------------------------------------ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | // 扫码失败 | 
|---|
|  |  |  | private boolean barcodeErr = false; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //故障----------------------------------------------------------------------- | 
|---|
|  |  |  | private Boolean breakerErr = false; //断路器故障 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Boolean infraredErr = false; //光电异常 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Boolean outTimeErr = false; //运行超时 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Boolean seizeSeatErr = false; //占位超时 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Boolean wrkYgoodsN = false;//有任务无货故障 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Boolean inverterErr = false; //变频器故障 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Boolean contactErr = false; //电机接触器故障 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Boolean upcontactErr = false; //顶升电机接触器故障 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //故障信号-------------------------------------------------------- | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 故障读取锁定标记 | 
|---|
|  |  |  | private boolean errorMk = false; | 
|---|
|  |  |  | //写入标记 | 
|---|
|  |  |  | private boolean writeMk = true; | 
|---|
|  |  |  | private Boolean passTimeOut = false; //物体进出超时 | 
|---|
|  |  |  | private Boolean objectNoIdError = false; //有物体无数据 | 
|---|
|  |  |  | private Boolean idNoObjectError = false; //有数据无物体 | 
|---|
|  |  |  | private Boolean lmfrError = false; //线体电机热继报警 | 
|---|
|  |  |  | private Boolean liftError = false; //顶升报警 | 
|---|
|  |  |  | private Boolean dlfrError = false; //顶升电机热继报警 | 
|---|
|  |  |  | private Boolean dmfrError = false; //顶升横移电机热继报警 | 
|---|
|  |  |  | private Boolean vfdError = false; //变频故障 | 
|---|
|  |  |  | private Boolean srvError = false; //伺服故障 | 
|---|
|  |  |  | private Boolean res1 = false; //预留1 | 
|---|
|  |  |  | private Boolean res2 = false; //预留2 | 
|---|
|  |  |  | private Boolean res3 = false; //预留3 | 
|---|
|  |  |  | private Boolean communicationTimeOut = false; //与上位机通讯超时 | 
|---|
|  |  |  | private Boolean parameterIncompleteError = false; //信息参数不全 | 
|---|
|  |  |  | private Boolean dataNotClear = false; //信息数据未清除 | 
|---|
|  |  |  | private Boolean setParameterError = false; //参数设置报警 | 
|---|
|  |  |  | private Boolean res4 = false; //预留4 | 
|---|
|  |  |  | private Boolean res5 = false; //预留5 | 
|---|
|  |  |  | private Boolean dataError = false; //数据错误 | 
|---|
|  |  |  | //配置信号 | 
|---|
|  |  |  | private Boolean sensorGArrive = false; //直线光电 | 
|---|
|  |  |  | private Boolean sensorGDec = false; //减速光电 | 
|---|
|  |  |  | private Boolean sensorGArrive2 = false; //直线凸出 | 
|---|
|  |  |  | private Boolean sensorLimit = false; //限位保护光电 | 
|---|
|  |  |  | private Boolean emergency = false; //急停 | 
|---|
|  |  |  | private Boolean sensorGLeave = false; //光电离开1 | 
|---|
|  |  |  | private Boolean sensorGLeave2 = false; //光电离开2 | 
|---|
|  |  |  | private Boolean sensorCUp = false; //顶升上升 | 
|---|
|  |  |  | private Boolean sensorCDown = false; //顶升下降 | 
|---|
|  |  |  | private Boolean liftMotorFr = false; //顶升热继 | 
|---|
|  |  |  | private Boolean lineMotorFr = false; //直线热继 | 
|---|
|  |  |  | private Boolean tranMotorFr = false; //移栽热继 | 
|---|
|  |  |  | private Boolean rst1 = false; //备用1 | 
|---|
|  |  |  | private Boolean rst2 = false; //备用2 | 
|---|
|  |  |  | private Boolean rst3 = false; //备用3 | 
|---|
|  |  |  | private Boolean rst4 = false; //备用4 | 
|---|
|  |  |  | private Boolean sensorArriveD = false; //直行方向到位 | 
|---|
|  |  |  | private Boolean sensorDecD = false; //直行方向减速 | 
|---|
|  |  |  | private Boolean sensorArriveL = false; //左移方向到位 | 
|---|
|  |  |  | private Boolean sensorDecL = false; //左移方向减速 | 
|---|
|  |  |  | private Boolean sensorArriveR = false; //右移方向到位 | 
|---|
|  |  |  | private Boolean sensorDecR = false; //右移方向减速 | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public BasDevpErrorLog toSqlModelError(){ | 
|---|
|  |  |  | BasDevpErrorLog basDevpErrorLog = new BasDevpErrorLog(); | 
|---|
|  |  |  | basDevpErrorLog.setDevNo(siteId); // 设备号(假设有定义 siteId) | 
|---|
|  |  |  | basDevpErrorLog.setPassTimeOut(passTimeOut ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setObjectNoIdError(objectNoIdError ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setIdNoObjectError(idNoObjectError ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setLmfrError(lmfrError ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setLiftError(liftError ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setDlfrError(dlfrError ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setDmfrError(dmfrError ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setVfdError(vfdError ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSrvError(srvError ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setRes1(res1 ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setRes2(res2 ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setRes3(res3 ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setCommunicationTimeOut(communicationTimeOut ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setParameterIncompleteError(parameterIncompleteError ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setDataNotClear(dataNotClear ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSetParameterError(setParameterError ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setInEnable(res4 ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setOutEnable(res5 ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setDataError(dataError ? "Y" : "N"); | 
|---|
|  |  |  | // 配置信号 | 
|---|
|  |  |  | basDevpErrorLog.setSensorGArrive(sensorGArrive ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSensorGDec(sensorGDec ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSensorGArrive2(sensorGArrive2 ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSensorLimit(sensorLimit ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setEmergency(emergency ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSensorGLeave(sensorGLeave ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSensorGLeave2(sensorGLeave2 ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSensorCUp(sensorCUp ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSensorCDown(sensorCDown ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setLiftMotorFr(liftMotorFr ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setLineMotorFr(lineMotorFr ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setTranMotorFr(tranMotorFr ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setRst1(rst1 ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setRst2(rst2 ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setRst3(rst3 ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setRst4(rst4 ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSensorArriveD(sensorArriveD ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSensorDecD(sensorDecD ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSensorArriveL(sensorArriveL ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSensorDecL(sensorDecL ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSensorArriveR(sensorArriveR ? "Y" : "N"); | 
|---|
|  |  |  | basDevpErrorLog.setSensorDecR(sensorDecR ? "Y" : "N"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return basDevpErrorLog; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public Boolean isErr(){ | 
|---|
|  |  |  | if (frontErr || backErr || highErr || leftErr || rightErr || weightErr || barcodeErr){ | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public BasDevp toSqlModel(){ | 
|---|
|  |  |  | BasDevp basDevp = new BasDevp(); | 
|---|
|  |  |  | basDevp.setDevNo(siteId); | 
|---|
|  |  |  | basDevp.setWrkNo(workNo.intValue()); | 
|---|
|  |  |  | basDevp.setBarcode(barcode); | 
|---|
|  |  |  | basDevp.setAutoing(autoing?"Y":"N"); | 
|---|
|  |  |  | basDevp.setLoading(loading?"Y":"N"); | 
|---|
|  |  |  | basDevp.setInEnable(inEnable?"Y":"N"); | 
|---|
|  |  |  | 
|---|
|  |  |  | basDevp.setLocType3((short) 0);  // 轻重类型{0:未知,1:轻库位,2:重库位} | 
|---|
|  |  |  | basDevp.setLocType1(high != low && low ? (short) 1 : (short) 2); | 
|---|
|  |  |  | basDevp.setInQty(inQty !=null ?(int)inQty : 0); | 
|---|
|  |  |  | basDevp.setBarcode(this.getBarcode()); | 
|---|
|  |  |  | return basDevp; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //    public Integer getNearbySta() { | 
|---|
|  |  |  | //        if (getNearbySta == null) return 0; | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        // key: 站点号  value: 基准物理位置 | 
|---|
|  |  |  | //        Map<Integer, Integer> posMap = new HashMap<>(); | 
|---|
|  |  |  | //        posMap.put(1004, 6534); | 
|---|
|  |  |  | //        posMap.put(1007, 33634); | 
|---|
|  |  |  | //        posMap.put(1010, 75174); | 
|---|
|  |  |  | //        posMap.put(1014, 102124); | 
|---|
|  |  |  | //        posMap.put(1018, 138224); | 
|---|
|  |  |  | //        posMap.put(1021, 178034); | 
|---|
|  |  |  | //        posMap.put(1024, 219684); | 
|---|
|  |  |  | //        posMap.put(1028, 246724); | 
|---|
|  |  |  | //        posMap.put(1031, 288194); | 
|---|
|  |  |  | //        posMap.put(1035, 315204); | 
|---|
|  |  |  | //        int tolerance = 50; // 允许误差范围 | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        for (Map.Entry<Integer, Integer> entry : posMap.entrySet()) { | 
|---|
|  |  |  | //            int site = entry.getKey(); | 
|---|
|  |  |  | //            int basePos = entry.getValue(); | 
|---|
|  |  |  | //            if (Math.abs(getNearbySta - basePos) <= tolerance) { | 
|---|
|  |  |  | //                return site; | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        return 0; // 没匹配到站点 | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|