代码更新

This commit is contained in:
ludj
2023-02-02 21:55:35 +08:00
parent 449ab94c94
commit aacaa9047c
15 changed files with 982 additions and 908 deletions

View File

@@ -1,9 +1,9 @@
package org.nl.acs.device_driver;
public interface ScannerDeviceDriver extends DeviceDriver {
void writeBarcode(String var1) throws Exception;
void writeBarcode(String var1) ;
void cleanBarcode() throws Exception;
void cleanBarcode() ;
String readBarcode() throws Exception;
String readBarcode();
}

View File

@@ -97,7 +97,7 @@ public class CargoLiftConveyorDeviceDriver extends AbstractOpcDeviceDriver imple
Boolean requireSucess = false;
@Override
public void execute() throws Exception {
public void execute() {
String message = null;
device_code = this.getDeviceCode();
@@ -183,7 +183,7 @@ public class CargoLiftConveyorDeviceDriver extends AbstractOpcDeviceDriver imple
}
}
public synchronized boolean instruction_require() throws Exception {
public synchronized boolean instruction_require(){
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
@@ -264,7 +264,13 @@ public class CargoLiftConveyorDeviceDriver extends AbstractOpcDeviceDriver imple
instdto.setPriority(priority);
instdto.setInstruction_status("0");
instdto.setExecute_device_code(start_point_code);
try {
instructionService.create(instdto);
} catch (Exception e) {
e.printStackTrace();
log.error("指令创建失败!",e.getMessage());
return false;
}
//创建指令后修改任务状态
task.setTask_status("1");
taskserver.update(task);

View File

@@ -137,7 +137,7 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme
@Override
public void execute() throws Exception {
public void execute() {
try {
device_code = this.getDeviceCode();
mode = this.itemProtocol.getMode();
@@ -512,7 +512,7 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme
/**
* 请求指令
*/
public synchronized boolean instruction_require() throws Exception {
public synchronized boolean instruction_require() {
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
@@ -632,7 +632,13 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme
instdto.setPriority(priority);
instdto.setInstruction_status("0");
instdto.setExecute_device_code(start_point_code);
try {
instructionService.create(instdto);
} catch (Exception e) {
e.printStackTrace();
log.error("指令创建失败!",e.getMessage());
return false;
}
//创建指令后修改任务状态
taskdto.setTask_status("1");
taskserver.update(taskdto);

View File

@@ -39,34 +39,34 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.util.*;
/**
* 西门子-输送机驱动-贴标
*/
/** 西门子-输送机驱动-贴标 */
@Slf4j
@Data
@RequiredArgsConstructor
public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor {
public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor {
protected ItemProtocol itemProtocol = new ItemProtocol(this);
@Autowired
InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class);
@Autowired
DeviceService deviceservice = SpringContextHolder.getBean(DeviceService.class);
@Autowired
RouteLineService routelineserver = SpringContextHolder.getBean(RouteLineService.class);
@Autowired
TaskService taskserver = SpringContextHolder.getBean(TaskService.class);
@Autowired DeviceService deviceservice = SpringContextHolder.getBean(DeviceService.class);
@Autowired RouteLineService routelineserver = SpringContextHolder.getBean(RouteLineService.class);
@Autowired TaskService taskserver = SpringContextHolder.getBean(TaskService.class);
@Autowired
DeviceAppService deviceAppservice = SpringContextHolder.getBean(DeviceAppService.class);
@Autowired
RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineService.class);
@Autowired
ParamService paramService = SpringContextHolder.getBean(ParamService.class);
@Autowired
AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class);
@Autowired ParamService paramService = SpringContextHolder.getBean(ParamService.class);
@Autowired AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class);
@Autowired
DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl");
@Autowired
NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvService.class);
@Autowired NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvService.class);
// 当前指令
Instruction inst = null;
@@ -123,15 +123,13 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
String vehicle_code;
@Override
public Device getDevice() {
return this.device;
}
@Override
public void execute() throws Exception {
public void execute() {
String message = null;
try {
device_code = this.getDeviceCode();
@@ -161,12 +159,18 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
logServer.deviceExecuteLog(this.device_code, "", "", "信号move" + last_move + "->" + move);
}
if (carrier_direction != last_carrier_direction) {
logServer.deviceItemValue(this.device_code, "carrier_direction", String.valueOf(carrier_direction));
logServer.deviceExecuteLog(this.device_code, "", "", "信号carrier_direction" + last_carrier_direction + "->" + carrier_direction);
logServer.deviceItemValue(
this.device_code, "carrier_direction", String.valueOf(carrier_direction));
logServer.deviceExecuteLog(
this.device_code,
"",
"",
"信号carrier_direction" + last_carrier_direction + "->" + carrier_direction);
}
if (error != last_error) {
logServer.deviceItemValue(this.device_code, "error", String.valueOf(error));
logServer.deviceExecuteLog(this.device_code, "", "", "信号error" + last_error + "->" + error);
logServer.deviceExecuteLog(
this.device_code, "", "", "信号error" + last_error + "->" + error);
}
if (task != last_task) {
logServer.deviceItemValue(this.device_code, "task", String.valueOf(task));
@@ -178,17 +182,28 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
// inst_message
inst = instructionService.findByCodeFromCache(String.valueOf(task));
if (inst != null) {
inst_message = "指令号:" + inst.getInstruction_code() + " " + inst.getStart_point_code() + "->" + inst.getNext_point_code() + " 载具号:" + inst.getVehicle_code();
if (StrUtil.equals(inst.getInstruction_status(), "1") && StrUtil.equals(this.getDeviceCode(), inst.getNext_device_code())) {
inst_message =
"指令号:"
+ inst.getInstruction_code()
+ " "
+ inst.getStart_point_code()
+ "->"
+ inst.getNext_point_code()
+ " 载具号:"
+ inst.getVehicle_code();
if (StrUtil.equals(inst.getInstruction_status(), "1")
&& StrUtil.equals(this.getDeviceCode(), inst.getNext_device_code())) {
vehicle_code = inst.getVehicle_code();
finish_instruction();
logServer.deviceExecuteLog(device_code, "", "", "入库输送线任务开始反馈完成状态,反馈成功,指令号:" + task);
} else if (StrUtil.equals(inst.getInstruction_status(), "0") && StrUtil.equals(this.getDeviceCode(), inst.getStart_device_code())) {
} else if (StrUtil.equals(inst.getInstruction_status(), "0")
&& StrUtil.equals(this.getDeviceCode(), inst.getStart_device_code())) {
inst.setInstruction_status("1");
instructionService.update(inst);
logServer.deviceExecuteLog(device_code, "", "", "入库输送线任务开始反馈执行中状态,反馈成功,指令号:" + task);
} else {
logServer.deviceExecuteLog(device_code, "", "", "入库输送线任务开始反馈执行中状态,反馈失败任务状态不为就绪或者执行中状态,指令号:" + task);
logServer.deviceExecuteLog(
device_code, "", "", "入库输送线任务开始反馈执行中状态,反馈失败任务状态不为就绪或者执行中状态,指令号:" + task);
}
} else {
logServer.deviceExecuteLog(device_code, "", "", "入库输送线任务开始反馈任务状态,反馈失败,查询不到指令号:" + task);
@@ -224,7 +239,6 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
Instruction instruction = null;
List toInstructions;
switch (mode) {
case 1:
log.debug("设备运转模式:等待工作");
@@ -268,7 +282,6 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
applyAgvTask();
}
break;
}
}
last_mode = mode;
@@ -278,7 +291,6 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
last_task = task;
}
public boolean exe_error() {
if (this.error == 0) {
return true;
@@ -334,16 +346,20 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
return true;
}
protected void thingToNothing() throws Exception {
requireSucess = false;
}
public void writing(String param, String value) {
String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
+ "." + param;
String to_param =
this.getDevice().getOpc_server_code()
+ "."
+ this.getDevice().getOpc_plc_code()
+ "."
+ this.getDevice().getDevice_code()
+ "."
+ param;
// String opcservcerid = this.getDevice().getOpc_server_id();
// Server server = ReadUtil.getServer(opcservcerid);
Map<String, Object> itemMap = new HashMap<String, Object>();
@@ -351,7 +367,8 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
itemMap.put(to_param, Integer.parseInt(value));
// itemMap.put(to_param, Integer.parseInt(value));
this.control(itemMap);
logServer.deviceExecuteLog(device_code, "", "", "下发电气信号设备号:" + device_code + ",下发电气:" + to_param + ",下发电气值:" + value);
logServer.deviceExecuteLog(
device_code, "", "", "下发电气信号设备号:" + device_code + ",下发电气:" + to_param + ",下发电气值:" + value);
}
public void executing(Server server, Map<String, Object> itemMap) {
@@ -364,7 +381,6 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
// Server server = ReadUtil.getServer(opcservcerid);
Map<String, Object> itemMap = new HashMap<String, Object>();
this.control(itemMap);
}
@Override
@@ -458,23 +474,26 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
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");
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"));
}
}
logServer.deviceExecuteLog(device_code, "", "", "下发电气信号:" + itemMap);
this.control(itemMap);
}
/**
* 请求指令
*/
public synchronized boolean instruction_require() throws Exception {
/** 请求指令 */
public synchronized boolean instruction_require() {
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
if (date.getTime() - this.instruction_require_time.getTime()
< (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
return false;
} else {
@@ -482,7 +501,8 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
// 判断是否存在起点相同 任务状态就绪的任务
TaskDto taskdto = taskserver.findByStartCodeAndReady(device_code);
if (!ObjectUtil.isEmpty(taskdto)) {
// if (!ObjectUtils.isEmpty(instructionService.findByBarcodeFromCache(container_code))) {
// if
// (!ObjectUtils.isEmpty(instructionService.findByBarcodeFromCache(container_code))) {
// return false;
// }
// 需要判断当前设备是否已经存在就绪的指令 如果存在就直接下发 不存在则创建
@@ -515,7 +535,8 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
this.writing(list);
if (task != Integer.parseInt(inst.getInstruction_code())) {
this.writing(list);
logServer.deviceExecuteLog(device_code, "", "", inst.getInstruction_code() + "再次下发电气信号");
logServer.deviceExecuteLog(
device_code, "", "", inst.getInstruction_code() + "再次下发电气信号");
}
message = "下发电气任务号成功";
requireSucess = true;
@@ -535,12 +556,13 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
String route_plan_code = taskdto.getRoute_plan_code();
String next_device_code = "";
/**
* 开始平均分配
*/
String this_coevice_code = taskserver.queryAssignedByDevice(device_code, taskdto.getNext_device_code());
/** 开始平均分配 */
String this_coevice_code =
taskserver.queryAssignedByDevice(device_code, taskdto.getNext_device_code());
if (StrUtil.isEmpty(this_coevice_code)) {
List<RouteLineDto> shortPathsList = routeLineService.getShortPathLines(start_device_code, taskdto.getNext_device_code(), route_plan_code);
List<RouteLineDto> shortPathsList =
routeLineService.getShortPathLines(
start_device_code, taskdto.getNext_device_code(), route_plan_code);
RouteLineDto routeLineDto = shortPathsList.get(0);
String path = routeLineDto.getPath();
@@ -560,7 +582,9 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
next_device_code = this_coevice_code;
}
// 校验路由关系
List<RouteLineDto> shortPathsList = routeLineService.getShortPathLines(start_device_code, next_device_code, route_plan_code);
List<RouteLineDto> shortPathsList =
routeLineService.getShortPathLines(
start_device_code, next_device_code, route_plan_code);
if (ObjectUtils.isEmpty(shortPathsList)) {
throw new RuntimeException("路由不通!");
}
@@ -592,7 +616,13 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
instdto.setPriority(priority);
instdto.setInstruction_status("0");
instdto.setExecute_device_code(start_point_code);
try {
instructionService.create(instdto);
} catch (Exception e) {
e.printStackTrace();
log.error("指令创建失败!",e.getMessage());
return false;
}
// 创建指令后修改任务状态
taskdto.setTask_status("1");
taskserver.update(taskdto);
@@ -656,7 +686,8 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
// 申请贴标
public synchronized void applyLabeling() {
Date date = new Date();
if (date.getTime() - this.require_apply_labeling_time.getTime() < (long) this.instruction_require_time_out) {
if (date.getTime() - this.require_apply_labeling_time.getTime()
< (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
return;
} else {
@@ -685,16 +716,23 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
}
ApplyLabelingAndBindingRequest applyLabelingAndBindingRequest =
new ApplyLabelingAndBindingRequest();
JSONObject device_json = WQLObject.getWQLObject("acs_storage_cell").query("storage_code ='" + this.device_code + "'").uniqueResult(0);
JSONObject device_json =
WQLObject.getWQLObject("acs_storage_cell")
.query("storage_code ='" + this.device_code + "'")
.uniqueResult(0);
String start_point_code = null;
if (!ObjectUtil.isEmpty(device_json)) {
start_point_code = (String) device_json.get("parent_storage_code") == null ? this.device_code : (String) device_json.get("parent_storage_code");
start_point_code =
(String) device_json.get("parent_storage_code") == null
? this.device_code
: (String) device_json.get("parent_storage_code");
}
applyLabelingAndBindingRequest.setDevice_code(start_point_code);
applyLabelingAndBindingRequest.setType("1");
applyLabelingAndBindingRequest.setVehicle_code(vehicle_code);
applyLabelingAndBindingRequest.setWeight(String.valueOf(weight / 100));
ApplyLabelingAndBindingResponse applyLabelingAndBindingResponse = acsToWmsService.applyLabelingAndBindingRequest(applyLabelingAndBindingRequest);
ApplyLabelingAndBindingResponse applyLabelingAndBindingResponse =
acsToWmsService.applyLabelingAndBindingRequest(applyLabelingAndBindingRequest);
if (applyLabelingAndBindingResponse.getstatus() == 200) {
message = "申请贴标成功";
@@ -716,7 +754,8 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
// 申请捆扎
public synchronized void applyLaStrangulation() {
Date date = new Date();
if (date.getTime() - this.require_apply_strangulation_time.getTime() < (long) this.instruction_require_time_out) {
if (date.getTime() - this.require_apply_strangulation_time.getTime()
< (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
return;
} else {
@@ -737,15 +776,22 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
}
ApplyLabelingAndBindingRequest applyLabelingAndBindingRequest =
new ApplyLabelingAndBindingRequest();
JSONObject device_json = WQLObject.getWQLObject("acs_storage_cell").query("storage_code ='" + this.device_code + "'").uniqueResult(0);
JSONObject device_json =
WQLObject.getWQLObject("acs_storage_cell")
.query("storage_code ='" + this.device_code + "'")
.uniqueResult(0);
String start_point_code = null;
if (!ObjectUtil.isEmpty(device_json)) {
start_point_code = (String) device_json.get("parent_storage_code") == null ? this.device_code : (String) device_json.get("parent_storage_code");
start_point_code =
(String) device_json.get("parent_storage_code") == null
? this.device_code
: (String) device_json.get("parent_storage_code");
}
applyLabelingAndBindingRequest.setDevice_code(start_point_code);
applyLabelingAndBindingRequest.setType("2");
applyLabelingAndBindingRequest.setVehicle_code(vehicle_code);
ApplyLabelingAndBindingResponse applyLabelingAndBindingResponse = acsToWmsService.applyLabelingAndBindingRequest(applyLabelingAndBindingRequest);
ApplyLabelingAndBindingResponse applyLabelingAndBindingResponse =
acsToWmsService.applyLabelingAndBindingRequest(applyLabelingAndBindingRequest);
if (applyLabelingAndBindingResponse.getstatus() == 200) {
if (ObjectUtil.isNotEmpty(applyLabelingAndBindingResponse.getData())) {
Map datas = applyLabelingAndBindingResponse.getData();
@@ -786,13 +832,13 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
} else {
message = applyLabelingAndBindingResponse.getMessage();
}
}
}
public synchronized void emptyIn() {
Date date = new Date();
if (date.getTime() - this.require_empty_in_time.getTime() < (long) this.instruction_require_time_out) {
if (date.getTime() - this.require_empty_in_time.getTime()
< (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
return;
} else {
@@ -816,14 +862,14 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
message = "申请空盘入库失败," + jo.get("message").toString();
}
}
}
}
}
public synchronized void applyAgvTask() {
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
if (date.getTime() - this.instruction_require_time.getTime()
< (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
return;
} else {
@@ -846,14 +892,14 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
message = "申请AGV搬运任务失败," + jo.get("message").toString();
}
}
}
}
}
public synchronized void emptyOut() {
Date date = new Date();
if (date.getTime() - this.require_empty_out_time.getTime() < (long) this.instruction_require_time_out) {
if (date.getTime() - this.require_empty_out_time.getTime()
< (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
return;
} else {
@@ -876,10 +922,7 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
message = "申请空盘出库失败," + jo.get("message").toString();
}
}
}
}
}
}

View File

@@ -140,7 +140,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl
@Override
public synchronized void execute() throws Exception {
public synchronized void execute(){
String message = null;
try {
device_code = this.getDeviceCode();

View File

@@ -141,7 +141,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver
@Override
public void execute() throws Exception {
public void execute() {
String message = null;
try {
device_code = this.getDeviceCode();
@@ -371,7 +371,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver
}
public boolean instruction_apply() throws Exception {
public boolean instruction_apply() {
return false;
}
@@ -433,7 +433,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver
}
public synchronized boolean apply_InEmpty() throws Exception {
public synchronized boolean apply_InEmpty(){
return false;
}

View File

@@ -148,7 +148,7 @@ public class StandardCoveyorControlWithPlcScannerDeviceDriver extends AbstractOp
}
@Override
public void execute() throws Exception {
public void execute() {
try {
device_code = this.getDeviceCode();
mode = this.itemProtocol.getMode();
@@ -614,12 +614,12 @@ public class StandardCoveyorControlWithPlcScannerDeviceDriver extends AbstractOp
this.control(itemMap);
}
public boolean instruction_require(String container_code) throws Exception {
public boolean instruction_require(String container_code) {
return instruction_require(container_code, WcsConfig.task_container_type_default_desc);
}
@Transactional(rollbackFor = Exception.class)
public synchronized boolean instruction_apply(String container_code) throws Exception {
public synchronized boolean instruction_apply(String container_code) {
Date date = new Date();
if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
@@ -725,7 +725,7 @@ public class StandardCoveyorControlWithPlcScannerDeviceDriver extends AbstractOp
* @param container_type
*/
@Transactional(rollbackFor = Exception.class)
public synchronized boolean instruction_require(String container_code, String container_type) throws Exception {
public synchronized boolean instruction_require(String container_code, String container_type) {
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);

View File

@@ -132,39 +132,48 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
return barcode;
}
public String barcode() throws Exception {
public String barcode() {
ScannerDeviceDriver scanner = this.getScanner();
return scanner.readBarcode();
}
public void clearBarcode() throws Exception {
public void clearBarcode() {
ScannerDeviceDriver scanner = this.getScanner();
scanner.cleanBarcode();
logServer.deviceExecuteLog(this.device_code, "", "", "清理条码");
}
public synchronized boolean finish_instruction() throws Exception {
public synchronized boolean finish_instruction(){
try {
instructionService.finish(inst);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
private ScannerDeviceDriver getScanner() throws Exception {
private ScannerDeviceDriver getScanner() {
String scanner_code = (String) this.getDevice().getExtraValue().get(StandardConveyorWithScannerConfig.relation_scanner);
if (StrUtil.isEmpty(scanner_code)) {
throw new Exception("未配置读码器");
log.error("未配置读码器");
// throw new Exception("未配置读码器");
} else {
Device device = deviceAppservice.findDeviceByCode(scanner_code);
if (device == null) {
throw new Exception("无设备:" + scanner_code);
// throw new Exception("无设备:" + scanner_code);
log.error("无设备:" + scanner_code);
} else {
DeviceDriver deviceDriver = device.getDeviceDriver();
if (!(deviceDriver instanceof ScannerDeviceDriver)) {
throw new Exception("扫码器类型不对,不是ScannerDeviceDriver");
// throw new Exception("扫码器类型不对,不是ScannerDeviceDriver");
log.error("扫码器类型不对,不是ScannerDeviceDriver");
} else {
ScannerDeviceDriver driver = (ScannerDeviceDriver) deviceDriver;
return driver;
}
}
}
return null;
}
@Override
@@ -174,7 +183,7 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
@Override
public void execute() throws Exception {
public void execute(){
String message = null;
try {
device_code = this.getDeviceCode();
@@ -414,11 +423,11 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
this.control(itemMap);
}
public boolean instruction_require(String container_code) throws Exception {
public boolean instruction_require(String container_code) {
return instruction_require(container_code, WcsConfig.task_container_type_default_desc);
}
public synchronized boolean instruction_apply(String container_code) throws Exception {
public synchronized boolean instruction_apply(String container_code) {
Date date = new Date();
if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
@@ -480,7 +489,7 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
* @param container_code
* @param container_type
*/
public synchronized boolean instruction_require(String container_code, String container_type) throws Exception {
public synchronized boolean instruction_require(String container_code, String container_type) {
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
@@ -646,7 +655,13 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
instdto.setPriority(priority);
instdto.setInstruction_status("0");
instdto.setExecute_device_code(start_point_code);
try {
instructionService.create(instdto);
} catch (Exception e) {
e.printStackTrace();
log.error("指令创建失败!",e.getMessage());
return false;
}
//创建指令后修改任务状态
taskdto.setTask_status("1");
taskserver.update(taskdto);

View File

@@ -12,12 +12,11 @@ import org.nl.acs.socket.SocketConfig;
import org.nl.acs.udw.UnifiedDataAccessor;
import org.nl.acs.udw.UnifiedDataAccessorFactory;
/**
* 标准版扫码器
*/
/** 标准版扫码器 */
@Slf4j
@Data
public class StandardScannerDeviceDriver extends AbstractDeviceDriver implements ScannerDeviceDriver, DeviceDriver, DeviceStageMonitor {
public class StandardScannerDeviceDriver extends AbstractDeviceDriver
implements ScannerDeviceDriver, DeviceDriver, DeviceStageMonitor {
UnifiedDataAccessor accessor_value;
@@ -31,31 +30,35 @@ public class StandardScannerDeviceDriver extends AbstractDeviceDriver implements
}
@Override
public String readBarcode() throws Exception {
public String readBarcode() {
String ip = this.getIp();
if (StrUtil.isEmpty(ip)) {
throw new Exception("ip未配置");
// throw new Exception("ip未配置");
log.error("ip未配置");
} else {
String result = (String) this.accessor_value.getValue(this.getIp());
return result;
}
return null;
}
@Override
public void writeBarcode(String barcode) throws Exception {
public void writeBarcode(String barcode) {
String ip = this.getIp();
if (StrUtil.isEmpty(ip)) {
throw new Exception("ip未配置");
// throw new Exception("ip未配置");
log.error("ip未配置");
} else {
this.accessor_value.setValueWithPersistence(this.getIp(), barcode);
}
}
@Override
public void cleanBarcode() throws Exception {
public void cleanBarcode() {
String ip = this.getIp();
if (StrUtil.isEmpty(ip)) {
throw new Exception("ip未配置");
log.error("ip未配置");
// throw new Exception("ip未配置");
} else {
this.accessor_value.setValueWithPersistence(this.getIp(), (Object) null);
}
@@ -75,8 +78,5 @@ public class StandardScannerDeviceDriver extends AbstractDeviceDriver implements
}
@Override
public void setDeviceStatus(JSONObject data) {
public void setDeviceStatus(JSONObject data) {}
}
}

View File

@@ -1,14 +1,11 @@
package org.nl.acs.device_driver.driver;
import com.alibaba.fastjson.JSONObject;
import org.nl.acs.ext.wms.data.JsonUtl;
import org.nl.acs.opc.OpcConfig;
import org.nl.acs.opc.OpcServerService;
import org.nl.acs.opc.OpcServerServiceImpl;
import org.nl.acs.opc.WcsConfig;
import org.nl.acs.udw.UnifiedDataAccessor;
import org.nl.acs.udw.UnifiedDataAccessorFactory;
import org.nl.acs.udw.UnifiedDataAppService;
import org.nl.modules.wql.exception.WDKException;
import org.nl.modules.wql.util.SpringContextHolder;
@@ -46,15 +43,13 @@ public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements Opc
System.out.println(entry.getKey() + ":" + entry.getValue());
p2[i] = new ItemValue();
p2[i].setItem_code(entry.getKey());
p2[i].setItem_value((String) entry.getValue());
p2[i].setItem_value( entry.getValue());
i++;
}
return this.control(p2);
}
public boolean control(ItemValue[] itemValues) {
if (itemValues != null && itemValues.length != 0) {
String this_items = JsonUtl.parseWithoutException(itemValues);

View File

@@ -1,5 +1,6 @@
package org.nl.acs.device_driver.driver;
import com.esotericsoftware.minlog.Log;
import org.nl.acs.device_driver.DeviceDriver;
public interface ExecutableDeviceDriver extends DeviceDriver {
@@ -8,10 +9,10 @@ public interface ExecutableDeviceDriver extends DeviceDriver {
this.execute();
} catch (Throwable var6) {
String message = "线程调用异常:" + var6.getMessage();
Log.error(message);
} finally {
}
}
void execute() throws Exception;
void execute();
}

View File

@@ -637,7 +637,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
@Override
@Transactional(rollbackFor = Exception.class)
public void finish(String id) throws Exception {
public void finish(String id) {
Instruction entity = this.findById(id);
//if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!");
String currentUsername = SecurityUtils.getCurrentUsername();
@@ -718,7 +718,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
@Override
@Transactional(rollbackFor = Exception.class)
public void finish(Instruction dto) throws Exception {
public void finish(Instruction dto) {
String now = DateUtil.now();
dto.setInstruction_status("2");
WQLObject wo = WQLObject.getWQLObject("acs_instruction");
@@ -773,7 +773,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
}
@Override
public void finishAndCreateNextInst(Instruction dto) throws Exception {
public void finishAndCreateNextInst(Instruction dto){
dto = foramte(dto);
String device_code = dto.getNext_device_code();
WQLObject taskwo = WQLObject.getWQLObject("acs_task");
@@ -829,7 +829,12 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
instdto.setPriority(acsTask.getPriority());
instdto.setInstruction_status("0");
instdto.setExecute_device_code(dto.getNext_device_code());
try {
this.create(instdto);
} catch (Exception e) {
e.printStackTrace();
log.error("完成并创建下一条指令",e.getMessage());
}
}
@Override

View File

@@ -128,7 +128,9 @@ public class OpcServerServiceImpl implements OpcServerService, ApplicationAutoIn
try {
Server server = (Server) this.servers.get(code);
server.disconnect();
} catch (Exception var3) {
} catch (Exception e) {
e.printStackTrace();
log.error("清理server异常,",e.getMessage());
}
this.servers.remove(code);

View File

@@ -31,7 +31,7 @@ public class OpcUtl {
public static void writeValue(Group group, WriteRequest... requests) throws WDKException {
try {
Map e = group.write(requests);
Map<Item, Integer> e = group.write(requests);
boolean is_success = true;
StringBuilder message = new StringBuilder();
Iterator arg4 = e.keySet().iterator();
@@ -59,6 +59,7 @@ public class OpcUtl {
// group.write(requests);
}
} catch (JIException arg7) {
log.info("下发信号失败:"+arg7.getMessage());
throw new WDKException(arg7);
}
}