更新
This commit is contained in:
@@ -56,4 +56,7 @@ public interface AcsConfig {
|
||||
String MAXSENDTASKTIME = "maxSendTaskTime";
|
||||
//指令下发立库
|
||||
String INSTSENDLK = "instSendLk";
|
||||
//是否允许下发
|
||||
String ISALLOWTASK= "is_allow_task";
|
||||
|
||||
}
|
||||
|
||||
@@ -79,6 +79,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
||||
int task = 0;
|
||||
int last_task = 0;
|
||||
|
||||
int heartbeat = 0;
|
||||
int last_heartbeat = 0;
|
||||
|
||||
|
||||
Boolean isonline = true;
|
||||
int hasGoods = 0;
|
||||
@@ -126,6 +129,10 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
||||
walk_y = this.itemProtocol.getWalk_y();
|
||||
error = this.itemProtocol.getError();
|
||||
task = this.itemProtocol.getTask();
|
||||
heartbeat = this.itemProtocol.getHeartbeat();
|
||||
if(heartbeat != last_heartbeat){
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "heartbeat:" + last_heartbeat + "->" + heartbeat);
|
||||
}
|
||||
if (mode != last_mode) {
|
||||
if (mode == 2) {
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "信号复位前requireSuccess:" + requireSucess);
|
||||
@@ -417,7 +424,8 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
||||
} catch (Exception var17) {
|
||||
var17.printStackTrace();
|
||||
feedMessage = var17.getMessage();
|
||||
logServer.deviceExecuteLog(this.getDevice_code(), "", "", "读取信号值时出现异常:" + var17.getMessage());
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17.getMessage()+ ",this.itemProtocol is null:" + ObjectUtil.isEmpty(this.itemProtocol) );
|
||||
|
||||
}
|
||||
|
||||
// if (!this.itemProtocol.getIsonline()) {
|
||||
@@ -477,6 +485,7 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
||||
last_walk_y = walk_y;
|
||||
last_error = error;
|
||||
last_task = task;
|
||||
last_heartbeat = heartbeat;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -122,7 +122,8 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
int branchProtocol = 0;
|
||||
String inst_message;
|
||||
String last_inst_message;
|
||||
|
||||
int heartbeat = 0;
|
||||
int last_heartbeat = 0;
|
||||
//当前指令
|
||||
|
||||
//暂定 0就绪 1请求取货 2取货完成 3请求放货 4放货完成 5取货完成离开 6放货完成离开 7请求进入区域 8请求离开区域
|
||||
@@ -149,6 +150,10 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
error = this.itemProtocol.getError();
|
||||
task = this.itemProtocol.getTask();
|
||||
to_command = this.itemProtocol.getTo_command();
|
||||
heartbeat = this.itemProtocol.getHeartbeat();
|
||||
if(heartbeat != last_heartbeat){
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "heartbeat:" + last_heartbeat + "->" + heartbeat);
|
||||
}
|
||||
if (mode != last_mode) {
|
||||
if (mode == 2) {
|
||||
requireSucess = false;
|
||||
@@ -227,8 +232,7 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
|
||||
} catch (Exception var17) {
|
||||
var17.printStackTrace();
|
||||
inst_message = var17.getMessage();
|
||||
logServer.deviceExecuteLog(this.getDevice_code(), "", "", "读取信号值时出现异常:" + var17.getMessage());
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17.getMessage()+ ",this.itemProtocol is null:" + ObjectUtil.isEmpty(this.itemProtocol) );
|
||||
}
|
||||
|
||||
if("true".equals(this.device.getExtraValue().get("ship_device_update"))){
|
||||
@@ -313,6 +317,7 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
last_carrier_direction = carrier_direction;
|
||||
last_error = error;
|
||||
last_task = task;
|
||||
last_heartbeat = heartbeat;
|
||||
}
|
||||
|
||||
private void shipDeviceUpdate() {
|
||||
|
||||
@@ -88,7 +88,8 @@ public class SiemensConveyorCkkDeviceDriver extends AbstractOpcDeviceDriver impl
|
||||
int last_task = 0;
|
||||
int agvphase = 0;
|
||||
String task_code = null;
|
||||
|
||||
int heartbeat = 0;
|
||||
int last_heartbeat = 0;
|
||||
int phase = 0;
|
||||
int index = 0;
|
||||
Boolean isonline = true;
|
||||
@@ -142,6 +143,10 @@ public class SiemensConveyorCkkDeviceDriver extends AbstractOpcDeviceDriver impl
|
||||
carrier_direction = this.itemProtocol.getCarrier_direction();
|
||||
error = this.itemProtocol.getError();
|
||||
task = this.itemProtocol.getTask();
|
||||
heartbeat = this.itemProtocol.getHeartbeat();
|
||||
if(heartbeat != last_heartbeat){
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "heartbeat:" + last_heartbeat + "->" + heartbeat);
|
||||
}
|
||||
if (mode != last_mode) {
|
||||
if (mode == 2) {
|
||||
requireSucess = false;
|
||||
@@ -262,6 +267,7 @@ public class SiemensConveyorCkkDeviceDriver extends AbstractOpcDeviceDriver impl
|
||||
last_carrier_direction = carrier_direction;
|
||||
last_error = error;
|
||||
last_task = task;
|
||||
last_heartbeat = heartbeat;
|
||||
}
|
||||
|
||||
private void shipDeviceUpdate() {
|
||||
|
||||
@@ -69,7 +69,8 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
|
||||
@Autowired NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvService.class);
|
||||
// 当前指令
|
||||
Instruction inst = null;
|
||||
|
||||
int heartbeat = 0;
|
||||
int last_heartbeat = 0;
|
||||
// 工作模式
|
||||
int mode = 0;
|
||||
int last_mode = 0;
|
||||
@@ -139,6 +140,10 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
|
||||
error = this.itemProtocol.getError();
|
||||
task = this.itemProtocol.getTask();
|
||||
weight = this.itemProtocol.getWeight();
|
||||
heartbeat = this.itemProtocol.getHeartbeat();
|
||||
if(heartbeat != last_heartbeat){
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "heartbeat:" + last_heartbeat + "->" + heartbeat);
|
||||
}
|
||||
if (mode != last_mode) {
|
||||
if (mode == 2) {
|
||||
requireSucess = false;
|
||||
@@ -281,6 +286,8 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver
|
||||
last_carrier_direction = carrier_direction;
|
||||
last_error = error;
|
||||
last_task = task;
|
||||
last_heartbeat = heartbeat;
|
||||
|
||||
}
|
||||
|
||||
public boolean exe_error() {
|
||||
|
||||
@@ -70,7 +70,8 @@ public class SiemensOneFloorAGVConveyorDeviceDriver extends AbstractOpcDeviceDri
|
||||
NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvService.class);
|
||||
//当前指令
|
||||
Instruction inst = null;
|
||||
|
||||
int heartbeat = 0;
|
||||
int last_heartbeat = 0;
|
||||
//工作模式
|
||||
int mode = 0;
|
||||
int last_mode = 0;
|
||||
|
||||
@@ -104,6 +104,9 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl
|
||||
|
||||
int branchProtocol = 0;
|
||||
|
||||
int heartbeat = 0;
|
||||
int last_heartbeat = 0;
|
||||
|
||||
//暂定 0就绪 1请求取货 2取货完成 3请求放货 4放货完成 5取货完成离开 6放货完成离开 7请求进入区域 8请求离开区域
|
||||
int flag;
|
||||
|
||||
@@ -158,7 +161,10 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl
|
||||
task2 = this.itemProtocol.getTask2();
|
||||
to_command1 = this.itemProtocol.getTo_command1();
|
||||
to_command2 = this.itemProtocol.getTo_command2();
|
||||
|
||||
heartbeat = this.itemProtocol.getHeartbeat();
|
||||
if(heartbeat != last_heartbeat){
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "heartbeat:" + last_heartbeat + "->" + heartbeat);
|
||||
}
|
||||
if (mode != last_mode) {
|
||||
if (mode == 2) {
|
||||
logServer.deviceExecuteLog(device_code, "", "", "开始请求标记复位`此时请求标记值为:" + requireSucess);
|
||||
@@ -626,12 +632,11 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} catch (Exception var17) {
|
||||
var17.printStackTrace();
|
||||
feedMessage = var17.getMessage();
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17.getMessage());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
feedMessage = e.getMessage();
|
||||
System.out.println("11111111:"+e.getMessage());
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + e.getMessage()+ ",this.itemProtocol is null:" + ObjectUtil.isEmpty(this.itemProtocol) );
|
||||
}
|
||||
|
||||
if (mode == 0) {
|
||||
@@ -724,6 +729,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl
|
||||
last_type = type;
|
||||
last_task1 = task1;
|
||||
last_task2 = task2;
|
||||
last_heartbeat = heartbeat;
|
||||
}
|
||||
|
||||
//关联设备异常申请任务
|
||||
|
||||
@@ -87,6 +87,9 @@ public class ItemProtocol {
|
||||
return this.getOpcStringValue(item_barcode);
|
||||
}
|
||||
|
||||
public int getTotTask() {
|
||||
return this.getOpcIntegerValue(item_to_task);
|
||||
}
|
||||
|
||||
Boolean isonline;
|
||||
|
||||
|
||||
@@ -84,6 +84,7 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
|
||||
int action = 0;
|
||||
int error = 0;
|
||||
int task = 0;
|
||||
int to_task = 0;
|
||||
String plcbarcode = null;
|
||||
String last_plcbarcode = null;
|
||||
int plcbarcode_length = 0;
|
||||
@@ -193,7 +194,7 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
|
||||
task = this.itemProtocol.getTask();
|
||||
plcbarcode = this.itemProtocol.getplcBarCode();
|
||||
plcbarcode_length = this.itemProtocol.getBarCode_length();
|
||||
|
||||
to_task = this.itemProtocol.getTotTask();
|
||||
if (mode != last_mode) {
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode +"复位请求标记");
|
||||
if(mode == 2){
|
||||
@@ -549,11 +550,44 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
|
||||
//需要判断指令中的指令 再次请求不能生成
|
||||
if (!ObjectUtils.isEmpty(instructionService.findByTaskcodeAndStatus(taskdto.getTask_code(),"1"))) {
|
||||
{
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "申请任务时该载具号" + container_code
|
||||
+ "已存在对应任务");
|
||||
requireSucess = true;
|
||||
applySucess = true;
|
||||
return true;
|
||||
Instruction instdto = instructionService.findByTaskcodeAndStatus(taskdto.getTask_code(),"1");
|
||||
if(to_task != Integer.parseInt(instdto.getInstruction_code())){
|
||||
List list = new ArrayList();
|
||||
Map map = new HashMap();
|
||||
if (StrUtil.isNotEmpty(taskdto.getTo_z())) {
|
||||
if (StrUtil.equals(taskdto.getTo_z(), "01")) {
|
||||
map.put("code", "to_target");
|
||||
map.put("value", "102");
|
||||
} else if (StrUtil.equals(taskdto.getTo_z(), "02")) {
|
||||
map.put("code", "to_target");
|
||||
map.put("value", "201");
|
||||
} else if (StrUtil.equals(taskdto.getTo_z(), "03")) {
|
||||
map.put("code", "to_target");
|
||||
map.put("value", "301");
|
||||
}
|
||||
}
|
||||
list.add(map);
|
||||
Map map2 = new HashMap();
|
||||
map2.put("code", "to_task");
|
||||
map2.put("value", instdto.getInstruction_code());
|
||||
list.add(map2);
|
||||
Map map3 = new HashMap();
|
||||
map3.put("code", "to_command");
|
||||
map3.put("value", "1");
|
||||
list.add(map3);
|
||||
this.writing(list);
|
||||
message = "下发电气任务号成功";
|
||||
requireSucess = true;
|
||||
applySucess = true;
|
||||
return true;
|
||||
} else {
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "申请任务时该载具号" + container_code
|
||||
+ "已存在对应任务");
|
||||
requireSucess = true;
|
||||
applySucess = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -472,7 +472,15 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
|
||||
log.info("crateTask-----输入参数{}", param);
|
||||
JSONArray datas = JSONArray.parseArray(param);
|
||||
CreateTaskResponse response = new CreateTaskResponse();
|
||||
ParamService paramService = SpringContextHolder.getBean(ParamService.class);
|
||||
String cancelTaskCheck = paramService.findByCode(AcsConfig.ISALLOWTASK).getValue();
|
||||
JSONArray errArr = new JSONArray();
|
||||
if(StrUtil.equals(cancelTaskCheck,"0")){
|
||||
response.setStatus(400);
|
||||
response.setMessage("ACS系统需要更新,请稍等");
|
||||
response.setErrArr(datas);
|
||||
return response;
|
||||
}
|
||||
for (int i = 0; i < datas.size(); i++) {
|
||||
String data = datas.get(i).toString();
|
||||
CreateTaskRequest request = JsonUtl.format(data, CreateTaskRequest.class);
|
||||
|
||||
@@ -121,6 +121,7 @@ public class DeviceOpcProtocolRunable implements Runnable {
|
||||
itemStatus = group.read(true, (Item[]) itemsMap.values().toArray(new Item[0]));
|
||||
} catch (Exception e){
|
||||
System.out.println("数据同步异常:"+ this.getOpcServer().getOpc_code());
|
||||
log.trace("数据同步异常:{}", this.getOpcServer().getOpc_code());
|
||||
//e.printStackTrace();
|
||||
}
|
||||
long end = System.currentTimeMillis();
|
||||
@@ -138,10 +139,10 @@ public class DeviceOpcProtocolRunable implements Runnable {
|
||||
time_out = false;
|
||||
}
|
||||
|
||||
// if(ObjectUtil.isEmpty(itemStatus)) {
|
||||
// System.out.println( tag + " :itemStatus is null");
|
||||
// break;
|
||||
// }
|
||||
if(ObjectUtil.isEmpty(itemStatus)) {
|
||||
System.out.println( tag + " :itemStatus is null");
|
||||
log.warn(" {} 读取异常 : {} itemStatus is null", tag);
|
||||
}
|
||||
|
||||
|
||||
Set<Item> items = itemStatus.keySet();
|
||||
@@ -171,12 +172,13 @@ public class DeviceOpcProtocolRunable implements Runnable {
|
||||
value = OpcUtl.getValue(item, itemState);
|
||||
his = accessor_value.getValue(item.getId());
|
||||
if (!ObjectUtl.isEquals(itemState.getQuality(), QualityTypeValue.OPC_QUALITY_GOOD) && his != null) {
|
||||
log.warn("opc 值不健康 item: {}, 状态: {}", item.getId(), itemState.getQuality());
|
||||
log.warn("opc 值不健康 item: {}, 状态: {},当前读取值:{}, 系统内存值{} ", item.getId(), itemState.getQuality(), value, his);
|
||||
}
|
||||
} while (ObjectUtil.equal(value, his));//如果两次的值相等,不走下面的代码
|
||||
|
||||
OpcItemDto itemDto = this.getItem(item.getId());
|
||||
if (itemDto.getNeed_log() != null && itemDto.getNeed_log()) {
|
||||
//默认记录日志
|
||||
if (true) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
//设备的ITEM项
|
||||
List<String> relate_items = itemDto.getRelate_items();
|
||||
@@ -188,7 +190,7 @@ public class DeviceOpcProtocolRunable implements Runnable {
|
||||
sb.append("key:" + relate + "value:" + obj + ";");
|
||||
}
|
||||
|
||||
log.info("信号{}变更从{}->{};信号快照:{}", new Object[]{item.getId(), his, value, sb});
|
||||
log.warn("信号{}变更从{}->{};信号快照:{}", new Object[]{item.getId(), his, value, sb});
|
||||
|
||||
}
|
||||
// accessor_value.setValueWithPersistence(item.getId(),accessor_value.getValue(item.getId()));
|
||||
@@ -203,6 +205,7 @@ public class DeviceOpcProtocolRunable implements Runnable {
|
||||
try {
|
||||
this.server.disconnect();
|
||||
} catch (Exception var25) {
|
||||
log.warn("{} : server disconnect", var25);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,6 +220,7 @@ public class DeviceOpcProtocolRunable implements Runnable {
|
||||
Thread.sleep((long) (OpcConfig.synchronized_exception_wait_second * 1000));
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
log.warn("OPC 读取线程读取异常{} :", e);
|
||||
// Thread.currentThread().interrupt();不会真正停止线程
|
||||
}
|
||||
++this.error_num;
|
||||
|
||||
@@ -4,7 +4,7 @@ public class OpcConfig {
|
||||
public static Boolean auto_start_opc = Boolean.valueOf(true);
|
||||
public static String udw_opc_value_key = "opc_value";
|
||||
public static Integer synchronized_millisecond = Integer.valueOf(100);
|
||||
public static Integer synchronized_exception_wait_second = Integer.valueOf(10);
|
||||
public static Integer synchronized_exception_wait_second = Integer.valueOf(3);
|
||||
public static Integer retry_times = Integer.valueOf(3);
|
||||
public static String sync_issue_type_code = "device_opc_sync";
|
||||
public static String opc_server_default_group = "group";
|
||||
|
||||
Reference in New Issue
Block a user