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/component/PlcHoldNew.java | 272 +++++++++++++++++++++++++++--------------------------- 1 files changed, 136 insertions(+), 136 deletions(-) diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java index 5c979bf..8a11960 100644 --- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java +++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java @@ -1,167 +1,168 @@ package com.example.springboot.component; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; +import java.util.Date; + import org.springframework.beans.factory.annotation.Autowired; -import com.example.springboot.service.JdbcConnections; -import com.example.springboot.service.SpianService; -import com.example.springboot.entity.north_glass_buffer1; +import com.example.springboot.service.SpianServiceNew; +import com.example.springboot.service.StorageCageService; +import com.example.springboot.entity.GlassInfo; import com.example.springboot.entity.device.PlcParameterObject; -import com.example.springboot.mapper.AlarmMapper; -import com.example.springboot.mapper.SpianMapper; +import com.example.springboot.mapper.AlbaniaMapper; public class PlcHoldNew extends Thread { - private AlarmMapper alarmMapper; - @Autowired - private JdbcConnections jdbcConnections; - private SpianMapper spianMapper; - private SpianService spianService; + private AlbaniaMapper albaniaMapper; + private SpianServiceNew spianService; + private StorageCageService storageCageService; int aaa; - + String huibao = ""; + String qidong = ""; @Override public void run() { while (this != null) { try { - Thread.sleep(100); + Thread.sleep(300); } catch (InterruptedException e) { - // \\ TODO Auto-generated catch block e.printStackTrace(); } + storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class); + spianService = WebSocketServer.applicationContext.getBean(SpianServiceNew.class); + albaniaMapper = WebSocketServer.applicationContext.getBean(AlbaniaMapper.class); + + // spianService.selectout(1); + // spianService.mateOut(); + // 璇诲彇DB14鍖烘枃浠� + PlcParameterObject plcmes = PLCAutoMes.PlcMesObject; + if (plcmes.getPlcParameter("PLCToMES").getValue() != null) { - // if (S7control.getinstance().CheckConnected() == false) { - spianService = WebSocketServer.applicationContext.getBean(SpianService.class); - spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); - jdbcConnections = WebSocketServer.applicationContext.getBean(JdbcConnections.class); - - //璇诲彇DB105鍖烘枃浠� - PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; - //璇�106 - PlcParameterObject plcread=PLCAutoMes.PlcReadObject; - //璇�103 - PlcParameterObject plcstate=PLCAutoMes.plcStateObject; - String OutRequest=plcread.getPlcParameter("OutRequest").getValue();//鍑虹墖璇锋眰 - String OutActivate=plcmes.getPlcParameter("OutActivate").getValue();//鍑虹墖鍚姩 - - - - S7control.getinstance().WriteWord( plcmes.getPlcParameter("1231").getAddress(plcmes.getPlcParameter("1231").getAddressIndex()), (short) 0); - // 鍑虹墖浠诲姟 - - if (OutActivate.equals("1") == false&&OutRequest.equals("1")==true) { - S7control.getinstance().WriteWord("DB105.18", (short) 0);// 鍑虹墖浠诲姟鍚姩鏀逛负0 - } - String FeedRequest=plcread.getPlcParameter("FeedRequest").getValue();// 杩涚墖璇锋眰瀛� - String AddActivate=plcmes.getPlcParameter("AddActivate").getValue();// 杩涚墖鍚姩 - if (FeedRequest.equals("1") == false&&AddActivate.equals("1")==true) { - S7control.getinstance().WriteWord("DB105.16", (short) 0);//杩涚墖浠诲姟鍚姩鏀逛负0 - } - - if (OutActivate.equals("1") == true) { - // 鍒ゆ柇褰撳墠鏄惁鏈夋湭鎵ц鐨勪换鍔� - int outnum = spianMapper.SelectOutSliceshu();//鏄惁鏈夋鍦ㄥ嚭鐗囩殑浠诲姟 - int cageoutsum = spianMapper.Selectcageout(3);//绗煎瓙鍐呮槸鍚﹁繕鏈夊湪鍑虹墖鐨勭幓鐠� - // 褰撴病鏈変换鍔℃墽琛屽苟涓斿嚭鐗囪溅绌洪棽鏃� - if (outnum == 0 && Plchome.isAllowQueue == true && cageoutsum == 0) { - // 鍒ゆ柇閾濇鍑虹墖闃熷垪琛ㄦ槸鍚︽湁寰呭嚭鐗囩殑鐜荤拑 - String outglassid = spianMapper.SelectOutSlice(); - // 褰撴湁寰呭嚭鐗囩殑鐜荤拑鏃� - if (outglassid != null) { - // 鑾峰彇璇ョ幓鐠冩槸鍚﹁绂佺敤 - int glassdisabled = spianMapper.SelectCageGlassState(outglassid); - // 鏈鐢ㄤ笅鍙戜换鍔� - if (glassdisabled == 0) { - spianService.selectout2(outglassid); - Plchome.isQueueWarning = false; - } else { // 绂佺敤鏇存敼鐘舵�佸脊鍑烘彁绀� - Plchome.isQueueWarning = true; - } - + String ExportTOMES1 = plcmes.getPlcParameter("ExportTOMES1").getValue();// 鍑虹墖璇锋眰涓�绾� + String PLCToMES = plcmes.getPlcParameter("PLCToMES").getValue();// 杩愰�佽溅璇锋眰 + String IDStatus1 = plcmes.getPlcParameter("IDStatus1").getValue();// 1鍙蜂换鍔″畬鎴� + String MESToPLCStatus1 = plcmes.getPlcParameter("MESToPLCStatus1").getValue();// 1鍙风‘璁ゅ瓧 + String MESToPLC = plcmes.getPlcParameter("MESToPLC").getValue();// 鍙戦�佷换鍔″瓧 + String GaToMES = plcmes.getPlcParameter("GaToMES").getValue();// 娴嬮噺鎴愬姛淇″彿 + + int taskcont = albaniaMapper.SelectTaskcount(); // 姝e湪杩涜鐨勪换鍔℃暟閲� + int outtask = albaniaMapper.SelectOutTaskCount(); // 绛夊緟琛ュ彂鐨勫嚭鐗囦换鍔℃暟閲� + if (ExportTOMES1 != null && MESToPLC != null && taskcont == 0) { + //褰撳彲浠ュ彂浠诲姟骞朵笖鍑虹墖闃熷垪鏈変换鍔℃椂 + if (ExportTOMES1.equals("1") == true && MESToPLC.equals("0") == true && PLCToMES.equals("1") == true&&outtask>0 && MESToPLCStatus1.equals("0")) { + spianService.mateOut(); } } - - } - ///////////// 杩涚墖浠诲姟 + // String scan=plcmes.getPlcParameter("scan").getValue();//鍙戦�佹壂鐮佷俊鎭� + // if(scan.equals("1")==true){ + // spianService.scan(scan); + // } + // 鑾峰彇褰撳墠鏃堕棿 + String currentTime = new Date().toString(); + if (!huibao.equals(IDStatus1)) { + System.out.println("姹囨姤璁板綍:" + IDStatus1 + "鏃堕棿" + currentTime); + } + huibao = IDStatus1; + if (!qidong.equals(MESToPLC)) { + System.out.println("鍚姩璁板綍:" + MESToPLC + "鏃堕棿" + currentTime); + } + qidong = MESToPLC; - String B01backs = plcread.getPlcParameter("B01CompleteTheReport").getValue();// b01姹囨姤 - String B02backs = plcread.getPlcParameter("B02CompleteTheReport").getValue();// b02姹囨姤 - - String B01glassid = plcstate.getPlcParameter("B01ID1").getValue();// BO1鐨勭幓鐠僫d - String B02glassid = plcstate.getPlcParameter("B02ID1").getValue();// B02鐨勭幓鐠僫d + PLCToMES = plcmes.getPlcParameter("PLCToMES").getValue();// 杩愰�佽溅璇锋眰 + IDStatus1 = plcmes.getPlcParameter("IDStatus1").getValue();// 1鍙蜂换鍔″畬鎴� + MESToPLCStatus1 = plcmes.getPlcParameter("MESToPLCStatus1").getValue();// 1鍙风‘璁ゅ瓧 + MESToPLC = plcmes.getPlcParameter("MESToPLC").getValue();// 鍙戦�佷换鍔″瓧 - // 褰撹繘鐗囧皬杞﹀畬鎴愪换鍔℃椂 - if (B01backs.equals("1") == true) { - // 鍒ゆ柇鏄惁姹囨姤姝g‘鐨刬d - int HB = spianMapper.SelectHB(B01glassid.toString()); - if (HB > 0) { - // 鎭㈠B01灏忚溅搴旂瓟鏀逛负1 - S7control.getinstance().WriteWord(plcmes.getPlcParameter("B01report").getAddress(plcmes.getPlcParameter("B01report").getAddressIndex()), (short) 1); - String yingda =plcmes.getPlcParameter("B01report").getValue();// b01姹囨姤 - if (yingda.equals("1")) { - spianService.overtask(B01glassid.toString());// 瀹屾垚浠诲姟 - } + // 涓�鍙风嚎璇锋眰 + if (ExportTOMES1 != null && MESToPLC != null && taskcont == 0) { + if (ExportTOMES1.equals("1") == true && MESToPLC.equals("0") == true && PLCToMES.equals("1") == true + && MESToPLCStatus1.equals("0") == true&&outtask == 0) { + // System.out + // .println("鍑虹墖鐘舵��:MESToPLC:" + MESToPLC + "PLCToMES:" + PLCToMES + "MESToPLCStatus1:" + MESToPLCStatus1); + spianService.selectout(1); + try { + Thread.sleep(100); // 姣�100姣妫�鏌ヤ竴娆� + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); // 澶勭悊绾跨▼涓柇 + } + } } - }else{ - // 鎭㈠B01灏忚溅搴旂瓟鏀逛负0 - S7control.getinstance().WriteWord(plcmes.getPlcParameter("B01report").getAddress(plcmes.getPlcParameter("B01report").getAddressIndex()), (short) 0); - } - - // 褰撳嚭鐗囧皬杞﹀畬鎴愪换鍔℃椂 - if (B02backs.equals("1") == true) { - // 鍒ゆ柇鏄惁姹囨姤姝g‘鐨刬d - int HB = spianMapper.SelectHB(B02glassid); - if (HB > 0) { - // 鎭㈠B02灏忚溅搴旂瓟鏀逛负1 - S7control.getinstance().WriteWord(plcmes.getPlcParameter("B02report").getAddress(plcmes.getPlcParameter("B02report").getAddressIndex()), (short) 1); - String yingda =plcmes.getPlcParameter("B01report").getValue();// b02搴旂瓟 - if (yingda.equals("1") == true) { - spianService.overtask(B02glassid);// 瀹屾垚浠诲姟 - } - } - }else{ - S7control.getinstance().WriteWord(plcmes.getPlcParameter("B02report").getAddress(plcmes.getPlcParameter("B02report").getAddressIndex()), (short) 0); - } - - - // 鑾峰彇DO1鏁版嵁 - String Do1ID=plcread.getPlcParameter("FeedID").getValue();// 鑾峰彇璇锋眰鐨刬d璺烡O1鍚屾椂娓� - // 鑾峰彇DO2鏁版嵁 - String Do2ID=plcread.getPlcParameter("FeedID").getValue();// 鑾峰彇璇锋眰鐨刬d璺烡O1鍚屾椂娓� - - - int questate = spianMapper.Selectquecount(Do1ID.toString());// 鍒ゆ柇鎵爜浣嶆槸鍚︽湁鐜荤拑宸茬‘璁� - // queueid1.toString().isEmpty() - north_glass_buffer1 glass1 = spianMapper.selectGlass(Do1ID);// D01鐨勭幓鐠冧俊鎭� - north_glass_buffer1 glass2 = spianMapper.selectGlass(Do2ID);// D02鐜荤拑淇℃伅 - // 褰撴壂鐮佷綅鐜荤拑id涓虹┖鏃� 瀹藉害涓�0 - if (Do1ID != null && questate == 0) { - // 鍐欏叆D01鐨勬暟鎹埌涓婄墖闃熷垪琛� - if (glass1 == null) { // 褰撴病鏈夊�兼椂浼犵┖ - spianMapper.Updatequeue(null, null, null, null, 0, null, null, null, null, 1); - } else { - spianMapper.Updatequeue(Do1ID.toString(), glass1.getordernumber(), glass1.getlistnumber(), - glass1.getboxnumber(), 0, glass1.getglasslengthmm().toString(), glass1.getglassheightmm().toString(), - glass1.getglasslength().toString(), glass1.getglassheight().toString(), 1); + PLCToMES = plcmes.getPlcParameter("PLCToMES").getValue();// 杩愰�佽溅璇锋眰 + IDStatus1 = plcmes.getPlcParameter("IDStatus1").getValue();// 1鍙蜂换鍔″畬鎴� + MESToPLCStatus1 = plcmes.getPlcParameter("MESToPLCStatus1").getValue();// 1鍙风‘璁ゅ瓧 + MESToPLC = plcmes.getPlcParameter("MESToPLC").getValue();// 鍙戦�佷换鍔″瓧 + // 杩愰�佽溅璇锋眰鍜屾祴閲忓畬鎴愯姹� + GlassInfo glass = albaniaMapper.SelectGlass(); + if (PLCToMES != null && glass != null && MESToPLC != null) { + if (PLCToMES.equals("1")&& MESToPLC.equals("0")&&("1".equals(GaToMES)||"2".equals(GaToMES))&& taskcont == 0) { + try { + Thread.sleep(100); // 姣�100姣妫�鏌ヤ竴娆� + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); // 澶勭悊绾跨▼涓柇 + } + spianService.selectAll(glass); + } } - } + // 浠诲姟瀹屾垚鏃� + if ((IDStatus1.equals("1") && MESToPLCStatus1.equals("0")) || + (IDStatus1.equals("4") && MESToPLCStatus1.equals("0"))) { + // 瀹屾垚纭瀛� + for (int i = 1; i < 7; i++) { + String Tastover = plcmes.getPlcParameter("IDStatus" + i).getValue();// PLC鐞嗙墖浠诲姟鐘舵�佹眹鎶� + String Glassid = plcmes.getPlcParameter("MESID" + i).getValueString();// MES鐜荤拑ID + GlassInfo id = albaniaMapper.SelectTaskId(Glassid); + if (Tastover.equals("1")) { + // 璋冪敤瀹屾垚浠诲姟 Glassid + storageCageService.FinishTask(); + System.out.println("瀹屾垚浠诲姟ID:" + id); + } else if (Tastover.equals("4")) { + storageCageService.FinishTask(); + System.out.println("瀹屾垚澶辫触浠诲姟ID:" + id); + } + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStatus" + i).getAddress(), (short) 1);// 瀹屾垚纭瀛� + } + System.out.println("瀹屾垚纭瀛桵ESToPLCStatus"); + // 娓呴櫎浠诲姟鍦板潃 + for (int i = 1; i < 7; i++) { + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStart" + i).getAddress(), (short) 0);// 娓呴櫎浠诲姟鍦板潃 + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCTarget" + i).getAddress(), (short) 0);// 娓呴櫎浠诲姟鍦板潃 + } + System.out.println("娓呴櫎浠诲姟鍦板潃"); + while (true) { + String currentValue = plcmes.getPlcParameter("MESToPLC").getValue(); + // 妫�鏌� MESToPLC 鐨勫�兼槸鍚︿负 0 + if (currentValue.equals("0")) { + System.out.println("MESToPLC 宸插彉涓� 0,鍋滄寰幆鍐欏叆"); + break; // 閫�鍑哄惊鐜� + } + // 濡傛灉涓嶄负 0锛岀户缁啓鍏� + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), + (short) 0);// 娓呴櫎浠诲姟鍙戦�佸瓧 + System.out.println("缁х画鍐欏叆 MESToPLC,褰撳墠鍊�:" + currentValue); + // 鍔犱笂寤舵椂锛岄伩鍏嶅崰鐢ㄨ繃澶� CPU 璧勬簮 + try { + Thread.sleep(100); // 渚嬪姣忕妫�鏌ヤ竴娆� + } catch (InterruptedException e) { + e.printStackTrace(); + } + } - if (Do2ID != null) { - // 鍐欏叆D02鐨勬暟鎹埌涓婄墖闃熷垪琛� - if (glass2 == null) { - spianMapper.Updatequeue(null, null, null, null, 0, null, null, null, null, 2); - } else { - spianMapper.Updatequeue(Do2ID.toString(), glass2.getordernumber(), glass2.getlistnumber(), - glass2.getboxnumber(), 0, glass2.getglasslengthmm().toString(), glass2.getglassheightmm().toString(), - glass2.getglasslength().toString(), glass2.getglassheight().toString(), 2); - spianMapper.overqueue2(Do2ID.toString(), 0, 1);// 鏇存敼鎵爜浣嶄换鍔¤〃鐨勭姸鎬佷负0 - S7control.getinstance().WriteWord("DB105.16", (short) 0);// 鍏抽棴浠诲姟鍚姩 + } + + // 姹囨姤鍙栨秷鏃� + if ((IDStatus1.equals("0")) && MESToPLCStatus1.equals("1")) { + // 鍙栨秷纭瀛� + for (int i = 1; i < 7; i++) { + String Tastover = plcmes.getPlcParameter("IDStatus" + i).getValue();// 渚濇鑾峰彇浠诲姟姹囨姤 + if (Tastover.equals("0")) { + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStatus" + i).getAddress(), (short) 0);// 娓呴櫎纭瀛� + + } + } + System.out.println("娓呴櫎纭瀛桵ESToPLCStatus"); } } @@ -169,7 +170,6 @@ // 鏌ヨ鏁版嵁搴� // 鎺ㄩ�佸埌鍓嶇 - // } } } -- Gitblit v1.8.0