纽迪希亚2优化
This commit is contained in:
@@ -667,6 +667,24 @@ public class AgvServiceImpl implements AgvService {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (addressdevice.getDeviceDriver() instanceof NdxySpecialTwoDeviceDriver) {
|
||||
ndxySpecialTwoDeviceDriver = (NdxySpecialTwoDeviceDriver) addressdevice.getDeviceDriver();
|
||||
//请求取货
|
||||
if ("Load".equals(action)) {
|
||||
if (ndxySpecialTwoDeviceDriver.getMode() == 2 && ndxySpecialTwoDeviceDriver.getMove() > 0) {
|
||||
inst.setExecute_status("1");
|
||||
ndxySpecialTwoDeviceDriver.writing(1);
|
||||
is_feedback = true;
|
||||
}
|
||||
//请求放货
|
||||
} else if ("Unload".equals(action)) {
|
||||
if (ndxySpecialTwoDeviceDriver.getMode() == 2 && ndxySpecialTwoDeviceDriver.getMove() == 0) {
|
||||
inst.setExecute_status("3");
|
||||
ndxySpecialTwoDeviceDriver.writing(3);
|
||||
is_feedback = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (addressdevice.getDeviceDriver() instanceof SpecialOrdinarySiteDeviceDriver) {
|
||||
specialOrdinarySiteDeviceDriver = (SpecialOrdinarySiteDeviceDriver) addressdevice.getDeviceDriver();
|
||||
//请求取货
|
||||
@@ -745,7 +763,7 @@ public class AgvServiceImpl implements AgvService {
|
||||
if (ndxySpecialTwoDeviceDriver.getMode() == 2 && ndxySpecialTwoDeviceDriver.getMove() == 0) {
|
||||
inst.setExecute_device_code(processingVehicle);
|
||||
inst.setExecute_status("2");
|
||||
ndxySpecialTwoDeviceDriver.setFlag(2);
|
||||
ndxySpecialTwoDeviceDriver.writing(2);
|
||||
is_feedback = true;
|
||||
}
|
||||
//放货完成
|
||||
@@ -753,7 +771,7 @@ public class AgvServiceImpl implements AgvService {
|
||||
if (ndxySpecialTwoDeviceDriver.getMode() == 2 && ndxySpecialTwoDeviceDriver.getMove() > 0) {
|
||||
inst.setExecute_device_code(address);
|
||||
inst.setExecute_status("4");
|
||||
ndxySpecialTwoDeviceDriver.setFlag(4);
|
||||
ndxySpecialTwoDeviceDriver.writing(4);
|
||||
is_feedback = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,13 +67,16 @@ public class ElectricFenceDeviceDriver extends AbstractOpcDeviceDriver implement
|
||||
this.execute_log.log("设备:" + device_code + ",last_mode -> mode:" + last_mode + "->" + mode);
|
||||
}
|
||||
if (action != last_action) {
|
||||
if (action == 1) {
|
||||
agvService.pause();
|
||||
}
|
||||
this.execute_log.log("设备:" + device_code + ",last_action -> action:" + last_action + "->" + action);
|
||||
}
|
||||
if (error != last_error) {
|
||||
if (this.error == 1) {
|
||||
if (error == 1) {
|
||||
agvService.pause();
|
||||
}
|
||||
if (this.error == 0){
|
||||
if (error == 0) {
|
||||
agvService.resume();
|
||||
}
|
||||
//this.execute_log.setContainer("");
|
||||
|
||||
@@ -15,11 +15,11 @@ public class ItemProtocol {
|
||||
public static String item_mode = "mode";
|
||||
public static String item_move = "move";
|
||||
public static String item_action = "action";
|
||||
public static String item_mode_switch = "mode_switch";
|
||||
public static String item_error = "error";
|
||||
public static String item_task = "task";
|
||||
public static String item_ioaction = "ioaction";
|
||||
public static String item_to_command = "to_command";
|
||||
public static String item_to_target = "to_target";
|
||||
public static String item_to_task = "to_task";
|
||||
public static String item_to_mode_switch = "to_mode_switch";
|
||||
public static String item_weight = "weight";
|
||||
|
||||
private NdxySpecialTwoDeviceDriver driver;
|
||||
@@ -44,24 +44,24 @@ public class ItemProtocol {
|
||||
return this.getOpcIntegerValue(item_action);
|
||||
}
|
||||
|
||||
public int getMode_switch() {
|
||||
return this.getOpcIntegerValue(item_mode_switch);
|
||||
}
|
||||
|
||||
public int getError() {
|
||||
return this.getOpcIntegerValue(item_error);
|
||||
}
|
||||
|
||||
public int getTask() {
|
||||
return this.getOpcIntegerValue(item_task);
|
||||
public int getIoaction() {
|
||||
return this.getOpcIntegerValue(item_ioaction);
|
||||
}
|
||||
|
||||
public int getToCommand() {
|
||||
return this.getOpcIntegerValue(item_to_command);
|
||||
}
|
||||
|
||||
public int getToTarget() {
|
||||
return this.getOpcIntegerValue(item_to_target);
|
||||
}
|
||||
|
||||
public int getToTask() {
|
||||
return this.getOpcIntegerValue(item_to_task);
|
||||
public int getTo_mode_switch() {
|
||||
return this.getOpcIntegerValue(item_to_mode_switch);
|
||||
}
|
||||
|
||||
//是否有货
|
||||
@@ -90,16 +90,16 @@ public class ItemProtocol {
|
||||
list.add(new ItemDto(item_mode, "工作状态", "DB600.B1", Boolean.valueOf(true)));
|
||||
list.add(new ItemDto(item_move, "光电开关信号", "DB600.B2"));
|
||||
list.add(new ItemDto(item_action, "取放信号", "DB600.B3"));
|
||||
list.add(new ItemDto(item_ioaction, "进出信号", "DB600.B4"));
|
||||
list.add(new ItemDto(item_mode_switch, "允许模式切换信号", "DB600.B5"));
|
||||
list.add(new ItemDto(item_error, "报警信号", "DB600.B6"));
|
||||
list.add(new ItemDto(item_task, "任务号", "DB600.D8"));
|
||||
return list;
|
||||
}
|
||||
|
||||
public static List<ItemDto> getWriteableItemDtos() {
|
||||
ArrayList list = new ArrayList();
|
||||
list.add(new ItemDto(item_to_command, "作业命令", "DB601.W2", Boolean.valueOf(true)));
|
||||
list.add(new ItemDto(item_to_target, "目标站", "DB601.W4"));
|
||||
list.add(new ItemDto(item_to_task, "任务号", "DB601.D8"));
|
||||
list.add(new ItemDto(item_to_mode_switch, "切换模式", "DB601.W4"));
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
@@ -58,11 +58,12 @@ public class NdxySpecialTwoDefination implements OpcDeviceDriverDefination {
|
||||
public static List<ItemDto> getReadableItemDtos2() {
|
||||
List<ItemDto> list = new ArrayList();
|
||||
list.add(new ItemDto(ItemProtocol.item_heartbeat, "心跳", "DB600.B0"));
|
||||
list.add(new ItemDto(ItemProtocol.item_mode, "工作状态", "DB600.B1", true));
|
||||
list.add(new ItemDto(ItemProtocol.item_mode, "工作状态", "DB600.B1", Boolean.valueOf(true)));
|
||||
list.add(new ItemDto(ItemProtocol.item_move, "光电开关信号", "DB600.B2"));
|
||||
list.add(new ItemDto(ItemProtocol.item_action, "取放信号", "DB600.B3"));
|
||||
list.add(new ItemDto(ItemProtocol.item_ioaction, "进出信号", "DB600.B4"));
|
||||
list.add(new ItemDto(ItemProtocol.item_mode_switch, "允许模式切换信号", "DB600.B5"));
|
||||
list.add(new ItemDto(ItemProtocol.item_error, "报警信号", "DB600.B6"));
|
||||
list.add(new ItemDto(ItemProtocol.item_task, "任务号", "DB600.D7"));
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
@@ -67,11 +67,13 @@ public class NdxySpecialTwoDeviceDriver extends AbstractOpcDeviceDriver implemen
|
||||
int move = 0;
|
||||
int task = 0;
|
||||
int action = 0;
|
||||
int ioaction = 0;
|
||||
int last_mode = 0;
|
||||
int last_error = 0;
|
||||
int last_move = 0;
|
||||
int last_task = 0;
|
||||
int last_action = 0;
|
||||
int last_ioaction = 0;
|
||||
Boolean isonline = true;
|
||||
int hasGoods = 0;
|
||||
String message = null;
|
||||
@@ -122,6 +124,10 @@ public class NdxySpecialTwoDeviceDriver extends AbstractOpcDeviceDriver implemen
|
||||
//暂定 0就绪 1请求取货 2取货完成 3请求放货 4放货完成 5取货完成离开 6放货完成离开 7请求进入区域 8请求离开区域
|
||||
int flag;
|
||||
|
||||
//允许模式切换 0不允许 1允许
|
||||
int mode_switch = 0;
|
||||
int last_mode_switch = 0;
|
||||
|
||||
String devicecode;
|
||||
|
||||
@Override
|
||||
@@ -139,7 +145,8 @@ public class NdxySpecialTwoDeviceDriver extends AbstractOpcDeviceDriver implemen
|
||||
error = this.itemProtocol.getError();
|
||||
move = this.itemProtocol.getMove();
|
||||
action = this.itemProtocol.getAction();
|
||||
task = this.itemProtocol.getTask();
|
||||
ioaction = this.itemProtocol.getIoaction();
|
||||
mode_switch = this.itemProtocol.getMode_switch();
|
||||
hasGoods = this.itemProtocol.getMove();
|
||||
|
||||
if (mode != last_mode) {
|
||||
@@ -154,6 +161,15 @@ public class NdxySpecialTwoDeviceDriver extends AbstractOpcDeviceDriver implemen
|
||||
this.execute_log.log("设备:" + device_code + ",last_move -> move:" + last_mode + "->" + move);
|
||||
}
|
||||
if (error != last_error) {
|
||||
if (error != 0) {
|
||||
if (mode_switch == 1) {
|
||||
this.writing(1);
|
||||
}
|
||||
} else {
|
||||
if (mode_switch == 1) {
|
||||
this.writing(2);
|
||||
}
|
||||
}
|
||||
this.execute_log.setResource(this.devicecode, this.device.getDevice_name());
|
||||
this.execute_log.log("设备:" + device_code + ",last_error -> error:" + last_error + "->" + error);
|
||||
}
|
||||
@@ -161,6 +177,14 @@ public class NdxySpecialTwoDeviceDriver extends AbstractOpcDeviceDriver implemen
|
||||
this.execute_log.setResource(this.devicecode, this.device.getDevice_name());
|
||||
this.execute_log.log("设备:" + device_code + ",last_action -> action:" + last_action + "->" + action);
|
||||
}
|
||||
if (ioaction != last_ioaction) {
|
||||
this.execute_log.setResource(this.devicecode, this.device.getDevice_name());
|
||||
this.execute_log.log("设备:" + device_code + ",last_ioaction -> ioaction:" + last_ioaction + "->" + ioaction);
|
||||
}
|
||||
if (mode_switch != last_mode_switch) {
|
||||
this.execute_log.setResource(this.devicecode, this.device.getDevice_name());
|
||||
this.execute_log.log("设备:" + device_code + ",last_mode_switch -> mode_switch:" + last_mode_switch + "->" + mode_switch);
|
||||
}
|
||||
|
||||
if (this.getApply_handling()) {
|
||||
String link_device_code = this.getDevice().getExtraValue().get("link_device_code").toString();
|
||||
@@ -252,6 +276,8 @@ public class NdxySpecialTwoDeviceDriver extends AbstractOpcDeviceDriver implemen
|
||||
last_move = move;
|
||||
last_task = task;
|
||||
last_action = action;
|
||||
last_ioaction = ioaction;
|
||||
last_mode_switch = mode_switch;
|
||||
}
|
||||
|
||||
|
||||
@@ -308,8 +334,7 @@ public class NdxySpecialTwoDeviceDriver extends AbstractOpcDeviceDriver implemen
|
||||
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
||||
if (standardOrdinarySiteDeviceDriver.getHasGoods() == 0
|
||||
&& ObjectUtil.isEmpty(taskserver.findByNextCode(next_device_code))
|
||||
&& ObjectUtil.isEmpty(taskserver.findByStartCode(this.device_code))
|
||||
&& this.action == 1) {
|
||||
&& ObjectUtil.isEmpty(taskserver.findByStartCode(this.device_code))) {
|
||||
break;
|
||||
} else {
|
||||
next_device_code = "";
|
||||
@@ -351,32 +376,6 @@ public class NdxySpecialTwoDeviceDriver extends AbstractOpcDeviceDriver implemen
|
||||
return true;
|
||||
}
|
||||
|
||||
protected void executing(Instruction instruction) {
|
||||
this.executing(1, instruction, "");
|
||||
}
|
||||
|
||||
public void executing(int command, Instruction instruction, String appendMessage) {
|
||||
String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||
+ "." + ItemProtocol.item_to_command;
|
||||
String to_target = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||
+ "." + ItemProtocol.item_to_target;
|
||||
String to_task = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||
+ "." + ItemProtocol.item_to_task;
|
||||
if (appendMessage == null) {
|
||||
appendMessage = "";
|
||||
}
|
||||
if (instruction != null) {
|
||||
instruction_num = Integer.parseInt(instruction.getInstruction_code());
|
||||
}
|
||||
String opcservcerid = this.getDevice().getOpc_server_id();
|
||||
Server server = ReadUtil.getServer(opcservcerid);
|
||||
Map<String, Object> itemMap = new HashMap<String, Object>();
|
||||
itemMap.put(to_command, 1);
|
||||
itemMap.put(to_task, instruction_num);
|
||||
ReadUtil.write(itemMap, server);
|
||||
|
||||
}
|
||||
|
||||
public void executing(Server server, Map<String, Object> itemMap) {
|
||||
ReadUtil.write(itemMap, server);
|
||||
}
|
||||
@@ -396,20 +395,16 @@ public class NdxySpecialTwoDeviceDriver extends AbstractOpcDeviceDriver implemen
|
||||
public void writing(int type, int command) {
|
||||
String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||
+ "." + ItemProtocol.item_to_command;
|
||||
String to_target = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||
+ "." + ItemProtocol.item_to_target;
|
||||
String to_task = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||
+ "." + ItemProtocol.item_to_task;
|
||||
String to_mode_switch = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code()
|
||||
+ "." + ItemProtocol.item_to_mode_switch;
|
||||
|
||||
String opcservcerid = this.getDevice().getOpc_server_id();
|
||||
Server server = ReadUtil.getServer(opcservcerid);
|
||||
Map<String, Object> itemMap = new HashMap<String, Object>();
|
||||
if (type == 1) {
|
||||
itemMap.put(to_command, command);
|
||||
} else if (type == 2) {
|
||||
itemMap.put(to_target, command);
|
||||
|
||||
} else if (type == 3) {
|
||||
itemMap.put(to_task, command);
|
||||
itemMap.put(to_mode_switch, command);
|
||||
}
|
||||
ReadUtil.write(itemMap, server);
|
||||
|
||||
|
||||
@@ -282,11 +282,11 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp
|
||||
|
||||
switch (flag) {
|
||||
//取货完成
|
||||
case 1:
|
||||
case 2:
|
||||
writing(2);
|
||||
return;
|
||||
//放货完成
|
||||
case 2:
|
||||
case 4:
|
||||
writing(3);
|
||||
return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user