From eddc7010369c735de1c4931a46b9d87a1008ae1e Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期一, 17 十一月 2025 09:04:57 +0800
Subject: [PATCH] 堆垛机移库任务等待确认调整
---
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 181 ++++++++++++++++++++++++++++----------------
1 files changed, 114 insertions(+), 67 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index b1995c0..cc12a8f 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -10,8 +10,10 @@
import com.core.common.SpringUtils;
import com.zy.asrs.entity.BasCrnOpt;
import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.entity.DeviceDataLog;
import com.zy.asrs.service.BasCrnOptService;
import com.zy.asrs.service.BasCrnpService;
+import com.zy.asrs.service.DeviceDataLogService;
import com.zy.common.utils.News;
import com.zy.core.CrnThread;
import com.zy.core.cache.MessageQueue;
@@ -27,6 +29,7 @@
import lombok.extern.slf4j.Slf4j;
import java.text.MessageFormat;
+import java.util.Base64;
import java.util.Date;
/**
@@ -75,6 +78,7 @@
// 鍐欏叆鏁版嵁 1鍙峰伐浣�
case 2:
CrnCommand data = (CrnCommand) task.getData();
+ crnProtocol.setLastCommandTime(System.currentTimeMillis());
if (data.getPltType() == null || data.getPltType() == 1) {
write(data);
} else if (data.getPltType() == 2) {
@@ -147,13 +151,13 @@
crnProtocol.setWalkPos((short) 0);
crnProtocol.setLoaded((short) 0);
crnProtocol.setAlarm((short) 0);
- crnProtocol.setxSpeed((short) 0);
- crnProtocol.setySpeed((short) 0);
- crnProtocol.setzSpeed((short) 0);
- crnProtocol.setxDistance((short) 0);
- crnProtocol.setyDistance((short) 0);
- crnProtocol.setxDuration((short) 0);
- crnProtocol.setyDuration((short) 0);
+ crnProtocol.setxSpeed((float) 0);
+ crnProtocol.setySpeed((float) 0);
+ crnProtocol.setzSpeed((float) 0);
+ crnProtocol.setxDistance((float) 0);
+ crnProtocol.setyDistance((float) 0);
+ crnProtocol.setxDuration((float) 0);
+ crnProtocol.setyDuration((float) 0);
}
@Override
@@ -181,7 +185,7 @@
*/
private void readStatus() {
try {
- OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56);
+ OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 66);
if (result.IsSuccess) {
if (null == crnProtocol) {
crnProtocol = new CrnProtocol();
@@ -193,34 +197,44 @@
crnProtocol.setBay(siemensNet.getByteTransform().TransInt16(result.Content, 6));
crnProtocol.setLevel(siemensNet.getByteTransform().TransInt16(result.Content, 8));
crnProtocol.setForkPos(siemensNet.getByteTransform().TransInt16(result.Content, 10));
- crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
- 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.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));
- 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.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
- crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 44));
- crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
- crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52));
+ crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 26));
+ crnProtocol.setWalkPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 28));
+ crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 30));
+
+ crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 12));
+ crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 32));
+
+
+ //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));
+ crnProtocol.setxSpeed((float) siemensNet.getByteTransform().TransInt16(result.Content, 34));
+ crnProtocol.setySpeed((float) siemensNet.getByteTransform().TransInt16(result.Content, 38));
+ crnProtocol.setzSpeed((float) siemensNet.getByteTransform().TransInt16(result.Content, 42));
+ crnProtocol.setxDistance((float) siemensNet.getByteTransform().TransInt16(result.Content, 50) / 10000);
+ crnProtocol.setyDistance((float) siemensNet.getByteTransform().TransInt16(result.Content, 54) / 10000);
+ crnProtocol.setxDuration((float) siemensNet.getByteTransform().TransInt16(result.Content, 58) / 10000);
+ crnProtocol.setyDuration((float) siemensNet.getByteTransform().TransInt16(result.Content, 62) / 10000);
//2宸ヤ綅
- crnProtocol.setTaskNoTwo(siemensNet.getByteTransform().TransInt16(result.Content, 56));
- crnProtocol.setForkPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 58));
- crnProtocol.setLiftPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 60));
- crnProtocol.setLoadedTwo(siemensNet.getByteTransform().TransInt16(result.Content, 64));
+ crnProtocol.setTaskNoTwo(siemensNet.getByteTransform().TransInt16(result.Content, 14));
+ crnProtocol.setStatusTwo(siemensNet.getByteTransform().TransInt16(result.Content, 16));
+ crnProtocol.setBayTwo(siemensNet.getByteTransform().TransInt16(result.Content, 18));
+ crnProtocol.setLevelTwo(siemensNet.getByteTransform().TransInt16(result.Content, 20));
+ crnProtocol.setForkPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 22));
+ crnProtocol.setLoadedTwo(siemensNet.getByteTransform().TransInt16(result.Content, 24));
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
// 澶嶄綅淇″彿
- if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
- News.error("---绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙颁俊鍙�:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�",
+ if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING) && crnProtocol.getTaskNo() != null && crnProtocol.getTaskNo() != 0) {
+// if (crnProtocol.getTaskNo() == 0){
+// News.error("鍫嗗灈鏈哄伐浣�1宸ヤ綔鍙蜂负0锛屼笉浜堢‘璁わ紝宸ヤ綅1{}",crnProtocol.getLoaded() == 1 ? "鏈夌墿" : "鏃犵墿");
+// return;
+// }
+ News.error("---绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙�1淇″彿:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�",
slave.getId(), crnProtocol.getTaskNo(), crnProtocol.getLoaded() == 1 ? "鏈夌墿" : "鏃犵墿");
if (resetFlag) {
if (crnProtocol.getTaskNo() == 9999) {
@@ -231,16 +245,20 @@
crnCommand.setAckFinish((short) 1);
if (write(crnCommand)) {
resetFlag = false;
- News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 澶嶄綅resetFlag鏍囪鎴愬姛{}锛侊紒",
+ News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 宸ヤ綅1澶嶄綅resetFlag鏍囪鎴愬姛{}锛侊紒",
slave.getId(), wrkNo, resetFlag);
}
}
}
// 澶嶄綅淇″彿
- if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusTypeTwo().equals(CrnStatusType.WAITING)) {
- News.error("---绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙颁俊鍙�:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�",
- slave.getId(), crnProtocol.getTaskNo(), crnProtocol.getLoaded() == 1 ? "鏈夌墿" : "鏃犵墿");
+ else if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusTypeTwo().equals(CrnStatusType.WAITING) && crnProtocol.getTaskNoTwo() != null && crnProtocol.getTaskNoTwo() != 0) {
+// if (crnProtocol.getTaskNoTwo() == 0){
+// News.error("鍫嗗灈鏈哄伐浣�2宸ヤ綔鍙蜂负0锛屼笉浜堢‘璁わ紝宸ヤ綅2{}",crnProtocol.getLoadedTwo() == 1 ? "鏈夌墿" : "鏃犵墿");
+// return;
+// }
+ News.error("---绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙�2淇″彿:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�",
+ slave.getId(), crnProtocol.getTaskNoTwo(), crnProtocol.getLoadedTwo() == 1 ? "鏈夌墿" : "鏃犵墿");
if (resetFlagTwo) {
if (crnProtocol.getTaskNo() == 9999) {
backHpFlag = false;
@@ -250,10 +268,26 @@
crnCommand.setAckFinish((short) 1);
if (write2(crnCommand)) {
resetFlagTwo = false;
- News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 澶嶄綅resetFlag鏍囪鎴愬姛{}锛侊紒",
+ News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 宸ヤ綅2澶嶄綅resetFlag鏍囪鎴愬姛{}锛侊紒",
slave.getId(), wrkNo, resetFlag);
}
}
+ }
+
+ if (System.currentTimeMillis() - crnProtocol.getDeviceDataLog() > 200) {
+ //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
+ //淇濆瓨鏁版嵁璁板綍
+ DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
+ DeviceDataLog deviceDataLog = new DeviceDataLog();
+ deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result.Content));
+ deviceDataLog.setWcsData(JSON.toJSONString(crnProtocol));
+ deviceDataLog.setType("crn");
+ deviceDataLog.setDeviceNo(crnProtocol.getCrnNo());
+ deviceDataLog.setCreateTime(new Date());
+ deviceDataLogService.insert(deviceDataLog);
+
+ //鏇存柊閲囬泦鏃堕棿
+ crnProtocol.setDeviceDataLog(System.currentTimeMillis());
}
try {
@@ -295,7 +329,7 @@
*/
private boolean write(CrnCommand command) throws InterruptedException {
if (null == command) {
- News.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
+ News.error("鍫嗗灈鏈哄伐浣�1鍐欏叆鍛戒护涓虹┖");
return false;
}
// 鍚戝爢鍨涙満鍙戜换鍔″墠鐨勫爢鍨涙満鐘舵��
@@ -322,7 +356,7 @@
}
}
} catch (Exception e) {
- News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
+ News.error("鍫嗗灈鏈哄伐浣�1鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲嚭閿�");
}
// convertRow(command);
command.setCrnNo(slave.getId());
@@ -342,7 +376,7 @@
OperateResult result = siemensNet.Write("DB100.0", array);
- News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array);
+ News.info("鍫嗗灈鏈哄伐浣�1鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), array);
//鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
Thread.sleep(200);
@@ -352,8 +386,9 @@
try {
if (!result.IsSuccess) {
// if (!resetFlag){
- News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
+ News.error("鍐欏叆鍫嗗灈鏈哄伐浣�1plc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
result = siemensNet.Write("DB100.0", array);
+
// }
Thread.sleep(100);
writeCount1++;
@@ -378,7 +413,7 @@
|| !command.getAckFinish().equals(one.getAckFinish())
) {
try {
- News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command), JSON.toJSON(one));
+ News.error("鍫嗗灈鏈哄伐浣�1鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵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));
@@ -393,18 +428,18 @@
}
// if (!resetFlag){
- News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
+ News.error("鍐欏叆鍫嗗灈鏈哄伐浣�1plc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
result = siemensNet.Write("DB100.0", array);
// }
writeCount1++;
continue;
} else {
- News.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command), JSON.toJSON(one));
+ News.info("鍫嗗灈鏈哄伐浣�1鍛戒护鍦板潃鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command), JSON.toJSON(one));
break;
}
}
} catch (Exception e) {
- News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�,寮傚父锛�" + e);
+ News.error("鍫嗗灈鏈哄伐浣�1鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲嚭閿�,寮傚父锛�" + e);
}
writeCount1++;
} while (writeCount1 < 6);
@@ -427,17 +462,17 @@
if (resultRead.IsSuccess) {
commandFinish = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
if (commandFinish != 1) {
- News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
+ News.error("鍫嗗灈鏈哄伐浣�1浠诲姟纭浣�" + commandFinish + "鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
} else {
//浠诲姟鍛戒护鍐欏叆鎴愬姛
- News.info("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍥炶鎴愬姛锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
+ News.info("鍫嗗灈鏈哄伐浣�1浠诲姟纭浣�" + commandFinish + "鍥炶鎴愬姛锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
break;
}
} else {
- News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍥炶澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
+ News.error("鍫嗗灈鏈哄伐浣�1浠诲姟纭浣�" + commandFinish + "鍥炶澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
}
} else {
- News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍐欏叆澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
+ News.error("鍫嗗灈鏈哄伐浣�1浠诲姟纭浣�" + commandFinish + "鍐欏叆澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
}
} while (writeCount2 < 5);
}
@@ -475,8 +510,8 @@
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("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満宸ヤ綅1plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ News.error("鍐欏叆鍫嗗灈鏈哄伐浣�1plc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
return false;
}
}
@@ -486,12 +521,12 @@
*/
private boolean write2(CrnCommand command) throws InterruptedException {
if (null == command) {
- News.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
+ News.error("鍫嗗灈鏈哄伐浣�2鍐欏叆鍛戒护涓虹┖");
return false;
}
// 鍚戝爢鍨涙満鍙戜换鍔″墠鐨勫爢鍨涙満鐘舵��
try {
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18);
+ OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.20", (short) 20);
if (resultRead.IsSuccess) {
CrnCommand one = new CrnCommand();
one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
@@ -513,13 +548,13 @@
}
}
} catch (Exception e) {
- News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
+ News.error("鍫嗗灈鏈哄伐浣�2鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲嚭閿�");
}
// convertRow(command);
command.setCrnNo(slave.getId());
// short[] array = new short[10];
- short[] array = new short[9];
- //array[0] = command.getAckFinish(); // 浠诲姟瀹屾垚纭浣�
+ short[] array = new short[10];
+// array[0] = command.getAckFinish(); // 浠诲姟瀹屾垚纭浣�
array[0] = command.getTaskNo(); // 浠诲姟鍙�
array[1] = command.getTaskMode(); // 妯″紡
array[2] = command.getSourcePosX(); // 婧愪綅缃帓鍙�
@@ -533,23 +568,29 @@
short[] array2 = new short[1];
array2[0] = command.getAckFinish();
- OperateResult result = siemensNet.Write("DB100.20", array);
OperateResult result2 = siemensNet.Write("DB100.0", array2);
- News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array);
+ try {
+ Thread.sleep(100);
+ } catch (Exception e) {
+
+ }
+ OperateResult result = siemensNet.Write("DB100.20", array);
+ News.info("鍫嗗灈鏈哄伐浣�2鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), array);
+ News.info("鍫嗗灈鏈哄伐浣�2浠诲姟瀹屾垚纭浣嶄笅鍙慬id:{}] >>>>> {}", slave.getId(), array2);
int writeCount1 = 1;
do {
try {
if (!result.IsSuccess || !result2.IsSuccess) {
// if (!resetFlag){
- News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
- result = siemensNet.Write("DB100.0", array);
+ News.error("鍐欏叆鍫嗗灈鏈哄伐浣�2plc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
+ result = siemensNet.Write("DB100.20", array);
// }
Thread.sleep(100);
writeCount1++;
continue;
}
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18);
+ OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 36);
if (resultRead.IsSuccess) {
CrnCommand one = new CrnCommand();
one.setAckFinish(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0));
@@ -568,7 +609,7 @@
|| !command.getAckFinish().equals(one.getAckFinish())
) {
try {
- News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command), JSON.toJSON(one));
+ News.error("鍫嗗灈鏈哄伐浣�2鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵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));
@@ -583,18 +624,24 @@
}
// if (!resetFlag){
- News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
- result = siemensNet.Write("DB100.0", array);
+ News.error("鍐欏叆鍫嗗灈鏈哄伐浣�2plc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
+ result = siemensNet.Write("DB100.20", array);
+ try {
+ Thread.sleep(100);
+ } catch (Exception e) {
+
+ }
+ result2 = siemensNet.Write("DB100.0", array2);
// }
writeCount1++;
continue;
} else {
- News.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command), JSON.toJSON(one));
+ News.info("鍫嗗灈鏈哄伐浣�2鍛戒护鍦板潃鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command), JSON.toJSON(one));
break;
}
}
} catch (Exception e) {
- News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�,寮傚父锛�" + e);
+ News.error("鍫嗗灈鏈哄伐浣�2鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲嚭閿�2,寮傚父锛�" + e);
}
writeCount1++;
} while (writeCount1 < 6);
@@ -617,17 +664,17 @@
if (resultRead.IsSuccess) {
commandFinish = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
if (commandFinish != 1) {
- News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
+ News.error("鍫嗗灈鏈哄伐浣�2浠诲姟纭浣�" + commandFinish + "鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
} else {
//浠诲姟鍛戒护鍐欏叆鎴愬姛
// News.info("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍥炶鎴愬姛锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
break;
}
} else {
- News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍥炶澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
+ News.error("鍫嗗灈鏈哄伐浣�2浠诲姟纭浣�" + commandFinish + "鍥炶澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
}
} else {
- News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍐欏叆澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
+ News.error("鍫嗗灈鏈哄伐浣�2浠诲姟纭浣�" + commandFinish + "鍐欏叆澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
}
} while (writeCount2 < 5);
}
@@ -666,7 +713,7 @@
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("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ News.error("鍐欏叆鍫嗗灈鏈哄伐浣�2plc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
return false;
}
}
--
Gitblit v1.9.1