This commit is contained in:
USER-20220102CG\noblelift
2023-06-26 14:56:33 +08:00
3 changed files with 352 additions and 351 deletions

View File

@@ -24,6 +24,7 @@ import org.nl.acs.opc.DeviceType;
import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.system.service.ParamService; import org.nl.modules.system.service.ParamService;
import org.nl.modules.wql.util.SpringContextHolder; import org.nl.modules.wql.util.SpringContextHolder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap; import java.util.HashMap;
@@ -35,81 +36,85 @@ import java.util.Map;
@RequiredArgsConstructor @RequiredArgsConstructor
public class NDCAgvServiceImpl implements NDCAgvService { public class NDCAgvServiceImpl implements NDCAgvService {
private final DeviceAppService deviceAppService; @Autowired
private final ParamService paramService; private DeviceAppService deviceAppService;
private final AcsToWmsService acsToWmsService; @Autowired
private ParamService paramService;
private final DeviceExecuteLogService logServer; @Autowired
private AcsToWmsService acsToWmsService;
@Autowired
private DeviceExecuteLogService logServer;
Map<String, AgvDto> AGVDeviceStatus = new HashMap(); Map<String, AgvDto> AGVDeviceStatus = new HashMap();
@LokiLog(type = LokiLogType.AGV) @LokiLog(type = LokiLogType.AGV)
@Override @Override
public void deleteAgvInstToNDC(Instruction inst) throws Exception { public void deleteAgvInstToNDC(Instruction inst) throws Exception {
if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) { if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) {
int index = Integer.parseInt(inst.getAgv_jobno()); int index = Integer.parseInt(inst.getAgv_jobno());
byte indexhigh = (byte) IntToHexHigh(index); byte indexhigh = (byte) IntToHexHigh(index);
byte indexlow = (byte) IntToHexLow(index); byte indexlow = (byte) IntToHexLow(index);
String str = "十进制下发:"; String str = "十进制下发:";
String str1 = "十六进制下发:"; String str1 = "十六进制下发:";
str += "index:" + index; str += "index:" + index;
str1 += "ikey:" + hexToString(indexhigh & 0xFF) + hexToString(indexlow & 0xFF); str1 += "ikey:" + hexToString(indexhigh & 0xFF) + hexToString(indexlow & 0xFF);
System.out.println(str); System.out.println(str);
System.out.println(str1); System.out.println(str1);
byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD, byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD,
(byte) 0X00, (byte) 0X08, (byte) 0X00, (byte) 0X08,
(byte) 0X00, (byte) 0X06, (byte) 0X00, (byte) 0X06,
(byte) 0X00, (byte) 0X01, (byte) 0X00, (byte) 0X01,
(byte) 0X00, (byte) 0X6E, (byte) 0X00, (byte) 0X6E,
(byte) 0X00, (byte) 0X02, (byte) 0X00, (byte) 0X02,
(byte) indexhigh, (byte) indexlow, (byte) indexhigh, (byte) indexlow,
}; };
log.info("下发删除AGV指令--{}", Bytes2HexString(b)); log.info("下发删除AGV指令--{}", Bytes2HexString(b));
// NDCSocketConnectionAutoRun.write(b); // NDCSocketConnectionAutoRun.write(b);
System.out.println("下发删除agv指令数据:" + Bytes2HexString(b)); System.out.println("下发删除agv指令数据:" + Bytes2HexString(b));
} }
} }
@LokiLog(type = LokiLogType.AGV) @LokiLog(type = LokiLogType.AGV)
@Override @Override
public byte[] sendAgvOneModeInst(int phase, int index, int result1, int result2) { public byte[] sendAgvOneModeInst(int phase, int index, int result1, int result2) {
if (phase < 0 || index < 0) if (phase < 0 || index < 0)
return null; return null;
byte indexhigh = (byte) IntToHexHigh(index); byte indexhigh = (byte) IntToHexHigh(index);
byte indexlow = (byte) IntToHexLow(index); byte indexlow = (byte) IntToHexLow(index);
byte phasehigh = (byte) IntToHexHigh(phase); byte phasehigh = (byte) IntToHexHigh(phase);
byte phaselow = (byte) IntToHexLow(phase); byte phaselow = (byte) IntToHexLow(phase);
byte resulthigh1 = (byte) IntToHexHigh(result1); byte resulthigh1 = (byte) IntToHexHigh(result1);
byte resultlow1 = (byte) IntToHexLow(result1); byte resultlow1 = (byte) IntToHexLow(result1);
byte resulthigh2 = (byte) IntToHexHigh(result2); byte resulthigh2 = (byte) IntToHexHigh(result2);
byte resultlow2 = (byte) IntToHexLow(result2); byte resultlow2 = (byte) IntToHexLow(result2);
byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD, byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD,
(byte) 0X00, (byte) 0X08, (byte) 0X00, (byte) 0X08,
(byte) 0X00, (byte) 0X0D, (byte) 0X00, (byte) 0X0D,
(byte) 0X00, (byte) 0X01, (byte) 0X00, (byte) 0X01,
(byte) 0X00, (byte) 0X6D, (byte) 0X00, (byte) 0X6D,
(byte) 0X00, (byte) 0X08, (byte) 0X00, (byte) 0X08,
(byte) indexhigh, (byte) indexlow, (byte) indexhigh, (byte) indexlow,
(byte) 0X01, (byte) 0X12, (byte) 0X01, (byte) 0X12,
(byte) phasehigh, (byte) phaselow, (byte) phasehigh, (byte) phaselow,
(byte) resulthigh1, (byte) resultlow1, (byte) resulthigh1, (byte) resultlow1,
(byte) resulthigh2, (byte) resultlow2 (byte) resulthigh2, (byte) resultlow2
}; };
log.info("反馈agv动作数据--index:" + hexToString(indexhigh & 0xFF) + hexToString(indexlow & 0xFF) + ",phase:" + hexToString(phasehigh & 0xFF) + hexToString(phaselow & 0xFF)); log.info("反馈agv动作数据--index:" + hexToString(indexhigh & 0xFF) + hexToString(indexlow & 0xFF) + ",phase:" + hexToString(phasehigh & 0xFF) + hexToString(phaselow & 0xFF));
//87CD 0008 000C 0001 006D 0008 0000 0114 000E 0000 //87CD 0008 000C 0001 006D 0008 0000 0114 000E 0000
//87CD 0008 000C 0001 006D 0008 0003 0114 008F 0000 //87CD 0008 000C 0001 006D 0008 0003 0114 008F 0000
System.out.println("反馈agv动作数据:" + Bytes2HexString(b)); System.out.println("反馈agv动作数据:" + Bytes2HexString(b));
return b; return b;
} }
@LokiLog(type = LokiLogType.AGV) @LokiLog(type = LokiLogType.AGV)
@Override @Override
public void sendAgvOneInstToNDC(Instruction inst) { public void sendAgvOneInstToNDC(Instruction inst) {
@@ -171,66 +176,67 @@ public class NDCAgvServiceImpl implements NDCAgvService {
System.out.println("下发agv指令数据:" + Bytes2HexString(b)); System.out.println("下发agv指令数据:" + Bytes2HexString(b));
} }
} }
@LokiLog(type = LokiLogType.AGV) @LokiLog(type = LokiLogType.AGV)
@Override @Override
public void sendAgvInstToNDC(Instruction inst) { public void sendAgvInstToNDC(Instruction inst) {
if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) { if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) {
String instcode = inst.getInstruction_code(); String instcode = inst.getInstruction_code();
int type = Integer.parseInt(inst.getInstruction_type()); int type = Integer.parseInt(inst.getInstruction_type());
int priority = Integer.parseInt(inst.getPriority()) + 128; int priority = Integer.parseInt(inst.getPriority()) + 128;
DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class);
DeviceService deviceService = SpringContextHolder.getBean(DeviceServiceImpl.class); DeviceService deviceService = SpringContextHolder.getBean(DeviceServiceImpl.class);
int startAddress = deviceService.queryAddressBydeviceCode(inst.getStart_point_code()); int startAddress = deviceService.queryAddressBydeviceCode(inst.getStart_point_code());
int nextAddress = deviceService.queryAddressBydeviceCode(inst.getNext_point_code()); int nextAddress = deviceService.queryAddressBydeviceCode(inst.getNext_point_code());
byte ikeyhigh = (byte) IntToHexHigh(Integer.parseInt(instcode)); byte ikeyhigh = (byte) IntToHexHigh(Integer.parseInt(instcode));
byte ikeylow = (byte) IntToHexLow(Integer.parseInt(instcode)); byte ikeylow = (byte) IntToHexLow(Integer.parseInt(instcode));
byte typehigh = (byte) IntToHexHigh(type); byte typehigh = (byte) IntToHexHigh(type);
byte typelow = (byte) IntToHexLow(type); byte typelow = (byte) IntToHexLow(type);
byte qhdhigh = (byte) IntToHexHigh(startAddress); byte qhdhigh = (byte) IntToHexHigh(startAddress);
byte qhdlow = (byte) IntToHexLow(startAddress); byte qhdlow = (byte) IntToHexLow(startAddress);
byte fhdhigh = (byte) IntToHexHigh(nextAddress); byte fhdhigh = (byte) IntToHexHigh(nextAddress);
byte fhdlow = (byte) IntToHexLow(nextAddress); byte fhdlow = (byte) IntToHexLow(nextAddress);
byte prioritylow = (byte) IntToHexLow(priority); byte prioritylow = (byte) IntToHexLow(priority);
String str = "十进制下发:"; String str = "十进制下发:";
String str1 = "十六进制下发:"; String str1 = "十六进制下发:";
str += "ikey:" + (Integer.parseInt(instcode)); str += "ikey:" + (Integer.parseInt(instcode));
str1 += "ikey:" + hexToString(ikeyhigh & 0xFF) + hexToString(ikeylow & 0xFF); str1 += "ikey:" + hexToString(ikeyhigh & 0xFF) + hexToString(ikeylow & 0xFF);
str += "/type:" + (type); str += "/type:" + (type);
str1 += "/type:" + hexToString(typehigh & 0xFF) + hexToString(typelow & 0xFF); str1 += "/type:" + hexToString(typehigh & 0xFF) + hexToString(typelow & 0xFF);
str += "/qhd:" + (startAddress); str += "/qhd:" + (startAddress);
str1 += "/qhd:" + hexToString(qhdhigh & 0xFF) + hexToString(qhdlow & 0xFF); str1 += "/qhd:" + hexToString(qhdhigh & 0xFF) + hexToString(qhdlow & 0xFF);
str += "/fhd:" + (nextAddress); str += "/fhd:" + (nextAddress);
str1 += "/fhd:" + hexToString(fhdhigh & 0xFF) + hexToString(fhdlow & 0xFF); str1 += "/fhd:" + hexToString(fhdhigh & 0xFF) + hexToString(fhdlow & 0xFF);
str += "/priority:" + (priority); str += "/priority:" + (priority);
str1 += "/priority:" + hexToString(prioritylow & 0xFF); str1 += "/priority:" + hexToString(prioritylow & 0xFF);
System.out.println(str); System.out.println(str);
System.out.println(str1); System.out.println(str1);
byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD, byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD,
(byte) 0X00, (byte) 0X08, (byte) 0X00, (byte) 0X08,
(byte) 0X00, (byte) 0X12, (byte) 0X00, (byte) 0X12,
(byte) 0X00, (byte) 0X01, (byte) 0X00, (byte) 0X01,
(byte) 0X00, (byte) 0X71, (byte) 0X00, (byte) 0X71,
(byte) 0X00, (byte) 0X0E, (byte) 0X00, (byte) 0X0E,
(byte) 0X01, prioritylow, (byte) 0X01, prioritylow,
(byte) 0X00, (byte) 0X01, (byte) 0X00, (byte) 0X01,
(byte) ikeyhigh, (byte) ikeylow, (byte) ikeyhigh, (byte) ikeylow,
(byte) ikeyhigh, (byte) ikeylow, (byte) ikeyhigh, (byte) ikeylow,
(byte) typehigh, (byte) typelow, (byte) typehigh, (byte) typelow,
(byte) qhdhigh, (byte) qhdlow, (byte) qhdhigh, (byte) qhdlow,
(byte) fhdhigh, (byte) fhdlow (byte) fhdhigh, (byte) fhdlow
}; };
log.info("下发AGV作业指令--{}", str1); log.info("下发AGV作业指令--{}", str1);
// NDCSocketConnectionAutoRun.write(b); // NDCSocketConnectionAutoRun.write(b);
System.out.println("下发agv指令数据:" + Bytes2HexString(b)); System.out.println("下发agv指令数据:" + Bytes2HexString(b));
} }
} }
@LokiLog(type = LokiLogType.AGV) @LokiLog(type = LokiLogType.AGV)
@@ -280,129 +286,129 @@ public class NDCAgvServiceImpl implements NDCAgvService {
@LokiLog(type = LokiLogType.AGV) @LokiLog(type = LokiLogType.AGV)
@Override @Override
public byte[] sendAgvOneModeInst(int phase, int index, int result) { public byte[] sendAgvOneModeInst(int phase, int index, int result) {
if (phase < 0 || index < 0) if (phase < 0 || index < 0)
return null; return null;
byte indexhigh = (byte) IntToHexHigh(index); byte indexhigh = (byte) IntToHexHigh(index);
byte indexlow = (byte) IntToHexLow(index); byte indexlow = (byte) IntToHexLow(index);
byte phasehigh = (byte) IntToHexHigh(phase); byte phasehigh = (byte) IntToHexHigh(phase);
byte phaselow = (byte) IntToHexLow(phase); byte phaselow = (byte) IntToHexLow(phase);
byte resulthigh = (byte) IntToHexHigh(result); byte resulthigh = (byte) IntToHexHigh(result);
byte resultlow = (byte) IntToHexLow(result); byte resultlow = (byte) IntToHexLow(result);
int type = Integer.parseInt(paramService.findByCode(AcsConfig.BUSINESSTYPE).getValue()); int type = Integer.parseInt(paramService.findByCode(AcsConfig.BUSINESSTYPE).getValue());
byte[] b = new byte[]{}; byte[] b = new byte[]{};
switch (type) { switch (type) {
case 0: case 0:
b = new byte[]{(byte) 0X87, (byte) 0XCD, b = new byte[]{(byte) 0X87, (byte) 0XCD,
(byte) 0X00, (byte) 0X08, (byte) 0X00, (byte) 0X08,
(byte) 0X00, (byte) 0X0A, (byte) 0X00, (byte) 0X0A,
(byte) 0X00, (byte) 0X01, (byte) 0X00, (byte) 0X01,
(byte) 0X00, (byte) 0X6D, (byte) 0X00, (byte) 0X6D,
(byte) 0X00, (byte) 0X06, (byte) 0X00, (byte) 0X06,
(byte) indexhigh, (byte) indexlow, (byte) indexhigh, (byte) indexlow,
(byte) 0X01, (byte) 0X12, (byte) 0X01, (byte) 0X12,
(byte) phasehigh, (byte) phaselow (byte) phasehigh, (byte) phaselow
}; };
break; break;
case 1: case 1:
b = new byte[]{(byte) 0X87, (byte) 0XCD, b = new byte[]{(byte) 0X87, (byte) 0XCD,
(byte) 0X00, (byte) 0X08, (byte) 0X00, (byte) 0X08,
(byte) 0X00, (byte) 0X0D, (byte) 0X00, (byte) 0X0D,
(byte) 0X00, (byte) 0X01, (byte) 0X00, (byte) 0X01,
(byte) 0X00, (byte) 0X6D, (byte) 0X00, (byte) 0X6D,
(byte) 0X00, (byte) 0X08, (byte) 0X00, (byte) 0X08,
(byte) indexhigh, (byte) indexlow, (byte) indexhigh, (byte) indexlow,
(byte) 0X01, (byte) 0X12, (byte) 0X01, (byte) 0X12,
(byte) phasehigh, (byte) phaselow, (byte) phasehigh, (byte) phaselow,
(byte) resulthigh, (byte) resultlow (byte) resulthigh, (byte) resultlow
}; };
break; break;
case 2: case 2:
b = new byte[]{(byte) 0X87, (byte) 0XCD, b = new byte[]{(byte) 0X87, (byte) 0XCD,
(byte) 0X00, (byte) 0X08, (byte) 0X00, (byte) 0X08,
(byte) 0X00, (byte) 0X0A, (byte) 0X00, (byte) 0X0A,
(byte) 0X00, (byte) 0X01, (byte) 0X00, (byte) 0X01,
(byte) 0X00, (byte) 0X6D, (byte) 0X00, (byte) 0X6D,
(byte) 0X00, (byte) 0X06, (byte) 0X00, (byte) 0X06,
(byte) indexhigh, (byte) indexlow, (byte) indexhigh, (byte) indexlow,
(byte) 0X01, (byte) 0X12, (byte) 0X01, (byte) 0X12,
(byte) phasehigh, (byte) phaselow (byte) phasehigh, (byte) phaselow
}; };
break; break;
case 5: case 5:
b = new byte[]{(byte) 0X87, (byte) 0XCD, b = new byte[]{(byte) 0X87, (byte) 0XCD,
(byte) 0X00, (byte) 0X08, (byte) 0X00, (byte) 0X08,
(byte) 0X00, (byte) 0X0A, (byte) 0X00, (byte) 0X0A,
(byte) 0X00, (byte) 0X01, (byte) 0X00, (byte) 0X01,
(byte) 0X00, (byte) 0X6D, (byte) 0X00, (byte) 0X6D,
(byte) 0X00, (byte) 0X06, (byte) 0X00, (byte) 0X06,
(byte) indexhigh, (byte) indexlow, (byte) indexhigh, (byte) indexlow,
(byte) 0X01, (byte) 0X12, (byte) 0X01, (byte) 0X12,
(byte) phasehigh, (byte) phaselow (byte) phasehigh, (byte) phaselow
}; };
break; break;
case 7: case 7:
b = new byte[]{(byte) 0X87, (byte) 0XCD, b = new byte[]{(byte) 0X87, (byte) 0XCD,
(byte) 0X00, (byte) 0X08, (byte) 0X00, (byte) 0X08,
(byte) 0X00, (byte) 0X0A, (byte) 0X00, (byte) 0X0A,
(byte) 0X00, (byte) 0X01, (byte) 0X00, (byte) 0X01,
(byte) 0X00, (byte) 0X6D, (byte) 0X00, (byte) 0X6D,
(byte) 0X00, (byte) 0X06, (byte) 0X00, (byte) 0X06,
(byte) indexhigh, (byte) indexlow, (byte) indexhigh, (byte) indexlow,
(byte) 0X01, (byte) 0X12, (byte) 0X01, (byte) 0X12,
(byte) phasehigh, (byte) phaselow (byte) phasehigh, (byte) phaselow
}; };
break; break;
} }
log.info("反馈agv动作数据--index:" + hexToString(indexhigh & 0xFF) + hexToString(indexlow & 0xFF) + ",phase:" + hexToString(phasehigh & 0xFF) + hexToString(phaselow & 0xFF)); log.info("反馈agv动作数据--index:" + hexToString(indexhigh & 0xFF) + hexToString(indexlow & 0xFF) + ",phase:" + hexToString(phasehigh & 0xFF) + hexToString(phaselow & 0xFF));
System.out.println("反馈agv动作数据:" + Bytes2HexString(b)); System.out.println("反馈agv动作数据:" + Bytes2HexString(b));
return b; return b;
} }
@LokiLog(type = LokiLogType.AGV) @LokiLog(type = LokiLogType.AGV)
@Override @Override
public String queryDoorStatus(String device) { public String queryDoorStatus(String device) {
log.info("AGV查询自动门状态,参数:{}", device); log.info("AGV查询自动门状态,参数:{}", device);
int type = Integer.parseInt(paramService.findByCode(AcsConfig.BUSINESSTYPE).getValue()); int type = Integer.parseInt(paramService.findByCode(AcsConfig.BUSINESSTYPE).getValue());
switch (type) { switch (type) {
case 4: case 4:
if (StrUtil.equals(paramService.findByCode(AcsConfig.HASOTHERSYSTEM).getValue(), "1")) { if (StrUtil.equals(paramService.findByCode(AcsConfig.HASOTHERSYSTEM).getValue(), "1")) {
String result = acsToWmsService.queryDoorsStatus().body(); String result = acsToWmsService.queryDoorsStatus().body();
JSONArray ja = JSONArray.parseArray(result); JSONArray ja = JSONArray.parseArray(result);
log.info("AGV查询自动门状态,反馈:{}", ja.toString()); log.info("AGV查询自动门状态,反馈:{}", ja.toString());
return ja.toString(); return ja.toString();
} }
return null; return null;
default: default:
if (StrUtil.equals("doors", device)) { if (StrUtil.equals("doors", device)) {
List<Device> list = deviceAppService.findDevice(DeviceType.autodoor); List<Device> list = deviceAppService.findDevice(DeviceType.autodoor);
JSONArray ja = new JSONArray(); JSONArray ja = new JSONArray();
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
Device doordevice = deviceAppService.findDeviceByCode(list.get(i).getDevice_code()); Device doordevice = deviceAppService.findDeviceByCode(list.get(i).getDevice_code());
if (ObjectUtil.isEmpty(doordevice)) {
throw new BadRequestException("未找到对应设备");
}
String mes = null;
JSONObject jo = JSONObject.parseObject(mes);
ja.add(jo);
}
log.info("AGV查询自动门状态,反馈:{}", ja.toString());
return ja.toString();
} else {
Device doordevice = deviceAppService.findDeviceByCode(device);
if (ObjectUtil.isEmpty(doordevice)) { if (ObjectUtil.isEmpty(doordevice)) {
throw new BadRequestException("未找到对应设备"); throw new BadRequestException("未找到对应设备");
} }
String mes = null; String mes = null;
JSONObject jo = JSONObject.parseObject(mes); JSONObject jo = JSONObject.parseObject(mes);
log.info("AGV查询自动门状态,反馈:{}", jo.toString()); ja.add(jo);
return jo.toString();
} }
} log.info("AGV查询自动门状态,反馈:{}", ja.toString());
return ja.toString();
} else {
Device doordevice = deviceAppService.findDeviceByCode(device);
if (ObjectUtil.isEmpty(doordevice)) {
throw new BadRequestException("未找到对应设备");
}
String mes = null;
JSONObject jo = JSONObject.parseObject(mes);
log.info("AGV查询自动门状态,反馈:{}", jo.toString());
return jo.toString();
}
}
} }

View File

@@ -169,55 +169,56 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService {
//共挤线三工位 //共挤线三工位
if (addressdevice.getDeviceDriver() instanceof HailiangSmartplcTestDeviceDriver) { if (addressdevice.getDeviceDriver() instanceof HailiangSmartplcTestDeviceDriver) {
hailiangSmartplcTestDeviceDriver = (HailiangSmartplcTestDeviceDriver) addressdevice.getDeviceDriver(); hailiangSmartplcTestDeviceDriver = (HailiangSmartplcTestDeviceDriver) addressdevice.getDeviceDriver();
// if ((hailiangSmartplcTestDeviceDriver.getAction() == 1 || hailiangSmartplcTestDeviceDriver.getAction() == 3) && hailiangSmartplcTestDeviceDriver.getMove() == 1) { if ((hailiangSmartplcTestDeviceDriver.getAction() == 1 || hailiangSmartplcTestDeviceDriver.getAction() == 3) && hailiangSmartplcTestDeviceDriver.getMove() == 1) {
// inst.setExecute_status("1"); inst.setExecute_status("1");
// is_feedback = true; is_feedback = true;
// } }
is_feedback = true; //is_feedback = true;
} }
//叠盘位 //叠盘位
if (addressdevice.getDeviceDriver() instanceof EmptyVehicleStackingPositionDeviceDriver) { else if (addressdevice.getDeviceDriver() instanceof EmptyVehicleStackingPositionDeviceDriver) {
emptyVehicleStackingPositionDeviceDriver = (EmptyVehicleStackingPositionDeviceDriver) addressdevice.getDeviceDriver(); emptyVehicleStackingPositionDeviceDriver = (EmptyVehicleStackingPositionDeviceDriver) addressdevice.getDeviceDriver();
// int number = emptyVehicleStackingPositionDeviceDriver.getNumber(); int number = emptyVehicleStackingPositionDeviceDriver.getNumber();
// if (number < Integer.valueOf(str)) { if (number < Integer.valueOf(str)) {
// log.info("叠盘位:" + jobno + "当前层高为:" + number + ",不存在第" + str + "的托盘!"); log.info("叠盘位:" + jobno + "当前层高为:" + number + ",不存在第" + str + "的托盘!");
// return null; return null;
// } }
// inst.setExecute_status("1"); inst.setExecute_status("1");
is_feedback = true; is_feedback = true;
} }
//货梯对接线 //货梯对接线
if (addressdevice.getDeviceDriver() instanceof CargoLiftConveyorDeviceDriver) { else if (addressdevice.getDeviceDriver() instanceof CargoLiftConveyorDeviceDriver) {
cargoLiftConveyorDeviceDriver = (CargoLiftConveyorDeviceDriver) addressdevice.getDeviceDriver(); cargoLiftConveyorDeviceDriver = (CargoLiftConveyorDeviceDriver) addressdevice.getDeviceDriver();
// if ((cargoLiftConveyorDeviceDriver.getAction() == 1 || cargoLiftConveyorDeviceDriver.getAction() == 3) && cargoLiftConveyorDeviceDriver.getMove() == 1) { if ((cargoLiftConveyorDeviceDriver.getAction() == 1 || cargoLiftConveyorDeviceDriver.getAction() == 3) && cargoLiftConveyorDeviceDriver.getMove() == 1) {
// inst.setExecute_status("1"); inst.setExecute_status("1");
// is_feedback = true; is_feedback = true;
// } }
is_feedback = true; //is_feedback = true;
} }
//豪凯自动线对接位 //豪凯自动线对接位
if (addressdevice.getDeviceDriver() instanceof HaoKaiAutoConveyorDeviceDriver) { else if (addressdevice.getDeviceDriver() instanceof HaoKaiAutoConveyorDeviceDriver) {
haoKaiAutoConveyorDeviceDriver = (HaoKaiAutoConveyorDeviceDriver) addressdevice.getDeviceDriver(); haoKaiAutoConveyorDeviceDriver = (HaoKaiAutoConveyorDeviceDriver) addressdevice.getDeviceDriver();
// if ((haoKaiAutoConveyorDeviceDriver.getAction() == 1 || haoKaiAutoConveyorDeviceDriver.getAction() == 3) && haoKaiAutoConveyorDeviceDriver.getMove() == 1) { if ((haoKaiAutoConveyorDeviceDriver.getAction() == 1 || haoKaiAutoConveyorDeviceDriver.getAction() == 3) && haoKaiAutoConveyorDeviceDriver.getMove() == 1) {
// inst.setExecute_status("1"); inst.setExecute_status("1");
// is_feedback = true; is_feedback = true;
// } }
is_feedback = true; //is_feedback = true;
} }
//油漆线 //油漆线
if (addressdevice.getDeviceDriver() instanceof PaintConveyorDeviceDriver) { else if (addressdevice.getDeviceDriver() instanceof PaintConveyorDeviceDriver) {
paintConveyorDeviceDriver = (PaintConveyorDeviceDriver) addressdevice.getDeviceDriver(); paintConveyorDeviceDriver = (PaintConveyorDeviceDriver) addressdevice.getDeviceDriver();
// if ((paintConveyorDeviceDriver.getAction() == 1 || paintConveyorDeviceDriver.getAction() == 3) && paintConveyorDeviceDriver.getMove() == 1) { if ((paintConveyorDeviceDriver.getAction() == 1 || paintConveyorDeviceDriver.getAction() == 3) && paintConveyorDeviceDriver.getMove() == 1) {
// inst.setExecute_status("1"); inst.setExecute_status("1");
// is_feedback = true; is_feedback = true;
// } }
is_feedback = true; // is_feedback = true;
} }/* else if (addressdevice.getDeviceDriver() instanceof StandardStorageDeviceDriver) {
if (addressdevice.getDeviceDriver() instanceof StandardStorageDeviceDriver) { is_feedback = true;
} */else {
is_feedback = true; is_feedback = true;
} }
} }
@@ -226,37 +227,40 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService {
hailiangSmartplcTestDeviceDriver = (HailiangSmartplcTestDeviceDriver) addressdevice.getDeviceDriver(); hailiangSmartplcTestDeviceDriver = (HailiangSmartplcTestDeviceDriver) addressdevice.getDeviceDriver();
inst.setExecute_status("2"); inst.setExecute_status("2");
hailiangSmartplcTestDeviceDriver.writing(2); hailiangSmartplcTestDeviceDriver.writing(2);
is_feedback = true; if (hailiangSmartplcTestDeviceDriver.getItemProtocol().getOpcIntegerValue("to_command") == 2) {
} is_feedback = true;
}
if (addressdevice.getDeviceDriver() instanceof EmptyVehicleStackingPositionDeviceDriver) { } else if (addressdevice.getDeviceDriver() instanceof EmptyVehicleStackingPositionDeviceDriver) {
emptyVehicleStackingPositionDeviceDriver = (EmptyVehicleStackingPositionDeviceDriver) addressdevice.getDeviceDriver(); emptyVehicleStackingPositionDeviceDriver = (EmptyVehicleStackingPositionDeviceDriver) addressdevice.getDeviceDriver();
inst.setExecute_status("2"); inst.setExecute_status("2");
emptyVehicleStackingPositionDeviceDriver.writing(2); emptyVehicleStackingPositionDeviceDriver.writing(2);
is_feedback = true; if (emptyVehicleStackingPositionDeviceDriver.getItemProtocol().getOpcIntegerValue("to_command") == 2) {
} is_feedback = true;
}
if (addressdevice.getDeviceDriver() instanceof CargoLiftConveyorDeviceDriver) { } else if (addressdevice.getDeviceDriver() instanceof CargoLiftConveyorDeviceDriver) {
cargoLiftConveyorDeviceDriver = (CargoLiftConveyorDeviceDriver) addressdevice.getDeviceDriver(); cargoLiftConveyorDeviceDriver = (CargoLiftConveyorDeviceDriver) addressdevice.getDeviceDriver();
inst.setExecute_status("2"); inst.setExecute_status("2");
cargoLiftConveyorDeviceDriver.writing(2); cargoLiftConveyorDeviceDriver.writing(2);
is_feedback = true; if (cargoLiftConveyorDeviceDriver.getItemProtocol().getOpcIntegerValue("to_command") == 2) {
} is_feedback = true;
}
if (addressdevice.getDeviceDriver() instanceof HaoKaiAutoConveyorDeviceDriver) { } else if (addressdevice.getDeviceDriver() instanceof HaoKaiAutoConveyorDeviceDriver) {
haoKaiAutoConveyorDeviceDriver = (HaoKaiAutoConveyorDeviceDriver) addressdevice.getDeviceDriver(); haoKaiAutoConveyorDeviceDriver = (HaoKaiAutoConveyorDeviceDriver) addressdevice.getDeviceDriver();
inst.setExecute_status("2"); inst.setExecute_status("2");
haoKaiAutoConveyorDeviceDriver.writing(2); haoKaiAutoConveyorDeviceDriver.writing(2);
is_feedback = true; if (haoKaiAutoConveyorDeviceDriver.getItemProtocol().getOpcIntegerValue("to_command") == 2) {
} is_feedback = true;
}
if (addressdevice.getDeviceDriver() instanceof PaintConveyorDeviceDriver) { } else if (addressdevice.getDeviceDriver() instanceof PaintConveyorDeviceDriver) {
paintConveyorDeviceDriver = (PaintConveyorDeviceDriver) addressdevice.getDeviceDriver(); paintConveyorDeviceDriver = (PaintConveyorDeviceDriver) addressdevice.getDeviceDriver();
inst.setExecute_status("2"); inst.setExecute_status("2");
paintConveyorDeviceDriver.writing(2); paintConveyorDeviceDriver.writing(2);
if (paintConveyorDeviceDriver.getItemProtocol().getOpcIntegerValue("to_command") == 2) {
is_feedback = true;
}
}/* else if (addressdevice.getDeviceDriver() instanceof StandardStorageDeviceDriver) {
is_feedback = true; is_feedback = true;
} } */else {
if (addressdevice.getDeviceDriver() instanceof StandardStorageDeviceDriver) {
is_feedback = true; is_feedback = true;
} }
@@ -321,102 +325,93 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService {
if ("EntryRequired".equals(type)) { if ("EntryRequired".equals(type)) {
if (addressdevice.getDeviceDriver() instanceof HailiangSmartplcTestDeviceDriver) { if (addressdevice.getDeviceDriver() instanceof HailiangSmartplcTestDeviceDriver) {
hailiangSmartplcTestDeviceDriver = (HailiangSmartplcTestDeviceDriver) addressdevice.getDeviceDriver(); hailiangSmartplcTestDeviceDriver = (HailiangSmartplcTestDeviceDriver) addressdevice.getDeviceDriver();
// if ((hailiangSmartplcTestDeviceDriver.getAction() == 2 || hailiangSmartplcTestDeviceDriver.getAction() == 3) && hailiangSmartplcTestDeviceDriver.getMove() == 0) { if ((hailiangSmartplcTestDeviceDriver.getAction() == 2 || hailiangSmartplcTestDeviceDriver.getAction() == 3) && hailiangSmartplcTestDeviceDriver.getMove() == 0) {
// inst.setExecute_status("3"); inst.setExecute_status("3");
// is_feedback = true; is_feedback = true;
// } }
//is_feedback = true;
} else if (addressdevice.getDeviceDriver() instanceof EmptyVehicleStackingPositionDeviceDriver) {
emptyVehicleStackingPositionDeviceDriver = (EmptyVehicleStackingPositionDeviceDriver) addressdevice.getDeviceDriver();
int number = emptyVehicleStackingPositionDeviceDriver.getNumber();
if (number >= Integer.valueOf(str)) {
log.info("叠盘位:" + jobno + "" + str + "上有货!");
return null;
}
inst.setExecute_status("3");
is_feedback = true; is_feedback = true;
} else if (addressdevice.getDeviceDriver() instanceof CargoLiftConveyorDeviceDriver) {
}
if (addressdevice.getDeviceDriver() instanceof EmptyVehicleStackingPositionDeviceDriver) {
// emptyVehicleStackingPositionDeviceDriver = (EmptyVehicleStackingPositionDeviceDriver) addressdevice.getDeviceDriver();
// int number = emptyVehicleStackingPositionDeviceDriver.getNumber();
// if (number >= Integer.valueOf(str)) {
// log.info("叠盘位:" + jobno + "第" + str + "上有货!");
// return null;
// }
// inst.setExecute_status("3");
is_feedback = true;
}
if (addressdevice.getDeviceDriver() instanceof CargoLiftConveyorDeviceDriver) {
cargoLiftConveyorDeviceDriver = (CargoLiftConveyorDeviceDriver) addressdevice.getDeviceDriver(); cargoLiftConveyorDeviceDriver = (CargoLiftConveyorDeviceDriver) addressdevice.getDeviceDriver();
// if ((cargoLiftConveyorDeviceDriver.getAction() == 2 || cargoLiftConveyorDeviceDriver.getAction() == 3) && cargoLiftConveyorDeviceDriver.getMove() == 0) { if ((cargoLiftConveyorDeviceDriver.getAction() == 2 || cargoLiftConveyorDeviceDriver.getAction() == 3) && cargoLiftConveyorDeviceDriver.getMove() == 0) {
// inst.setExecute_status("3"); inst.setExecute_status("3");
// is_feedback = true; is_feedback = true;
// } }
is_feedback = true; //is_feedback = true;
} else if (addressdevice.getDeviceDriver() instanceof HaoKaiAutoConveyorDeviceDriver) {
}
if (addressdevice.getDeviceDriver() instanceof HaoKaiAutoConveyorDeviceDriver) {
haoKaiAutoConveyorDeviceDriver = (HaoKaiAutoConveyorDeviceDriver) addressdevice.getDeviceDriver(); haoKaiAutoConveyorDeviceDriver = (HaoKaiAutoConveyorDeviceDriver) addressdevice.getDeviceDriver();
// if ((haoKaiAutoConveyorDeviceDriver.getAction() == 2 || haoKaiAutoConveyorDeviceDriver.getAction() == 3) && haoKaiAutoConveyorDeviceDriver.getMove() == 0) { if ((haoKaiAutoConveyorDeviceDriver.getAction() == 2 || haoKaiAutoConveyorDeviceDriver.getAction() == 3) && haoKaiAutoConveyorDeviceDriver.getMove() == 0) {
// inst.setExecute_status("3"); inst.setExecute_status("3");
// is_feedback = true; is_feedback = true;
// } }
is_feedback = true; // is_feedback = true;
} } else if (addressdevice.getDeviceDriver() instanceof PaintConveyorDeviceDriver) {
if (addressdevice.getDeviceDriver() instanceof PaintConveyorDeviceDriver) {
paintConveyorDeviceDriver = (PaintConveyorDeviceDriver) addressdevice.getDeviceDriver(); paintConveyorDeviceDriver = (PaintConveyorDeviceDriver) addressdevice.getDeviceDriver();
// if ((paintConveyorDeviceDriver.getAction() == 2 || paintConveyorDeviceDriver.getAction() == 3) && paintConveyorDeviceDriver.getMove() == 0) { if ((paintConveyorDeviceDriver.getAction() == 2 || paintConveyorDeviceDriver.getAction() == 3) && paintConveyorDeviceDriver.getMove() == 0) {
// inst.setExecute_status("3"); inst.setExecute_status("3");
// is_feedback = true; is_feedback = true;
// } }
// is_feedback = true;
}/* else if (addressdevice.getDeviceDriver() instanceof StandardStorageDeviceDriver) {
is_feedback = true; is_feedback = true;
} else if (addressdevice.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
}
if (addressdevice.getDeviceDriver() instanceof StandardStorageDeviceDriver) {
is_feedback = true; is_feedback = true;
} }*/ else {
if (addressdevice.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
is_feedback = true; is_feedback = true;
} }
} }
if ("PauseOnStation".equals(type)) { if ("PauseOnStation".equals(type)) {
if (addressdevice.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
is_feedback = true;
}
if (addressdevice.getDeviceDriver() instanceof HailiangSmartplcTestDeviceDriver) { if (addressdevice.getDeviceDriver() instanceof HailiangSmartplcTestDeviceDriver) {
// hailiangSmartplcTestDeviceDriver = (HailiangSmartplcTestDeviceDriver) addressdevice.getDeviceDriver(); hailiangSmartplcTestDeviceDriver = (HailiangSmartplcTestDeviceDriver) addressdevice.getDeviceDriver();
// inst.setExecute_status("4"); inst.setExecute_status("4");
// hailiangSmartplcTestDeviceDriver.writing(3); hailiangSmartplcTestDeviceDriver.writing(3);
if (hailiangSmartplcTestDeviceDriver.getItemProtocol().getOpcIntegerValue("to_command") == 3) {
is_feedback = true;
}
} else if (addressdevice.getDeviceDriver() instanceof EmptyVehicleStackingPositionDeviceDriver) {
emptyVehicleStackingPositionDeviceDriver = (EmptyVehicleStackingPositionDeviceDriver) addressdevice.getDeviceDriver();
inst.setExecute_status("4");
emptyVehicleStackingPositionDeviceDriver.writing(3);
if (emptyVehicleStackingPositionDeviceDriver.getItemProtocol().getOpcIntegerValue("to_command") == 3) {
is_feedback = true;
}
} else if (addressdevice.getDeviceDriver() instanceof CargoLiftConveyorDeviceDriver) {
cargoLiftConveyorDeviceDriver = (CargoLiftConveyorDeviceDriver) addressdevice.getDeviceDriver();
inst.setExecute_status("4");
cargoLiftConveyorDeviceDriver.writing(3);
if (cargoLiftConveyorDeviceDriver.getItemProtocol().getOpcIntegerValue("to_command") == 3) {
is_feedback = true;
}
} else if (addressdevice.getDeviceDriver() instanceof HaoKaiAutoConveyorDeviceDriver) {
haoKaiAutoConveyorDeviceDriver = (HaoKaiAutoConveyorDeviceDriver) addressdevice.getDeviceDriver();
inst.setExecute_status("4");
haoKaiAutoConveyorDeviceDriver.writing(3);
if (haoKaiAutoConveyorDeviceDriver.getItemProtocol().getOpcIntegerValue("to_command") == 3) {
is_feedback = true;
}
} else if (addressdevice.getDeviceDriver() instanceof PaintConveyorDeviceDriver) {
paintConveyorDeviceDriver = (PaintConveyorDeviceDriver) addressdevice.getDeviceDriver();
inst.setExecute_status("4");
paintConveyorDeviceDriver.writing(3);
if (paintConveyorDeviceDriver.getItemProtocol().getOpcIntegerValue("to_command") == 3) {
is_feedback = true;
}
}/* else if (addressdevice.getDeviceDriver() instanceof StandardStorageDeviceDriver) {
is_feedback = true; is_feedback = true;
} } else if (addressdevice.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
if (addressdevice.getDeviceDriver() instanceof EmptyVehicleStackingPositionDeviceDriver) {
// emptyVehicleStackingPositionDeviceDriver = (EmptyVehicleStackingPositionDeviceDriver) addressdevice.getDeviceDriver();
// inst.setExecute_status("4");
// emptyVehicleStackingPositionDeviceDriver.writing(3);
is_feedback = true; is_feedback = true;
} } */else {
if (addressdevice.getDeviceDriver() instanceof CargoLiftConveyorDeviceDriver) {
// cargoLiftConveyorDeviceDriver = (CargoLiftConveyorDeviceDriver) addressdevice.getDeviceDriver();
// inst.setExecute_status("4");
// cargoLiftConveyorDeviceDriver.writing(3);
is_feedback = true;
}
if (addressdevice.getDeviceDriver() instanceof HaoKaiAutoConveyorDeviceDriver) {
// haoKaiAutoConveyorDeviceDriver = (HaoKaiAutoConveyorDeviceDriver) addressdevice.getDeviceDriver();
// inst.setExecute_status("4");
// haoKaiAutoConveyorDeviceDriver.writing(3);
is_feedback = true;
}
if (addressdevice.getDeviceDriver() instanceof PaintConveyorDeviceDriver) {
// paintConveyorDeviceDriver = (PaintConveyorDeviceDriver) addressdevice.getDeviceDriver();
// inst.setExecute_status("4");
// paintConveyorDeviceDriver.writing(3);
is_feedback = true;
}
if (addressdevice.getDeviceDriver() instanceof StandardStorageDeviceDriver) {
is_feedback = true; is_feedback = true;
} }
} }

View File

@@ -257,12 +257,12 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
// logServer.deviceExecuteLog(this.device_code, "", "", "扫码器扫到的条码为:" + barcode()); // logServer.deviceExecuteLog(this.device_code, "", "", "扫码器扫到的条码为:" + barcode());
// } // }
//申请任务 //申请任务
if (!StrUtil.isEmpty(barcode()) && !StrUtil.equals(barcode(), "NoRead") && barcode().trim().length() == 12 && !requireSucess) { if (!StrUtil.isEmpty(barcode()) && !StrUtil.equals(barcode(), "NoRead") && barcode().trim().length() == 12 && barcode().trim().startsWith("TTP") && !requireSucess) {
logServer.deviceExecuteLog(this.device_code, "", "", "开始申请任务~~~~~~"); logServer.deviceExecuteLog(this.device_code, "", "", "开始申请任务~~~~~~");
instruction_require(barcode()); instruction_require(barcode());
logServer.deviceExecuteLog(this.device_code, "", "", "申请任务成功~~~~~~"); logServer.deviceExecuteLog(this.device_code, "", "", "申请任务成功~~~~~~");
} }
if (!StrUtil.isEmpty(barcode()) && !StrUtil.equals(barcode(), "NoRead") && barcode().trim().length() == 12 && !applySucess) { if (!StrUtil.isEmpty(barcode()) && !StrUtil.equals(barcode(), "NoRead") && barcode().trim().length() == 12 && barcode().trim().startsWith("TTP") && !applySucess) {
instruction_apply(barcode()); instruction_apply(barcode());
} }
} }
@@ -577,18 +577,18 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
message = "申请任务中..."; message = "申请任务中...";
logServer.deviceExecuteLog(device_code, "", "", "开始申请任务...条码信息:" + container_code); logServer.deviceExecuteLog(device_code, "", "", "开始申请任务...条码信息:" + container_code);
JSONObject apply = new JSONObject(); JSONObject apply = new JSONObject();
if(action == 4){ if (action == 4) {
if(this.itemProtocol.getItem_task() == 0 ){ if (this.itemProtocol.getItem_task() == 0) {
logServer.deviceExecuteLog(device_code, "", "", "开始申请一楼任务...上次指令号为0"); logServer.deviceExecuteLog(device_code, "", "", "开始申请一楼任务...上次指令号为0");
return false; return false;
} }
Instruction inst = instructionService.findByCode(String.valueOf(this.itemProtocol.getItem_task())); Instruction inst = instructionService.findByCode(String.valueOf(this.itemProtocol.getItem_task()));
if(ObjectUtil.isEmpty(inst)){ if (ObjectUtil.isEmpty(inst)) {
logServer.deviceExecuteLog(device_code, "", "", "开始申请一楼任务...指令号:" + String.valueOf(this.itemProtocol.getItem_task() + "未找到对应指令")); logServer.deviceExecuteLog(device_code, "", "", "开始申请一楼任务...指令号:" + String.valueOf(this.itemProtocol.getItem_task() + "未找到对应指令"));
return false; return false;
} }
TaskDto taskDto = taskserver.findByCode(inst.getTask_code()); TaskDto taskDto = taskserver.findByCode(inst.getTask_code());
if(ObjectUtil.isEmpty(taskDto)){ if (ObjectUtil.isEmpty(taskDto)) {
logServer.deviceExecuteLog(device_code, "", "", "开始申请一楼任务...指令号:" + String.valueOf(this.itemProtocol.getItem_task() + "未找到对应任务")); logServer.deviceExecuteLog(device_code, "", "", "开始申请一楼任务...指令号:" + String.valueOf(this.itemProtocol.getItem_task() + "未找到对应任务"));
return false; return false;
} }
@@ -681,10 +681,10 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
@Override @Override
public void setDeviceStatus(JSONObject data) { public void setDeviceStatus(JSONObject data) {
String requireSucess = data.getString("requireSucess"); String requireSucess = data.getString("requireSucess");
if (StrUtil.isNotEmpty(requireSucess)){ if (StrUtil.isNotEmpty(requireSucess)) {
if (requireSucess.equals("1")){ if (requireSucess.equals("1")) {
this.requireSucess = true; this.requireSucess = true;
} else if (requireSucess.equals("0")){ } else if (requireSucess.equals("0")) {
this.requireSucess = false; this.requireSucess = false;
} }
} }