opt: 废箔称重,agv取废箔联调优化
This commit is contained in:
@@ -24,6 +24,7 @@ import org.nl.acs.device_driver.driver.AbstractDeviceDriver;
|
|||||||
import org.nl.acs.device_driver.two_conveyor.hongxiang_conveyor.HongXiangStationDeviceDriver;
|
import org.nl.acs.device_driver.two_conveyor.hongxiang_conveyor.HongXiangStationDeviceDriver;
|
||||||
import org.nl.acs.device_driver.two_conveyor.manipulator_agv_station.ManipulatorAgvStationDeviceDriver;
|
import org.nl.acs.device_driver.two_conveyor.manipulator_agv_station.ManipulatorAgvStationDeviceDriver;
|
||||||
import org.nl.acs.device_driver.two_conveyor.ranging_stations.RangingStationsDeviceDriver;
|
import org.nl.acs.device_driver.two_conveyor.ranging_stations.RangingStationsDeviceDriver;
|
||||||
|
import org.nl.acs.device_driver.two_conveyor.waste_foil_weighing_station.WasteFoilWeighingStationDriver;
|
||||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||||
import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
|
import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
|
||||||
import org.nl.acs.history.ErrorUtil;
|
import org.nl.acs.history.ErrorUtil;
|
||||||
@@ -46,6 +47,7 @@ import org.nl.config.lucene.service.dto.LuceneLogDto;
|
|||||||
import org.nl.system.service.param.ISysParamService;
|
import org.nl.system.service.param.ISysParamService;
|
||||||
import org.nl.config.SpringContextHolder;
|
import org.nl.config.SpringContextHolder;
|
||||||
|
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
@@ -168,6 +170,8 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
ManipulatorAgvStationDeviceDriver manipulatorAgvStationDeviceDriver;
|
ManipulatorAgvStationDeviceDriver manipulatorAgvStationDeviceDriver;
|
||||||
//行架-agv对接位
|
//行架-agv对接位
|
||||||
RangingStationsDeviceDriver rangingStationsDeviceDriver;
|
RangingStationsDeviceDriver rangingStationsDeviceDriver;
|
||||||
|
//废箔称重位
|
||||||
|
WasteFoilWeighingStationDriver wasteFoilWeighingStationDriver;
|
||||||
|
|
||||||
if (phase == 0x02) {
|
if (phase == 0x02) {
|
||||||
if (ObjectUtil.isEmpty(inst)) {
|
if (ObjectUtil.isEmpty(inst)) {
|
||||||
@@ -314,7 +318,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
} else if (device.getDeviceDriver() instanceof RangingStationsDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof RangingStationsDeviceDriver) {
|
||||||
rangingStationsDeviceDriver = (RangingStationsDeviceDriver) device.getDeviceDriver();
|
rangingStationsDeviceDriver = (RangingStationsDeviceDriver) device.getDeviceDriver();
|
||||||
ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class);
|
ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class);
|
||||||
String choose = paramService.findByCode(AcsConfig.CHOOSE).getValue();
|
String device_code1 = device.getDevice_code();
|
||||||
String length1 = rangingStationsDeviceDriver.getLength1();
|
String length1 = rangingStationsDeviceDriver.getLength1();
|
||||||
String length2 = rangingStationsDeviceDriver.getLength2();
|
String length2 = rangingStationsDeviceDriver.getLength2();
|
||||||
Float len1 = 0.0F;
|
Float len1 = 0.0F;
|
||||||
@@ -323,26 +327,49 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
len1 = Float.parseFloat(length1);
|
len1 = Float.parseFloat(length1);
|
||||||
len2 = Float.parseFloat(length2);
|
len2 = Float.parseFloat(length2);
|
||||||
}
|
}
|
||||||
if("A".equals(choose)){
|
if (len1 * len2 < 0) {
|
||||||
String offSet_A = paramService.findByCode(AcsConfig.OFFSET_A).getValue();
|
if (ObjectUtil.isNotEmpty(device_code1) && (('A') == (device_code1.charAt(device_code1.length()-1)))) {
|
||||||
if(ObjectUtil.isNotEmpty(offSet_A) && !"null".equals(offSet_A)){
|
String offSet_A = paramService.findByCode(AcsConfig.OFFSET_A).getValue();
|
||||||
Integer integer = Integer.valueOf(offSet_A);
|
if (ObjectUtil.isNotEmpty(offSet_A) && !"null".equals(offSet_A)) {
|
||||||
len1 = len1 - integer;
|
Integer integer = Integer.valueOf(offSet_A);
|
||||||
|
len1 = len1 - integer;
|
||||||
|
}
|
||||||
|
} else if (ObjectUtil.isNotEmpty(device_code1) && (('B') == (device_code1.charAt(device_code1.length()-1)))) {
|
||||||
|
String offSet_B = paramService.findByCode(AcsConfig.OFFSET_B).getValue();
|
||||||
|
if (ObjectUtil.isNotEmpty(offSet_B) && !"null".equals(offSet_B)) {
|
||||||
|
Integer integer = Integer.valueOf(offSet_B);
|
||||||
|
len1 = integer + len1;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
log.info("{}设备名不符合条件,指令号{}", device_code, ikey);
|
||||||
}
|
}
|
||||||
}else if("B".equals(choose)){
|
|
||||||
String offSet_B = paramService.findByCode(AcsConfig.OFFSET_B).getValue();
|
|
||||||
if(ObjectUtil.isNotEmpty(offSet_B) && !"null".equals(offSet_B)){
|
|
||||||
Integer integer = Integer.valueOf(offSet_B);
|
|
||||||
len1 = integer + len1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(len1 * len2 < 1 ){
|
|
||||||
int roundedNumber = ObjectUtil.isNotEmpty(len1) ? NumberUtil.round(len1, 0).intValue() : 0;
|
int roundedNumber = ObjectUtil.isNotEmpty(len1) ? NumberUtil.round(len1, 0).intValue() : 0;
|
||||||
if (roundedNumber == 0) {
|
if (roundedNumber == 0) {
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, roundedNumber);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, roundedNumber);
|
||||||
} else {
|
} else if(roundedNumber > -50 || roundedNumber < 50){
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 1, roundedNumber);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 1, roundedNumber);
|
||||||
|
}else if(roundedNumber > 50 || roundedNumber < -50){
|
||||||
|
log.info("设备{},偏移数据超出范围导致未反馈{},指令号{}", device_code, roundedNumber, ikey);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
log.info("设备{},偏移数据出错导致未反馈{},指令号{}", device_code, rangingStationsDeviceDriver.getLength1() + ","+ rangingStationsDeviceDriver.getLength2(), ikey);
|
||||||
|
}
|
||||||
|
} else if (device.getDeviceDriver() instanceof WasteFoilWeighingStationDriver) {
|
||||||
|
wasteFoilWeighingStationDriver = (WasteFoilWeighingStationDriver) device.getDeviceDriver();
|
||||||
|
if(wasteFoilWeighingStationDriver.getMove() == 1 && wasteFoilWeighingStationDriver.getAction() == 1
|
||||||
|
&& wasteFoilWeighingStationDriver.getError() == 0 && wasteFoilWeighingStationDriver.getMode() == 2){
|
||||||
|
try {
|
||||||
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("to_command", "2");
|
||||||
|
wasteFoilWeighingStationDriver.writing(map);
|
||||||
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
message = "设备号:" + device_code + "光电信号:" + wasteFoilWeighingStationDriver.getMove() + ",动作信号:" + wasteFoilWeighingStationDriver.getAction() + "报警信号:" + wasteFoilWeighingStationDriver.getError() + ",指令号:" + ikey + "不满足取货条件";
|
||||||
|
log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},设备状态{},不满足取货条件,指令号{}", device_code, wasteFoilWeighingStationDriver.getMove(), wasteFoilWeighingStationDriver.getAction()
|
||||||
|
, wasteFoilWeighingStationDriver.getError(), wasteFoilWeighingStationDriver.getMode(), ikey);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||||
@@ -474,6 +501,23 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, standardInspectSiteDeviceDriver.getMove(), standardInspectSiteDeviceDriver.getAction()
|
log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, standardInspectSiteDeviceDriver.getMove(), standardInspectSiteDeviceDriver.getAction()
|
||||||
, standardInspectSiteDeviceDriver.getError(), ikey);
|
, standardInspectSiteDeviceDriver.getError(), ikey);
|
||||||
}
|
}
|
||||||
|
} else if (device.getDeviceDriver() instanceof WasteFoilWeighingStationDriver) {
|
||||||
|
wasteFoilWeighingStationDriver = (WasteFoilWeighingStationDriver) device.getDeviceDriver();
|
||||||
|
if(wasteFoilWeighingStationDriver.getMove() == 0 && wasteFoilWeighingStationDriver.getAction() == 1
|
||||||
|
&& wasteFoilWeighingStationDriver.getError() == 0 && wasteFoilWeighingStationDriver.getMode() == 2){
|
||||||
|
try {
|
||||||
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("to_command", "3");
|
||||||
|
wasteFoilWeighingStationDriver.writing(map);
|
||||||
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
message = "设备号:" + device_code + "光电信号:" + wasteFoilWeighingStationDriver.getMove() + ",动作信号:" + wasteFoilWeighingStationDriver.getAction() + "报警信号:" + wasteFoilWeighingStationDriver.getError() + ",指令号:" + ikey + "不满足取货条件";
|
||||||
|
log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},设备状态{},不满足取货条件,指令号{}", device_code, wasteFoilWeighingStationDriver.getMove(), wasteFoilWeighingStationDriver.getAction()
|
||||||
|
, wasteFoilWeighingStationDriver.getError(), wasteFoilWeighingStationDriver.getMode(), ikey);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||||
@@ -612,6 +656,8 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
}
|
}
|
||||||
} else if (device.getDeviceDriver() instanceof RangingStationsDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof RangingStationsDeviceDriver) {
|
||||||
rangingStationsDeviceDriver = (RangingStationsDeviceDriver) device.getDeviceDriver();
|
rangingStationsDeviceDriver = (RangingStationsDeviceDriver) device.getDeviceDriver();
|
||||||
|
ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class);
|
||||||
|
String device_code1 = device.getDevice_code();
|
||||||
String length1 = rangingStationsDeviceDriver.getLength1();
|
String length1 = rangingStationsDeviceDriver.getLength1();
|
||||||
String length2 = rangingStationsDeviceDriver.getLength2();
|
String length2 = rangingStationsDeviceDriver.getLength2();
|
||||||
Float len1 = 0.0F;
|
Float len1 = 0.0F;
|
||||||
@@ -620,13 +666,32 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
len1 = Float.parseFloat(length1);
|
len1 = Float.parseFloat(length1);
|
||||||
len2 = Float.parseFloat(length2);
|
len2 = Float.parseFloat(length2);
|
||||||
}
|
}
|
||||||
if(len1 * len2 < 1 ){
|
if (len1 * len2 < 1) {
|
||||||
|
if (ObjectUtil.isNotEmpty(device_code1) && device_code1.contains("A")) {
|
||||||
|
String offSet_A = paramService.findByCode(AcsConfig.OFFSET_A).getValue();
|
||||||
|
if (ObjectUtil.isNotEmpty(offSet_A) && !"null".equals(offSet_A)) {
|
||||||
|
Integer integer = Integer.valueOf(offSet_A);
|
||||||
|
len1 = len1 - integer;
|
||||||
|
}
|
||||||
|
} else if (ObjectUtil.isNotEmpty(device_code1) && device_code1.contains("B")) {
|
||||||
|
String offSet_B = paramService.findByCode(AcsConfig.OFFSET_B).getValue();
|
||||||
|
if (ObjectUtil.isNotEmpty(offSet_B) && !"null".equals(offSet_B)) {
|
||||||
|
Integer integer = Integer.valueOf(offSet_B);
|
||||||
|
len1 = integer + len1;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
log.info("{}设备名不符合条件,指令号{}", device_code, ikey);
|
||||||
|
}
|
||||||
int roundedNumber = ObjectUtil.isNotEmpty(len1) ? NumberUtil.round(len1, 0).intValue() : 0;
|
int roundedNumber = ObjectUtil.isNotEmpty(len1) ? NumberUtil.round(len1, 0).intValue() : 0;
|
||||||
if (roundedNumber == 0) {
|
if (roundedNumber == 0) {
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, roundedNumber);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, roundedNumber);
|
||||||
} else {
|
} else if(roundedNumber > -50 || roundedNumber < 50){
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 1, roundedNumber);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 1, roundedNumber);
|
||||||
|
}else if(roundedNumber > 50 || roundedNumber < -50){
|
||||||
|
log.info("设备{},偏移数据超出范围导致未反馈{},指令号{}", device_code, roundedNumber, ikey);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
log.info("设备{},偏移数据出错导致未反馈{},指令号{}", device_code, rangingStationsDeviceDriver.getLength1() + ","+ rangingStationsDeviceDriver.getLength2(), ikey);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||||
@@ -892,6 +957,8 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
}
|
}
|
||||||
} else if (device.getDeviceDriver() instanceof RangingStationsDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof RangingStationsDeviceDriver) {
|
||||||
rangingStationsDeviceDriver = (RangingStationsDeviceDriver) device.getDeviceDriver();
|
rangingStationsDeviceDriver = (RangingStationsDeviceDriver) device.getDeviceDriver();
|
||||||
|
ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class);
|
||||||
|
String device_code1 = device.getDevice_code();
|
||||||
String length1 = rangingStationsDeviceDriver.getLength1();
|
String length1 = rangingStationsDeviceDriver.getLength1();
|
||||||
String length2 = rangingStationsDeviceDriver.getLength2();
|
String length2 = rangingStationsDeviceDriver.getLength2();
|
||||||
Float len1 = 0.0F;
|
Float len1 = 0.0F;
|
||||||
@@ -900,13 +967,49 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
len1 = Float.parseFloat(length1);
|
len1 = Float.parseFloat(length1);
|
||||||
len2 = Float.parseFloat(length2);
|
len2 = Float.parseFloat(length2);
|
||||||
}
|
}
|
||||||
if(len1 * len2 < 1 ){
|
if (len1 * len2 < 1) {
|
||||||
|
if (ObjectUtil.isNotEmpty(device_code1) && device_code1.contains("A")) {
|
||||||
|
String offSet_A = paramService.findByCode(AcsConfig.OFFSET_A).getValue();
|
||||||
|
if (ObjectUtil.isNotEmpty(offSet_A) && !"null".equals(offSet_A)) {
|
||||||
|
Integer integer = Integer.valueOf(offSet_A);
|
||||||
|
len1 = len1 - integer;
|
||||||
|
}
|
||||||
|
} else if (ObjectUtil.isNotEmpty(device_code1) && device_code1.contains("B")) {
|
||||||
|
String offSet_B = paramService.findByCode(AcsConfig.OFFSET_B).getValue();
|
||||||
|
if (ObjectUtil.isNotEmpty(offSet_B) && !"null".equals(offSet_B)) {
|
||||||
|
Integer integer = Integer.valueOf(offSet_B);
|
||||||
|
len1 = integer + len1;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
log.info("{}设备名不符合条件,指令号{}", device_code, ikey);
|
||||||
|
}
|
||||||
int roundedNumber = ObjectUtil.isNotEmpty(len1) ? NumberUtil.round(len1, 0).intValue() : 0;
|
int roundedNumber = ObjectUtil.isNotEmpty(len1) ? NumberUtil.round(len1, 0).intValue() : 0;
|
||||||
if (roundedNumber == 0) {
|
if (roundedNumber == 0) {
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, roundedNumber);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, roundedNumber);
|
||||||
} else {
|
} else if(roundedNumber > -50 || roundedNumber < 50){
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 1, roundedNumber);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 1, roundedNumber);
|
||||||
|
}else if(roundedNumber > 50 || roundedNumber < -50){
|
||||||
|
log.info("设备{},偏移数据超出范围导致未反馈{},指令号{}", device_code, roundedNumber, ikey);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
log.info("设备{},偏移数据出错导致未反馈{},指令号{}", device_code, rangingStationsDeviceDriver.getLength1() + ","+ rangingStationsDeviceDriver.getLength2(), ikey);
|
||||||
|
}
|
||||||
|
} else if (device.getDeviceDriver() instanceof WasteFoilWeighingStationDriver) {
|
||||||
|
wasteFoilWeighingStationDriver = (WasteFoilWeighingStationDriver) device.getDeviceDriver();
|
||||||
|
if(wasteFoilWeighingStationDriver.getMove() == 0 && wasteFoilWeighingStationDriver.getAction() == 1
|
||||||
|
&& wasteFoilWeighingStationDriver.getError() == 0 && wasteFoilWeighingStationDriver.getMode() == 2){
|
||||||
|
try {
|
||||||
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("to_command", "4");
|
||||||
|
wasteFoilWeighingStationDriver.writing(map);
|
||||||
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
message = "设备号:" + device_code + "光电信号:" + wasteFoilWeighingStationDriver.getMove() + ",动作信号:" + wasteFoilWeighingStationDriver.getAction() + "报警信号:" + wasteFoilWeighingStationDriver.getError() + ",指令号:" + ikey + "不满足取货条件";
|
||||||
|
log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},设备状态{},不满足取货条件,指令号{}", device_code, wasteFoilWeighingStationDriver.getMove(), wasteFoilWeighingStationDriver.getAction()
|
||||||
|
, wasteFoilWeighingStationDriver.getError(), wasteFoilWeighingStationDriver.getMode(), ikey);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||||
@@ -1018,6 +1121,23 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
if ((standardInspectSiteDeviceDriver.getMove() == 1)) {
|
if ((standardInspectSiteDeviceDriver.getMove() == 1)) {
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
} else if (device.getDeviceDriver() instanceof WasteFoilWeighingStationDriver) {
|
||||||
|
wasteFoilWeighingStationDriver = (WasteFoilWeighingStationDriver) device.getDeviceDriver();
|
||||||
|
if(wasteFoilWeighingStationDriver.getMove() == 1 && wasteFoilWeighingStationDriver.getAction() == 1
|
||||||
|
&& wasteFoilWeighingStationDriver.getError() == 0 && wasteFoilWeighingStationDriver.getMode() == 2){
|
||||||
|
try {
|
||||||
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("to_command", "5");
|
||||||
|
wasteFoilWeighingStationDriver.writing(map);
|
||||||
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
message = "设备号:" + device_code + "光电信号:" + wasteFoilWeighingStationDriver.getMove() + ",动作信号:" + wasteFoilWeighingStationDriver.getAction() + "报警信号:" + wasteFoilWeighingStationDriver.getError() + ",指令号:" + ikey + "不满足取货条件";
|
||||||
|
log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},设备状态{},不满足取货条件,指令号{}", device_code, wasteFoilWeighingStationDriver.getMove(), wasteFoilWeighingStationDriver.getAction()
|
||||||
|
, wasteFoilWeighingStationDriver.getError(), wasteFoilWeighingStationDriver.getMode(), ikey);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||||
}
|
}
|
||||||
@@ -1126,6 +1246,8 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
}
|
}
|
||||||
} else if (device.getDeviceDriver() instanceof RangingStationsDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof RangingStationsDeviceDriver) {
|
||||||
rangingStationsDeviceDriver = (RangingStationsDeviceDriver) device.getDeviceDriver();
|
rangingStationsDeviceDriver = (RangingStationsDeviceDriver) device.getDeviceDriver();
|
||||||
|
ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class);
|
||||||
|
String device_code1 = device.getDevice_code();
|
||||||
String length1 = rangingStationsDeviceDriver.getLength1();
|
String length1 = rangingStationsDeviceDriver.getLength1();
|
||||||
String length2 = rangingStationsDeviceDriver.getLength2();
|
String length2 = rangingStationsDeviceDriver.getLength2();
|
||||||
Float len1 = 0.0F;
|
Float len1 = 0.0F;
|
||||||
@@ -1134,13 +1256,32 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
len1 = Float.parseFloat(length1);
|
len1 = Float.parseFloat(length1);
|
||||||
len2 = Float.parseFloat(length2);
|
len2 = Float.parseFloat(length2);
|
||||||
}
|
}
|
||||||
if(len1 * len2 < 1 ){
|
if (len1 * len2 < 1) {
|
||||||
|
if (ObjectUtil.isNotEmpty(device_code1) && device_code1.contains("A")) {
|
||||||
|
String offSet_A = paramService.findByCode(AcsConfig.OFFSET_A).getValue();
|
||||||
|
if (ObjectUtil.isNotEmpty(offSet_A) && !"null".equals(offSet_A)) {
|
||||||
|
Integer integer = Integer.valueOf(offSet_A);
|
||||||
|
len1 = len1 - integer;
|
||||||
|
}
|
||||||
|
} else if (ObjectUtil.isNotEmpty(device_code1) && device_code1.contains("B")) {
|
||||||
|
String offSet_B = paramService.findByCode(AcsConfig.OFFSET_B).getValue();
|
||||||
|
if (ObjectUtil.isNotEmpty(offSet_B) && !"null".equals(offSet_B)) {
|
||||||
|
Integer integer = Integer.valueOf(offSet_B);
|
||||||
|
len1 = integer + len1;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
log.info("{}设备名不符合条件,指令号{}", device_code, ikey);
|
||||||
|
}
|
||||||
int roundedNumber = ObjectUtil.isNotEmpty(len1) ? NumberUtil.round(len1, 0).intValue() : 0;
|
int roundedNumber = ObjectUtil.isNotEmpty(len1) ? NumberUtil.round(len1, 0).intValue() : 0;
|
||||||
if (roundedNumber == 0) {
|
if (roundedNumber == 0) {
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, roundedNumber);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, roundedNumber);
|
||||||
} else {
|
} else if(roundedNumber > -50 || roundedNumber < 50){
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 1, roundedNumber);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 1, roundedNumber);
|
||||||
|
}else if(roundedNumber > 50 || roundedNumber < -50){
|
||||||
|
log.info("设备{},偏移数据超出范围导致未反馈{},指令号{}", device_code, roundedNumber, ikey);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
log.info("设备{},偏移数据出错导致未反馈{},指令号{}", device_code, rangingStationsDeviceDriver.getLength1() + ","+ rangingStationsDeviceDriver.getLength2(), ikey);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||||
|
|||||||
@@ -301,6 +301,7 @@ public class RgvDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDr
|
|||||||
.device_code(device_code)
|
.device_code(device_code)
|
||||||
.content("下发多个电气信号" + itemMap)
|
.content("下发多个电气信号" + itemMap)
|
||||||
.build();
|
.build();
|
||||||
|
logDto.setLog_level(3);
|
||||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
|||||||
import org.nl.acs.ext.wms.data.GetWasteFoilWeightRequest;
|
import org.nl.acs.ext.wms.data.GetWasteFoilWeightRequest;
|
||||||
import org.nl.acs.ext.wms.data.GetWasteFoilWeightResponse;
|
import org.nl.acs.ext.wms.data.GetWasteFoilWeightResponse;
|
||||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||||
|
import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
|
||||||
import org.nl.acs.history.ErrorUtil;
|
import org.nl.acs.history.ErrorUtil;
|
||||||
import org.nl.acs.history.service.DeviceErrorLogService;
|
import org.nl.acs.history.service.DeviceErrorLogService;
|
||||||
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
|
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
|
||||||
@@ -38,7 +39,7 @@ public class WasteFoilWeighingStationDriver extends AbstractOpcDeviceDriver impl
|
|||||||
protected ItemProtocol itemProtocol = new ItemProtocol(this);
|
protected ItemProtocol itemProtocol = new ItemProtocol(this);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
AcsToWmsService acsToWmsService;
|
AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class);
|
||||||
|
|
||||||
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
|
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
|
||||||
|
|
||||||
@@ -149,8 +150,11 @@ public class WasteFoilWeighingStationDriver extends AbstractOpcDeviceDriver impl
|
|||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
// 取消称重
|
// 取消称重
|
||||||
if (move > 0 && !requireSucess) {
|
if (move > 0 && !requireSucess && old_weight == 0 && gap_weight == 0) {
|
||||||
cancelWeight();
|
// cancelWeight();
|
||||||
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("to_command", "8");
|
||||||
|
this.writing(map);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
@@ -262,6 +266,9 @@ public class WasteFoilWeighingStationDriver extends AbstractOpcDeviceDriver impl
|
|||||||
getWasteFoilWeightRequest.setType("4");
|
getWasteFoilWeightRequest.setType("4");
|
||||||
getWasteFoilWeightResponse = acsToWmsService.feedbackWeight(getWasteFoilWeightRequest);
|
getWasteFoilWeightResponse = acsToWmsService.feedbackWeight(getWasteFoilWeightRequest);
|
||||||
if (getWasteFoilWeightResponse.getstatus() == 200) {
|
if (getWasteFoilWeightResponse.getstatus() == 200) {
|
||||||
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("to_command", "9");
|
||||||
|
this.writing(map);
|
||||||
feedbackSucess = true;
|
feedbackSucess = true;
|
||||||
message = "申请任务成功...";
|
message = "申请任务成功...";
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -584,8 +584,8 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
|
|||||||
while (true) {
|
while (true) {
|
||||||
if (wasteFoilWeighingStationDriver.getMode()==6){
|
if (wasteFoilWeighingStationDriver.getMode()==6){
|
||||||
jo.put("currentWeight", wasteFoilWeighingStationDriver.getWeight());//当前重量
|
jo.put("currentWeight", wasteFoilWeighingStationDriver.getWeight());//当前重量
|
||||||
jo.put("lastWeight", wasteFoilWeighingStationDriver.getGap_weight());//上一次重量
|
jo.put("lastWeight", wasteFoilWeighingStationDriver.getOld_weight());//上一次重量
|
||||||
jo.put("weightGap", wasteFoilWeighingStationDriver.getOld_weight());//重量差
|
jo.put("weightGap", wasteFoilWeighingStationDriver.getGap_weight());//重量差
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -598,8 +598,8 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
|
|||||||
while (true) {
|
while (true) {
|
||||||
if (wasteFoilWeighingStationDriver.getMode()==7){
|
if (wasteFoilWeighingStationDriver.getMode()==7){
|
||||||
jo.put("currentWeight", wasteFoilWeighingStationDriver.getWeight());//当前重量
|
jo.put("currentWeight", wasteFoilWeighingStationDriver.getWeight());//当前重量
|
||||||
jo.put("lastWeight", wasteFoilWeighingStationDriver.getGap_weight());//上一次重量
|
jo.put("lastWeight", wasteFoilWeighingStationDriver.getOld_weight());//上一次重量
|
||||||
jo.put("weightGap", wasteFoilWeighingStationDriver.getOld_weight());//重量差
|
jo.put("weightGap", wasteFoilWeighingStationDriver.getGap_weight());//重量差
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_name"
|
:key="item.device_name"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_name"
|
:key="item.device_name"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_name"
|
:key="item.device_name"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_name"
|
:key="item.device_name"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_name"
|
:key="item.device_name"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_name"
|
:key="item.device_name"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_name"
|
:key="item.device_name"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_name"
|
:key="item.device_name"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_name"
|
:key="item.device_name"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_name"
|
:key="item.device_name"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_code"
|
:key="item.device_code"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_code"
|
:key="item.device_code"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_code"
|
:key="item.device_code"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_code"
|
:key="item.device_code"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_code"
|
:key="item.device_code"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_code"
|
:key="item.device_code"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="item in deviceList"
|
v-for="item in deviceList"
|
||||||
:key="item.device_code"
|
:key="item.device_code"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -167,7 +167,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="(item, index) in deviceList"
|
v-for="(item, index) in deviceList"
|
||||||
:key="index"
|
:key="index"
|
||||||
:label="item.device_name"
|
:label="item.device_code"
|
||||||
:value="item.device_code"
|
:value="item.device_code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
Reference in New Issue
Block a user