|
|
@ -93,6 +93,7 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp |
|
|
|
private int instruction_require_time_out; |
|
|
|
boolean requireSucess = false; |
|
|
|
boolean inrequireSucess = false; |
|
|
|
boolean emptyrequireSucess = false; |
|
|
|
|
|
|
|
private int instruction_finished_time_out; |
|
|
|
|
|
|
@ -110,6 +111,7 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp |
|
|
|
//上次指令
|
|
|
|
Instruction last_inst = null; |
|
|
|
|
|
|
|
Object object = new Object(); |
|
|
|
//触摸屏手动触发任务
|
|
|
|
private Boolean is_has_task = false; |
|
|
|
|
|
|
@ -141,7 +143,12 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp |
|
|
|
hasGoods = this.itemProtocol.getMove(); |
|
|
|
|
|
|
|
if (mode != last_mode) { |
|
|
|
this.setRequireSucess(false); |
|
|
|
if (mode == 5){ |
|
|
|
this.setEmptyrequireSucess(false); |
|
|
|
} |
|
|
|
if (mode == 6){ |
|
|
|
this.setInrequireSucess(false); |
|
|
|
} |
|
|
|
this.execute_log.setResource(this.devicecode, this.device.getDevice_name()); |
|
|
|
this.execute_log.log("设备:" + device_code + ",last_mode -> mode:" + last_mode + "->" + mode); |
|
|
|
} |
|
|
@ -226,6 +233,7 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp |
|
|
|
message = ""; |
|
|
|
Instruction instruction = null; |
|
|
|
List toInstructions; |
|
|
|
|
|
|
|
switch (mode) { |
|
|
|
case 1: |
|
|
|
log.debug("设备运转模式:等待工作"); |
|
|
@ -285,15 +293,15 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp |
|
|
|
this.instruction_require(container); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
case 5: |
|
|
|
if (!requireSucess){ |
|
|
|
if (!emptyrequireSucess){ |
|
|
|
//mode = 5 并且工位上无货时申请空托盘
|
|
|
|
if (move == 0){ |
|
|
|
this.execute_log.log("设备:" + devicecode + ",move:" + move); |
|
|
|
this.apply_empty_require(container); |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
case 6: |
|
|
|
if (!inrequireSucess){ |
|
|
|
if (move == 1){ |
|
|
@ -301,6 +309,7 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp |
|
|
|
this.apply_in_require(container); |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
switch (flag) { |
|
|
@ -420,10 +429,10 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp |
|
|
|
public boolean instruction_require(String container_code) { |
|
|
|
return instruction_require(container_code, WcsConfig.task_container_type_default_desc); |
|
|
|
} |
|
|
|
public boolean apply_empty_require(String container_code) { |
|
|
|
public synchronized boolean apply_empty_require(String container_code) { |
|
|
|
return apply_empty_require(container_code, WcsConfig.task_container_type_default_desc); |
|
|
|
} |
|
|
|
public boolean apply_in_require(String container_code) { |
|
|
|
public synchronized boolean apply_in_require(String container_code) { |
|
|
|
return apply_in_require(container_code, WcsConfig.task_container_type_default_desc); |
|
|
|
} |
|
|
|
|
|
|
@ -466,12 +475,12 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp |
|
|
|
if (num != 0) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
//判断检测站点是否锁定,如果锁定就结束本次循环
|
|
|
|
/* //判断检测站点是否锁定,如果锁定就结束本次循环
|
|
|
|
JSONObject jsonObject = runpointwo.query("device_code = '" + next_device_code + "' and islock = '1'").uniqueResult(0); |
|
|
|
if (ObjectUtil.isNotEmpty(jsonObject)) { |
|
|
|
this.execute_log.log("设备:" + devicecode+ "", "", "对应路由设备," + next_device_code + "已锁定"); |
|
|
|
continue; |
|
|
|
} |
|
|
|
}*/ |
|
|
|
//创建任务
|
|
|
|
TaskDto dto = new TaskDto(); |
|
|
|
String now = DateUtil.now(); |
|
|
@ -492,12 +501,12 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp |
|
|
|
dto.setNext_point_code(next_device_code); |
|
|
|
try { |
|
|
|
taskserver.create(dto); |
|
|
|
//任务创建成功 锁定终点设备
|
|
|
|
/* //任务创建成功 锁定终点设备
|
|
|
|
JSONObject map = new JSONObject(); |
|
|
|
map.put("islock", "1"); |
|
|
|
map.put("islock", "true"); |
|
|
|
map.put("update_by", "auto"); |
|
|
|
map.put("update_time", DateUtil.now()); |
|
|
|
runpointwo.update(map, "device_code = '" + next_device_code + "'"); |
|
|
|
runpointwo.update(map, "device_code = '" + next_device_code + "'");*/ |
|
|
|
flag = true; |
|
|
|
break; |
|
|
|
} catch (Exception e) { |
|
|
@ -508,7 +517,7 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp |
|
|
|
|
|
|
|
//生成任务成功
|
|
|
|
if (flag) { |
|
|
|
requireSucess = false; |
|
|
|
inrequireSucess = true; |
|
|
|
this.execute_log.log("设备:" + devicecode+ "", "", "对应路由设备,生成任务成功已锁定"); |
|
|
|
} |
|
|
|
return true; |
|
|
@ -546,24 +555,31 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp |
|
|
|
if (route_link_device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver){ |
|
|
|
standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) route_link_device.getDeviceDriver(); |
|
|
|
// TODO 判断堆叠位是否有货,没货就结束本次循环
|
|
|
|
if (standardEmptyPalletSiteDeviceDriver.getMove() != 1) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
//判断堆叠位的数量是否大于0,如果=0就结束本次循环
|
|
|
|
if (standardEmptyPalletSiteDeviceDriver.getNumber() == 0){ |
|
|
|
if (standardEmptyPalletSiteDeviceDriver.getMove() != 1 || standardEmptyPalletSiteDeviceDriver.getNumber() == 0) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
//判断是否已经有到该终点设备的任务,如果有就结束循环
|
|
|
|
try { |
|
|
|
Thread.sleep(2000); |
|
|
|
} catch (InterruptedException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
//判断是否已经有该起点设备的任务,如果有就结束循环
|
|
|
|
int num = taskserver.querySameOriginTask(start_device_code); |
|
|
|
if (num != 0) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
//判断终点是否锁定,如果被锁定就结束循环
|
|
|
|
JSONObject jsonObject = runpointwo.query("device_code = '" + next_device_code + "' and islock = '1'").uniqueResult(0); |
|
|
|
//判断是否已经有到该起点设备的任务,如果有就结束循环
|
|
|
|
int num1 = taskserver.querySameDestinationTask(next_device_code); |
|
|
|
if (num1 != 0) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
/* //判断起点是否锁定,如果被锁定就结束循环
|
|
|
|
JSONObject jsonObject = runpointwo.query("device_code = '" + next_device_code + "' and islock = 'true'").uniqueResult(0); |
|
|
|
if (ObjectUtil.isNotEmpty(jsonObject)) { |
|
|
|
this.execute_log.log("设备:" + devicecode+ "", "", "对应路由设备," + next_device_code + "已锁定"); |
|
|
|
continue; |
|
|
|
} |
|
|
|
}*/ |
|
|
|
//创建任务
|
|
|
|
TaskDto dto = new TaskDto(); |
|
|
|
String now = DateUtil.now(); |
|
|
@ -586,10 +602,10 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp |
|
|
|
taskserver.create(dto); |
|
|
|
//任务创建成功 锁定该终点设备
|
|
|
|
JSONObject map = new JSONObject(); |
|
|
|
map.put("islock", "1"); |
|
|
|
map.put("islock", "true"); |
|
|
|
map.put("update_by", "auto"); |
|
|
|
map.put("update_time", DateUtil.now()); |
|
|
|
runpointwo.update(map, "device_code = '" + next_device_code + "'"); |
|
|
|
runpointwo.update(map, "device_code = '" + start_device_code + "'"); |
|
|
|
flag = true; |
|
|
|
break; |
|
|
|
} catch (Exception e) { |
|
|
@ -600,7 +616,7 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp |
|
|
|
|
|
|
|
//生成任务成功
|
|
|
|
if (flag) { |
|
|
|
requireSucess = false; |
|
|
|
emptyrequireSucess = true; |
|
|
|
this.execute_log.log("设备:" + devicecode+ "", "", "对应路由设备,生成任务成功已锁定"); |
|
|
|
} |
|
|
|
return true; |
|
|
|