commit
This commit is contained in:
		| @@ -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.step2.Step2Plc2MesVar; | ||||||
| import com.cnbm.dispatch.enums.kuka.step3.Step3Mes2PlcVar; | import com.cnbm.dispatch.enums.kuka.step3.Step3Mes2PlcVar; | ||||||
| import com.cnbm.dispatch.enums.kuka.step3.Step3Plc2MesVar; | 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.packing.service.*; | ||||||
| import com.cnbm.s7.s7connector.enmuc.S7Client; | import com.cnbm.s7.s7connector.enmuc.S7Client; | ||||||
| import com.cnbm.s7.s7connector.type.PlcVar; | 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.core.annotation.Order; | ||||||
| import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||||
|  |  | ||||||
|  | import java.time.LocalDateTime; | ||||||
|  | import java.util.Arrays; | ||||||
| import java.util.Date; | import java.util.Date; | ||||||
| import java.util.concurrent.Executors; | import java.util.concurrent.Executors; | ||||||
| import java.util.concurrent.ScheduledExecutorService; | import java.util.concurrent.ScheduledExecutorService; | ||||||
| @@ -150,199 +156,191 @@ public class KukaJoinThread implements ApplicationRunner { | |||||||
|     @Override |     @Override | ||||||
|     public void run(ApplicationArguments args) throws Exception { |     public void run(ApplicationArguments args) throws Exception { | ||||||
|  |  | ||||||
| //        kukaStep1.scheduleAtFixedRate(new Runnable() { |         kukaStep1.scheduleAtFixedRate(new Runnable() { | ||||||
| //            @Override |             @Override | ||||||
| //            public void run() { |             public void run() { | ||||||
|  |                 //调度开始 | ||||||
|  | //                logger.info(""); | ||||||
| //                logger.info("=================  现在开始执行 过程一 任务   =================="); | //                logger.info("=================  现在开始执行 过程一 任务   =================="); | ||||||
| //            } |                 Integer subArrived = waitingForTarget(Step1Plc2MesVar.SubArrivedToMes, true); | ||||||
| //        },1,1, TimeUnit.SECONDS); |                 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); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |                 //二. 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()); | ||||||
|  |                 logger.info("采集到 基板ID: "+subId+", 线边号:"+lineNum+",dLable_Pnom: "+argByPMPP.getPowerClass() +",dLable_Voc: "+argByPMPP.getLableVoc()+",dLable_Isc: "+argByPMPP.getLableIsc()+",dLable_Vmpp: "+argByPMPP.getLableVmpp()+",dLable_Impp: "+argByPMPP.getLableImpp()); | ||||||
|  |  | ||||||
| //        kukaStep1.scheduleAtFixedRate(new Runnable() { |  | ||||||
| //            @Override |                 //4. 把基板录到数据库 | ||||||
| //            public void run() { |                 WoPackagingBoxSubstrate woPackagingBoxSubstrate = new WoPackagingBoxSubstrate(); | ||||||
| //                //调度开始 |                 woPackagingBoxSubstrate.setLineBody(lineNum); | ||||||
| ////                logger.info(""); |                 woPackagingBoxSubstrate.setPowerLevel(argByPMPP.getPowerClass()); | ||||||
| ////                logger.info("=================  现在开始执行 过程一 任务   =================="); |                 woPackagingBoxSubstrate.setSapMaterial(argByPMPP.getSapMaterialNum()); | ||||||
| //                Integer subArrived = waitingForTarget(Step1Plc2MesVar.SubArrivedToMes, true); |                 woPackagingBoxSubstrate.setWoSubstrateId(subId); | ||||||
| //                if(subArrived != 1){ |  | ||||||
| //                    logger.info("失败"+" --- "+" MES监听 Step1Plc2MesVar.SubArrivedToMes 是否 等于 1 失败"); |                 //5. 从camline那里获取可变字段 | ||||||
| //                } |                 CamlineExtendArgDTO extendArgFromCamline = service.getExtendArgFromCamline(subId); | ||||||
| // |                 woPackagingBoxSubstrate.setLastUpdateTime(extendArgFromCamline.getLastUpdateTime()); | ||||||
| //                //一. 从plc 中获取 subId 和 lineNum |                 woPackagingBoxSubstrate.setPmpp(actualPMPP); | ||||||
| //                String subId = (String) read(S7Client.S7_KUKA,Step1Plc2MesVar.SubIdToMes); |                 woPackagingBoxSubstrate.setOrderName(extendArgFromCamline.getOrderName()); | ||||||
| //                Integer lineNum = (Integer) read(S7Client.S7_KUKA,Step1Plc2MesVar.LineNum); |                 woPackagingBoxSubstrate.setBinclassFl1(extendArgFromCamline.getBinclassFl1()); | ||||||
| //                logger.info("采集到 基板ID: "+subId+", 线边号:"+lineNum); |                 woPackagingBoxSubstrate.setBinclassFl2(extendArgFromCamline.getBinclassFl2()); | ||||||
| // |                 woPackagingBoxSubstrate.setEtaFl1(extendArgFromCamline.getEtaFl1()); | ||||||
| //                //二. MES 业务 |                 woPackagingBoxSubstrate.setEtaFl2(extendArgFromCamline.getEtaFl2()); | ||||||
| //                //===============           MES 业务 开始         ================= |                 woPackagingBoxSubstrate.setFfFl1(extendArgFromCamline.getFfFl1()); | ||||||
| //                //1. 从comline数据库中获取 实际pmpp |                 woPackagingBoxSubstrate.setFfFl2(extendArgFromCamline.getFfFl2()); | ||||||
| //                float pmppBySubId = service.getPMPPBySubId(subId); |                 woPackagingBoxSubstrate.setImppFl1(extendArgFromCamline.getImppFl1()); | ||||||
| //                //2. 匹配和计算补偿功率 |                 woPackagingBoxSubstrate.setImppFl2(extendArgFromCamline.getImppFl2()); | ||||||
| //                float actualPMPP = compensationPowerServiceBiz.calculCompensationPMPP(pmppBySubId,lineNum); |                 woPackagingBoxSubstrate.setInsolflashcontrolFl1(extendArgFromCamline.getInsolflashcontrolFl1()); | ||||||
| //                //3. 依据补偿功率,获取工艺参数,并且把这些工艺参数传给kuka |                 woPackagingBoxSubstrate.setInsolflashcontrolFl2(extendArgFromCamline.getInsolflashcontrolFl2()); | ||||||
| //                WoPowerLevel argByPMPP = levelServiceBiz.getArgByPMPP(actualPMPP, lineNum); |                 woPackagingBoxSubstrate.setInsolmppFl1(extendArgFromCamline.getInsolmppFl1()); | ||||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Pnom,Integer.valueOf(argByPMPP.getPowerClass())); |                 woPackagingBoxSubstrate.setInsolmppFl2(extendArgFromCamline.getInsolmppFl2()); | ||||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Voc,argByPMPP.getLableVoc()); |                 woPackagingBoxSubstrate.setInsolvocFl1(extendArgFromCamline.getInsolvocFl1()); | ||||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Isc,argByPMPP.getLableIsc()); |                 woPackagingBoxSubstrate.setInsolvocFl2(extendArgFromCamline.getInsolvocFl2()); | ||||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Vmpp,argByPMPP.getLableVmpp()); |                 woPackagingBoxSubstrate.setInsolFl1(extendArgFromCamline.getInsolFl1()); | ||||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Impp,argByPMPP.getLableImpp()); |                 woPackagingBoxSubstrate.setInsolFl2(extendArgFromCamline.getInsolFl2()); | ||||||
| // |                 woPackagingBoxSubstrate.setIscFl1(extendArgFromCamline.getIscFl1()); | ||||||
| // |                 woPackagingBoxSubstrate.setIscFl2(extendArgFromCamline.getIscFl2()); | ||||||
| // |                 woPackagingBoxSubstrate.setMeasTimeFl1(extendArgFromCamline.getMeasTimeFl1()); | ||||||
| //                //4. 把基板录到数据库 |                 woPackagingBoxSubstrate.setMeasTimeFl2(extendArgFromCamline.getMeasTimeFl2()); | ||||||
| //                WoPackagingBoxSubstrate woPackagingBoxSubstrate = new WoPackagingBoxSubstrate(); |                 woPackagingBoxSubstrate.setPmppFl1(extendArgFromCamline.getPmppFl1()); | ||||||
| //                woPackagingBoxSubstrate.setLineBody(lineNum); |                 woPackagingBoxSubstrate.setPmppFl2(extendArgFromCamline.getPmppFl2()); | ||||||
| //                woPackagingBoxSubstrate.setPowerLevel(argByPMPP.getPowerClass()); |                 woPackagingBoxSubstrate.setTcellFl1(extendArgFromCamline.getTcellFl1()); | ||||||
| //                woPackagingBoxSubstrate.setSapMaterial(argByPMPP.getSapMaterialNum()); |                 woPackagingBoxSubstrate.setTcellFl2(extendArgFromCamline.getTcellFl2()); | ||||||
| //                woPackagingBoxSubstrate.setWoSubstrateId(subId); |                 woPackagingBoxSubstrate.setTmonicellFl1(extendArgFromCamline.getTmonicellFl1()); | ||||||
| // |                 woPackagingBoxSubstrate.setTmonicellFl2(extendArgFromCamline.getTmonicellFl2()); | ||||||
| //                //5. 从camline那里获取可变字段 |                 woPackagingBoxSubstrate.setUmppFl1(extendArgFromCamline.getUmppFl1()); | ||||||
| //                CamlineExtendArgDTO extendArgFromCamline = service.getExtendArgFromCamline(subId); |                 woPackagingBoxSubstrate.setUmppFl2(extendArgFromCamline.getUmppFl2()); | ||||||
| //                woPackagingBoxSubstrate.setLastUpdateTime(extendArgFromCamline.getLastUpdateTime()); |                 woPackagingBoxSubstrate.setUocFl1(extendArgFromCamline.getUocFl1()); | ||||||
| //                woPackagingBoxSubstrate.setPmpp(actualPMPP); |                 woPackagingBoxSubstrate.setUocFl1(extendArgFromCamline.getUocFl2()); | ||||||
| //                woPackagingBoxSubstrate.setOrderName(extendArgFromCamline.getOrderName()); |  | ||||||
| //                woPackagingBoxSubstrate.setBinclassFl1(extendArgFromCamline.getBinclassFl1()); |                 substrateServiceBiz.insert(woPackagingBoxSubstrate); | ||||||
| //                woPackagingBoxSubstrate.setBinclassFl2(extendArgFromCamline.getBinclassFl2()); |                 //===============           MES 业务 结束         ================= | ||||||
| //                woPackagingBoxSubstrate.setEtaFl1(extendArgFromCamline.getEtaFl1()); |  | ||||||
| //                woPackagingBoxSubstrate.setEtaFl2(extendArgFromCamline.getEtaFl2()); |                 //三. 当MES完成任务后,把MesToPlc.SubArrivedFinish变量置为true,告诉plc,我操作完成了 | ||||||
| //                woPackagingBoxSubstrate.setFfFl1(extendArgFromCamline.getFfFl1()); |                 write(S7Client.S7_KUKA,Step1Mes2PlcVar.SubArrivedFinish,true); | ||||||
| //                woPackagingBoxSubstrate.setFfFl2(extendArgFromCamline.getFfFl2()); |  | ||||||
| //                woPackagingBoxSubstrate.setImppFl1(extendArgFromCamline.getImppFl1()); |                 //四. mes 监控 到PlcToMes.SubArrived==false,就把MesToPlc.SubArrivedFinish置为false | ||||||
| //                woPackagingBoxSubstrate.setImppFl2(extendArgFromCamline.getImppFl2()); |                 Integer subArrived2 = waitingForTarget(Step1Plc2MesVar.SubArrivedToMes, false); | ||||||
| //                woPackagingBoxSubstrate.setInsolflashcontrolFl1(extendArgFromCamline.getInsolflashcontrolFl1()); |                 if(subArrived2 != 1){ | ||||||
| //                woPackagingBoxSubstrate.setInsolflashcontrolFl2(extendArgFromCamline.getInsolflashcontrolFl2()); |                     logger.info("失败"+" --- "+"MES监听 Step1Plc2MesVar.SubArrivedToMes 是否 等于 1 失败"); | ||||||
| //                woPackagingBoxSubstrate.setInsolmppFl1(extendArgFromCamline.getInsolmppFl1()); |                 } | ||||||
| //                woPackagingBoxSubstrate.setInsolmppFl2(extendArgFromCamline.getInsolmppFl2()); |                 write(S7Client.S7_KUKA,Step1Mes2PlcVar.SubArrivedFinish,false); | ||||||
| //                woPackagingBoxSubstrate.setInsolvocFl1(extendArgFromCamline.getInsolvocFl1()); |             } | ||||||
| //                woPackagingBoxSubstrate.setInsolvocFl2(extendArgFromCamline.getInsolvocFl2()); |         },1,1, TimeUnit.SECONDS); | ||||||
| //                woPackagingBoxSubstrate.setInsolFl1(extendArgFromCamline.getInsolFl1()); |  | ||||||
| //                woPackagingBoxSubstrate.setInsolFl2(extendArgFromCamline.getInsolFl2()); |  | ||||||
| //                woPackagingBoxSubstrate.setIscFl1(extendArgFromCamline.getIscFl1()); |         kukaStep2.scheduleAtFixedRate(new Runnable() { | ||||||
| //                woPackagingBoxSubstrate.setIscFl2(extendArgFromCamline.getIscFl2()); |             @Override | ||||||
| //                woPackagingBoxSubstrate.setMeasTimeFl1(extendArgFromCamline.getMeasTimeFl1()); |             public void run() { | ||||||
| //                woPackagingBoxSubstrate.setMeasTimeFl2(extendArgFromCamline.getMeasTimeFl2()); |                 //调度开始 | ||||||
| //                woPackagingBoxSubstrate.setPmppFl1(extendArgFromCamline.getPmppFl1()); |  | ||||||
| //                woPackagingBoxSubstrate.setPmppFl2(extendArgFromCamline.getPmppFl2()); |                 Integer shelfIsFull = waitingForTarget(Step2Plc2MesVar.ShelfIsFull, true); | ||||||
| //                woPackagingBoxSubstrate.setTcellFl1(extendArgFromCamline.getTcellFl1()); |                 if(shelfIsFull != 1){ | ||||||
| //                woPackagingBoxSubstrate.setTcellFl2(extendArgFromCamline.getTcellFl2()); |                     logger.info("失败"+" --- "+"MES监听 Step2Plc2MesVar.ShelfIsFull 是否 等于 1 失败"); | ||||||
| //                woPackagingBoxSubstrate.setTmonicellFl1(extendArgFromCamline.getTmonicellFl1()); |                 } | ||||||
| //                woPackagingBoxSubstrate.setTmonicellFl2(extendArgFromCamline.getTmonicellFl2()); |  | ||||||
| //                woPackagingBoxSubstrate.setUmppFl1(extendArgFromCamline.getUmppFl1()); |                 //一. 从plc 中获取 subIdList 和 lineNum | ||||||
| //                woPackagingBoxSubstrate.setUmppFl2(extendArgFromCamline.getUmppFl2()); |                 String[] subIdList = (String[])read(S7Client.S7_KUKA,Step2Plc2MesVar.SubIdList); | ||||||
| //                woPackagingBoxSubstrate.setUocFl1(extendArgFromCamline.getUocFl1()); | //                Integer lineNum = (Integer) read(S7Client.S7_KUKA,Step2Plc2MesVar.LineNum); | ||||||
| //                woPackagingBoxSubstrate.setUocFl1(extendArgFromCamline.getUocFl2()); |                 logger.info("获取到基板列表:"+ Arrays.toString(subIdList)); | ||||||
| // |  | ||||||
| //                substrateServiceBiz.insert(woPackagingBoxSubstrate); |                 //二. MES 业务 | ||||||
| //                //===============           MES 业务 结束         ================= |                 //===============           MES 业务 开始         ================= | ||||||
| // |                 //1.MES 生成BoxId | ||||||
| //                //三. 当MES完成任务后,把MesToPlc.SubArrivedFinish变量置为true,告诉plc,我操作完成了 |                 if(subIdList.length<=0){ | ||||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.SubArrivedFinish,true); |                     logger.info("失败"+" --- "+"从plc里面获取到的基板列表 为空"); | ||||||
| // |                 } | ||||||
| //                //四. mes 监控 到PlcToMes.SubArrived==false,就把MesToPlc.SubArrivedFinish置为false |                 WoPackagingBoxSubstrate bySubId = substrateServiceBiz.getBySubId(subIdList[0]); | ||||||
| //                Integer subArrived2 = waitingForTarget(Step1Plc2MesVar.SubArrivedToMes, false); |                 String boxId = getBoxId(bySubId.getSapMaterial()); | ||||||
| //                if(subArrived2 != 1){ |                 logger.info("mes 生成的boxId :"+ boxId); | ||||||
| //                    logger.info("失败"+" --- "+"MES监听 Step1Plc2MesVar.SubArrivedToMes 是否 等于 1 失败"); |                 //2. 依次update 基板表,把boxId 赋予这些基板 | ||||||
| //                } |                 for(int i=0;i<subIdList.length;i++){ | ||||||
| //                write(S7Client.S7_KUKA,Step1Mes2PlcVar.SubArrivedFinish,false); |                     substrateServiceBiz.updatePackagingBoxIdByWoSubstrateId(boxId,subIdList[i]); | ||||||
| //            } |                 } | ||||||
| //        },1,1, TimeUnit.SECONDS); |                 //3.去camline数据库 查询此基板ID 对应的订单 | ||||||
| // |                 String orderNameBySubId = service.getOrderNameBySubId(subIdList[0]); | ||||||
| // |                 //4. box信息录入到box表 | ||||||
| //        kukaStep2.scheduleAtFixedRate(new Runnable() { |                 WoPackagingBox woPackagingBox = new WoPackagingBox(); | ||||||
| //            @Override |                 woPackagingBox.setBoxNo(boxId); | ||||||
| //            public void run() { |                 woPackagingBox.setPackagingTime(LocalDateTime.now()); | ||||||
| //                //调度开始 |                 woPackagingBox.setPowerLevel(bySubId.getPowerLevel()); | ||||||
| // |                 woPackagingBox.setLineBody(bySubId.getLineBody()); | ||||||
| //                Integer shelfIsFull = waitingForTarget(Step2Plc2MesVar.ShelfIsFull, true); |                 woPackagingBox.setSapMaterial(bySubId.getSapMaterial()); | ||||||
| //                if(shelfIsFull != 1){ |                 woPackagingBox.setOrderNum(orderNameBySubId); | ||||||
| //                    logger.info("失败"+" --- "+"MES监听 Step2Plc2MesVar.ShelfIsFull 是否 等于 1 失败"); |                 //1-手动模式,2-自动模式 | ||||||
| //                } |                 woPackagingBox.setModel(2); | ||||||
| // |                 woPackagingBox.setCreateTime(LocalDateTime.now()); | ||||||
| //                //一. 从plc 中获取 subIdList 和 lineNum |                 boxServiceBiz.insert(woPackagingBox); | ||||||
| //                String[] subIdList = (String[])read(S7Client.S7_KUKA,Step2Plc2MesVar.SubIdList); |                 //===============           MES 业务 结束         ================= | ||||||
| ////                Integer lineNum = (Integer) read(S7Client.S7_KUKA,Step2Plc2MesVar.LineNum); |  | ||||||
| //                logger.info("获取到基板列表:"+ Arrays.toString(subIdList)); |                 //三. 把生成的BoxId 告诉kuka | ||||||
| // |                 write(S7Client.S7_KUKA,Step2Mes2PlcVar.BoxId,boxId); | ||||||
| //                //二. MES 业务 |  | ||||||
| //                //===============           MES 业务 开始         ================= |                 //四. 当MES完成任务后,把MesToPlc.ShelfIsFullFinish变量置为true,告诉plc,我操作完成了 | ||||||
| //                //1.MES 生成BoxId |                 write(S7Client.S7_KUKA,Step2Mes2PlcVar.ShelfIsFullFinish,true); | ||||||
| //                if(subIdList.length<=0){ |  | ||||||
| //                    logger.info("失败"+" --- "+"从plc里面获取到的基板列表 为空"); |                 //四. mes 监控 到PlcToMes.SubArrived==false,就把MesToPlc.SubArrivedFinish置为false | ||||||
| //                } |                 Integer subArrived2 = waitingForTarget(Step2Plc2MesVar.ShelfIsFull, false); | ||||||
| //                WoPackagingBoxSubstrate bySubId = substrateServiceBiz.getBySubId(subIdList[0]); |                 if(subArrived2 != 1){ | ||||||
| //                String boxId = getBoxId(bySubId.getSapMaterial()); |                     logger.info("失败"+" --- "+"步骤1.  MES监听 Step1Plc2MesVar.SubArrivedToMes 是否 等于 1 失败"); | ||||||
| //                logger.info("mes 生成的boxId :"+ boxId); |                 } | ||||||
| //                //2. 依次update 基板表,把boxId 赋予这些基板 |                 write(S7Client.S7_KUKA,Step2Mes2PlcVar.ShelfIsFullFinish,false); | ||||||
| //                for(int i=0;i<subIdList.length;i++){ |             } | ||||||
| //                    substrateServiceBiz.updatePackagingBoxIdByWoSubstrateId(boxId,subIdList[i]); |         },1,1, TimeUnit.SECONDS); | ||||||
| //                } |  | ||||||
| //                //3.去camline数据库 查询此基板ID 对应的订单 |  | ||||||
| //                String orderNameBySubId = service.getOrderNameBySubId(subIdList[0]); |         kukaStep3.scheduleAtFixedRate(new Runnable() { | ||||||
| //                //4. box信息录入到box表 |             @Override | ||||||
| //                WoPackagingBox woPackagingBox = new WoPackagingBox(); |             public void run() { | ||||||
| //                woPackagingBox.setBoxNo(boxId); |                 //调度开始 | ||||||
| //                woPackagingBox.setPackagingTime(LocalDateTime.now()); |                 Integer shelfIsFull = waitingForTarget(Step3Plc2MesVar.ShelfIsFullArrived, true); | ||||||
| //                woPackagingBox.setPowerLevel(bySubId.getPowerLevel()); |                 if(shelfIsFull != 1){ | ||||||
| //                woPackagingBox.setLineBody(bySubId.getLineBody()); |                     logger.info("失败"+" --- "+"MES监听 Step3Plc2MesVar.ShelfIsFullArrived 是否 等于 1 失败"); | ||||||
| //                woPackagingBox.setSapMaterial(bySubId.getSapMaterial()); |                 } | ||||||
| //                woPackagingBox.setOrderNum(orderNameBySubId); |  | ||||||
| //                //1-手动模式,2-自动模式 |                 //一. 从plc 中获取 subIdList 和 lineNum | ||||||
| //                woPackagingBox.setModel(2); |                 String boxId = (String)read(S7Client.S7_KUKA,Step3Plc2MesVar.BoxId); | ||||||
| //                boxServiceBiz.insert(woPackagingBox); |                 Integer lineNum = (Integer) read(S7Client.S7_KUKA,Step3Plc2MesVar.LineNum); | ||||||
| //                //===============           MES 业务 结束         ================= |                 logger.info("到达站台的boxId :"+boxId); | ||||||
| // |  | ||||||
| //                //三. 把生成的BoxId 告诉kuka |                 //二. MES 业务 | ||||||
| //                write(S7Client.S7_KUKA,Step2Mes2PlcVar.BoxId,boxId); |                 //===============           MES 业务 开始         ================= | ||||||
| // |                 //1. box信息录入到box表 | ||||||
| //                //四. 当MES完成任务后,把MesToPlc.ShelfIsFullFinish变量置为true,告诉plc,我操作完成了 |                 boxServiceBiz.updateIsArrivedByBoxNo(1,boxId); | ||||||
| //                write(S7Client.S7_KUKA,Step2Mes2PlcVar.ShelfIsFullFinish,true); |                 //===============           MES 业务 结束         ================= | ||||||
| // |  | ||||||
| //                //四. mes 监控 到PlcToMes.SubArrived==false,就把MesToPlc.SubArrivedFinish置为false |  | ||||||
| //                Integer subArrived2 = waitingForTarget(Step2Plc2MesVar.ShelfIsFull, false); |                 //四. 当MES完成任务后,把MesToPlc.ShelfIsFullArrivedFinish变量置为true,告诉plc,我操作完成了 | ||||||
| //                if(subArrived2 != 1){ |                 write(S7Client.S7_KUKA,Step3Mes2PlcVar.ShelfIsFullArrivedFinish,true); | ||||||
| //                    logger.info("失败"+" --- "+"步骤1.  MES监听 Step1Plc2MesVar.SubArrivedToMes 是否 等于 1 失败"); |  | ||||||
| //                } |                 //四. mes 监控 到PlcToMes.SubArrived==false,就把MesToPlc.SubArrivedFinish置为false | ||||||
| //                write(S7Client.S7_KUKA,Step2Mes2PlcVar.ShelfIsFullFinish,false); |                 Integer subArrived2 = waitingForTarget(Step3Plc2MesVar.ShelfIsFullArrived, false); | ||||||
| //            } |                 if(subArrived2 != 1){ | ||||||
| //        },1,1, TimeUnit.SECONDS); |                     logger.info("失败"+" --- "+"步骤1.  MES监听 Step3Plc2MesVar.ShelfIsFullArrived 是否 等于 1 失败"); | ||||||
| // |                 } | ||||||
| // |                 write(S7Client.S7_KUKA,Step3Mes2PlcVar.ShelfIsFullArrivedFinish,false); | ||||||
| //        kukaStep3.scheduleAtFixedRate(new Runnable() { |  | ||||||
| //            @Override |  | ||||||
| //            public void run() { |             } | ||||||
| //                //调度开始 |         },1,1, TimeUnit.SECONDS); | ||||||
| //                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); |  | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ import com.cnbm.dispatch.enums.kuka.step3.Step3Plc2MesVar; | |||||||
| import com.cnbm.packing.service.DynamicDataSourceService; | import com.cnbm.packing.service.DynamicDataSourceService; | ||||||
| import com.cnbm.s7.entity.R; | import com.cnbm.s7.entity.R; | ||||||
| import com.cnbm.s7.s7connector.enmuc.S7Client; | import com.cnbm.s7.s7connector.enmuc.S7Client; | ||||||
|  | import com.cnbm.s7.s7connector.type.PlcVar; | ||||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||||
| import io.swagger.annotations.ApiImplicitParams; | import io.swagger.annotations.ApiImplicitParams; | ||||||
| @@ -20,6 +21,7 @@ import com.cnbm.common.utils.Result; | |||||||
| import springfox.documentation.annotations.ApiIgnore; | import springfox.documentation.annotations.ApiIgnore; | ||||||
|  |  | ||||||
| import java.io.UnsupportedEncodingException; | import java.io.UnsupportedEncodingException; | ||||||
|  | import java.math.BigDecimal; | ||||||
| import java.text.ParseException; | import java.text.ParseException; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
|  |  | ||||||
| @@ -124,6 +126,34 @@ public class TestController { | |||||||
|         } |         } | ||||||
|         return R.ok(); |         return R.ok(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public static void main(String[] args) { | ||||||
|  |         BigDecimal voc = new BigDecimal(59.799); | ||||||
|  |         System.out.println(Float.valueOf(voc.toString())); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @PostMapping("/testWrite") | ||||||
|  |     public R testWrite() { | ||||||
|  |         BigDecimal voc = new BigDecimal(59.799); | ||||||
|  |         BigDecimal isc = new BigDecimal(3.799); | ||||||
|  |         BigDecimal vmpp = new BigDecimal(46.799); | ||||||
|  |         BigDecimal impp = new BigDecimal(3.0799); | ||||||
|  |         write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Pnom,new Integer(1)); | ||||||
|  |         write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Voc,voc); | ||||||
|  |         write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Isc,isc); | ||||||
|  |         write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Vmpp,vmpp); | ||||||
|  |         write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Impp,impp); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |         write(S7Client.S7_KUKA,Step2Mes2PlcVar.BoxId,"12345678901111111111"); | ||||||
|  |         write(S7Client.S7_KUKA,Step1Mes2PlcVar.SubArrivedFinish,true); | ||||||
|  |         write(S7Client.S7_KUKA,Step2Mes2PlcVar.ShelfIsFullFinish,false); | ||||||
|  |  | ||||||
|  |         write(S7Client.S7_KUKA,Step3Mes2PlcVar.ShelfIsFullArrivedFinish,true); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |         return R.ok(); | ||||||
|  |     } | ||||||
|     @PostMapping("/testlogger") |     @PostMapping("/testlogger") | ||||||
|     public R testlogger() { |     public R testlogger() { | ||||||
|         logger.info("test logger"); |         logger.info("test logger"); | ||||||
| @@ -159,4 +189,51 @@ public class TestController { | |||||||
|         return new Result<String>().ok(service.getExtendArgFromCamline(subId.toString()).toString()); |         return new Result<String>().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); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -178,7 +178,7 @@ public enum S7Client { | |||||||
|                             ); |                             ); | ||||||
|                             return type.toObject(read); |                             return type.toObject(read); | ||||||
|                         } |                         } | ||||||
|                     }catch (Exception e) { |                     }catch (Throwable e) { | ||||||
|                         throw new S7CheckResultException("read errMsg : "+e.getMessage()); |                         throw new S7CheckResultException("read errMsg : "+e.getMessage()); | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
| @@ -293,7 +293,7 @@ public enum S7Client { | |||||||
|                            ); |                            ); | ||||||
|                        } |                        } | ||||||
|                        return null; |                        return null; | ||||||
|                    }catch (Exception e) { |                    }catch (Throwable e) { | ||||||
|                        throw new S7CheckResultException("write errMsg : "+e.getMessage()); |                        throw new S7CheckResultException("write errMsg : "+e.getMessage()); | ||||||
|                    } |                    } | ||||||
|                }, |                }, | ||||||
|   | |||||||
		Referens i nytt ärende
	
	Block a user