From 4f364f6601955d68b07c318d51f7db3f435effde Mon Sep 17 00:00:00 2001 From: zhangchao <zc857179121@qq.com> Date: 星期六, 07 九月 2024 11:37:19 +0800 Subject: [PATCH] 输送线指令优化 --- src/main/java/com/zy/core/thread/MelsecCrnThread.java | 954 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 477 insertions(+), 477 deletions(-) diff --git a/src/main/java/com/zy/core/thread/MelsecCrnThread.java b/src/main/java/com/zy/core/thread/MelsecCrnThread.java index 3a26c91..17277b5 100644 --- a/src/main/java/com/zy/core/thread/MelsecCrnThread.java +++ b/src/main/java/com/zy/core/thread/MelsecCrnThread.java @@ -1,481 +1,481 @@ -package com.zy.core.thread; - -import HslCommunication.Core.Types.OperateResult; -import HslCommunication.Core.Types.OperateResultExOne; -import HslCommunication.Profinet.Melsec.MelsecMcNet; -import com.alibaba.fastjson.JSON; -import com.core.common.DateUtils; -import com.core.common.SpringUtils; -import com.core.exception.CoolException; -import com.zy.asrs.entity.BasCrnOpt; -import com.zy.asrs.entity.BasCrnp; -import com.zy.asrs.service.BasCrnOptService; -import com.zy.asrs.service.BasCrnpService; -import com.zy.common.utils.News; -import com.zy.core.CrnThread; -import com.zy.core.ThreadHandler; -import com.zy.core.cache.MessageQueue; -import com.zy.core.cache.OutputQueue; -import com.zy.core.enums.CrnStatusType; -import com.zy.core.enums.CrnTaskModeType; -import com.zy.core.enums.SlaveType; -import com.zy.core.model.CrnSlave; -import com.zy.core.model.Task; -import com.zy.core.model.command.CrnCommand; -import com.zy.core.model.protocol.CrnProtocol; -import lombok.Data; -import lombok.extern.slf4j.Slf4j; - -import java.text.MessageFormat; -import java.util.Date; - -/** - * 鍫嗗灈鏈虹嚎绋� - * Created by vincent on 2020/8/4 - */ -@Data -@Slf4j -public class MelsecCrnThread implements Runnable, ThreadHandler, CrnThread -{ - - private MelsecMcNet melsecMcNet; - private CrnSlave slave; - private CrnProtocol crnProtocol; - private short heartBeatVal = 1; - private boolean resetFlag = false; - - /** - * 鍫嗗灈鏈烘槸鍚﹀湪鍥炲師鐐硅繍鍔ㄤ腑鏍囪 - */ - private boolean backHpFlag = false; - - public MelsecCrnThread(CrnSlave slave) { - this.slave = slave; - } - - @Override - @SuppressWarnings("InfiniteLoopStatement") - public void run() { - this.connect(); -// try { -// Thread.sleep(2000); -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } - while (true) { - try { - int step = 1; - Task task = MessageQueue.poll(SlaveType.Crn, slave.getId()); - if (task != null) { - step = task.getStep(); - } - switch (step) { - // 璇绘暟鎹� - case 1: - readStatus(); - break; - // 鍐欏叆鏁版嵁 - case 2: - write((CrnCommand) task.getData()); - break; - // 澶嶄綅 - case 3: - CrnCommand command = (CrnCommand) task.getData(); - if (null == command) { - command = new CrnCommand(); - } - command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� - 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); // 鐩爣搴撲綅灞� - write(command); - break; - default: - break; - } - // 蹇冭烦 - heartbeat(); - Thread.sleep(500); - } catch (Exception e) { - e.printStackTrace(); - } - - } - } - - /** - * 鍒濆鍖栧爢鍨涙満鐘舵�� - */ - private void initCrn() { - if (null == crnProtocol) { - crnProtocol = new CrnProtocol(); - } - crnProtocol.setMode((short) -1); -// crnProtocol.setTaskNo((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.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); - } - - @Override - public boolean connect() { - boolean result = false; - melsecMcNet = new MelsecMcNet(slave.getIp(), slave.getPort()); - OperateResult connect = melsecMcNet.ConnectServer(); - if(connect.IsSuccess){ - result = true; - OutputQueue.CRN.offer(MessageFormat.format( "銆恵0}銆戝爢鍨涙満plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); - News.info("MelsecCrn"+" - 1"+" - 鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - } 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("MelsecCrn"+" - 2"+" - 鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - initCrn(); - } -// melsecMcNet.ConnectClose(); - return result; - } - - /** - * 璇诲彇鐘舵�� - */ - private void readStatus(){ - try { -// if (this.slave.getId() == 1 && flag1.equals(0)) { -// Thread.sleep(3000); -// flag1=1; -// System.out.println("==="); -// } - OperateResultExOne<byte[]> result = melsecMcNet.Read("D1035", (short) 56); - 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)); - crnProtocol.setStatus(melsecMcNet.getByteTransform().TransInt16(result.Content, 4)); - crnProtocol.setBay(melsecMcNet.getByteTransform().TransInt16(result.Content, 6)); - crnProtocol.setLevel(melsecMcNet.getByteTransform().TransInt16(result.Content, 8)); - crnProtocol.setForkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 10)); - crnProtocol.setLiftPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 12)); - crnProtocol.setWalkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 14)); - crnProtocol.setLoaded(melsecMcNet.getByteTransform().TransInt16(result.Content, 16)); - crnProtocol.setAlarm(melsecMcNet.getByteTransform().TransInt16(result.Content, 18)); - crnProtocol.setTemp1(melsecMcNet.getByteTransform().TransInt16(result.Content, 20)); - crnProtocol.setTemp2(melsecMcNet.getByteTransform().TransInt16(result.Content, 22)); - crnProtocol.setTemp3(melsecMcNet.getByteTransform().TransInt16(result.Content, 24)); - crnProtocol.setTemp4(melsecMcNet.getByteTransform().TransInt16(result.Content, 26)); - crnProtocol.setxSpeed(melsecMcNet.getByteTransform().TransInt16(result.Content, 28)); - crnProtocol.setySpeed(melsecMcNet.getByteTransform().TransInt16(result.Content, 32)); - crnProtocol.setzSpeed(melsecMcNet.getByteTransform().TransInt16(result.Content, 36)); - crnProtocol.setxDistance(melsecMcNet.getByteTransform().TransInt16(result.Content, 40)); - crnProtocol.setyDistance(melsecMcNet.getByteTransform().TransInt16(result.Content, 44)); - crnProtocol.setxDuration(melsecMcNet.getByteTransform().TransInt16(result.Content, 48)); - crnProtocol.setyDuration(melsecMcNet.getByteTransform().TransInt16(result.Content, 52)); - - OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); - - // 澶嶄綅淇″彿 - if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING_ONE)) { - News.error("MelsecCrn"+" - 3"+" ---------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}][宸ヤ綔鍙凤細{}]==>> 鐘舵�佷负90锛岀瓑寰呯‘璁わ紒锛�",slave.getId(),crnProtocol.getTaskNo()); - if (resetFlag) { - if(crnProtocol.getTaskNo()==9999){ - backHpFlag = false; - } - CrnCommand crnCommand = new CrnCommand(); - crnCommand.setAckFinish((short)1); - if (write(crnCommand)) { - resetFlag = false; - } - } - } - - // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� - BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class); - 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))){ - News.error("MelsecCrn"+" - 4"+" - 鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - } - - } else { - OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆憑1}鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐�",DateUtils.convert(new Date()), slave.getId())); - throw new CoolException(MessageFormat.format( "鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{0}] [ip:{1}] [port:{2}]", slave.getId(), slave.getIp(), slave.getPort())); - } - } 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("MelsecCrn"+" - 5"+" - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - initCrn(); - } - - } - - /** - * 鍐欏叆鏁版嵁 - */ - private boolean write(CrnCommand command){ - if (null == command) { - News.error("MelsecCrn"+" - 6"+" - 鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�"); - 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++; +//package com.zy.core.thread; +// +//import HslCommunication.Core.Types.OperateResult; +//import HslCommunication.Core.Types.OperateResultExOne; +//import HslCommunication.Profinet.Melsec.MelsecMcNet; +//import com.alibaba.fastjson.JSON; +//import com.core.common.DateUtils; +//import com.core.common.SpringUtils; +//import com.core.exception.CoolException; +//import com.zy.asrs.entity.BasCrnOpt; +//import com.zy.asrs.entity.BasCrnp; +//import com.zy.asrs.service.BasCrnOptService; +//import com.zy.asrs.service.BasCrnpService; +//import com.zy.common.utils.News; +//import com.zy.core.CrnThread; +//import com.zy.core.ThreadHandler; +//import com.zy.core.cache.MessageQueue; +//import com.zy.core.cache.OutputQueue; +//import com.zy.core.enums.CrnStatusType; +//import com.zy.core.enums.CrnTaskModeType; +//import com.zy.core.enums.SlaveType; +//import com.zy.core.model.CrnSlave; +//import com.zy.core.model.Task; +//import com.zy.core.model.command.CrnCommand; +//import com.zy.core.model.protocol.CrnProtocol; +//import lombok.Data; +//import lombok.extern.slf4j.Slf4j; +// +//import java.text.MessageFormat; +//import java.util.Date; +// +///** +// * 鍫嗗灈鏈虹嚎绋� +// * Created by vincent on 2020/8/4 +// */ +//@Data +//@Slf4j +//public class MelsecCrnThread implements Runnable, ThreadHandler, CrnThread +//{ +// +// private MelsecMcNet melsecMcNet; +// private CrnSlave slave; +// private CrnProtocol crnProtocol; +// private short heartBeatVal = 1; +// private boolean resetFlag = false; +// +// /** +// * 鍫嗗灈鏈烘槸鍚﹀湪鍥炲師鐐硅繍鍔ㄤ腑鏍囪 +// */ +// private boolean backHpFlag = false; +// +// public MelsecCrnThread(CrnSlave slave) { +// this.slave = slave; +// } +// +// @Override +// @SuppressWarnings("InfiniteLoopStatement") +// public void run() { +// this.connect(); +//// try { +//// Thread.sleep(2000); +//// } catch (InterruptedException e) { +//// e.printStackTrace(); +//// } +// while (true) { +// try { +// int step = 1; +// Task task = MessageQueue.poll(SlaveType.Crn, slave.getId()); +// if (task != null) { +// step = task.getStep(); // } -// Thread.sleep(200); -// }while(exeCount>3); -// }catch (Exception e){ +// switch (step) { +// // 璇绘暟鎹� +// case 1: +// readStatus(); +// break; +// // 鍐欏叆鏁版嵁 +// case 2: +// write((CrnCommand) task.getData()); +// break; +// // 澶嶄綅 +// case 3: +// CrnCommand command = (CrnCommand) task.getData(); +// if (null == command) { +// command = new CrnCommand(); +// } +// command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� +// 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); // 鐩爣搴撲綅灞� +// write(command); +// break; +// default: +// break; +// } +// // 蹇冭烦 +// heartbeat(); +// Thread.sleep(500); +// } catch (Exception e) { +// e.printStackTrace(); +// } // // } - - 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(); - OperateResult result = melsecMcNet.Write("D1001", array); - - if (command.getAckFinish() == 0) { - short commandFinish = 1; - result = melsecMcNet.Write("D1010", commandFinish); - } - - try { - // 鏃ュ織璁板綍 - BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class); - BasCrnOpt basCrnOpt = new BasCrnOpt( - command.getTaskNo().intValue(), // 浠诲姟鍙� - command.getCrnNo(), // 鍫嗗灈鏈篬闈炵┖] - new Date(), // 涓嬪彂鏃堕棿 - command.getTaskModeType().toString(), // 妯″紡 - command.getSourcePosX().intValue(), // 婧愭帓 - command.getSourcePosY().intValue(), // 婧愬垪 - command.getSourcePosZ().intValue(), // 婧愬眰 - null, // 婧愮珯 - command.getDestinationPosX().intValue(), // 鐩爣鎺� - command.getDestinationPosY().intValue(), // 鐩爣鍒� - command.getDestinationPosZ().intValue(), // 鐩爣灞� - null, // 鐩爣绔� - null, // 鍝嶅簲缁撴灉 - null, // 淇敼鏃堕棿 - null // 淇敼浜哄憳 - ); - bean.save(basCrnOpt); - } catch (Exception ignore) {} - - if (result != null && result.IsSuccess) { - News.info("MelsecCrn"+" - 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("MelsecCrn"+" - 8"+" - 鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - return false; - } - } - - @Override - public void close() { - melsecMcNet.ConnectClose(); - } - - /** - * 蹇冭烦 - */ - private void heartbeat(){ - if (heartBeatVal >= 30000) { - heartBeatVal = -30000; - } else { - heartBeatVal =(short) (heartBeatVal+1); - } - OperateResult write = melsecMcNet.Write("D1011", heartBeatVal); -// OperateResult write1 = melsecMcNet.Write("D1001", (short) 0); -// OperateResult write2 = melsecMcNet.Write("D1002", (short) 0); -// OperateResult write3 = melsecMcNet.Write("D1003", (short) 0); -// OperateResult write4 = melsecMcNet.Write("D1004", (short) 0); -// OperateResult write5 = melsecMcNet.Write("D1005", (short) 0); -// OperateResult write6 = melsecMcNet.Write("D1006", (short) 0); -// OperateResult write7 = melsecMcNet.Write("D1007", (short) 0); -// OperateResult write8 = melsecMcNet.Write("D1008", (short) 0); -// OperateResult write9 = melsecMcNet.Write("D1009", (short) 0); -// OperateResult write10 = melsecMcNet.Write("D1010", (short) 0); - if (!write.IsSuccess) { - News.error("MelsecCrn"+" - 9"+" - 鍫嗗灈鏈簆lc蹇冭烦閫氳澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - } - } - - - /******************************************************************************************/ - /**************************************** 娴嬭瘯涓撶敤 *****************************************/ - /*****************************************************************************************/ - public static void main(String[] args) throws InterruptedException { - CrnSlave slave = new CrnSlave(); - slave.setId(1); - slave.setIp("192.168.3.39"); - slave.setPort(5015); - slave.setRack(0); - slave.setSlot(0); - MelsecCrnThread melsecCrnThread = new MelsecCrnThread(slave); - melsecCrnThread.connect(); - melsecCrnThread.readStatus(); - System.out.println(JSON.toJSONString(melsecCrnThread.crnProtocol)); - - // 1.鍏ュ簱 婧愬拰鐩爣閮藉彂 -// CrnCommand command = new CrnCommand(); -// command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙� -// command.setTaskNo((short) 0); // 宸ヤ綔鍙� -// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� -// command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡 -// command.setSourcePosX((short) 1); // 婧愬簱浣嶆帓 -// command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 -// command.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰 -// command.setDestinationPosX((short) 2); // 鐩爣搴撲綅鎺� -// command.setDestinationPosY((short) 3); // 鐩爣搴撲綅鍒� -// command.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞� -// crnThread.write(command); - - // 2.鍑哄簱 婧愬拰鐩爣閮藉彂 -// CrnCommand command = new CrnCommand(); -// command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙� -// command.setTaskNo((short) 0); // 宸ヤ綔鍙� -// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� -// command.setTaskMode(CrnTaskModeType.PAKOUT); // 浠诲姟妯″紡 -// command.setSourcePosX((short) 2); // 婧愬簱浣嶆帓 -// command.setSourcePosY((short) 4); // 婧愬簱浣嶅垪 -// command.setSourcePosZ((short) 3); // 婧愬簱浣嶅眰 -// command.setDestinationPosX((short) 1); // 鐩爣搴撲綅鎺� -// command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� -// command.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞� -// crnThread.write(command); - - -// // 3.搴撲綅绉昏浆 婧愬拰鐩爣閮藉彂 pass -// CrnCommand command = new CrnCommand(); -// command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� -// command.setTaskNo((short) 0); // 宸ヤ綔鍙� -// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� -// command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 -// command.setSourcePosX((short)2); // 婧愬簱浣嶆帓 -// command.setSourcePosY((short)2); // 婧愬簱浣嶅垪 -// command.setSourcePosZ((short)3); // 婧愬簱浣嶅眰 -// command.setDestinationPosX((short)2); // 鐩爣搴撲綅鎺� -// command.setDestinationPosY((short)4); // 鐩爣搴撲綅鍒� -// command.setDestinationPosZ((short)4); // 鐩爣搴撲綅灞� -// crnThread.write(command); - - // 4.绔欎綅绉昏浆 婧愬拰鐩爣閮藉彂 -// CrnCommand command = new CrnCommand(); -// command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� -// command.setTaskNo((short) 0); // 宸ヤ綔鍙� -// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� -// command.setTaskMode(CrnTaskModeType.SITE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 -// command.setSourcePosX((short)1); // 婧愬簱浣嶆帓 -// command.setSourcePosY((short)0); // 婧愬簱浣嶅垪 -// command.setSourcePosZ((short)1); // 婧愬簱浣嶅眰 -// command.setDestinationPosX((short)2); // 鐩爣搴撲綅鎺� -// command.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒� -// command.setDestinationPosZ((short)1); // 鐩爣搴撲綅灞� -// crnThread.write(command); - -// // 5.鍥炲師鐐� 涓嶇敤鍙� pass -// CrnCommand command = new CrnCommand(); -// command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙� -// command.setTaskNo((short) 0); // 宸ヤ綔鍙� -// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� -// command.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡 -// command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 -// command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 -// command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 -// command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� -// command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� -// command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� -// crnThread.write(command); - - - // 鍙湁鍑虹幇鎸囧畾寮傚父鎵嶈繘琛屽浣� -// if (crnThread.crnProtocol.getCrnError2().leftTakeNoneErr -// || crnThread.crnProtocol.getCrnError2().rightTakeNoneErr -// || crnThread.crnProtocol.getCrnError2().leftPutLoadErr -// || crnThread.crnProtocol.getCrnError2().rightPutLoadErr) { -// CrnCommand command = new CrnCommand(); -// command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙� -// command.setAckFinish((short) 1); // 浠诲姟瀹屾垚纭浣� -// command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡 -// Thread.sleep(3000L); -// crnThread.write(command); +// } +// +// /** +// * 鍒濆鍖栧爢鍨涙満鐘舵�� +// */ +// private void initCrn() { +// if (null == crnProtocol) { +// crnProtocol = new CrnProtocol(); // } - - } - - @Override - public void setResetFlagTwo(boolean flag) { - - } -} +// crnProtocol.setMode((short) -1); +//// crnProtocol.setTaskNo((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.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); +// } +// +// @Override +// public boolean connect() { +// boolean result = false; +// melsecMcNet = new MelsecMcNet(slave.getIp(), slave.getPort()); +// OperateResult connect = melsecMcNet.ConnectServer(); +// if(connect.IsSuccess){ +// result = true; +// OutputQueue.CRN.offer(MessageFormat.format( "銆恵0}銆戝爢鍨涙満plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); +// News.info("MelsecCrn"+" - 1"+" - 鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); +// } 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("MelsecCrn"+" - 2"+" - 鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); +// initCrn(); +// } +//// melsecMcNet.ConnectClose(); +// return result; +// } +// +// /** +// * 璇诲彇鐘舵�� +// */ +// private void readStatus(){ +// try { +//// if (this.slave.getId() == 1 && flag1.equals(0)) { +//// Thread.sleep(3000); +//// flag1=1; +//// System.out.println("==="); +//// } +// OperateResultExOne<byte[]> result = melsecMcNet.Read("D1035", (short) 56); +// 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)); +// crnProtocol.setStatus(melsecMcNet.getByteTransform().TransInt16(result.Content, 4)); +// crnProtocol.setBay(melsecMcNet.getByteTransform().TransInt16(result.Content, 6)); +// crnProtocol.setLevel(melsecMcNet.getByteTransform().TransInt16(result.Content, 8)); +// crnProtocol.setForkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 10)); +// crnProtocol.setLiftPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 12)); +// crnProtocol.setWalkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 14)); +// crnProtocol.setLoaded(melsecMcNet.getByteTransform().TransInt16(result.Content, 16)); +// crnProtocol.setAlarm(melsecMcNet.getByteTransform().TransInt16(result.Content, 18)); +// crnProtocol.setTemp1(melsecMcNet.getByteTransform().TransInt16(result.Content, 20)); +// crnProtocol.setTemp2(melsecMcNet.getByteTransform().TransInt16(result.Content, 22)); +// crnProtocol.setTemp3(melsecMcNet.getByteTransform().TransInt16(result.Content, 24)); +// crnProtocol.setTemp4(melsecMcNet.getByteTransform().TransInt16(result.Content, 26)); +// crnProtocol.setxSpeed(melsecMcNet.getByteTransform().TransInt16(result.Content, 28)); +// crnProtocol.setySpeed(melsecMcNet.getByteTransform().TransInt16(result.Content, 32)); +// crnProtocol.setzSpeed(melsecMcNet.getByteTransform().TransInt16(result.Content, 36)); +// crnProtocol.setxDistance(melsecMcNet.getByteTransform().TransInt16(result.Content, 40)); +// crnProtocol.setyDistance(melsecMcNet.getByteTransform().TransInt16(result.Content, 44)); +// crnProtocol.setxDuration(melsecMcNet.getByteTransform().TransInt16(result.Content, 48)); +// crnProtocol.setyDuration(melsecMcNet.getByteTransform().TransInt16(result.Content, 52)); +// +// OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); +// +// // 澶嶄綅淇″彿 +// if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING_ONE)) { +// News.error("MelsecCrn"+" - 3"+" ---------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}][宸ヤ綔鍙凤細{}]==>> 鐘舵�佷负90锛岀瓑寰呯‘璁わ紒锛�",slave.getId(),crnProtocol.getTaskNo()); +// if (resetFlag) { +// if(crnProtocol.getTaskNo()==9999){ +// backHpFlag = false; +// } +// CrnCommand crnCommand = new CrnCommand(); +// crnCommand.setAckFinish((short)1); +// if (write(crnCommand)) { +// resetFlag = false; +// } +// } +// } +// +// // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� +// BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class); +// 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))){ +// News.error("MelsecCrn"+" - 4"+" - 鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); +// } +// +// } else { +// OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆憑1}鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐�",DateUtils.convert(new Date()), slave.getId())); +// throw new CoolException(MessageFormat.format( "鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{0}] [ip:{1}] [port:{2}]", slave.getId(), slave.getIp(), slave.getPort())); +// } +// } 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("MelsecCrn"+" - 5"+" - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); +// initCrn(); +// } +// +// } +// +// /** +// * 鍐欏叆鏁版嵁 +// */ +// private boolean write(CrnCommand command){ +// if (null == command) { +// News.error("MelsecCrn"+" - 6"+" - 鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�"); +// 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(); +// 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(); +// OperateResult result = melsecMcNet.Write("D1001", array); +// +// if (command.getAckFinish() == 0) { +// short commandFinish = 1; +// result = melsecMcNet.Write("D1010", commandFinish); +// } +// +// try { +// // 鏃ュ織璁板綍 +// BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class); +// BasCrnOpt basCrnOpt = new BasCrnOpt( +// command.getTaskNo().intValue(), // 浠诲姟鍙� +// command.getCrnNo(), // 鍫嗗灈鏈篬闈炵┖] +// new Date(), // 涓嬪彂鏃堕棿 +// command.getTaskModeType().toString(), // 妯″紡 +// command.getSourcePosX().intValue(), // 婧愭帓 +// command.getSourcePosY().intValue(), // 婧愬垪 +// command.getSourcePosZ().intValue(), // 婧愬眰 +// null, // 婧愮珯 +// command.getDestinationPosX().intValue(), // 鐩爣鎺� +// command.getDestinationPosY().intValue(), // 鐩爣鍒� +// command.getDestinationPosZ().intValue(), // 鐩爣灞� +// null, // 鐩爣绔� +// null, // 鍝嶅簲缁撴灉 +// null, // 淇敼鏃堕棿 +// null // 淇敼浜哄憳 +// ); +// bean.save(basCrnOpt); +// } catch (Exception ignore) {} +// +// if (result != null && result.IsSuccess) { +// News.info("MelsecCrn"+" - 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("MelsecCrn"+" - 8"+" - 鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); +// return false; +// } +// } +// +// @Override +// public void close() { +// melsecMcNet.ConnectClose(); +// } +// +// /** +// * 蹇冭烦 +// */ +// private void heartbeat(){ +// if (heartBeatVal >= 30000) { +// heartBeatVal = -30000; +// } else { +// heartBeatVal =(short) (heartBeatVal+1); +// } +// OperateResult write = melsecMcNet.Write("D1011", heartBeatVal); +//// OperateResult write1 = melsecMcNet.Write("D1001", (short) 0); +//// OperateResult write2 = melsecMcNet.Write("D1002", (short) 0); +//// OperateResult write3 = melsecMcNet.Write("D1003", (short) 0); +//// OperateResult write4 = melsecMcNet.Write("D1004", (short) 0); +//// OperateResult write5 = melsecMcNet.Write("D1005", (short) 0); +//// OperateResult write6 = melsecMcNet.Write("D1006", (short) 0); +//// OperateResult write7 = melsecMcNet.Write("D1007", (short) 0); +//// OperateResult write8 = melsecMcNet.Write("D1008", (short) 0); +//// OperateResult write9 = melsecMcNet.Write("D1009", (short) 0); +//// OperateResult write10 = melsecMcNet.Write("D1010", (short) 0); +// if (!write.IsSuccess) { +// News.error("MelsecCrn"+" - 9"+" - 鍫嗗灈鏈簆lc蹇冭烦閫氳澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); +// } +// } +// +// +// /******************************************************************************************/ +// /**************************************** 娴嬭瘯涓撶敤 *****************************************/ +// /*****************************************************************************************/ +// public static void main(String[] args) throws InterruptedException { +// CrnSlave slave = new CrnSlave(); +// slave.setId(1); +// slave.setIp("192.168.3.39"); +// slave.setPort(5015); +// slave.setRack(0); +// slave.setSlot(0); +// MelsecCrnThread melsecCrnThread = new MelsecCrnThread(slave); +// melsecCrnThread.connect(); +// melsecCrnThread.readStatus(); +// System.out.println(JSON.toJSONString(melsecCrnThread.crnProtocol)); +// +// // 1.鍏ュ簱 婧愬拰鐩爣閮藉彂 +//// CrnCommand command = new CrnCommand(); +//// command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙� +//// command.setTaskNo((short) 0); // 宸ヤ綔鍙� +//// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� +//// command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡 +//// command.setSourcePosX((short) 1); // 婧愬簱浣嶆帓 +//// command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 +//// command.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰 +//// command.setDestinationPosX((short) 2); // 鐩爣搴撲綅鎺� +//// command.setDestinationPosY((short) 3); // 鐩爣搴撲綅鍒� +//// command.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞� +//// crnThread.write(command); +// +// // 2.鍑哄簱 婧愬拰鐩爣閮藉彂 +//// CrnCommand command = new CrnCommand(); +//// command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙� +//// command.setTaskNo((short) 0); // 宸ヤ綔鍙� +//// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� +//// command.setTaskMode(CrnTaskModeType.PAKOUT); // 浠诲姟妯″紡 +//// command.setSourcePosX((short) 2); // 婧愬簱浣嶆帓 +//// command.setSourcePosY((short) 4); // 婧愬簱浣嶅垪 +//// command.setSourcePosZ((short) 3); // 婧愬簱浣嶅眰 +//// command.setDestinationPosX((short) 1); // 鐩爣搴撲綅鎺� +//// command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� +//// command.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞� +//// crnThread.write(command); +// +// +//// // 3.搴撲綅绉昏浆 婧愬拰鐩爣閮藉彂 pass +//// CrnCommand command = new CrnCommand(); +//// command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� +//// command.setTaskNo((short) 0); // 宸ヤ綔鍙� +//// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� +//// command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 +//// command.setSourcePosX((short)2); // 婧愬簱浣嶆帓 +//// command.setSourcePosY((short)2); // 婧愬簱浣嶅垪 +//// command.setSourcePosZ((short)3); // 婧愬簱浣嶅眰 +//// command.setDestinationPosX((short)2); // 鐩爣搴撲綅鎺� +//// command.setDestinationPosY((short)4); // 鐩爣搴撲綅鍒� +//// command.setDestinationPosZ((short)4); // 鐩爣搴撲綅灞� +//// crnThread.write(command); +// +// // 4.绔欎綅绉昏浆 婧愬拰鐩爣閮藉彂 +//// CrnCommand command = new CrnCommand(); +//// command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� +//// command.setTaskNo((short) 0); // 宸ヤ綔鍙� +//// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� +//// command.setTaskMode(CrnTaskModeType.SITE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 +//// command.setSourcePosX((short)1); // 婧愬簱浣嶆帓 +//// command.setSourcePosY((short)0); // 婧愬簱浣嶅垪 +//// command.setSourcePosZ((short)1); // 婧愬簱浣嶅眰 +//// command.setDestinationPosX((short)2); // 鐩爣搴撲綅鎺� +//// command.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒� +//// command.setDestinationPosZ((short)1); // 鐩爣搴撲綅灞� +//// crnThread.write(command); +// +//// // 5.鍥炲師鐐� 涓嶇敤鍙� pass +//// CrnCommand command = new CrnCommand(); +//// command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙� +//// command.setTaskNo((short) 0); // 宸ヤ綔鍙� +//// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� +//// command.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡 +//// command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 +//// command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 +//// command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 +//// command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� +//// command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� +//// command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� +//// crnThread.write(command); +// +// +// // 鍙湁鍑虹幇鎸囧畾寮傚父鎵嶈繘琛屽浣� +//// if (crnThread.crnProtocol.getCrnError2().leftTakeNoneErr +//// || crnThread.crnProtocol.getCrnError2().rightTakeNoneErr +//// || crnThread.crnProtocol.getCrnError2().leftPutLoadErr +//// || crnThread.crnProtocol.getCrnError2().rightPutLoadErr) { +//// CrnCommand command = new CrnCommand(); +//// command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙� +//// command.setAckFinish((short) 1); // 浠诲姟瀹屾垚纭浣� +//// command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡 +//// Thread.sleep(3000L); +//// crnThread.write(command); +//// } +// +// } +// +// @Override +// public void setResetFlagTwo(boolean flag) { +// +// } +//} -- Gitblit v1.9.1