mark
This commit is contained in:
		
							
								
								
									
										430
									
								
								ym-packing/src/main/java/com/cnbm/dispatch/KukaJoinThread.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										430
									
								
								ym-packing/src/main/java/com/cnbm/dispatch/KukaJoinThread.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,430 @@ | ||||
| package com.cnbm.dispatch; | ||||
|  | ||||
| import cn.hutool.core.date.DateUtil; | ||||
| import com.cnbm.dispatch.enums.kuka.step1.Step1Mes2PlcVar; | ||||
| import com.cnbm.dispatch.enums.kuka.step1.Step1Plc2MesVar; | ||||
| import com.cnbm.dispatch.enums.kuka.step2.Step2Mes2PlcVar; | ||||
| import com.cnbm.dispatch.enums.kuka.step2.Step2Plc2MesVar; | ||||
| import com.cnbm.dispatch.enums.kuka.step3.Step3Mes2PlcVar; | ||||
| import com.cnbm.dispatch.enums.kuka.step3.Step3Plc2MesVar; | ||||
| import com.cnbm.packing.service.*; | ||||
| import com.cnbm.s7.s7connector.enmuc.S7Client; | ||||
| import com.cnbm.s7.s7connector.type.PlcVar; | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.boot.ApplicationArguments; | ||||
| import org.springframework.boot.ApplicationRunner; | ||||
| import org.springframework.core.annotation.Order; | ||||
| import org.springframework.stereotype.Component; | ||||
|  | ||||
| import java.util.Date; | ||||
| import java.util.concurrent.Executors; | ||||
| import java.util.concurrent.ScheduledExecutorService; | ||||
| import java.util.concurrent.TimeUnit; | ||||
|  | ||||
| /** | ||||
|  * @Desc: "" | ||||
|  * @Author: caixiang | ||||
|  * @DATE: 2022/12/23 12:33 | ||||
|  */ | ||||
| @Component | ||||
| @Order(value = 1) | ||||
| public class KukaJoinThread implements ApplicationRunner { | ||||
|     private static final Logger logger = LoggerFactory.getLogger(KukaJoinThread.class); | ||||
|  | ||||
|     @Autowired | ||||
|     DynamicDataSourceService service; | ||||
|     @Autowired | ||||
|     WoPowerLevelServiceBiz levelServiceBiz; | ||||
|  | ||||
|     @Autowired | ||||
|     WoCompensationPowerServiceBiz compensationPowerServiceBiz; | ||||
|  | ||||
|     @Autowired | ||||
|     WoPackagingBoxSubstrateServiceBiz substrateServiceBiz; | ||||
|  | ||||
|     @Autowired | ||||
|     WoPackagingBoxServiceBiz boxServiceBiz; | ||||
|  | ||||
|     public KukaJoinThread(){ | ||||
|         this.kukaStep1 = Executors.newScheduledThreadPool(1); | ||||
|         this.kukaStep2 = Executors.newScheduledThreadPool(1); | ||||
|         this.kukaStep3 = Executors.newScheduledThreadPool(1); | ||||
|     } | ||||
|  | ||||
|     private ScheduledExecutorService kukaStep1; | ||||
|     private ScheduledExecutorService kukaStep2; | ||||
|     private ScheduledExecutorService kukaStep3; | ||||
|  | ||||
|  | ||||
|  | ||||
|     /** | ||||
|      * return | ||||
|      *          成功: 返回相应的object对象 | ||||
|      *          失败: 返回null | ||||
|      * */ | ||||
|     private Object read(S7Client s7Client,Step1Plc2MesVar var) { | ||||
|         try { | ||||
|             return s7Client.read(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getLength(), var.getStrSize(), var.getType()); | ||||
|         }catch (Exception e){ | ||||
|             logger.error("host:"+s7Client.getHost()+" ; read 操作出现问题: "+e.getMessage()); | ||||
|             e.printStackTrace(); | ||||
|             return null; | ||||
|         } | ||||
|     } | ||||
|     private void write(S7Client s7Client, Step1Mes2PlcVar var, Object newValue) { | ||||
|         if(var.getType().equals(PlcVar.STRING_Array)){ | ||||
|             String[] s = (String[])newValue; | ||||
|             String[] ss = (String[])newValue; | ||||
|             if(s.length > var.getLength() ){ | ||||
|                 ss = new String[var.getLength()]; | ||||
|                 for(int i=0;i< var.getLength();i++){ | ||||
|                     ss[i] = s[i]; | ||||
|                 } | ||||
|             } | ||||
|             s7Client.write(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getStrSize(), var.getType(),ss); | ||||
|         }else { | ||||
|             s7Client.write(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getStrSize(), var.getType(),newValue); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private Object read(S7Client s7Client, Step2Plc2MesVar var) { | ||||
|         try { | ||||
|             return s7Client.read(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getLength(), var.getStrSize(), var.getType()); | ||||
|         }catch (Exception e){ | ||||
|             logger.error("host:"+s7Client.getHost()+" ; read 操作出现问题: "+e.getMessage()); | ||||
|             e.printStackTrace(); | ||||
|             return null; | ||||
|         } | ||||
|     } | ||||
|     private void write(S7Client s7Client, Step2Mes2PlcVar var, Object newValue) { | ||||
|         if(var.getType().equals(PlcVar.STRING_Array)){ | ||||
|             String[] s = (String[])newValue; | ||||
|             String[] ss = (String[])newValue; | ||||
|             if(s.length > var.getLength() ){ | ||||
|                 ss = new String[var.getLength()]; | ||||
|                 for(int i=0;i< var.getLength();i++){ | ||||
|                     ss[i] = s[i]; | ||||
|                 } | ||||
|             } | ||||
|             s7Client.write(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getStrSize(), var.getType(),ss); | ||||
|         }else { | ||||
|             s7Client.write(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getStrSize(), var.getType(),newValue); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private Object read(S7Client s7Client, Step3Plc2MesVar var) { | ||||
|         try { | ||||
|             return s7Client.read(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getLength(), var.getStrSize(), var.getType()); | ||||
|         }catch (Exception e){ | ||||
|             logger.error("host:"+s7Client.getHost()+" ; read 操作出现问题: "+e.getMessage()); | ||||
|             e.printStackTrace(); | ||||
|             return null; | ||||
|         } | ||||
|     } | ||||
|     private void write(S7Client s7Client, Step3Mes2PlcVar var, Object newValue) { | ||||
|         if(var.getType().equals(PlcVar.STRING_Array)){ | ||||
|             String[] s = (String[])newValue; | ||||
|             String[] ss = (String[])newValue; | ||||
|             if(s.length > var.getLength() ){ | ||||
|                 ss = new String[var.getLength()]; | ||||
|                 for(int i=0;i< var.getLength();i++){ | ||||
|                     ss[i] = s[i]; | ||||
|                 } | ||||
|             } | ||||
|             s7Client.write(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getStrSize(), var.getType(),ss); | ||||
|         }else { | ||||
|             s7Client.write(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getStrSize(), var.getType(),newValue); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|  | ||||
|     public String getBoxId(String sapMaterial){ | ||||
|         Integer todayBoxNum = service.getTodayBoxNum(); | ||||
|         String nowTime = DateUtil.format(new Date(), "yyMMdd"); | ||||
|         String res = "301"+sapMaterial+nowTime+todayBoxNum; | ||||
|         return res; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void run(ApplicationArguments args) throws Exception { | ||||
|  | ||||
|         kukaStep1.scheduleAtFixedRate(new Runnable() { | ||||
|             @Override | ||||
|             public void run() { | ||||
|                 logger.info("=================  现在开始执行 过程一 任务   =================="); | ||||
|             } | ||||
|         },1,1, TimeUnit.SECONDS); | ||||
|  | ||||
|  | ||||
|  | ||||
| //        kukaStep1.scheduleAtFixedRate(new Runnable() { | ||||
| //            @Override | ||||
| //            public void run() { | ||||
| //                //调度开始 | ||||
| ////                logger.info(""); | ||||
| ////                logger.info("=================  现在开始执行 过程一 任务   =================="); | ||||
| //                Integer subArrived = waitingForTarget(Step1Plc2MesVar.SubArrivedToMes, true); | ||||
| //                if(subArrived != 1){ | ||||
| //                    logger.info("失败"+" --- "+" MES监听 Step1Plc2MesVar.SubArrivedToMes 是否 等于 1 失败"); | ||||
| //                } | ||||
| // | ||||
| //                //一. 从plc 中获取 subId 和 lineNum | ||||
| //                String subId = (String) read(S7Client.S7_KUKA,Step1Plc2MesVar.SubIdToMes); | ||||
| //                Integer lineNum = (Integer) read(S7Client.S7_KUKA,Step1Plc2MesVar.LineNum); | ||||
| //                logger.info("采集到 基板ID: "+subId+", 线边号:"+lineNum); | ||||
| // | ||||
| //                //二. MES 业务 | ||||
| //                //===============           MES 业务 开始         ================= | ||||
| //                //1. 从comline数据库中获取 实际pmpp | ||||
| //                float pmppBySubId = service.getPMPPBySubId(subId); | ||||
| //                //2. 匹配和计算补偿功率 | ||||
| //                float actualPMPP = compensationPowerServiceBiz.calculCompensationPMPP(pmppBySubId,lineNum); | ||||
| //                //3. 依据补偿功率,获取工艺参数,并且把这些工艺参数传给kuka | ||||
| //                WoPowerLevel argByPMPP = levelServiceBiz.getArgByPMPP(actualPMPP, lineNum); | ||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Pnom,Integer.valueOf(argByPMPP.getPowerClass())); | ||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Voc,argByPMPP.getLableVoc()); | ||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Isc,argByPMPP.getLableIsc()); | ||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Vmpp,argByPMPP.getLableVmpp()); | ||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Impp,argByPMPP.getLableImpp()); | ||||
| // | ||||
| // | ||||
| // | ||||
| //                //4. 把基板录到数据库 | ||||
| //                WoPackagingBoxSubstrate woPackagingBoxSubstrate = new WoPackagingBoxSubstrate(); | ||||
| //                woPackagingBoxSubstrate.setLineBody(lineNum); | ||||
| //                woPackagingBoxSubstrate.setPowerLevel(argByPMPP.getPowerClass()); | ||||
| //                woPackagingBoxSubstrate.setSapMaterial(argByPMPP.getSapMaterialNum()); | ||||
| //                woPackagingBoxSubstrate.setWoSubstrateId(subId); | ||||
| // | ||||
| //                //5. 从camline那里获取可变字段 | ||||
| //                CamlineExtendArgDTO extendArgFromCamline = service.getExtendArgFromCamline(subId); | ||||
| //                woPackagingBoxSubstrate.setLastUpdateTime(extendArgFromCamline.getLastUpdateTime()); | ||||
| //                woPackagingBoxSubstrate.setPmpp(actualPMPP); | ||||
| //                woPackagingBoxSubstrate.setOrderName(extendArgFromCamline.getOrderName()); | ||||
| //                woPackagingBoxSubstrate.setBinclassFl1(extendArgFromCamline.getBinclassFl1()); | ||||
| //                woPackagingBoxSubstrate.setBinclassFl2(extendArgFromCamline.getBinclassFl2()); | ||||
| //                woPackagingBoxSubstrate.setEtaFl1(extendArgFromCamline.getEtaFl1()); | ||||
| //                woPackagingBoxSubstrate.setEtaFl2(extendArgFromCamline.getEtaFl2()); | ||||
| //                woPackagingBoxSubstrate.setFfFl1(extendArgFromCamline.getFfFl1()); | ||||
| //                woPackagingBoxSubstrate.setFfFl2(extendArgFromCamline.getFfFl2()); | ||||
| //                woPackagingBoxSubstrate.setImppFl1(extendArgFromCamline.getImppFl1()); | ||||
| //                woPackagingBoxSubstrate.setImppFl2(extendArgFromCamline.getImppFl2()); | ||||
| //                woPackagingBoxSubstrate.setInsolflashcontrolFl1(extendArgFromCamline.getInsolflashcontrolFl1()); | ||||
| //                woPackagingBoxSubstrate.setInsolflashcontrolFl2(extendArgFromCamline.getInsolflashcontrolFl2()); | ||||
| //                woPackagingBoxSubstrate.setInsolmppFl1(extendArgFromCamline.getInsolmppFl1()); | ||||
| //                woPackagingBoxSubstrate.setInsolmppFl2(extendArgFromCamline.getInsolmppFl2()); | ||||
| //                woPackagingBoxSubstrate.setInsolvocFl1(extendArgFromCamline.getInsolvocFl1()); | ||||
| //                woPackagingBoxSubstrate.setInsolvocFl2(extendArgFromCamline.getInsolvocFl2()); | ||||
| //                woPackagingBoxSubstrate.setInsolFl1(extendArgFromCamline.getInsolFl1()); | ||||
| //                woPackagingBoxSubstrate.setInsolFl2(extendArgFromCamline.getInsolFl2()); | ||||
| //                woPackagingBoxSubstrate.setIscFl1(extendArgFromCamline.getIscFl1()); | ||||
| //                woPackagingBoxSubstrate.setIscFl2(extendArgFromCamline.getIscFl2()); | ||||
| //                woPackagingBoxSubstrate.setMeasTimeFl1(extendArgFromCamline.getMeasTimeFl1()); | ||||
| //                woPackagingBoxSubstrate.setMeasTimeFl2(extendArgFromCamline.getMeasTimeFl2()); | ||||
| //                woPackagingBoxSubstrate.setPmppFl1(extendArgFromCamline.getPmppFl1()); | ||||
| //                woPackagingBoxSubstrate.setPmppFl2(extendArgFromCamline.getPmppFl2()); | ||||
| //                woPackagingBoxSubstrate.setTcellFl1(extendArgFromCamline.getTcellFl1()); | ||||
| //                woPackagingBoxSubstrate.setTcellFl2(extendArgFromCamline.getTcellFl2()); | ||||
| //                woPackagingBoxSubstrate.setTmonicellFl1(extendArgFromCamline.getTmonicellFl1()); | ||||
| //                woPackagingBoxSubstrate.setTmonicellFl2(extendArgFromCamline.getTmonicellFl2()); | ||||
| //                woPackagingBoxSubstrate.setUmppFl1(extendArgFromCamline.getUmppFl1()); | ||||
| //                woPackagingBoxSubstrate.setUmppFl2(extendArgFromCamline.getUmppFl2()); | ||||
| //                woPackagingBoxSubstrate.setUocFl1(extendArgFromCamline.getUocFl1()); | ||||
| //                woPackagingBoxSubstrate.setUocFl1(extendArgFromCamline.getUocFl2()); | ||||
| // | ||||
| //                substrateServiceBiz.insert(woPackagingBoxSubstrate); | ||||
| //                //===============           MES 业务 结束         ================= | ||||
| // | ||||
| //                //三. 当MES完成任务后,把MesToPlc.SubArrivedFinish变量置为true,告诉plc,我操作完成了 | ||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.SubArrivedFinish,true); | ||||
| // | ||||
| //                //四. mes 监控 到PlcToMes.SubArrived==false,就把MesToPlc.SubArrivedFinish置为false | ||||
| //                Integer subArrived2 = waitingForTarget(Step1Plc2MesVar.SubArrivedToMes, false); | ||||
| //                if(subArrived2 != 1){ | ||||
| //                    logger.info("失败"+" --- "+"MES监听 Step1Plc2MesVar.SubArrivedToMes 是否 等于 1 失败"); | ||||
| //                } | ||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.SubArrivedFinish,false); | ||||
| //            } | ||||
| //        },1,1, TimeUnit.SECONDS); | ||||
| // | ||||
| // | ||||
| //        kukaStep2.scheduleAtFixedRate(new Runnable() { | ||||
| //            @Override | ||||
| //            public void run() { | ||||
| //                //调度开始 | ||||
| // | ||||
| //                Integer shelfIsFull = waitingForTarget(Step2Plc2MesVar.ShelfIsFull, true); | ||||
| //                if(shelfIsFull != 1){ | ||||
| //                    logger.info("失败"+" --- "+"MES监听 Step2Plc2MesVar.ShelfIsFull 是否 等于 1 失败"); | ||||
| //                } | ||||
| // | ||||
| //                //一. 从plc 中获取 subIdList 和 lineNum | ||||
| //                String[] subIdList = (String[])read(S7Client.S7_KUKA,Step2Plc2MesVar.SubIdList); | ||||
| ////                Integer lineNum = (Integer) read(S7Client.S7_KUKA,Step2Plc2MesVar.LineNum); | ||||
| //                logger.info("获取到基板列表:"+ Arrays.toString(subIdList)); | ||||
| // | ||||
| //                //二. MES 业务 | ||||
| //                //===============           MES 业务 开始         ================= | ||||
| //                //1.MES 生成BoxId | ||||
| //                if(subIdList.length<=0){ | ||||
| //                    logger.info("失败"+" --- "+"从plc里面获取到的基板列表 为空"); | ||||
| //                } | ||||
| //                WoPackagingBoxSubstrate bySubId = substrateServiceBiz.getBySubId(subIdList[0]); | ||||
| //                String boxId = getBoxId(bySubId.getSapMaterial()); | ||||
| //                logger.info("mes 生成的boxId :"+ boxId); | ||||
| //                //2. 依次update 基板表,把boxId 赋予这些基板 | ||||
| //                for(int i=0;i<subIdList.length;i++){ | ||||
| //                    substrateServiceBiz.updatePackagingBoxIdByWoSubstrateId(boxId,subIdList[i]); | ||||
| //                } | ||||
| //                //3.去camline数据库 查询此基板ID 对应的订单 | ||||
| //                String orderNameBySubId = service.getOrderNameBySubId(subIdList[0]); | ||||
| //                //4. box信息录入到box表 | ||||
| //                WoPackagingBox woPackagingBox = new WoPackagingBox(); | ||||
| //                woPackagingBox.setBoxNo(boxId); | ||||
| //                woPackagingBox.setPackagingTime(LocalDateTime.now()); | ||||
| //                woPackagingBox.setPowerLevel(bySubId.getPowerLevel()); | ||||
| //                woPackagingBox.setLineBody(bySubId.getLineBody()); | ||||
| //                woPackagingBox.setSapMaterial(bySubId.getSapMaterial()); | ||||
| //                woPackagingBox.setOrderNum(orderNameBySubId); | ||||
| //                //1-手动模式,2-自动模式 | ||||
| //                woPackagingBox.setModel(2); | ||||
| //                boxServiceBiz.insert(woPackagingBox); | ||||
| //                //===============           MES 业务 结束         ================= | ||||
| // | ||||
| //                //三. 把生成的BoxId 告诉kuka | ||||
| //                write(S7Client.S7_KUKA,Step2Mes2PlcVar.BoxId,boxId); | ||||
| // | ||||
| //                //四. 当MES完成任务后,把MesToPlc.ShelfIsFullFinish变量置为true,告诉plc,我操作完成了 | ||||
| //                write(S7Client.S7_KUKA,Step2Mes2PlcVar.ShelfIsFullFinish,true); | ||||
| // | ||||
| //                //四. mes 监控 到PlcToMes.SubArrived==false,就把MesToPlc.SubArrivedFinish置为false | ||||
| //                Integer subArrived2 = waitingForTarget(Step2Plc2MesVar.ShelfIsFull, false); | ||||
| //                if(subArrived2 != 1){ | ||||
| //                    logger.info("失败"+" --- "+"步骤1.  MES监听 Step1Plc2MesVar.SubArrivedToMes 是否 等于 1 失败"); | ||||
| //                } | ||||
| //                write(S7Client.S7_KUKA,Step2Mes2PlcVar.ShelfIsFullFinish,false); | ||||
| //            } | ||||
| //        },1,1, TimeUnit.SECONDS); | ||||
| // | ||||
| // | ||||
| //        kukaStep3.scheduleAtFixedRate(new Runnable() { | ||||
| //            @Override | ||||
| //            public void run() { | ||||
| //                //调度开始 | ||||
| //                Integer shelfIsFull = waitingForTarget(Step3Plc2MesVar.ShelfIsFullArrived, true); | ||||
| //                if(shelfIsFull != 1){ | ||||
| //                    logger.info("失败"+" --- "+"MES监听 Step3Plc2MesVar.ShelfIsFullArrived 是否 等于 1 失败"); | ||||
| //                } | ||||
| // | ||||
| //                //一. 从plc 中获取 subIdList 和 lineNum | ||||
| //                String boxId = (String)read(S7Client.S7_KUKA,Step3Plc2MesVar.BoxId); | ||||
| //                Integer lineNum = (Integer) read(S7Client.S7_KUKA,Step3Plc2MesVar.LineNum); | ||||
| //                logger.info("到达站台的boxId :"+boxId); | ||||
| // | ||||
| //                //二. MES 业务 | ||||
| //                //===============           MES 业务 开始         ================= | ||||
| //                //1. box信息录入到box表 | ||||
| //                boxServiceBiz.updateIsArrivedByBoxNo(1,boxId); | ||||
| //                //===============           MES 业务 结束         ================= | ||||
| // | ||||
| // | ||||
| //                //四. 当MES完成任务后,把MesToPlc.ShelfIsFullArrivedFinish变量置为true,告诉plc,我操作完成了 | ||||
| //                write(S7Client.S7_KUKA,Step3Mes2PlcVar.ShelfIsFullArrivedFinish,true); | ||||
| // | ||||
| //                //四. mes 监控 到PlcToMes.SubArrived==false,就把MesToPlc.SubArrivedFinish置为false | ||||
| //                Integer subArrived2 = waitingForTarget(Step3Plc2MesVar.ShelfIsFullArrived, false); | ||||
| //                if(subArrived2 != 1){ | ||||
| //                    logger.info("失败"+" --- "+"步骤1.  MES监听 Step3Plc2MesVar.ShelfIsFullArrived 是否 等于 1 失败"); | ||||
| //                } | ||||
| //                write(S7Client.S7_KUKA,Step3Mes2PlcVar.ShelfIsFullArrivedFinish,false); | ||||
| // | ||||
| // | ||||
| //            } | ||||
| //        },1,1, TimeUnit.SECONDS); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * | ||||
|      * arg: | ||||
|      *      Step1Plc2MesVar 参数类型 | ||||
|      *      targetValue        目的值 | ||||
|      * return: | ||||
|      *      2 s7 访问异常; | ||||
|      *      1 成功; | ||||
|      * */ | ||||
|     private Integer waitingForTarget(Step1Plc2MesVar var, Boolean targetValue) { | ||||
|         Integer res = 0; | ||||
|         while (true){ | ||||
|             try { | ||||
|                 Boolean now = (Boolean) read(S7Client.S7_KUKA,var); | ||||
|                 if(targetValue.equals(now)){ | ||||
|                     res = 1; | ||||
|                     break; | ||||
|                 } | ||||
|                 Thread.sleep(200); | ||||
|             }catch (Exception e){ | ||||
|                 logger.info("S7 数据采集 异常。"); | ||||
|                 res = 2; | ||||
|                 break; | ||||
|             } | ||||
|         } | ||||
|         return res; | ||||
|     } | ||||
|     /** | ||||
|      * | ||||
|      * arg: | ||||
|      *      Step2Plc2MesVar 参数类型 | ||||
|      *      targetValue        目的值 | ||||
|      * return: | ||||
|      *      2 s7 访问异常; | ||||
|      *      1 成功; | ||||
|      * */ | ||||
|     private Integer waitingForTarget(Step2Plc2MesVar var, Boolean targetValue) { | ||||
|         Integer res = 0; | ||||
|         while (true){ | ||||
|             try { | ||||
|                 Boolean now = (Boolean) read(S7Client.S7_KUKA,var); | ||||
|                 if(targetValue.equals(now)){ | ||||
|                     res = 1; | ||||
|                     break; | ||||
|                 } | ||||
|                 Thread.sleep(200); | ||||
|             }catch (Exception e){ | ||||
|                 logger.info("S7 数据采集 异常。"); | ||||
|                 res = 2; | ||||
|                 break; | ||||
|             } | ||||
|         } | ||||
|         return res; | ||||
|     } | ||||
|     /** | ||||
|      * | ||||
|      * arg: | ||||
|      *      Step3Plc2MesVar 参数类型 | ||||
|      *      targetValue        目的值 | ||||
|      * return: | ||||
|      *      2 s7 访问异常; | ||||
|      *      1 成功; | ||||
|      * */ | ||||
|     private Integer waitingForTarget(Step3Plc2MesVar var, Boolean targetValue) { | ||||
|         Integer res = 0; | ||||
|         while (true){ | ||||
|             try { | ||||
|                 Boolean now = (Boolean) read(S7Client.S7_KUKA,var); | ||||
|                 if(targetValue.equals(now)){ | ||||
|                     res = 1; | ||||
|                     break; | ||||
|                 } | ||||
|                 Thread.sleep(200); | ||||
|             }catch (Exception e){ | ||||
|                 logger.info("S7 数据采集 异常。"); | ||||
|                 res = 2; | ||||
|                 break; | ||||
|             } | ||||
|         } | ||||
|         return res; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user