wuyouming666
2023-12-02 946b26f26e54d40e85be9feb28cb5373384f03ea
springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
@@ -48,7 +48,7 @@
      // // TODO Auto-generated catch block
      // e.printStackTrace();
      // }
      // 判断进片请求
      List<Short> datas1List = S7control.getinstance().ReadWord("DB106.24", 1);// 获取prc进片请求数据
      List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1);// 获取进片车状态
      List<Short> datas1ListState2 = S7control.getinstance().ReadWord("DB105.16", 1);// 获取进片车任务是否启动
@@ -62,8 +62,11 @@
        // 当B01小车汇报完成时更改玻璃状态为1
        spianMapper.UpdateCageOver(B01glassid.toString(), 1);// 更改笼子表进片状态
        spianMapper.Updatetask(1, 0);// 更改进片任务状态为1
        spianMapper.overqueue(B01glassid.toString(), 0);// 更改上片任务表的状态为0
        spianMapper.UpdatetaskOut(B01glassid.toString()); // 完成上一次出片或者进片任务
        spianMapper.OverOutSlice(B01glassid.toString(), 2);// 完成出片队列任务
        S7control.getinstance().WriteWord("DB106.60", (short) 0);// 恢复B01小车应答改为0
        System.out.println("汇报时B01|" + B01glassid);
        //S7control.getinstance().WriteWord("DB105.48", (short) 1);//汇报B01小车收到
      }
@@ -71,17 +74,20 @@
      if (B02backs == true) {
        // 当B02小车汇报完成时更改玻璃状态为0
        spianMapper.UpdateCageOver(B02glassid.toString(), 0);// 更改笼子表出片状态
        spianMapper.UpdatetaskOut(B02glassid.toString()); // 完成上一次出片或者调度任务
        spianMapper.UpdatetaskOut(B02glassid.toString()); // 完成上一次出片或者进片任务
        spianMapper.OverOutSlice(B02glassid.toString(), 2);// 完成出片队列任务
        S7control.getinstance().WriteWord("DB106.62", (short) 0);// 恢复B02小车应答改为0
        // S7control.getinstance().WriteWord("DB105.50", (short) 1);//汇报B02小车收到
        System.out.println("汇报时B02|" + B02glassid);
      }
      // 获取DO1数据
      StringBuilder queueid1 = spianService.queGlassid("DB103.44", 14);
      StringBuilder queueid1 = spianService.queGlassid("DB106.26", 14);// 获取请求的id跟DO1同时清
      // 获取DO2数据
      StringBuilder queueid2 = spianService.queGlassid("DB103.58", 14);
      System.out.println("D01|" + queueid1);
      System.out.println("D02|" + queueid2);
      int questate = spianMapper.Selectquecount(queueid1.toString());// 判断扫码位是否有玻璃已确认
      // queueid1.toString().isEmpty()
      north_glass_buffer1 glass1 = spianMapper.selectGlass(queueid1.toString());// D01的玻璃信息
@@ -93,8 +99,10 @@
        if (glass1 == null) { //当没有值时传空
          spianMapper.Updatequeue(null,null,null,null, 0, null, null, null, null, 1);
        } else {
          spianMapper.overqueue2(queueid2.toString(), 0, 1);// 更改扫码位任务表的状态为0
          spianMapper.Updatequeue(queueid1.toString(),glass1.getordernumber(),glass1.getlistnumber(),glass1.getboxnumber(),0,glass1.getglasslengthmm().toString(),glass1.getglassheightmm().toString(),glass1.getglasslength().toString(),glass1.getglassheight().toString(),1);
          spianMapper.Updatequeue(queueid1.toString(), glass1.getordernumber(), glass1.getlistnumber(),
              glass1.getboxnumber(), 0, glass1.getglasslengthmm().toString(), glass1.getglassheightmm().toString(),
              glass1.getglasslength().toString(), glass1.getglassheight().toString(), 1);
        }
      }
@@ -103,8 +111,10 @@
        if(glass2==null){
          spianMapper.Updatequeue(null,null,null,null, 0, null, null, null, null, 2);
        }else{
        spianMapper.Updatequeue(queueid1.toString(),glass2.getordernumber(),glass2.getlistnumber(),glass2.getboxnumber(),0,glass2.getglasslengthmm().toString(),glass2.getglassheightmm().toString(),glass2.getglasslength().toString(),glass2.getglassheight().toString(),2);
          spianMapper.Updatequeue(queueid2.toString(), glass2.getordernumber(), glass2.getlistnumber(),
              glass2.getboxnumber(), 0, glass2.getglasslengthmm().toString(), glass2.getglassheightmm().toString(),
              glass2.getglasslength().toString(), glass2.getglassheight().toString(), 2);
          spianMapper.overqueue2(queueid2.toString(), 0, 1);// 更改扫码位任务表的状态为0
        S7control.getinstance().WriteWord("DB105.16", (short) 0);//关闭任务启动
        }
        
@@ -122,8 +132,8 @@
      boolean outstate1 = false;// 出片车任务是否启动
      if (outlist != null && outlist1 != null) {
        // 判断按订单出片
        outstate = outlist.contains((short) 0);// 出片车空闲判断
        outstate1 = outlist1.contains((short) 1);// 出片车任务是否启动
        outstate = outlist.contains((short) 0);// 出片车空闲判断 当出片车空闲时为true
        outstate1 = outlist1.contains((short) 1);// 出片车任务是否启动 当出片车任务启动时为true
        north_glass_buffer1 glass = spianMapper.SelectDBOut();// 判断是否有调拨后的出片任务未完成
@@ -150,11 +160,12 @@
          // 判断铝框出片队列表是否有待出片的玻璃
          String outglassid = spianMapper.SelectOutSlice();
          if (outglassid != null) {
            spianService.selectout2(outglassid);
            outstate = false;
          }
        }
        if (outstate == true) {// 下发任务后将任务启动改为0//出片车空闲判断
        if (outstate == true) {// 当出片车空闲时,且出片启动为1时,任务启动改为0
          if (outstate1 == true) {
            S7control.getinstance().WriteWord("DB105.18", (short) 0);// 出片任务启动改为0
          }