package com.zy.core.model.protocol; import com.zy.asrs.entity.BasDevp; import com.zy.core.enums.CrnModeType; import com.zy.core.enums.DevpType.*; import lombok.Data; /** * 输送线plc单个站点详细信息 * Created by vincent on 2020/8/6 */ @Data public class StaProtocol implements Cloneable { // 站点编号 private Integer siteId; // ---------------------------------------------------------------- // 工作号 private Integer workNo = 0; // ---------------------------------------------------------------- // 目标站 private Short staNo; // ---------------------------------------------------------------- //模式 private Short mode; public DevpModeType modeType; //状态 private Short state; public DevpStateType stateType; //工作状态 private Short workIo; public DevpWorkType workType; //请求信号 private Short requestIo; public DevpRequestType requestType; //托盘状态 private Short trayIo; public DevpTrayType trayType; //库位状态 private Short locIo; public DevpLocType locType; //条码信息 private String barcode; //重量信息 private Double weightIo; //备用 private Short spare; public void setMode(Short mode) { this.mode = mode; this.modeType = DevpModeType.get(mode); } public void setState(Short state) { this.state = state; this.stateType = DevpStateType.get(state); } public void setWorkIo(Short workIo) { this.workIo = workIo; this.workType = DevpWorkType.get(workIo); } public void setRequestIo(Short requestIo) { this.requestIo = requestIo; this.requestType = DevpRequestType.get(requestIo); } public void setTrayIo(Short trayIo) { this.trayIo = trayIo; this.trayType = DevpTrayType.get(trayIo); } public void setLocIo(Short locIo) { this.locIo = locIo; this.locType = DevpLocType.get(locIo); } // 锁定标记 private boolean pakMk = true; // 入库暂存数 private Short inQty; // 外形检测 ------------------------------------------------------------------------ // 前超限 private boolean frontErr = false; // 后超限 private boolean backErr = false; // 高超限 private boolean highErr = false; // 左超限 private boolean leftErr = false; // 右超限 private boolean rightErr = false; // 超重 private boolean weightErr = 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; //顶升电机接触器故障 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.setAutoing(stateType == DevpStateType.AUTO?"Y":"N"); basDevp.setLoading(workType == DevpWorkType.BUSY?"Y":"N"); basDevp.setInEnable(requestType == DevpRequestType.IN?"Y":"N"); basDevp.setOutEnable(requestType == DevpRequestType.OUT?"Y":"N"); basDevp.setLocType1((short) 0); // 高低类型{0:未知,1:低库位,2:高库位} basDevp.setLocType2((short) 0); // 宽窄类型{0:未知,1:窄库位,2:宽库位} basDevp.setLocType3((short) 0); // 轻重类型{0:未知,1:轻库位,2:重库位} basDevp.setLocType1(DevpLocType.get(locIo).id.shortValue()); basDevp.setInQty(inQty !=null ?(int)inQty : 0); return basDevp; } @Override public StaProtocol clone() { try { return (StaProtocol) super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return null; } }