From 8478a159d79bf9ca5da04ab18562f2d7cdddb05c Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期四, 25 九月 2025 17:06:08 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java | 12
src/main/java/com/zy/asrs/controller/RgvController.java | 82 -
src/main/java/com/zy/asrs/utils/RouteUtils.java | 23
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 1366 ++++++++++----------------------
src/main/webapp/views/console.html | 6
src/main/java/com/zy/asrs/domain/vo/RgvMsgTableVo.java | 9
src/main/webapp/views/rgv.html | 69 +
src/main/java/com/zy/asrs/service/WrkMastStaService.java | 7
src/main/webapp/static/css/rgv.css | 2
src/main/resources/mapper/WrkMastStaMapper.xml | 54
src/main/java/com/zy/asrs/domain/param/RgvOperatorParam.java | 13
src/main/java/com/zy/core/thread/RgvThread.java | 633 +-------------
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 1
src/main/webapp/static/js/console.js | 2
src/main/java/com/zy/asrs/entity/BasRgvOpt.java | 8
src/main/java/com/zy/core/MainProcess.java | 4
src/main/java/com/zy/core/model/protocol/RgvProtocol.java | 4
src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java | 2
src/main/java/com/zy/core/model/command/RgvCommand.java | 32
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 23
src/main/resources/application.yml | 124 ++
21 files changed, 811 insertions(+), 1,665 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index 085fc48..bbebddf 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -22,6 +22,7 @@
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.RgvModeType;
import com.zy.core.enums.RgvTaskModeType;
+import com.zy.core.enums.RgvTaskStatusType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.RgvSlave;
import com.zy.core.model.Task;
@@ -89,16 +90,16 @@
if (rgvProtocol == null) continue;
vo.setStatusType(rgvProtocol.modeType.desc); // 妯″紡鐘舵��
-// vo.setStatus(rgvProtocol.getMode().desc); // 鐘舵��
+ vo.setStatus(String.valueOf(rgvProtocol.getMode())); // 鐘舵��
vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 宸ヤ綅1浠诲姟鍙�
vo.setStatus1(rgvProtocol.getStatusType1().desc); // 宸ヤ綅1鐘舵��
vo.setLoading1(rgvProtocol.getLoaded1() ? "鏈夌墿" : "鏃犵墿"); // 宸ヤ綅1鏈夌墿
vo.setRgvPos(rgvProtocol.getRgvPos());
- vo.setRgvPos1(rgvProtocol.getRgvPosI());
+ vo.setRgvPos1(rgvProtocol.getRgvPosI2());
vo.setWalkPos(Objects.equals(rgvProtocol.getWalkPos(), 1) ? "鍦ㄥ畾浣�" : "涓嶅湪瀹氫綅");
vo.setPakMk(rgvThread.isPakMk() ? "鏃犻攣" : "閿佸畾");
vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 宸ヤ綅2浠诲姟鍙�
- vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵��
+// vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵��
vo.setLoading2(rgvProtocol.getLoaded2() ? "鏈夌墿" : "鏃犵墿"); // 宸ヤ綅2鏈夌墿
// --- 閬嶅巻 errX 瀛楁鐢熸垚 warnCode 鍜� alarm ---
@@ -152,22 +153,11 @@
continue;
}
- vo.setWorkNo(rgvProtocol.getTaskNo1()); // 浠诲姟鍙�
- if (rgvProtocol.getTaskNo1()>0) {
- WrkMast wrkMast = wrkMastService.selectById(rgvProtocol.getTaskNo1());
- if (wrkMast != null) {
- vo.setStatus(RgvStatusType.process(wrkMast.getIoType()).getDesc()); // 妯″紡鐘舵��
- vo.setSourceStaNo(wrkMast.getSourceStaNo$()); // 婧愮珯
- vo.setStaNo(wrkMast.getStaNo$()); // 鐩爣绔�
- vo.setSourceLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣�
- vo.setLocNo(wrkMast.getLocNo()); // 鐩爣搴撲綅
- }
- } else {
- vo.setStatus(rgvProtocol.modeType.equals(RgvModeType.AUTO)? rgvProtocol.modeType.desc: RgvModeType.HAND.desc); // 妯″紡鐘舵��
- }
- vo.setXspeed(rgvProtocol.getXSpeed()); // 璧拌閫熷害锛坢/min)
- vo.setXdistance(rgvProtocol.getXDistance()); // 璧拌璺濈(Km)
- vo.setXduration(rgvProtocol.getXDuration()); // 璧拌鏃堕暱(H)
+ vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 宸ヤ綅1宸ヤ綔鍙�
+ vo.setWorkNo2(rgvProtocol.getTaskNo2()); //宸ヤ綅2 宸ヤ綔鍙�
+ vo.setStaNo(String.valueOf(rgvProtocol.getRgvPosDestination())); //灏忚溅鐩爣绔�
+ vo.setStatus(rgvProtocol.modeType.equals(RgvModeType.AUTO)? rgvProtocol.modeType.desc: RgvModeType.HAND.desc); // 妯″紡鐘舵��
+
}
return R.ok().add(list);
}
@@ -195,15 +185,15 @@
RgvCommand command = new RgvCommand();
command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1(0); // 宸ヤ綔鍙�
+ command.setTaskNo(0); // 宸ヤ綔鍙�
command.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
- command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
+// command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣�
command.setTaskNo2(0); // 宸ヤ綔鍙�
command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
- command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
+// command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
command.setCommand(true);
return rgvControl(command)? R.ok(): R.error();
@@ -214,16 +204,17 @@
public R rgvFetch(RgvOperatorParam param){
RgvCommand command = new RgvCommand();
command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
- command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1(0); // 宸ヤ綔鍙�
- command.setTaskMode1(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栬揣
- command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
- command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
- command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo2( 0); // 宸ヤ綔鍙�
- command.setTaskMode2(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栨斁璐�
- command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
- command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
+ command.setWrkTaskPri(param.getWorkSta()); //鎵ц宸ヤ綅
+ command.setTaskNo(Math.toIntExact(param.getWorkNo())); // 宸ヤ綔鍙�
+ command.setTaskStatus(RgvTaskStatusType.FETCH); // 浠诲姟妯″紡: 鍙栬揣
+ command.setTargetPosition(Integer.valueOf(param.getStaNo())); // 鐩爣绔�
+// command.setTaskMode2(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栨斁璐�
+// command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣�
+// command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
+// command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣�
+// command.setTaskNo2( 0); // 宸ヤ綔鍙�
+// command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
+// command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
command.setCommand(true);
return rgvControl(command)? R.ok(): R.error();
@@ -234,16 +225,17 @@
public R rgvPut(RgvOperatorParam param){
RgvCommand command = new RgvCommand();
command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
- command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1(0); // 宸ヤ綔鍙�
- command.setTaskMode1(RgvTaskModeType.PUT); // 浠诲姟妯″紡: 鏀捐揣
- command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
- command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
- command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo2( 0); // 宸ヤ綔鍙�
- command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
- command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
- command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
+ command.setWrkTaskPri(param.getWorkSta()); //鎵ц宸ヤ綅
+ command.setTaskNo(Math.toIntExact(param.getWorkNo())); // 宸ヤ綔鍙�
+ command.setTaskStatus(RgvTaskStatusType.PUT); // 浠诲姟妯″紡: 鍙栬揣
+ command.setTargetPosition(Integer.valueOf(param.getStaNo())); // 鐩爣绔�
+// command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣�
+// command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
+// command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣�
+// command.setTaskNo2( 0); // 宸ヤ綔鍙�
+// command.setTaskMode2(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栨斁璐�
+// command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
+// command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
command.setCommand(true);
return rgvControl(command)? R.ok(): R.error();
@@ -257,7 +249,7 @@
RgvCommand command = new RgvCommand();
command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
command.setAckFinish1(true); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1(0); // 宸ヤ綔鍙�
+// command.setTaskNo1(0); // 宸ヤ綔鍙�
command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡
command.setSourceStaNo1((short) 0); // 婧愮珯
command.setDestinationStaNo1((short) 0); // 鐩爣绔�
@@ -280,7 +272,7 @@
RgvCommand command = new RgvCommand();
command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
command.setAckFinish1(true); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1( 0); // 宸ヤ綔鍙�
+// command.setTaskNo1( 0); // 宸ヤ綔鍙�
command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡
command.setSourceStaNo1((short) 0); // 婧愮珯
command.setDestinationStaNo1((short) 0); // 鐩爣绔�
@@ -346,7 +338,7 @@
if (rgvProtocol == null) {
throw new CoolException("RGV涓嶅湪绾�");
}
- if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(4, command))) {
+ if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(2, command))) {
return true;
} else {
throw new CoolException("鍛戒护涓嬪彂澶辫触");
diff --git a/src/main/java/com/zy/asrs/domain/param/RgvOperatorParam.java b/src/main/java/com/zy/asrs/domain/param/RgvOperatorParam.java
index 3b0881f..eae91a3 100644
--- a/src/main/java/com/zy/asrs/domain/param/RgvOperatorParam.java
+++ b/src/main/java/com/zy/asrs/domain/param/RgvOperatorParam.java
@@ -11,15 +11,20 @@
// RGV鍙�
private Integer rgvNo;
+ //宸ヤ綔鍙�
+ private Long workNo;
+
+ //鎵ц宸ヤ綅
+ private Integer workSta;
+
// 宸ヤ綅1婧愮珯
private Short sourceStaNo1;
- // 宸ヤ綅1鐩爣绔�
- private Short staNo1;
+
// 宸ヤ綅2婧愮珯
private Short sourceStaNo2;
- // 宸ヤ綅2鐩爣绔�
- private Short staNo2;
+ // 宸ヤ綅鐩爣绔�
+ private Short staNo;
}
diff --git a/src/main/java/com/zy/asrs/domain/vo/RgvMsgTableVo.java b/src/main/java/com/zy/asrs/domain/vo/RgvMsgTableVo.java
index dd6989b..07b0b8e 100644
--- a/src/main/java/com/zy/asrs/domain/vo/RgvMsgTableVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/RgvMsgTableVo.java
@@ -12,8 +12,10 @@
// RGV鍙�
private Integer rgvNo;
- // 宸ヤ綔鍙�
- private Integer workNo = 0;
+ // 宸ヤ綔鍙�1
+ private Integer workNo1 = 0;
+
+ private Integer workNo2 = 0;
// 鐘舵��
private String status = "-";
@@ -21,6 +23,9 @@
// 婧愮珯
private String sourceStaNo = "-";
+ //鎵ц宸ヤ綅
+ private Integer workSta = 0;
+
// 鐩爣绔�
private String staNo = "-";
diff --git a/src/main/java/com/zy/asrs/entity/BasRgvOpt.java b/src/main/java/com/zy/asrs/entity/BasRgvOpt.java
index cfad4ad..4a2437c 100644
--- a/src/main/java/com/zy/asrs/entity/BasRgvOpt.java
+++ b/src/main/java/com/zy/asrs/entity/BasRgvOpt.java
@@ -111,9 +111,9 @@
private Integer posLev;
/**
- * 鐩爣绔�
+ * 鎵ц宸ヤ綅
*/
- @ApiModelProperty(value= "鐩爣绔�")
+ @ApiModelProperty(value= "鎵ц宸ヤ綅")
@TableField("pos_sta")
private Integer posSta;
@@ -137,6 +137,7 @@
@ApiModelProperty(value= "淇敼浜哄憳")
@TableField("update_by")
private Long updateBy;
+
/**
* 澶囨敞
@@ -188,7 +189,7 @@
this.updateBy = updateBy;
}
- public BasRgvOpt(Integer wrkNo1, Integer rgvNo, Date sendTime, String mode, Integer sourceSta, Integer posSta, Integer response, Date updateTime, Long updateBy) {
+ public BasRgvOpt(Integer wrkNo1, Integer rgvNo, Date sendTime, String mode, Integer sourceSta, Integer posSta, Date updateTime) {
this.wrkNo1 = wrkNo1;
this.rgvNo = rgvNo;
this.sendTime = sendTime;
@@ -197,7 +198,6 @@
this.posSta = posSta;
this.response = response;
this.updateTime = updateTime;
- this.updateBy = updateBy;
}
// BasRgvOpt basRgvOpt = new BasRgvOpt(
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
index 99650a2..32fcad3 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
@@ -27,12 +27,14 @@
* 鏌ヨ鎸囧畾宸ヤ綔鍙蜂换鍔�
* */
WrkMastSta selectByWrkNo(@Param("workNo") Integer workNo);
+ WrkMastSta selectByWrkNoPut(@Param("workNo") Integer workNo);
/*
* 鏌ヨ涓嶅共娑夌殑鍙墽琛屼换鍔�
* */
WrkMastSta selectNoInterfere(@Param("staStarts") List<Integer> staStarts, @Param("staEnds") List<Integer> staEnds,@Param("workNo")Long workNo );
List<WrkMastSta> selectNoInterfereList(@Param("staStarts") List<Integer> staStarts, @Param("staEnds") List<Integer> staEnds);
+ WrkMastSta selectNoInterfereToCrn(@Param("staStarts") List<Integer> staStarts, @Param("staEnds") List<Integer> staEnds,@Param("workNo")Long workNo );
List<WrkMastSta> selectByWorkStaList(@Param("workSta") Integer workSta, @Param("rgvNo") Short rgvNo);
diff --git a/src/main/java/com/zy/asrs/service/WrkMastStaService.java b/src/main/java/com/zy/asrs/service/WrkMastStaService.java
new file mode 100644
index 0000000..29f1e00
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/WrkMastStaService.java
@@ -0,0 +1,7 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.WrkMastSta;
+
+public interface WrkMastStaService extends IService<WrkMastSta> {
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 1eea636..da0f6c1 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -99,6 +99,8 @@
@Autowired
private WrkMastService wrkMastService;
@Autowired
+ private WrkMastStaService wrkMastStaService;
+ @Autowired
private BasRgvMapService basRgvMapService;
@Autowired
private BasArmService basArmService;
@@ -114,7 +116,7 @@
private Integer inventoryNumber;
public Integer wrkNo = 10000;
-
+ public static final List<Integer> LEFT_POSITION = Arrays.asList(1018,2018);
/**
* 缁勬墭
* 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
@@ -973,7 +975,7 @@
//mark - 3 - ....
this.locToLoc(crn, crnProtocol,mark);
//棰勮皟搴�
- this.crnRebackHp(crnProtocol, crnThread);
+// this.crnRebackHp(crnProtocol, crnThread);
}
// News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
@@ -1109,7 +1111,7 @@
News.error(""+mark+" - 1"+" - 2"+" - 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
continue;
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0
&& staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
flag = true;
}
@@ -2794,103 +2796,103 @@
* 灏忚溅涓婂伐浣嶅乏鍙崇Щ鍔�
*
*/
- public synchronized boolean rgvStaMove(Long workNo) {
- try {
- for (RgvSlave rgv : slaveProperties.getRgv()) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- } else {
- rgvProtocol = rgvProtocol.clone();
- }
- if(rgvProtocol.isLoaded2ing() && rgvProtocol.isLoaded1ing()){
- continue;
- }
- if(rgvProtocol.isLoaded1ing() && !rgvProtocol.isLoaded2ing() && rgvProtocol.getTaskNo1() != 0){
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1());
- Short moveSta =0;
-
- if(wrkMastSta.getStaEnd()< 1036 || (2000 < wrkMastSta.getStaEnd() && wrkMastSta.getStaEnd()<2031)){
- moveSta = 2;
- boolean rgvComplete = rgvComplete3((int) rgvProtocol.getRgvNo(),7,wrkMastSta.getWrkNo(),moveSta);
- if (!rgvComplete){
- log.error("灏忚溅宸ヤ綅绉诲姩澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
- break;
- }
- }
- }
- if(!rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing() && rgvProtocol.getTaskNo2() != 0){
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2());
- Short moveSta =0;
-
- if(wrkMastSta.getStaEnd()> 2030 || (1036 < wrkMastSta.getStaEnd() && wrkMastSta.getStaEnd()<2000)){
- moveSta = 1;
- boolean rgvComplete = rgvComplete3((int) rgvProtocol.getRgvNo(),8,wrkMastSta.getWrkNo(),moveSta);
- if (!rgvComplete){
- log.error("灏忚溅宸ヤ綅绉诲姩澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
- break;
- }
- }
- }
-
-
- }
- }catch (Exception e){
- log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
- }
- }
+// public synchronized boolean rgvStaMove(Long workNo) {
+// try {
+// for (RgvSlave rgv : slaveProperties.getRgv()) {
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol == null) {
+// continue;
+// } else {
+// rgvProtocol = rgvProtocol.clone();
+// }
+// if (rgvProtocol.isLoaded2ing() && rgvProtocol.isLoaded1ing()) {
+// continue;
+// }
+// if (rgvProtocol.isLoaded1ing() && !rgvProtocol.isLoaded2ing() && rgvProtocol.getTaskNo1() != 0) {
+// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1());
+// Short moveSta = 0;
+//
+// if (wrkMastSta.getStaEnd() < 1036 || (2000 < wrkMastSta.getStaEnd() && wrkMastSta.getStaEnd() < 2031)) {
+// moveSta = 2;
+// boolean rgvComplete = rgvComplete3((int) rgvProtocol.getRgvNo(), 7, wrkMastSta.getWrkNo(), moveSta);
+// if (!rgvComplete) {
+// log.error("灏忚溅宸ヤ綅绉诲姩澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
+// break;
+// }
+// }
+// }
+// if (!rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing() && rgvProtocol.getTaskNo2() != 0) {
+// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2());
+// Short moveSta = 0;
+//
+// if (wrkMastSta.getStaEnd() > 2030 || (1036 < wrkMastSta.getStaEnd() && wrkMastSta.getStaEnd() < 2000)) {
+// moveSta = 1;
+// boolean rgvComplete = rgvComplete3((int) rgvProtocol.getRgvNo(), 8, wrkMastSta.getWrkNo(), moveSta);
+// if (!rgvComplete) {
+// log.error("灏忚溅宸ヤ綅绉诲姩澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
+// break;
+// }
+// }
+// }
+//
+//
+// }
+// } catch (Exception e) {
+// log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�" + e);
+// }
+// }
/**
* 瀹屾垚灏忚溅浠诲姟
*/
- public synchronized void rgvCompleteWrkMastSta() {
- try{
- for (DevpSlave devp : slaveProperties.getDevp()) {
- List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
- for (RgvSlave rgv : slaveProperties.getRgv()) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }else {
- rgvProtocol = rgvProtocol.clone();
- }
- BasRgv basRgv = basRgvService.selectById(rgv.getId());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�3", rgv.getId());
- continue;
- }
- //鏀捐揣纭
- if(rgvProtocol.getStatusType1()==RgvStatusType.FETCHWAITING && rgvProtocol.getModeType() == RgvModeType.AUTO){
- boolean rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(), 3);
- if (!rgvComplete){
- log.error("灏忚溅鏀捐揣澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
- }
- }
- if(rgvProtocol.getStatusType2()==RgvStatusType.FETCHWAITING && rgvProtocol.getModeType() == RgvModeType.AUTO){
- boolean rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(), 6);
- if (!rgvComplete){
- log.error("灏忚溅鏀捐揣澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
- }
- }
-
- // 鍙湁褰揜GV宸ヤ綅1绛夊緟WCS纭銆佽嚜鍔�
- if (rgvProtocol.getStatusType1() == RgvStatusType.WAITING
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- ){
-
- log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType1(),rgvProtocol);
- if(rgvProtocol.getTaskNo1() == 9999){ // 棰勮皟搴︿换鍔$‘璁�
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- Integer staNo = basRgvMap.getNowRoute();
- switch (staNo){
- case 1004: staNo = 1042; break;
- case 1007: staNo = 1105; break;
- }
-
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(staNo);
- boolean rgvComplete = false;
+// public synchronized void rgvCompleteWrkMastSta() {
+// try{
+// for (DevpSlave devp : slaveProperties.getDevp()) {
+// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
+// for (RgvSlave rgv : slaveProperties.getRgv()) {
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol == null) {
+// continue;
+// }else {
+// rgvProtocol = rgvProtocol.clone();
+// }
+// BasRgv basRgv = basRgvService.selectById(rgv.getId());
+// if (basRgv == null) {
+// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�3", rgv.getId());
+// continue;
+// }
+// //鏀捐揣纭
+// if(rgvProtocol.getStatusType1()==RgvStatusType.FETCHWAITING && rgvProtocol.getModeType() == RgvModeType.AUTO){
+// boolean rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(), 3);
+// if (!rgvComplete){
+// log.error("灏忚溅鏀捐揣澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
+// }
+// }
+// if(rgvProtocol.getStatusType2()==RgvStatusType.FETCHWAITING && rgvProtocol.getModeType() == RgvModeType.AUTO){
+// boolean rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(), 6);
+// if (!rgvComplete){
+// log.error("灏忚溅鏀捐揣澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
+// }
+// }
+//
+// // 鍙湁褰揜GV宸ヤ綅1绛夊緟WCS纭銆佽嚜鍔�
+// if (rgvProtocol.getStatusType1() == RgvStatusType.WAITING
+// && rgvProtocol.getModeType() == RgvModeType.AUTO
+// ){
+//
+// log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType1(),rgvProtocol);
+// if(rgvProtocol.getTaskNo1() == 9999){ // 棰勮皟搴︿换鍔$‘璁�
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// Integer staNo = basRgvMap.getNowRoute();
+// switch (staNo){
+// case 1004: staNo = 1042; break;
+// case 1007: staNo = 1105; break;
+// }
+//
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+// StaProtocol staProtocol = devpThread.getStation().get(staNo);
+// boolean rgvComplete = false;
// long now = System.currentTimeMillis();
// if (staProtocol.isLoading()) {
@@ -2900,43 +2902,31 @@
// rgvProtocol.setLoadingStartTime(now);
// }
// }
-
- if (staProtocol.isLoading()) {
- rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(), 3);
- if (!rgvComplete){
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛佺瓑寰呭叆搴撳彇璐�", rgvProtocol.getRgvNo());
- }
- }
- }
- if ( rgvProtocol.getTaskNo1()!=9999){
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1());
- if(null == wrkMastSta){
- log.error("灏忚溅鏃犱换鍔�");
- continue;
- }
- if(wrkMastSta.getWrkSts() == 1){//鍙栬揣纭
- if(!Objects.equals(rgvProtocol.getRgvPosI2(), wrkMastSta.getStaEnd())){
- continue;
- }
- wrkMastSta.setUpdateTime(new Date());
- wrkMastSta.setWrkSts(2);
-// wrkMastSta.setWorkSta(2);
- try{
- wrkMastStaMapper.updateById(wrkMastSta);
- log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- boolean rgvComplete = false;
-
- rgvComplete = rgvStaMove(wrkMastSta.getWrkNo());
- if (!rgvComplete){
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
- break;
- }
- break;
- }
-// if(wrkMastSta.getWrkSts() == 4){//琛岃蛋纭
+//
+// if (staProtocol.isLoading()) {
+// rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(), 3);
+// if (!rgvComplete){
+// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛佺瓑寰呭叆搴撳彇璐�", rgvProtocol.getRgvNo());
+// }
+// }
+// }
+// if ( rgvProtocol.getTaskNo1()!=9999 && rgvProtocol.getTaskNo1() != 0){
+// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1());
+// if(null == wrkMastSta){
+// log.error("灏忚溅鏃犱换鍔�");
+// continue;
+// }
+// if(wrkMastSta.getWrkSts() == 1){//鍙栬揣纭
+//// if(!Objects.equals(rgvProtocol.getRgvPosI2(), wrkMastSta.getStaEnd())){
+//// continue;
+//// }
+// boolean rgvComplete = false;
+// rgvComplete = rgvComplete3((int) rgvProtocol.getRgvNo(),7,wrkMastSta.getWrkNo(),(short)2);
+// if (!rgvComplete){
+// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
+// break;
+// }
+// wrkMastSta.setUpdateTime(new Date());
// wrkMastSta.setWrkSts(2);
// try{
// wrkMastStaMapper.updateById(wrkMastSta);
@@ -2944,90 +2934,37 @@
// }catch (Exception e){
// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
// }
-// boolean rgvComplete = false;
+// break;
+// }
+// }
//
-// rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(),7);
+// else {
+// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭浣嗘槸娌℃湁宸ヤ綔鍙凤紒",rgvProtocol.getRgvNo());
+// }
+// }
+// // 鍙湁褰揜GV宸ヤ綅2绛夊緟WCS纭銆佽嚜鍔�
+// if (rgvProtocol.getStatusType2() == RgvStatusType.WAITING
+// && rgvProtocol.getModeType() == RgvModeType.AUTO
+// ){
+// log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType2(),rgvProtocol);
+// if (rgvProtocol.getTaskNo2() !=0 ){
+// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2());
+// if(wrkMastSta.getWrkSts() == 1){//鍙栬揣纭
+// boolean rgvComplete = false;
+// rgvComplete = rgvComplete3((int) rgvProtocol.getRgvNo(),8,wrkMastSta.getWrkNo(),(short)1);
// if (!rgvComplete){
// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
// break;
// }
+// wrkMastSta.setWrkSts(2);
+// try{
+// wrkMastStaMapper.updateById(wrkMastSta);
+// log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
+// }catch (Exception e){
+// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+// }
// break;
// }
-// if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getWrkSts()!=1){
-// log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
-// continue;
-// }
-//
-// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-// StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
-// if (staProtocol == null) {
-// continue;
-// } else {
-// staProtocol = staProtocol.clone();
-// }
-// if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
-// continue;
-// }
-// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
-// if (!Cools.isEmpty(wrkMast)){
-// if (!staProtocol.isPakMk()){
-// continue;
-// }
-// // 涓嬪彂绔欑偣淇℃伅
-// staProtocol.setWorkNo(wrkMast.getWrkNo());
-// staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
-// if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
-// continue;
-// }
-// }
-// boolean rgvComplete = false;
-//
-// rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(),3);
-// if (!rgvComplete){
-// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
-// break;
-// }
-// WrkMast wrkMast1 = wrkMastService.selectByWrkNo(rgvProtocol.getTaskNo1());
-// wrkMast1.setPdcType("Y");
-//
-// wrkMastService.updateById(wrkMast1);
-//
-// wrkMastSta.setWrkSts(3);
-// wrkMastStaMapper.updateById(wrkMastSta);
-// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
-// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2471");
- }
-
- else {
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭浣嗘槸娌℃湁宸ヤ綔鍙凤紒",rgvProtocol.getRgvNo());
- }
- }
- // 鍙湁褰揜GV宸ヤ綅2绛夊緟WCS纭銆佽嚜鍔�
- if (rgvProtocol.getStatusType2() == RgvStatusType.WAITING
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- ){
- log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType2(),rgvProtocol);
- if (rgvProtocol.getTaskNo2() !=0 ){
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2());
- if(wrkMastSta.getWrkSts() == 1){//鍙栬揣纭
- boolean rgvComplete = false;
- rgvComplete = rgvComplete2((int) rgvProtocol.getRgvNo(),8,wrkMastSta.getWrkNo());
- if (!rgvComplete){
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
- break;
- }
- wrkMastSta.setWrkSts(2);
- try{
- wrkMastStaMapper.updateById(wrkMastSta);
- log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- break;
- }
// if(wrkMastSta.getWrkSts() == 4){//琛岃蛋鍚庣‘璁�
// wrkMastSta.setWrkSts(2);
// try{
@@ -3082,23 +3019,23 @@
// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2471");
- }
- else {
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭锛�",rgvProtocol.getRgvNo());
- }
- }
- //褰撳皬杞︽棤浠诲姟鏃跺彇娑堥攣瀹�
- if(rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0){
- rgvThread.setPakMk(true);
- rgvThread.setPakIn(true);
- rgvThread.setPakOut(true);
- }
- }
- }
- }catch (Exception e){
- log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
- }
- }
+// }
+// else {
+// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭锛�",rgvProtocol.getRgvNo());
+// }
+// }
+// //褰撳皬杞︽棤浠诲姟鏃跺彇娑堥攣瀹�
+// if(rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0){
+// rgvThread.setPakMk(true);
+// rgvThread.setPakIn(true);
+// rgvThread.setPakOut(true);
+// }
+// }
+// }
+// }catch (Exception e){
+// log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
+// }
+// }
/**
* rgv鏀捐揣浠诲姟涓嬪彂
@@ -3117,9 +3054,9 @@
continue;
}
//灏忚溅鏃犱换鍔℃椂璺宠繃
-// if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0){
-// continue;
-// }
+ if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0){
+ continue;
+ }
//鍏ュ簱鏀捐揣
if(rgvThread.isPakIn()){
for(RgvSlave.RgvStn rgvStn : rgv.getRgvInPStn()){//鍏ュ簱鏀捐揣绔欑偣
@@ -3140,8 +3077,7 @@
continue;
}
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.isInEnable()
- && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
+ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
flag = true;
}
if (!flag) {
@@ -3152,40 +3088,23 @@
continue;
}
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-// Integer wrkNo = 0;
- if(rgvProtocol.getTaskNo2() != 0){
- wrkNo = rgvProtocol.getTaskNo2();
- }
-// else{
-// wrkNo = rgvProtocol.getTaskNo1();
-// }
- if(!rgvProtocol.isLoaded2ing()){
- continue;
- }
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2());//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
+ Integer workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2() : rgvProtocol.getTaskNo1(); //鍏ュ簱鏀捐揣浼樺厛宸ヤ綅2鎵ц
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNoPut(workNo);
if( null == wrkMastSta ) {
News.infoNoLog( " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
continue;
}
- if(!Objects.equals(rgvProtocol.getRgvPosI2(), wrkMastSta.getStaEnd())){
- continue;
- }
- boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta,null,2); //鍛戒护涓嬪彂
+ boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
if (sign){
try{
- wrkMastSta.setWrkSts(3);
+ wrkMastSta.setWrkSts(2);
wrkMastStaMapper.updateById(wrkMastSta);
log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
}catch (Exception e){
log.error("鏇存柊灏忚溅浠诲姟澶辫触");
}
-// boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2526");
-// if (!signMap){
-// log.error("璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
-// }
} else {
log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
}
@@ -3212,8 +3131,7 @@
continue;
}
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.isOutEnable()
- && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
+ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
flag = true;
}
if (!flag) {
@@ -3225,24 +3143,20 @@
}
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-// Integer wrkNo = 0;
- if(rgvProtocol.getTaskNo1() != 0){
- wrkNo = rgvProtocol.getTaskNo1();
+ Integer workNo = 0;
+ if(rgvThread.isPakToCrn()){
+ workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1():rgvProtocol.getTaskNo2(); //姝e父鎯呭喌鍑哄簱鏀捐揣浼樺厛宸ヤ綅1鏀�
+ }else{
+ workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2():rgvProtocol.getTaskNo1(); //鎺ラ┏鎯呭喌浼樺厛宸ヤ綅2鏀�
}
-// else{
-// wrkNo = rgvProtocol.getTaskNo2();
-// }
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1());//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
+
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNoPut(workNo);//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
if( null == wrkMastSta ) {
- News.infoNoLog( " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
+ News.infoNoLog( " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍑哄簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
continue;
}
- if(!Objects.equals(rgvProtocol.getRgvPosI2(), wrkMastSta.getStaEnd())){
- continue;
- }
- Integer pos = 2;
- boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta,null,pos); //鍛戒护涓嬪彂
+ boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
if (sign){
try{
wrkMastSta.setWrkSts(3);
@@ -3261,15 +3175,49 @@
rgvThread.setPakRgv(true);//浼樺厛鏀捐揣瀹屾垚锛屽紑鍚璋冨害
}
}
+ /**
+ * rgv浠诲姟瀹屾垚
+ */
+ public synchronized void rgvTaskComplete(){
+ for (RgvSlave rgv : slaveProperties.getRgv()) {
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+ Long taskNo1 = Long.valueOf(rgvProtocol.getTaskNo1());
+ Long taskNo2 = Long.valueOf(rgvProtocol.getTaskNo2());
+ List<WrkMastSta> wrkMastStaList = wrkMastStaService.selectList(
+ new EntityWrapper<WrkMastSta>()
+ .eq("wrk_sts" ,2)
+ );
+ for(WrkMastSta wrkMastSta : wrkMastStaList){
+ if(!Objects.equals(wrkMastSta.getWrkNo(), taskNo1) && !Objects.equals(wrkMastSta.getWrkNo(), taskNo2)){
+ try{
+ wrkMastSta.setWrkSts(3);
+ wrkMastStaMapper.updateById(wrkMastSta);
+ log.info("鏇存柊灏忚溅宸ヤ綔妗h嚦瀹屾垚鎴愬姛");
+ }catch (Exception e){
+ log.error("鏇存柊灏忚溅宸ヤ綔妗h嚦瀹屾垚澶辫触");
+ }
+ }
+ }
+ if(rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0 && !rgvProtocol.isLoaded1ing() && !rgvProtocol.isLoaded2ing()){
+ rgvThread.setPakRgv(true);
+ rgvThread.setPakIn(true);
+ rgvThread.setPakOut(true);
+ rgvThread.setPakToCrn(true);
+ }
+ }
+ }
/**
* rgv鍑哄叆搴撲换鍔′笅鍙�
*/
public synchronized void rgvIoExecute(Integer mark) {
- List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
-
for (RgvSlave rgv : slaveProperties.getRgv()) {
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
@@ -3282,11 +3230,8 @@
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
continue;
}
-
// 鍙湁褰揜GV绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if ((rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getStatusType2() == RgvStatusType.IDLE)
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvThread.isPakMk()) {
+ if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() && rgvThread.isPakToCrn()) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛孯GV鍏ュ嚭搴撲綔涓氫笅鍙�");
// 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
// rgvRunWrkMastInTest();
@@ -3312,18 +3257,20 @@
rgvProtocol.setLastIo("O");
}
}
- WrkMastSta wrkMastSta2 = wrkMastStaMapper.selectByWorkSta(2, (int) rgvProtocol.getRgvNo());
- WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWorkSta(1, (int) rgvProtocol.getRgvNo());
- if(wrkMastSta1 != null && wrkMastSta2 != null){
- rgvThread.setPakMk(false); //灏忚溅鍙屽伐浣嶉攣瀹�
- }
}
- if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getTaskNo1() == 0 && rgvThread.isPakIn() && rgvThread.isPakRgv()){
- rgvPreScheduling();//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣
+ WrkMastSta wrkMastSta2 = wrkMastStaMapper.selectByWorkSta(2, (int) rgvProtocol.getRgvNo());
+ WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWorkSta(1, (int) rgvProtocol.getRgvNo());
+ if(wrkMastSta1 != null && wrkMastSta2 != null){
+ rgvThread.setPakMk(false); //灏忚溅鍙屽伐浣嶉攣瀹�
}
+ if(!rgvThread.isPakToCrn()){
+ rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟
+ }
+// if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getTaskNo1() == 0 && rgvThread.isPakIn() && rgvThread.isPakRgv()){
+// rgvPreScheduling();//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣
+// }
- if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO) {
+ if (rgvProtocol.getStatusType() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO) {
//灏忚溅鎵ц鏀捐揣浠诲姟
rgvOutExecute();
@@ -3374,12 +3321,10 @@
public synchronized void rgvRunWrkMastIn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark) {
for (RgvSlave.RgvStn rgvStn : slave.getRgvInTStn()) {//rgv鍏ュ簱鍙栬揣绔欑偣
boolean flag = false;
- boolean ds = false;
//閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
- StaProtocol staProtocol2 = null;
-
+ StaProtocol staProtocol2 = null; //杩炵画鍙栬揣浠诲姟绔欑偣
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
if(rgvStn.getStaNo2()!= null ){
staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2());
@@ -3401,15 +3346,12 @@
} else {
staProtocol = staProtocol.clone();
}
-
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo());
if (staDetl == null) {
News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
continue;
}
-
-
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() != 0
&& staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
flag = true;
@@ -3417,21 +3359,25 @@
if (!flag) {
News.errorNoLog("" + mark + " - 1" + " - 3" + " - Rgv鍏ュ簱鍙栬揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):"
+ "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
- + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isInEnable()
- + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanining());
+ + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanining());
continue;
}
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-// WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getWorkNo());//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
-
+ List<Integer> route = new ArrayList<>();
+ switch (rgvProtocol.getRgvNo()){
+ case 1: route = RouteUtils.getRouteOne();break;
+ case 2: route = RouteUtils.getRouteTwo();break;
+ }
+ basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
if( null == wrkMastSta ) {
News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
continue;
}
- WrkMastSta wrkMastSta2 = wrkMastStaMapper.selectByWorkSta(2, (int) rgvProtocol.getRgvNo());
+ WrkMastSta wrkMastSta2 = null;
+ if(rgvProtocol.getTaskNo2() != null){
+ wrkMastSta2 = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2());
+ }
boolean result = false;
if(wrkMastSta2 != null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta2.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
@@ -3442,31 +3388,20 @@
}
wrkMastSta.setWorkSta(wrkMastSta2 !=null ? 1 : 2);
wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo());
- Short direction = 2;//鍙屽伐浣嶆渶缁堟姷杈句綅缃�
boolean sign = false;
-// if(!Objects.equals(rgvProtocol.getRgvPosI2(), wrkMastSta.getStaEnd())){
-// continue;
-// }
- if(Objects.equals(rgvProtocol.getRgvPosI2(), wrkMastSta.getStaEnd()) && wrkMastSta.getWrkSts() == 4){
- wrkMastSta.setWrkSts(1);
+ sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
+ if (sign){
+ if(LEFT_POSITION.contains(wrkMastSta.getStaEnd())){
+ rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔�
+ }
+ rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁�
try{
+ wrkMastSta.setWrkSts(1);
wrkMastStaMapper.updateById(wrkMastSta);
log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
}catch (Exception e){
log.error("鏇存柊灏忚溅浠诲姟澶辫触");
}
- }
- //鑻ュ彇璐т负宸ヤ綅2涓斿彇璐у彛鍓嶄竴绔欑偣鏈夌墿锛岀粰鍙屽伐浣嶅悓鏃朵笅鍙戞寚浠�
- if(wrkMastSta.getWorkSta() == 2 && staProtocol2 != null && staProtocol2.isLoading() && staProtocol2.getWorkNo() > 0 && sign){
-// WrkMastSta wrkMastSta3 = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol2.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
-// wrkMastSta3.setWorkSta(1);
-// wrkMastSta3.setRgvNo((int) rgvProtocol.getRgvNo());
-// sign = rgvTakeFullAll2(basRgvMap.getRgvNo(), wrkMastSta, wrkMastSta3);
- }else{
- sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta,direction,1); //鍛戒护涓嬪彂
- }
- if (sign){
- rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁�
} else {
log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
}
@@ -3525,47 +3460,131 @@
continue;
}
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getWorkNo());//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
+ List<Integer> route = new ArrayList<>();
+ switch (rgvProtocol.getRgvNo()){
+ case 1: route = RouteUtils.getRouteOne();break;
+ case 2: route = RouteUtils.getRouteTwo();break;
+ }
+ basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
if( null == wrkMastSta ) {
News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
continue;
}
- WrkMastSta wrkMastSta2 = wrkMastStaMapper.selectByWorkSta(2, (int) rgvProtocol.getRgvNo());
+ WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1());
boolean result = false;
- if(wrkMastSta2 != null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
- result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta2.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
+ if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
+ result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
}
if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
rgvThread.setPakRgv(false);
continue;
}
- WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWorkSta(1, (int) rgvProtocol.getRgvNo());
wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo());
boolean sign = false;
- Short direction = 1;//宸ヤ綅1鏂瑰悜
- //鑻ュ彇璐т负宸ヤ綅2涓斿彇璐у彛鍓嶄竴绔欑偣鏈夌墿锛岀粰鍙屽伐浣嶅悓鏃朵笅鍙戞寚浠�
- if(Objects.equals(rgvProtocol.getRgvPosI2(), wrkMastSta.getStaEnd()) && wrkMastSta.getWrkSts() == 4){
- wrkMastSta.setWrkSts(1);
+ sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
+ if (sign){
+ rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
try{
+ wrkMastSta.setWrkSts(1);
wrkMastStaMapper.updateById(wrkMastSta);
log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
}catch (Exception e){
log.error("鏇存柊灏忚溅浠诲姟澶辫触");
}
+ } else {
+ log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
}
- if(wrkMastSta.getWorkSta() == 1 && staProtocol2 != null && staProtocol2.isLoading() && staProtocol2.getWorkNo() > 0 && sign){
-// WrkMastSta wrkMastSta3 = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol2.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
-// wrkMastSta3.setWorkSta(2);
-// wrkMastSta3.setRgvNo((int) rgvProtocol.getRgvNo());
-// sign = rgvTakeFullAll2(basRgvMap.getRgvNo(), wrkMastSta, wrkMastSta3);
- }else{
- sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta,direction,2); //鍛戒护涓嬪彂
+
+
+ }
+ }
+
+ /**
+ * 灏忚溅鍑哄簱鎺ラ┏浠诲姟鍙栬揣涓嬪彂
+ */
+ public synchronized void rgvRunWrkToCrn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark){
+ for (RgvSlave.RgvStn rgvStn : slave.getRgvOutTStn()) {//rgv鍑哄簱鍙栬揣绔欑偣
+ boolean flag = false;
+ //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
+ StaProtocol staProtocol2 = null;
+ if(rgvStn.getStaNo2()!= null ){
+ staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2());
+ if (staProtocol2 == null) {
+ News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
+ continue;
+ } else {
+ staProtocol2 = staProtocol2.clone();
+ }
+ BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2());
+ if (staDetl2 == null) {
+ News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
+ continue;
+ }
}
+ if (staProtocol == null) {
+ News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍑哄簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ // 鏌ヨ绔欑偣璇︾粏淇℃伅
+ BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo());
+ if (staDetl == null) {
+ News.error("" + mark + " - 1" + " - 2" + " - 鍑哄簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
+ continue;
+ }
+
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0
+ && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
+ flag = true;
+ }
+ if (!flag) {
+ News.errorNoLog("" + mark + " - 1" + " - 3" + " - Rgv鍑哄簱鍙栬揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):"
+ + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
+ + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isOutEnable()
+ + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanouting());
+ continue;
+ }
+ BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+ List<Integer> route = new ArrayList<>();
+ switch (rgvProtocol.getRgvNo()){
+ case 1: route = RouteUtils.getRouteOne();break;
+ case 2: route = RouteUtils.getRouteTwo();break;
+ }
+ basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfereToCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
+ if( null == wrkMastSta ) {
+ News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
+ continue;
+ }
+ WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1());
+ boolean result = false;
+ if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
+ result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
+ }
+ if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
+ rgvThread.setPakRgv(false);
+ continue;
+ }
+ wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
+ wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo());
+ boolean sign = false;
+ sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
if (sign){
rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
+ try{
+ wrkMastSta.setWrkSts(1);
+ wrkMastStaMapper.updateById(wrkMastSta);
+ log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
+ }catch (Exception e){
+ log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+ }
} else {
log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
}
@@ -3701,219 +3720,11 @@
// }
// return wrkEnable;
// }
- /**
- * 灏忚溅棰勮皟搴�
- */
- public synchronized void rgvPreScheduling(){
- try{
- List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
- for (BasRgvMap rgvSlave:basRgvMaps) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }else {
- rgvProtocol = rgvProtocol.clone();
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgvSlave.getRgvNo());
- continue;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 鎵嶈繘琛岄璋冨害
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && !rgvProtocol.isLoaded1ing()
- && rgvProtocol.getTaskNo1() == 0
- && !rgvProtocol.isLoaded2ing()
- && rgvProtocol.getTaskNo2() == 0
- && rgvThread.isPakMk()
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- if (basRgvMap == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
- continue;
- }
- List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
- // 鏍规嵁杈撻�佺嚎plc閬嶅巻
- for (DevpSlave devp : slaveProperties.getDevp()) {
- // 閬嶅巻鍏ュ簱鍙� 鍏ュ簱棰勮皟搴�
- List<Integer> staNos = Arrays.asList( 1043, 1104,1037);
- for (Integer staNo : staNos) {
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(staNo);
- if(staProtocol.isLoading()){
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo((int) rgvProtocol.getRgvNo()); // RGV缂栧彿
- rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(9999); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 绉诲姩
- rgvCommand.setEndStaNo1(0); //宸ヤ綅1 鏀捐揣鍚庤鍘荤殑浣嶇疆
- switch (staNo){
- case 1043: rgvCommand.setTargetPosition1(1042);break; //宸ヤ綅1鐩爣绔欑偣
- case 1104: rgvCommand.setTargetPosition1(1105);break;
- case 1037: rgvCommand.setTargetPosition1(1036);break;
-
- }
- if(Objects.equals(basRgvMap.getNowRoute(), staNo)){
- continue;
- }
- rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Rgv, (int) rgvProtocol.getRgvNo(), new Task(4, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", (int) rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand));
- }
- }
- }
-
- }
-
- }
- }
- }catch (Exception e){
- log.error("鎵ц灏忚溅绉诲姩涓嬪彂澶辫触");
- }
- }
- /**
- * 鎵ц灏忚溅鎼繍浠诲姟
- */
-// public synchronized void rgvRunWrkMastEmptyStaPut() {//鏀�
+// /**
+// * 灏忚溅棰勮皟搴�
+// */
+// public synchronized void rgvPreScheduling(){
// try{
-// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
-// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
-// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-// if (rgvProtocol == null) {
-// continue;
-// }
-// BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
-// if (basRgv == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�5", rgvSlave.getId());
-// continue;
-// }
-//
-// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
-// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-// && rgvProtocol.getModeType() == RgvModeType.AUTO
-// && rgvProtocol.getLoaded1()==1 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
-// ) {
-// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// if (basRgvMap == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
-// continue;
-// }
-// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
-// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔�
-// for (WrkMastSta wrkMastSta : wrkMastStaList){
-// if (wrkMastSta.getType()!=2 || (wrkMastSta.getWrkType()!=2 && wrkMastSta.getWrkType()!=4)){// 2:绌烘澘 2:鏀� 4锛氭媶鐩�
-// continue;
-// }
-// boolean sign = false;
-// if (wrkMastSta.getStaStart()==0 && wrkMastSta.getStaEnd()!=0){//鏀�
-// sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);
-// }else {
-// continue;
-// }
-// if (sign){
-// boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd());
-// if (signMap){
-// wrkMastSta.setWrkSts(2);
-// try{
-// wrkMastStaMapper.updateById(wrkMastSta);
-// }catch (Exception e){
-// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-// }
-// return;
-// }else {
-// log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
-// }
-// }else {
-// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
-// }
-// break;
-// }
-// }
-// }
-// }catch (Exception e){
-// log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
-// log.error("3933琛�"+e);
-// }
-// }
-
-// public synchronized void rgvRunWrkMastEmptyStaTake() {//鍙�
-// try{
-// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
-// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
-// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-// if (rgvProtocol == null) {
-// continue;
-// }
-// BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
-// if (basRgv == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�6", rgvSlave.getId());
-// continue;
-// }
-//
-// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
-// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-// && rgvProtocol.getModeType() == RgvModeType.AUTO
-// && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
-// ) {
-// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// if (basRgvMap == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
-// continue;
-// }
-// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
-// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
-// for (WrkMastSta wrkMastSta : wrkMastStaList){
-// if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=1){// 2:绌烘澘 1:鍙�
-// continue;
-// }
-// boolean sign = false;
-// if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//鍙�
-// sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);
-// } else {
-// continue;
-// }
-// if (sign){
-// boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute());
-// if (signMap){
-// wrkMastSta.setWrkSts(1);
-// try{
-// wrkMastStaMapper.updateById(wrkMastSta);
-// }catch (Exception e){
-// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-// }
-// return;
-// }else {
-// log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
-// }
-// }else {
-// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
-// }
-// break;
-// }
-// }
-// }
-// }catch (Exception e){
-// log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
-// log.error("3989琛�"+e);
-// }
-// }
-
- /*
- * 鏈変换鍔′絾鏈墽琛� 姝ゆ椂闇�瑕佽皟鏁村皬杞︿綅缃�
- * */
-// public synchronized void rgvRunWrkMastEmptyStaAvoidance() {
-// try{
-// Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔�
-// if (integer==0){
-// return;
-// }
// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
// for (BasRgvMap rgvSlave:basRgvMaps) {
// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
@@ -3925,396 +3736,101 @@
// }
// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
// if (basRgv == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�1", rgvSlave.getRgvNo());
+// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgvSlave.getRgvNo());
// continue;
// }
//
-// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
+// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 鎵嶈繘琛岄璋冨害
// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
// && rgvProtocol.getModeType() == RgvModeType.AUTO
-// && !rgvProtocol.isLoaded1ing() //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
-// && rgvProtocol.getTaskNo1()==0
-// && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+// && !rgvProtocol.isLoaded1ing()
+// && rgvProtocol.getTaskNo1() == 0
+// && !rgvProtocol.isLoaded2ing()
+// && rgvProtocol.getTaskNo2() == 0
// && rgvThread.isPakMk()
-//// && rgvProtocol.getTaskNo2()==0
-// ){
+// ) {
// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
+// if (basRgvMap == null) {
+// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
// continue;
// }
-//// if (rgvProtocol.getRgvNo()==1 && rgvProtocol.getRgvPosI().equals(100)){
-//// continue;
-//// } else if (rgvProtocol.getRgvNo()==2 && rgvProtocol.getRgvPosI().equals(157) ){
-//// continue;
-//// }
-// rgvAvoidanceXY((int) rgvProtocol.getRgvNo());
-// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2727");
+// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
+// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+// // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+// for (DevpSlave devp : slaveProperties.getDevp()) {
+// // 閬嶅巻鍏ュ簱鍙� 鍏ュ簱棰勮皟搴�
+// List<Integer> staNos = Arrays.asList( 1043, 1104,1037);
+// for (Integer staNo : staNos) {
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+// StaProtocol staProtocol = devpThread.getStation().get(staNo);
+// if(staProtocol.isLoading()){
+// RgvCommand rgvCommand = new RgvCommand();
+// rgvCommand.setRgvNo((int) rgvProtocol.getRgvNo()); // RGV缂栧彿
+// rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+// rgvCommand.setTaskNo1(9999); // 宸ヤ綅1宸ヤ綔鍙�
+// rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 绉诲姩
+// rgvCommand.setEndStaNo1(0); //宸ヤ綅1 鏀捐揣鍚庤鍘荤殑浣嶇疆
+// switch (staNo){
+// case 1043: rgvCommand.setTargetPosition1(1042);break; //宸ヤ綅1鐩爣绔欑偣
+// case 1104: rgvCommand.setTargetPosition1(1105);break;
+// case 1037: rgvCommand.setTargetPosition1(1036);break;
+//
+// }
+// if(Objects.equals(basRgvMap.getNowRoute(), staNo)){
+// continue;
+// }
+// rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
+// if (!MessageQueue.offer(SlaveType.Rgv, (int) rgvProtocol.getRgvNo(), new Task(4, rgvCommand))) {
+// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", (int) rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand));
+// }
+// }
+// }
+//
+// }
+//
// }
// }
// }catch (Exception e){
-// log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
-// log.error("4109琛�"+e);
+// log.error("鎵ц灏忚溅绉诲姩涓嬪彂澶辫触");
// }
// }
- /*
- * 灏忚溅XY绉诲姩 閬胯
- * */
-// public synchronized boolean rgvAvoidanceXY(Integer rgvId){
-// BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo(rgvId);
-// if (basRgvMap.getStartRoute() == 100 || basRgvMap.getStartRoute() == 101){
-// try{
-//
-// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-// RgvCommand rgvCommand = new RgvCommand();
-// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-// rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙�
-// rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
-// //basRgvMap.getLockStartRoute().shortValue()
-// rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue());
-// rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
-// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
-// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
-// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-// return false;
-// } else {
-// return true;
-// }
-// }catch (Exception e){
-// return false;
-//
-// }
-// }else {
-// try{
-// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-// RgvCommand rgvCommand = new RgvCommand();
-// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-// rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙�
-// rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
-// //basRgvMap.getLockStartRoute().shortValue()
-// rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue());
-// rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
-// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
-// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
-// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-// return false;
-// } else {
-// return true;
-// }
-// }catch (Exception e){
-// return false;
-//
-// }
-// }
-// }
/*
* 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
* */
- public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta,Short direction,Integer pos){
+ public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){
try{
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
RgvCommand rgvCommand = new RgvCommand();
- boolean pakIn1 = true;
- boolean pakIn2 = true;
rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- if(wrkMastSta.getWrkSts() == 0){//鍒濆鍚庤璧�
- rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskStatus1(RgvTaskStatusType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐�
- rgvCommand.setEndStaNo1(wrkMastSta.getWrkEnd()); //宸ヤ綅1 鏀捐揣鍚庤鍘荤殑浣嶇疆
- rgvCommand.setTargetPosition1(wrkMastSta.getStaStart()); //宸ヤ綅1鐩爣绔欑偣
- rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
-// }
- wrkMastSta.setWrkSts(4);
- try{
- wrkMastStaMapper.updateById(wrkMastSta);
- log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
+ RgvTaskStatusType type;
+ Integer targetPosition = 0;
+ if(wrkMastSta.getWrkSts() == 0){
+ type = RgvTaskStatusType.FETCH; //鍙栬揣
+ targetPosition = wrkMastSta.getStaStart();
+ }else{
+ type = RgvTaskStatusType.PUT; //鏀捐揣
+ targetPosition = wrkMastSta.getStaEnd();
}
- if(wrkMastSta.getWrkSts() == 1){//鍙栬揣
- if(pos == 2){//鍑哄簱RGV鍙栬揣
- rgvCommand.setAckFinish2(false); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo2(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅2宸ヤ綔鍙�
- rgvCommand.setTaskStatus2(RgvTaskStatusType.FETCH); // 宸ヤ綅2浠诲姟妯″紡: 鍙栨斁璐�
- rgvCommand.setEndStaNo2(wrkMastSta.getWrkEnd()); //宸ヤ綅2 鏀捐揣鍚庤鍘荤殑浣嶇疆
- rgvCommand.setTargetPosition1(wrkMastSta.getStaStart()); //宸ヤ綅2鐩爣绔欑偣
- rgvCommand.setDirection2((short)2);
-// rgvCommand.setWrkTaskMove2(direction);
- rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
- pakIn1 = false;
- }else{ //鍏ュ簱RGV鍙栬揣
- rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskStatus1(RgvTaskStatusType.FETCH); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐�
- rgvCommand.setEndStaNo1(wrkMastSta.getWrkEnd()); //宸ヤ綅1 鏀捐揣鍚庤鍘荤殑浣嶇疆
- rgvCommand.setTargetPosition1(wrkMastSta.getStaStart()); //宸ヤ綅1鐩爣绔欑偣
- rgvCommand.setDirection1((short)1);
-// rgvCommand.setWrkTaskMove1(direction);
- rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
- }
- if(!pakIn1){
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- }else{
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- }
+ rgvCommand.setTaskNo(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅宸ヤ綔鍙�
+ rgvCommand.setTaskStatus(type); // 宸ヤ綅浠诲姟妯″紡: 鍙栬揣
+ rgvCommand.setTargetPosition(targetPosition); //宸ヤ綅鐩爣绔欑偣
+ rgvCommand.setWrkTaskPri(wrkMastSta.getWorkSta());
+ if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(2, rgvCommand))) {
+ //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+ log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+ return false;
+ } else {
+ return true;
}
- if(wrkMastSta.getWrkSts() == 2) {//鏀捐揣
- if((pos == 2)){ //宸ヤ綅2浠诲姟鏀捐揣
- rgvCommand.setAckFinish2(false); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo2(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅2宸ヤ綔鍙�
- rgvCommand.setTaskStatus2(RgvTaskStatusType.PUT); // 宸ヤ綅2浠诲姟妯″紡: 鏀捐揣
- rgvCommand.setEndStaNo2(wrkMastSta.getWrkEnd()); //宸ヤ綅2 鏀捐揣鍚庤鍘荤殑浣嶇疆
- rgvCommand.setTargetPosition1(wrkMastSta.getStaEnd()); //宸ヤ綅2鐩爣绔欑偣
- rgvCommand.setDirection2((short)2);
- rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
- pakIn2 = false;
- }else{ //宸ヤ綅1浠诲姟鏀捐揣
- rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskStatus1(RgvTaskStatusType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
- rgvCommand.setEndStaNo1(wrkMastSta.getWrkEnd()); //宸ヤ綅1 鏀捐揣鍚庤鍘荤殑浣嶇疆
- rgvCommand.setTargetPosition1(wrkMastSta.getStaEnd()); //宸ヤ綅1鐩爣绔欑偣
- rgvCommand.setDirection1((short)1);
- rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
- }
- if(pakIn2){
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- }else{
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- }
- }
- return true;
+
}catch (Exception e){
return false;
}
}
-
-
- /*
- * 灏忚溅鍙栬揣鑷冲弻宸ヤ綅浠诲姟
- * */
- public synchronized boolean rgvTakeFullAll2(Integer rgvId,WrkMastSta wrkMastSta,WrkMastSta wrkMastSta2){
- try{
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- boolean pakIn1 = true;
- boolean pakIn2 = true;
- rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- if(wrkMastSta.getWrkSts() == 0) {//鍙栬揣
- if (wrkMastSta.getWorkSta() == 2) {//鍏ュ簱RGV鍙栬揣
- rgvCommand.setAckFinish2(false); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo2(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅2宸ヤ綔鍙�
- rgvCommand.setTaskStatus2(RgvTaskStatusType.FETCH); // 宸ヤ綅2浠诲姟妯″紡: 鍙栨斁璐�
- rgvCommand.setEndStaNo2(wrkMastSta.getWrkEnd()); //宸ヤ綅2 鏀捐揣鍚庤鍘荤殑浣嶇疆
- rgvCommand.setTargetPosition2(wrkMastSta.getStaStart()); //宸ヤ綅2鐩爣绔欑偣
- rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
- rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(Math.toIntExact(wrkMastSta2.getWrkNo())); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskStatus1(RgvTaskStatusType.FETCH); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐�
- rgvCommand.setEndStaNo1(wrkMastSta2.getWrkEnd()); //宸ヤ綅1 鏀捐揣鍚庤鍘荤殑浣嶇疆
- rgvCommand.setTargetPosition1(wrkMastSta2.getStaStart()); //宸ヤ綅1鐩爣绔欑偣
- rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
- rgvCommand.setWrkTaskPri((short) 2); //浼樺厛鎵ц宸ヤ綅2浠诲姟
- } else { //鍑哄簱RGV鍙栬揣
- rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskStatus1(RgvTaskStatusType.FETCH); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐�
- rgvCommand.setEndStaNo1(wrkMastSta.getWrkEnd()); //宸ヤ綅1 鏀捐揣鍚庤鍘荤殑浣嶇疆
- rgvCommand.setTargetPosition1(wrkMastSta.getStaStart()); //宸ヤ綅1鐩爣绔欑偣
- rgvCommand.setAckFinish2(false); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo2(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅2宸ヤ綔鍙�
- rgvCommand.setTaskStatus2(RgvTaskStatusType.FETCH); // 宸ヤ綅2浠诲姟妯″紡: 鍙栨斁璐�
- rgvCommand.setEndStaNo2(wrkMastSta.getWrkEnd()); //宸ヤ綅2 鏀捐揣鍚庤鍘荤殑浣嶇疆
- rgvCommand.setTargetPosition2(wrkMastSta.getStaStart()); //宸ヤ綅2鐩爣绔欑偣
- rgvCommand.setWrkTaskPri((short) 1); //鍑哄簱鍙栬揣浼樺厛鎵ц宸ヤ綅1浠诲姟
- rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
- }
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(2, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- }
-
-// if(wrkMastSta.getWrkSts() == 2) {//鏀捐揣
-// if((wrkMastSta.getWorkSta() == 2)){ //宸ヤ綅2浠诲姟鏀捐揣
-// rgvCommand.setAckFinish2(false); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
-// rgvCommand.setTaskNo2(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅2宸ヤ綔鍙�
-// rgvCommand.setTaskStatus2(RgvTaskStatusType.PUT); // 宸ヤ綅2浠诲姟妯″紡: 鏀捐揣
-// rgvCommand.setEndStaNo2(wrkMastSta.getWrkEnd()); //宸ヤ綅2 鏀捐揣鍚庤鍘荤殑浣嶇疆
-// rgvCommand.setTargetPosition2(wrkMastSta.getStaEnd()); //宸ヤ綅2鐩爣绔欑偣
-// rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
-// pakIn2 = false;
-// }else{ //宸ヤ綅1浠诲姟鏀捐揣
-// rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-// rgvCommand.setTaskNo1(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅1宸ヤ綔鍙�
-// rgvCommand.setTaskStatus1(RgvTaskStatusType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
-// rgvCommand.setEndStaNo1(wrkMastSta.getWrkEnd()); //宸ヤ綅1 鏀捐揣鍚庤鍘荤殑浣嶇疆
-// rgvCommand.setTargetPosition1(wrkMastSta.getStaEnd()); //宸ヤ綅1鐩爣绔欑偣
-// rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
-// }
-// if(!pakIn2){
-// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
-// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
-// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-// return false;
-// } else {
-// return true;
-// }
-// }else{
-// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
-// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
-// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-// return false;
-// } else {
-// return true;
-// }
-// }
-// }
- return true;
- }catch (Exception e){
- return false;
- }
- }
-
- /*
- * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
- * */
-// public synchronized boolean rgvTakeFull(Integer rgvId,WrkMastSta wrkMastSta){
-// try{
-// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-// RgvCommand rgvCommand = new RgvCommand();
-// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-// rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
-// rgvCommand.setTaskMode1(RgvTaskModeType.FETCH); // 宸ヤ綅1浠诲姟妯″紡: 鍙栬揣
-// rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣
-// rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
-// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
-// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
-// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-// return false;
-// } else {
-// return true;
-// }
-// }catch (Exception e){
-// return false;
-// }
-// }
-
- /*
- * 灏忚溅鏀捐揣鑷宠緭閫佺嚎浠诲姟
- * */
-// public synchronized boolean rgvPutFull(Integer rgvId,WrkMastSta wrkMastSta){
-// try{
-// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-// RgvCommand rgvCommand = new RgvCommand();
-// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-// rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
-// rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
-// rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣
-// rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
-// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
-// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
-// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-// return false;
-// } else {
-// return true;
-// }
-// }catch (Exception e){
-// return false;
-// }
-// }
-
- /*
- * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟
- * */
-// public synchronized boolean rgvTakeEmpty(Integer rgvId,WrkMastSta wrkMastSta){
-// try{
-// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-// RgvCommand rgvCommand = new RgvCommand();
-// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-// rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
-// rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
-// rgvCommand.setTaskMode2(RgvTaskModeType.FETCH); // 宸ヤ綅2浠诲姟妯″紡: 鍙栬揣
-// rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅2璧风偣
-// rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭
-// if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(5, rgvCommand))) {
-// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
-// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-// return false;
-// } else {
-// return true;
-// }
-// }catch (Exception e){
-// return false;
-// }
-// }
-
- /*
- * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟
- * */
-// public synchronized boolean rgvPutEmpty(Integer rgvId,WrkMastSta wrkMastSta){
-// try{
-// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-// RgvCommand rgvCommand = new RgvCommand();
-// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-// rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
-// rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
-// rgvCommand.setTaskMode2(RgvTaskModeType.PUT); // 宸ヤ綅2浠诲姟妯″紡: 鏀捐揣
-// rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅2鐩爣绔欑偣
-// rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭
-// if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(5, rgvCommand))) {
-// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
-// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-// return false;
-// } else {
-// return true;
-// }
-// }catch (Exception e){
-// return false;
-// }
-// }
/**
* 鍙栨斁鍙栬矾寰勮绠�
@@ -4366,44 +3882,6 @@
return false;
}
}
-
- /*
- * 灏忚溅澶嶄綅
- * */
- public synchronized boolean rgvComplete2(Integer rgvId,Integer step,Long workNo){
- try{
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(step, new RgvCommand(),workNo))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}",rgvId);
- return false;
- } else {
- log.info("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}",rgvId);
- return true;
- }
- }catch (Exception e){
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}銆傚紓甯革細"+e,rgvId);
- return false;
- }
- }
-
- public synchronized boolean rgvComplete3(Integer rgvId,Integer step,Long workNo,Short moveSta){
- try{
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(step, new RgvCommand(),workNo,moveSta))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}",rgvId);
- return false;
- } else {
- log.info("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}",rgvId);
- return true;
- }
- }catch (Exception e){
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}銆傚紓甯革細"+e,rgvId);
- return false;
- }
- }
-
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java
new file mode 100644
index 0000000..f72f40a
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.entity.WrkMastSta;
+import com.zy.asrs.mapper.WrkMastStaMapper;
+import com.zy.asrs.service.WrkMastStaService;
+import org.springframework.stereotype.Service;
+
+@Service("wrkMastStaService")
+public class WrkMastStaServiceImpl extends ServiceImpl<WrkMastStaMapper, WrkMastSta> implements WrkMastStaService {
+
+}
diff --git a/src/main/java/com/zy/asrs/utils/RouteUtils.java b/src/main/java/com/zy/asrs/utils/RouteUtils.java
index c161495..15101f5 100644
--- a/src/main/java/com/zy/asrs/utils/RouteUtils.java
+++ b/src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -47,6 +47,15 @@
static {
Collections.reverse(TRACK_POSITION_REVERSE_SEQUENCE);
}
+ //1妤兼垬绔欑偣
+ public static final List<Integer> TRACK_POSITION_ONE = Arrays.asList(
+ 1004, 1007, 1010, 1014, 1018, 1021, 1024, 1028, 1031, 1035,1042,1105,1106,1041,
+ 1038,1036
+ );
+ //2妤兼垬绔欑偣
+ public static final List<Integer> TRACK_POSITION_TWO = Arrays.asList(
+ 2003,2006,2009,2012,2015,2018,2021,2024,2027,2030,2037,2031
+ );
// 杞ㄩ亾鏄犲皠锛堟妸鏄犲皠绔欑偣鏇挎崲鎴愪富绔欑偣锛�
public static final Map<Integer, Integer> SITE_MAPPING = new HashMap<>();
@@ -157,6 +166,20 @@
}
return result;
}
+ public static List<Integer> getRouteOne(){
+
+ List<Integer> groupRoute = new ArrayList<>();
+ groupRoute = TRACK_POSITION_ONE;
+
+ return groupRoute;
+ }
+ public static List<Integer> getRouteTwo(){
+
+ List<Integer> groupRoute = new ArrayList<>();
+ groupRoute = TRACK_POSITION_TWO;
+
+ return groupRoute;
+ }
/*
* 鑾峰彇鏈�杩滅珯鐐�
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 16f3094..6909287 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -135,8 +135,8 @@
}catch (Exception e){
log.error("RGV ===>> 灏忚溅浠诲姟浣滀笟涓嬪彂寮傚父"+e);
}
- //瀹屾垚灏忚溅浠诲姟
- mainService.rgvCompleteWrkMastSta();
+// //瀹屾垚灏忚溅浠诲姟
+ mainService.rgvTaskComplete();
//宸ヤ綅绉诲姩
// mainService.rgvStaMove();
diff --git a/src/main/java/com/zy/core/model/command/RgvCommand.java b/src/main/java/com/zy/core/model/command/RgvCommand.java
index 7ea6cbd..c1c5f12 100644
--- a/src/main/java/com/zy/core/model/command/RgvCommand.java
+++ b/src/main/java/com/zy/core/model/command/RgvCommand.java
@@ -22,7 +22,7 @@
private Boolean ackFinish1 = true;
// 宸ヤ綅1浠诲姟鍙�
- private Integer taskNo1 = 0;
+ private Integer taskNo = 0;
/**
* 浠诲姟妯″紡锛�
@@ -35,14 +35,18 @@
/**
* 浣滀笟妯″紡
+ * 0 绌洪棽
+ * 1 琛岃蛋
+ * 2 鍙栬揣
+ * 3 鏀捐揣
*/
- private Short taskStatus1 = 0;
+ private Short taskStatus = 0;
@JSONField(serialize = false)
private RgvTaskModeType taskModeType1;
@JSONField(serialize = false)
- private RgvTaskStatusType taskStatusType1;
+ private RgvTaskStatusType taskStatusType;
/*
宸ヤ綅1婧愮珯
@@ -55,9 +59,9 @@
private Short destinationStaNo1 = 0;
/**
- * 宸ヤ綅1鐩爣浣嶇疆
+ * 宸ヤ綅鐩爣浣嶇疆
*/
- private Integer targetPosition1 = 0;
+ private Integer targetPosition = 0;
/**
* RGV鏀捐揣鍚庤揣鐗╄鍘荤殑鐩殑鍦�
*/
@@ -135,10 +139,10 @@
/**
* 鍚屾椂涓嬪彂鏃朵綔涓氶『搴�
* 0锛氭棤锛堜笉鍒ゆ柇锛�
- * 1锛氬伐浣�1鍏堟墽琛�
- * 2锛氬伐浣�2鍏堟墽琛�
+ * 1锛氬伐浣�1鎵ц
+ * 2锛氬伐浣�2鎵ц
*/
- Short wrkTaskPri = 0;
+ Integer wrkTaskPri = 0;
Short wrkTaskMove1 = 0;
Short wrkTaskMove2 = 0;
@@ -163,14 +167,14 @@
this.taskMode2 = RgvTaskModeType.get(type2).id.shortValue();
}
- public void setTaskStatus1(Short taskStatus1){
- this.taskStatus1 = taskStatus1;
- this.taskStatusType1 = RgvTaskStatusType.get(taskStatusType1);
+ public void setTaskStatus(Short taskStatus){
+ this.taskStatus = taskStatus;
+ this.taskStatusType = RgvTaskStatusType.get(taskStatusType);
}
- public void setTaskStatus1(RgvTaskStatusType type1) {
- this.taskStatusType1 = type1;
- this.taskStatus1 = RgvTaskStatusType.get(type1).id.shortValue();
+ public void setTaskStatus(RgvTaskStatusType type) {
+ this.taskStatusType = type;
+ this.taskStatus = RgvTaskStatusType.get(type).id.shortValue();
}
public void setTaskStatus2(Short taskStatus2){
diff --git a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
index da1eedd..b957509 100644
--- a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
@@ -327,8 +327,6 @@
}
public Integer getRgvPosI2() {
- if (RgvPos == null) return 0;
-
// key: 绔欑偣鍙� value: 鍩哄噯鐗╃悊浣嶇疆
Map<Integer, Integer> posMap = new HashMap<>();
posMap.put(1004, 6534);
@@ -341,7 +339,7 @@
posMap.put(1028, 246724);
posMap.put(1031, 288194);
posMap.put(1035, 315204);
- int tolerance = 50; // 鍏佽璇樊鑼冨洿
+ int tolerance = 200; // 鍏佽璇樊鑼冨洿
for (Map.Entry<Integer, Integer> entry : posMap.entrySet()) {
int site = entry.getKey();
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 4cfa9fa..c15ac26 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -59,6 +59,8 @@
private boolean PakOut = true;
//鏍规嵁璺濈璺宠繃鍙栬揣
private boolean PakRgv = true;
+ //鎺ラ┏鏍囪
+ private boolean PakToCrn = true;
public RgvThread(RgvSlave slave) {
this.slave = slave;
@@ -80,17 +82,9 @@
case 1:
readStatus();
break;
- // 宸ヤ綅1銆�2鍐欏叆鏁版嵁
+ // 灏忚溅宸ヤ綅鍐欏叆鏁版嵁
case 2:
- write12((RgvCommand) task.getData());
- break;
- //宸ヤ綅1鍐欏叆鏁版嵁
- case 4:
- write1((RgvCommand) task.getData());
- break;
-// //宸ヤ綅2鍐欏叆鏁版嵁
- case 5:
- write2((RgvCommand) task.getData());
+ write((RgvCommand) task.getData());
break;
// 澶嶄綅
case 3:
@@ -99,81 +93,11 @@
command = new RgvCommand();
}
command.setRgvNo(slave.getId()); // RGV缂栧彿
- command.setTaskNo1(0); // 宸ヤ綔鍙�
- command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣�
- command.setTaskStatus1(RgvTaskStatusType.NONE); // 浠诲姟妯″紡
- command.setTargetPosition1( 0); // 婧愮珯
- command.setEndStaNo1(0); // 鐩爣绔�
- command.setWrkTaskMove1((short) 0);
- command.setWrkTaskPri((short)0);
- command.setCommand(false);
- write1(command);
- break;
- case 6:
- RgvCommand command2 = (RgvCommand) task.getData();
- if (null == command2) {
- command2 = new RgvCommand();
- }
- command2.setRgvNo(slave.getId()); // RGV缂栧彿
- command2.setTaskNo2(0); // 宸ヤ綔鍙�
- command2.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣�
- command2.setTaskStatus2(RgvTaskStatusType.NONE); // 浠诲姟妯″紡
- command2.setTargetPosition2(0); // 婧愮珯
- command2.setEndStaNo2(0); // 鐩爣绔�
- command2.setWrkTaskPri((short)0);
- command2.setWrkTaskMove2((short)0);
- command2.setCommand(false);
- write2(command2);
- break;
- case 7: //宸ヤ綅1鍙栬揣纭
- RgvCommand command3 = (RgvCommand) task.getData();
- if (null == command3) {
- command3 = new RgvCommand();
- }
- command3.setRgvNo(slave.getId()); // RGV缂栧彿
- command3.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣�
- command3.setTaskStatus1(RgvTaskStatusType.NONE); // 浠诲姟妯″紡
- command3.setTargetPosition1( 0); // 婧愮珯
- command3.setWrkTaskMove1(task.getMoveSta() !=null ? task.getMoveSta() : 0);
- command3.setCommand(false);
- command3.setWrkTaskPri((short)0);
- command3.setTaskNo1(Math.toIntExact(task.getWorkNo()));
- write1(command3);
- break;
- case 8 :
- RgvCommand command4 = (RgvCommand) task.getData();
- if (null == command4) {
- command4 = new RgvCommand();
- }
- command4.setRgvNo(slave.getId()); // RGV缂栧彿
- command4.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣�
- command4.setTaskStatus2(RgvTaskStatusType.NONE); // 浠诲姟妯″紡
- command4.setTargetPosition2(0); // 灏忚溅鐩爣绔欐竻闆�
- command4.setWrkTaskMove2(task.getMoveSta() !=null ? task.getMoveSta() : 0);
- command4.setCommand(false);
- command4.setWrkTaskPri((short)0);
- command4.setTaskNo2(Math.toIntExact(task.getWorkNo()));
- write2(command4);
- break;
- // 鍥炲師鐐� 閬胯
- case 9:
-// RgvCommand commandAvoidanceXY = (RgvCommand) task.getData();
-// if (null == commandAvoidanceXY) {
-// commandAvoidanceXY = new RgvCommand();
-// }
-// commandAvoidanceXY.setRgvNo(slave.getId()); // RGV缂栧彿
-// commandAvoidanceXY.setTaskNo1((short) 9999); // 宸ヤ綔鍙�
-// commandAvoidanceXY.setAckFinish1((short) 1); // 浠诲姟瀹屾垚纭浣�
-// commandAvoidanceXY.setTaskMode1(RgvTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡
-// commandAvoidanceXY.setSourceStaNo1((short)0); // 婧愮珯
-// commandAvoidanceXY.setDestinationStaNo1((short)0); // 鐩爣绔�
-//// commandAvoidanceXY.setTaskNo2((short) 0); // 宸ヤ綔鍙�
-//// commandAvoidanceXY.setAckFinish2((short) 1); // 浠诲姟瀹屾垚纭浣�
-//// commandAvoidanceXY.setTaskMode2(RgvTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡
-//// commandAvoidanceXY.setSourceStaNo2((short)0); // 婧愮珯
-//// commandAvoidanceXY.setDestinationStaNo2((short)0); // 鐩爣绔�
-// commandAvoidanceXY.setCommand((short)0);
-// write(commandAvoidanceXY);
+ command.setTaskNo(0); // 宸ヤ綔鍙�
+ command.setTaskStatus(RgvTaskStatusType.NONE); // 浠诲姟妯″紡
+ command.setTargetPosition(0); // 婧愮珯
+ command.setWrkTaskPri(0); // 鐩爣绔�
+ write(command);
break;
default:
break;
@@ -266,10 +190,8 @@
rgvProtocol.setRgvPos(siemensNet.getByteTransform().TransInt32(result.Content, 4));
rgvProtocol.setRgvPosDestination( siemensNet.getByteTransform().TransInt32(result.Content, 8));
rgvProtocol.setStatus1(siemensNet.getByteTransform().TransInt16(result.Content, 12));
- rgvProtocol.setStatus2(siemensNet.getByteTransform().TransInt16(result.Content, 14));
rgvProtocol.setTaskNo1(siemensNet.getByteTransform().TransInt32(result.Content, 16));
rgvProtocol.setTaskNo2(siemensNet.getByteTransform().TransInt32(result.Content, 20));
-
boolean[] status1 = siemensNet.getByteTransform().TransBool(result.Content, 24, 2);
rgvProtocol.setLoaded1(status1[0]);
rgvProtocol.setLoaded2(status1[1]);
@@ -281,58 +203,7 @@
rgvProtocol.setErr5(status2[4]);
rgvProtocol.setErr6(status2[5]);
rgvProtocol.setErr7(status2[6]);
-// boolean[] status3 = siemensNet.getByteTransform().TransBool(result.Content, 27, 1);
-// rgvProtocol.setErr1(status3[0]);
-// rgvProtocol.setErr2(status3[1]);
-// rgvProtocol.setErr3(status3[2]);
-// rgvProtocol.setErr4(status3[3]);
-// rgvProtocol.setErr5(status3[4]);
-// rgvProtocol.setErr6(status3[5]);
-// rgvProtocol.setErr7(status3[6]);
-
-
-// rgvProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
-// rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 14));
-// rgvProtocol.setTaskNo2(siemensNet.getByteTransform().TransInt16(result.Content, 4));
-// rgvProtocol.setLoaded2(siemensNet.getByteTransform().TransInt16(result.Content, 8));
-// rgvProtocol.setStatus2(siemensNet.getByteTransform().TransInt16(result.Content, 16));
-// rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 18));
-// rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 20));
-// rgvProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 22));
-// rgvProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 24));
-// rgvProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 26));
-// rgvProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 28));
-// rgvProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 30));
-// rgvProtocol.setTemp5(siemensNet.getByteTransform().TransInt16(result.Content, 32));
-// rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28));
-// rgvProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
-// rgvProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
-
OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
-
- // 宸ヤ綅1澶嶄綅淇″彿
- if (rgvProtocol.getStatusType1().equals(RgvStatusType.WAITING)
- || rgvProtocol.getStatusType1().equals(RgvStatusType.FETCHWAITING)) {
- if (resetFlag1) {
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setAckFinish1(true);
- if (write1(rgvCommand)) {
- resetFlag1 = false;
- }
- }
- }
-
-// 宸ヤ綅2澶嶄綅淇″彿
- if (rgvProtocol.getStatusType2().equals(RgvStatusType.WAITING)
- || rgvProtocol.getStatusType2().equals(RgvStatusType.FETCHWAITING)) {
- if (resetFlag2) {
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setAckFinish2(true);
- if (write2(rgvCommand)) {
- resetFlag2 = false;
- }
- }
- }
try {
// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
@@ -359,53 +230,29 @@
initRgv();
}
}
-
/**
- * 宸ヤ綅1銆�2鍚屾椂鍐欏叆鏁版嵁
+ * 灏忚溅宸ヤ綅鍐欏叆鍐欏叆鏁版嵁
*/
- private boolean write12(RgvCommand command) throws InterruptedException {
+ private boolean write(RgvCommand command) throws InterruptedException {
if (null == command) {
log.error("RGV鍐欏叆鍛戒护涓虹┖");
return false;
}
-
- OperateResultExOne<byte[]> result1 = siemensNet.Read("DB100.0", (short) 34);
-// OperateResultExOne<byte[]> result4 = siemensNet.Read("DB100.10", (short) 2);
+ OperateResultExOne<byte[]> result1 = siemensNet.Read("DB100.0", (short) 39);
if (result1.IsSuccess){
RgvCommand one = new RgvCommand();
- one.setTargetPosition1(siemensNet.getByteTransform().TransInt32(result1.Content, 0));
- one.setEndStaNo1(siemensNet.getByteTransform().TransInt32(result1.Content, 4));
- one.setTaskStatus1(siemensNet.getByteTransform().TransInt16(result1.Content, 8));
- one.setTaskNo1(siemensNet.getByteTransform().TransInt32(result1.Content, 10));
- one.setDirection1(siemensNet.getByteTransform().TransInt16(result1.Content, 14));
- one.setTargetPosition2(siemensNet.getByteTransform().TransInt32(result1.Content, 16));
- one.setEndStaNo2(siemensNet.getByteTransform().TransInt32(result1.Content, 20));
- one.setTaskStatus2(siemensNet.getByteTransform().TransInt16(result1.Content, 24));
- one.setTaskNo2(siemensNet.getByteTransform().TransInt32(result1.Content, 26));
- one.setDirection2(siemensNet.getByteTransform().TransInt16(result1.Content, 30));
-
- News.error("RGV鍛戒护涓嬪彂鍓嶈鍙栫姸鎬乕id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+ one.setWrkTaskPri(siemensNet.getByteTransform().TransInt32(result1.Content, 0));//鎵ц宸ヤ綅
+ one.setTargetPosition(siemensNet.getByteTransform().TransInt32(result1.Content, 4));//琛岃蛋鐩爣绔�
+ one.setTaskStatus(siemensNet.getByteTransform().TransInt16(result1.Content, 8));//灏忚溅鐘舵��
+ one.setTaskNo(siemensNet.getByteTransform().TransInt32(result1.Content, 10));//涓嬪彂宸ヤ綔鍙�
+ News.info("RGV鍛戒护涓嬪彂鍓嶈鍙栫姸鎬乕id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
}
- OperateResult result2 = siemensNet.Write("DB100.34", false);
- if (result2.IsSuccess){
- News.error("涓嬪彂鍓嶆妸杞﹀瓙纭浣嶇疆涓篺alse");
- }
- byte[] writeBytes = new byte[36];
+ byte[] writeBytes = new byte[14];
command.setRgvNo(slave.getId());
- siemensNet.getByteTransform().TransInt32(writeBytes, 0, command.getTargetPosition1());
- siemensNet.getByteTransform().TransInt32(writeBytes, 4, command.getEndStaNo1());
- siemensNet.getByteTransform().TransInt16(writeBytes, 8, command.getTaskStatus1());
- siemensNet.getByteTransform().TransInt32(writeBytes, 10, command.getTaskNo1());
- siemensNet.getByteTransform().TransInt16(writeBytes, 14, command.getDirection1());
- setBool(writeBytes, 32, 0, command.getAckFinish1());
- siemensNet.getByteTransform().TransInt32(writeBytes, 16, command.getTargetPosition2());
- siemensNet.getByteTransform().TransInt32(writeBytes, 20, command.getEndStaNo2());
- siemensNet.getByteTransform().TransInt16(writeBytes, 24, command.getTaskStatus2());
- siemensNet.getByteTransform().TransInt32(writeBytes, 26, command.getTaskNo2());
- siemensNet.getByteTransform().TransInt16(writeBytes, 30, command.getDirection2());
- setBool(writeBytes, 32, 1, command.getAckFinish2());
- siemensNet.getByteTransform().TransInt16(writeBytes, 36, command.getWrkTaskPri());
-
+ writeInt32(writeBytes, 0, command.getWrkTaskPri());
+ writeInt32(writeBytes, 4, command.getTargetPosition());
+ writeInt16(writeBytes, 8, (short)command.getTaskStatus());
+ writeInt32(writeBytes, 10, command.getTaskNo());
OperateResult result = siemensNet.Write("DB100.0", writeBytes);
if (!result.IsSuccess){
@@ -419,31 +266,18 @@
//RGV浠诲姟鍐欏叆鍚庯紝鍥炶涓�娆★紝鐪嬫槸鍚︽垚鍔�
Thread.sleep(400);
try {
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 36);
+ OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 14);
if (resultRead.IsSuccess){
RgvCommand one = new RgvCommand();
- one.setDirection1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
- one.setTaskNo1(siemensNet.getByteTransform().TransInt32(resultRead.Content, 10));
- one.setTaskStatus1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
- one.setEndStaNo1(siemensNet.getByteTransform().TransInt32(resultRead.Content, 4));
- one.setTargetPosition1(siemensNet.getByteTransform().TransInt32(resultRead.Content, 0));
- one.setWrkTaskPri(siemensNet.getByteTransform().TransInt16(resultRead.Content, 36));
- one.setDirection2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 30));
- one.setTaskNo2(siemensNet.getByteTransform().TransInt32(resultRead.Content, 26));
- one.setTaskStatus2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 24));
- one.setEndStaNo2(siemensNet.getByteTransform().TransInt32(resultRead.Content, 20));
- one.setTargetPosition2(siemensNet.getByteTransform().TransInt32(resultRead.Content, 16));
+ one.setWrkTaskPri(siemensNet.getByteTransform().TransInt32(resultRead.Content, 0));//鎵ц宸ヤ綅
+ one.setTargetPosition(siemensNet.getByteTransform().TransInt32(resultRead.Content, 4));//琛岃蛋鐩爣绔�
+ one.setTaskStatus(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));//灏忚溅鐘舵��
+ one.setTaskNo(siemensNet.getByteTransform().TransInt32(resultRead.Content, 10));//涓嬪彂宸ヤ綔鍙�
if (
- !command.getDirection1().equals(one.getDirection1()) ||
- !command.getTaskNo1().equals(one.getTaskNo1()) ||
- !command.getTaskStatus1().equals(one.getTaskStatus1()) ||
- !command.getEndStaNo1().equals(one.getEndStaNo1()) ||
- !command.getTargetPosition1().equals(one.getTargetPosition1()) ||
- !command.getDirection2().equals(one.getDirection2()) ||
- !command.getTaskNo2().equals(one.getTaskNo2()) ||
- !command.getTaskStatus2().equals(one.getTaskStatus2()) ||
- !command.getEndStaNo2().equals(one.getEndStaNo2()) ||
- !command.getTargetPosition2().equals(one.getTargetPosition2())
+ !command.getTaskNo().equals(one.getTaskNo()) ||
+ !command.getTaskStatus().equals(one.getTaskStatus()) ||
+ !command.getWrkTaskPri().equals(one.getWrkTaskPri()) ||
+ !command.getTargetPosition().equals(one.getTargetPosition())
) {
try{
News.error("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
@@ -455,7 +289,7 @@
}
}
News.error("Rgv鍛戒护鍥炶澶辫触鍚庯紝閲嶆柊娣诲姞浠诲姟鍒伴槦鍒� ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
- MessageQueue.offer(SlaveType.Rgv, slave.getId(), new Task(4, command));
+ MessageQueue.offer(SlaveType.Rgv, slave.getId(), new Task(2, command));
Thread.sleep(100);
readStatus();
return false;
@@ -467,54 +301,46 @@
News.error("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲嚭閿�");
}
- if (command.getAckFinish1() || command.getAckFinish2()) {
- if (result.IsSuccess) {
- Thread.sleep(300);
- //浠诲姟涓嬪彂娆℃暟
- int writeCount2 = 0;
-
- do {
- writeCount2++;
- boolean commandFinish = false;
- boolean commandFinish2 = false;
- result = siemensNet.Write("DB100.DBX32.0", commandFinish);
- OperateResult result3 = siemensNet.Write("DB100.DBX32.1", commandFinish);
-
- if(result.IsSuccess && result3.IsSuccess){
- //RGV浠诲姟鍐欏叆鍚庯紝鍥炶涓�娆★紝鐪嬫槸鍚︽垚鍔�
- Thread.sleep(200);
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.32", (short) 2);
- if (resultRead.IsSuccess) {
- commandFinish=siemensNet.getByteTransform().TransBool(resultRead.Content, 0);
- commandFinish2=siemensNet.getByteTransform().TransBool(resultRead.Content, 1);
-
- if (!commandFinish && !commandFinish2) {
- News.error("RGV浠诲姟纭浣�"+commandFinish+"鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
- }else{
- //浠诲姟鍛戒护鍐欏叆鎴愬姛
- News.info("RGV浠诲姟纭浣�"+commandFinish+"鍥炶鎴愬姛锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
- break;
- }
- }else {
- News.error("RGV浠诲姟纭浣�"+commandFinish+"鍥炶澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+ if (result.IsSuccess) { //浠诲姟涓嬪彂纭
+ Thread.sleep(300);
+ //浠诲姟涓嬪彂娆℃暟
+ int writeCount2 = 0;
+ do {
+ writeCount2++;
+ boolean commandFinish = true;
+ result = siemensNet.Write("DB100.34.0", commandFinish);
+ if(result.IsSuccess){
+ //RGV浠诲姟鍐欏叆鍚庯紝鍥炶涓�娆★紝鐪嬫槸鍚︽垚鍔�
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.34", (short) 2);
+ if (resultRead.IsSuccess) {
+ commandFinish=siemensNet.getByteTransform().TransBool(resultRead.Content, 0);
+ if (!commandFinish){
+ News.error("RGV浠诲姟纭浣�"+commandFinish+"鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+ }else{
+ //浠诲姟鍛戒护鍐欏叆鎴愬姛
+ News.info("RGV浠诲姟纭浣�"+commandFinish+"鍥炶鎴愬姛锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+ break;
}
- } else {
- News.error("RGV浠诲姟纭浣�"+commandFinish+"鍐欏叆澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+ }else {
+ News.error("RGV浠诲姟纭浣�"+commandFinish+"鍥炶澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
}
- }while (writeCount2<5);
- }
+ } else {
+ News.error("RGV浠诲姟纭浣�"+commandFinish+"鍐欏叆澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+ }
+ }while (writeCount2<5);
}
-
-
try {
// 鏃ュ織璁板綍
BasRgvOptService bean = SpringUtils.getBean(BasRgvOptService.class);
BasRgvOpt basRgvOpt = new BasRgvOpt(
- command.getTaskNo1(),
- command.getTaskNo2(),
+ command.getTaskNo(),
command.getRgvNo(),
new Date(),
- command.getTargetPosition1()
+ command.getTaskStatus().toString(),
+ command.getTargetPosition(),
+ command.getWrkTaskPri(),
+ new Date()
);
bean.insert(basRgvOpt);
} catch (Exception ignore) {
@@ -524,337 +350,12 @@
if (result != null && result.IsSuccess) {
Thread.sleep(200);
this.readStatus();
- log.info("RGV 宸ヤ綅1鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
- OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 宸ヤ綅12鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+ log.info("RGV 宸ヤ綅鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+ OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 宸ヤ綅鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
return true;
} else {
- OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戝啓鍏GV plc宸ヤ綅12鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- log.error("鍐欏叆RGV plc宸ヤ綅1鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- return false;
- }
- }
-
- /**
- * 宸ヤ綅1鍐欏叆鏁版嵁
- */
- private boolean write1(RgvCommand command) throws InterruptedException {
- if (null == command) {
- log.error("RGV鍐欏叆鍛戒护涓虹┖");
- return false;
- }
-
- OperateResultExOne<byte[]> result1 = siemensNet.Read("DB100.0", (short) 39);
-// OperateResultExOne<byte[]> result4 = siemensNet.Read("DB100.10", (short) 2);
- if (result1.IsSuccess){
- RgvCommand one = new RgvCommand();
- one.setTargetPosition1(siemensNet.getByteTransform().TransInt32(result1.Content, 0));
- one.setEndStaNo1(siemensNet.getByteTransform().TransInt32(result1.Content, 4));
- one.setTaskStatus1(siemensNet.getByteTransform().TransInt16(result1.Content, 8));
- one.setTaskNo1(siemensNet.getByteTransform().TransInt32(result1.Content, 10));
- one.setDirection1(siemensNet.getByteTransform().TransInt16(result1.Content, 14));
- one.setWrkTaskMove1(siemensNet.getByteTransform().TransInt16(result1.Content, 36));
- News.error("RGV鍛戒护涓嬪彂鍓嶈鍙栫姸鎬乕id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
- }
-
-
- OperateResult result2 = siemensNet.Write("DB100.34", false);
- if (result2.IsSuccess){
- News.error("涓嬪彂鍓嶆妸杞﹀瓙纭浣嶇疆涓篺alse");
- }
- byte[] writeBytes = new byte[40];
- command.setRgvNo(slave.getId());
-
- writeInt32(writeBytes, 0, command.getTargetPosition1());
- writeInt32(writeBytes, 4, command.getEndStaNo1());
- writeInt16(writeBytes, 8, (short)command.getTaskStatus1());
- writeInt32(writeBytes, 10, command.getTaskNo1());
- writeInt16(writeBytes, 14, (short)command.getDirection1());
- writeBool(writeBytes, 32, 0, command.getAckFinish1());
- writeInt16(writeBytes, 38, (short)command.getWrkTaskMove1());
-
- OperateResult result = siemensNet.Write("DB100.0", writeBytes);
-
-
- if (!result.IsSuccess){
- News.error("鍐欏叆RGVplc鏁版嵁澶辫触锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===> [id:{}],{}",slave.getId(),JSON.toJSON(command));
- MessageQueue.offer(SlaveType.Rgv,slave.getId(),new Task(4,command));
- Thread.sleep(100);
- readStatus();
- return false;
- }
-
- //RGV浠诲姟鍐欏叆鍚庯紝鍥炶涓�娆★紝鐪嬫槸鍚︽垚鍔�
- Thread.sleep(400);
- try {
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 39);
- if (resultRead.IsSuccess){
- RgvCommand one = new RgvCommand();
- one.setWrkTaskMove1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 38));
- one.setDirection1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
- one.setTaskNo1(siemensNet.getByteTransform().TransInt32(resultRead.Content, 10));
- one.setTaskStatus1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
- one.setEndStaNo1(siemensNet.getByteTransform().TransInt32(resultRead.Content, 4));
- one.setTargetPosition1(siemensNet.getByteTransform().TransInt32(resultRead.Content, 0));
- if (
- !command.getDirection1().equals(one.getDirection1()) ||
- !command.getTaskNo1().equals(one.getTaskNo1()) ||
- !command.getTaskStatus1().equals(one.getTaskStatus1()) ||
- !command.getEndStaNo1().equals(one.getEndStaNo1()) ||
- !command.getTargetPosition1().equals(one.getTargetPosition1()) ||
- !command.getWrkTaskMove1().equals(one.getWrkTaskMove1())
- ) {
- try{
- News.error("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
- }catch (Exception e){
- try{
- News.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead));
- }catch (Exception e1){
- News.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
- }
- }
- News.error("Rgv鍛戒护鍥炶澶辫触鍚庯紝閲嶆柊娣诲姞浠诲姟鍒伴槦鍒� ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
- MessageQueue.offer(SlaveType.Rgv, slave.getId(), new Task(4, command));
- Thread.sleep(100);
- readStatus();
- return false;
- }else {
- News.info("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
- }
- }
- }catch (Exception e){
- News.error("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲嚭閿�");
- }
-
- if (!command.getAckFinish1()) {
- if (result.IsSuccess) {
- Thread.sleep(300);
- //浠诲姟涓嬪彂娆℃暟
- int writeCount2 = 0;
-
- do {
- writeCount2++;
- boolean commandFinish = true;
- if(command.getCommand()){
- commandFinish = false;
- }
- result = siemensNet.Write("DB100.32.0", commandFinish);
- if(result.IsSuccess){
- //RGV浠诲姟鍐欏叆鍚庯紝鍥炶涓�娆★紝鐪嬫槸鍚︽垚鍔�
- Thread.sleep(200);
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.32", (short) 2);
- if (resultRead.IsSuccess) {
- commandFinish=siemensNet.getByteTransform().TransBool(resultRead.Content, 0);
- if (commandFinish){
- News.error("RGV浠诲姟纭浣�"+commandFinish+"鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
- }else{
- //浠诲姟鍛戒护鍐欏叆鎴愬姛
- News.info("RGV浠诲姟纭浣�"+commandFinish+"鍥炶鎴愬姛锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
- break;
- }
- }else {
- News.error("RGV浠诲姟纭浣�"+commandFinish+"鍥炶澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
- }
- } else {
- News.error("RGV浠诲姟纭浣�"+commandFinish+"鍐欏叆澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
- }
- }while (writeCount2<5);
- }
- }
-
-// if (command.getAckFinish1() == 0) {
-// short commandFinish = 1; //宸ヤ綅1浠诲姟鍐欏叆
-// Thread.sleep(200);
-// result = siemensNet.Write("DB100.10", commandFinish);
-// }
-
- try {
- // 鏃ュ織璁板綍
- BasRgvOptService bean = SpringUtils.getBean(BasRgvOptService.class);
- BasRgvOpt basRgvOpt = new BasRgvOpt(
- command.getTaskNo1(),
- command.getRgvNo(),
- new Date(),
- command.getTaskStatus1().toString(),
- command.getTargetPosition1(),
- command.getEndStaNo1(),
- null,
- new Date(),
- null
- );
- bean.insert(basRgvOpt);
- } catch (Exception ignore) {
- log.error(ignore.getMessage());
- }
-
- if (result != null && result.IsSuccess) {
- Thread.sleep(200);
- this.readStatus();
- log.info("RGV 宸ヤ綅1鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
- OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 宸ヤ綅1鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
- return true;
- } else {
- OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戝啓鍏GV plc宸ヤ綅1鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- log.error("鍐欏叆RGV plc宸ヤ綅1鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- return false;
- }
- }
-
- /**
- * 宸ヤ綅2鍐欏叆鏁版嵁
- */
- private boolean write2(RgvCommand command) throws InterruptedException {
- if (null == command) {
- log.error("RGV鍐欏叆鍛戒护涓虹┖");
- return false;
- }
-
- OperateResultExOne<byte[]> result1 = siemensNet.Read("DB100.0", (short) 40);
- if (result1.IsSuccess){
- RgvCommand one = new RgvCommand();
- one.setTargetPosition1(siemensNet.getByteTransform().TransInt32(result1.Content, 0));
- one.setEndStaNo2(siemensNet.getByteTransform().TransInt32(result1.Content, 20));
- one.setTaskStatus2(siemensNet.getByteTransform().TransInt16(result1.Content, 24));
- one.setTaskNo2(siemensNet.getByteTransform().TransInt32(result1.Content, 26));
- one.setDirection2(siemensNet.getByteTransform().TransInt16(result1.Content, 30));
- one.setWrkTaskMove2(siemensNet.getByteTransform().TransInt16(result1.Content, 38));
- News.error("RGV鍛戒护涓嬪彂鍓嶈鍙栫姸鎬乕id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
- }
-
-
- OperateResult result2 = siemensNet.Write("DB100.34", false);
- if (result2.IsSuccess){
- News.error("涓嬪彂鍓嶆妸杞﹀瓙纭浣嶇疆涓�0");
- }
-
-
- byte[] writeBytes = new byte[42];
- command.setRgvNo(slave.getId());
-
- writeInt32(writeBytes, 0, command.getTargetPosition1());
- writeInt32(writeBytes, 20, command.getEndStaNo2());
- writeInt16(writeBytes, 24, (short)command.getTaskStatus2());
- writeInt32(writeBytes, 26, command.getTaskNo2());
- writeInt16(writeBytes, 30, (short)command.getDirection2());
- writeBool(writeBytes, 32, 0, command.getAckFinish2());
- writeInt16(writeBytes, 38, (short)command.getWrkTaskMove2());
-
-
- OperateResult result = siemensNet.Write("DB100.0", writeBytes);
-
-
-
- if (!result.IsSuccess){
- News.error("鍐欏叆RGVplc鏁版嵁澶辫触锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===> [id:{}],{}",slave.getId(),JSON.toJSON(command));
- MessageQueue.offer(SlaveType.Rgv,slave.getId(),new Task(5,command));
- Thread.sleep(100);
- readStatus();
- return false;
- }
-
- //RGV浠诲姟鍐欏叆鍚庯紝鍥炶涓�娆★紝鐪嬫槸鍚︽垚鍔�
- Thread.sleep(400);
- try {
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 42);
- if (resultRead.IsSuccess){
- RgvCommand one = new RgvCommand();
- one.setWrkTaskMove2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 38));
- one.setDirection2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 30));
- one.setTaskNo2(siemensNet.getByteTransform().TransInt32(resultRead.Content, 26));
- one.setTaskStatus2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 24));
- one.setEndStaNo2(siemensNet.getByteTransform().TransInt32(resultRead.Content, 20));
- one.setTargetPosition1(siemensNet.getByteTransform().TransInt32(resultRead.Content, 0));
- if (
- !command.getDirection2().equals(one.getDirection2()) ||
- !command.getTaskNo2().equals(one.getTaskNo2()) ||
- !command.getTaskStatus2().equals(one.getTaskStatus2()) ||
- !command.getEndStaNo2().equals(one.getEndStaNo2()) ||
- !command.getTargetPosition1().equals(one.getTargetPosition1()) ||
- !command.getWrkTaskMove2().equals(one.getWrkTaskMove2())
- ) {
- try{
- News.error("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
- }catch (Exception e){
- try{
- News.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead));
- }catch (Exception e1){
- News.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
- }
- }
- News.error("Rgv鍛戒护鍥炶澶辫触鍚庯紝閲嶆柊娣诲姞浠诲姟鍒伴槦鍒� ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
- MessageQueue.offer(SlaveType.Rgv, slave.getId(), new Task(5, command));
- Thread.sleep(100);
- readStatus();
- return false;
- }else {
- News.info("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
- }
- }
- }catch (Exception e){
- News.error("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲嚭閿�");
- }
-
- if (!command.getAckFinish2()) {
- if (result.IsSuccess) {
- Thread.sleep(300);
- //浠诲姟涓嬪彂娆℃暟
- int writeCount2 = 0;
-
- do {
- writeCount2++;
- boolean commandFinish = true;
- if(command.getCommand()){
- commandFinish = false;
- }
- result = siemensNet.Write("DB100.32.1", commandFinish);
- if(result.IsSuccess){
- //RGV浠诲姟鍐欏叆鍚庯紝鍥炶涓�娆★紝鐪嬫槸鍚︽垚鍔�
- Thread.sleep(200);
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.32", (short) 2);
- if (resultRead.IsSuccess) {
- commandFinish=siemensNet.getByteTransform().TransBool(resultRead.Content, 1);
- if (commandFinish){
- News.error("RGV浠诲姟纭浣�"+commandFinish+"鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
- }else{
- //浠诲姟鍛戒护鍐欏叆鎴愬姛
- News.info("RGV浠诲姟纭浣�"+commandFinish+"鍥炶鎴愬姛锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
- break;
- }
- }else {
- News.error("RGV浠诲姟纭浣�"+commandFinish+"鍥炶澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
- }
- } else {
- News.error("RGV浠诲姟纭浣�"+commandFinish+"鍐欏叆澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
- }
- }while (writeCount2<5);
- }
- }
-
- try {
- // 鏃ュ織璁板綍
- BasRgvOptService bean = SpringUtils.getBean(BasRgvOptService.class);
- BasRgvOpt basRgvOpt = new BasRgvOpt(
- command.getTaskNo2(),
- command.getRgvNo(),
- new Date(),
- command.getTaskStatus2().toString(),
- command.getTargetPosition2(),
- command.getEndStaNo2(),
- null,
- new Date(),
- null
- );
- bean.insert(basRgvOpt);
- } catch (Exception ignore) {}
-
- if (result != null && result.IsSuccess) {
- Thread.sleep(200);
- this.readStatus();
- log.info("RGV 宸ヤ綅2鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
- OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 宸ヤ綅2鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
- return true;
- } else {
- OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戝啓鍏GV plc宸ヤ綅2鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- log.error("鍐欏叆RGV plc宸ヤ綅2鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戝啓鍏GV plc宸ヤ綅鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ log.error("鍐欏叆RGV plc宸ヤ綅鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
return false;
}
}
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index e08db4f..6cd2918 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -158,6 +158,7 @@
if (null == crnProtocol) {
crnProtocol = new CrnProtocol();
crnProtocol.setCrnNo(slave.getId());
+
}
crnProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0));
crnProtocol.setTaskNo(siemensNet.getByteTransform().TransInt16(result.Content, 2));
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index e2581cb..35476e4 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -261,8 +261,9 @@
ArrayList<Integer> staNos = getStaNo();
int staNoSize = staNos.size();
OperateResultExOne<byte[]> result = null;
- OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.0", (short) (2764));
- OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.0", (short) (1264));
+ OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.0", (short) (2764));//1001-1028
+ OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.0", (short) (1264));//1029-1037
+ OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB104.0", (short) (1264));//1042-1053
if (result1.IsSuccess && result2.IsSuccess) {
for (int i = 0; i < staNoSize; i++) {
@@ -275,8 +276,10 @@
}
if(siteId < 1029){
result = result1;
- }else{
+ }else if(siteId < 1042){
result = result2;
+ }else if(siteId < 1054){
+ result = result3;
}
// 鑾峰彇璇ョ珯鐐瑰搴旂殑鍋忕Щ閲�
Integer offset = siteOffsetMap.get(siteId);
@@ -294,13 +297,9 @@
boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3 - 4, 3);
staProtocol.setLoading(!status1[0]); // 鏈夌墿
- if(staProtocol.isLoading()){
- staProtocol.setInEnable(false); // 鍙叆
- staProtocol.setOutEnable(false);// 鍙嚭
- }else{
- staProtocol.setInEnable(true); // 鍙叆
- staProtocol.setOutEnable(true);// 鍙嚭
- }
+
+ staProtocol.setInEnable(true); // 鍙叆
+ staProtocol.setOutEnable(true);// 鍙嚭
// staProtocol.setInEnable(status1[1]); // 鍙叆
// staProtocol.setOutEnable(status1[3]);// 鍙嚭
// staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
@@ -528,11 +527,11 @@
if(siteId > 1028){
write = siemensS7Net.Write("DB101." + (offset + offset2), staProtocol.getWorkNo()); // 宸ヤ綔鍙�
Thread.sleep(200);
- write1 = siemensS7Net.Write("DB101." + (offset + offset2 + 12), staProtocol.getStaNo()); // 鐩爣绔�
+ write1 = siemensS7Net.Write("DB101." + (offset + offset2 + 12), staProtocol.getStaNo().intValue()); // 鐩爣绔�
}else{
write = siemensS7Net.Write("DB100." + (offset + offset2), staProtocol.getWorkNo()); // 宸ヤ綔鍙�
Thread.sleep(200);
- write1 = siemensS7Net.Write("DB100." + (offset + offset2 + 12), staProtocol.getStaNo()); // 鐩爣绔�
+ write1 = siemensS7Net.Write("DB100." + (offset + offset2 + 12), staProtocol.getStaNo().intValue()); // 鐩爣绔�
}
if(write.IsSuccess && write1.IsSuccess){
log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 46a92d1..6eb1c10 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -48,13 +48,13 @@
# 鍙屾繁
doubleDeep: true
# 鍙屾繁搴撲綅鎺掑彿
- doubleLocs: 1,4,5,8,9,12,13,16
+ doubleLocs: 1,4,5,8,9,12,13,16,17,20
# 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
groupCount: 4
# 鍫嗗灈鏈�1
crn[0]:
id: 1
- ip: 10.10.10.10
+ ip: 10.10.10.100
port: 102
rack: 0
slot: 0
@@ -64,21 +64,33 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 123
+ staNo: 1001
row: 2
- bay: 1
+ bay: 52
lev: 1
+ crnInStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 2004
+ row: 3
+ bay: 52
+ lev: 2
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 118
+ staNo: 1005
row: 3
- bay: 1
+ bay: 52
lev: 1
+ crnOutStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 2001
+ row: 2
+ bay: 52
+ lev: 2
# 鍫嗗灈鏈�2
crn[1]:
id: 2
- ip: 10.10.10.20
+ ip: 10.10.10.110
port: 102
rack: 0
slot: 0
@@ -88,21 +100,33 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 131
+ staNo: 1011
row: 7
- bay: 1
+ bay: 52
lev: 1
+ crnInStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 2010
+ row: 7
+ bay: 52
+ lev: 2
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 127
+ staNo: 1008
row: 6
- bay: 1
+ bay: 52
lev: 1
+ crnOutStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 2007
+ row: 6
+ bay: 52
+ lev: 2
# 鍫嗗灈鏈�3
crn[2]:
id: 3
- ip: 10.10.10.30
+ ip: 10.10.10.120
port: 102
rack: 0
slot: 0
@@ -112,21 +136,45 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 135
+ staNo: 1015
row: 10
- bay: 1
+ bay: 52
lev: 1
+ crnInStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 2016
+ row: 10
+ bay: 52
+ lev: 2
+ crnInStn[2]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 4001
+ row: 10
+ bay: 52
+ lev: 4
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 139
+ staNo: 1019
row: 11
- bay: 1
+ bay: 52
lev: 1
+ crnOutStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 2013
+ row: 11
+ bay: 52
+ lev: 2
+ crnOutStn[2]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 4004
+ row: 11
+ bay: 52
+ lev: 4
# 鍫嗗灈鏈�4
crn[3]:
id: 4
- ip: 10.10.10.40
+ ip: 10.10.10.130
port: 102
rack: 0
slot: 0
@@ -136,21 +184,33 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 144
+ staNo: 1025
row: 15
- bay: 1
+ bay: 52
lev: 1
+ crnInStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 2022
+ row: 15
+ bay: 52
+ lev: 2
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 148
+ staNo: 1022
row: 14
- bay: 1
+ bay: 52
lev: 1
+ crnOutStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 1022
+ row: 14
+ bay: 52
+ lev: 2
# 鍫嗗灈鏈�4
crn[4]:
id: 5
- ip: 10.10.10.41
+ ip: 10.10.10.140
port: 102
rack: 0
slot: 0
@@ -160,17 +220,29 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 144
+ staNo: 1032
row: 19
- bay: 1
+ bay: 52
lev: 1
+ crnInStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 2028
+ row: 19
+ bay: 52
+ lev: 2
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 148
+ staNo: 1029
row: 18
- bay: 1
+ bay: 52
lev: 1
+ crnOutStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 2025
+ row: 18
+ bay: 52
+ lev: 2
# RGV绌挎杞�1
rgv[0]:
diff --git a/src/main/resources/mapper/WrkMastStaMapper.xml b/src/main/resources/mapper/WrkMastStaMapper.xml
index 4218dc7..35c3f01 100644
--- a/src/main/resources/mapper/WrkMastStaMapper.xml
+++ b/src/main/resources/mapper/WrkMastStaMapper.xml
@@ -38,24 +38,31 @@
and wrk_no = #{workNo}
</select>
- <select id="selectNoInterfere" resultMap="BaseResultMap">
+ <select id="selectByWrkNoPut" resultMap="BaseResultMap">
select top 1 * from asr_wrk_mast_sta
where 1=1
- and (sta_start in
- <foreach item="item" collection="staStarts" index="index" separator="," open="(" close=")">
- #{item}
- </foreach>
- or sta_start = 0
- )
- and (sta_end in
- <foreach item="item" collection="staEnds" index="index" separator="," open="(" close=")">
- #{item}
- </foreach>
- or sta_end = 0
- )
- and wrk_sts=0
- order by line_number,id
+ and wrk_no = #{workNo}
+ and wrk_sts = 2
</select>
+
+<!-- <select id="selectNoInterfere" resultMap="BaseResultMap">-->
+<!-- select top 1 * from asr_wrk_mast_sta-->
+<!-- where 1=1-->
+<!-- and (sta_start in-->
+<!-- <foreach item="item" collection="staStarts" index="index" separator="," open="(" close=")">-->
+<!-- #{item}-->
+<!-- </foreach>-->
+<!-- or sta_start = 0-->
+<!-- )-->
+<!-- and (sta_end in-->
+<!-- <foreach item="item" collection="staEnds" index="index" separator="," open="(" close=")">-->
+<!-- #{item}-->
+<!-- </foreach>-->
+<!-- or sta_end = 0-->
+<!-- )-->
+<!-- and wrk_sts=0-->
+<!-- order by line_number,id-->
+<!-- </select>-->
<select id="selectNoInterfereList" resultMap="BaseResultMap">
select * from asr_wrk_mast_sta
@@ -95,6 +102,23 @@
and wrk_no = #{workNo}
order by line_number,id
</select>
+
+ <select id="selectNoInterfereToCrn" resultMap="BaseResultMap">
+ select * from asr_wrk_mast_sta
+ where 1=1
+ and (sta_start in
+ <foreach item="item" collection="staStarts" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ or sta_start = 0
+ )
+ or sta_end = 0
+ )
+ and sta_end in (2018,1018)
+ and wrk_sts=0
+ and wrk_no = #{workNo}
+ order by line_number,id
+ </select>
<select id="selectByWorkSta" resultMap="BaseResultMap">
select top 1 * from asr_wrk_mast_sta
where work_sta = #{workSta}
diff --git a/src/main/webapp/static/css/rgv.css b/src/main/webapp/static/css/rgv.css
index bd49d5b..b65705f 100644
--- a/src/main/webapp/static/css/rgv.css
+++ b/src/main/webapp/static/css/rgv.css
@@ -125,7 +125,7 @@
.task-select {
height: 50%;
overflow: hidden;
- padding: 20px 0 10px 20px;
+ padding: 20px 0 10px 10px;
}
.operator-item {
display: inline-block;
diff --git a/src/main/webapp/static/js/console.js b/src/main/webapp/static/js/console.js
index fad0039..2b48089 100644
--- a/src/main/webapp/static/js/console.js
+++ b/src/main/webapp/static/js/console.js
@@ -66,7 +66,7 @@
}
bayWidth = rackss[i].width / bLen
// hpPosition 0 琛ㄧず璐ф灦搴忓彿 宸�->鍙� 1 琛ㄧず璐ф灦搴忓彿 宸�<-鍙�
- if (mapInfo.hpPosition == 0) {
+ if (mapInfo.hpPosition == 1) {
bNum = maxBayNo
for (let j = bLen; j > 0; j--) {
bay = "<button class='item' style='width: "+ bayWidth +"px'>" + bNum + "</button>"
diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html
index 74e4bb1..67535cd 100644
--- a/src/main/webapp/views/console.html
+++ b/src/main/webapp/views/console.html
@@ -602,7 +602,7 @@
}
// crnEl.animate({left: (crns[i].bay * unit) + 'px'}, 1000);
// crns[i].bay = 15;
- var offSet = 800;
+ var offSet = 120;
unit = 52;
// switch (i) {
// case 0:
@@ -624,9 +624,9 @@
// }
if(crns[i].bay === 1){
- crnEl.animate({left: offSet + 'px'}, 1000);
+ crnEl.animate({left: offSet + 'px'}, 19);
} else {
- crnEl.animate({left: (offSet - unit + (crns[i].bay * unit)) + 'px'}, 1000);
+ crnEl.animate({left: (offSet - unit + (crns[i].bay * unit)) + 'px'}, 19);
}
}
diff --git a/src/main/webapp/views/rgv.html b/src/main/webapp/views/rgv.html
index 43f4b79..c5a8735 100644
--- a/src/main/webapp/views/rgv.html
+++ b/src/main/webapp/views/rgv.html
@@ -116,12 +116,12 @@
<thead>
<tr>
<th>RGV</th>
- <th>宸ヤ綔鍙�</th>
+ <th>宸ヤ綅1宸ヤ綔鍙�</th>
+ <th>宸ヤ綅2宸ヤ綔鍙�</th>
<th>鐘舵��</th>
- <th>婧愮珯</th>
<th>鐩爣绔�</th>
- <th>婧愬簱浣�</th>
- <th>鐩爣搴撲綅</th>
+<!-- <th>婧愬簱浣�</th>-->
+<!-- <th>鐩爣搴撲綅</th>-->
<!-- <th>璧拌閫熷害锛坢/min)</th>-->
<!-- <th>鍗囬檷閫熷害锛坢/min)</th>-->
<!-- <th>鍙夌墮閫熷害锛坢/min)</th>-->
@@ -148,7 +148,7 @@
<!-- 璁惧浠诲姟閫夋嫨 -->
<div class="task-select">
<!-- 鍫嗗灈鏈洪�夋嫨 -->
- <div id="rgv-select" class="operator-item" style="width: 55%">
+ <div id="rgv-select" class="operator-item" style="width: 30%">
<span class="select-title">RGV鍙�</span>
<div class="select-container" style="padding: 20px 0;">
<label><input type="radio" name="rgvSelect" value="1" checked> 1鍙稲GV</label>
@@ -157,12 +157,12 @@
</div>
</div>
<!-- 婧愮珯/婧愬簱浣� 閫夋嫨 -->
- <div id="source-select" class="operator-item">
- <span class="select-title">婧愮珯</span>
+ <div id="source-select1" class="operator-item">
+ <span class="select-title">宸ヤ綅</span>
<div class="select-container">
<div class="select-container-item">
- <span>宸ヤ綅1婧愮珯</span>
- <label><input id="sourceStaNo" type="number" name="points" min="0" /></label>
+ <span>宸ヤ綅</span>
+ <label><input id="workSta" type="number" name="points" min="0" /></label>
</div>
<!-- <div class="select-container-item">-->
<!-- <span>鎺�</span>-->
@@ -179,11 +179,11 @@
</div>
</div>
<!-- 鐩爣绔�/鐩爣搴撲綅 閫夋嫨 -->
- <div id="target-select" class="operator-item">
+ <div id="target-select2" class="operator-item">
<span class="select-title">鐩爣绔�</span>
<div class="select-container">
<div class="select-container-item">
- <span>宸ヤ綅1鐩爣绔�</span>
+ <span>鐩爣绔�</span>
<label><input id="staNo" type="number" name="points" min="0" /></label>
</div>
<!-- <div class="select-container-item">-->
@@ -200,6 +200,27 @@
<!-- </div>-->
</div>
</div>
+ <div id="target-select" class="operator-item">
+ <span class="select-title">宸ヤ綔鍙�</span>
+ <div class="select-container">
+ <div class="select-container-item">
+ <span>宸ヤ綔鍙�</span>
+ <label><input id="workNo" type="number" name="points" min="0" /></label>
+ </div>
+ <!-- <div class="select-container-item">-->
+ <!-- <span>鎺�</span>-->
+ <!-- <label><input id="row" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>-->
+ <!-- </div>-->
+ <!-- <div class="select-container-item">-->
+ <!-- <span>宸ヤ綅2鐩爣绔�</span>-->
+ <!-- <label><input id="bay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>-->
+ <!-- </div>-->
+ <!-- <div class="select-container-item">-->
+ <!-- <span>灞�</span>-->
+ <!-- <label><input id="lev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>-->
+ <!-- </div>-->
+ </div>
+ </div>
</div>
<!-- 璁惧浠诲姟鎿嶄綔 -->
@@ -207,15 +228,15 @@
<fieldset>
<legend>鎵嬪姩鎿嶄綔</legend>
<div class="button-group">
- <button class="item" onclick="put()">鍙栨斁璐�</button>
-<!-- <button class="item" onclick="take()">鍙栬揣</button>-->
-<!-- <button class="item" onclick="stockMove()">鏀捐揣</button>-->
+<!-- <button class="item" onclick="put()">鍙栨斁璐�</button>-->
+ <button class="item" onclick="take()">鍙栬揣</button>
+ <button class="item" onclick="stockMove()">鏀捐揣</button>
<!-- <button class="item" onclick="siteMove()">绔欏埌绔�</button>-->
<!-- <button class="item" onclick="bacOrigin()">鍥炲師鐐�</button>-->
<!-- <button class="item" onclick="reverseOrigin()">鍙嶅師鐐�</button>-->
<!-- <button class="item" onclick="coorMove()">鍧愭爣绉昏</button>-->
- <button class="item" onclick="taskComplete()">浠诲姟瀹屾垚</button>
- <button class="item" onclick="lock()">瑙i攣</button>
+<!-- <button class="item" onclick="taskComplete()">浠诲姟瀹屾垚</button>-->
+<!-- <button class="item" onclick="lock()">瑙i攣</button>-->
<!-- <button class="item" onclick="pause()">鏆傚仠</button>-->
<!-- <button class="item" onclick="boot()">鍚姩</button>-->
<!-- <button class="item" onclick="clearCommand()">娓呴櫎鍛戒护</button>-->
@@ -353,12 +374,10 @@
for (var i=1;i<=table.length;i++){
var tr = tableEl.find("tr").eq(i);
setVal(tr.children("td").eq(0), table[i-1].rgvNo);
- setVal(tr.children("td").eq(1), table[i-1].workNo);
- setVal(tr.children("td").eq(2), table[i-1].status);
- setVal(tr.children("td").eq(3), table[i-1].sourceStaNo);
+ setVal(tr.children("td").eq(1), table[i-1].workNo1);
+ setVal(tr.children("td").eq(2), table[i-1].workNo2);
+ setVal(tr.children("td").eq(3), table[i-1].status);
setVal(tr.children("td").eq(4), table[i-1].staNo);
- setVal(tr.children("td").eq(5), table[i-1].sourceLocNo);
- setVal(tr.children("td").eq(6), table[i-1].locNo);
// setVal(tr.children("td").eq(7), table[i-1].xspeed);
// setVal(tr.children("td").eq(8), table[i-1].yspeed);
// setVal(tr.children("td").eq(9), table[i-1].zspeed);
@@ -384,6 +403,8 @@
var sourceRow = $('#sourceRow').val();
var sourceBay = $('#sourceBay').val();
var sourceLev = $('#sourceLev').val();
+ var workSta = $('#workSta').val();
+ var workNo = $('#workNo').val();
var staNo = $('#staNo').val();
var row = $('#row').val();
var bay = $('#bay').val();
@@ -395,6 +416,8 @@
sourceBay: sourceBay,
sourceLev: sourceLev,
staNo: staNo,
+ workSta: workSta,
+ workNo: workNo,
row: row,
bay: bay,
lev: lev
@@ -408,14 +431,14 @@
});
}
- // 鍑哄簱
+ // 鍙栬揣
function take() {
http.post(baseUrl+"/rgv/operator/take", getReqParam(), function (res) {
layer.msg(res.msg);
});
}
- // 搴撲綅杞Щ
+ // 鏀捐揣
function stockMove() {
http.post(baseUrl+"/rgv/operator/stockMove", getReqParam(), function (res) {
layer.msg(res.msg);
--
Gitblit v1.9.1