From 958168af41022c97e30d2b5c396d52cc21547fca Mon Sep 17 00:00:00 2001
From: cpT <1@123>
Date: 星期三, 02 七月 2025 09:49:50 +0800
Subject: [PATCH] #改造
---
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 108 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 51f727f..9ba8968 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -10,8 +10,11 @@
import com.core.common.SpringUtils;
import com.zy.asrs.entity.BasCrnOpt;
import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.entity.BasErrLog;
import com.zy.asrs.service.BasCrnOptService;
import com.zy.asrs.service.BasCrnpService;
+import com.zy.asrs.service.BasErrLogService;
+import com.zy.asrs.service.DeviceErrorService;
import com.zy.core.CrnThread;
import com.zy.core.cache.CrnErrCache;
import com.zy.core.cache.MessageQueue;
@@ -50,6 +53,7 @@
* 鍫嗗灈鏈烘槸鍚﹀湪鍥炲師鐐硅繍鍔ㄤ腑鏍囪
*/
private boolean backHpFlag = false;
+ public Long currentTimeMilliConnectCrn= 0L;
public SiemensCrnThread(CrnSlave slave) {
this.slave = slave;
@@ -93,6 +97,11 @@
command.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞�
write(command);
break;
+ // 澶嶄綅
+ case 4:
+ CrnCommand command4 = (CrnCommand) task.getData();
+ write(command4);
+ break;
default:
break;
}
@@ -129,6 +138,12 @@
crnProtocol.setyDistance((short) 0);
crnProtocol.setxDuration((short) 0);
crnProtocol.setyDuration((short) 0);
+ try{
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "绂荤嚎");
+ } catch (Exception e1){
+
+ }
+
}
@Override
@@ -195,10 +210,18 @@
if(crnProtocol.getTaskNo()==9999){
backHpFlag = false;
}
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setAckFinish((short)1);
- if (write(crnCommand)) {
- resetFlag = false;
+
+ if (!Cools.isEmpty(crnProtocol.getLaneNo()) && crnProtocol.getLaneNo()!=0){
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setAckFinish((short)1);
+// crnCommand.setTaskNo(crnProtocol.getTaskNo());
+ crnCommand.setLaneNo(crnProtocol.getLaneNo());
+ crnCommand.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
+ if (write(crnCommand)) {
+ resetFlag = false;
+ }
+ } else {
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "宸烽亾鍙蜂负0");
}
}
}
@@ -218,6 +241,21 @@
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()));
log.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+ if (System.currentTimeMillis()-currentTimeMilliConnectCrn>1000*60*10){
+ try{
+ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
+ deviceErrorService.addDeviceError("CrnErr", slave.getId(), "璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐�");
+ } catch (Exception e2){
+ Thread.sleep(1000);
+// log.error("e2:"+e2.getMessage());
+ }
+ if (currentTimeMilliConnectCrn == 0){
+ currentTimeMilliConnectCrn = System.currentTimeMillis()-1000*60*10-1;
+ } else {
+ currentTimeMilliConnectCrn = System.currentTimeMillis();
+
+ }
+ }
}
} catch (Exception e) {
e.printStackTrace();
@@ -245,7 +283,19 @@
return false;
}
CrnErrCache.updateCrnErr(slave.getId(), "-");
-
+ try{
+ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
+ deviceErrorService.addDeviceError("crnWrite", slave.getId(), "宸烽亾鍙�"+command.getLaneNo()+";鍫嗗灈鏈烘寚浠や笅鍙�:"+JSON.toJSONString(command.getNowTask()));
+ } catch (Exception e2){
+ }
+ try{
+ BasErrLogService basErrLogService = SpringUtils.getBean(BasErrLogService.class);
+ BasErrLog basErrLog = new BasErrLog(command,"","浠诲姟涓嬪彂璁板綍");
+ if (!basErrLogService.insert(basErrLog)) {
+ log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", slave.getId(), "浠诲姟涓嬪彂璁板綍澶辫触");
+ }
+ } catch (Exception e3){
+ }
// convertRow(command);
command.setCrnNo(slave.getId());
short[] array = new short[10];
@@ -282,6 +332,20 @@
CrnErrCache.updateCrnErr(slave.getId(), "鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�");
log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}]>>>>閲嶅啓[{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), i,JSON.toJSON(command),JSON.toJSON(one));
+
+ try{
+ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
+ deviceErrorService.addDeviceError("crnErr", slave.getId(), "宸烽亾鍙�"+command.getLaneNo()+";鍐欏叆娆℃暟"+i+";鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�:"+JSON.toJSONString(command.getNowTask()));
+ } catch (Exception e2){
+ }
+ try{
+ BasErrLogService basErrLogService = SpringUtils.getBean(BasErrLogService.class);
+ BasErrLog basErrLog = new BasErrLog(command,"鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�","");
+ if (!basErrLogService.insert(basErrLog)) {
+ log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", slave.getId(), "鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐ヨ褰曞け璐�");
+ }
+ } catch (Exception e3){
+ }
result = siemensNet.Write("DB100.0", array);
}else{
break;
@@ -303,7 +367,19 @@
log.info("涓嬪彂DB100.18 鍥炶澶辫触" + "commandFinish:"+commandFinish);
log.info("涓嬪彂DB100.18 鍥炶澶辫触" + "array:"+ JSON.toJSONString(array));
CrnErrCache.updateCrnErr(slave.getId(), "涓嬪彂DB100.18 鍥炶澶辫触");
-
+ try{
+ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
+ deviceErrorService.addDeviceError("crnErr", slave.getId(), "宸烽亾鍙�"+command.getLaneNo()+";鍐欏叆娆℃暟"+signFinish+";涓嬪彂DB100.18 鍥炶澶辫触:"+JSON.toJSONString(command.getNowTask()));
+ } catch (Exception e2){
+ }
+ try{
+ BasErrLogService basErrLogService = SpringUtils.getBean(BasErrLogService.class);
+ BasErrLog basErrLog = new BasErrLog(command,"涓嬪彂DB100.18 鍥炶澶辫触","");
+ if (!basErrLogService.insert(basErrLog)) {
+ log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", slave.getId(), "涓嬪彂DB100.18 鍥炶澶辫触璁板綍澶辫触");
+ }
+ } catch (Exception e3){
+ }
result = siemensNet.Write("DB100.18", commandFinish);
signFinish++;
}else {
@@ -478,4 +554,30 @@
isRunning = false;
}
+
+ /**
+ * 娓呴櫎浣滀笟鍚姩涓�
+ */
+ @Override
+ public void setWrkSign() {
+ }
+
+
+ /**
+ * 娓呴櫎浣滀笟鍚姩涓�
+ */
+ @Override
+ public void setResetFlag(boolean flag) {
+ this.resetFlag = flag;
+ }
+
+
+ /**
+ * 娓呴櫎浣滀笟鍚姩涓�
+ */
+ @Override
+ public boolean getResetFlag() {
+ return resetFlag;
+ }
+
}
--
Gitblit v1.9.1