From 9be8d4744aba93087c8ddb7202029047e9144bf8 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期三, 09 四月 2025 13:52:27 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 239 +++++++++++++++++------------------------------------------
1 files changed, 71 insertions(+), 168 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 4667bf6..c50efbf 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -125,15 +125,6 @@
write((StaProtocol)task.getData());
read();
break;
- // 鍐欐暟鎹� ID+鐩爣绔�
- case 4:
- writeAgvOk((StaProtocol)task.getData());
- read();
- break;
- /* case 3:
- write2((StaProtocol)task.getData());
- read();
- break;*/
default:
break;
}
@@ -160,13 +151,13 @@
staProtocol.setSiteId(siteId);
station.put(siteId, staProtocol);
}
- staProtocol.setWorkNo((short) 0); // ID
+ staProtocol.setWorkNo(0); // ID
staProtocol.setAutoing(false); // 鑷姩
staProtocol.setLoading(false); // 鏈夌墿
staProtocol.setInEnable(false); // 鍙叆
staProtocol.setOutEnable(false); // 鍙嚭
staProtocol.setEmptyMk(false); // 绌烘澘淇″彿
- staProtocol.setStaNo((short) 0); // 鐩爣绔�
+ staProtocol.setStaNo(0); // 鐩爣绔�
if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
staProtocol.setPakMk(true);
@@ -214,9 +205,9 @@
staProtocol.setSiteId(siteId);
station.put(siteId, staProtocol);
}
- staProtocol.setWorkNo((short)siemensS7Net.getByteTransform().TransInt32(result.Content, i*8)); // 宸ヤ綔鍙�
+ staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8)); // 宸ヤ綔鍙�
- staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4)); // 鐩爣绔�
+ staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8 + 4)); // 鐩爣绔�
boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2);
staProtocol.setAutoing(status[0]); // 鑷姩
@@ -246,8 +237,8 @@
staProtocol.setSiteId(siteId);
station.put(siteId, staProtocol);
}
- staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6+4)); // 鍏佽鍙栬揣
- staProtocol.setAgvStartPlace((short)0); // 鍏佽鏀捐揣
+// staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6+4)); // 鍏佽鍙栬揣
+// staProtocol.setAgvStartPlace((short)0); // 鍏佽鏀捐揣
continue;
}
Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
@@ -257,8 +248,46 @@
staProtocol.setSiteId(siteId);
station.put(siteId, staProtocol);
}
- staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6)); // 鍏佽鍙栬揣
- staProtocol.setAgvStartPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6 + 2)); // 鍏佽鏀捐揣
+// staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6)); // 鍏佽鍙栬揣
+// staProtocol.setAgvStartPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6 + 2)); // 鍏佽鏀捐揣
+ }
+ }
+
+ OperateResultExOne<byte[]> resultAgvAndPlcOk = siemensS7Net.Read("DB132.0", (short) 30);
+ if (resultAgvAndPlcOk.IsSuccess) {
+ for (int i = 0; i < staNoSize; i++) {
+ int sign =(i+2)/2-1;
+ if ((i+2)%2!=0){
+ Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+ StaProtocol staProtocol = station.get(siteId);
+ if (null == staProtocol) {
+ staProtocol = new StaProtocol();
+ staProtocol.setSiteId(siteId);
+ station.put(siteId, staProtocol);
+ }
+// staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6+4)); // 鍏佽鍙栬揣
+// staProtocol.setAgvTargetPlace((short)0); // 鍏佽鏀捐揣
+ continue;
+ }
+ Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+ StaProtocol staProtocol = station.get(siteId);
+ if (null == staProtocol) {
+ staProtocol = new StaProtocol();
+ staProtocol.setSiteId(siteId);
+ station.put(siteId, staProtocol);
+ }
+// try{
+// staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6)); // 鍙栬揣瀹屾垚
+// if (staProtocol.getAgvTargetPick()!=0){
+// System.out.println(staProtocol.getAgvTargetPick());
+// }
+// staProtocol.setAgvTargetPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6 + 2)); // 鏀捐揣瀹屾垚
+// if (staProtocol.getAgvTargetPlace()!=0){
+// System.out.println(staProtocol.getAgvTargetPlace());
+// }
+// }catch (Exception e){
+// log.error(""+e);
+// }
}
}
@@ -284,14 +313,14 @@
Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4, 1);
StaProtocol staProtocol = station.get(siteId);
- staProtocol.setBreakerErr(status[0]);
- staProtocol.setInfraredErr(status[1]);
- staProtocol.setOutTimeErr(status[2]);
- staProtocol.setSeizeSeatErr(status[3]);
- staProtocol.setWrkYgoodsN(status[4]);
- staProtocol.setInverterErr(status[5]);
- staProtocol.setContactErr(status[6]);
- staProtocol.setUpcontactErr(status[7]);
+// staProtocol.setBreakerErr(status[0]);
+// staProtocol.setInfraredErr(status[1]);
+// staProtocol.setOutTimeErr(status[2]);
+// staProtocol.setSeizeSeatErr(status[3]);
+// staProtocol.setWrkYgoodsN(status[4]);
+// staProtocol.setInverterErr(status[5]);
+// staProtocol.setContactErr(status[6]);
+// staProtocol.setUpcontactErr(status[7]);
}
}
@@ -354,90 +383,6 @@
}
}
- /**
- * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
- */
- private void writeAgvOk(StaProtocol staProtocol) throws InterruptedException {
- if (null == staProtocol) {
- return;
- }
- ArrayList<Integer> staNos = getStaNo();
- int index = staNos.indexOf(staProtocol.getSiteId());
- if (staProtocol.getAgvTypeSign()==0 || staProtocol.getAgvTypeSign()==2 ){ //0鍙栬揣
- switch (staProtocol.getSiteId()){
- case 100:
- index=32;
- break;
- case 101:
- index=34;
- break;
- case 102:
- index=38;
- break;
- case 103:
- index=40;
- break;
- case 104:
- index=44;
- break;
- case 105:
- index=46;
- break;
- case 106:
- index=50;
- break;
- case 107:
- index=52;
- break;
- default:
- return;
- }
- }else {
- switch (staProtocol.getSiteId()){
- case 100:
- index=30;
- break;
- case 102:
- index=36;
- break;
- case 104:
- index=42;
- break;
- case 106:
- index=48;
- break;
- default:
- return;
- }
- }
-
- OperateResult write = null;
- //浠诲姟涓嬪彂娆℃暟
- int writeCount = 0;
- do {
- short textWrite = 1;// 浠诲姟瀹屾垚
- if (staProtocol.getAgvTypeSign()>1){
- textWrite = 0;// 浠诲姟澶嶄綅
- }
- write = siemensS7Net.Write("DB102." + index, textWrite);
- if(write.IsSuccess){
- writeCount=6;
- }else {
- writeCount++;
- log.error("鍐欏叆杈撻�佺嚎鍙栨斁璐у畬鎴愬懡浠ゅ悗璇诲彇澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
- }
- }while (writeCount<5);
-
- if (!write.IsSuccess) {
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
- log.error("鍐欏叆杈撻�佺嚎鍙栨斁璐у畬鎴愮珯鐐规暟鎹け璐ャ�傝緭閫佺嚎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)));
- log.info("杈撻�佺嚎鍙栨斁璐у畬鎴愬懡浠や笅鍙戠爜鍨涘畬鎴� 缁欒緭閫佺嚎鍐欎换鍔″畬鎴� [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
- }
-
-
- }
private void write(StaProtocol staProtocol) throws InterruptedException {
if (null == staProtocol) {
return;
@@ -445,42 +390,6 @@
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 writeResult;
- //浠诲姟涓嬪彂娆℃暟
- int writeCount = 0;
- //浠诲姟涓嬪彂鎴愬姛鏍囪瘑
- boolean writeFlag = false;
- OperateResult writeResult1 = siemensS7Net.Write("DB100." + index*6, (int) staProtocol.getWorkNo()); // 宸ヤ綔鍙�
- OperateResult writeResult2 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo()); // 鐩爣绔�
- if(writeResult1.IsSuccess&&writeResult2.IsSuccess){
- //鏇存柊浠诲姟姝ュ簭
- TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class);
- TaskWrk taskWrk = taskWrkService.selectByWrkNo((int) staProtocol.getWorkNo());
- if (taskWrk != null) {
- taskWrk.setCommandStep(taskWrk.getCommandStep() + 1);//鏇存柊鎸囦护姝ュ簭
- taskWrkService.updateById(taskWrk);
- }else{
- log.error("杈撻�佺嚎鍐欏叆澶辫触"+staProtocol+"++++++++++++++++++++++++++++++++++++++");
- }
- }
-
-
- }
- private void write2(StaProtocol staProtocol) throws InterruptedException {
- if (null == staProtocol) {
- 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 writeResult;
//浠诲姟涓嬪彂娆℃暟
@@ -488,41 +397,36 @@
//浠诲姟涓嬪彂鎴愬姛鏍囪瘑
boolean writeFlag = false;
while(writeCount < 5){
- writeResult = siemensS7Net.Write("DB100." + index*4, array); // 宸ヤ綔鍙枫�佺洰鏍囩珯
-
- if(writeResult.IsSuccess){
+ OperateResult writeResult1 = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo().intValue()); // 宸ヤ綔鍙�
+ OperateResult writeResult2 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo()); // 鐩爣绔�
+ if(writeResult1.IsSuccess && writeResult2.IsSuccess){
Thread.sleep(200);
- OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index*4, (short)4);
+ OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index*6, (short)6);
if(readResult.IsSuccess){
- short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
- short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2);
- if(staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)){
+ Integer workNo = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0);
+ short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);
+ if(workNo.equals(staProtocol.getWorkNo().intValue()) && staProtocol.getStaNo().equals(staNo)){
//浠诲姟鍛戒护鍐欏叆鎴愬姛
writeFlag = true;
log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-
- Date now = new Date();
break;
} else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
writeCount++;
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}",
slave.getId(), JSON.toJSON(staProtocol),writeCount));
log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-
}
} else {
writeCount++;
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}",
slave.getId(), JSON.toJSON(staProtocol), writeCount));
log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-
}
} else {
writeCount++;
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}",
slave.getId(), JSON.toJSON(staProtocol),writeCount));
log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-
}
Thread.sleep(200);
}
@@ -536,22 +440,21 @@
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护灏濊瘯5娆″け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
log.error("鍐欏叆杈撻�佺嚎鍛戒护灏濊瘯5娆″け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
- //閲嶆柊娣诲姞鏁版嵁鍒颁换鍔¢槦鍒�
- boolean result = MessageQueue.offer(SlaveType.Devp, slave.getId(), new Task(3, staProtocol));
- read();//璇诲彇1娆¤澶囩姸鎬�
- return;
+// //閲嶆柊娣诲姞鏁版嵁鍒颁换鍔¢槦鍒�
+// boolean result = MessageQueue.offer(SlaveType.Devp, slave.getId(), new Task(2, staProtocol));
+// read();//璇诲彇1娆¤澶囩姸鎬�
} else {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂鎴愬姛 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
- //log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂鎴愬姛锛� {}", slave.getId(), JSON.toJSON(staProtocol));
+ log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂鎴愬姛锛� {}", slave.getId(), JSON.toJSON(staProtocol));
- Integer siteId = staProtocol.getSiteId();
- staProtocol = station.get(siteId);
- if ((siteId == 101 || siteId == 201)&&(staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0)) {
- staProtocol.setPakMk(true);
- }
-
+// Integer siteId = staProtocol.getSiteId();
+// staProtocol = station.get(siteId);
+// if ((siteId == 101 || siteId == 201)&&(staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0)) {
+// staProtocol.setPakMk(true);
+// }
}
+
}
// /**
--
Gitblit v1.9.1