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;
|
}
|
|
|
|
}
|