From 4f64a5b70500e1ec7b0b350eb66749180ed2634a Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 23 六月 2024 20:10:07 +0800
Subject: [PATCH] # 捷众二期开发
---
src/main/java/com/zy/core/model/protocol/StaProtocol.java | 2
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 243 +++++++--------
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 83 +----
src/main/java/com/zy/common/model/LocTypeDto.java | 16
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 268 ++++++-----------
src/main/resources/application.yml | 274 +++++++++---------
6 files changed, 365 insertions(+), 521 deletions(-)
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 b55123d..ea80e68 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -117,12 +117,16 @@
staProtocol = staProtocol.clone();
}
+ /*
+ 鏃犳潯鐮�
+ 娌℃湁鍙叆淇″彿
+ 鏈夌┖鏉夸俊鍙�
+ 涓嶆槸婊℃墭鐩�
+ 鏄�2鍙疯緭閫佺嚎9995鎷f枡浠诲姟
+ */
String barcode = barcodeThread.getBarcode();
- if (Cools.isEmpty(barcode)) {
- continue;
- }
-
- if(!staProtocol.isInEnable()) {
+ if (Cools.isEmpty(barcode) || !staProtocol.isInEnable() || staProtocol.isEmptyMk()
+ || !staProtocol.isFullPlt() || (staProtocol.getWorkNo() == 9995 && devp.getId() == 2)) {
continue;
}
@@ -169,11 +173,6 @@
}
}
- //鎷f枡銆佺洏鐐逛换鍔★紝涓嶈繘鍏ユ柊鏉垮叆搴撴柟娉曪紝鐩存帴璺冲嚭
- if(staProtocol.getWorkNo() == 9995){
- continue;
- }
-
// 閫�鍥�
if (back) {
// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
@@ -195,59 +194,9 @@
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg));
}
-// String barcode11 = barcodeThread.getBarcode();
-// if (Cools.isEmpty(barcode)){
-// if (staProtocol.isAutoing()&& !staProtocol.isEmptyMk() && staProtocol.isPakMk() && staProtocol.getStamp()>=2){
-// staProtocol.setStamp(0);
-// News.info(""+mark+" - 7"+" - 鎵爜澶辫触2 ===>> {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{},绔欑偣:{}", inSta.getBarcode(), barcode11, inSta.getStaNo());
-// staProtocol.setWorkNo((short) 9989);
-// staProtocol.setStaNo(inSta.getBackSta().shortValue());
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-// // led 寮傚父鏄剧ず
-// if (ledThread != null) {
-// String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
-// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
-// }
-// continue;
-// }
-// }
if (staProtocol.isAutoing() && staProtocol.isInEnable()
&& !staProtocol.isEmptyMk() && staProtocol.getWorkNo() > 9000
- && staProtocol.isPakMk() && !back) { //&& staProtocol.getStamp()>=2) {// && !Cools.isEmpty(barcode)) {
- News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�");
-// if(!Cools.isEmpty(barcode) ) {
-//// News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-//
-// if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) {
-// staProtocol.setWorkNo((short) 9999);
-// staProtocol.setStaNo(inSta.getBackSta().shortValue());
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//
-// News.info(""+mark+" - 2"+" - 鎵爜澶辫触1 ===>> {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{},绔欑偣:{}", inSta.getBarcode(), barcode, inSta.getStaNo());
-// // led 寮傚父鏄剧ず
-// if (ledThread != null) {
-// String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
-// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
-// }
-// continue;
-// }
-// } else {
-// staProtocol.setWorkNo((short) 9999);
-// staProtocol.setStaNo(inSta.getBackSta().shortValue());
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//
-// News.info(""+mark+" - 3"+" - 鎵爜澶辫触2 ===>> {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{},绔欑偣:{}", inSta.getBarcode(), barcode, inSta.getStaNo());
-// // led 寮傚父鏄剧ず
-// if (ledThread != null) {
-// String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
-// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
-// }
-// continue;
-// }
-
+ && staProtocol.isPakMk() &&!Cools.isEmpty(barcode) && !back) {
// 鍒ゆ柇閲嶅宸ヤ綔妗�
WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
//杩囨护鍒ゆ柇锛岄槻姝㈡嫞鏂欏啀鍏ュ簱璐х墿锛岀粡杩囧叆搴撶珯鍐嶅叆搴撴椂锛岃閫�鍥炲埌閫�搴撶珯
@@ -495,7 +444,7 @@
StaDesc staDesc = staDescService.selectOne(wrapper);
if (Cools.isEmpty(staDesc)) {
News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
- staProtocol.setWorkNo((short) 9989);
+ staProtocol.setWorkNo((short) 9999);
staProtocol.setStaNo(pickSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -875,7 +824,7 @@
continue;
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() <= 9000 && staProtocol.isInEnable()
&& staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
flag = true;
}
@@ -1337,6 +1286,7 @@
crnCommand.setDestinationPosX(sta.getRow1().shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(sta.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(sta.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+ crnCommand.setCommand((short) 1);
if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
News.error(""+mark+" - 3"+" - 4"+" - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
} else {
@@ -1373,7 +1323,6 @@
crnThread.setResetFlag(true);
} else {
// 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
- System.out.println("浠诲姟鍙�"+crnProtocol.getTaskNo());
WrkMast wrkMast = wrkMastMapper.selectPakInStep3(Integer.valueOf(crnProtocol.getTaskNo()));
if (wrkMast == null) {
News.error(""+mark+" - 1"+" - 鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
@@ -1548,15 +1497,13 @@
ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, emptyInSta.getLed());
}
- if (!staProtocol.isLoading()){
- continue;
- }
// 绔欑偣鏉′欢鍒ゆ柇
if (staProtocol.isAutoing()
&& staProtocol.isInEnable()
&& staProtocol.isEmptyMk()
- && (staProtocol.getWorkNo() >= 9990 && staProtocol.getWorkNo() <= 9999)
+ && staProtocol.getWorkNo() > 9000
&& staProtocol.isPakMk()
+ && staProtocol.isLoading()
) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�");
diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java
index 03a89cd..01f9018 100644
--- a/src/main/java/com/zy/common/model/LocTypeDto.java
+++ b/src/main/java/com/zy/common/model/LocTypeDto.java
@@ -1,6 +1,5 @@
package com.zy.common.model;
-import com.core.exception.CoolException;
import com.zy.core.model.protocol.StaProtocol;
import lombok.Data;
@@ -29,9 +28,11 @@
}
public LocTypeDto(StaProtocol staProtocol) {
- if (staProtocol.isHigh() == staProtocol.isLow() == staProtocol.isMedium() == staProtocol.isMedium_high()) {
- throw new CoolException("plc楂樹綆妫�娴嬪紓甯�");
- }
+ System.out.println("----------"+staProtocol.getSiteId()+"搴撲綅妫�娴嬪師濮嬫暟鎹负:"+staProtocol.isWeight()+"------------");
+// if (staProtocol.isHigh() == staProtocol.isLow() == staProtocol.isMedium() == staProtocol.isMedium_high()) {
+// throw new CoolException("plc楂樹綆妫�娴嬪紓甯�");
+// }
+
if (staProtocol.isLow()) {
this.locType1 = 1; // 浣庡簱浣�
} else if (staProtocol.isHigh()){
@@ -41,7 +42,12 @@
} else if (staProtocol.isMedium_high()) {
this.locType1 = 4; // 楂樺簱浣�
}
-
+ if (staProtocol.isWeight() && staProtocol.getSiteId() == 204 || staProtocol.getSiteId() == 104) {
+ this.locType1 = 2;
+ } else {
+ this.locType1 = 1;
+ }
+ System.out.println("----------"+staProtocol.getSiteId()+"搴撲綅妫�娴嬪鐞嗕负鏁版嵁涓�:"+this.locType1+"------------");
}
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index fcdfab9..e2eadb7 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -74,6 +74,8 @@
// 鎵爜澶辫触
private boolean barcodeErr = false;
+ private boolean weight = false;
+
// 鍏ュ簱鏆傚瓨鏁�
private Short inQty;
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index a410ab6..e69f212 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -89,12 +89,12 @@
command.setTaskNo((short) 0); // 宸ヤ綔鍙�
command.setAckFinish((short) 1); // 浠诲姟瀹屾垚纭浣�
command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
- command.setSourcePosX((short)0); // 婧愬簱浣嶆帓
- command.setSourcePosY((short)0); // 婧愬簱浣嶅垪
- command.setSourcePosZ((short)0); // 婧愬簱浣嶅眰
- command.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺�
- command.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒�
- command.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞�
+ command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓
+ command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪
+ command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰
+ command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
+ command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
+ command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞�
write(command);
break;
default:
@@ -117,14 +117,14 @@
}
crnProtocol.setMode((short) -1);
// crnProtocol.setTaskNo((short)0);
- crnProtocol.setStatus((short)-1);
- crnProtocol.setBay((short)0);
- crnProtocol.setLevel((short)0);
+ crnProtocol.setStatus((short) -1);
+ crnProtocol.setBay((short) 0);
+ crnProtocol.setLevel((short) 0);
crnProtocol.setForkPos((short) -1);
crnProtocol.setLiftPos((short) -1);
- crnProtocol.setWalkPos((short)0);
- crnProtocol.setLoaded((short)0);
- crnProtocol.setAlarm((short)0);
+ crnProtocol.setWalkPos((short) 0);
+ crnProtocol.setLoaded((short) 0);
+ crnProtocol.setAlarm((short) 0);
crnProtocol.setxSpeed((short) 0);
crnProtocol.setySpeed((short) 0);
crnProtocol.setzSpeed((short) 0);
@@ -141,13 +141,13 @@
siemensNet.setRack(slave.getRack().byteValue());
siemensNet.setSlot(slave.getSlot().byteValue());
OperateResult connect = siemensNet.ConnectServer();
- if(connect.IsSuccess){
+ if (connect.IsSuccess) {
result = true;
- OutputQueue.CRN.offer(MessageFormat.format( "銆恵0}銆戝爢鍨涙満plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- News.info("SiemensCrn"+" - 1"+" - 鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝爢鍨涙満plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+ News.info("SiemensCrn" + " - 1" + " - 鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
} else {
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝爢鍨涙満plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- News.error("SiemensCrn"+" - 2"+" - 鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+ News.error("SiemensCrn" + " - 2" + " - 鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
initCrn();
}
// siemensNet.ConnectClose();
@@ -157,7 +157,7 @@
/**
* 璇诲彇鐘舵��
*/
- private void readStatus(){
+ private void readStatus() {
try {
OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 54);
if (result.IsSuccess) {
@@ -175,79 +175,46 @@
crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 14));
crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 16));
crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 18));
-
crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28));
crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 32));
crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 36));
-// crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 34));
-// crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 36));
-// crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 38));
-
crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 44));
crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
-// crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
-// crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 42));
-// crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 44));
crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52));
-
-
-// crnProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 20));
-// crnProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 22));
-// crnProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 24));
-// crnProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 26));
-
-
-
- OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-
- // 澶嶄綅淇″彿
-// if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
-// if (resetFlag) {
-// if(crnProtocol.getTaskNo()==9999){
-// backHpFlag = false;
-// }
-// CrnCommand crnCommand = new CrnCommand();
-// crnCommand.setAckFinish((short)1);
-// if (write(crnCommand)) {
-// resetFlag = false;
-// }
-// }
-// }
-
- if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
-// News.error("-------------------------------------------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙颁俊鍙�:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�",
-// slave.getId(),crnProtocol.getTaskNo(), crnProtocol.getLoaded()==1 ? "鏈夌墿" : "鏃犵墿");
- if (resetFlag) {
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setAckFinish((short)1);
- if (write(crnCommand)) {
- resetFlag = false;
-// cmdFlag = true;
- }
- }
- }
-
- try {
- // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
- BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
- BasCrnp basCrnp = new BasCrnp();
- basCrnp.setCrnNo(slave.getId());
- basCrnp.setCrnSts((int)crnProtocol.getMode());
- if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
- News.error("SiemensCrn"+" - 3"+" - 鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
- }
- } catch (Exception ignore){}
-
} else {
initCrn();
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- News.error("SiemensCrn"+" - 4"+" - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+ News.error("SiemensCrn" + " - 4" + " - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
}
+ // 澶嶄綅淇″彿
+ if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING) && resetFlag) {
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setAckFinish((short) 1);
+ if (write(crnCommand)) {
+ resetFlag = false;
+ }
+ }
+
+
+ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
+
+ try {
+ // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+ BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+ BasCrnp basCrnp = new BasCrnp();
+ basCrnp.setCrnNo(slave.getId());
+ basCrnp.setCrnSts((int) crnProtocol.getMode());
+ if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))) {
+ News.error("SiemensCrn" + " - 3" + " - 鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+ }
+ } catch (Exception ignore) {
+ }
+
} catch (Exception e) {
e.printStackTrace();
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- News.error("SiemensCrn"+" - 5"+" - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ News.error("SiemensCrn" + " - 5" + " - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
initCrn();
}
}
@@ -266,43 +233,55 @@
*/
private boolean write(CrnCommand command) throws InterruptedException {
if (null == command) {
- News.error("SiemensCrn"+" - 6"+" - 鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
+ News.error("SiemensCrn" + " - 6" + " - 鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
return false;
}
- OperateResult result;
-// convertRow(command);
- if (command.getAckFinish() == 1) {
- result = siemensNet.Write("DB100.0", (short) 1);
-// result = siemensNet.Write("DB100.18", 0);
+ OperateResult result = null;
+ // 鍐�3鍙峰爢鍨涙満
+ if (slave.getId() == 3) {
+ // 鍐欎换鍔″畬鎴愮‘璁�
+ if (command.getAckFinish() == 1) {
+ result = siemensNet.Write("DB100.0", (short) 1);
+ } else {
+ command.setCrnNo(slave.getId());
+ short[] array = new short[10];
+ array[0] = command.getAckFinish();
+ array[1] = command.getTaskNo();
+ array[2] = command.getTaskMode();
+ array[3] = command.getSourcePosX();
+ array[4] = command.getSourcePosY();
+ array[5] = command.getSourcePosZ();
+ array[6] = command.getDestinationPosX();
+ array[7] = command.getDestinationPosY();
+ array[8] = command.getDestinationPosZ();
+ array[9] = command.getCommand();
+ result = siemensNet.Write("DB100.0", array);
+ }
} else {
- command.setCrnNo(slave.getId());
- short[] array = new short[10];
- array[0] = command.getAckFinish();
- array[1] = command.getTaskNo();
- array[2] = command.getTaskMode();
- array[3] = command.getSourcePosX();
- array[4] = command.getSourcePosY();
- array[5] = command.getSourcePosZ();
- array[6] = command.getDestinationPosX();
- array[7] = command.getDestinationPosY();
- array[8] = command.getDestinationPosZ();
-// array[9] = command.getSourceStaNo();
-// array[10] = command.getDestinationStaNo();
- array[9] = command.getCommand();
- result = siemensNet.Write("DB100.0", array);
-
-// if (command.getAckFinish() == 0) {
-// short commandFinish = 1;
-// Thread.sleep(100L);
-// result = siemensNet.Write("DB100.18", commandFinish);
-// }
+ // 鍐欎换鍔″畬鎴愮‘璁�
+ if (command.getAckFinish() == 1) {
+ result = siemensNet.Write("DB100.0", (short) 1);
+ } else {
+ command.setCrnNo(slave.getId());
+ short[] array = new short[10];
+ array[0] = command.getAckFinish();
+ array[1] = command.getTaskNo();
+ array[2] = command.getTaskMode();
+ array[3] = command.getSourcePosX();
+ array[4] = command.getSourcePosY();
+ array[5] = command.getSourcePosZ();
+ array[6] = command.getDestinationPosX();
+ array[7] = command.getDestinationPosY();
+ array[8] = command.getDestinationPosZ();
+ array[9] = command.getCommand();
+ result = siemensNet.Write("DB100.0", array);
+ }
}
try {
// 鏃ュ織璁板綍
BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
- BasCrnOpt basCrnOpt = new BasCrnOpt(
- command.getTaskNo().intValue(), // 浠诲姟鍙�
+ BasCrnOpt basCrnOpt = new BasCrnOpt(command.getTaskNo().intValue(), // 浠诲姟鍙�
command.getCrnNo(), // 鍫嗗灈鏈篬闈炵┖]
new Date(), // 涓嬪彂鏃堕棿
command.getTaskModeType().toString(), // 妯″紡
@@ -319,17 +298,18 @@
null // 淇敼浜哄憳
);
bean.insert(basCrnOpt);
- } catch (Exception ignore) {}
+ } catch (Exception ignore) {
+ }
if (result != null && result.IsSuccess) {
Thread.sleep(200);
this.readStatus();
- News.info("SiemensCrn"+" - 7"+" - 鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+ News.info("SiemensCrn" + " - 7" + " - 鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
return true;
} else {
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- News.error("SiemensCrn"+" - 8"+" - 鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ News.error("SiemensCrn" + " - 8" + " - 鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
return false;
}
}
@@ -345,8 +325,8 @@
/*****************************************************************************************/
public static void main(String[] args) throws InterruptedException {
CrnSlave slave = new CrnSlave();
- slave.setId(1);
- slave.setIp("10.10.10.10");
+ slave.setId(2);
+ slave.setIp("10.10.10.20");
slave.setPort(0);
slave.setRack(0);
slave.setSlot(0);
@@ -357,19 +337,19 @@
Thread.sleep(3000L);
// 1.鍏ュ簱 婧愬拰鐩爣閮藉彂
-// CrnCommand command = new CrnCommand();
-//// command.setCrnNo(3); // 鍫嗗灈鏈虹紪鍙�
-// command.setTaskNo((short) 2); // 宸ヤ綔鍙�
-// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
-// command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
-// command.setSourcePosX((short) 6); // 婧愬簱浣嶆帓
-// command.setSourcePosY((short) 2); // 婧愬簱浣嶅垪
-// command.setSourcePosZ((short) 2); // 婧愬簱浣嶅眰
-// command.setDestinationPosX((short) 6); // 鐩爣搴撲綅鎺�
-// command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
-// command.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞�
-// command.setCommand((short)1);
-// crnThread.write(command);
+ CrnCommand command = new CrnCommand();
+// command.setCrnNo(3); // 鍫嗗灈鏈虹紪鍙�
+ command.setTaskNo((short) 4676); // 宸ヤ綔鍙�
+ command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
+ command.setSourcePosX((short) 5); // 婧愬簱浣嶆帓
+ command.setSourcePosY((short) 1); // 婧愬簱浣嶅垪
+ command.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰
+ command.setDestinationPosX((short) 4); // 鐩爣搴撲綅鎺�
+ command.setDestinationPosY((short) 2); // 鐩爣搴撲綅鍒�
+ command.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞�
+ command.setCommand((short) 1);
+ crnThread.write(command);
// 2.鍑哄簱 婧愬拰鐩爣閮藉彂
// CrnCommand command = new CrnCommand();
@@ -386,18 +366,19 @@
// crnThread.write(command);
-// // 3.搴撲綅绉昏浆 婧愬拰鐩爣閮藉彂 pass
+ // 3.搴撲綅绉昏浆 婧愬拰鐩爣閮藉彂 pass
// CrnCommand command = new CrnCommand();
-// command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-// command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+//// command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+// command.setTaskNo((short) 3); // 宸ヤ綔鍙�
// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
// command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
-// command.setSourcePosX((short)2); // 婧愬簱浣嶆帓
+// command.setSourcePosX((short)4); // 婧愬簱浣嶆帓
// command.setSourcePosY((short)2); // 婧愬簱浣嶅垪
-// command.setSourcePosZ((short)3); // 婧愬簱浣嶅眰
-// command.setDestinationPosX((short)2); // 鐩爣搴撲綅鎺�
-// command.setDestinationPosY((short)4); // 鐩爣搴撲綅鍒�
-// command.setDestinationPosZ((short)4); // 鐩爣搴撲綅灞�
+// command.setSourcePosZ((short)10); // 婧愬簱浣嶅眰
+// command.setDestinationPosX((short)4); // 鐩爣搴撲綅鎺�
+// command.setDestinationPosY((short)1); // 鐩爣搴撲綅鍒�
+// command.setDestinationPosZ((short)9); // 鐩爣搴撲綅灞�
+// command.setCommand((short)1);
// crnThread.write(command);
// 4.绔欎綅绉昏浆 婧愬拰鐩爣閮藉彂
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index a2528c8..506993f 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -192,15 +192,58 @@
* 璇诲彇鐘舵�� ====> 鏁村潡plc
*/
private void read() throws InterruptedException {
-// // 鏇存柊鍏ュ嚭搴撴ā寮�
-// updateIoMode();
- String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
ArrayList<Integer> staNos = getStaNo();
int staNoSize = staNos.size();
+ // 璇诲彇1鍙疯緭閫佺嚎
if (slave.getId() == 1) {
+ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize * 8));
+ if (result.IsSuccess) {
+ for (int i = 0; i < staNoSize; i++) {
+ Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+ StaProtocol staProtocol = station.get(siteId);
+ if (null == staProtocol) {
+ staProtocol = new StaProtocol();
+ staProtocol.setSiteId(siteId);
+ station.put(siteId, staProtocol);
+ }
+ staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4)); // 宸ヤ綔鍙�
+ staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 2)); // 鐩爣绔�
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, 60+i, 1);
+ staProtocol.setAutoing(status[0]); // 鑷姩
+ staProtocol.setLoading(status[1]); // 鏈夌墿
+ staProtocol.setInEnable(status[2]); // 鍙叆
+ staProtocol.setOutEnable(status[3]);// 鍙嚭
+ staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
+ staProtocol.setFullPlt(status[5]); // 婊℃墭鐩�
+ staProtocol.setHigh(status[6]); // 楂樺簱浣�
+ staProtocol.setLow(status[7]); // 浣庡簱浣�
+ staProtocol.setWeight(status[6]); //鏄惁涓洪噸璐�
+ if (!staProtocol.isPakMk() && staProtocol.isLoading()) {
+ staProtocol.setPakMk(true);
+ }
+ }
+ } else {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣鍙栬緭閫佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ log.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] ", slave.getId(), slave.getIp(), slave.getPort());
+ }
+
+ //鏉$爜鎵弿鍣�
+ Thread.sleep(200);
+ ArrayList<Integer> barcodeList = getBarcodeList();
+ OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.90", (short) (barcodeList.size() * 8));
+ if (result2.IsSuccess) {
+ for (int i = 0; i < barcodeList.size(); i++) {
+ Integer barcodeId = barcodeList.get(i);
+ String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
+ if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+ barcodeThread.setBarcode(barcode);
+ }
+ }
+ }
} else if (slave.getId() == 2) {
- OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*8));
+ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 8));
if (result.IsSuccess) {
for (int i = 0; i < staNoSize; i++) {
Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
@@ -211,8 +254,8 @@
station.put(siteId, staProtocol);
}
staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i * 8)); // 宸ヤ綔鍙�
- staProtocol.setStaNo( siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4 )); // 鐩爣绔�
- boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8+6, 1);
+ staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 8 + 4)); // 鐩爣绔�
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 8 + 6, 1);
staProtocol.setAutoing(status[0]); // 鑷姩
staProtocol.setLoading(status[1]); // 鏈夌墿
staProtocol.setInEnable(status[2]); // 鍙叆
@@ -226,24 +269,6 @@
staProtocol.setPakMk(true);
}
}
-
- // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
- try {
- List<BasDevp> basDevps = new ArrayList<>();
- for (Integer siteId : staNos) {
- StaProtocol staProtocol = station.get(siteId);
- basDevps.add(staProtocol.toSqlModel());
- }
-
- BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
- if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
- throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
- }
- } catch (Exception e) {
- e.printStackTrace();
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戞洿鏂版暟鎹簱鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- News.error(methodName + ":鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
- }
} else {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣鍙栬緭閫佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
log.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] ", slave.getId(), slave.getIp(), slave.getPort());
@@ -251,16 +276,16 @@
//澶栧舰妫�娴�
OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.42", (short) 8);
- if (resultErr.IsSuccess){
- boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, 0, 1);
- StaProtocol staProtocol = station.get(303);
- staProtocol.setFrontErr(status[0]);
- staProtocol.setBackErr(status[1]);
- staProtocol.setHighErr(status[2]);
- staProtocol.setLeftErr(status[3]);
- staProtocol.setRightErr(status[4]);
- staProtocol.setWeightErr(status[5]);
- staProtocol.setBarcodeErr(status[6]);
+ if (resultErr.IsSuccess) {
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, 0, 1);
+ StaProtocol staProtocol = station.get(303);
+ staProtocol.setFrontErr(status[0]);
+ staProtocol.setBackErr(status[1]);
+ staProtocol.setHighErr(status[2]);
+ staProtocol.setLeftErr(status[3]);
+ staProtocol.setRightErr(status[4]);
+ staProtocol.setWeightErr(status[5]);
+ staProtocol.setBarcodeErr(status[6]);
}
//鏉$爜鎵弿鍣�
@@ -270,118 +295,31 @@
if (result2.IsSuccess) {
for (int i = 0; i < barcodeList.size(); i++) {
Integer barcodeId = barcodeList.get(i);
- String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
+ String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
- if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+ if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
barcodeThread.setBarcode(barcode);
}
}
}
-// //鏉$爜鎵弿鍣�
-// Thread.sleep(200);
-// OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.60",(short)8);
-// if (result2.IsSuccess) {
-// String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,0,8, "UTF-8");
-// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 3);
-// if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
-// barcodeThread.setBarcode(barcode);
-// }
-// }
}
+ // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+ try {
+ List<BasDevp> basDevps = new ArrayList<>();
+ for (Integer siteId : staNos) {
+ StaProtocol staProtocol = station.get(siteId);
+ basDevps.add(staProtocol.toSqlModel());
+ }
-//
-// if (result.IsSuccess) {
-// for (int i = 0; i < staNoSize; i++) {
-// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-// StaProtocol staProtocol = station.get(siteId);
-// if (null == staProtocol) {
-// staProtocol = new StaProtocol();
-// staProtocol.setSiteId(siteId);
-// station.put(siteId, staProtocol);
-// }
-// staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4)); // 宸ヤ綔鍙�
-//
-// staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4+2)); // 鐩爣绔�
-// }
-// }
-
-// Thread.sleep(200);
-// OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.60", (short) (staNoSize * 2));
-// if (result1.IsSuccess) {
-// for (int i = 0; i < staNoSize; i++) {
-// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-// boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 1);
-// boolean[] status2 = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2+1, 1);
-// StaProtocol staProtocol = station.get(siteId);
-// staProtocol.setAutoing(status[0]); // 鑷姩
-// staProtocol.setLoading(status[1]); // 鏈夌墿
-// staProtocol.setInEnable(status[2]); // 鍙叆
-// staProtocol.setOutEnable(status[3]);// 鍙嚭
-// staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
-// staProtocol.setFullPlt(status[5]); // 婊℃墭鐩�
-// staProtocol.setLow(status[6]); // 浣庡簱浣�
-// staProtocol.setMedium(status[7]); // 涓簱浣�
-// staProtocol.setMedium_high(status2[0]); //涓珮搴撲綅
-// staProtocol.setHigh(status2[1]); // 楂樺簱浣�
-// if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
-// staProtocol.setPakMk(true);
-// }
-//
-// if (!staProtocol.isLoading()){
-// staProtocol.setStamp(0);
-// }
-// }
-// }
-
- //鎺ユ敹瓒呭瓒呴珮娌℃壂鍒版潯鐮佹姤璀�
-// Thread.sleep(200);
-// OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB101.34",(short)(1));
-// if (result4.IsSuccess) {
-// startSignal = siemensS7Net.getByteTransform().TransBool(result4.Content, 0, 1);
-// }
-
-
- //鏉$爜鎵弿鍣�
-// Thread.sleep(200);
-// OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.60",(short)(barcodeSize*8));
-// if (result2.IsSuccess) {
-// for (int i = 0; i < barcodeSize; i++) {
-// String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
-// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
-// if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
-// barcodeThread.setBarcode(barcode);
-// }
-// }
-// }
-
-// if (result.IsSuccess && result1.IsSuccess) {
-//
-// OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-//
-// // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
-// try {
-// List<BasDevp> basDevps = new ArrayList<>();
-// for (Integer siteId : staNos) {
-// StaProtocol staProtocol = station.get(siteId);
-// basDevps.add(staProtocol.toSqlModel());
-// }
-//
-// BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
-// if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
-// throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
-// }
-// } catch (Exception e) {
-// initSite();
-// e.printStackTrace();
-// OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戞洿鏂版暟鎹簱鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
-// News.error("SiemensDevp"+" - 3"+" - 鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
-// }
-//
-// } else {
-// OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣鍙栬緭閫佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
-//// log.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
-// }
+ BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
+ if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
+ throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戞洿鏂版暟鎹簱鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+ }
}
/**
@@ -392,57 +330,31 @@
return;
}
ArrayList<Integer> staNos = getStaNo();
- int index = staNos.indexOf(staProtocol.getSiteId());
- short[] array = new short[2];
- array[0] = staProtocol.getWorkNo();
- array[1] = staProtocol.getStaNo();
-// OperateResult write = siemensS7Net.Write("DB100." + index*4, array);
-
OperateResult write = null;
OperateResult write1 = null;
-// //浠诲姟涓嬪彂娆℃暟
-// int writeCount = 0;
-// do {
- write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo()); // 鐩爣绔�
+ // 鍐�2鍙疯緭閫佺嚎
+ if (slave.getId() == 1) {
+ int index = staNos.indexOf(staProtocol.getSiteId());
+ write = siemensS7Net.Write("DB100." + index * 4, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
Thread.sleep(500);
- write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo().intValue()); // 宸ヤ綔鍙�
-
-// if(write.IsSuccess || write1.IsSuccess){
-// Thread.sleep(200);
-// OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index*4, (short) 2);
-// OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB100." + (index*4+2), (short) 2);
-// if(readResult.IsSuccess && readResult1.IsSuccess){
-// short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
-// short staNo = siemensS7Net.getByteTransform().TransInt16(readResult1.Content, 0);
-// if(staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)){
-// //浠诲姟鍛戒护鍐欏叆鎴愬姛
-// log.info("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗杩斿洖鎴愬姛锛屽苟涓斿洖璇绘垚鍔熴�傚爢鍨涙満plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-// break;
-// } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
-// writeCount++;
-// log.error("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗杩斿洖鎴愬姛锛屼絾鏄鍙栦换鍔″�间笉涓�鑷淬�傚爢鍨涙満plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-// }
-// } else {
-// writeCount++;
-// log.error("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗璇诲彇澶辫触銆傚爢鍨涙満plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-// }
-// }
-// else {
-// writeCount++;
-// log.error("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗璇诲彇澶辫触銆傚爢鍨涙満plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-// }
-// }while (writeCount<5);
+ write1 = siemensS7Net.Write("DB100." + (4 * index + 2), staProtocol.getStaNo()); // 鐩爣绔檈
+ } else {
+ int index = staNos.indexOf(staProtocol.getSiteId());
+ write1 = siemensS7Net.Write("DB100." + (index * 6 + 4), staProtocol.getStaNo()); // 鐩爣绔�
+ Thread.sleep(500);
+ write = siemensS7Net.Write("DB100." + index * 6, staProtocol.getWorkNo().intValue()); // 宸ヤ綔鍙�
+ }
if (!write.IsSuccess || !write1.IsSuccess) {
staProtocol = station.get(staProtocol.getSiteId());
- if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
+ if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() == 0) {
staProtocol.setPakMk(true);
}
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
- News.error("SiemensDevp"+" - 4"+" - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+ News.error("SiemensDevp" + " - 4" + " - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
} else {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
- News.info("SiemensDevp"+" - 5"+" - 杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
+ News.info("SiemensDevp" + " - 5" + " - 杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
}
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 5f90ed6..108810e 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -39,61 +39,61 @@
# 涓嬩綅鏈洪厤缃�
wcs-slave:
# 鍙屾繁
- doubleDeep: true
+ doubleDeep: false
# 鍙屾繁搴撲綅鎺掑彿
doubleLocs: 1
# 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
groupCount: 3
-# # 鍫嗗灈鏈�1
-# crn[0]:
-# id: 1
-# ip: 10.10.10.10
-# port: 102
-# rack: 0
-# slot: 0
-# # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
-# offset: 2
-# demo: false
-# # 鍫嗗灈鏈哄叆搴撶珯鐐�
-# crnInStn[0]:
-# devpPlcId: ${wcs-slave.devp[0].id}
-# staNo: 104
-# row: 3
-# bay: 39
-# lev: 1
-# # 鍫嗗灈鏈哄嚭搴撶珯鐐�
-# crnOutStn[0]:
-# devpPlcId: ${wcs-slave.devp[0].id}
-# staNo: 100
-# row: 2
-# bay: 39
-# lev: 1
-# # 鍫嗗灈鏈�2
-# crn[1]:
-# id: 2
-# ip: 10.10.10.18
-# port: 102
-# rack: 0
-# slot: 0
-# # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
-# offset: 2
-# demo: false
-# # 鍫嗗灈鏈哄叆搴撶珯鐐�
-# crnInStn[0]:
-# devpPlcId: ${wcs-slave.devp[0].id}
-# staNo: 204
-# row: 5
-# bay: 39
-# lev: 1
-# # 鍫嗗灈鏈哄嚭搴撶珯鐐�
-# crnOutStn[0]:
-# devpPlcId: ${wcs-slave.devp[0].id}
-# staNo: 200
-# row: 4
-# bay: 39
-# lev: 1
- # 鍫嗗灈鏈�3
+ # 鍫嗗灈鏈�1
crn[0]:
+ id: 1
+ ip: 10.10.10.10
+ port: 0
+ rack: 0
+ slot: 0
+ # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
+ offset: 2
+ demo: false
+ # 鍫嗗灈鏈哄叆搴撶珯鐐�
+ crnInStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 104
+ row: 3
+ bay: 1
+ lev: 1
+ # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+ crnOutStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 100
+ row: 2
+ bay: 1
+ lev: 1
+ # 鍫嗗灈鏈�2
+ crn[1]:
+ id: 2
+ ip: 10.10.10.20
+ port: 0
+ rack: 0
+ slot: 0
+ # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
+ offset: 2
+ demo: false
+ # 鍫嗗灈鏈哄叆搴撶珯鐐�
+ crnInStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 204
+ row: 5
+ bay: 1
+ lev: 1
+ # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+ crnOutStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 200
+ row: 4
+ bay: 1
+ lev: 1
+ # 鍫嗗灈鏈�3
+ crn[2]:
id: 3
ip: 10.10.10.30
port: 0
@@ -104,67 +104,67 @@
demo: false
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
- devpPlcId: ${wcs-slave.devp[0].id}
+ devpPlcId: ${wcs-slave.devp[1].id}
staNo: 304
row: 7
bay: 0
lev: 1
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
- devpPlcId: ${wcs-slave.devp[0].id}
+ devpPlcId: ${wcs-slave.devp[1].id}
staNo: 300
row: 6
bay: 0
lev: 1
-# # 杈撻�佺嚎1
-# devp[0]:
-# id: 1
-# ip: 10.10.10.100
-# port: 102
-# rack: 0
-# slot: 0
-# # 鍏ュ簱鍙�1
-# inSta[0]:
-# staNo: 104
-# barcode: ${wcs-slave.barcode[0].id}
-# backSta: 103
-# led: ${wcs-slave.led[0].id}
-# # 鍏ュ簱鍙�2
-# inSta[1]:
-# staNo: 204
-# barcode: ${wcs-slave.barcode[1].id}
-# backSta: 203
-# led: ${wcs-slave.led[1].id}
-# # 绌烘澘鍏ュ簱鍙�1
-# emptyInSta[0]:
-# staNo: 104
-# barcode: ${wcs-slave.barcode[0].id}
-# led: ${wcs-slave.led[0].id}
-# # 绌烘澘鍏ュ簱鍙�2
-# emptyInSta[1]:
-# staNo: 204
-# barcode: ${wcs-slave.barcode[1].id}
-# led: ${wcs-slave.led[1].id}
-# # 鎷f枡鍏ュ簱鍙�1
-# pickSta[0]:
-# staNo: 204
-# barcode: ${wcs-slave.barcode[1].id}
-# led: ${wcs-slave.led[1].id}
-# # 鎷f枡鍏ュ簱鍙�2
-# pickSta[1]:
-# staNo: 104
-# barcode: ${wcs-slave.barcode[0].id}
-# led: ${wcs-slave.led[0].id}
-# # 鍑哄簱鍙�1
-# outSta[0]:
-# staNo: 101
-# led: ${wcs-slave.led[0].id}
-# # 鍑哄簱鍙�2
-# outSta[1]:
-# staNo: 201
-# led: ${wcs-slave.led[1].id}
- # 杈撻�佺嚎2
+ # 杈撻�佺嚎1
devp[0]:
+ id: 1
+ ip: 10.10.10.100
+ port: 0
+ rack: 0
+ slot: 0
+ # 鍏ュ簱鍙�1
+ inSta[0]:
+ staNo: 104
+ barcode: ${wcs-slave.barcode[0].id}
+ backSta: 103
+ led: ${wcs-slave.led[0].id}
+ # 鍏ュ簱鍙�2
+ inSta[1]:
+ staNo: 204
+ barcode: ${wcs-slave.barcode[1].id}
+ backSta: 203
+ led: ${wcs-slave.led[1].id}
+ # 绌烘澘鍏ュ簱鍙�1
+ emptyInSta[0]:
+ staNo: 104
+ barcode: ${wcs-slave.barcode[0].id}
+ led: ${wcs-slave.led[0].id}
+ # 绌烘澘鍏ュ簱鍙�2
+ emptyInSta[1]:
+ staNo: 204
+ barcode: ${wcs-slave.barcode[1].id}
+ led: ${wcs-slave.led[1].id}
+ # 鎷f枡鍏ュ簱鍙�1
+ pickSta[0]:
+ staNo: 204
+ barcode: ${wcs-slave.barcode[1].id}
+ led: ${wcs-slave.led[1].id}
+ # 鎷f枡鍏ュ簱鍙�2
+ pickSta[1]:
+ staNo: 104
+ barcode: ${wcs-slave.barcode[0].id}
+ led: ${wcs-slave.led[0].id}
+ # 鍑哄簱鍙�1
+ outSta[0]:
+ staNo: 101
+ led: ${wcs-slave.led[0].id}
+ # 鍑哄簱鍙�2
+ outSta[1]:
+ staNo: 201
+ led: ${wcs-slave.led[1].id}
+ # 杈撻�佺嚎2
+ devp[1]:
id: 2
ip: 10.10.10.130
port: 0
@@ -173,61 +173,57 @@
# 鍏ュ簱鍙�1
inSta[0]:
staNo: 304
- barcode: ${wcs-slave.barcode[0].id}
+ barcode: ${wcs-slave.barcode[2].id}
backSta: 303
- led: ${wcs-slave.led[0].id}
+ led: ${wcs-slave.led[3].id}
# 绌烘澘鍏ュ簱鍙�1
emptyInSta[0]:
staNo: 304
- barcode: ${wcs-slave.barcode[0].id}
- led: ${wcs-slave.led[0].id}
+ barcode: ${wcs-slave.barcode[2].id}
+ led: ${wcs-slave.led[3].id}
# 鎷f枡鍏ュ簱鍙�1
pickSta[0]:
staNo: 304
- barcode: ${wcs-slave.barcode[0].id}
- led: ${wcs-slave.led[0].id}
+ barcode: ${wcs-slave.barcode[2].id}
+ led: ${wcs-slave.led[3].id}
# 鍑哄簱鍙�1
outSta[0]:
staNo: 301
- led: ${wcs-slave.led[0].id}
+ led: ${wcs-slave.led[2].id}
# 鏉$爜鎵弿浠�1
-# barcode[0]:
-# id: 1
-# ip: 10.10.10.102
-# port: 51236
-# # 鏉$爜鎵弿浠�2
-# barcode[1]:
-# id: 2
-# ip: 10.10.10.104
-# port: 51236
- # 鏉$爜鎵弿浠�3
barcode[0]:
+ id: 1
+ # 鏉$爜鎵弿浠�2
+ barcode[1]:
+ id: 2
+ # 鏉$爜鎵弿浠�3
+ barcode[2]:
id: 3
# LED1
-# led[0]:
-# id: 1
-# ip: 10.10.10.107
-# port: 5005
-# devpPlcId: ${wcs-slave.devp[0].id}
-# staArr: 101
-# # LED2
-# led[1]:
-# id: 2
-# ip: 10.10.10.105
-# port: 5005
-# devpPlcId: ${wcs-slave.devp[0].id}
-# staArr: 201
- # LED3
led[0]:
- id: 3
+ id: 1
+ ip: 10.10.10.107
+ port: 5005
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staArr: 101
+ # LED2
+ led[1]:
+ id: 2
ip: 10.10.10.105
port: 5005
devpPlcId: ${wcs-slave.devp[0].id}
+ staArr: 201
+ # LED3
+ led[2]:
+ id: 3
+ ip: 10.10.10.108
+ port: 5005
+ devpPlcId: ${wcs-slave.devp[1].id}
staArr: 301
-# # LED4
-# led[3]:
-# id: 4
-# ip: 10.10.10.105
-# port: 5005
-# devpPlcId: ${wcs-slave.devp[1].id}
-# staArr: 304
\ No newline at end of file
+ # LED4
+ led[3]:
+ id: 4
+ ip: 10.10.10.109
+ port: 5005
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staArr: 304
\ No newline at end of file
--
Gitblit v1.9.1