add : 测试入库

This commit is contained in:
2024-01-20 16:14:25 +08:00
parent 56071e13fe
commit 8b6e6d547a
7 changed files with 159 additions and 73 deletions

View File

@@ -204,7 +204,7 @@ public class BoxStorageOutConveyorDeviceDriver extends AbstractOpcDeviceDriver i
break; break;
case 2: case 2:
//申请任务 //申请任务
if (move > 0 && !requireSucess) { if (move > 0 && task == 0 && !requireSucess) {
instruction_require(); instruction_require();
} }
break; break;
@@ -283,7 +283,6 @@ public class BoxStorageOutConveyorDeviceDriver extends AbstractOpcDeviceDriver i
} }
if (StrUtil.equals(inst.getInstruction_status(), "1") || StrUtil.equals(inst.getInstruction_status(), "0")) { if (StrUtil.equals(inst.getInstruction_status(), "1") || StrUtil.equals(inst.getInstruction_status(), "0")) {
if (StrUtil.equals(this.getDeviceCode(), inst.getNext_device_code())) { if (StrUtil.equals(this.getDeviceCode(), inst.getNext_device_code())) {
vehicle_code = inst.getVehicle_code();
inst.setExecute_device_code(this.device_code); inst.setExecute_device_code(this.device_code);
if (mode == 2) { if (mode == 2) {
finish_instruction(); finish_instruction();

View File

@@ -134,15 +134,7 @@ public class ItemProtocol {
} }
public String getOpcStringValue(String protocol) {
String value = this.driver.getStringValue(protocol);
if (StrUtil.isEmpty(value)) {
} else {
return value;
}
return "0";
}
public static List<ItemDto> getReadableItemDtos() { public static List<ItemDto> getReadableItemDtos() {
ArrayList list = new ArrayList(); ArrayList list = new ArrayList();

View File

@@ -1,5 +1,6 @@
package org.nl.acs.device_driver.one_conveyor.scanner_weight_conveyor; package org.nl.acs.device_driver.one_conveyor.scanner_weight_conveyor;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
@@ -355,6 +356,9 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
String route_plan_code = taskdto.getRoute_plan_code(); String route_plan_code = taskdto.getRoute_plan_code();
List<RouteLineDto> shortPathsList = routeLineService.getShortPathLines(taskdto.getStart_device_code(), taskdto.getNext_device_code(), route_plan_code); List<RouteLineDto> shortPathsList = routeLineService.getShortPathLines(taskdto.getStart_device_code(), taskdto.getNext_device_code(), route_plan_code);
if (CollectionUtil.isEmpty(shortPathsList)){
return false;
}
RouteLineDto routeLineDto = shortPathsList.get(0); RouteLineDto routeLineDto = shortPathsList.get(0);
String path = routeLineDto.getPath(); String path = routeLineDto.getPath();
String[] str = path.split("->"); String[] str = path.split("->");

View File

@@ -1,5 +1,6 @@
package org.nl.acs.device_driver.one_conveyor.scanner_weight_conveyor; package org.nl.acs.device_driver.one_conveyor.scanner_weight_conveyor;
import cn.hutool.core.util.StrUtil;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.acs.device.device_driver.standard_inspect.ItemDto; import org.nl.acs.device.device_driver.standard_inspect.ItemDto;
@@ -153,13 +154,13 @@ public class ItemProtocol {
public String getOpcStringValue(String protocol) { public String getOpcStringValue(String protocol) {
String value = this.driver.getStringValue(protocol); String value = this.driver.getStringValue(protocol);
if (value == null) { if (StrUtil.isBlank(value)) {
//throw new BusinessException("{} : {}", new Object[]{protocol, DeviceErrorProtocol.getMessage(10000)}); //throw new BusinessException("{} : {}", new Object[]{protocol, DeviceErrorProtocol.getMessage(10000)});
} else { } else {
return value; return value;
} }
return null; return "0";
} }
public int getOpcIntegerValue(String protocol) { public int getOpcIntegerValue(String protocol) {

View File

@@ -265,14 +265,17 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
} }
//放货完成 //放货完成
if (mode == 3 && action == 4 && move == 0) { if ( action == 4 && move == 0) {
if (inst != null) { if (inst != null) {
try { try {
logServer.deviceExecuteLog(this.device_code,"","","放货完成"); logServer.deviceExecuteLog(this.device_code,"","","放货完成");
finish_instruction(inst); finish_instruction(inst);
Map<String, Object> map = new LinkedHashMap<>(); Map<String, Object> map1 = new HashMap<>();
map.put("to_command", 5); List list = new ArrayList();
this.writing(map); map1.put("code", "to_command");
map1.put("value", 5);
list.add(map1);
this.writing(list);
message = "放货完成"; message = "放货完成";
} catch (Exception e) { } catch (Exception e) {
message = "放货失败"; message = "放货失败";
@@ -351,27 +354,51 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
+ ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString()); + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString());
Map<String, Object> map = new LinkedHashMap<>(); Map<String, Object> map1 = new HashMap<>();
map.put("to_command", 1); List list = new ArrayList();
map.put("to_target", next_addr); map1.put("code", "to_command");
map.put("to_onset", start_addr); map1.put("value", 1);
map.put("to_task", instdto.getInstruction_code()); list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("code", "to_target");
map2.put("value", next_addr);
list.add(map2);
Map<String, Object> map3 = new HashMap<>();
map3.put("code", "to_onset");
map3.put("value", start_addr);
list.add(map3);
Map<String, Object> map4 = new HashMap<>();
map4.put("code", "to_task");
map4.put("value", instdto.getInstruction_code());
list.add(map4);
if (ObjectUtil.isNotEmpty(interactionJsonDTO.getItem_to_seq())) { if (ObjectUtil.isNotEmpty(interactionJsonDTO.getItem_to_seq())) {
map.put("to_seq", interactionJsonDTO.getItem_to_seq()); Map<String, Object> map5 = new HashMap<>();
map5.put("code", "to_seq");
map5.put("value", interactionJsonDTO.getItem_to_seq());
list.add(map5);
} }
if (ObjectUtil.isNotEmpty(interactionJsonDTO.getItem_to_last_one())) { if (ObjectUtil.isNotEmpty(interactionJsonDTO.getItem_to_last_one())) {
map.put("to_last_one", interactionJsonDTO.getItem_to_last_one()); Map<String, Object> map6 = new HashMap<>();
map6.put("code", "to_last_one");
map6.put("value", interactionJsonDTO.getItem_to_last_one());
list.add(map6);
} }
if (ObjectUtil.isNotEmpty(interactionJsonDTO.getItem_to_direction())) { if (ObjectUtil.isNotEmpty(interactionJsonDTO.getItem_to_direction())) {
map.put("to_direction", interactionJsonDTO.getItem_to_direction()); Map<String, Object> map7 = new HashMap<>();
map7.put("code", "to_direction");
map7.put("value", interactionJsonDTO.getItem_to_direction());
list.add(map7);
} }
if (ObjectUtil.isNotEmpty(interactionJsonDTO.getItem_to_max_no())) { if (ObjectUtil.isNotEmpty(interactionJsonDTO.getItem_to_max_no())) {
map.put("to_max_no", interactionJsonDTO.getItem_to_max_no()); Map<String, Object> map8 = new HashMap<>();
map8.put("code", "to_max_no");
map8.put("value", interactionJsonDTO.getItem_to_max_no());
list.add(map8);
} }
try { try {
this.writing(map); this.writing(list);
} catch (Exception e) { } catch (Exception e) {
logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:"
+ instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code()
@@ -394,24 +421,33 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
/** /**
* 下发 * 下发
* @param map *
*/ */
public void writing(Map<String, Object> map) {
DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); public void writing(List list) {
Map<String, Object> itemMap = new LinkedHashMap<>();
map.forEach((key, value) -> { Map<String, Object> itemMap = new HashMap<String, Object>();
if (ObjectUtil.isNotEmpty(value)) { for (int i = 0; i < list.size(); i++) {
itemMap.put(getToParam() + key, value); Object ob = list.get(i);
JSONObject json = (JSONObject) JSONObject.toJSON(ob);
if (!StrUtil.isEmpty(json.getString("value"))) {
String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
+ "." + json.getString("code");
itemMap.put(to_param, json.getString("value"));
} }
}); }
if (ObjectUtil.isNotEmpty(itemMap)) { logServer.deviceExecuteLog(device_code, "", "", "下发电气信号:" + itemMap);
try {
this.checkcontrol(itemMap);
} catch (Exception e) {
e.printStackTrace();
try { try {
this.checkcontrol(itemMap); this.checkcontrol(itemMap);
} catch (Exception e) { } catch (Exception e1) {
throw new RuntimeException(e); e1.printStackTrace();
} }
logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap);
} }
} }
/** /**

View File

@@ -89,8 +89,8 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
int last_to_task = 0; int last_to_task = 0;
int to_layer = 0; int to_layer = 0;
int last_to_layer = 0; int last_to_layer = 0;
int to_barcode = 0; String to_barcode = null;
int last_to_barcode = 0; String last_to_barcode = null;
Boolean isonline = true; Boolean isonline = true;
int hasGoods = 0; int hasGoods = 0;
@@ -246,9 +246,12 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
try { try {
logServer.deviceExecuteLog(this.device_code, "", "", "放货完成"); logServer.deviceExecuteLog(this.device_code, "", "", "放货完成");
finish_instruction(inst); finish_instruction(inst);
Map<String, Object> map = new LinkedHashMap<>(); Map<String, Object> map1 = new HashMap<>();
map.put("to_command", 5); List list = new ArrayList();
this.writing(map); map1.put("code", "to_command");
map1.put("value", 5);
list.add(map1);
this.writing(list);
message = "放货完成"; message = "放货完成";
} catch (Exception e) { } catch (Exception e) {
message = "放货失败"; message = "放货失败";
@@ -325,9 +328,6 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
try { try {
instructionService.create(instdto); instructionService.create(instdto);
//创建指令后修改任务状态
taskDto.setTask_status("1");
taskserver.update(taskDto);
} catch (Exception e) { } catch (Exception e) {
notCreateInstMessage = e.getMessage(); notCreateInstMessage = e.getMessage();
logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage()); logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage());
@@ -336,32 +336,61 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:"
+ instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code()
+ ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString()); + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString());
//创建指令后修改任务状态
taskDto.setTask_status("1");
taskserver.update(taskDto);
requireSucess = true;
Map<String, Object> map1 = new HashMap<>();
Map<String, Object> map = new LinkedHashMap<>(); List list = new ArrayList();
map.put("to_command", 1); map1.put("code", "to_command");
map.put("to_target", next_addr); map1.put("value", 1);
map.put("to_onset", start_addr); list.add(map1);
map.put("to_task", instdto.getInstruction_code()); Map<String, Object> map2 = new HashMap<>();
map2.put("code", "to_target");
map2.put("value", next_addr);
list.add(map2);
Map<String, Object> map3 = new HashMap<>();
map3.put("code", "to_onset");
map3.put("value", start_addr);
list.add(map3);
Map<String, Object> map4 = new HashMap<>();
map4.put("code", "to_task");
map4.put("value", instdto.getInstruction_code());
list.add(map4);
if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_weight())) { if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_weight())) {
map.put("to_wedth", interactionJsonDTO.getTo_weight()); Map<String, Object> map5 = new HashMap<>();
map5.put("code", "to_weight");
map5.put("value", interactionJsonDTO.getTo_weight());
list.add(map5);
} }
if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_length())) { if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_length())) {
map.put("to_length", interactionJsonDTO.getTo_length()); Map<String, Object> map6 = new HashMap<>();
map6.put("code", "to_length");
map6.put("value", interactionJsonDTO.getTo_length());
list.add(map6);
} }
if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_height())) { if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_height())) {
map.put("to_height", interactionJsonDTO.getTo_height()); Map<String, Object> map7 = new HashMap<>();
map7.put("code", "to_height");
map7.put("value", interactionJsonDTO.getTo_height());
list.add(map7);
} }
if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_barcode())) { if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_barcode())) {
map.put("to_barcode", interactionJsonDTO.getTo_barcode()); Map<String, Object> map8 = new HashMap<>();
map8.put("code", "to_barcode");
map8.put("value", interactionJsonDTO.getTo_barcode());
list.add(map8);
} }
if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_layer())) { if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_layer())) {
map.put("to_layer", interactionJsonDTO.getTo_layer()); Map<String, Object> map9 = new HashMap<>();
map9.put("code", "to_layer");
map9.put("value", interactionJsonDTO.getTo_layer());
list.add(map9);
} }
try { try {
this.writing(map); this.writing(list);
} catch (Exception e) { } catch (Exception e) {
logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:"
+ instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code()
@@ -378,18 +407,32 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
} }
public void writing(Map<String, Object> map) {
DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl");
Map<String, Object> itemMap = new LinkedHashMap<>(); public void writing(List list) {
map.forEach((key, value) -> {
if (ObjectUtil.isNotEmpty(value)) { Map<String, Object> itemMap = new HashMap<String, Object>();
itemMap.put(getToParam() + key, value); for (int i = 0; i < list.size(); i++) {
Object ob = list.get(i);
JSONObject json = (JSONObject) JSONObject.toJSON(ob);
if (!StrUtil.isEmpty(json.getString("value"))) {
String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
+ "." + json.getString("code");
itemMap.put(to_param, json.getString("value"));
} }
});
if (ObjectUtil.isNotEmpty(itemMap)) {
this.control(itemMap);
logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap);
} }
logServer.deviceExecuteLog(device_code, "", "", "下发电气信号:" + itemMap);
try {
this.checkcontrol(itemMap);
} catch (Exception e) {
e.printStackTrace();
try {
this.checkcontrol(itemMap);
} catch (Exception e1) {
e1.printStackTrace();
}
}
} }

View File

@@ -1,5 +1,6 @@
package org.nl.acs.device_driver.one_manipulator.box_storage_manipulator; package org.nl.acs.device_driver.one_manipulator.box_storage_manipulator;
import cn.hutool.core.util.StrUtil;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.acs.device.device_driver.standard_inspect.ItemDto; import org.nl.acs.device.device_driver.standard_inspect.ItemDto;
@@ -132,8 +133,8 @@ public class ItemProtocol {
return this.getOpcIntegerValue(item_to_layer); return this.getOpcIntegerValue(item_to_layer);
} }
public int getTo_barcode() { public String getTo_barcode() {
return this.getOpcIntegerValue(item_to_barcode); return this.getOpcStringValue(item_to_barcode);
} }
public int getTo_command() { public int getTo_command() {
@@ -160,6 +161,16 @@ public class ItemProtocol {
return 0; return 0;
} }
public String getOpcStringValue(String protocol) {
String value = this.driver.getStringValue(protocol);
if (StrUtil.isBlank(value)) {
// log.error("读取错误!");
} else {
return value;
}
return "0";
}
public static List<ItemDto> getReadableItemDtos() { public static List<ItemDto> getReadableItemDtos() {
ArrayList<ItemDto> list = new ArrayList<>(); ArrayList<ItemDto> list = new ArrayList<>();
list.add(new ItemDto(item_heartbeat, "心跳", "DB1.B0")); list.add(new ItemDto(item_heartbeat, "心跳", "DB1.B0"));
@@ -169,8 +180,6 @@ public class ItemProtocol {
list.add(new ItemDto(item_error, "报警信号", "DB1.B5")); list.add(new ItemDto(item_error, "报警信号", "DB1.B5"));
list.add(new ItemDto(item_task, "任务号", "DB1.D6")); list.add(new ItemDto(item_task, "任务号", "DB1.D6"));
list.add(new ItemDto(item_walk_y, "行走列", "DB1.B4")); list.add(new ItemDto(item_walk_y, "行走列", "DB1.B4"));
list.add(new ItemDto(item_to_barcode, "下发木箱条码", "DB1.B7"));
list.add(new ItemDto(item_to_layer, "下发木箱层数", "DB1.B8"));
return list; return list;
} }
@@ -183,6 +192,8 @@ public class ItemProtocol {
list.add(new ItemDto(item_to_length, "木箱长度", "DB601.W14")); list.add(new ItemDto(item_to_length, "木箱长度", "DB601.W14"));
list.add(new ItemDto(item_to_weight, "木箱宽度", "DB601.W16")); list.add(new ItemDto(item_to_weight, "木箱宽度", "DB601.W16"));
list.add(new ItemDto(item_to_height, "木箱高度", "DB601.W18")); list.add(new ItemDto(item_to_height, "木箱高度", "DB601.W18"));
list.add(new ItemDto(item_to_barcode, "下发木箱条码", "DB601.STRING1.50"));
list.add(new ItemDto(item_to_layer, "下发木箱层数", "DB601.W22"));
return list; return list;
} }
} }