add: 添加Sorting交互接口,反馈物料完成信号,sorting下发交期时间/下道工序;添加呼叫无下道工序物料

This commit is contained in:
yanps
2024-11-07 14:44:28 +08:00
parent 51cad1bd9d
commit 0166ce4cbc
8 changed files with 316 additions and 167 deletions

View File

@@ -188,24 +188,42 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
} else if (device_code.contains("_02")) {
Object plc_to_agv = extraValue.get("upper_lower_levels");
if (ObjectUtil.isNotNull(plc_to_agv) && "1".equals(plc_to_agv)) {
plcToAgvDeviceDriver.writing("AGVSetOutReqUpper", "1");
if (plcToAgvDeviceDriver.getAGVSetOutReqUpper() != 1) {
writeSignal(plcToAgvDeviceDriver, "AGVSetOutReqUpper", "1");
}
//plcToAgvDeviceDriver.writing("AGVSetOutReqUpper", "1");
if (plcToAgvDeviceDriver.getAGVSetOutUpperAllowed() == 1) {
plcToAgvDeviceDriver.writing("AGVInOP", "1");
if (plcToAgvDeviceDriver.getAGVInOP() != 1) {
writeSignal(plcToAgvDeviceDriver, "AGVInOP", "1");
}
//plcToAgvDeviceDriver.writing("AGVInOP", "1");
data = feedBackStatus(data, index, 1, inst, task, 2, false);
}
}
} else if (ObjectUtil.isNotEmpty(extraValue.get("upper_lower_levels"))) {
Object plc_to_agv = extraValue.get("upper_lower_levels");
if ("1".equals(plc_to_agv)) {
plcToAgvDeviceDriver.writing("AGVSetOutReqUpper", "1");
if (plcToAgvDeviceDriver.getAGVSetOutReqUpper() != 1) {
writeSignal(plcToAgvDeviceDriver, "AGVSetOutReqUpper", "1");
}
//plcToAgvDeviceDriver.writing("AGVSetOutReqUpper", "1");
if (plcToAgvDeviceDriver.getAGVSetOutUpperAllowed() == 1) {
plcToAgvDeviceDriver.writing("AGVInOP", "1");
if (plcToAgvDeviceDriver.getAGVInOP() != 1) {
writeSignal(plcToAgvDeviceDriver, "AGVInOP", "1");
}
//plcToAgvDeviceDriver.writing("AGVInOP", "1");
data = feedBackStatus(data, index, 1, inst, task, 2, false);
}
} else if ("2".equals(plc_to_agv)) {
plcToAgvDeviceDriver.writing("AGVSetOutReqLower", "1");
if (plcToAgvDeviceDriver.getAGVSetOutReqLower() != 1) {
writeSignal(plcToAgvDeviceDriver, "AGVSetOutReqLower", "1");
}
//plcToAgvDeviceDriver.writing("AGVSetOutReqLower", "1");
if (plcToAgvDeviceDriver.getAGVSetOutLowerAllowed() == 1) {
plcToAgvDeviceDriver.writing("AGVInOP", "1");
if (plcToAgvDeviceDriver.getAGVInOP() != 1) {
writeSignal(plcToAgvDeviceDriver, "AGVInOP", "1");
}
//plcToAgvDeviceDriver.writing("AGVInOP", "1");
data = feedBackStatus(data, index, 1, inst, task, 2, false);
}
}
@@ -348,9 +366,15 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
if (device_code.contains("_01")) {
Object plc_to_agv = extraValue.get("upper_lower_levels");
if (ObjectUtil.isNotNull(plc_to_agv) && "1".equals(plc_to_agv)) {
plcToAgvDeviceDriver.writing("AGVSetInReqUpper", "1");
if (plcToAgvDeviceDriver.getAGVSetInReqUpper() != 1) {
writeSignal(plcToAgvDeviceDriver, "AGVSetInReqUpper", "1");
}
//plcToAgvDeviceDriver.writing("AGVSetInReqUpper", "1");
if (plcToAgvDeviceDriver.getAGVSetInUpperAllowed() == 1) {
plcToAgvDeviceDriver.writing("AGVInOP", "1");
if (plcToAgvDeviceDriver.getAGVInOP() != 1) {
writeSignal(plcToAgvDeviceDriver, "AGVInOP", "1");
}
//plcToAgvDeviceDriver.writing("AGVInOP", "1");
data = feedBackStatus(data, index, 3, inst, task, 2, false);
}
}
@@ -361,15 +385,27 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
} else if (ObjectUtil.isNotEmpty(extraValue.get("upper_lower_levels"))) {
Object plc_to_agv = extraValue.get("upper_lower_levels");
if ("1".equals(plc_to_agv)) {
plcToAgvDeviceDriver.writing("AGVSetInReqUpper", "1");
if (plcToAgvDeviceDriver.getAGVSetInReqUpper() != 1) {
writeSignal(plcToAgvDeviceDriver, "AGVSetInReqUpper", "1");
}
//plcToAgvDeviceDriver.writing("AGVSetInReqUpper", "1");
if (plcToAgvDeviceDriver.getAGVSetInUpperAllowed() == 1) {
plcToAgvDeviceDriver.writing("AGVInOP", "1");
if (plcToAgvDeviceDriver.getAGVInOP() != 1) {
writeSignal(plcToAgvDeviceDriver, "AGVInOP", "1");
}
//plcToAgvDeviceDriver.writing("AGVInOP", "1");
data = feedBackStatus(data, index, 3, inst, task, 2, false);
}
} else if ("2".equals(plc_to_agv)) {
plcToAgvDeviceDriver.writing("AGVSetInReqLower", "1");
if (plcToAgvDeviceDriver.getAGVSetInReqLower() != 1) {
writeSignal(plcToAgvDeviceDriver, "AGVSetInReqLower", "1");
}
//plcToAgvDeviceDriver.writing("AGVSetInReqLower", "1");
if (plcToAgvDeviceDriver.getAGVSetInLowerAllowed() == 1) {
plcToAgvDeviceDriver.writing("AGVInOP", "1");
if (plcToAgvDeviceDriver.getAGVInOP() != 1) {
writeSignal(plcToAgvDeviceDriver, "AGVInOP", "1");
}
//plcToAgvDeviceDriver.writing("AGVInOP", "1");
data = feedBackStatus(data, index, 3, inst, task, 2, false);
}
}
@@ -532,6 +568,19 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
}
}
/**
* 写信号
*/
public void writeSignal(PlcToAgvDeviceDriver plcToAgvDeviceDriver, String kepName, String kepValue) {
List list = new ArrayList<>();
Map map = new HashMap();
map.put("code", kepName);
map.put("value", kepValue);
list.add(map);
plcToAgvDeviceDriver.writing(list);
}
private byte[] getData(byte[] data, int index, Instruction inst, TaskDto task) {
String hasWms = paramService.findByCode("hasWms").getValue();
if ("3".equals(task.getTask_type()) && StrUtil.isNotEmpty(hasWms) && "1".equals(hasWms)) {