From 28ded8102d83cf74bc232d1cdfc89b7f22c41952 Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期二, 03 十二月 2024 09:09:31 +0800 Subject: [PATCH] 增加点击防抖事件 增加笼子使用详情的计算优化。 增加数据推送时的报错处理 测量台交互逻辑增加 参数界面增加翻转加减速度 --- springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java | 499 +++++++++++++++++++++++++++++-------------------------- 1 files changed, 265 insertions(+), 234 deletions(-) diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java index 1da7bc8..5da2a94 100644 --- a/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java +++ b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java @@ -1,267 +1,268 @@ package com.example.springboot.service; - import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; - import com.example.springboot.component.PLCAutoMes; import com.example.springboot.component.S7control; +import com.example.springboot.entity.GlassInfo; import com.example.springboot.entity.StorageCage; -import com.example.springboot.entity.north_glass_buffer1; +import com.example.springboot.entity.StorageTask; import com.example.springboot.entity.device.PlcParameterObject; -import com.example.springboot.mapper.SpianMapper; +import com.example.springboot.mapper.AlbaniaMapper; import com.google.common.primitives.Bytes; - @Service public class SpianServiceNew { @Autowired - private SpianMapper spianMapper; - - // @GetMapping("/all") -public Short selectAll(String glassid) { - //璇诲彇DB105鍖烘枃浠� - PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; - //璇�106 - PlcParameterObject plcread=PLCAutoMes.PlcReadObject; - int cage1 = 0; - int cells; - int ids; - int prcid; - int tiers; - int prctier; - double width; - double minwidth = 0; + private AlbaniaMapper albaniaMapper; + @Autowired + private StorageCageService storageCageService; + // 璇诲彇DB105鍖烘枃浠� + private PlcParameterObject plcmes = PLCAutoMes.PlcMesObject; - north_glass_buffer1 glasslist = spianMapper.selectGlass(glassid); // 鑾峰彇鐜荤拑鍙傛暟 - // 濡傛灉娌℃湁姝d鏃� - if (glasslist == null) { - return (300); + public Short selectAll(GlassInfo glassInfo) { + if (glassInfo == null) { + // 鏈夎繘鐗囪姹備絾鏄祴閲忓彴娌℃湁鐜荤拑 + return 400; } - double widths = glasslist.getglasslengthmm(); - String orderids = glasslist.getordernumber(); - String FrameBarcode = glasslist.getFrameBarcode(); - // 鑾峰彇閾濇鐩稿叧搴︽渶楂樼殑绗煎瓙鎺掑簭 - List<StorageCage> storageCage = spianMapper.selectAllFbarcode(FrameBarcode, widths, 400); - // 鍒ゆ柇閾濇鎸囧畾绌烘牸鏄惁闇�瑕侀棿闅旂┖闂� - if (storageCage.size() == 0) { - storageCage = spianMapper.selectAll(orderids, FrameBarcode); - } - if (storageCage == null) { - return (400); - } - for (StorageCage storageCage2 : storageCage) { - // 淇濆瓨璁㈠崟浼樺厛椤哄簭绗煎瓙鍙� - cage1 = storageCage2.getCage(); - // 鍒ゆ柇璇ョ瀛愬彿鐩搁偦鏈�澶х殑绌烘牸鏁� - int cages = spianMapper.selectCage(cage1); + System.out.println(glassInfo + "鍒濆"); + // 瀹氫箟鍒濆瀛楁 + StorageCage cage; + String glassid = glassInfo.getGlassid(); + Double width = glassInfo.getWidth(); + Double height = glassInfo.getHeight(); + String flowcard = glassInfo.getFlowcard(); + Integer glasstype = glassInfo.getGlasstype(); + Double thickness = glassInfo.getThickness(); + GlassInfo glassfilms = albaniaMapper.SelectGlassinfo(glasstype); + // 鍒ゆ柇鏄惁鏈夊悓绫诲瀷鐨� + cage = albaniaMapper.SelectCage(glasstype, width, 300); + // 濡傛灉鏈夊悓绫诲瀷鏃剁洿鎺ュ鍔� + if (cage != null) { + // 鍙戦�乸lc浠诲姟 + Mestast(glassid, 1001, cage.getId(), 1, "MESID1", 1); + System.out.println("浠诲姟鍙戦�佺幓鐠僫d:" + glassid + "璧峰浣嶇疆:" + 1001 + "鏍煎瓙鍙�:" + cage.getId() + "鍚姩:" + 1); - // 濡傛灉鐩搁偦绗煎瓙娌℃湁绌烘牸,鎴栬�呮湁姝e湪鎵ц鐨勫嚭鐗囦换鍔℃椂杩斿洖400 - if (cages == 0) { + } else { + // 鍒ゆ柇鐜荤拑鏄惁杩涘叆澶х墖绗� + if (glassInfo.getThickness() > 14) { + cage = albaniaMapper.SelectNewCell(3, 5); + } else { + cage = albaniaMapper.SelectNewCell(0, 4); + + // System.out.println(cage + "鐞嗙墖绗煎垽鏂�"); + } + // 褰撳皬鐗囩瀛愪笉澶燂紝鍒欑鍚堟潯浠剁殑鍙互杩涘叆澶х墖绗� + if (cage == null && glassInfo.getWidth() >= 1500 && glassInfo.getThickness() > 4) { + cage = albaniaMapper.SelectNewCell(3, 5); + } + // 褰撹繑鍥炵殑鏍煎瓙鍙蜂负绌烘椂,杩斿洖400绗煎瓙宸叉弧 + if (cage != null) { + albaniaMapper.AddCage(cage.getId(), glassid, width, height, 1, glasstype, 0, thickness, + glassfilms.getFilms(), glassfilms.getFlowcard(), glassfilms.getMateid(), glassfilms.getTier()); + Mestast(glassid, 1001, cage.getId(), 1, "MESID1", 1); + System.out.println("浠诲姟鍙戦�佺幓鐠僫d:" + glassid + "璧峰浣嶇疆:" + 1001 + "鏍煎瓙鍙�:" + cage.getId() + "鍚姩:" + 1); + albaniaMapper.UpdateStorage(width, height, cage.getId()); + } else { return (400); } - StorageCage cages1; - // 鍒ゆ柇鏄惁鏄浜岀墖闇�瑕佸姞闂撮殧鐗� - prctier = spianMapper.selectsum(cage1, storageCage2.getCell());// 浼犵粰prc鐨勬牸瀛愬唴鐜荤拑鏁� - if (prctier > 0) { - cages1 = spianMapper.selectCage1(cage1, storageCage2.getCell(), widths + 400); - } else { - cages1 = spianMapper.selectCage1(cage1, storageCage2.getCell(), widths); - } - // 鍒ゆ柇閫変腑绗煎瓙鏄惁鏈夊悎閫傚搴︾┖鏍� - // 鏈夊悎閫傜┖鏍兼椂杩涚墖 - if (cages1 != null && cages >= 1 && storageCage2.getDisabled() == 0) { - ids = cages1.getId();// 鏁版嵁搴揑D - tiers = cages1.getTier();// 鍐呭鐗� - cells = cages1.getCell();// 鏍煎瓙鍙� - prcid = cages1.getPrcId();// 浼犵粰prc鐨勭洰鏍囧湴id - width = cages1.getWidth();// 鏍煎瓙鍓╀綑瀹藉害 - widths = glasslist.getglasslengthmm(); - - // 鎵ц杩涚墖 - - // 鑾峰彇璇ユ牸瀛愬唴鏄惁鏈夌幓鐠� - int cellint = spianMapper.selectcell(cage1, cells); - if (cellint == 1) { - // 灏嗗鐗囩幓鐠冪殑鏁版嵁鏇存柊鍒板唴鐗� - spianMapper.UpdateDBCage(ids, cage1, cells, 1); - // 灏嗘柊鍏ョ殑鐜荤拑瀛樺叆澶栫墖 - spianMapper.UpdataAddCage2(orderids, glassid, glasslist, cage1, cells, ids - 1, 2); - spianMapper.UpdataAddCage1(widths, cage1, cells);// 鍑忓皯鏍煎瓙瀹藉害 - } else { - // 鏁版嵁搴撲慨鏀圭瀛愯〃鏂板涓�鏉$幓鐠� - spianMapper.UpdataAddCage2(orderids, glassid, glasslist, cage1, cells, ids, 2); - spianMapper.UpdataAddCage1(widths, cage1, cells);// 鍑忓皯鏍煎瓙瀹藉害 - } - // 杩涚墖杞﹁捣濮嬩綅缃� - S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddStart").getAddress(plcmes.getPlcParameter("AddStart").getAddressIndex()), (short) 1000); - // 杩涚墖杞︾洰鏍囦綅缃� - S7control.getinstance().WriteWord(plcmes.getPlcParameter("Addgoal").getAddress(plcmes.getPlcParameter("Addgoal").getAddressIndex()), (short) prcid); - // 杩涚墖鐜荤拑瀹� - S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddLength").getAddress(plcmes.getPlcParameter("AddLength").getAddressIndex()), (short) widths); - // 杩涚墖绗煎唴宸叉湁鐜荤拑鏁� - S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddCount").getAddress(plcmes.getPlcParameter("AddCount").getAddressIndex()), (short) prctier); - // 杩涚墖杞﹀惎鍔� 1涓哄惎鍔� - S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1); - String activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆 - int activate2 = 0; - if (activate.equals("1")) { - activate2 = 1; - }else{ - while (activate.equals("1")) { - // 鍑虹墖浠诲姟鍙戦�佸瓧鏀逛负1 - S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1); - activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆 - } - } - outmesid(glassid, "FeedID");//娲惧彂id - spianMapper.Inserttask(0, 0, 1000, ids, glassid.toString(), prctier,activate2);// 鏂板浠诲姟 - return (200); - - } - } - return (400); + // 澧炲姞浠诲姟璁板綍 + albaniaMapper.Inserttask(0, 0, 1001, cage.getId(), glassid, glasstype, flowcard, glassfilms.getMateid(), + glassfilms.getTier()); + albaniaMapper.UpdateQueueState(glassid); + return (200); } - public Short selectout2(String glassid) { - //璇诲彇DB105鍖烘枃浠� - PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; - //璇�106 - PlcParameterObject plcread=PLCAutoMes.PlcReadObject; + // 琛ュ厖鍑虹墖 + public Short mateOut() { + double carwidth = -300; - char[] a = glassid.toCharArray(); - List<Short> datas = new ArrayList<>(); - // 鑾峰彇浼樺厛鍑虹墖鐨勪綅缃� - StorageCage cageout = spianMapper.selectOut2(glassid); - if (cageout == null) { - return (300); - } - - int cage = cageout.getCage(); // 鍌ㄥ瓨鍑虹墖浣嶇疆锛岀瀛愭牸瀛愬嚑鍙风幓鐠� - int cell = cageout.getCell();// 鍑虹墖鏍煎彿 - int tier = cageout.getTier();// 鍑虹墖鍐呭鐗� - int prcid = cageout.getPrcId();// prcid - int prcid2; - int ids; - int cages; - int cells; - double glasswidth = cageout.getGlassWidth(); - int state = spianMapper.selectGlassState(cage, cell);// 鑾峰彇鏍煎瓙鏁伴噺 - // 鍒ゆ柇鐜荤拑鍐呭鐗� - if (tier == 2) { - - // 鍒ゆ柇鐜荤拑鍙洿鎺ュ嚭鐗囨椂 - spianMapper.OverOutSlice(glassid.toString(), 1, 0);// 鏇存柊鍑虹墖闃熷垪浠诲姟鐘舵�佷负杩涜涓� - spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴� - spianMapper.UpdataGlassCageState(glassid.toString(), 3);// 鏇存敼绗煎瓙琛ㄧ殑鐜荤拑鐘舵�� - spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, state, 3);// 鏂板浠诲姟 - + List<StorageTask> glassmate = albaniaMapper.SelectOutTask(); + String type = glassmate.get(0).getTaskType(); + if (glassmate.size() == 0) { + return (400); } else { - // 鑾峰彇鏍煎瓙鐨勭幓鐠冩暟閲� - - // 鍒ゆ柇鍐呯墖鏄惁闇�瑕佽皟鎷� - if (state == 1) { - spianMapper.OverOutSlice(glassid.toString(), 1, 0);// 鏇存柊鍑虹墖闃熷垪浠诲姟鐘舵�佷负杩涜涓� - spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴� - spianMapper.UpdataGlassCageState(glassid, 3);// 鏇存敼绗煎瓙琛ㄧ殑鐜荤拑鐘舵�� - spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, 1,3);// 鏂板浠诲姟 - + for (int i = 0; i < glassmate.size(); i++) { + GlassInfo glass = albaniaMapper.SelectGlassInfo(glassmate.get(i).getGlasstype()); + carwidth = carwidth + glass.getWidth() + 300; + if (carwidth >= 4300 && type != glassmate.get(i).getTaskType()) { + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩 + MestoPlc(); + return (200); + } else { + // 澧炲姞涓�鏉′换鍔¤褰� + albaniaMapper.Inserttask(1, 0, Integer.parseInt(glassmate.get(i).getShelfRack()), 2001, + glassmate.get(i).getGlassId(), glassmate.get(i).getGlasstype(), + glassmate.get(i).getFlowcard(), glassmate.get(i).getMateid(), glassmate.get(i).geTier()); + // 瀹屾垚鍑虹墖闃熷垪鐨勪换鍔� + albaniaMapper.UpdateOutTask(glassmate.get(i).getId()); + // 鍙戦�乸lc浠诲姟 + Mestast(glassmate.get(i).getGlassId(), + Integer.parseInt(glassmate.get(i).getShelfRack()), 2001, 0, "MESID" + (i + 1), i + 1); + System.out.println("鍙戦�佸嚭鐗囬槦鍒楅厤鐗囦换鍔�:" + glassmate.get(i).getShelfRack()); + } + } + // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠� + // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), + // (short) 1);// 鍑虹墖浠诲姟鍚姩 + while (true) { + String currentValue = plcmes.getPlcParameter("MESToPLC").getValue(); + // 妫�鏌� MESToPLC 鐨勫�兼槸鍚︿负 0 + if (currentValue.equals("1")) { + System.out.println("鍙戦�佸惎鍔ㄥ瓧鐜板湪涓�1,鍋滄寰幆鍐欏叆"); + break; // 閫�鍑哄惊鐜� + } + // 濡傛灉涓嶄负 1锛岀户缁啓鍏� + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 浠诲姟鍙戦�佸瓧 + System.out.println("缁х画鍐欏叆 MESToPLC,褰撳墠鍊�:" + currentValue); + try { + Thread.sleep(100); // 渚嬪姣忕妫�鏌ヤ竴娆� + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + MestoPlc(); + } + return (200); + } + + // 鍑虹墖 + public Short selectout(int line) { + GlassInfo glassmate = new GlassInfo(); + GlassInfo method = new GlassInfo(); + StorageCage glass = new StorageCage(); + int glassend = 0; + double carwidth = -300; + double width = 0; + + method = albaniaMapper.SelectMethod(line); + if (method == null) { + return (400); + } + // 濡傛灉涓嶆槸鐩撮�氭ā寮忓彧鍑烘湁瀹屾暣閰嶇墖鐨勬祦绋嬪崱 + if (method.getMethod() == 0) { + // glassmate= albaniaMapper.SelectOutGlass(1); + // 鍒ゆ柇鏈夋暟閲忕殑閰嶇墖id + List<GlassInfo> peipianid = albaniaMapper.SelectOutGlass3(method.getFlowcard()); + if (peipianid.size() == 0) { + System.out.println("peipianid:" + peipianid); + return (400); } else { - // 鐜荤拑闇�瑕佽皟鎷ㄦ椂锛屽垽鏂睘浜庡摢涓崐鍖虹殑绗煎瓙 - if (cage < 6) { - StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 0, 6, cell); - if (cagecell == null) { - return (300); + for (int j = 0; j < peipianid.size(); j++) { + // 鍒ゆ柇閰嶇墖瀹藉害鏄惁澶熶笂澶ц溅 + // GlassInfo glasswidth = + // albaniaMapper.SelectOutGlass6(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid()); + // if (glasswidth.getWidth() <= 4300) { + // 鏄惁鏈夎冻澶熺殑搴撳瓨鏁伴噺 + List<String> peipiancage = albaniaMapper.SelectOutGlass4(peipianid.get(j).getFlowcard(), + peipianid.get(j).getMateid()); + // 鏄惁鏈夎冻澶熺殑鍙嚭鐗囨暟閲� + List<String> peipiancage2 = albaniaMapper.SelectOutGlass8(peipianid.get(j).getFlowcard(), + peipianid.get(j).getMateid()); + // System.out.println("peipiancage:"+peipiancage+peipianid.get(j).getMateid()); + // System.out.println("peipiancage2:"+peipiancage2); + if (!peipiancage.contains("涓嶈冻")) { + List<GlassInfo> chupian = albaniaMapper.SelectOutGlass7(peipianid.get(j).getFlowcard(), + peipianid.get(j).getMateid()); + for (int k = 0; k < chupian.size(); k++) { + glass = albaniaMapper.SelectCageGlass(chupian.get(k).getGlasstype()); + carwidth = carwidth + glass.getGlassWidth() + 300; + if (carwidth <= 4300) { + // 鍙戦�侀厤鐗囨暟鎹� + Mestast(chupian.get(k).getGlassid(), glass.getId(), 2001, 0, "MESID" + (k + 1), + k + 1); + albaniaMapper.AddFinishNumber(chupian.get(k).getFlowcard(), + chupian.get(k).getMateid(), chupian.get(k).getTier()); + storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1 + albaniaMapper.Inserttask(1, 0, glass.getId(), 2001, chupian.get(k).getGlassid(), + chupian.get(k).getGlasstype(), chupian.get(k).getFlowcard(), + chupian.get(k).getMateid(), chupian.get(k).getTier()); + } else { + albaniaMapper.AddFinishNumber(chupian.get(k).getFlowcard(), + chupian.get(k).getMateid(), chupian.get(k).getTier()); + storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1 + // 澧炲姞鍑虹墖闃熷垪鐨勪换鍔� + albaniaMapper.InsertOutTask(1, 0, glass.getId(), 2001, chupian.get(k).getGlassid(), + chupian.get(k).getGlasstype(), chupian.get(k).getFlowcard(), + chupian.get(k).getMateid(), chupian.get(k).getTier()); + } + + } + // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠� + // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(),(short) + // 1);// 鍑虹墖浠诲姟鍚姩 + MestoPlc(); + return (200);// 缁撴潫 } - // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧 - prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峆RCID - ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D - cages = cagecell.getCage();// 璋冩嫧鐩爣浣嶇瀛� - cells = cagecell.getCell();// 璋冩嫧鐩爣浣嶆牸瀛� - // 鏇存崲鐜荤拑鐨勭瀛� - String glassids = spianMapper.SelectGlassid(cage, cell); // 鑾峰彇琚皟鎷ㄧ殑鐜荤拑id - spianMapper.UpdataGlassCageState(glassids, 3);// 鏇存敼绗煎瓙琛ㄧ殑鐜荤拑鐘舵�� - spianMapper.UpdateDBCage(ids, cage, cell, 2);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲� - spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 鍑忓皯鏂版牸瀛愬搴� - spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴� - spianMapper.Inserttask(2, 0, cageout.getId(), ids, glassids, 2, 3);// 鏂板璋冨害浠诲姟 - - } else {// 绗煎瓙鍙峰ぇ浜�5鏃� - StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 5, 11, cell); - if (cagecell == null) { - return (300); + // } + // else { + // continue; + // } + } + System.out.println("鏈湁瀹屾暣閰嶇墖"); + return (400); + } + + } else { + for (int i = 1; i <= 7; i++) { + // 鐩撮�氭ā寮忔椂鎸夐『搴忕洿鍑� + // glassmate = albaniaMapper.SelectOutGlass(1); + glassmate = albaniaMapper.SelectOutGlass2(); + + System.err.println("鍑虹墖:" + glassmate); + if (glassmate == null && i > 1) { + // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠� + // 鍑虹墖浠诲姟鍚姩 + MestoPlc(); + System.out.println("鍑哄畬浠诲姟:1,浠诲姟鐘舵��:0,璧峰:" + glass.getId() + ",鐩爣" + "2001"); + return (200);// 缁撴潫 + } + if (glassmate == null) { + // 鏈鍙栦换鍔� + System.out.println("鏈鍙栦换鍔�:" + i); + return (400); + + } else { + glass = albaniaMapper.SelectCageGlass(glassmate.getGlasstype()); + System.out.println("鍑虹墖glass:" + glass); + if (glass != null) { + // 鍙戦�佷换鍔′箣鍓嶅垽鏂溅涓婄殑鍓╀綑瀹藉害鏄惁澶т簬姝ょ幓鐠� + width = width + glassmate.getWidth() + 300; + // 澶т簬杞︿笂绌轰綑瀹藉害鏃舵彁鍓嶅彂閫佸嚭鐗囧惎鍔� + if (width > 4300) { + // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠� + MestoPlc(); + return (200);// 缁撴潫 + } + // 鍙戦�侀厤鐗囨暟鎹� + Mestast(glass.getGlassId(), glass.getId(), 2001, 0, "MESID" + i, i); + albaniaMapper.AddFinishNumber(glassmate.getFlowcard(), glassmate.getMateid(), + glassmate.getTier()); + storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1 + albaniaMapper.Inserttask(1, 0, glass.getId(), 2001, glassmate.getGlassid(), + glassmate.getGlasstype(), glass.getFlowcard(), glassmate.getMateid(), + glassmate.getTier()); + } else { + return (400);// 缁撴潫 } - // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧 - prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峱rcID - ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D - cages = cagecell.getCage();// 璋冩嫧鐩爣浣嶇瀛� - cells = cagecell.getCell();// 璋冩嫧鐩爣浣嶆牸瀛� - String glassids = spianMapper.SelectGlassid(cage, cell); // 鑾峰彇琚皟鎷ㄧ殑鐜荤拑id - spianMapper.UpdataGlassCageState(glassids, 3);// 鏇存敼绗煎瓙琛ㄧ殑鐜荤拑鐘舵�� - spianMapper.Inserttask(2, 0, cageout.getId() + 1, ids, glassids, 2, 3);// 鏂板璋冨害浠诲姟 - spianMapper.UpdateDBCage(ids, cage, cell, 2);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲� - spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 鍑忓皯鏂版牸瀛愬搴� - spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴� - } - //鍙戦�乸lc浠诲姟 - S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddStart").getAddress(plcmes.getPlcParameter("AddStart").getAddressIndex()), (short) prcid); - S7control.getinstance().WriteWord(plcmes.getPlcParameter("Addgoal").getAddress(plcmes.getPlcParameter("Addgoal").getAddressIndex()), (short) prcid2); - S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddCount").getAddress(plcmes.getPlcParameter("AddCount").getAddressIndex()), (short) state); - S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1); - String activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆 - int activate2 = 0; - if (activate.equals("1")) { - activate2 = 1; - }else{ - while (activate.equals("1")) { - // 鍑虹墖浠诲姟鍙戦�佸瓧鏀逛负1 - S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1); - activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆 - } - } - outmesid(glassid, "ReleaseID");//娲惧彂id - //鍙戦�佸畬鍊掔墖缁撴潫 - return (200); // 缁撴潫 } } - // 鍑虹墖杞﹁捣濮嬩綅缃� - S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddStart").getAddress(plcmes.getPlcParameter("OutStart").getAddressIndex()), (short) prcid); - // 鍑虹墖杞︾洰鏍囦綅缃� - S7control.getinstance().WriteWord(plcmes.getPlcParameter("Addgoal").getAddress(plcmes.getPlcParameter("Outgoal").getAddressIndex()), (short) 1000); - // 鍑虹墖绗煎唴宸叉湁鐜荤拑鏁� - S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddCount").getAddress(plcmes.getPlcParameter("OutCount").getAddressIndex()), (short) state); - // 鍑虹墖杞﹀惎鍔� 1涓哄惎鍔� - S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("OutActivate").getAddressIndex()), (short) 1); - String activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆 - int activate2 = 0; - if (activate.equals("1")) { - activate2 = 1; - }else{ - while (activate.equals("1")) { - // 鍑虹墖浠诲姟鍙戦�佸瓧鏀逛负1 - S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1); - - activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆 - } - } - outmesid(glassid, "ReleaseID");//娲惧彂id - //鐩存帴鍑虹墖缁撴潫 - return(200);// 缁撴潫 + return (200);// 缁撴潫 } // 娲惧彂浠诲姟鐜荤拑id public void outmesid(String glassid, String address) { - //璇诲彇DB105鍖烘枃浠� - PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; + // 璇诲彇DB105鍖烘枃浠� + PlcParameterObject plcmes = PLCAutoMes.PlcMesObject; // System.out.println("outmesid:" + glassid); List<Byte> glassidlist = new ArrayList(); char ds[] = glassid.toCharArray(); @@ -269,9 +270,10 @@ glassidlist.add((byte) iditem); } byte[] bytes = Bytes.toArray(glassidlist); + // writeString System.out.println("outmesidbytes:" + bytes.length); - S7control.getinstance().WriteByte(plcmes.getPlcParameter(address).getAddress(plcmes.getPlcParameter(address).getAddressIndex()),bytes); - //S7control.getinstance().WriteByte(address, bytes);// 娲惧彂鍑虹墖id + System.out.println(plcmes.getPlcParameter(address).getAddress()); + System.out.println(); } @@ -307,15 +309,44 @@ return listbool; } - // 鏍规嵁鐜荤拑id瀹屾垚鍦ㄨ繘琛屼腑鐨勪换鍔� - public void overtask(String glassid) { + // 涓嬪彂鐞嗙墖浠诲姟 + public void Mestast(String glassid, int MESToPLCStart1, int MESToPLCTarget1, int MESToPLC, String address, int i) { + S7control.getinstance().writeString(plcmes.getPlcParameter(address).getAddress(), glassid);// 鐜荤拑id + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStart" + i).getAddress(), + (short) MESToPLCStart1);// 璧峰浣嶇疆 + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCTarget" + i).getAddress(), + (short) MESToPLCTarget1);// 鐩爣浣嶇疆 + if (MESToPLC != 0) { + // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), + // (short) MESToPLC);// mes鐞嗙墖浠诲姟绫诲瀷 + MestoPlc(); + } + } - spianMapper.UpdatetaskOut(glassid.toString());// 瀹屾垚涓婁竴娆� 鍑虹墖鎴栬�呰繘鐗囦换鍔� - spianMapper.OverOutSlice(glassid.toString(), 2, 1);// 瀹屾垚鍑虹墖闃熷垪浠诲姟 - spianMapper.UpdataGlassCage(glassid.toString(), 0);// 娓呴櫎鍑虹墖鏍煎瓙鐜荤拑淇℃伅 - spianMapper.UpdateCageOver(glassid.toString(), 0);// 鏇存敼绗煎瓙琛ㄥ嚭鐗囩姸鎬� - spianMapper.UpdateCageadd(glassid.toString(), 1);// 鏇存敼绗煎瓙琛ㄨ繘鐗囩姸鎬� - spianMapper.UpdateAddQueue(glassid.toString());// 鎶婅繘鐗囩殑鐜荤拑鏇存柊鍒板嚭鐗囬槦鍒椾腑 + // 鎵爜澧炲姞闃熷垪浠诲姟 + public boolean scan(String address) { + List<Short> list = S7control.getinstance().ReadWord(address, 1);// 杩斿洖涓簍ure鏃朵负1 + boolean listbool = list.contains((short) 1); + return listbool; + } + + public void MestoPlc() { + while (true) { + String currentValue = plcmes.getPlcParameter("MESToPLC").getValue(); + // 妫�鏌� MESToPLC 鐨勫�兼槸鍚︿负 0 + if (currentValue.equals("1")) { + System.out.println("鍙戦�佸惎鍔ㄥ瓧鐜板湪涓�1,鍋滄寰幆鍐欏叆"); + break; // 閫�鍑哄惊鐜� + } + // 濡傛灉涓嶄负 1锛岀户缁啓鍏� + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 浠诲姟鍙戦�佸瓧 + System.out.println("缁х画鍐欏叆 MESToPLC,褰撳墠鍊�:" + currentValue); + try { + Thread.sleep(100); // 渚嬪姣忕妫�鏌ヤ竴娆� + } catch (InterruptedException e) { + e.printStackTrace(); + } + } } } -- Gitblit v1.8.0