package com.mes.taskcache.service; import java.util.List; import com.mes.common.PLCAutoMes; import com.mes.common.PlcParameterObject; //import com.mes.common.S7object; import com.mes.edgstoragecage.entity.EdgStorageCageDetails; import com.mes.glassinfo.entity.GlassInfo; import com.mes.taskcache.mapper.HangzhouMesMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class LogicService { @Autowired private HangzhouMesMapper hangzhouMesMapper; // //理片 // public void Process(){ // String Result= S7object.getinstance().plccontrol.ReadWord("DB14.0", 1).get(0)+""; // String Number=S7object.getinstance().plccontrol.ReadWord("DB14.2", 1).get(0)+""; // if(Result=="1"){//进片请求 // processInto(Number); // }else if(Result=="2"){//出片请求 // processOut(); // }else if(Result=="3"){//进出片请求 // if (!processOut()) { //先出后进 // processInto(Number); // } // } // } //理片 进 public boolean processInto(String Number){ //查询消息队列里的玻璃 GlassInfo GlassInfo=hangzhouMesMapper.selectGlassId(Number); PlcParameterObject plcmes= PLCAutoMes.PlcMesObject; if(GlassInfo!=null){//存在此玻璃编号 //同钢化版图内的栅格号 List list=hangzhouMesMapper.selectIsExistIntoCache(GlassInfo.getTemperingLayoutId(),GlassInfo.getTemperingFeedSequence(),GlassInfo.getWidth()); //空栅格号 if (list.size()==0) { list=hangzhouMesMapper.selectCacheLeisure(); } //小于此玻璃钢化版图序号的栅格号 if(list.size()==0){ list=hangzhouMesMapper.selectIsExistIntoCache(GlassInfo.getTemperingLayoutId(),GlassInfo.getWidth()); } if(list.size()>0){ //存在空格 //1.生成任务: 起始位置0 结束位置this.slot 任务类型 1 (进片任务) //2.回复 1进片 EdgStorageCageDetails item=list.get(0); hangzhouMesMapper.insertCacheTask(GlassInfo.getId()+"","0",item.getSlot()+"","1"); // S7object.getinstance().plccontrol.WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1); return true; } }else{ // ID编号不存在 不处理/回复PLC 进行报警提示 } //返回结果 return false; } // //理片 出 // public boolean processOut(){ // //查询任务 // String A09=S7object.getinstance().plccontrol.ReadWord("DB14.56", 1).get(0)+""; // String A10=S7object.getinstance().plccontrol.ReadWord("DB14.58", 1).get(0)+""; // PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; // List list=hangzhouMesMapper.selectCacheOut(); // boolean isOut=true;//其他情况条件 如:后续设备故障禁止理片出片 等 // if (list.size()>0&&isOut) { // EdgStorageCageDetails item=list.get(0); // if(A09=="0"&&A10=="1"){ // //出到 A09 // hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0","09","2"); // S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1"); // S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); // return true; // }else if(A09=="1"&&A10=="0"){ // //出到 A10 // hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0","10","2"); // S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2"); // S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); // return true; // }else if(A09=="0"&&A10=="0"){ // //都允许 A09/A10 上一片是否和此片玻璃尺寸尺寸相同 // String endcell="09"; // String SendEndcell="1"; // boolean If_=false; // GlassInfo glassInfo09= hangzhouMesMapper.selectLastOutCacheInfo("09"); // GlassInfo glassInfo10= hangzhouMesMapper.selectLastOutCacheInfo("10"); // if(glassInfo10!=null&&glassInfo10.getWidth()==item.getWidth()&&glassInfo10.getHeight()==item.getHeight()){ // endcell="10"; // SendEndcell="2"; // }else if(glassInfo10!=null&&If_){ // //其他条件 // } // hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0",endcell,"2"); // S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell); // S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); // return true; // } // } // //返回结果 // return false; // } // //磨边 不交互 理片和磨边机自己交互 // public void processMb(String Number){ // //查询任务 // GlassInfo GlassInfo=hangzhouMesMapper.selectGlassId(Number); // PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; // if(GlassInfo!=null){ // //发送任务 ID 长 宽 厚 倒角 工艺功能等 // S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.22").getAddress(),"N10000"); // S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.24").getAddress(), "1000"); // S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.26").getAddress(),"800"); // S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(),"60"); // S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.30").getAddress(), "2"); // S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); // } // //返回结果 // } //查询消息队列里此玻璃ID的数据 public boolean SelectMessageId(String num){ //查询是否存在 GlassInfo glassInfo=hangzhouMesMapper.selectGlassId(num); if(glassInfo==null){ return false;//返回 不存在 } return true;//返回 存在 } //删除消息队列里此玻璃ID的数据 public boolean DeleteMessageId(String num){ //查询是否存在 GlassInfo glassInfo=hangzhouMesMapper.selectGlassId(num); if(glassInfo==null){ return false;//返回 不存在 } return true;//返回 存在 } //是否存在此编号玻璃 public boolean isExist(String num){ //查询是否存在 GlassInfo glassInfo=hangzhouMesMapper.selectGlassId(num); if(glassInfo==null){ return false;//返回 不存在 } return true;//返回 存在 } }