diff --git a/ym-packing/src/main/java/com/cnbm/dispatch/KukaJoinThread.java b/ym-packing/src/main/java/com/cnbm/dispatch/KukaJoinThread.java index bf0016a..b9f45e9 100644 --- a/ym-packing/src/main/java/com/cnbm/dispatch/KukaJoinThread.java +++ b/ym-packing/src/main/java/com/cnbm/dispatch/KukaJoinThread.java @@ -7,6 +7,10 @@ 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.dto.CamlineExtendArgDTO; +import com.cnbm.packing.entity.WoPackagingBox; +import com.cnbm.packing.entity.WoPackagingBoxSubstrate; +import com.cnbm.packing.entity.WoPowerLevel; import com.cnbm.packing.service.*; import com.cnbm.s7.s7connector.enmuc.S7Client; import com.cnbm.s7.s7connector.type.PlcVar; @@ -18,6 +22,8 @@ import org.springframework.boot.ApplicationRunner; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; +import java.time.LocalDateTime; +import java.util.Arrays; import java.util.Date; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -150,199 +156,191 @@ public class KukaJoinThread implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { -// kukaStep1.scheduleAtFixedRate(new Runnable() { -// @Override -// public void run() { + kukaStep1.scheduleAtFixedRate(new Runnable() { + @Override + public void run() { + //调度开始 +// logger.info(""); // 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().ok(service.getExtendArgFromCamline(subId.toString()).toString()); } + 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 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 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); + } + } + } diff --git a/ym-s7/src/main/java/com/cnbm/s7/s7connector/enmuc/S7Client.java b/ym-s7/src/main/java/com/cnbm/s7/s7connector/enmuc/S7Client.java index e2b60ac..6c32fd8 100644 --- a/ym-s7/src/main/java/com/cnbm/s7/s7connector/enmuc/S7Client.java +++ b/ym-s7/src/main/java/com/cnbm/s7/s7connector/enmuc/S7Client.java @@ -178,7 +178,7 @@ public enum S7Client { ); return type.toObject(read); } - }catch (Exception e) { + }catch (Throwable e) { throw new S7CheckResultException("read errMsg : "+e.getMessage()); } @@ -293,7 +293,7 @@ public enum S7Client { ); } return null; - }catch (Exception e) { + }catch (Throwable e) { throw new S7CheckResultException("write errMsg : "+e.getMessage()); } },