From 5b4049cd9043539161ebb145458571f1f27bbe6b Mon Sep 17 00:00:00 2001
From: whycq <whycq>
Date: 星期四, 26 五月 2022 09:57:34 +0800
Subject: [PATCH] # ycq
---
src/main/java/com/zy/core/thread/MelsecCrnThread.java | 69 ++++++++++++++++++++++++++++++++--
1 files changed, 64 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/MelsecCrnThread.java b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
index 2b96a94..3df19a6 100644
--- a/src/main/java/com/zy/core/thread/MelsecCrnThread.java
+++ b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
@@ -24,6 +24,7 @@
import com.zy.core.model.protocol.CrnProtocol;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import java.text.MessageFormat;
import java.util.Date;
@@ -50,6 +51,11 @@
@SuppressWarnings("InfiniteLoopStatement")
public void run() {
this.connect();
+// try {
+// Thread.sleep(2000);
+// } catch (InterruptedException e) {
+// e.printStackTrace();
+// }
while (true) {
try {
int step = 1;
@@ -137,7 +143,7 @@
log.error("鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
initCrn();
}
- melsecMcNet.ConnectClose();
+// melsecMcNet.ConnectClose();
return result;
}
@@ -146,13 +152,16 @@
*/
private void readStatus(){
try {
- if (this.slave.getId() == 1) {
- System.out.println("===");
- }
+// if (this.slave.getId() == 1 && flag1.equals(0)) {
+// Thread.sleep(3000);
+// flag1=1;
+// System.out.println("===");
+// }
OperateResultExOne<byte[]> result = melsecMcNet.Read("D20", (short) 70);
if (result.IsSuccess) {
if (null == crnProtocol) {
crnProtocol = new CrnProtocol();
+ crnProtocol.setCrnNo(slave.getId());
}
crnProtocol.setMode(melsecMcNet.getByteTransform().TransInt16(result.Content, 0));
crnProtocol.setTaskNo(melsecMcNet.getByteTransform().TransInt16(result.Content, 2));
@@ -195,6 +204,7 @@
BasCrnp basCrnp = new BasCrnp();
basCrnp.setCrnErr(crnProtocol.getAlarm()==null?0:crnProtocol.getAlarm().longValue());
basCrnp.setCrnNo(slave.getId());
+ basCrnp.setCrnSts((int)crnProtocol.getMode());
if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
log.error("鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
}
@@ -220,6 +230,55 @@
log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
return false;
}
+
+// OperateResult result = null;
+// try{
+// Integer exeCount=0;
+// do{
+// 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 = melsecMcNet.Write("D0", array);
+// if(result.IsSuccess) {
+// if (command.getAckFinish() == 0) {
+// short commandFinish = 1;
+// result = melsecMcNet.Write("D9", commandFinish);
+// if(result.IsSuccess){
+// //鍐欎换鍔$‘璁よ繑鍥炴垚鍔熷悗锛屾煡璇㈢‘璁や竴娆�
+// Thread.sleep(200);
+// OperateResultExOne<byte[]> result1 = melsecMcNet.Read("D9", (short)2);
+// if(result1.IsSuccess){
+// short commandVal = melsecMcNet.getByteTransform().TransInt16(result1.Content,2);
+// if(commandVal==1){
+// break;
+// } else {
+// exeCount++;
+// }
+// } else{
+// exeCount++;
+// }
+// }else{
+// exeCount++;
+// }
+// }
+// }else{
+// exeCount++;
+// }
+// Thread.sleep(200);
+// }while(exeCount>3);
+// }catch (Exception e){
+//
+// }
+
command.setCrnNo(slave.getId());
short[] array = new short[10];
array[0] = command.getAckFinish();
@@ -262,7 +321,7 @@
bean.insert(basCrnOpt);
} catch (Exception ignore) {}
- if (result.IsSuccess) {
+ if (result != null && result.IsSuccess) {
log.info("鍫嗗灈鏈哄懡浠や笅鍙慬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;
--
Gitblit v1.9.1