| src/main/java/com/zy/asrs/entity/BasArmMast.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinTwoParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/param/ArmBarcodeTwoParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/utils/PostMesDataUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/common/constant/AgvConstant.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/core/thread/SiemensDevpThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/entity/BasArmMast.java
@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.enums.IdType; import com.baomidou.mybatisplus.annotations.TableField; import com.core.common.SnowflakeIdWorker; import com.core.common.SpringUtils; import com.zy.asrs.entity.param.ArmBarcodeTwoParam; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import com.baomidou.mybatisplus.annotations.TableName; @@ -148,6 +151,18 @@ this.armMsg = armMsg; } public BasArmMast(ArmBarcodeTwoParam param) { SnowflakeIdWorker snowflakeIdWorker = SpringUtils.getBean(SnowflakeIdWorker.class); this.orderNo = param.getOrderNo(); this.sku = param.getSku(); this.matnr = param.getItem(); this.po = param.getPo(); this.upc = param.getUpc(); this.createTime = snowflakeIdWorker.nextId(); this.bindingTags = snowflakeIdWorker.nextId(); } // BasArmMast basArmMast = new BasArmMast( // null, // 机械臂编号[非空] // null, // 操作方向[非空] src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinTwoParam.java
New file @@ -0,0 +1,15 @@ package com.zy.asrs.entity.param; import lombok.Data; /* * Created by Monkey D. Luffy on 2025.09.09 * */ @Data public class AgvBindCtnrAndBinTwoParam { private String reqCode; private String podcode;//托盘码 private String positionCode = "2034";//站点 private String indBind; } src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java
@@ -47,7 +47,7 @@ return; case 1: getAgvTaskAssignmentParam1(basAgvMast); taskTyp = basAgvMast.getDevpId()==1?"1FYK":""; taskTyp = basAgvMast.getFloorNo()==1?"1FYK":"4FYK1"; ctnrTyp = "1"; return; case 2: src/main/java/com/zy/asrs/entity/param/ArmBarcodeTwoParam.java
New file @@ -0,0 +1,86 @@ package com.zy.asrs.entity.param; import com.core.common.Cools; import com.zy.asrs.entity.BasArmMast; import lombok.Data; /* * Created by Monkey D. Luffy on 2025.09.09 * */ @Data public class ArmBarcodeTwoParam { private String orderNo; private String po; private String item; private String sku; private String upc; public ArmBarcodeTwoParam() {} public ArmBarcodeTwoParam(String[][] barcodeArr) { for (String[] barcodes : barcodeArr){ if (barcodes[0].equals("orderNo")){ this.orderNo = barcodes[1]; } if (barcodes[0].equals("po")){ this.po = barcodes[1]; } if (barcodes[0].equals("item")){ this.item = barcodes[1]; } if (barcodes[0].equals("sku")){ this.sku = barcodes[1]; } if (barcodes[0].equals("upc")){ this.upc = barcodes[1]; } } } public ArmBarcodeTwoParam(String orderNo, String po, String item, String sku, String upc) { this.orderNo = orderNo; this.po = po; this.item = item; this.sku = sku; this.upc = upc; } public boolean allBool(){ if (Cools.isEmpty(orderNo)){ return false; } if (Cools.isEmpty(po)){ return false; } if (Cools.isEmpty(item)){ return false; } if (Cools.isEmpty(sku)){ return false; } if (Cools.isEmpty(upc)){ return false; } return true; } public boolean allBool(BasArmMast basArmMast){ if (!basArmMast.getOrderNo().equals(orderNo)){ return false; } // if (!basArmMast.getPo().equals(po)){ // return false; // } // if (!basArmMast.getSku().equals(sku)){ // return false; // } if (!basArmMast.getMatnr().equals(item)){ return false; } // if (!basArmMast.getUpc().equals(upc)){ // return false; // } return true; } } src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -83,6 +83,8 @@ @Autowired private BasDevpService basDevpService; @Autowired private SnowflakeIdWorker snowflakeIdWorker; @Autowired private LocDetlService locDetlService; @Autowired private BasErrLogService basErrLogService; @@ -923,16 +925,23 @@ */ public synchronized void connectWrk(Integer mark) { for (DevpSlave devp : slaveProperties.getDevp()) { SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocolIn = devpThread.getStation().get(4001); SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); SiemensDevpThread devpThread2 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2); StaProtocol staProtocolIn = devpThread2.getStation().get(4001); if (staProtocolIn == null) { continue; } else { staProtocolIn = staProtocolIn.clone(); } int[] outStaNos = {1015, 2016}; //衔接入库点 int[] outStaNos = {1015,2016}; //衔接入库点 for (int outStaNo : outStaNos) { StaProtocol staProtocolOut = devpThread.getStation().get(outStaNo);// 盘点出库衔接站点(可能是 1015,也可能是 2016) StaProtocol staProtocolOut =null; if(outStaNo == 2016){ staProtocolOut = devpThread2.getStation().get(outStaNo); }else{ staProtocolOut = devpThread.getStation().get(outStaNo); } if (staProtocolOut == null) { continue; } else { @@ -2861,6 +2870,8 @@ public synchronized void autoEmptyOut() { SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); SiemensDevpThread devpThread2 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2); List<Integer> list = new ArrayList<>(); list.add(1108);list.add(2031); for (Integer site:list){ @@ -2874,7 +2885,7 @@ //如果站点可出禁用,则不生成空盘出库任务 switch (site){ case 1108:staProtocol = devpThread.getStation().get(site - 2);break; case 2031:staProtocol = devpThread.getStation().get(site);break; case 2031:staProtocol = devpThread2.getStation().get(site);break; } if (staProtocol == null) { return; @@ -4414,13 +4425,84 @@ } String barcode = staProtocol.getBarcode(); if(!Cools.isEmpty(barcode)) { if("NG".endsWith(barcode) || "NoRead".equals(barcode)) { if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "0".equals(barcode) || barcode.length()<5) { armTaskAssignmentCallApiLogSave(staProtocol, "托盘条码为空", staProtocol.getSiteId()+"码垛位置,===》托盘条码为空", false); continue; } } else { armTaskAssignmentCallApiLogSave(staProtocol, "托盘条码为空", staProtocol.getSiteId()+"码垛位置,===》托盘条码为空", false); continue; } String[] barcodeList = barcode.split(";"); String[][] barcodeArr = new String[barcodeList.length / 2][2]; int i = 0; for (String[] barcodes : barcodeArr){ barcodes[0]=barcodeList[i]; i++; barcodes[1]=barcodeList[i]; i++; } ArmBarcodeTwoParam armBarcodeTwoParam = new ArmBarcodeTwoParam(barcodeArr); if (!armBarcodeTwoParam.allBool()){ continue; } List<BasArmMast> basArmMastList = basArmMastService.selectList( new EntityWrapper<BasArmMast>() .eq("arm_no", armSta.getArmNo()) .lt("status", 2) ); if (!basArmMastList.isEmpty()){ armTaskAssignmentCallApiLogSave(staProtocol, armSta.getArmNo()+"号机械臂存在未完成任务", staProtocol.getSiteId()+"机械臂,===》存在未完成任务", false); continue; } List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>().eq("arm_no",armSta.getArmNo())); boolean sign = true; for (BasArm basArm : basArmList){ if (basArm.getStaNo()==2){//NG continue; } LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou())); if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("D")){ continue; } List<BasArmMast> basArmMastList2 = basArmMastService.selectList( new EntityWrapper<BasArmMast>() .eq("arm_no", basArm.getArmNo()) .eq("sorting_line", basArm.getSortingLineSou()) .eq("sta_no", basArm.getStaNoSou()) .eq("status", 2) ); if (!basArmMastList2.isEmpty()){ BasArmMast basArmMast2 = basArmMastList2.get(0); if (!armBarcodeTwoParam.allBool(basArmMast2)){ continue; } } BasArmMast basArmMast = new BasArmMast(armBarcodeTwoParam); basArmMast.setArmNo(basArm.getArmNo()); basArmMast.setStaNo(basArm.getStaNoSou()); basArmMast.setSortingLine(basArm.getSortingLineSou()); basArmMastService.insert(basArmMast); sign = false; break; } if (sign){ for (BasArm basArm : basArmList){ if (basArm.getStaNo()==2){//NG LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou())); if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("D")){ continue; } BasArmMast basArmMast = new BasArmMast(armBarcodeTwoParam); basArmMast.setArmNo(basArm.getArmNo()); basArmMast.setStaNo(basArm.getStaNoSou()); basArmMast.setSortingLine(basArm.getSortingLineSou()); basArmMastService.insert(basArmMast); break; } } } } } @@ -5290,7 +5372,7 @@ (basAgvMast.getSourceStaNo().equals(2033))){ AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast); if(basAgvMast.getFloorNo()==1 || basAgvMast.getStaNo().equals(2034)) { if(basAgvMast.getFloorNo()==1) { // WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo()); // AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam(basAgvMast); // agvBindCtnrAndBinParam.setCtnrCode(basAgvMast.getTimestamp().toString()); @@ -5317,6 +5399,22 @@ agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV任务下发失败", "任务号:"+basAgvMast.getTaskNo()+"任务信息下发失败!!!", false); } }else{ if (!Cools.isEmpty(basAgvMast.getSourceStaNo())){ if (basAgvMast.getSourceStaNo().equals(4006)){ AgvBindCtnrAndBinTwoParam agvBindCtnrAndBinTwoParam = new AgvBindCtnrAndBinTwoParam(); agvBindCtnrAndBinTwoParam.setReqCode(String.valueOf(snowflakeIdWorker.nextId())); agvBindCtnrAndBinTwoParam.setPodcode(basAgvMast.getBarcode()); agvBindCtnrAndBinTwoParam.setPositionCode(basAgvMast.getSourceStaNo().toString()); agvBindCtnrAndBinTwoParam.setIndBind("1");; ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV容器绑定解绑", AgvConstant.AGV_URL+"/"+AgvConstant.AGV_hikRpcService,AgvConstant.getAGVADAPTOR(2), agvBindCtnrAndBinTwoParam); if (resultBind.getCode()!=200){ basAgvMast.setStatus(4); basAgvMastService.updateById(basAgvMast); } } } //任务下发 ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV任务下发", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam); if (result.getCode()==200){ src/main/java/com/zy/asrs/utils/PostMesDataUtils.java
@@ -64,6 +64,61 @@ return SUCCESS; } public ReturnT<String> postMesDataArmGrating(String name, String URL, String mesPath, Object combParam){ // if (true){ // System.out.println("name:"+name+",URL:"+URL+",mesPath:"+mesPath+",combParam:"+combParam); // return SUCCESS; // } if(combParam != null){ String response = ""; boolean success = false; try { // Map<String, Object> map = new HashMap<>() // map.put("appkey","ea1f0459efc02a79f046f982767939ae"); response = new HttpHandler.Builder() // .setHeaders(map) .setUri(URL) .setPath(mesPath) .setJson(JSON.toJSONString(combParam)) .build() .doPost(); System.out.println("response:"+response); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(0)) { success = true; } else { log.error("请求接口失败!!!url:{};request:{};response:{}", URL+"/"+mesPath, JSON.toJSONString(combParam), response); throw new CoolException(name); } } catch (Exception e) { log.error("请求接口失败!!!url:{};request:{};response:{}", URL+"/"+mesPath, JSON.toJSONString(combParam), response); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg(e.getMessage()); } finally { try { if (success){ // 保存接口日志 ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class); apiLogService.save( name, URL +"/"+ mesPath, null, "127.0.0.1", JSON.toJSONString(combParam), response, success ); } else { postMesDataCallApiLogSave(response,success,name, URL, mesPath, combParam); } } catch (Exception e) { log.error("", e); } } } return SUCCESS; } public ReturnT<String> postMesData(String name, String URL, String mesPath, Object combParam){ // if (true){ // System.out.println("name:"+name+",URL:"+URL+",mesPath:"+mesPath+",combParam:"+combParam); src/main/java/com/zy/common/constant/AgvConstant.java
@@ -5,9 +5,23 @@ * */ public class AgvConstant { public static final String AGV_IP = "10.10.10.200"; public static final String AGV_URL = "http://10.10.10.200:8181"; public static final String AGV_hikRpcService = "rcms/services/rest/hikRpcService"; public static final String AGV_bindPodAndBerth = "bindPodAndBerth";//bangding 2 public static final String AGV_bindCtnrAndBin = "bindCtnrAndBin";//bangding 1 public static String getAGVADAPTOR(int f) { switch (f) { case 1: return AGV_bindCtnrAndBin; default: return AGV_bindPodAndBerth; } } public static final String AGV_IP = "10.10.10.200"; public static final String AGV_ADAPTOR = "rcms/services/rest/hikRpcService/genAgvSchedulingTask";//创建订单 public static final String AGV_CTNRANDBING = "rcms/services/rest/hikRpcService/bindCtnrAndBin";//容器绑定 src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -28,6 +28,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import java.io.Console; import java.nio.charset.StandardCharsets; import java.text.MessageFormat; import java.util.*; @@ -87,8 +88,8 @@ add(2034);add(2035);add(2037); // add(2041);add(2042);add(2043);add(2044); // add(2045);add(2046);add(2047);add(2048); // add(2101);add(2102);add(2103);add(2104);add(2105);add(2106);add(2107);add(2108);add(2109);add(2110); // add(2111);add(2112);add(2113);add(2114);add(2115);add(2116);add(2117);add(2118);add(2119);add(2120); add(2101);add(2102);add(2103);add(2104);add(2105);add(2106);add(2107);add(2108);add(2109);add(2110); add(2111);add(2112);add(2113);add(2114);add(2115);add(2116);add(2117);add(2118);add(2119);add(2120); add(4001);add(4003);add(4004);add(4006); }}; @@ -121,11 +122,11 @@ put(2031, 464);put(2032, 348);put(2033, 556);put(2034, 92);put(2035, 0); put(2037, 256); // put(2101, 0);put(2102, 92);put(2103, 184);put(2104, 276);put(2105, 368); // put(2106, 460);put(2107, 552);put(2108, 644);put(2109, 736);put(2110, 828); // put(2111, 920);put(2112, 1012);put(2113, 1104);put(2114, 1196);put(2115, 1288); // put(2116, 1380);put(2117, 1472);put(2118, 1564);put(2119, 1656);put(2120, 1748); // put(2121, 1840);put(2122, 1932); put(2101, 0);put(2102, 92);put(2103, 184);put(2104, 276);put(2105, 368); put(2106, 460);put(2107, 552);put(2108, 644);put(2109, 736);put(2110, 828); put(2111, 920);put(2112, 1012);put(2113, 1104);put(2114, 1196);put(2115, 1288); put(2116, 1380);put(2117, 1472);put(2118, 1564);put(2119, 1656);put(2120, 1748); put(2121, 1840);put(2122, 1932); put(4001, 0);put(4002, 116);put(4003, 508);put(4004, 392);put(4005, 300); put(4006, 208); @@ -469,6 +470,9 @@ OperateResultExOne<byte[]> resultPlc = null; OperateResultExOne<byte[]> resultAgv = null; OperateResultExOne<byte[]> resultArm5 = null;//2110 OperateResultExOne<byte[]> resultArm6 = null;//2120 if(staNoSize == 102){ result1 = siemensS7Net.Read("DB100.0", (short) (2768));//1001-1028 result2 = siemensS7Net.Read("DB101.0", (short) (1268));//1029-1037 @@ -482,10 +486,12 @@ result1 = siemensS7Net.Read("DB200.0", (short) (3000));//2001-2030 result2 = siemensS7Net.Read("DB201.0", (short) (720));//2031-2037 result3 = siemensS7Net.Read("DB400.0", (short) (600));//4001-4006 // result6 = siemensS7Net.Read("DB400.0", (short) (7400));//2101-2122 result6 = siemensS7Net.Read("DB202.0", (short) (7400));//2101-2122 resultErr = siemensS7Net.Read("DB3.0", (short) (354)); // resultAgv = siemensS7Net.Read("DB901.0", (short) (7)); //agv取放货请求 // resultPlc = siemensS7Net.Read("DB902.0", (short) (7)); //输送线确认 resultArm5 = siemensS7Net.Read("DB202.4328", (short) (254));//2110 resultArm6 = siemensS7Net.Read("DB202.6888", (short) (254));//2120 } @@ -519,7 +525,30 @@ } else if (siteId < 2040) { result = result2; } else if(siteId<4000){ // result = result6; if (siteId == 2110) { if (resultArm5.IsSuccess) { // 转换为字符串 String resultString = siemensS7Net.getByteTransform().TransString(resultArm5.Content, 2, 252,"UTF-8"); // 去除可能的空字符 // resultString = resultString.TrimEnd('\0'); // System.out.println("2110Barcode:"+resultString); staProtocol.setBarcode(resultString); } else { staProtocol.setBarcode(""); } } else if (siteId == 2120){ if (resultArm6.IsSuccess) { // 转换为字符串 String resultString = siemensS7Net.getByteTransform().TransString(resultArm6.Content, 2, 252,"UTF-8"); // 去除可能的空字符 // resultString = resultString.TrimEnd('\0'); // System.out.println("2120Barcode:"+resultString); staProtocol.setBarcode(resultString); } else { staProtocol.setBarcode(""); } } result = result6; } else { result = result3; @@ -553,11 +582,14 @@ } staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2)); // 工作号 staProtocol.setStaNo((short)siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 12)); // 目标站 staProtocol.setBarcode(String.valueOf(siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 16))); //条码 if (staProtocol.getSiteId()!=2110 && staProtocol.getSiteId()!=2120 ){ staProtocol.setBarcode(String.valueOf(siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 16))); //条码 } if(specialSites2.contains(siteId)){ staProtocol.setStaNo((short)siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 48)); // 目标站 staProtocol.setBarcode(String.valueOf(siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 52))); //条码 if (staProtocol.getSiteId()!=2110 && staProtocol.getSiteId()!=2120 ){ staProtocol.setBarcode(String.valueOf(siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 52))); //条码 } } if(staNosErrList.contains(siteId)){ Integer offsetErr = siteErrOffsetMap.get(siteId); @@ -579,7 +611,8 @@ staProtocol.setAutoing(!status[0]); // 自动 boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3 - 4, 3); boolean[] statusErr = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3 - 8, 3); boolean[] statusSign = siemensS7Net.getByteTransform().TransBool(resultErr.Content, offsetSign, 3); // boolean[] statusSign = siemensS7Net.getByteTransform().TransBool(resultErr.Content, offsetSign, 3); boolean loading = false; if(!status1[0]) { @@ -632,28 +665,28 @@ staProtocol.setDataError(statusErr[18]); //信号 staProtocol.setSensorGArrive(statusSign[0]); staProtocol.setSensorGDec(statusSign[1]); staProtocol.setSensorGArrive2(statusSign[2]); staProtocol.setSensorLimit(statusSign[3]); staProtocol.setEmergency(statusSign[4]); staProtocol.setSensorGLeave(statusSign[5]); staProtocol.setSensorGLeave2(statusSign[6]); staProtocol.setSensorCUp(statusSign[7]); staProtocol.setSensorCDown(statusSign[8]); staProtocol.setLiftMotorFr(statusSign[9]); staProtocol.setLineMotorFr(statusSign[10]); staProtocol.setTranMotorFr(statusSign[11]); staProtocol.setRst1(statusSign[12]); staProtocol.setRst2(statusSign[13]); staProtocol.setRst3(statusSign[14]); staProtocol.setRst4(statusSign[15]); staProtocol.setSensorArriveD(statusSign[16]); staProtocol.setSensorDecD(statusSign[17]); staProtocol.setSensorArriveL(statusSign[18]); staProtocol.setSensorDecL(statusSign[19]); staProtocol.setSensorArriveR(statusSign[20]); staProtocol.setSensorDecR(statusSign[21]); // staProtocol.setSensorGArrive(statusSign[0]); // staProtocol.setSensorGDec(statusSign[1]); // staProtocol.setSensorGArrive2(statusSign[2]); // staProtocol.setSensorLimit(statusSign[3]); // staProtocol.setEmergency(statusSign[4]); // staProtocol.setSensorGLeave(statusSign[5]); // staProtocol.setSensorGLeave2(statusSign[6]); // staProtocol.setSensorCUp(statusSign[7]); // staProtocol.setSensorCDown(statusSign[8]); // staProtocol.setLiftMotorFr(statusSign[9]); // staProtocol.setLineMotorFr(statusSign[10]); // staProtocol.setTranMotorFr(statusSign[11]); // staProtocol.setRst1(statusSign[12]); // staProtocol.setRst2(statusSign[13]); // staProtocol.setRst3(statusSign[14]); // staProtocol.setRst4(statusSign[15]); // staProtocol.setSensorArriveD(statusSign[16]); // staProtocol.setSensorDecD(statusSign[17]); // staProtocol.setSensorArriveL(statusSign[18]); // staProtocol.setSensorDecL(statusSign[19]); // staProtocol.setSensorArriveR(statusSign[20]); // staProtocol.setSensorDecR(statusSign[21]); // Integer offsetAgv = siteAgvOffsetMap.get(siteId); //