Merge remote-tracking branch 'origin/master'

This commit is contained in:
2024-02-29 13:14:05 +08:00
33 changed files with 502 additions and 360 deletions

View File

@@ -7,6 +7,7 @@ import org.nl.acs.AcsConfig;
import org.nl.acs.agv.server.NDCAgvService;
import org.nl.acs.device.domain.Device;
import org.nl.acs.device.service.DeviceService;
import org.nl.acs.device_driver.agv.ndcone.AgvNdcOneDeviceDriver;
import org.nl.acs.device_driver.agv.ndctwo.AgvNdcTwoDeviceDriver;
import org.nl.acs.device_driver.autodoor.standard_autodoor.StandardAutodoorDeviceDriver;
import org.nl.acs.ext.wms.service.AcsToWmsService;
@@ -99,7 +100,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
byte[] b = new byte[1024];
s = new Socket();
s.connect(socketAddress,2*1000);
s.connect(socketAddress, 2 * 1000);
s.setKeepAlive(true);//长链接
// s.setSoTimeout(1000* 60 * 10);//读取超时时间
dos = new DataOutputStream(s.getOutputStream());
@@ -171,6 +172,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
}
AgvNdcTwoDeviceDriver agvNdcTwoDeviceDriver;
AgvNdcOneDeviceDriver agvNdcOneDeviceDriver;
//开始任务
if (phase == 0x01) {
if (!ObjectUtil.isEmpty(inst)) {
@@ -194,6 +196,9 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (agvDevice.getDeviceDriver() instanceof AgvNdcTwoDeviceDriver) {
agvNdcTwoDeviceDriver = (AgvNdcTwoDeviceDriver) agvDevice.getDeviceDriver();
agvNdcTwoDeviceDriver.setInstruction(null);
}else if (device.getDeviceDriver() instanceof AgvNdcOneDeviceDriver) {
agvNdcOneDeviceDriver = (AgvNdcOneDeviceDriver) device.getDeviceDriver();
agvNdcOneDeviceDriver.setInstruction(null);
}
}
inst.setInstruction_status("2");
@@ -224,7 +229,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
log.info(agvaddr + "对应设备号为空!");
return;
}
if(ObjectUtil.isNotEmpty(device)) {
if (ObjectUtil.isNotEmpty(device)) {
if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
try {
@@ -233,7 +238,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
log.info("下发电气信号失败:" + e.getMessage());
e.printStackTrace();
}
if (standardAutodoorDeviceDriver.getAction() == 1 && standardAutodoorDeviceDriver.getTo_command() == 1 ) {
if (standardAutodoorDeviceDriver.getAction() == 1 && standardAutodoorDeviceDriver.getTo_command() == 1) {
log.info("下发开门信号值为:{}", standardAutodoorDeviceDriver.getTo_command());
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
}
@@ -247,7 +252,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
log.info(agvaddr + "对应设备号为空!");
return;
}
if(ObjectUtil.isNotEmpty(device)){
if (ObjectUtil.isNotEmpty(device)) {
if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
try {
@@ -270,17 +275,20 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
} else {
device = deviceAppService.findDeviceByCode(Integer.toString(arr[20]));
}
try{
if(ObjectUtil.isNotEmpty(device)){
try {
if (ObjectUtil.isNotEmpty(device)) {
if (device.getDeviceDriver() instanceof AgvNdcTwoDeviceDriver) {
agvNdcTwoDeviceDriver = (AgvNdcTwoDeviceDriver) device.getDeviceDriver();
agvNdcTwoDeviceDriver.processSocket(arr);
} else if (device.getDeviceDriver() instanceof AgvNdcOneDeviceDriver) {
agvNdcOneDeviceDriver = (AgvNdcOneDeviceDriver) device.getDeviceDriver();
agvNdcOneDeviceDriver.processSocket(arr);
}
} else {
log.info("当前phase"+ phase +"未找到对应设备");
log.info("当前phase" + phase + "未找到对应设备");
}
} catch (Exception e){
log.info("processSocket出错:{},{}" ,e, e.getMessage());
} catch (Exception e) {
log.info("processSocket出错:{},{}", e, e.getMessage());
e.printStackTrace();
}
}
@@ -333,13 +341,13 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
dos.flush();
} catch (Exception e) {
// TODO Auto-generated catch block
try{
try {
Thread.sleep(5000);
log.info("再次下发agv数据:" + Bytes2HexString(b));
System.out.println("再次下发agv数据:" + Bytes2HexString(b));
dos.write(b);
dos.flush();
} catch (Exception e1){
} catch (Exception e1) {
e1.printStackTrace();
}

View File

@@ -174,12 +174,30 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem
barcode = this.itemProtocol.getBarcode();
iserror = this.itemProtocol.isError;
if (mode != last_mode) {
requireSucess = false;
logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode));
logServer.deviceExecuteLog(this.device_code, "", "", "信号mode" + last_mode + "->" + mode);
}
if (move != last_move) {
logServer.deviceItemValue(this.device_code, "move", String.valueOf(move));
logServer.deviceExecuteLog(this.device_code, "", "", "信号move" + last_move + "->" + move);
}
if (action != last_action) {
logServer.deviceItemValue(this.device_code, "action", String.valueOf(action));
logServer.deviceExecuteLog(this.device_code, "", "", "信号action" + last_action + "->" + action);
}
if (error != last_error) {
logServer.deviceItemValue(this.device_code, "error", String.valueOf(error));
logServer.deviceExecuteLog(this.device_code, "", "", "信号error" + last_error + "->" + error);
}
// 更新指令状态
if (mode == 3 && task > 0) {
Date date = new Date();
if (date.getTime() - this.instruction_update_time.getTime() < (long) this.instruction_update_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_update_time_out);
log.trace(LangProcess.msg("universal_feedMessage6"), this.instruction_update_time_out);
} else {
this.instruction_update_time = date;
@@ -213,45 +231,45 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem
ja.add(jo);
HttpResponse body = acsToWmsService.feedbackTaskStatusToWms(ja);
if (body.getStatus() == 200) {
message = "反馈重量以及收卷轴LMS成功...";
message = LangProcess.msg("two_message1");
requireSucess = true;
LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(device_code)
.content("反馈尺寸成请求成功,响应参数:" + JSON.toJSONString(body))
.content(LangProcess.msg("two_message3") + JSON.toJSONString(body))
.build();
luceneExecuteLogService.deviceExecuteLog(logDto);
Map<String, Object> map = new LinkedHashMap<>();
map.put("to_command", "5");
this.writing(map);
} else {
message = "反馈重量以及收卷轴LMS失败...";
message = LangProcess.msg("two_message2");
requireSucess = false;
LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(device_code)
.content("反馈重量以及收卷轴LMS失败...")
.content(LangProcess.msg("two_message2"))
.build();
luceneExecuteLogService.deviceExecuteLog(logDto);
}
} else {
LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(device_code)
.content("当前指令号为空")
.content(LangProcess.msg("universal_message6"))
.build();
luceneExecuteLogService.deviceExecuteLog(logDto);
}
} else {
feedMessage = "行架机械手:";
feedMessage = LangProcess.msg("universal_feedMessage5");
if (mode != 3) {
feedMessage = feedMessage + "mode不为运行中状态,";
feedMessage = feedMessage + LangProcess.msg("universal_feedMessage1");
}
if (action != 5) {
feedMessage = feedMessage + "action不为反馈重量状态,";
feedMessage = feedMessage + LangProcess.msg("two_message4");
}
if (move != 1) {
feedMessage = feedMessage + "move不为有货状态,";
feedMessage = feedMessage + LangProcess.msg("universal_feedMessage7");
}
if (task == 0) {
feedMessage = feedMessage + "task为0。";
feedMessage = feedMessage + LangProcess.msg("universal_feedMessage8");
}
}
@@ -262,7 +280,7 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem
if (StrUtil.equals(inst2.getInstruction_status(), InstructionStatusEnum.BUSY.getIndex())) {
try {
requireSucess = true;
message = "任务完成...";
message = LangProcess.msg("universal_message7");
finish_instruction(inst2);
Map<String, Object> map = new LinkedHashMap<>();
map.put("to_command", "6");
@@ -280,7 +298,7 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem
feedMessage = var17.getMessage();
LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(device_code)
.content("读取信号值时出现异常:" + var17.getMessage() + ",this.itemProtocol is null:" + ObjectUtil.isEmpty(this.itemProtocol))
.content(LangProcess.msg("universal_message8") + var17.getMessage() + ",this.itemProtocol is null:" + ObjectUtil.isEmpty(this.itemProtocol))
.build();
luceneExecuteLogService.deviceExecuteLog(logDto);
@@ -288,11 +306,11 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem
if (mode == 0) {
this.setIsonline(false);
message = "未联机";
message = LangProcess.msg("universal_off-line");
//有报警
} else if (error != 0) {
this.setIserror(true);
message = "有报警";
message = LangProcess.msg("universal_message3");
//无报警
} else {
this.setIsonline(true);
@@ -314,19 +332,19 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem
//if (!requireSucess) {
String remark = LangProcess.msg("universal_remark1");
if (mode != 2) {
remark = remark + "工作模式(mode)不是待机状态,";
remark = remark + LangProcess.msg("universal_remark2");
}
if (move != 0) {
remark = remark + "光电信号(move)为有货状态,";
remark = remark + LangProcess.msg("universal_remark3");
}
if (task != 0) {
remark = remark + "当前上报任务号(task)应该为0,";
remark = remark + LangProcess.msg("universal_remark4");
if (ObjectUtil.isNotEmpty(this.inst)) {
this.inst = null;
}
}
if (requireSucess) {
remark = remark + "请右击该图标,将请求任务复位标记(requireSucess)改为否。";
remark = remark + LangProcess.msg("universal_remark5");
}
this.setNotCreateTaskMessage(remark);
//}
@@ -359,7 +377,7 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem
public synchronized boolean applyTask() {
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
log.trace(LangProcess.msg("universal_feedMessage6"), this.instruction_require_time_out);
return false;
} else {
this.instruction_require_time = date;
@@ -448,7 +466,7 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem
notCreateInstMessage = e.getMessage();
LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(device_code)
.content("创建指令时出现异常:" + e.getMessage())
.content(LangProcess.msg("universal_message9") + e.getMessage())
.build();
luceneExecuteLogService.deviceExecuteLog(logDto);
return false;
@@ -461,19 +479,19 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem
Device startDevice = deviceAppService.findDeviceByCode(instdto.getStart_device_code());
Device nextDevice = deviceAppService.findDeviceByCode(instdto.getNext_device_code());
if (ObjectUtil.isEmpty(startDevice.getExtraValue().get("address"))) {
notCreateInstMessage = "设备:" + startDevice.getDevice_code() + "未设置电气调度号!";
notCreateInstMessage = startDevice.getDevice_code() + LangProcess.msg("universal_notCreateInstMessage1");
LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(device_code)
.content("设备:" + startDevice.getDevice_code() + "未设置电气调度号!")
.content(startDevice.getDevice_code() + LangProcess.msg("universal_notCreateInstMessage1"))
.build();
luceneExecuteLogService.deviceExecuteLog(logDto);
throw new BadRequestException(LangProcess.msg("device_checkAdd", startDevice.getDevice_code()));
}
if (ObjectUtil.isEmpty(nextDevice.getExtraValue().get("address"))) {
notCreateInstMessage = "设备:" + nextDevice.getDevice_code() + "未设置电气调度号!";
notCreateInstMessage = nextDevice.getDevice_code() + LangProcess.msg("universal_notCreateInstMessage1");
LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(device_code)
.content("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!")
.content(nextDevice.getDevice_code() + LangProcess.msg("universal_notCreateInstMessage1"))
.build();
luceneExecuteLogService.deviceExecuteLog(logDto);
throw new BadRequestException(LangProcess.msg("device_checkAdd", nextDevice.getDevice_code()));
@@ -491,7 +509,7 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem
notCreateInstMessage = "";
notCreateTaskMessage = "";
} else {
notCreateInstMessage = "未找到关联设备的任务,指令无法创建";
notCreateInstMessage = LangProcess.msg("universal_notCreateInstMessage");
}
return true;
}
@@ -528,7 +546,7 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem
}
LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(device_code)
.content("下发多个电气信号:" + itemMap)
.content(LangProcess.msg("universal_message10") + itemMap)
.build();
luceneExecuteLogService.deviceExecuteLog(logDto);
}
@@ -559,19 +577,19 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem
String action = "";
String walk_y = "";
if (this.getMode() == 0) {
mode = "脱机";
mode = LangProcess.msg("universal_off-line");
} else if (this.getMode() == 1) {
mode = "单机";
mode = LangProcess.msg("universal_stand-alone");
} else if (this.getMode() == 2) {
mode = "待机";
mode = LangProcess.msg("universal_standby");
} else if (this.getMode() == 3) {
mode = "运行中";
mode = LangProcess.msg("universal_operation");
}
if (this.getMove() == 0) {
move = "无货";
move = LangProcess.msg("universal_no");
} else if (this.getMove() == 1) {
move = "有货";
move = LangProcess.msg("universal_yes");
}
String requireSucess = "0";
@@ -580,13 +598,13 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem
}
jo.put("requireSucess", requireSucess);
if (this.getAction() == 1) {
action = "取货中";
action = LangProcess.msg("universal_delivery");
} else if (this.getAction() == 2) {
action = "取货完成";
action = LangProcess.msg("universal_completed");
} else if (this.getAction() == 3) {
action = "放货中";
action = LangProcess.msg("universal_releasing");
} else if (this.getAction() == 4) {
action = "放货完成";
action = LangProcess.msg("universal_releasing_completed");
}
if(error == 0 && iserror){
message = "信号连接异常!";

View File

@@ -28,6 +28,7 @@ import org.nl.acs.opc.DeviceAppService;
import org.nl.acs.route.service.RouteLineService;
import org.nl.acs.task.service.TaskService;
import org.nl.config.SpringContextHolder;
import org.nl.config.language.LangProcess;
import org.nl.config.lucene.service.LuceneExecuteLogService;
import org.nl.system.service.param.ISysParamService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -142,7 +143,7 @@ public class BlankingButtonDriver extends AbstractOpcDeviceDriver implements Dev
if (mode == 0) {
this.setIsonline(false);
message = "未联机";
message = LangProcess.msg("universal_off-line");
// 有报警
// } else if (error != 0) {
// this.setIsonline(false);
@@ -154,7 +155,7 @@ public class BlankingButtonDriver extends AbstractOpcDeviceDriver implements Dev
this.setIserror(false);
if (error != 0) {
this.setIserror(true);
message = "有报警";
message = LangProcess.msg("universal_message3");
}
message = "";
Instruction instruction = null;
@@ -162,10 +163,10 @@ public class BlankingButtonDriver extends AbstractOpcDeviceDriver implements Dev
switch (mode) {
case 2:
log.debug("设备运转模式:等待工作");
log.debug(LangProcess.msg("universal_standby"));
break;
case 3:
log.debug("设备运转模式:等待工作");
log.debug(LangProcess.msg("universal_operation"));
break;
case 9:
// 表处下满料请求
@@ -205,60 +206,26 @@ public class BlankingButtonDriver extends AbstractOpcDeviceDriver implements Dev
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime()
< (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
log.trace(LangProcess.msg("universal_feedMessage6"), this.instruction_require_time_out);
return;
} else {
this.instruction_require_time = date;
if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), CommonFinalParam.ONE)) {
message = "申请下满料请求中...";
message = LangProcess.msg("two_message5");
BlankingButtonRequest blankingButtonRequest = new BlankingButtonRequest();
blankingButtonRequest.setDevice_code(device_code);
blankingButtonRequest.setType("1");
BlankingButtonResponse response = acsToWmsService.applyBlankButtonTask(blankingButtonRequest);
if (ObjectUtil.isEmpty(response)) {
message = "申请下满料任务接口不通";
message = LangProcess.msg("two_message6");
} else {
if (response.getCode()== 200) {
this.writing("to_command","9");
message = "申请下满料任务成功";
message = LangProcess.msg("two_message7");
requireSucess = true;
} else {
requireSucess = false;
message = "申请下满料任务失败," + response.getMessage();
this.writing("to_command","99");
}
}
}
}
}
/**
* 申请取消任务
*/
public synchronized void applyTakeEmptyShaft() {
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime()
< (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
return;
} else {
this.instruction_require_time = date;
if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), CommonFinalParam.ONE)) {
message = "申请取消任务中...";
BlankingButtonRequest blankingButtonRequest = new BlankingButtonRequest();
blankingButtonRequest.setDevice_code(device_code);
blankingButtonRequest.setType("2");
BlankingButtonResponse response = acsToWmsService.applyBlankButtonTask(blankingButtonRequest);
if (ObjectUtil.isEmpty(response)) {
message = "申请取消任务接口不通";
} else {
if (response.getCode()== 200) {
this.writing("to_command","10");
message = "申请取消任务成功";
requireSucess = true;
} else {
requireSucess = false;
message = "申请取消任务失败," + response.getMessage();
message = LangProcess.msg("two_message8") + response.getMessage();
this.writing("to_command","99");
}
}
@@ -273,26 +240,60 @@ public class BlankingButtonDriver extends AbstractOpcDeviceDriver implements Dev
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime()
< (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
log.trace(LangProcess.msg("universal_feedMessage6"), this.instruction_require_time_out);
return;
} else {
this.instruction_require_time = date;
if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), CommonFinalParam.ONE)) {
message = "申请取消任务中...";
message = LangProcess.msg("two_message9");
BlankingButtonRequest blankingButtonRequest = new BlankingButtonRequest();
blankingButtonRequest.setDevice_code(device_code);
blankingButtonRequest.setType("2");
BlankingButtonResponse response = acsToWmsService.applyBlankButtonTask(blankingButtonRequest);
if (ObjectUtil.isEmpty(response)) {
message = "申请AGV搬运任务接口不通";
message = LangProcess.msg("two_message10");
} else {
if (response.getCode()== 200) {
this.writing("to_command","10");
message = "申请AGV搬运任务成功";
message = LangProcess.msg("two_message11");
requireSucess = true;
} else {
requireSucess = false;
message = "申请AGV搬运任务失败," + response.getMessage();
message = LangProcess.msg("two_message12") + response.getMessage();
this.writing("to_command","99");
}
}
}
}
}
/**
* 表处上空轴请求
*/
public synchronized void applyTakeEmptyShaft() {
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime()
< (long) this.instruction_require_time_out) {
log.trace(LangProcess.msg("universal_feedMessage6"), this.instruction_require_time_out);
return;
} else {
this.instruction_require_time = date;
if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), CommonFinalParam.ONE)) {
message = LangProcess.msg("two_message13");
BlankingButtonRequest blankingButtonRequest = new BlankingButtonRequest();
blankingButtonRequest.setDevice_code(device_code);
blankingButtonRequest.setType("2");
BlankingButtonResponse response = acsToWmsService.applyBlankButtonTask(blankingButtonRequest);
if (ObjectUtil.isEmpty(response)) {
message = LangProcess.msg("two_message14");
} else {
if (response.getCode()== 200) {
this.writing("to_command","10");
message = LangProcess.msg("two_message15");
requireSucess = true;
} else {
requireSucess = false;
message = LangProcess.msg("two_message16") + response.getMessage();
this.writing("to_command","99");
}
}

View File

@@ -29,6 +29,7 @@ import org.nl.acs.opc.DeviceAppService;
import org.nl.acs.route.service.RouteLineService;
import org.nl.acs.task.service.TaskService;
import org.nl.config.SpringContextHolder;
import org.nl.config.language.LangProcess;
import org.nl.system.service.param.ISysParamService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -136,7 +137,7 @@ public class GreenFoilMachineButtonDriver extends AbstractOpcDeviceDriver implem
if (mode == 0) {
this.setIsonline(false);
message = "未联机";
message = LangProcess.msg("universal_off-line");
// 有报警
// } else if (error != 0) {
// this.setIsonline(false);
@@ -145,7 +146,7 @@ public class GreenFoilMachineButtonDriver extends AbstractOpcDeviceDriver implem
// //无报警
} else if (error != 0) {
this.setIserror(true);
message = "有报警";
message = LangProcess.msg("universal_message3");
}else {
this.setIsonline(true);
this.setIserror(false);
@@ -155,10 +156,10 @@ public class GreenFoilMachineButtonDriver extends AbstractOpcDeviceDriver implem
switch (mode) {
case 2:
log.debug("设备运转模式:等待工作");
log.debug(LangProcess.msg("universal_standby"));
break;
case 3:
log.debug("设备运转模式:等待工作");
log.debug(LangProcess.msg("universal_operation"));
break;
case 4:
// 申请AGV取空取满放空放满任务
@@ -207,18 +208,18 @@ public class GreenFoilMachineButtonDriver extends AbstractOpcDeviceDriver implem
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime()
< (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
log.trace(LangProcess.msg("universal_feedMessage6"), this.instruction_require_time_out);
return;
} else {
this.instruction_require_time = date;
if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), CommonFinalParam.ONE)) {
message = "申请AGV搬运任务中...";
message = LangProcess.msg("two_message17");
ApplyGreenFoilButtonRequest applyGreenFoilButtonRequest = new ApplyGreenFoilButtonRequest();
applyGreenFoilButtonRequest.setDevice_code(device_code);
applyGreenFoilButtonRequest.setType(String.valueOf(mode));
ApplyGreenFoilButtonResponse response = acsToWmsService.applyGreenFoilButtonTask(applyGreenFoilButtonRequest);
if (ObjectUtil.isEmpty(response)) {
message = "申请AGV搬运任务接口不通";
message = LangProcess.msg("two_message18");
} else {
if (response.getCode()== 200) {
if (mode==4){
@@ -228,11 +229,11 @@ public class GreenFoilMachineButtonDriver extends AbstractOpcDeviceDriver implem
}else if (mode==9){
this.writing("to_command","9");
}
message = "申请AGV搬运任务成功";
message = LangProcess.msg("two_message19");
requireSucess = true;
} else {
requireSucess = false;
message = "申请AGV搬运任务失败," + response.getMessage();
message = LangProcess.msg("two_message20") + response.getMessage();
this.writing("to_command","99");
}
}

View File

@@ -71,7 +71,7 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
@Autowired
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
@Autowired
private LimitRegionalService limitRegionalService=SpringContextHolder.getBean(LimitRegionalService.class);
private LimitRegionalService limitRegionalService = SpringContextHolder.getBean(LimitRegionalService.class);
@Autowired
LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean(LuceneExecuteLogService.class);
@@ -177,51 +177,11 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
y_position = this.itemProtocol.getY_position();
iserror = this.itemProtocol.device_status;
if (to_onset != last_to_onset) {
logServer.deviceExecuteLog(this.device_code, "", "", "信号to_onset" + last_to_onset + "->" + to_onset);
}
if (to_command != last_to_command) {
logServer.deviceExecuteLog(this.device_code, "", "", "信号to_command" + last_to_command + "->" + to_command);
}
if (to_target != last_to_target) {
logServer.deviceExecuteLog(this.device_code, "", "", "信号to_target" + last_to_target + "->" + to_target);
}
if (to_task != last_to_task) {
logServer.deviceExecuteLog(this.device_code, "", "", "信号to_task" + last_to_task + "->" + to_task);
}
if (mode != last_mode) {
if(mode != last_mode){
requireSucess = false;
logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode));
logServer.deviceExecuteLog(this.device_code, "", "", "信号mode" + last_mode + "->" + mode);
}
if (move != last_move) {
logServer.deviceItemValue(this.device_code, "move", String.valueOf(move));
logServer.deviceExecuteLog(this.device_code, "", "", "信号move" + last_move + "->" + move);
}
if (action != last_action) {
logServer.deviceItemValue(this.device_code, "action", String.valueOf(action));
logServer.deviceExecuteLog(this.device_code, "", "", "信号action" + last_action + "->" + action);
}
if (error != last_error) {
logServer.deviceItemValue(this.device_code, "error", String.valueOf(error));
logServer.deviceExecuteLog(this.device_code, "", "", "信号error" + last_error + "->" + error);
}
if (walk_y != last_walk_y) {
logServer.deviceItemValue(this.device_code, "walk_y", String.valueOf(walk_y));
logServer.deviceExecuteLog(this.device_code, "", "", "信号walk_y" + last_walk_y + "->" + walk_y);
}
if (task != last_task) {
logServer.deviceItemValue(this.device_code, "task", String.valueOf(task));
logServer.deviceExecuteLog(this.device_code, "", "", "信号task" + last_task + "->" + task);
}
if (x_position != last_x_position) {
logServer.deviceItemValue(this.device_code, "x_position", String.valueOf(x_position));
logServer.deviceExecuteLog(this.device_code, "", "", "信号x_position" + last_x_position + "->" + x_position);
}
if (y_position != last_y_position) {
logServer.deviceItemValue(this.device_code, "y_position", String.valueOf(y_position));
logServer.deviceExecuteLog(this.device_code, "", "", "信号y_position" + last_y_position + "->" + y_position);
}
update_instruction_status();
} catch (Exception var17) {
@@ -356,32 +316,32 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver;
OvenInspectSiteDeviceDriver ovenInspectSiteDeviceDriver;
if(startdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver){
if (startdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
ovenInspectSiteDeviceDriver = (OvenInspectSiteDeviceDriver) startdevice.getDeviceDriver();
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextdevice.getDeviceDriver();
if(ovenInspectSiteDeviceDriver.getMove() != 1 || standardInspectSiteDeviceDriver.getMove() == 1){
if (ovenInspectSiteDeviceDriver.getMove() != 1 || standardInspectSiteDeviceDriver.getMove() == 1) {
notCreateInstMessage = "手动创建指令未下发电气信号原因->烘箱检测站点-普通检测站点:" + ovenInspectSiteDeviceDriver.getDevicecode() +
"无货,无法下发指令或"+standardInspectSiteDeviceDriver.getDevicecode()+ "有货,无法下发指令!" +"!指令号:" + instruction.getInstruction_code();
"无货,无法下发指令或" + standardInspectSiteDeviceDriver.getDevicecode() + "有货,无法下发指令!" + "!指令号:" + instruction.getInstruction_code();
return false;
}
//判断经过的烘箱是否关门
boolean hongxiangCloseDoor = this.hongxiangCloseDoor(start_device_code, next_device_code);
if(!hongxiangCloseDoor){
if (!hongxiangCloseDoor) {
notCreateInstMessage = "手动创建指令未下发电气信号原因->取货位:" + start_device_code + ",放货位:" + next_device_code + ",存在关联的同一列烘箱设备未关门!指令号:" + instruction.getInstruction_code();
return false;
}
}
if(nextdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && startdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver){
if (nextdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && startdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
ovenInspectSiteDeviceDriver = (OvenInspectSiteDeviceDriver) nextdevice.getDeviceDriver();
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) startdevice.getDeviceDriver();
if(ovenInspectSiteDeviceDriver.getMove() != 1 || standardInspectSiteDeviceDriver.getMove() == 1){
if (ovenInspectSiteDeviceDriver.getMove() != 1 || standardInspectSiteDeviceDriver.getMove() == 1) {
notCreateInstMessage = "手动创建指令未下发电气信号原因->烘箱检测站点-普通检测站点:" + ovenInspectSiteDeviceDriver.getDevicecode() +
"无货,无法下发指令或"+standardInspectSiteDeviceDriver.getDevicecode()+ "有货,无法下发指令!" +"!指令号:" + instruction.getInstruction_code();
"无货,无法下发指令或" + standardInspectSiteDeviceDriver.getDevicecode() + "有货,无法下发指令!" + "!指令号:" + instruction.getInstruction_code();
return false;
}
//判断经过的烘箱是否关门
boolean hongxiangCloseDoor = this.hongxiangCloseDoor( next_device_code, start_device_code);
if(!hongxiangCloseDoor){
boolean hongxiangCloseDoor = this.hongxiangCloseDoor(next_device_code, start_device_code);
if (!hongxiangCloseDoor) {
notCreateInstMessage = "手动创建指令未下发电气信号原因->取货位:" + start_device_code + ",放货位:" + next_device_code + ",存在关联的同一列烘箱设备未关门!指令号:" + instruction.getInstruction_code();
return false;
}
@@ -435,9 +395,14 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
}
String start_addr = startDevice.getExtraValue().get("address").toString();
String next_addr = nextDevice.getExtraValue().get("address").toString();
logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:"
String msg = "当前设备:" + device_code + ",下发指令:"
+ instruction.getInstruction_code() + ",指令起点:" + instruction.getStart_device_code()
+ ",指令终点:" + instruction.getNext_device_code());
+ ",指令终点:" + instruction.getNext_device_code();
LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(device_code)
.content(msg)
.build();
luceneExecuteLogService.deviceExecuteLog(logDto);
List list = new ArrayList<>();
Map map = new HashMap();
map.put("to_onset", start_addr);
@@ -482,32 +447,32 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver;
OvenInspectSiteDeviceDriver ovenInspectSiteDeviceDriver;
if(startdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver){
if (startdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
ovenInspectSiteDeviceDriver = (OvenInspectSiteDeviceDriver) startdevice.getDeviceDriver();
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextdevice.getDeviceDriver();
if(ovenInspectSiteDeviceDriver.getMove() != 1 || standardInspectSiteDeviceDriver.getMove() == 1){
if (ovenInspectSiteDeviceDriver.getMove() != 1 || standardInspectSiteDeviceDriver.getMove() == 1) {
notCreateInstMessage = "手动创建指令未下发电气信号原因->烘箱检测站点-普通检测站点:" + ovenInspectSiteDeviceDriver.getDevicecode() +
"无货,无法下发指令或"+standardInspectSiteDeviceDriver.getDevicecode()+ "有货,无法下发指令!" +"!任务号:" + task.getTask_code();
"无货,无法下发指令或" + standardInspectSiteDeviceDriver.getDevicecode() + "有货,无法下发指令!" + "!任务号:" + task.getTask_code();
return false;
}
//判断经过的烘箱是否关门
boolean hongxiangCloseDoor = this.hongxiangCloseDoor(task.getStart_device_code(), task.getNext_device_code());
if(!hongxiangCloseDoor){
if (!hongxiangCloseDoor) {
notCreateInstMessage = "手动创建指令未下发电气信号原因->取货位:" + task.getStart_device_code() + ",放货位:" + task.getNext_device_code() + ",存在关联的同一列烘箱设备未关门!任务号:" + task.getTask_code();
return false;
}
}
if(nextdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && startdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver){
if (nextdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && startdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
ovenInspectSiteDeviceDriver = (OvenInspectSiteDeviceDriver) nextdevice.getDeviceDriver();
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) startdevice.getDeviceDriver();
if(ovenInspectSiteDeviceDriver.getMove() != 1 || standardInspectSiteDeviceDriver.getMove() == 1){
if (ovenInspectSiteDeviceDriver.getMove() != 1 || standardInspectSiteDeviceDriver.getMove() == 1) {
notCreateInstMessage = "手动创建指令未下发电气信号原因->烘箱检测站点-普通检测站点:" + ovenInspectSiteDeviceDriver.getDevicecode() +
"无货,无法下发指令或"+standardInspectSiteDeviceDriver.getDevicecode()+ "有货,无法下发指令!" +"!任务号:" + task.getTask_code();
"无货,无法下发指令或" + standardInspectSiteDeviceDriver.getDevicecode() + "有货,无法下发指令!" + "!任务号:" + task.getTask_code();
return false;
}
//判断经过的烘箱是否关门
boolean hongxiangCloseDoor = this.hongxiangCloseDoor(task.getStart_device_code(), task.getNext_device_code());
if(!hongxiangCloseDoor){
if (!hongxiangCloseDoor) {
notCreateInstMessage = "手动创建指令未下发电气信号原因->取货位:" + task.getStart_device_code() + ",放货位:" + task.getNext_device_code() + ",存在关联的同一列烘箱设备未关门!任务号:" + task.getTask_code();
return false;
}
@@ -616,6 +581,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
}
String start_addr = startDevice.getExtraValue().get("address").toString();
String next_addr = nextDevice.getExtraValue().get("address").toString();
if(ObjectUtil.isEmpty(start_addr) || ObjectUtil.isEmpty(next_addr)){
throw new BadRequestException("设备:" + startDevice.getDevice_code() + "或设备:" + nextDevice.getDevice_code() + "地址值!");
}
String msg = "当前设备:" + device_code + ",下发指令:"
+ instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code()
+ ",指令终点:" + instdto.getNext_device_code();
@@ -627,16 +595,16 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
List list = new ArrayList<>();
Map map = new HashMap();
map.put("code", "to_onset");
map.put("value",StrUtil.isNotBlank(start_addr)? start_addr : "0");
map.put("value", StrUtil.isNotBlank(start_addr) ? start_addr : "0");
Map map1 = new HashMap();
map1.put("code", "to_target");
map1.put("value",StrUtil.isNotBlank(next_addr)? next_addr : "0");
map1.put("value", StrUtil.isNotBlank(next_addr) ? next_addr : "0");
Map map2 = new HashMap();
map2.put("code", "to_task");
map2.put("value",instdto.getInstruction_code());
map2.put("value", instdto.getInstruction_code());
Map map3 = new HashMap();
map3.put("code", "to_command");
map3.put("value","1");
map3.put("value", "1");
list.add(map);
list.add(map1);
list.add(map2);
@@ -667,7 +635,7 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
/**
* 判断经过的烘箱是否关门
*/
private boolean hongxiangCloseDoor(String start_device_code,String next_device_code) {
private boolean hongxiangCloseDoor(String start_device_code, String next_device_code) {
boolean flag = true;
List<String> ovenDeviceCodeList = null;
Device startDevice = deviceAppService.findDeviceByCode(start_device_code);
@@ -682,14 +650,14 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
ovenDeviceCodeList = ovenInspectSiteDeviceDriver.getExtraDeviceCodes("link_device_code");
}
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
if(CollUtil.isNotEmpty(ovenDeviceCodeList)){
if (CollUtil.isNotEmpty(ovenDeviceCodeList)) {
for (String s : ovenDeviceCodeList) {
Device device = deviceAppService.findDeviceByCode(s);
if (device.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) device.getDeviceDriver();
//判断关联设备是否开门
if (hongXiangConveyorDeviceDriver.getDoor() == 1) {
notCreateInstMessage = "关联设备->" + device + "烘箱门未关闭!";
notCreateInstMessage = "关联设备->" + device + "烘箱门未关闭!";
flag = false;
break;
}
@@ -701,6 +669,7 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
/**
* 判断取货位或放货位为烘箱设备时关联的同一列烘箱设备是否有开门
*
* @param start_device_code
* @param next_device_code
* @return
@@ -1087,7 +1056,7 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
} else if (this.getAction() == 4) {
action = "放货完成";
}
if(error == 0 && iserror){
if (error == 0 && iserror) {
this.setMessage(LangProcess.msg("universal_message4"));
}
jo.put("device_name", this.getDevice().getDevice_name());
@@ -1195,4 +1164,51 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
return null;
}
/*if (to_onset != last_to_onset) {
logServer.deviceExecuteLog(this.device_code, "", "", "信号to_onset" + last_to_onset + "->" + to_onset);
}
if (to_command != last_to_command) {
logServer.deviceExecuteLog(this.device_code, "", "", "信号to_command" + last_to_command + "->" + to_command);
}
if (to_target != last_to_target) {
logServer.deviceExecuteLog(this.device_code, "", "", "信号to_target" + last_to_target + "->" + to_target);
}
if (to_task != last_to_task) {
logServer.deviceExecuteLog(this.device_code, "", "", "信号to_task" + last_to_task + "->" + to_task);
}
if (mode != last_mode) {
requireSucess = false;
logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode));
logServer.deviceExecuteLog(this.device_code, "", "", "信号mode" + last_mode + "->" + mode);
}
if (move != last_move) {
logServer.deviceItemValue(this.device_code, "move", String.valueOf(move));
logServer.deviceExecuteLog(this.device_code, "", "", "信号move" + last_move + "->" + move);
}
if (action != last_action) {
logServer.deviceItemValue(this.device_code, "action", String.valueOf(action));
logServer.deviceExecuteLog(this.device_code, "", "", "信号action" + last_action + "->" + action);
}
if (error != last_error) {
logServer.deviceItemValue(this.device_code, "error", String.valueOf(error));
logServer.deviceExecuteLog(this.device_code, "", "", "信号error" + last_error + "->" + error);
}
if (walk_y != last_walk_y) {
logServer.deviceItemValue(this.device_code, "walk_y", String.valueOf(walk_y));
logServer.deviceExecuteLog(this.device_code, "", "", "信号walk_y" + last_walk_y + "->" + walk_y);
}
if (task != last_task) {
logServer.deviceItemValue(this.device_code, "task", String.valueOf(task));
logServer.deviceExecuteLog(this.device_code, "", "", "信号task" + last_task + "->" + task);
}
if (x_position != last_x_position) {
logServer.deviceItemValue(this.device_code, "x_position", String.valueOf(x_position));
logServer.deviceExecuteLog(this.device_code, "", "", "信号x_position" + last_x_position + "->" + x_position);
}
if (y_position != last_y_position) {
logServer.deviceItemValue(this.device_code, "y_position", String.valueOf(y_position));
logServer.deviceExecuteLog(this.device_code, "", "", "信号y_position" + last_y_position + "->" + y_position);
}*/
}

View File

@@ -26,6 +26,8 @@ import org.nl.acs.monitor.DeviceStageMonitor;
import org.nl.acs.opc.DeviceAppService;
import org.nl.acs.route.service.RouteLineService;
import org.nl.acs.task.service.TaskService;
import org.nl.acs.task.service.dto.TaskDto;
import org.nl.config.language.LangProcess;
import org.nl.config.language.LangProcess;
import org.nl.system.service.param.ISysParamService;
import org.nl.config.SpringContextHolder;
@@ -241,7 +243,6 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl
}
if (mode == 0) {
this.setIsonline(false);
message = "未联机";
@@ -260,18 +261,22 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl
//插拔轴机工位申请任务
switch (mode) {
case 1:
log.debug("弃用(留作兼容)");
log.debug(LangProcess.msg("universal_stand-alone"));
break;
case 2:
log.info("待机");
log.info(LangProcess.msg("universal_standby"));
break;
case 3:
log.info("运行中");
log.info(LangProcess.msg("universal_operation"));
break;
case 4:
if (move == 1 && !requireSucess) {
//申请套管
apply_casing(mode);
Instruction inst = instructionService.findByCode(String.valueOf(task));
TaskDto taskDto = taskserver.findByCode(inst.getTask_code());
if (StrUtil.equals("1", taskDto.getIs_bushing())) {
if (move == 1 && !requireSucess) {
//申请套管
apply_casing(mode);
}
}
break;
case 5:
@@ -309,18 +314,18 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl
last_error = error;
last_task = task;
last_heartbeat = heartbeat;
last_barcode =barcode;
last_weight1=weight1;
last_weight2=weight2;
last_material1=material1;
last_material2=material2;
last_barcode = barcode;
last_weight1 = weight1;
last_weight2 = weight2;
last_material1 = material1;
last_material2 = material2;
last_to_command = to_command;
last_to_material1 =to_material1;
last_to_material1 = to_material1;
last_to_material2 = to_material2;
last_to_qty=to_qty;
last_to_qzz_type=to_qzz_type;
last_to_qty = to_qty;
last_to_qzz_type = to_qzz_type;
last_to_is_changeShaft = to_is_changeShaft;
last_to_location=to_location;
last_to_location = to_location;
last_to_size = to_size;
}
@@ -330,15 +335,17 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl
private synchronized void apply_casing(int mode) {
ApplyPlugPullSiteRequest applyPlugPullSiteRequest = new ApplyPlugPullSiteRequest();
ApplyPlugPullSitResponse applyPlugPullSitResponse;
Instruction inst1 = null;
if(task!=0) {
inst1 = instructionService.findByCode(String.valueOf(task));
String task_code1 = inst1.getTask_code();
applyPlugPullSiteRequest.setTask_code(task_code1);
Instruction inst;
if (task != 0) {
inst = instructionService.findByCode(String.valueOf(task));
String task_code = inst.getTask_code();
TaskDto dto = taskserver.findByCode(task_code);
String size = dto.getSize();
applyPlugPullSiteRequest.setSize(size);
applyPlugPullSiteRequest.setTask_code(task_code);
}
applyPlugPullSiteRequest.setDevice_code(device_code);
applyPlugPullSiteRequest.setType("1");
//TODO 气涨轴尺寸反馈
applyPlugPullSitResponse = acsToWmsService.applyPlugPullSiteRequest(applyPlugPullSiteRequest);
if (applyPlugPullSitResponse.getCode() == 200) {
this.writeSignal(mode);
@@ -361,7 +368,7 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl
private synchronized void bushingSucess(int mode) {
ApplyPlugPullSiteRequest applyPlugPullSiteRequest = new ApplyPlugPullSiteRequest();
ApplyPlugPullSitResponse applyPlugPullSitResponse;
if(task!=0) {
if (task != 0) {
Instruction inst1 = instructionService.findByCode(String.valueOf(task));
String task_code1 = inst1.getTask_code();
applyPlugPullSiteRequest.setTask_code(task_code1);
@@ -442,9 +449,10 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl
/**
* 下发电气信号
*
* @param mode
*/
public void writeSignal(int mode){
public void writeSignal(int mode) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("to_command", mode);
this.writing(map);
@@ -492,7 +500,7 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl
return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + ".";
}
/**
/**
* 将扩展表中的字符串数据转换成集合
*/
@Override
@@ -519,27 +527,34 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl
String action = "";
String move = "";
if (this.getMode() == 0) {
mode = "未联机";
mode = LangProcess.msg("universal_off-line");
} else if (this.getMode() == 1) {
mode = "单机";
mode = LangProcess.msg("universal_stand-alone");
} else if (this.getMode() == 2) {
mode = "联机";
mode = LangProcess.msg("universal_standby");
} else if (this.getMode() == 3) {
mode = "运行中";
mode = LangProcess.msg("universal_operation");
}
if (this.getMove() == 0) {
move = "无货";
move = LangProcess.msg("universal_no");
jo.put("hasGoods", false);
} else if (this.getMove() == 1) {
move = "有货";
move = LangProcess.msg("universal_yes");
jo.put("hasGoods", true);
} else if (this.getMove() == 2) {
move = "有托盘有货";
move = LangProcess.msg("universal_two_yes");
jo.put("hasGoods", true);
}
if(this.itemProtocol.getIsError() && error == 0){
this.setMessage(LangProcess.msg("universal_message4"));
jo.put("requireSucess", requireSucess);
if (this.getAction() == 1) {
action = LangProcess.msg("universal_delivery");
} else if (this.getAction() == 2) {
action = LangProcess.msg("universal_completed");
} else if (this.getAction() == 3) {
action = LangProcess.msg("universal_releasing");
} else if (this.getAction() == 4) {
action = LangProcess.msg("universal_releasing_completed");
}
jo.put("device_name", this.getDevice().getDevice_name());
jo.put("mode", mode);

View File

@@ -159,13 +159,14 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl
task = this.itemProtocol.getTask();
x_position = this.itemProtocol.getX_position();
y_position = this.itemProtocol.getY_position();
heartbeat = this.itemProtocol.getHeartbeat();
if (mode != last_mode) {
requireSucess = false;
logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode));
logServer.deviceExecuteLog(this.device_code, "", "", "信号mode" + last_mode + "->" + mode);
}
if (task > 0 && !requireSucess) {
if (mode == 3 && task > 0 && !requireSucess) {
update_instruction_status();
}

View File

@@ -44,4 +44,9 @@ public class ApplyPlugPullSiteRequest extends BaseRequest {
* 条码
*/
private String barcode;
/**
* 尺寸 3,6寸
*/
private String size;
}

View File

@@ -168,6 +168,11 @@ public class CreateTaskRequest extends BaseRequest {
*/
private String truss_type;
/**
* 气涨轴尺寸
*/
private String size;
/**
* 空轴位
*/

View File

@@ -114,6 +114,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
String truss_type = request.getTruss_type();
String empty_site = request.getEmpty_site();
String is_bushing = request.getIs_bushing();
String size = request.getSize();
String version = request.getVersion();
String bushing_num = request.getBushing_num();
String storage_task_type = request.getDtl_type();
@@ -335,6 +336,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
jo.put("truss_type", JSONUtil.toJsonStr(truss_type));
jo.put("empty_site", JSONUtil.toJsonStr(empty_site));
jo.put("is_bushing", JSONUtil.toJsonStr(is_bushing));
jo.put("size", JSONUtil.toJsonStr(size));
jo.put("version", JSONUtil.toJsonStr(version));
jo.put("bushing_num", JSONUtil.toJsonStr(bushing_num));

View File

@@ -40,7 +40,6 @@ public class DeviceErrorLogController {
*/
@GetMapping
@Log("查询设备报警记录")
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page){
return new ResponseEntity<>(acsDeviceErrorLogService.queryAll(whereJson,page),HttpStatus.OK);
}
@@ -52,7 +51,6 @@ public class DeviceErrorLogController {
*/
@PostMapping
@Log("新增设备报警记录")
public ResponseEntity<Object> create(@Validated @RequestBody DeviceErrorLogDto dto){
acsDeviceErrorLogService.create(dto);
return new ResponseEntity<>(HttpStatus.CREATED);
@@ -65,7 +63,6 @@ public class DeviceErrorLogController {
*/
@PutMapping
@Log("修改设备报警记录")
public ResponseEntity<Object> update(@Validated @RequestBody DeviceErrorLogDto dto){
acsDeviceErrorLogService.update(dto);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
@@ -77,7 +74,6 @@ public class DeviceErrorLogController {
* @return
*/
@Log("删除设备报警记录")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody String[] ids) {
acsDeviceErrorLogService.deleteAll(ids);
@@ -91,7 +87,6 @@ public class DeviceErrorLogController {
* @throws IOException
*/
@Log("导出设备报警记录")
@GetMapping(value = "/download")
public void download(HttpServletResponse response, @RequestParam Map whereJson) throws IOException {
acsDeviceErrorLogService.download(acsDeviceErrorLogService.queryAll(whereJson), response);

View File

@@ -526,7 +526,9 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
dto = foramte(dto);
String task_code = dto.getTask_code();
TaskDto task = taskService.findByCodeFromCache(task_code);
if(regional(dto.getStart_device_code(), dto.getNext_device_code())){
throw new BadRequestException(LangProcess.msg("error_regional_max"));
}
String currentUsername = SecurityUtils.getCurrentUsername();
String now = DateUtil.now();
if (StrUtil.isEmpty(dto.getRoute_plan_code())) {
@@ -1731,6 +1733,9 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
int count = 0;
boolean startRegionalExit = true;
boolean nextRegionalExit = true;
if(StrUtil.isEmpty(startRegion) || StrUtil.isEmpty(nextRegion)){
return true;
}
//控制指令生成
LimitRegionalDto limitRegionalDtos = limitRegionalService.selectByReging(startRegion, nextRegion);
if (ObjectUtil.isNotEmpty(limitRegionalDtos)) {

View File

@@ -2,6 +2,7 @@ package org.nl.acs.limit_regional.server.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
@@ -21,7 +22,9 @@ import org.nl.acs.limit_regional.server.mapper.LimitRegionalMapper;
import org.nl.acs.opc.DeviceAppService;
import org.nl.acs.utils.ConvertUtil;
import org.nl.acs.utils.PageUtil;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.config.language.LangProcess;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
@@ -45,7 +48,7 @@ public class LimitRegionalServiceImpl extends CommonServiceImpl<LimitRegionalMap
@Autowired
private DeviceAppService deviceAppService;
private List<LimitRegional> dataList;
public List<LimitRegional> dataList;
@Override
@@ -82,7 +85,7 @@ public class LimitRegionalServiceImpl extends CommonServiceImpl<LimitRegionalMap
@Override
public void add(JSONObject json) {
LimitRegional limitRegional = new LimitRegional();
limitRegional.setId(String.valueOf(RandomUtil.randomInt(8)));
limitRegional.setId(RandomUtil.randomNumbers(8));
limitRegional.setStart_regional(json.getString("start_regional"));
limitRegional.setNext_regional(json.getString("next_regional"));
limitRegional.setStart_exclude_device(json.getString("startExcludeDevice"));
@@ -91,12 +94,14 @@ public class LimitRegionalServiceImpl extends CommonServiceImpl<LimitRegionalMap
String regex = "\\d+";
boolean isNumeric = max_num.matches(regex);
if(!isNumeric){
throw new RuntimeException("最大数请输入纯数字");
throw new BadRequestException("请输入纯数字");
}
limitRegional.setIs_active("1");
limitRegional.setMax_num(max_num);
limitRegional.setCreate_by("auto");
limitRegional.setCreate_time(DateUtil.now());
limitRegionalMapper.insert(limitRegional);
dataList.add(limitRegional);
}
@@ -106,13 +111,25 @@ public class LimitRegionalServiceImpl extends CommonServiceImpl<LimitRegionalMap
return;
}
for (String id : ids) {
LimitRegional limitRegional = limitRegionalMapper.selectById(id);
if(ObjectUtil.isNull(limitRegional)){
throw new BadRequestException("这个对象不存在");
}
limitRegionalMapper.deleteById(id);
}
dataList.removeIf(limitRegional -> CollUtil.contains(Arrays.asList(ids), limitRegional.getId()));
}
@Override
public void update(JSONObject json) {
if(StrUtil.isEmpty(json.getString("id"))){
throw new BadRequestException(LangProcess.msg("error_checkNull", "流量限制id"));
}
LimitRegional id = limitRegionalMapper.selectById(json.getString("id"));
if(ObjectUtil.isNull(id)){
throw new BadRequestException(LangProcess.msg("error_isNull", "流量限制id="+json.getString("id")));
}
LimitRegional limitRegional = new LimitRegional();
String currentUsername = SecurityUtils.getCurrentUsername();
limitRegional.setId(json.getString("id"));
@@ -124,19 +141,30 @@ public class LimitRegionalServiceImpl extends CommonServiceImpl<LimitRegionalMap
String regex = "\\d+";
boolean isNumeric = max_num.matches(regex);
if(!isNumeric){
throw new RuntimeException("最大数请输入纯数字");
throw new RuntimeException("请输入纯数字");
}
limitRegional.setMax_num(max_num);
limitRegional.setUpdate_by(currentUsername);
limitRegional.setUpdate_time(DateUtil.now());
limitRegionalMapper.updateById(limitRegional);
dataList.forEach(limitRegional1 -> {
if (limitRegional.getId().equals(limitRegional1.getId())) {
limitRegional1.setStart_regional(limitRegional.getStart_regional());
limitRegional1.setNext_regional(limitRegional.getNext_regional());
limitRegional1.setStart_exclude_device(limitRegional.getStart_exclude_device());
limitRegional1.setNext_exclude_device(limitRegional.getNext_exclude_device());
limitRegional1.setMax_num(limitRegional.getMax_num());
limitRegional1.setUpdate_by(limitRegional.getUpdate_by());
limitRegional1.setUpdate_time(limitRegional.getUpdate_time());
}
});
}
@Override
public void updateStatusById(Map whereJson) {
String id = whereJson.get("id").toString();
if(StrUtil.isEmpty(id)){
return;
throw new BadRequestException("id为空");
}
LimitRegional limitRegional = new LimitRegional();
limitRegional.setId(id);
@@ -144,6 +172,12 @@ public class LimitRegionalServiceImpl extends CommonServiceImpl<LimitRegionalMap
limitRegional.setUpdate_by(SecurityUtils.getCurrentUsername());
limitRegional.setUpdate_time(DateUtil.now());
limitRegionalMapper.updateById(limitRegional);
dataList.forEach(limitRegional1 -> {if (limitRegional.getId().equals(limitRegional1.getId())) {
limitRegional1.setIs_active(limitRegional.getIs_active());
limitRegional1.setUpdate_by(limitRegional.getUpdate_by());
limitRegional1.setUpdate_time(limitRegional.getUpdate_time());
}
});
}
@Override

View File

@@ -290,6 +290,7 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC
}
private void runNew() {
Async20Access accessor = null;

View File

@@ -325,7 +325,12 @@ public class TaskDto implements Serializable {
private String empty_shaft_site;
/**
* 是否套管
* 气涨轴尺寸
*/
private String size;
/**
* 是否套管 0不套管 1套管
*/
private String is_bushing;
}

View File

@@ -138,14 +138,14 @@ public class LogAspect {
@AfterThrowing(pointcut = "logPointcut()", throwing = "e")
/*@AfterThrowing(pointcut = "logPointcut()", throwing = "e")
public void logAfterThrowing(JoinPoint joinPoint, Throwable e) {
SysLog log = new SysLog("ERROR",System.currentTimeMillis() - currentTime.get());
currentTime.remove();
log.setException_detail(ThrowableUtil.getStackTrace(e).getBytes());
HttpServletRequest request = RequestHolder.getHttpServletRequest();
logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), (ProceedingJoinPoint)joinPoint, log);
}
}*/
public String getUsername() {
try {

View File

@@ -30,15 +30,12 @@ public class SysLogController {
@Autowired
private ISysLogService logService;
@GetMapping
//@SaCheckPermission("@el.check()")
public ResponseEntity<Object> query(@RequestParam Map criteria, PageQuery pageable){
criteria.put("log_type","INFO");
return new ResponseEntity<>(TableDataInfo.build(logService.queryAll(criteria,pageable)), HttpStatus.OK);
}
@GetMapping(value = "/user")
//
public ResponseEntity<Object> queryUserLog(@RequestParam Map criteria, PageQuery pageable){
criteria.put("log_type","INFO");
criteria.put("username", SecurityUtils.getCurrentUsername());
@@ -46,7 +43,6 @@ public class SysLogController {
}
@GetMapping(value = "/error")
// @SaCheckPermission("@el.check()")
public ResponseEntity<Object> queryErrorLog(@RequestParam Map criteria, PageQuery pageable){
criteria.put("log_type","ERROR");
@@ -54,7 +50,6 @@ public class SysLogController {
}
@GetMapping(value = "/error/{id}")
// @SaCheckPermission("@el.check()")
public ResponseEntity<Object> queryErrorLogs(@PathVariable String id){
return new ResponseEntity<>(logService.findByErrDetail(id), HttpStatus.OK);
@@ -62,7 +57,6 @@ public class SysLogController {
@DeleteMapping(value = "/del/error")
@Log("删除所有ERROR日志")
// @SaCheckPermission("@el.check()")
public ResponseEntity<Object> delAllErrorLog(){
logService.delAllByError();
@@ -71,7 +65,6 @@ public class SysLogController {
@DeleteMapping(value = "/del/info")
@Log("删除所有INFO日志")
// @SaCheckPermission("@el.check()")
public ResponseEntity<Object> delAllInfoLog(){
logService.delAllByInfo();

View File

@@ -1,32 +1,21 @@
universal_off-line=\u8131\u673A
universal_stand-alone=\u5355\u673A
universal_standby=\u5F85\u673A
universal_operation=\u8FD0\u884C\u4E2D
universal_no=\u65E0\u8D27
universal_yes=\u6709\u8D27
universal_two_yes=\u6709\u6258\u76D8\u6709\u8D27
universal_delivery=\u53D6\u8D27\u4E2D
universal_completed=\u53D6\u8D27\u5B8C\u6210
universal_releasing=\u653E\u8D27\u4E2D
universal_releasing_completed=\u653E\u8D27\u5B8C\u6210
universal_remark1=\u672A\u67E5\u627E\u4EFB\u52A1\u539F\u56E0\u4E3A\uFF1A
universal_remark2=\u5DE5\u4F5C\u6A21\u5F0F(mode)\u4E0D\u662F\u5F85\u673A\u72B6\u6001
universal_remark3=\u5149\u7535\u4FE1\u53F7(move)\u4E3A\u6709\u8D27\u72B6\u6001
universal_remark4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u5E94\u8BE5\u4E3A0
universal_remark5=\u53F3\u51FB\u8BE5\u56FE\u6807,\u5C06\u8BF7\u6C42\u4EFB\u52A1\u590D\u4F4D\u6807\u8BB0(requireSucess)\u6539\u4E3A\u5426\u3002
universal_notCreateInstMessage=\u672A\u627E\u5230\u5173\u8054\u8BBE\u5907\u7684\u4EFB\u52A1\uFF0C\u6307\u4EE4\u65E0\u6CD5\u521B\u5EFA
universal_message1=\u653E\u8D27\u5B8C\u6210
universal_message2=\u653E\u8D27\u5931\u8D25
universal_message3=\u6709\u62A5\u8B66
universal_message4=信号连接异常!
universal_feedMessage1=\u5DE5\u4F5C\u6A21\u5F0F(mode)\u4E0D\u4E3A\u8FD0\u884C\u4E2D\u72B6\u6001
universal_feedMessage2=\u52A8\u4F5C\u4FE1\u53F7(action)\u4E0D\u4E3A\u653E\u8D27\u5B8C\u6210\u72B6\u6001
universal_feedMessage3=\u5149\u7535\u4FE1\u53F7(move)\u4E0D\u4E3A\u65E0\u8D27\u72B6\u6001
universal_feedMessage4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u4E0D\u5E94\u8BE5\u4E3A0
universal_feedMessage5=\u884C\u67B6\u673A\u68B0\u624B
mark=复位
no_mark=未复位
two_message1=\u53CD\u9988\u91CD\u91CF\u4EE5\u53CA\u6536\u5377\u8F74LMS\u6210\u529F...
two_message2=\u53CD\u9988\u91CD\u91CF\u4EE5\u53CA\u6536\u5377\u8F74LMS\u5931\u8D25...
two_message3=\u53CD\u9988\u8BF7\u6C42\u6210\u529F,\u54CD\u5E94\u53C2\u6570:
two_message4=action\u4E0D\u4E3A\u53CD\u9988\u91CD\u91CF\u72B6\u6001
two_message5=\u7533\u8BF7\u4E0B\u6EE1\u6599\u8BF7\u6C42\u4E2D...
two_message6=\u7533\u8BF7\u4E0B\u6EE1\u6599\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
two_message7=\u7533\u8BF7\u4E0B\u6EE1\u6599\u4EFB\u52A1\u6210\u529F
two_message8=\u7533\u8BF7\u4E0B\u6EE1\u6599\u4EFB\u52A1\u5931\u8D25
two_message9=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u4E2D...
two_message10=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
two_message11=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u6210\u529F
two_message12=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u5931\u8D25
two_message13=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u4E2D...
two_message14=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u63A5\u53E3\u4E0D\u901A
two_message15=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u6210\u529F
two_message16=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u5931\u8D25
two_message17=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u4E2D
two_message18=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
two_message19=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u6210\u529F
two_message20=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u5931\u8D25

View File

@@ -1,28 +1,22 @@
universal_off-line=off-line
universal_stand-alone=stand-alone
universal_standby=standby
universal_operation=operation
universal_no=Out of stock
universal_yes=In stock
universal_two_yes=There are pallets and goods
universal_delivery=Taking delivery
universal_completed=Pick-up completed
universal_releasing=Releasing goods
universal_releasing_completed=Release completed
universal_remark1=The task is not found because
universal_remark2=Working mode (mode) is not standby
universal_remark3=Photoelectric signal (move) is in stock status
universal_remark4=The current report task ID should be 0
universal_remark5=Right-click the icon and change the Request task reset flag (requireSucess) to No
universal_notCreateInstMessage=Instructions cannot be created because the task for the associated device is not found
universal_message1=Release completed
universal_message2=Delivery failure
universal_message3=Have an alarm
universal_message4=Signal connection abnormal
universal_feedMessage1=mode is not in the running state
universal_feedMessage2=action signal (action signal) is not a release completed status
universal_feedMessage3=Photoelectric signal (move) is not out of stock
universal_feedMessage4=The current report task number (task) should not be 0
universal_feedMessage5=Gantry manipulator
mark=Reset
no_mark=Unreset
two_message1=Feedback weight as well as reel LMS success...
two_message2=Feedback weight as well as reel LMS failure...
two_message3=The feedback request is successful, and the response parameters are:
two_message4=The action is not a feedback weight state
two_message5=The application is under a full material request...
two_message6=The interface for applying for a full material task is not working
two_message7=The application for the full material task is successful
two_message8=The application for the full material task failed
two_message9=Applying to cancel a task...
two_message10=The API for applying for task cancellation is not available
two_message11=The request to cancel the task is successful
two_message12=The request to cancel the task failed
two_message13=The application form is in the upper space axis request...
two_message14=The upper axis request interface at the application form is not connected
two_message15=The request for the upper axis at the application form was successful
two_message16=The request for the overspace axis at the application form failed
two_message17=Applying for AGV handling tasks
two_message18=The interface for applying for AGV handling tasks is not working
two_message19=The application for AGV handling task was successful
two_message20=Failed to apply for AGV handling task

View File

@@ -1,28 +1,20 @@
universal_off-line=Akses internet
universal_stand-alone=(s) single-player
universal_standby=siaga
universal_operation=operasi
universal_no=bayar
universal_yes=Yang aku mau
universal_two_yes=Ada nampan dengan barang
universal_delivery=Mengambil barang
universal_completed=Pengambilan barang selesai
universal_releasing=Letakkan barang
universal_releasing_completed=Pengiriman selesai
universal_remark1=Alasan tugas yang tidak dicari adalah
universal_remark2=Mode tidak dalam mode siaga
universal_remark3=Sinyal fotolistrik untuk kondisi pengiriman
universal_remark4=Kita tugaskan tugaskan task
universal_remark5=Klik kanan pada ikon dan ubah not (requicess) untuk penugasan ulang
universal_notCreateInstMessage=Misi untuk divais yang diasosiasikan tidak ditemukan, perintah tidak dapat dibuat
universal_message1=Pengiriman selesai
universal_message2=Gagal memasukkan barang
universal_message3=Alarm berbunyi
universal_message4=Koneksi sinyal abnormal
universal_feedMessage1=Mode kerja tidak untuk mode dalam mode
universal_feedMessage2=Sinyal aksi tidak lengkap untuk penempatan
universal_feedMessage3=tidak ada status pengiriman
universal_feedMessage4=Tugaskan tugaskan tugaskan bukan hanya 0
universal_feedMessage5=Pengemudi-mekanik line
mark=Setel ulang
no_mark=Belum diatur ulang
two_message1=Bobot umpan balik serta kesuksesan LMS gulungan...
two_message2=Berat umpan balik serta kegagalan LMS gulungan...
two_message3=Permintaan umpan balik berhasil, dan parameter responsnya adalah:
two_message4=Tindakan ini bukan status bobot umpan balik
two_message5=Aplikasi ini berada di bawah permintaan material lengkap ...
two_message6=Antarmuka untuk melamar tugas material penuh tidak berfungsi
two_message7=Aplikasi untuk tugas material penuh berhasil
two_message8=Aplikasi untuk tugas material penuh gagal
two_message9=Menerapkan untuk membatalkan tugas...
two_message10=API untuk mengajukan pembatalan tugas tidak tersedia
two_message11=Permintaan untuk membatalkan tugas berhasil
two_message12=Permintaan untuk membatalkan tugas gagal
two_message13=Formulir aplikasi ada di permintaan sumbu ruang atas ...
two_message14=Antarmuka permintaan sumbu atas pada formulir aplikasi tidak terhubung
two_message15=Permintaan untuk sumbu atas pada formulir aplikasi berhasil
two_message16=Permintaan untuk sumbu overspace pada formulir aplikasi gagal
two_message17=Melamar tugas penanganan AGV
two_message18=Antarmuka untuk melamar tugas penanganan AGV tidak berfungsi
two_message19=Aplikasi untuk tugas penanganan AGV berhasil
two_message20=Gagal melamar tugas penanganan AGV

View File

@@ -1,28 +1,22 @@
universal_off-line=\u8131\u673A
universal_stand-alone=\u5355\u673A
universal_standby=\u5F85\u673A
universal_operation=\u8FD0\u884C\u4E2D
universal_no=\u65E0\u8D27
universal_yes=\u6709\u8D27
universal_two_yes=\u6709\u6258\u76D8\u6709\u8D27
universal_delivery=\u53D6\u8D27\u4E2D
universal_completed=\u53D6\u8D27\u5B8C\u6210
universal_releasing=\u653E\u8D27\u4E2D
universal_releasing_completed=\u653E\u8D27\u5B8C\u6210
universal_remark1=\u672A\u67E5\u627E\u4EFB\u52A1\u539F\u56E0\u4E3A\uFF1A
universal_remark2=\u5DE5\u4F5C\u6A21\u5F0F(mode)\u4E0D\u662F\u5F85\u673A\u72B6\u6001
universal_remark3=\u5149\u7535\u4FE1\u53F7(move)\u4E3A\u6709\u8D27\u72B6\u6001
universal_remark4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u5E94\u8BE5\u4E3A0
universal_remark5=\u53F3\u51FB\u8BE5\u56FE\u6807,\u5C06\u8BF7\u6C42\u4EFB\u52A1\u590D\u4F4D\u6807\u8BB0(requireSucess)\u6539\u4E3A\u5426\u3002
universal_notCreateInstMessage=\u672A\u627E\u5230\u5173\u8054\u8BBE\u5907\u7684\u4EFB\u52A1\uFF0C\u6307\u4EE4\u65E0\u6CD5\u521B\u5EFA
universal_message1=\u653E\u8D27\u5B8C\u6210
universal_message2=\u653E\u8D27\u5931\u8D25
universal_message3=\u6709\u62A5\u8B66
universal_message4=信号连接异常!
universal_feedMessage1=\u5DE5\u4F5C\u6A21\u5F0F(mode)\u4E0D\u4E3A\u8FD0\u884C\u4E2D\u72B6\u6001
universal_feedMessage2=\u52A8\u4F5C\u4FE1\u53F7(action)\u4E0D\u4E3A\u653E\u8D27\u5B8C\u6210\u72B6\u6001
universal_feedMessage3=\u5149\u7535\u4FE1\u53F7(move)\u4E0D\u4E3A\u65E0\u8D27\u72B6\u6001
universal_feedMessage4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u4E0D\u5E94\u8BE5\u4E3A0
universal_feedMessage5=\u884C\u67B6\u673A\u68B0\u624B
mark=复位
no_mark=未复位
two_message1=\u53CD\u9988\u91CD\u91CF\u4EE5\u53CA\u6536\u5377\u8F74LMS\u6210\u529F...
two_message2=\u53CD\u9988\u91CD\u91CF\u4EE5\u53CA\u6536\u5377\u8F74LMS\u5931\u8D25...
two_message3=\u53CD\u9988\u8BF7\u6C42\u6210\u529F,\u54CD\u5E94\u53C2\u6570:
two_message4=action\u4E0D\u4E3A\u53CD\u9988\u91CD\u91CF\u72B6\u6001
two_message5=\u7533\u8BF7\u4E0B\u6EE1\u6599\u8BF7\u6C42\u4E2D...
two_message6=\u7533\u8BF7\u4E0B\u6EE1\u6599\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
two_message7=\u7533\u8BF7\u4E0B\u6EE1\u6599\u4EFB\u52A1\u6210\u529F
two_message8=\u7533\u8BF7\u4E0B\u6EE1\u6599\u4EFB\u52A1\u5931\u8D25
two_message9=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u4E2D...
two_message10=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
two_message11=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u6210\u529F
two_message12=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u5931\u8D25
two_message13=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u4E2D...
two_message14=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u63A5\u53E3\u4E0D\u901A
two_message15=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u6210\u529F
two_message16=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u5931\u8D25
two_message17=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u4E2D
two_message18=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
two_message19=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u6210\u529F
two_message20=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u5931\u8D25

View File

@@ -15,16 +15,25 @@ universal_remark3=\u5149\u7535\u4FE1\u53F7(move)\u4E3A\u6709\u8D27\u72B6\u6001
universal_remark4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u5E94\u8BE5\u4E3A0
universal_remark5=\u53F3\u51FB\u8BE5\u56FE\u6807,\u5C06\u8BF7\u6C42\u4EFB\u52A1\u590D\u4F4D\u6807\u8BB0(requireSucess)\u6539\u4E3A\u5426\u3002
universal_notCreateInstMessage=\u672A\u627E\u5230\u5173\u8054\u8BBE\u5907\u7684\u4EFB\u52A1\uFF0C\u6307\u4EE4\u65E0\u6CD5\u521B\u5EFA
universal_notCreateInstMessage1=\u672A\u8BBE\u7F6E\u7535\u6C14\u8C03\u5EA6\u53F7!
universal_message1=\u653E\u8D27\u5B8C\u6210
universal_message2=\u653E\u8D27\u5931\u8D25
universal_message3=\u6709\u62A5\u8B66
universal_message4=\u672A\u627E\u5230\u7B26\u5408\u6761\u4EF6\u7684\u6307\u4EE4
universal_message5=\u4E0B\u53D1\u7535\u6C14\u4EFB\u52A1\u53F7\u6210\u529F
universal_message6=\u5F53\u524D\u6307\u4EE4\u53F7\u4E3A\u7A7A
universal_message7=\u4EFB\u52A1\u5B8C\u6210...
universal_message8=\u8BFB\u53D6\u4FE1\u53F7\u503C\u65F6\u51FA\u73B0\u5F02\u5E38:
universal_message9=\u521B\u5EFA\u6307\u4EE4\u65F6\u51FA\u73B0\u5F02\u5E38:
universal_message10=\u4E0B\u53D1\u591A\u4E2A\u7535\u6C14\u4FE1\u53F7:
universal_feedMessage1=\u5DE5\u4F5C\u6A21\u5F0F(mode)\u4E0D\u4E3A\u8FD0\u884C\u4E2D\u72B6\u6001
universal_feedMessage2=\u52A8\u4F5C\u4FE1\u53F7(action)\u4E0D\u4E3A\u653E\u8D27\u5B8C\u6210\u72B6\u6001
universal_feedMessage3=\u5149\u7535\u4FE1\u53F7(move)\u4E0D\u4E3A\u65E0\u8D27\u72B6\u6001
universal_feedMessage4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u4E0D\u5E94\u8BE5\u4E3A0
universal_feedMessage5=\u884C\u67B6\u673A\u68B0\u624B
universal_feedMessage6=\u89E6\u53D1\u65F6\u95F4\u56E0\u4E3A\u5C0F\u4E8E{}\u6BEB\u79D2\uFF0C\u800C\u88AB\u65E0\u89C6
universal_feedMessage7=move\u4E0D\u4E3A\u6709\u8D27\u72B6\u6001
universal_feedMessage8=\u4EFB\u52A1\u53F7\u4E3A0

View File

@@ -17,11 +17,20 @@ universal_message5=Succeeded in delivering the electrical task number
universal_remark4=The current report task ID should be 0
universal_remark5=Right-click the icon and change the Request task reset flag (requireSucess) to No
universal_notCreateInstMessage=Instructions cannot be created because the task for the associated device is not found
universal_notCreateInstMessage1=The electrical dispatch number is not set!
universal_message1=Release completed
universal_message2=Delivery failure
universal_message3=Have an alarm
universal_message6=The current instruction number is empty
universal_message7=Mission accomplished...
universal_message8=An exception occurred when reading the signal value:
universal_message9=An exception occurred while creating the directive
universal_message10=Multiple electrical signals are issued
universal_feedMessage1=mode is not in the running state
universal_feedMessage2=action signal (action signal) is not a release completed status
universal_feedMessage3=Photoelectric signal (move) is not out of stock
universal_feedMessage4=The current report task number (task) should not be 0
universal_feedMessage5=Gantry manipulator
universal_feedMessage6=The trigger time is ignored because it is less than {} milliseconds
universal_feedMessage7=Move is not in stock
universal_feedMessage8=The task number is 0

View File

@@ -15,13 +15,22 @@ universal_remark3=Sinyal fotolistrik untuk kondisi pengiriman
universal_remark4=Kita tugaskan tugaskan task
universal_remark5=Klik kanan pada ikon dan ubah not (requicess) untuk penugasan ulang
universal_notCreateInstMessage=Misi untuk divais yang diasosiasikan tidak ditemukan, perintah tidak dapat dibuat
universal_notCreateInstMessage1=Nomor pengiriman listrik tidak diatur!
universal_message1=Pengiriman selesai
universal_message2=Gagal memasukkan barang
universal_message3=Alarm berbunyi
universal_message4=Tak ada perintah yang ditemukan
universal_message5=Misi kelistrikan berhasil
universal_message6=Nomor instruksi saat ini kosong
universal_message7=Misi tercapai ...
universal_message8=Pengecualian terjadi saat membaca nilai sinyal:
universal_message9=Pengecualian terjadi saat membuat direktif
universal_message10=Beberapa sinyal listrik dikeluarkan
universal_feedMessage1=Mode kerja tidak untuk mode dalam mode
universal_feedMessage2=Sinyal aksi tidak lengkap untuk penempatan
universal_feedMessage3=tidak ada status pengiriman
universal_feedMessage4=Tugaskan tugaskan tugaskan bukan hanya 0
universal_feedMessage5=Pengemudi-mekanik line
universal_feedMessage6=Waktu pemicu diabaikan karena kurang dari {} milidetik
universal_feedMessage7=Pindah tidak tersedia
universal_feedMessage8=Nomor tugasnya adalah 0

View File

@@ -15,13 +15,22 @@ universal_remark3=\u5149\u7535\u4FE1\u53F7(move)\u4E3A\u6709\u8D27\u72B6\u6001
universal_remark4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u5E94\u8BE5\u4E3A0
universal_remark5=\u53F3\u51FB\u8BE5\u56FE\u6807,\u5C06\u8BF7\u6C42\u4EFB\u52A1\u590D\u4F4D\u6807\u8BB0(requireSucess)\u6539\u4E3A\u5426\u3002
universal_notCreateInstMessage=\u672A\u627E\u5230\u5173\u8054\u8BBE\u5907\u7684\u4EFB\u52A1\uFF0C\u6307\u4EE4\u65E0\u6CD5\u521B\u5EFA
universal_notCreateInstMessage1=\u672A\u8BBE\u7F6E\u7535\u6C14\u8C03\u5EA6\u53F7!
universal_message1=\u653E\u8D27\u5B8C\u6210
universal_message2=\u653E\u8D27\u5931\u8D25
universal_message3=\u6709\u62A5\u8B66
universal_message4=\u672A\u627E\u5230\u7B26\u5408\u6761\u4EF6\u7684\u6307\u4EE4
universal_message5=\u4E0B\u53D1\u7535\u6C14\u4EFB\u52A1\u53F7\u6210\u529F
universal_message6=\u5F53\u524D\u6307\u4EE4\u53F7\u4E3A\u7A7A
universal_message7=\u4EFB\u52A1\u5B8Cuniversal_releasing_completed\u6210...
universal_message8=\u8BFB\u53D6\u4FE1\u53F7\u503C\u65F6\u51FA\u73B0\u5F02\u5E38:
universal_message9=\u521B\u5EFA\u6307\u4EE4\u65F6\u51FA\u73B0\u5F02\u5E38:
universal_message10=\u4E0B\u53D1\u591A\u4E2A\u7535\u6C14\u4FE1\u53F7
universal_feedMessage1=\u5DE5\u4F5C\u6A21\u5F0F(mode)\u4E0D\u4E3A\u8FD0\u884C\u4E2D\u72B6\u6001
universal_feedMessage2=\u52A8\u4F5C\u4FE1\u53F7(action)\u4E0D\u4E3A\u653E\u8D27\u5B8C\u6210\u72B6\u6001
universal_feedMessage3=\u5149\u7535\u4FE1\u53F7(move)\u4E0D\u4E3A\u65E0\u8D27\u72B6\u6001
universal_feedMessage4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u4E0D\u5E94\u8BE5\u4E3A0
universal_feedMessage5=\u884C\u67B6\u673A\u68B0\u624B
universal_feedMessage6=\u89E6\u53D1\u65F6\u95F4\u56E0\u4E3A\u5C0F\u4E8E{}\u6BEB\u79D2\uFF0C\u800C\u88AB\u65E0\u89C6
universal_feedMessage7=move\u4E0D\u4E3A\u6709\u8D27\u72B6\u6001
universal_feedMessage8=\u4EFB\u52A1\u53F7\u4E3A0