From cb2d5d9ac39efdb38d8a301f7396ac1ab171efc1 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期四, 09 五月 2024 21:49:11 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java | 9 + src/main/webapp/views/console-old.html | 2 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 306 ++++++++++++++++++++++++++------------ src/main/webapp/views/console.html | 2 src/main/java/com/zy/asrs/service/WrkMastStaService.java | 2 src/main/webapp/static/images/RMLogo.png | 0 src/main/resources/mapper/WrkMastStaMapper.xml | 9 + src/main/java/com/zy/asrs/entity/WrkMastSta.java | 4 src/main/java/com/zy/asrs/utils/Utils.java | 23 ++ src/main/webapp/views/index.html | 2 src/main/java/com/zy/core/MainProcess.java | 12 src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java | 3 src/main/java/com/zy/core/thread/SiemensDevpThread.java | 75 ++++++++ src/main/resources/application.yml | 14 14 files changed, 341 insertions(+), 122 deletions(-) diff --git a/src/main/java/com/zy/asrs/entity/WrkMastSta.java b/src/main/java/com/zy/asrs/entity/WrkMastSta.java index c777b4d..b18cf68 100644 --- a/src/main/java/com/zy/asrs/entity/WrkMastSta.java +++ b/src/main/java/com/zy/asrs/entity/WrkMastSta.java @@ -36,6 +36,10 @@ @TableField("wrk_no") private Long wrkNo; + @ApiModelProperty(value= "宸ヤ綔鍙�") + @TableField("wrk_no2") + private Long wrkNo2; + /** * 宸ヤ綔妗e紑濮嬩綅缃� */ diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java index fef59fb..c5872f3 100644 --- a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java +++ b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java @@ -9,4 +9,7 @@ @Repository public interface WrkMastStaMapper extends BaseMapper<WrkMastSta> { + WrkMastSta selectByRgvNoandWrkNo(Integer rgvNo, Integer taskNo); + + WrkMastSta selectByRgvNoandWrkNo2(Integer rgvNo, Integer taskNo2); } diff --git a/src/main/java/com/zy/asrs/service/WrkMastStaService.java b/src/main/java/com/zy/asrs/service/WrkMastStaService.java index 9a08d24..9ba65e2 100644 --- a/src/main/java/com/zy/asrs/service/WrkMastStaService.java +++ b/src/main/java/com/zy/asrs/service/WrkMastStaService.java @@ -5,4 +5,6 @@ public interface WrkMastStaService extends IService<WrkMastSta> { + WrkMastSta selectByRgvNoandWrkNo(Integer rgvNo, Integer taskNo1); + WrkMastSta selectByRgvNoandWrkNo2(Integer rgvNo, Integer taskNo2); } diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index 8263c0a..d2181a2 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -90,6 +90,8 @@ private BasCrnErrorMapper basCrnErrorMapper; @Autowired private EmptyBarrelInService emptyBarrelInService; + @Autowired + private WrkMastStaService wrkMastStaService; @Value("${wms.url}") private String wmsUrl; @@ -2299,7 +2301,7 @@ } else { staProtocol = staProtocol.clone(); } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()) { +// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()) { // 鏌ヨ宸ヤ綔妗� WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(crnStn.getStaNo()); if (wrkMast == null) { @@ -2334,7 +2336,7 @@ } - } +// } } } } @@ -2491,111 +2493,219 @@ for (RgvSlave rgvSlave:slaveProperties.getRgv()){ ZyRgvThread rgvThread = (ZyRgvThread)SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol.getModeType() != RgvModeType.AUTO){ + if (Cools.isEmpty(rgvProtocol)){ continue; - } - - - int workNo1 = 0; - int workNo2 = 0; - short souSta1 = 0; - short sta1 = 0; - short souSta2 = 0; - short sta2 = 0; - - //宸ヤ綅涓�浠诲姟 - for (RgvSlave.Sta inStn : rgvSlave.getInStn()){ - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId()); - StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo()); - if (staProtocol == null) { - break; -// continue; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isLoading() && staProtocol.isLoading() && staProtocol.isInEnable()){ - if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9900){ - WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo()); - if (Cools.isEmpty(wrkMast)){ - log.error("鏈壘鍒板伐浣滄。"); - continue; - } - workNo1 = wrkMast.getWrkNo(); - souSta1 = inStn.getSourceStaNo().shortValue(); - sta1 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo()); - break; - } - workNo1 = workNo++; - souSta1 = inStn.getSourceStaNo().shortValue(); - sta1 = inStn.getStaNo().shortValue(); - break; - } - } - - - //宸ヤ綅浜屼换鍔� - for (RgvSlave.Sta inStn : rgvSlave.getInStn()){ - if (souSta1 == inStn.getSourceStaNo()){ - continue; - } - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId()); - StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo()); - if (staProtocol == null) { - break; -// continue; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isLoading() && staProtocol.isLoading() && staProtocol.isInEnable()){ - if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9900){ - WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo()); - if (Cools.isEmpty(wrkMast)){ - log.error("鏈壘鍒板伐浣滄。"); - continue; - } - workNo2 = wrkMast.getWrkNo(); - souSta2 = inStn.getSourceStaNo().shortValue(); - sta2 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo()); - break; - } - workNo2 = workNo++; - souSta2 = inStn.getSourceStaNo().shortValue(); - sta2 = inStn.getStaNo().shortValue(); - break; - } - } - - //rgv浠诲姟涓嬪彂-------------------------------------------------------------- - RgvCommand command = new RgvCommand(); - command.setRgvNo(rgvSlave.getId()); // RGV缂栧彿 - //宸ヤ綅1 - command.setTaskNo1(workNo1); // 宸ヤ綔鍙� - command.setSourceStaNo1(souSta1); // 婧愮珯 - command.setDestinationStaNo1(sta1); // 鐩爣绔� - command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣� - - //宸ヤ綅2 - command.setTaskNo2(workNo2); // 宸ヤ綔鍙� - command.setSourceStaNo2(souSta2); // 婧愮珯 - command.setDestinationStaNo2(sta2); // 鐩爣绔� - command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣� - - if (workNo1 != 0 && workNo2 ==0){ - command.setTaskMode(RgvTaskModeType.FETCH_PUT2); // 浠诲姟妯″紡: 鍙栨斁璐� - } else if (workNo1 == 0 && workNo2 !=0) { - command.setTaskMode(RgvTaskModeType.FETCH_PUT1); // 浠诲姟妯″紡: 鍙栨斁璐� }else { - command.setTaskMode(RgvTaskModeType.FETCH_PUT_ALL); // 浠诲姟妯″紡: 鍙栨斁璐� + rgvProtocol = rgvProtocol.clone(); } - command.setCommand(false); - MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(2, command)); - log.info("rgv浠诲姟涓嬪彂锛�"+JSON.toJSONString(command)); + if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.IDLE && rgvProtocol.getLoaded1() == 0){ + boolean work1 = false; + boolean work2 = false; + int workNo1 = 0; + int workNo2 = 0; + short souSta1 = 0; + short sta1 = 0; + short souSta2 = 0; + short sta2 = 0; + + //宸ヤ綅涓�浠诲姟 + for (RgvSlave.Sta inStn : rgvSlave.getInStn()){ + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId()); + StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo()); + if (staProtocol == null) { + break; +// continue; + } else { + staProtocol = staProtocol.clone(); + } + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()){ + if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9900){ + WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo()); + if (Cools.isEmpty(wrkMast)){ + log.error("鏈壘鍒板伐浣滄。"); + continue; + } + workNo1 = wrkMast.getWrkNo(); + souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),wrkMast.getSourceStaNo()); + sta1 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo()); + work1 = true; + devpThread.setPakMk(inStn.getSourceStaNo(),false); + break; + } + workNo1 = workNo++; + souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getSourceStaNo()); + sta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getStaNo()); + work1 = true; + devpThread.setPakMk(inStn.getSourceStaNo(),false); + break; + } + } + + + //宸ヤ綅浜屼换鍔� + for (RgvSlave.Sta inStn : rgvSlave.getInStn()){ + if (souSta1 == inStn.getSourceStaNo()){ + continue; + } + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId()); + StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo()); + if (staProtocol == null) { + break; +// continue; + } else { + staProtocol = staProtocol.clone(); + } + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()&& staProtocol.isPakMk()){ + if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9900){ + WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo()); + if (Cools.isEmpty(wrkMast)){ + log.error("鏈壘鍒板伐浣滄。"); + continue; + } + workNo2 = wrkMast.getWrkNo(); + souSta2 = inStn.getSourceStaNo().shortValue(); + sta2 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo()); + work2 = true; + devpThread.setPakMk(inStn.getSourceStaNo(),false); + break; + } + workNo2 = workNo++; + souSta2 = inStn.getSourceStaNo().shortValue(); + sta2 = inStn.getStaNo().shortValue(); + work2 = true; + devpThread.setPakMk(inStn.getSourceStaNo(),false); + break; + } + } + + if (work1 || work2){ + //rgv浠诲姟涓嬪彂-------------------------------------------------------------- + RgvCommand command = new RgvCommand(); + command.setRgvNo(rgvSlave.getId()); // RGV缂栧彿 + //宸ヤ綅1 + command.setTaskNo1(workNo1); // 宸ヤ綔鍙� + command.setSourceStaNo1(souSta1); // 婧愮珯 + command.setDestinationStaNo1(sta1); // 鐩爣绔� + command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣� + + //宸ヤ綅2 + command.setTaskNo2(workNo2); // 宸ヤ綔鍙� + command.setSourceStaNo2(souSta2); // 婧愮珯 + command.setDestinationStaNo2(sta2); // 鐩爣绔� + command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣� + + if (workNo1 == 0 && workNo2 !=0){ + command.setTaskMode(RgvTaskModeType.FETCH_PUT2); // 浠诲姟妯″紡: 鍙栨斁璐� + } else if (workNo1 != 0 && workNo2 ==0) { + command.setTaskMode(RgvTaskModeType.FETCH_PUT1); // 浠诲姟妯″紡: 鍙栨斁璐� + }else { + command.setTaskMode(RgvTaskModeType.FETCH_PUT_ALL); // 浠诲姟妯″紡: 鍙栨斁璐� + } + command.setCommand(false); + rgvTaskSave(command); + MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(2, command)); + log.info("rgv浠诲姟涓嬪彂锛�"+JSON.toJSONString(command)); + } + } + + + + } } public synchronized void RGVTaskOver() { + for (RgvSlave rgvSlave:slaveProperties.getRgv()) { + ZyRgvThread rgvThread = (ZyRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); + RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); + if (Cools.isEmpty(rgvProtocol)){ + continue; + }else { + rgvProtocol = rgvProtocol.clone(); + } + //宸ヤ綅涓�浠诲姟瀹屾垚 + if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 1) { + WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo1()); + if (Cools.isEmpty(wrkMastSta)){ + log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); + continue; + } + for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){ + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getSourcePlcId()); + StaProtocol staProtocol = devpThread.getStation().get(outStn.getSourceStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk()){ +// staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); +// staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); + if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) { + continue; + } + } + + } + + MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3,new RgvCommand())); + log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),wrkMastSta.getWrkNo()); + } + + //宸ヤ綅浜屼换鍔″畬鎴� + if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded1() == 1) { + WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2()); + if (Cools.isEmpty(wrkMastSta)){ + log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2()); + continue; + } + for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){ + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getSourcePlcId()); + StaProtocol staProtocol = devpThread.getStation().get(outStn.getSourceStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk()){ +// staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); +// staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); + if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) { + continue; + } + } + + } + + MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand())); + log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),wrkMastSta.getWrkNo2()); + } + } } + + public boolean rgvTaskSave(RgvCommand command){ + Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", command.getRgvNo()).eq("wrk_no", command.getTaskNo1()); + WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper); + if (!Cools.isEmpty(wrkMastSta1)){ + wrkMastStaService.delete(wrkMastStaWrapper); + } + WrkMastSta wrkMastSta = new WrkMastSta(); + wrkMastSta.setWrkNo(Long.valueOf(command.getTaskNo1())); + wrkMastSta.setWrkNo2(Long.valueOf(command.getTaskNo2())); + wrkMastSta.setWrkStart(command.getSourceStaNo1().intValue()); + wrkMastSta.setWrkEnd(command.getDestinationStaNo1().intValue()); + wrkMastSta.setStaStart(command.getSourceStaNo2().intValue()); + wrkMastSta.setStaEnd(command.getDestinationStaNo2().intValue()); + wrkMastSta.setWrkSts(1); + Date now = new Date(); + wrkMastSta.setCreateTime(now); + wrkMastSta.setUpdateTime(now); + wrkMastSta.setWrkCrn(command.getRgvNo()); + wrkMastSta.setWrkType(command.getTaskMode().intValue()); + return wrkMastStaService.insert(wrkMastSta); + } + } diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java index 5f9b639..ba5c3e0 100644 --- a/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java @@ -9,4 +9,13 @@ @Service("wrkMastStaService") public class WrkMastStaServiceImpl extends ServiceImpl<WrkMastStaMapper, WrkMastSta> implements WrkMastStaService { + @Override + public WrkMastSta selectByRgvNoandWrkNo(Integer rgvNo, Integer taskNo1) { + return this.baseMapper.selectByRgvNoandWrkNo(rgvNo,taskNo1); + } + + @Override + public WrkMastSta selectByRgvNoandWrkNo2(Integer rgvNo, Integer taskNo2) { + return this.baseMapper.selectByRgvNoandWrkNo2(rgvNo,taskNo2); + } } diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java index 141b18a..2281702 100644 --- a/src/main/java/com/zy/asrs/utils/Utils.java +++ b/src/main/java/com/zy/asrs/utils/Utils.java @@ -17,9 +17,14 @@ private static final DecimalFormat fmt = new DecimalFormat("##0.00"); - public static short getRgvEndStaNo(Integer rgvNo,Integer staNo){ + public static short getRgvStaNo(Integer rgvNo,Integer staNo){ Map<Integer, Short> rgv1Map = new HashMap<>(); Map<Integer, Short> rgv2Map = new HashMap<>(); + rgv2Map.put(4007, (short) 1);rgv2Map.put(4001, (short) 2); + rgv2Map.put(2003, (short) 3);rgv2Map.put(2103, (short) 4); + rgv2Map.put(4016, (short) 5);rgv2Map.put(4010, (short) 6); + rgv2Map.put(2301, (short) 7);rgv2Map.put(2002, (short) 8); + rgv2Map.put(2001, (short) 9); Map<Integer, Short> rgv3Map = new HashMap<>(); switch (rgvNo){ case 1: @@ -32,6 +37,22 @@ return 0; } + public static short getRgvEndStaNo(Integer rgvNo,Integer staNo){ + Map<Integer, Integer> rgv1Map = new HashMap<>(); + Map<Integer, Integer> rgv2Map = new HashMap<>(); + rgv2Map.put(4007,2103); + Map<Integer, Integer> rgv3Map = new HashMap<>(); + switch (rgvNo){ + case 1: + return getRgvStaNo(rgvNo,rgv1Map.get(staNo)); + case 2: + return getRgvStaNo(rgvNo,rgv2Map.get(staNo)); + case 3: + return getRgvStaNo(rgvNo,rgv3Map.get(staNo)); + } + return 0; + } + public static float scale(Float f){ if (f == null || f == 0f || Float.isNaN(f)) { return 0f; diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 497dc9c..5343a4f 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -67,12 +67,12 @@ mainService.autoEmptyOut(); //浜屾湡 - //绌烘《搴撲换鍔$敓鎴� - mainService.crn5TaskCreate(); - //绌烘《搴撳叆搴� - mainService.crn5InTask(); - //绌烘《鍑哄簱瀹屾垚 - mainService.crn5StnToOutStn(); +// //绌烘《搴撲换鍔$敓鎴� +// mainService.crn5TaskCreate(); +// //绌烘《搴撳叆搴� +// mainService.crn5InTask(); +// //绌烘《鍑哄簱瀹屾垚 +// mainService.crn5StnToOutStn(); //rgv浠诲姟 mainService.RGVTaskPut(); //rgv浠诲姟瀹屾垚 diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 70a9ffa..81e9870 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -63,9 +63,7 @@ }}; public static final ArrayList<Integer> staNos4 = new ArrayList<Integer>() {{ - add(3001);add(3002);add(3003);add(3004);add(3005); - add(3006);add(3007);add(3008);add(3009);add(3010); - add(3011);add(3012); + add(4007); }}; public static final ArrayList<Integer> staNos5 = new ArrayList<Integer>() {{ @@ -205,10 +203,14 @@ switch (step) { // 璇绘暟鎹� case 1: - if (slave.getId() ==3){ - read30(); - }else { - read(); + switch (slave.getId()){ + case 1: + case 2: + read();break; + case 3: + read30();break; + case 4: + read33();break; } break; @@ -417,6 +419,65 @@ } } + private void read33() throws InterruptedException { + ArrayList<Integer> staNos = getStaNo(); + int staNoSize = staNos.size(); + OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size() * 8)); + + result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size()*6)); + if (result.IsSuccess) { + for (int i = 0; i < staNoSize; i++) { + Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 + boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*4, 1); + short tongType = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 2); + short matnr = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 4); + StaProtocol staProtocol = station.get(siteId); + if (null == staProtocol) { + staProtocol = new StaProtocol(); + staProtocol.setSiteId(siteId); + station.put(siteId, staProtocol); + } + staProtocol.setAutoing(status[0]); // 鑷姩 + staProtocol.setLoading(status[1]); // 鏈夌墿 + staProtocol.setInEnable(status[2]); // 鍙叆 + staProtocol.setAmount(matnr); + + + + if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { + staProtocol.setPakMk(true); + } + } + } + + if (result.IsSuccess) { + + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); + + // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� + try { + List<BasDevp> basDevps = new ArrayList<>(); + for (Integer siteId : staNos) { + StaProtocol staProtocol = station.get(siteId); + basDevps.add(staProtocol.toSqlModel()); + } + + BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class); + if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) { + throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�"); + } + } catch (Exception e) { + e.printStackTrace(); + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戞洿鏂版暟鎹簱鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); + log.error("鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); + } + + } else { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣鍙栬緭閫佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); +// log.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); + } + } + /** * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏� */ diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3b07a94..ea37b45 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -8,7 +8,7 @@ name: @pom.build.finalName@ datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - url: jdbc:sqlserver://10.10.10.212:1433;databasename=mdqdasrs + url: jdbc:sqlserver://127.0.0.1:1433;databasename=mdqdasrs username: sa password: sa@123 mvc: @@ -34,7 +34,7 @@ enable: false wms: - url: localhost:8082/mdqdwms + url: localhost:8080/mdqdwms # 涓嬩綅鏈洪厤缃� wcs-slave: @@ -47,7 +47,7 @@ # 鍫嗗灈鏈�1 crn[0]: id: 1 - ip: 10.10.10.100 + ip: 10.10.10.200 port: 102 rack: 0 slot: 0 @@ -85,7 +85,7 @@ # 鍫嗗灈鏈�2 crn[1]: id: 2 - ip: 10.10.10.110 + ip: 10.10.10.201 port: 102 rack: 0 slot: 0 @@ -248,7 +248,7 @@ # slot: 0 # # RGV1 rgv[0]: - id: 1 + id: 2 ip: 10.10.10.130 port: 102 rack: 0 @@ -259,8 +259,8 @@ staNo: 2103 staPlcId: 2 outStn[0]: - sourceStaNo: 4007 - sourcePlcId: 4 + staNo: 2103 + staPlcId: 2 # # RGV2 # rgv[1]: # id: 2 diff --git a/src/main/resources/mapper/WrkMastStaMapper.xml b/src/main/resources/mapper/WrkMastStaMapper.xml index d96f72d..cb23804 100644 --- a/src/main/resources/mapper/WrkMastStaMapper.xml +++ b/src/main/resources/mapper/WrkMastStaMapper.xml @@ -18,7 +18,16 @@ <result column="wrk_type" property="wrkType" /> <result column="bign_time" property="bignTime" /> <result column="wrk_crn" property="wrkCrn" /> + <result column="wrk_no2" property="wrkNo2"/> </resultMap> + <select id="selectByRgvNoandWrkNo" resultMap="BaseResultMap"> + select * from asr_wrk_mast_sta + where wrk_crn = #{rgvNo} and wrk_no = #{taskNo} and wrk_sts = 1 + </select> + <select id="selectByRgvNoandWrkNo2" resultMap="BaseResultMap"> + select * from asr_wrk_mast_sta + where wrk_crn = #{rgvNo} and wrk_no2 = #{taskNo2} and wrk_sts = 1 + </select> </mapper> diff --git a/src/main/webapp/static/images/RMLogo.png b/src/main/webapp/static/images/RMLogo.png new file mode 100644 index 0000000..a295a8d --- /dev/null +++ b/src/main/webapp/static/images/RMLogo.png Binary files differ diff --git a/src/main/webapp/views/console-old.html b/src/main/webapp/views/console-old.html index 517a858..aa40e1e 100644 --- a/src/main/webapp/views/console-old.html +++ b/src/main/webapp/views/console-old.html @@ -22,7 +22,7 @@ <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6> </div> <div class="head-right"> - <img src="../static/images/zy-logo1.png" alt="涓壃" height="44" width="80"> + <img src="../static/images/RMLogo.png" alt="娑︾編" height="44"> </div> </div> diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html index 6b04d76..9edf168 100644 --- a/src/main/webapp/views/console.html +++ b/src/main/webapp/views/console.html @@ -21,7 +21,7 @@ <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6> </div> <div class="head-right"> - <img src="../static/images/zy-logo.png" alt="涓壃" height="44" width="80"> + <img src="../static/images/RMLogo.png" alt="娑︾編" height="44"> </div> </div> <div style="width: 1000px;height: 800px;overflow: hidden"> diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html index fba5381..842f38e 100644 --- a/src/main/webapp/views/index.html +++ b/src/main/webapp/views/index.html @@ -27,7 +27,7 @@ <!-- 涓讳綋鍐呭 --> <iframe id="content" src="console.html"></iframe> <footer class="footer"> - Copyright 漏 2015 All Rights Reserved. <a href="http://www.zoneyung.com" target="_blank">绫冲</a> 淇濈暀鎵�鏈夋潈鍒� + Copyright 漏 2020 All Rights Reserved. <a href="http://www.lubmate.com/" target="_blank">涓娑︾編(闈掑矝)</a> 淇濈暀鎵�鏈夋潈鍒� </footer> </body> <script> -- Gitblit v1.9.1