Merge remote-tracking branch 'origin/master'
# Conflicts: # acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java
This commit is contained in:
@@ -78,7 +78,7 @@ public interface XianGongAgvService {
|
|||||||
public HttpResponse sendOrderSequencesToXZ(Instruction inst) throws Exception;
|
public HttpResponse sendOrderSequencesToXZ(Instruction inst) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加
|
* 追加运单
|
||||||
* @param inst
|
* @param inst
|
||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
@@ -109,11 +109,6 @@ public interface XianGongAgvService {
|
|||||||
*/
|
*/
|
||||||
JSONObject xgAGVWaitPointRequest(JSONObject requestParam);
|
JSONObject xgAGVWaitPointRequest(JSONObject requestParam);
|
||||||
|
|
||||||
/**
|
|
||||||
* 运单号查询运单状态
|
|
||||||
*/
|
|
||||||
public HttpResponse selectOrderByInstCode(String instCode);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询场景中指定机器人信息
|
* 查询场景中指定机器人信息
|
||||||
|
|||||||
@@ -245,46 +245,29 @@ public class XianGongAgvServiceImpl implements XianGongAgvService {
|
|||||||
@LokiLog(type = LokiLogType.AGV)
|
@LokiLog(type = LokiLogType.AGV)
|
||||||
@Override
|
@Override
|
||||||
public HttpResponse sendOrderSequencesToXZ(Instruction inst) throws Exception {
|
public HttpResponse sendOrderSequencesToXZ(Instruction inst) throws Exception {
|
||||||
/*JSONObject jo = new JSONObject();
|
|
||||||
jo.put("intendedVehicle", "");
|
|
||||||
jo.put("category", "");
|
|
||||||
jo.put("failureFatal", false);
|
|
||||||
jo.put("complete", false);
|
|
||||||
JSONArray transports = new JSONArray();
|
|
||||||
JSONObject orderjo = new JSONObject();
|
|
||||||
orderjo.put("name", inst.getInstruction_code());
|
|
||||||
orderjo.put("order", createOrederData(inst, CommonFinalParam.ONE));
|
|
||||||
transports.add(orderjo);
|
|
||||||
jo.put("transports", transports);
|
|
||||||
|
|
||||||
JSONArray ja1 = new JSONArray();
|
|
||||||
JSONObject jo1 = new JSONObject();
|
|
||||||
jo1.put("key", "");
|
|
||||||
jo1.put("value", "");
|
|
||||||
ja1.add(jo1);
|
|
||||||
jo.put("properties", ja1);
|
|
||||||
log.info("任务号:{},指令号{},下发agv订单序列参数:{}", inst.getTask_code(), inst.getInstruction_code(), jo.toString());*/
|
|
||||||
|
|
||||||
com.alibaba.fastjson.JSONObject jo = new com.alibaba.fastjson.JSONObject();
|
com.alibaba.fastjson.JSONObject jo = new com.alibaba.fastjson.JSONObject();
|
||||||
jo.put("id", inst.getInstruction_code());
|
jo.put("id", inst.getInstruction_code());
|
||||||
|
//运单封口,true=创建运单之后不可添加动作块;false=创建运单可以添加动作块
|
||||||
jo.put("complete", true);
|
jo.put("complete", true);
|
||||||
|
//动作块
|
||||||
jo.put("blocks", createBlocksData(inst));
|
jo.put("blocks", createBlocksData(inst));
|
||||||
|
//运单优先级
|
||||||
jo.put("priority", inst.getPriority());
|
jo.put("priority", inst.getPriority());
|
||||||
log.info("任务号:{},指令号{},下发agv订单序列参数:{}", inst.getTask_code(), inst.getInstruction_code(), jo.toString());
|
log.info("任务号:{},指令号{},下发agv订单序列参数:{}", inst.getTask_code(), inst.getInstruction_code(), jo);
|
||||||
|
|
||||||
if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), CommonFinalParam.ONE)) {
|
if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), CommonFinalParam.ONE)) {
|
||||||
String agvurl = paramService.findByCode(AcsConfig.AGVURL).getValue();
|
String agvurl = paramService.findByCode(AcsConfig.AGVURL).getValue();
|
||||||
String agvport = paramService.findByCode(AcsConfig.AGVPORT).getValue();
|
String agvport = paramService.findByCode(AcsConfig.AGVPORT).getValue();
|
||||||
|
|
||||||
agvurl = agvurl + ":" + agvport + "/api/route/orderSequences/" + inst.getTask_code();
|
agvurl = agvurl + ":" + agvport + "/setOrder";
|
||||||
|
|
||||||
|
log.info(agvurl);
|
||||||
HttpResponse result = HttpRequest.post(agvurl)
|
HttpResponse result = HttpRequest.post(agvurl)
|
||||||
//表单内容
|
//表单内容
|
||||||
.body(String.valueOf(jo))
|
.body(String.valueOf(jo))
|
||||||
//超时,毫秒
|
//超时,毫秒
|
||||||
.timeout(20000)
|
.timeout(20000)
|
||||||
.execute();
|
.execute();
|
||||||
log.info(agvurl);
|
|
||||||
log.info("任务号:{},指令号{},状态{},下发agv订单序列反馈:{}", inst.getTask_code(), inst.getInstruction_code(), result.getStatus(), result.body());
|
log.info("任务号:{},指令号{},状态{},下发agv订单序列反馈:{}", inst.getTask_code(), inst.getInstruction_code(), result.getStatus(), result.body());
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@@ -294,41 +277,57 @@ public class XianGongAgvServiceImpl implements XianGongAgvService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下发运单
|
* 下发动作块信号
|
||||||
|
*
|
||||||
* @param inst
|
* @param inst
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public JSONArray createBlocksData(Instruction inst) {
|
public JSONArray createBlocksData(Instruction inst) {
|
||||||
JSONArray ja = new JSONArray();
|
JSONArray ja = new JSONArray();
|
||||||
sendStartDeviceOrder(ja,inst.getStart_device_code(), inst.getStart_point_code(),inst.getInstruction_code());
|
String instruction_code = inst.getInstruction_code();
|
||||||
sendEndDeviceOrder(ja,inst.getStart_device_code(),inst.getInstruction_code(),inst.getNext_point_code(),inst.getNext_device_code());
|
String start_device_code = inst.getStart_device_code();
|
||||||
if(StrUtil.isNotEmpty(inst.getStart_device_code2())){
|
String start_point_code = inst.getStart_point_code();
|
||||||
sendStartDeviceOrder(ja,inst.getStart_device_code2(), inst.getStart_point_code2(),inst.getInstruction_code());
|
String next_device_code = inst.getNext_device_code();
|
||||||
|
String next_point_code = inst.getNext_point_code();
|
||||||
|
sendStartDeviceOrder(ja, start_device_code, start_point_code, instruction_code);
|
||||||
|
sendEndDeviceOrder(ja, start_device_code, instruction_code, next_point_code, next_device_code);
|
||||||
|
String start_device_code2 = inst.getStart_device_code2();
|
||||||
|
String start_point_code2 = inst.getStart_point_code2();
|
||||||
|
if (StrUtil.isNotEmpty(start_device_code2)) {
|
||||||
|
sendStartDeviceOrder(ja, start_device_code2, start_point_code2, instruction_code);
|
||||||
}
|
}
|
||||||
if(StrUtil.isNotEmpty(inst.getNext_device_code2())){
|
String next_device_code2 = inst.getNext_device_code2();
|
||||||
sendEndDeviceOrder(ja,inst.getNext_device_code2(),inst.getInstruction_code(),inst.getNext_point_code2(),inst.getNext_device_code2());
|
String next_point_code2 = inst.getNext_point_code2();
|
||||||
|
if (StrUtil.isNotEmpty(next_device_code2)) {
|
||||||
|
sendEndDeviceOrder(ja, start_device_code2, instruction_code, next_device_code2, next_point_code2);
|
||||||
}
|
}
|
||||||
return ja;
|
return ja;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下发取货
|
* 下发取货信号
|
||||||
* @param device_code
|
* @param ja
|
||||||
* @param instCode
|
* @param pointCode 起始点位
|
||||||
|
* @param device_code 起始设备
|
||||||
|
* @param instCode 指令号
|
||||||
*/
|
*/
|
||||||
public void sendStartDeviceOrder(JSONArray ja,String pointCode, String device_code,String instCode){
|
public void sendStartDeviceOrder(JSONArray ja, String pointCode, String device_code, String instCode) {
|
||||||
|
|
||||||
Device startDevice = deviceAppService.findDeviceByCode(device_code);
|
Device startDevice = deviceAppService.findDeviceByCode(device_code);
|
||||||
//忽略取货校验
|
//忽略取货校验
|
||||||
if ("true".equals(startDevice.getExtraValue().get("ignore_pickup_check"))) {
|
if ("true".equals(startDevice.getExtraValue().get("ignore_pickup_check"))) {
|
||||||
//取货前等待
|
//取货前等待
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
|
//动作块id
|
||||||
jo.put("blockId", IdUtil.simpleUUID());
|
jo.put("blockId", IdUtil.simpleUUID());
|
||||||
|
//目的地名称
|
||||||
jo.put("location", pointCode + "INGET");
|
jo.put("location", pointCode + "INGET");
|
||||||
|
//执行脚本
|
||||||
jo.put("operation", "script");
|
jo.put("operation", "script");
|
||||||
jo.put("id", pointCode + "INGET");
|
jo.put("id", pointCode + "INGET");
|
||||||
|
//通信脚本,动作前后与现场设备交互的场景
|
||||||
jo.put("script_name", "userpy/interact.py");
|
jo.put("script_name", "userpy/interact.py");
|
||||||
JSONObject script_args = new JSONObject();
|
JSONObject script_args = new JSONObject();
|
||||||
|
//更改为现场设备IP及PORT
|
||||||
script_args.put("addr", addr);
|
script_args.put("addr", addr);
|
||||||
JSONObject data = new JSONObject();
|
JSONObject data = new JSONObject();
|
||||||
JSONObject reach = new JSONObject();
|
JSONObject reach = new JSONObject();
|
||||||
@@ -340,7 +339,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService {
|
|||||||
jo.put("script_args", script_args);
|
jo.put("script_args", script_args);
|
||||||
ja.add(jo);
|
ja.add(jo);
|
||||||
}
|
}
|
||||||
|
//将货物顶起来
|
||||||
JSONObject jo1 = new JSONObject();
|
JSONObject jo1 = new JSONObject();
|
||||||
jo1.put("blockId", IdUtil.simpleUUID());
|
jo1.put("blockId", IdUtil.simpleUUID());
|
||||||
jo1.put("location", pointCode);
|
jo1.put("location", pointCode);
|
||||||
@@ -368,11 +367,14 @@ public class XianGongAgvServiceImpl implements XianGongAgvService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下发放货
|
* 下发放货信号
|
||||||
* @param device_code
|
* @param ja
|
||||||
* @param instCode
|
* @param device_code 起始设备
|
||||||
|
* @param instCode 指令号
|
||||||
|
* @param pointCode 终点点位
|
||||||
|
* @param nextDeviceCode 终点设备
|
||||||
*/
|
*/
|
||||||
public void sendEndDeviceOrder(JSONArray ja,String device_code,String instCode,String pointCode,String nextDeviceCode){
|
public void sendEndDeviceOrder(JSONArray ja, String device_code, String instCode, String pointCode, String nextDeviceCode) {
|
||||||
Device nextDevice = deviceAppService.findDeviceByCode(nextDeviceCode);
|
Device nextDevice = deviceAppService.findDeviceByCode(nextDeviceCode);
|
||||||
//忽略放货校验
|
//忽略放货校验
|
||||||
if ("true".equals(nextDevice.getExtraValue().get("ignore_release_check"))) {
|
if ("true".equals(nextDevice.getExtraValue().get("ignore_release_check"))) {
|
||||||
@@ -398,24 +400,27 @@ public class XianGongAgvServiceImpl implements XianGongAgvService {
|
|||||||
|
|
||||||
//放货前下发旋转角度
|
//放货前下发旋转角度
|
||||||
JSONObject json1 = new JSONObject();
|
JSONObject json1 = new JSONObject();
|
||||||
AcsPointAngle acsPointAngleDto = acsPointAngleService.findByCode(device_code,nextDeviceCode);
|
AcsPointAngle acsPointAngleDto = acsPointAngleService.findByCode(device_code, nextDeviceCode);
|
||||||
if (ObjectUtil.isNotEmpty(acsPointAngleDto)){
|
if (ObjectUtil.isNotEmpty(acsPointAngleDto)) {
|
||||||
log.info("acsPointAngleDto----參數,{}", acsPointAngleDto.toString());
|
log.info("acsPointAngleDto----參數,{}", acsPointAngleDto.toString());
|
||||||
com.alibaba.fastjson.JSONObject operation_args = new com.alibaba.fastjson.JSONObject();
|
com.alibaba.fastjson.JSONObject operation_args = new com.alibaba.fastjson.JSONObject();
|
||||||
BigDecimal next_point_angle = acsPointAngleDto.getNext_point_angle();
|
BigDecimal next_point_angle = acsPointAngleDto.getNext_point_angle();
|
||||||
operation_args.put("increase_spin_angle",next_point_angle);//弧度值,如3.14
|
operation_args.put("increase_spin_angle", next_point_angle);//弧度值,如3.14
|
||||||
operation_args.put("skill_name","GoByOdometer");
|
operation_args.put("skill_name", "GoByOdometer");
|
||||||
json1.put("blockId", IdUtil.simpleUUID());
|
json1.put("blockId", IdUtil.simpleUUID());
|
||||||
json1.put("location", pointCode + "INPUT");
|
json1.put("location", pointCode + "INPUT");
|
||||||
json1.put("operation_args",operation_args);
|
json1.put("operation_args", operation_args);
|
||||||
ja.add(json1);
|
ja.add(json1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//将货物放下
|
||||||
com.alibaba.fastjson.JSONObject jo4 = new com.alibaba.fastjson.JSONObject();
|
com.alibaba.fastjson.JSONObject jo4 = new com.alibaba.fastjson.JSONObject();
|
||||||
jo4.put("blockId", IdUtil.simpleUUID());
|
jo4.put("blockId", IdUtil.simpleUUID());
|
||||||
jo4.put("location", pointCode);
|
jo4.put("location", pointCode);
|
||||||
jo4.put("operation", "JackUnload");
|
jo4.put("operation", "JackUnload");
|
||||||
ja.add(jo4);
|
ja.add(jo4);
|
||||||
|
|
||||||
|
|
||||||
//忽略放货校验
|
//忽略放货校验
|
||||||
if ("true".equals(nextDevice.getExtraValue().get("ignore_release_check"))) {
|
if ("true".equals(nextDevice.getExtraValue().get("ignore_release_check"))) {
|
||||||
//放货完成等待
|
//放货完成等待
|
||||||
@@ -523,8 +528,8 @@ public class XianGongAgvServiceImpl implements XianGongAgvService {
|
|||||||
Device startdevice = deviceAppService.findDeviceByCode(startAddress);
|
Device startdevice = deviceAppService.findDeviceByCode(startAddress);
|
||||||
Device nextdevice = deviceAppService.findDeviceByCode(nextAddress);
|
Device nextdevice = deviceAppService.findDeviceByCode(nextAddress);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
orderjo.put("destinations", ja);
|
orderjo.put("destinations", ja);
|
||||||
@@ -711,35 +716,13 @@ public class XianGongAgvServiceImpl implements XianGongAgvService {
|
|||||||
throw new BadRequestException("请求失败,IN OUT 站点错误!");
|
throw new BadRequestException("请求失败,IN OUT 站点错误!");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public HttpResponse selectOrderByInstCode(String instCode) {
|
|
||||||
if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) {
|
|
||||||
String agvurl =paramService.findByCode(AcsConfig.AGVURL).getValue();
|
|
||||||
String agvport = paramService.findByCode(AcsConfig.AGVPORT).getValue();
|
|
||||||
|
|
||||||
com.alibaba.fastjson.JSONObject param = new com.alibaba.fastjson.JSONObject();
|
|
||||||
param.put("id", instCode);
|
|
||||||
param.put("disableVehicle", false);
|
|
||||||
agvurl = agvurl + ":" + agvport + "/" + instCode;
|
|
||||||
log.info("根据运单号查询运单状态的请求:{}", agvurl);
|
|
||||||
HttpResponse result = HttpRequest.post(agvurl)
|
|
||||||
.body(param.toJSONString())
|
|
||||||
.timeout(20000)//超时,毫秒
|
|
||||||
.execute();
|
|
||||||
log.info("根据运单号查询运单状态的请求反馈:{}", result);
|
|
||||||
return result;
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HttpResponse getRobotInfo(String robotCode) {
|
public HttpResponse getRobotInfo(String robotCode) {
|
||||||
if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) {
|
if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) {
|
||||||
String agvurl =paramService.findByCode(AcsConfig.AGVURL).getValue();
|
String agvurl = paramService.findByCode(AcsConfig.AGVURL).getValue();
|
||||||
String agvport = paramService.findByCode(AcsConfig.AGVPORT).getValue();
|
String agvport = paramService.findByCode(AcsConfig.AGVPORT).getValue();
|
||||||
|
|
||||||
agvurl = agvurl + ":" + agvport + "/"+ " robotsStatus?vehicles=" + robotCode;
|
agvurl = agvurl + ":" + agvport + "/" + " robotsStatus?vehicles=" + robotCode;
|
||||||
log.info("根据指定机器人查询状态的请求:{}", agvurl);
|
log.info("根据指定机器人查询状态的请求:{}", agvurl);
|
||||||
HttpResponse result = HttpRequest.get(agvurl)
|
HttpResponse result = HttpRequest.get(agvurl)
|
||||||
.timeout(20000)//超时,毫秒
|
.timeout(20000)//超时,毫秒
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import org.nl.acs.device.enums.DeviceType;
|
|||||||
import org.nl.acs.device.service.mapper.DeviceExtraMapper;
|
import org.nl.acs.device.service.mapper.DeviceExtraMapper;
|
||||||
import org.nl.acs.device.domain.DeviceRunpoint;
|
import org.nl.acs.device.domain.DeviceRunpoint;
|
||||||
import org.nl.acs.device.service.mapper.DeviceRunpointMapper;
|
import org.nl.acs.device.service.mapper.DeviceRunpointMapper;
|
||||||
|
import org.nl.acs.device_driver.stacker.standard_stacker.StandardStackerDeviceDriver;
|
||||||
import org.nl.acs.device_driver.two_conveyor.oven_manipulator.OvenGantryManipulatorDeviceDriver;
|
import org.nl.acs.device_driver.two_conveyor.oven_manipulator.OvenGantryManipulatorDeviceDriver;
|
||||||
import org.nl.acs.device_driver.two_conveyor.slit_two_manipulator.SlitTwoManipulatorDeviceDriver;
|
import org.nl.acs.device_driver.two_conveyor.slit_two_manipulator.SlitTwoManipulatorDeviceDriver;
|
||||||
import org.nl.acs.monitor.DeviceStageMonitor;
|
import org.nl.acs.monitor.DeviceStageMonitor;
|
||||||
@@ -1021,6 +1022,9 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
|||||||
} else if (device.getDeviceDriver() instanceof DeviceStageMonitor) {
|
} else if (device.getDeviceDriver() instanceof DeviceStageMonitor) {
|
||||||
DeviceStageMonitor deviceStageMonitor = (DeviceStageMonitor) device.getDeviceDriver();
|
DeviceStageMonitor deviceStageMonitor = (DeviceStageMonitor) device.getDeviceDriver();
|
||||||
deviceStageMonitor.setDeviceStatus(form);
|
deviceStageMonitor.setDeviceStatus(form);
|
||||||
|
}else if (device.getDeviceDriver() instanceof StandardStackerDeviceDriver) {
|
||||||
|
StandardStackerDeviceDriver standardStackerDeviceDriver = (StandardStackerDeviceDriver) device.getDeviceDriver();
|
||||||
|
standardStackerDeviceDriver.setDeviceStatus(form);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import java.util.Date;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 普通站点仙工AGV
|
* 仙工AGV
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@@ -63,40 +63,14 @@ public class HongXiangStationDeviceDriver extends AbstractOpcDeviceDriver implem
|
|||||||
public int move = 0;
|
public int move = 0;
|
||||||
public int action = 0;
|
public int action = 0;
|
||||||
public int error = 0;
|
public int error = 0;
|
||||||
public int door = 0;
|
public String task = null;
|
||||||
public int temperature = 0;
|
|
||||||
public int countdown = 0;
|
|
||||||
public int finish = 0;
|
|
||||||
public int task = 0;
|
|
||||||
public int error1 = 0;
|
|
||||||
public int material = 0;
|
|
||||||
public int consumption = 0;
|
|
||||||
public int voltageA = 0;
|
|
||||||
public int voltageB = 0;
|
|
||||||
public int voltageC = 0;
|
|
||||||
public int currentA = 0;
|
|
||||||
public int currentB = 0;
|
|
||||||
public int currentC = 0;
|
|
||||||
|
|
||||||
public int last_heartbeat = 0;
|
public int last_heartbeat = 0;
|
||||||
public int last_mode = 0;
|
public int last_mode = 0;
|
||||||
public int last_move = 0;
|
public int last_move = 0;
|
||||||
public int last_action = 0;
|
public int last_action = 0;
|
||||||
public int last_error = 0;
|
public int last_error = 0;
|
||||||
public int last_door = 0;
|
public String last_task = null;
|
||||||
public int last_temperature = 0;
|
|
||||||
public int last_countdown = 0;
|
|
||||||
public int last_finish = 0;
|
|
||||||
public int last_task = 0;
|
|
||||||
public int last_error1 = 0;
|
|
||||||
public int last_material = 0;
|
|
||||||
public int last_consumption = 0;
|
|
||||||
public int last_voltageA = 0;
|
|
||||||
public int last_voltageB = 0;
|
|
||||||
public int last_voltageC = 0;
|
|
||||||
public int last_currentA = 0;
|
|
||||||
public int last_currentB = 0;
|
|
||||||
public int last_currentC = 0;
|
|
||||||
|
|
||||||
Boolean isonline = true;
|
Boolean isonline = true;
|
||||||
|
|
||||||
@@ -122,23 +96,17 @@ public class HongXiangStationDeviceDriver extends AbstractOpcDeviceDriver implem
|
|||||||
@Override
|
@Override
|
||||||
public void execute() {
|
public void execute() {
|
||||||
String message = null;
|
String message = null;
|
||||||
|
|
||||||
device_code = this.getDeviceCode();
|
device_code = this.getDeviceCode();
|
||||||
|
heartbeat = itemProtocol.getItem_heartbeat();
|
||||||
|
mode = itemProtocol.getItem_mode();
|
||||||
|
move = itemProtocol.getItem_move();
|
||||||
|
task = itemProtocol.getItem_task();
|
||||||
|
error = itemProtocol.getItem_error();
|
||||||
|
action = itemProtocol.getItem_action();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public synchronized boolean instruction_apply(String container_code) throws Exception {
|
|
||||||
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);
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
this.instruction_apply_time = date;
|
|
||||||
requireSucess = true;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void thingToNothing() {
|
protected void thingToNothing() {
|
||||||
this.setRequireSucess(false);
|
this.setRequireSucess(false);
|
||||||
@@ -147,8 +115,8 @@ public class HongXiangStationDeviceDriver extends AbstractOpcDeviceDriver implem
|
|||||||
public void writing(int command) {
|
public void writing(int command) {
|
||||||
String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||||
+ "." + ItemProtocol.item_to_command;
|
+ "." + ItemProtocol.item_to_command;
|
||||||
//String opcservcerid = this.getDevice().getOpc_server_id();
|
// String opcservcerid = this.getDevice().getOpc_server_id();
|
||||||
//Server server = ReadUtil.getServer(opcservcerid);
|
// Server server = ReadUtil.getServer(opcservcerid);
|
||||||
Map<String, Object> itemMap = new HashMap<String, Object>();
|
Map<String, Object> itemMap = new HashMap<String, Object>();
|
||||||
itemMap.put(to_command, command);
|
itemMap.put(to_command, command);
|
||||||
this.control(itemMap);
|
this.control(itemMap);
|
||||||
@@ -177,12 +145,9 @@ public class HongXiangStationDeviceDriver extends AbstractOpcDeviceDriver implem
|
|||||||
|
|
||||||
String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||||
+ "." + param;
|
+ "." + param;
|
||||||
//String opcservcerid = this.getDevice().getOpc_server_id();
|
|
||||||
//Server server = ReadUtil.getServer(opcservcerid);
|
|
||||||
Map<String, Object> itemMap = new HashMap<String, Object>();
|
Map<String, Object> itemMap = new HashMap<String, Object>();
|
||||||
|
|
||||||
itemMap.put(to_param, value);
|
itemMap.put(to_param, value);
|
||||||
// itemMap.put(to_param, Integer.parseInt(value));
|
|
||||||
this.control(itemMap);
|
this.control(itemMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -190,12 +155,9 @@ public class HongXiangStationDeviceDriver extends AbstractOpcDeviceDriver implem
|
|||||||
@Override
|
@Override
|
||||||
public JSONObject getDeviceStatusName() {
|
public JSONObject getDeviceStatusName() {
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
String mode = "";
|
|
||||||
String action = "";
|
|
||||||
String move = "";
|
|
||||||
jo.put("device_name", this.getDevice().getDevice_name());
|
jo.put("device_name", this.getDevice().getDevice_name());
|
||||||
jo.put("mode", "联机");
|
jo.put("mode", mode ==2 ? "待机": "脱机");
|
||||||
jo.put("action", action);
|
jo.put("action", action == 1 ? "允许取放": "不允许取放");
|
||||||
jo.put("isOnline", true);
|
jo.put("isOnline", true);
|
||||||
jo.put("error", this.getError());
|
jo.put("error", this.getError());
|
||||||
jo.put("isError", this.getIserror());
|
jo.put("isError", this.getIserror());
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.nl.acs.device_driver.two_conveyor.hongxiang_conveyor;
|
package org.nl.acs.device_driver.two_conveyor.hongxiang_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;
|
||||||
@@ -11,10 +12,24 @@ import java.util.List;
|
|||||||
@Data
|
@Data
|
||||||
public class ItemProtocol {
|
public class ItemProtocol {
|
||||||
|
|
||||||
|
public static String item_heartbeat = "heartbeat";
|
||||||
|
|
||||||
|
public static String item_mode = "mode";
|
||||||
|
|
||||||
|
public static String item_move = "move";
|
||||||
|
|
||||||
public static String item_action = "action";
|
public static String item_action = "action";
|
||||||
|
|
||||||
|
public static String item_error = "error";
|
||||||
|
|
||||||
|
public static String item_task = "task";
|
||||||
|
|
||||||
public static String item_to_command = "to_command";
|
public static String item_to_command = "to_command";
|
||||||
|
|
||||||
|
public static String item_target = "target";
|
||||||
|
|
||||||
|
public static String item_to_task = "task";
|
||||||
|
|
||||||
private HongXiangStationDeviceDriver driver;
|
private HongXiangStationDeviceDriver driver;
|
||||||
|
|
||||||
public ItemProtocol(HongXiangStationDeviceDriver driver) {
|
public ItemProtocol(HongXiangStationDeviceDriver driver) {
|
||||||
@@ -22,11 +37,42 @@ public class ItemProtocol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int getItem_heartbeat() {
|
||||||
|
return this.getOpcIntegerValue(item_heartbeat);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getItem_mode() {
|
||||||
|
return this.getOpcIntegerValue(item_mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getItem_move() {
|
||||||
|
return this.getOpcIntegerValue(item_move);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getItem_error() {
|
||||||
|
return this.getOpcIntegerValue(item_error);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getItem_task() {
|
||||||
|
return this.getOpcStringValue(item_task);
|
||||||
|
}
|
||||||
|
|
||||||
public int getItem_action() {
|
public int getItem_action() {
|
||||||
return this.getOpcIntegerValue(item_action);
|
return this.getOpcIntegerValue(item_action);
|
||||||
}
|
}
|
||||||
|
|
||||||
;
|
public int getItem_to_command() {
|
||||||
|
return this.getOpcIntegerValue(item_to_command);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getItem_target() {
|
||||||
|
return this.getOpcIntegerValue(item_target);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getItem_to_task() {
|
||||||
|
return this.getOpcStringValue(item_to_task);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Boolean isonline;
|
Boolean isonline;
|
||||||
|
|
||||||
@@ -42,17 +88,34 @@ public class ItemProtocol {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getOpcStringValue(String protocol) {
|
||||||
|
String stringValue = this.driver.getStringValue(protocol);
|
||||||
|
if (StrUtil.isEmpty(stringValue)) {
|
||||||
|
setIsonline(false);
|
||||||
|
} else {
|
||||||
|
setIsonline(true);
|
||||||
|
return stringValue;
|
||||||
|
}
|
||||||
|
return "0";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static List<ItemDto> getReadableItemDtos() {
|
public static List<ItemDto> getReadableItemDtos() {
|
||||||
ArrayList list = new ArrayList();
|
ArrayList list = new ArrayList();
|
||||||
|
list.add(new ItemDto(item_heartbeat, "心跳", "DB100.10"));
|
||||||
list.add(new ItemDto(item_action, "动作信号", "450"));
|
list.add(new ItemDto(item_mode, "模式", "DB100.12"));
|
||||||
|
list.add(new ItemDto(item_move, "光电信号", "DB100.13"));
|
||||||
|
list.add(new ItemDto(item_error, "error", "DB100.14"));
|
||||||
|
list.add(new ItemDto(item_task, "任务号", "DB100.15"));
|
||||||
|
list.add(new ItemDto(item_action, "取放信号", "DB100.11 "));
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<ItemDto> getWriteableItemDtos() {
|
public static List<ItemDto> getWriteableItemDtos() {
|
||||||
ArrayList list = new ArrayList();
|
ArrayList list = new ArrayList();
|
||||||
list.add(new ItemDto(item_to_command, "下发命令", "226"));
|
list.add(new ItemDto(item_to_command, "下发命令", "DB101.11"));
|
||||||
|
list.add(new ItemDto(item_target, "下发目标站", "DB101.12"));
|
||||||
|
list.add(new ItemDto(item_to_task, "下发任务号", "DB101.13"));
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -348,17 +348,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
String next_device_code = instruction.getNext_device_code();
|
String next_device_code = instruction.getNext_device_code();
|
||||||
Device nextdevice = deviceAppService.findDeviceByCode(next_device_code);
|
Device nextdevice = deviceAppService.findDeviceByCode(next_device_code);
|
||||||
Device startdevice = deviceAppService.findDeviceByCode(start_device_code);
|
Device startdevice = deviceAppService.findDeviceByCode(start_device_code);
|
||||||
//PhotoelectricInspectionSiteDeviceDriver photoelectricInspectionSiteDeviceDriver;
|
|
||||||
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
|
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
|
||||||
StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver;
|
StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver;
|
||||||
OvenInspectSiteDeviceDriver ovenInspectSiteDeviceDriver;
|
OvenInspectSiteDeviceDriver ovenInspectSiteDeviceDriver;
|
||||||
// if (startdevice.getDeviceDriver() instanceof PhotoelectricInspectionSiteDeviceDriver) {
|
|
||||||
// photoelectricInspectionSiteDeviceDriver = (PhotoelectricInspectionSiteDeviceDriver) startdevice.getDeviceDriver();
|
|
||||||
// if (photoelectricInspectionSiteDeviceDriver.getMove() != 1) {
|
|
||||||
// notCreateInstMessage = "手动创建指令未下发电气信号原因->取货位-烘箱对接位:" + photoelectricInspectionSiteDeviceDriver.getDevice_code() + "无货,无法下发指令!指令号:" + instruction.getInstruction_code();
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
if(startdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver){
|
if(startdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver){
|
||||||
ovenInspectSiteDeviceDriver = (OvenInspectSiteDeviceDriver) startdevice.getDeviceDriver();
|
ovenInspectSiteDeviceDriver = (OvenInspectSiteDeviceDriver) startdevice.getDeviceDriver();
|
||||||
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextdevice.getDeviceDriver();
|
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextdevice.getDeviceDriver();
|
||||||
@@ -485,13 +477,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
|
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
|
||||||
StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver;
|
StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver;
|
||||||
OvenInspectSiteDeviceDriver ovenInspectSiteDeviceDriver;
|
OvenInspectSiteDeviceDriver ovenInspectSiteDeviceDriver;
|
||||||
// if (startdevice.getDeviceDriver() instanceof PhotoelectricInspectionSiteDeviceDriver) {
|
|
||||||
// photoelectricInspectionSiteDeviceDriver = (PhotoelectricInspectionSiteDeviceDriver) startdevice.getDeviceDriver();
|
|
||||||
// if (photoelectricInspectionSiteDeviceDriver.getMove() != 1) {
|
|
||||||
// notCreateInstMessage = "就绪任务未创建指令原因->取货位-烘箱对接位:" + photoelectricInspectionSiteDeviceDriver.getDevice_code() + "光电无货,无法生成指令!";
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
if(startdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver){
|
if(startdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver){
|
||||||
ovenInspectSiteDeviceDriver = (OvenInspectSiteDeviceDriver) startdevice.getDeviceDriver();
|
ovenInspectSiteDeviceDriver = (OvenInspectSiteDeviceDriver) startdevice.getDeviceDriver();
|
||||||
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextdevice.getDeviceDriver();
|
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextdevice.getDeviceDriver();
|
||||||
@@ -544,13 +529,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if (nextdevice.getDeviceDriver() instanceof PhotoelectricInspectionSiteDeviceDriver) {
|
|
||||||
// photoelectricInspectionSiteDeviceDriver = (PhotoelectricInspectionSiteDeviceDriver) nextdevice.getDeviceDriver();
|
|
||||||
// if (photoelectricInspectionSiteDeviceDriver.getMove() != 0) {
|
|
||||||
// notCreateInstMessage = "就绪任务未创建指令原因->放货位-烘箱对接位:" + photoelectricInspectionSiteDeviceDriver.getDevice_code() + "光电有货,无法生成指令!";
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
if (nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
|
if (nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
|
||||||
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextdevice.getDeviceDriver();
|
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextdevice.getDeviceDriver();
|
||||||
if (standardInspectSiteDeviceDriver.getMove() != 0) {
|
if (standardInspectSiteDeviceDriver.getMove() != 0) {
|
||||||
@@ -699,7 +677,12 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
//判断取货位或放货位为烘箱设备时关联的同一列烘箱设备是否有开门
|
/**
|
||||||
|
* 判断取货位或放货位为烘箱设备时关联的同一列烘箱设备是否有开门
|
||||||
|
* @param start_device_code
|
||||||
|
* @param next_device_code
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public boolean judgeCloseDoor(String start_device_code, String next_device_code) {
|
public boolean judgeCloseDoor(String start_device_code, String next_device_code) {
|
||||||
Boolean isClose = false;
|
Boolean isClose = false;
|
||||||
try {
|
try {
|
||||||
@@ -774,7 +757,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
this.instruction_update_time = date;
|
this.instruction_update_time = date;
|
||||||
//更改任务状态
|
//更改任务状态
|
||||||
if (task > 0) {
|
if (task > 0) {
|
||||||
//inst_message
|
|
||||||
Instruction inst1 = checkInst();
|
Instruction inst1 = checkInst();
|
||||||
if (inst1 != null) {
|
if (inst1 != null) {
|
||||||
if (StrUtil.equals(inst1.getInstruction_status(), "0")) {
|
if (StrUtil.equals(inst1.getInstruction_status(), "0")) {
|
||||||
@@ -794,7 +776,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
|
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
|
||||||
if (device.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
|
if (device.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
|
||||||
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) device.getDeviceDriver();
|
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) device.getDeviceDriver();
|
||||||
//hongXiangConveyorDeviceDriver.writing("to_open_door", "1");
|
|
||||||
int mode = hongXiangConveyorDeviceDriver.getMode();
|
int mode = hongXiangConveyorDeviceDriver.getMode();
|
||||||
int door = hongXiangConveyorDeviceDriver.getDoor();
|
int door = hongXiangConveyorDeviceDriver.getDoor();
|
||||||
int action = hongXiangConveyorDeviceDriver.getAction();
|
int action = hongXiangConveyorDeviceDriver.getAction();
|
||||||
@@ -804,8 +785,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
if (this.getNow_steps_type() == 2) {
|
if (this.getNow_steps_type() == 2) {
|
||||||
this.writing("to_command", "2");
|
this.writing("to_command", "2");
|
||||||
this.setNow_steps_type(3);
|
this.setNow_steps_type(3);
|
||||||
} else {
|
|
||||||
//logServer.deviceExecuteLog(this.device_code, "", "", "未反馈电气信号原因:当前步骤不为下发电气信号(now_steps_type!=2)");
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (this.getNow_steps_type() == 2) {
|
if (this.getNow_steps_type() == 2) {
|
||||||
@@ -831,8 +810,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
if (this.getNow_steps_type() == 2) {
|
if (this.getNow_steps_type() == 2) {
|
||||||
this.writing("to_command", "2");
|
this.writing("to_command", "2");
|
||||||
this.setNow_steps_type(3);
|
this.setNow_steps_type(3);
|
||||||
} else {
|
|
||||||
//logServer.deviceExecuteLog(this.device_code, "", "", "未反馈电气信号原因:当前步骤不为下发电气信号(now_steps_type!=2)\")");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -868,8 +845,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
if (this.getNow_steps_type() == 3) {
|
if (this.getNow_steps_type() == 3) {
|
||||||
this.writing("to_command", "3");
|
this.writing("to_command", "3");
|
||||||
this.setNow_steps_type(4);
|
this.setNow_steps_type(4);
|
||||||
} else {
|
|
||||||
//logServer.deviceExecuteLog(this.device_code, "", "", "未反馈电气信号原因:当前步骤不为允许取货(now_steps_type!=3)");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -899,7 +874,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver;
|
StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver;
|
||||||
if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
|
if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
|
||||||
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) nextDevice.getDeviceDriver();
|
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) nextDevice.getDeviceDriver();
|
||||||
//hongXiangConveyorDeviceDriver.writing("to_open_door", "1");
|
|
||||||
int mode = hongXiangConveyorDeviceDriver.getMode();
|
int mode = hongXiangConveyorDeviceDriver.getMode();
|
||||||
int door = hongXiangConveyorDeviceDriver.getDoor();
|
int door = hongXiangConveyorDeviceDriver.getDoor();
|
||||||
int action = hongXiangConveyorDeviceDriver.getAction();
|
int action = hongXiangConveyorDeviceDriver.getAction();
|
||||||
@@ -911,7 +885,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
this.setNow_steps_type(5);
|
this.setNow_steps_type(5);
|
||||||
} else {
|
} else {
|
||||||
feedMessage = "未反馈电气信号原因:当前步骤不为允许放货(now_steps_type!=4)";
|
feedMessage = "未反馈电气信号原因:当前步骤不为允许放货(now_steps_type!=4)";
|
||||||
//logServer.deviceExecuteLog(this.device_code, "", "", "未反馈电气信号原因:当前步骤不为允许放货(now_steps_type!=4)");
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (this.getNow_steps_type() == 4) {
|
if (this.getNow_steps_type() == 4) {
|
||||||
@@ -937,10 +910,7 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
if (this.getNow_steps_type() == 4) {
|
if (this.getNow_steps_type() == 4) {
|
||||||
this.writing("to_command", "4");
|
this.writing("to_command", "4");
|
||||||
this.setNow_steps_type(5);
|
this.setNow_steps_type(5);
|
||||||
} else {
|
|
||||||
//logServer.deviceExecuteLog(this.device_code, "", "", "未反馈电气信号原因:当前步骤不为允许放货(now_steps_type!=4)");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (this.getNow_steps_type() == 4) {
|
if (this.getNow_steps_type() == 4) {
|
||||||
@@ -965,20 +935,12 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
Instruction inst2 = checkInst();
|
Instruction inst2 = checkInst();
|
||||||
if (inst2 != null) {
|
if (inst2 != null) {
|
||||||
if (StrUtil.equals(inst2.getInstruction_status(), "1")) {
|
if (StrUtil.equals(inst2.getInstruction_status(), "1")) {
|
||||||
|
|
||||||
TaskDto taskDto = taskserver.findByCode(inst2.getTask_code());
|
TaskDto taskDto = taskserver.findByCode(inst2.getTask_code());
|
||||||
|
|
||||||
String next_device_code = inst2.getNext_device_code();
|
String next_device_code = inst2.getNext_device_code();
|
||||||
//String start_device_code = taskDto.getStart_device_code();
|
|
||||||
//Device startDevice = deviceAppService.findDeviceByCode(start_device_code);
|
|
||||||
Device nextDevice = deviceAppService.findDeviceByCode(next_device_code);
|
Device nextDevice = deviceAppService.findDeviceByCode(next_device_code);
|
||||||
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
|
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
|
||||||
StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver;
|
StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver;
|
||||||
LampThreecolorDeviceDriver lampThreecolorDeviceDriver;
|
LampThreecolorDeviceDriver lampThreecolorDeviceDriver;
|
||||||
// if (startDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
|
|
||||||
// hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) startDevice.getDeviceDriver();
|
|
||||||
// hongXiangConveyorDeviceDriver.writing("to_close_door", "1");
|
|
||||||
// }
|
|
||||||
if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
|
if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
|
||||||
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) nextDevice.getDeviceDriver();
|
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) nextDevice.getDeviceDriver();
|
||||||
hongXiangConveyorDeviceDriver.writing("to_close_door", "1");
|
hongXiangConveyorDeviceDriver.writing("to_close_door", "1");
|
||||||
@@ -994,8 +956,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
|
|
||||||
if (nextDevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
|
if (nextDevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
|
||||||
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextDevice.getDeviceDriver();
|
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextDevice.getDeviceDriver();
|
||||||
// hongXiangConveyorDeviceDriver.writing("to_close_door", "1");
|
|
||||||
|
|
||||||
if (!StrUtil.startWith(taskDto.getTask_code(), "-")) {
|
if (!StrUtil.startWith(taskDto.getTask_code(), "-")) {
|
||||||
if (ObjectUtil.isNotEmpty(nextDevice.getExtraValue().get("link_three_lamp"))) {
|
if (ObjectUtil.isNotEmpty(nextDevice.getExtraValue().get("link_three_lamp"))) {
|
||||||
String lamp = nextDevice.getExtraValue().get("link_three_lamp").toString();
|
String lamp = nextDevice.getExtraValue().get("link_three_lamp").toString();
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ import org.nl.acs.instruction.domain.Instruction;
|
|||||||
import org.nl.acs.log.service.DeviceExecuteLogService;
|
import org.nl.acs.log.service.DeviceExecuteLogService;
|
||||||
import org.nl.acs.task.service.TaskService;
|
import org.nl.acs.task.service.TaskService;
|
||||||
import org.nl.acs.task.service.dto.TaskDto;
|
import org.nl.acs.task.service.dto.TaskDto;
|
||||||
|
import org.nl.config.lucene.service.LuceneExecuteLogService;
|
||||||
|
import org.nl.config.lucene.service.dto.LuceneLogDto;
|
||||||
import org.nl.system.service.param.ISysParamService;
|
import org.nl.system.service.param.ISysParamService;
|
||||||
import org.slf4j.MDC;
|
import org.slf4j.MDC;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -55,6 +57,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
DeviceExecuteLogService logServer;
|
DeviceExecuteLogService logServer;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LuceneExecuteLogService luceneLogService;
|
||||||
|
|
||||||
public String token;
|
public String token;
|
||||||
|
|
||||||
|
|
||||||
@@ -92,6 +97,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
type = "error";
|
type = "error";
|
||||||
}
|
}
|
||||||
log.info("applyTaskToWms-----输出参数{}", result2.body());
|
log.info("applyTaskToWms-----输出参数{}", result2.body());
|
||||||
|
LuceneLogDto luceneLogDto = new LuceneLogDto("applyTaskToWms", String.valueOf(result2.getStatus()),
|
||||||
|
JSON.toJSONString(jo), String.valueOf(result2.body()), "ACS向LMS申请生箔按钮任务");
|
||||||
|
luceneLogService.interfaceExecuteLog(luceneLogDto);
|
||||||
return result2.body();
|
return result2.body();
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
@@ -183,6 +191,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
map.put("message", e.getMessage());
|
map.put("message", e.getMessage());
|
||||||
return JSONObject.toJavaObject(map, ApplyGreenFoilButtonResponse.class);
|
return JSONObject.toJavaObject(map, ApplyGreenFoilButtonResponse.class);
|
||||||
}
|
}
|
||||||
|
LuceneLogDto luceneLogDto = new LuceneLogDto("ApplyGreenFoilButtonRequest", String.valueOf(applyGreenFoilButtonResponse.getCode()),
|
||||||
|
JSON.toJSONString(param), String.valueOf(applyGreenFoilButtonResponse.getMessage()), "ACS向LMS申请生箔按钮任务");
|
||||||
|
luceneLogService.interfaceExecuteLog(luceneLogDto);
|
||||||
}
|
}
|
||||||
return applyGreenFoilButtonResponse;
|
return applyGreenFoilButtonResponse;
|
||||||
} finally {
|
} finally {
|
||||||
@@ -215,6 +226,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
map.put("message", e.getMessage());
|
map.put("message", e.getMessage());
|
||||||
return JSONObject.toJavaObject(map, BlankingButtonResponse.class);
|
return JSONObject.toJavaObject(map, BlankingButtonResponse.class);
|
||||||
}
|
}
|
||||||
|
LuceneLogDto luceneLogDto = new LuceneLogDto("BlankingButtonRequest", String.valueOf(blankingButtonResponse.getCode()),
|
||||||
|
JSON.toJSONString(param), String.valueOf(blankingButtonResponse.getMessage()), "ACS向LMS申请表处下料位按钮任务");
|
||||||
|
luceneLogService.interfaceExecuteLog(luceneLogDto);
|
||||||
}
|
}
|
||||||
return blankingButtonResponse;
|
return blankingButtonResponse;
|
||||||
} finally {
|
} finally {
|
||||||
@@ -248,6 +262,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
map.put("message", e.getMessage());
|
map.put("message", e.getMessage());
|
||||||
return JSONObject.toJavaObject(map, ApplyPlugPullSitResponse.class);
|
return JSONObject.toJavaObject(map, ApplyPlugPullSitResponse.class);
|
||||||
}
|
}
|
||||||
|
LuceneLogDto luceneLogDto = new LuceneLogDto("ApplyPlugPullSiteRequest", String.valueOf(applyPlugPullSitResponse.getCode()),
|
||||||
|
JSON.toJSONString(param), String.valueOf(applyPlugPullSitResponse.getMessage()), "ACS向LMS申请套管");
|
||||||
|
luceneLogService.interfaceExecuteLog(luceneLogDto);
|
||||||
}
|
}
|
||||||
return applyPlugPullSitResponse;
|
return applyPlugPullSitResponse;
|
||||||
} finally {
|
} finally {
|
||||||
@@ -281,6 +298,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
map.put("message", e.getMessage());
|
map.put("message", e.getMessage());
|
||||||
return JSONObject.toJavaObject(map, ApplyManipulatorActionResponse.class);
|
return JSONObject.toJavaObject(map, ApplyManipulatorActionResponse.class);
|
||||||
}
|
}
|
||||||
|
LuceneLogDto luceneLogDto = new LuceneLogDto("ApplyManipulatorActionRequest", String.valueOf(applyManipulatorActionResponse.getCode()),
|
||||||
|
JSON.toJSONString(param), String.valueOf(applyManipulatorActionResponse), "ACS向LMS申请反馈");
|
||||||
|
luceneLogService.interfaceExecuteLog(luceneLogDto);
|
||||||
}
|
}
|
||||||
return applyManipulatorActionResponse;
|
return applyManipulatorActionResponse;
|
||||||
} finally {
|
} finally {
|
||||||
@@ -303,7 +323,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
.execute()
|
.execute()
|
||||||
.body();
|
.body();
|
||||||
log.info("gccQueryStationState - 响应参数{}", responseBody);
|
log.info("gccQueryStationState - 响应参数{}", responseBody);
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(responseBody);
|
||||||
|
LuceneLogDto luceneLogDto = new LuceneLogDto("gccQueryStationState", String.valueOf(jsonObject.get("code")),
|
||||||
|
JSON.toJSONString("StartStationCode=" + inst.getStart_point_code() + "&EndStationCode=" + inst.getNext_point_code()),
|
||||||
|
String.valueOf(jsonObject), "ACS查询站点有无货状态");
|
||||||
|
luceneLogService.interfaceExecuteLog(luceneLogDto);
|
||||||
return JSONObject.parseObject(responseBody);
|
return JSONObject.parseObject(responseBody);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONArray;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||||
|
import lombok.Builder;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.acs.device.domain.Device;
|
import org.nl.acs.device.domain.Device;
|
||||||
@@ -28,7 +29,11 @@ import org.nl.acs.ext.wms.service.WmsToAcsService;
|
|||||||
import org.nl.acs.opc.DeviceAppService;
|
import org.nl.acs.opc.DeviceAppService;
|
||||||
import org.nl.acs.storage_cell.domain.StorageCell;
|
import org.nl.acs.storage_cell.domain.StorageCell;
|
||||||
import org.nl.acs.storage_cell.service.mapper.StorageCellMapper;
|
import org.nl.acs.storage_cell.service.mapper.StorageCellMapper;
|
||||||
|
import org.nl.common.enums.LogTypeEnum;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.config.lucene.service.LuceneExecuteLogService;
|
||||||
|
import org.nl.config.lucene.service.dto.LuceneLogDto;
|
||||||
|
import org.nl.config.lucene.service.impl.LuceneExecuteLogServiceImpl;
|
||||||
import org.slf4j.MDC;
|
import org.slf4j.MDC;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@@ -48,6 +53,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private DeviceAppService deviceAppService;
|
private DeviceAppService deviceAppService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LuceneExecuteLogService luceneExecuteLogService;
|
||||||
|
|
||||||
private String log_file_type = "log_file_type";
|
private String log_file_type = "log_file_type";
|
||||||
private String log_type = "LMS请求ACS";
|
private String log_type = "LMS请求ACS";
|
||||||
|
|
||||||
@@ -118,6 +126,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
|
|||||||
}
|
}
|
||||||
response.setCode(200);
|
response.setCode(200);
|
||||||
response.setMessage("success");
|
response.setMessage("success");
|
||||||
|
LuceneLogDto luceneLogDto = new LuceneLogDto("putAction", String.valueOf(response.getCode()),
|
||||||
|
jsonObject, String.valueOf(response), "LMS下发动作");
|
||||||
|
luceneExecuteLogService.interfaceExecuteLog(luceneLogDto);
|
||||||
log.info("putAction--------------:输出参数:" + response);
|
log.info("putAction--------------:输出参数:" + response);
|
||||||
return response;
|
return response;
|
||||||
} finally {
|
} finally {
|
||||||
@@ -156,7 +167,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
|
|||||||
String parent_device_code = data.getString("device_code");
|
String parent_device_code = data.getString("device_code");
|
||||||
String device_code = "";
|
String device_code = "";
|
||||||
LambdaQueryWrapper<StorageCell> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<StorageCell> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.like(StringUtils.isNotBlank(parent_device_code), StorageCell::getParent_storage_code, parent_device_code);
|
wrapper.in(StringUtils.isNotBlank(parent_device_code), StorageCell::getParent_storage_code, parent_device_code);
|
||||||
StorageCell storageCell = storageCellMapper.selectOne(wrapper);
|
StorageCell storageCell = storageCellMapper.selectOne(wrapper);
|
||||||
final JSONObject device_json = (JSONObject) JSON.toJSON(storageCell);
|
final JSONObject device_json = (JSONObject) JSON.toJSON(storageCell);
|
||||||
if (!ObjectUtil.isEmpty(device_json)) {
|
if (!ObjectUtil.isEmpty(device_json)) {
|
||||||
@@ -280,6 +291,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
|
|||||||
resultJson.put("status", HttpStatus.OK.value());
|
resultJson.put("status", HttpStatus.OK.value());
|
||||||
resultJson.put("message", "操作成功");
|
resultJson.put("message", "操作成功");
|
||||||
resultJson.put("data", backja);
|
resultJson.put("data", backja);
|
||||||
|
LuceneLogDto luceneLogDto = new LuceneLogDto("queryDevice", String.valueOf(resultJson.get("status")),
|
||||||
|
jsonObject, String.valueOf(resultJson), "LMS查询设备状态");
|
||||||
|
luceneExecuteLogService.interfaceExecuteLog(luceneLogDto);
|
||||||
return resultJson;
|
return resultJson;
|
||||||
} finally {
|
} finally {
|
||||||
MDC.remove(log_file_type);
|
MDC.remove(log_file_type);
|
||||||
|
|||||||
@@ -445,12 +445,23 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
|
|||||||
ndcAgvService.sendAgvInstToNDC(task.getAgv_system_type(), dto);
|
ndcAgvService.sendAgvInstToNDC(task.getAgv_system_type(), dto);
|
||||||
}
|
}
|
||||||
//判断是否是仙工AGV
|
//判断是否是仙工AGV
|
||||||
if(CommonFinalParam.ONE.equals(route.getType())){
|
if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "3")) {
|
||||||
HttpResponse response = xiangGongAgvService.sendOrderSequencesToXZ(dto);
|
if (StrUtil.equals(task.getRequest_again_success(), "1")) {
|
||||||
if (ObjectUtils.isEmpty(response) || response.getStatus() != 200) {
|
//追加订单
|
||||||
dto.setSend_status("2");
|
HttpResponse result = xiangGongAgvService.addOrderSequences(dto);
|
||||||
|
if (ObjectUtils.isEmpty(result) || result.getStatus() != 200) {
|
||||||
|
dto.setSend_status("2");
|
||||||
|
} else {
|
||||||
|
dto.setSend_status("1");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
dto.setSend_status("1");
|
//创建运单序列
|
||||||
|
HttpResponse response = xiangGongAgvService.sendOrderSequencesToXZ(dto);
|
||||||
|
if (ObjectUtils.isEmpty(response) || response.getStatus() != 200) {
|
||||||
|
dto.setSend_status("2");
|
||||||
|
} else {
|
||||||
|
dto.setSend_status("1");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Device nextdevice = appService.findDeviceByCode(dto.getNext_device_code());
|
Device nextdevice = appService.findDeviceByCode(dto.getNext_device_code());
|
||||||
|
|||||||
@@ -83,6 +83,17 @@ public class LuceneLogDto {
|
|||||||
+ home;
|
+ home;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LuceneLogDto(final String method, final String status,
|
||||||
|
final String requestparam, final String responseparam, final String content) {
|
||||||
|
super();
|
||||||
|
this.content = content;
|
||||||
|
this.method = method;
|
||||||
|
this.status_code = status;
|
||||||
|
this.requestparam = requestparam;
|
||||||
|
this.responseparam = responseparam;
|
||||||
|
this.content = content;
|
||||||
|
}
|
||||||
|
|
||||||
public LuceneLogDto(final String device_code, final String remark) {
|
public LuceneLogDto(final String device_code, final String remark) {
|
||||||
super();
|
super();
|
||||||
this.device_code = device_code;
|
this.device_code = device_code;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
label-position="right"
|
label-position="right"
|
||||||
label-suffix=":"
|
label-suffix=":"
|
||||||
>
|
>
|
||||||
<el-form-item :label="$t('monitor.table.search')">
|
<el-form-item :label="$t('monitor.table.search')">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="query.blurry"
|
v-model="query.blurry"
|
||||||
clearable
|
clearable
|
||||||
|
|||||||
@@ -14,17 +14,17 @@
|
|||||||
>
|
>
|
||||||
<!-- <el-table-column type="selection" width="55"/>-->
|
<!-- <el-table-column type="selection" width="55"/>-->
|
||||||
<!-- <el-table-column v-if="false" prop="id" label="id"/>-->
|
<!-- <el-table-column v-if="false" prop="id" label="id"/>-->
|
||||||
<el-table-column prop="operate" width="50" label="操作" />
|
<el-table-column prop="operate" label="操作" :min-width="flexWidth('operate',crud.data,操作)" />
|
||||||
<el-table-column prop="device_code" label="设备号" min-width="130" show-overflow-tooltip />
|
<el-table-column prop="device_code" label="设备号" :min-width="flexWidth('device_code',crud.data,设备号)" />
|
||||||
<!-- <el-table-column prop="trace_id" label="链路追踪" /> -->
|
<!-- <el-table-column prop="trace_id" label="链路追踪" /> -->
|
||||||
<el-table-column prop="task_code" label="任务编号" />
|
<el-table-column prop="task_code" label="任务编号" :min-width="flexWidth('task_code',crud.data,任务编号)" />
|
||||||
<el-table-column prop="instruct_code" label="指令编号" />
|
<el-table-column prop="instruct_code" label="指令编号" :min-width="flexWidth('instruct_code',crud.data,指令编号)" />
|
||||||
<el-table-column prop="method" label="方法" />
|
<el-table-column prop="method" label="方法" :min-width="flexWidth('method',crud.data,方法)" />
|
||||||
<el-table-column prop="status_code" label="状态码" />
|
<el-table-column prop="status_code" label="状态码" :min-width="flexWidth('status_code',crud.data,状态码)" />
|
||||||
<el-table-column prop="requestparam" label="请求参数" />
|
<el-table-column prop="requestparam" label="请求参数" :min-width="flexWidth('requestparam',crud.data,请求参数)" />
|
||||||
<el-table-column prop="responseparam" label="返回参数" />
|
<el-table-column prop="responseparam" label="返回参数" :min-width="flexWidth('responseparam',crud.data,返回参数)" />
|
||||||
<el-table-column prop="logTime" width="170" label="记录时间" />
|
<el-table-column prop="logTime" label="记录时间" :min-width="flexWidth('logTime',crud.data,记录时间)" />
|
||||||
<el-table-column prop="content" width="500" label="内容详情" />
|
<el-table-column prop="content" label="内容详情" :min-width="flexWidth('content',crud.data,内容详情)" />
|
||||||
|
|
||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
|
|||||||
Reference in New Issue
Block a user