From 2972d6852385b3c3efb64e10a736657833a39e53 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期二, 11 六月 2024 12:51:45 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 146 ++++++++++++++++++++ src/main/java/com/zy/core/model/cpmmandParam/CrnCommandParam.java | 118 ++++++++++++++++ src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 133 ++++++++++++------ src/main/java/com/zy/core/model/command/CrnCommand.java | 2 4 files changed, 351 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index 64ccc7f..d595267 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -32,6 +32,7 @@ import com.zy.core.model.command.CrnCommand; import com.zy.core.model.command.LedCommand; import com.zy.core.model.command.RgvCommand; +import com.zy.core.model.cpmmandParam.CrnCommandParam; import com.zy.core.model.protocol.CrnProtocol; import com.zy.core.model.protocol.RgvProtocol; import com.zy.core.model.protocol.StaProtocol; @@ -1697,8 +1698,6 @@ && crnProtocol.getTaskNo() == 0 && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) { -// sign[0] = 1; -// sign[1] = 1; /* * 浠诲姟鎷嗗垎鐗规畩澶勭悊 * */ @@ -1709,16 +1708,10 @@ sign[0] = 1; sign[1] = 1; } - }else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE - && crnProtocol.getTaskNoTwo() == 0 - && crnProtocol.getLoadedTwo() == 0 - && crnProtocol.getForkPosTwo() == 0){ - sign[0] = 1; - sign[1] = 2; } } - if (sign[0]==1 && sign[1] == 1){ + if (sign[0]==1){ // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡 if (crnProtocol.getLastIo().equals("I")) { if (basCrnp.getInEnable().equals("Y")) { @@ -3073,47 +3066,93 @@ // return; } - // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� - CrnCommand crnCommand = new CrnCommand(); - crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� - crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐� - crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰 - crnCommand.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺� - crnCommand.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒� - crnCommand.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞� - if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) { - log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); - } else { - // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� - Date now = new Date(); - wrkMast.setWrkSts(12L); - wrkMast.setCrnStrTime(now); - wrkMast.setModiTime(now); - WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,crnStation,now); - wrkMastSplitTwin.setWrkSts(1); - wrkMastSplitTwin.setWrkStart(wrkMast.getSourceLocNo()); - wrkMastSplitTwin.setWrkEnd(wrkMast.getSourceStaNo().toString()); - wrkMastSplitTwin.setStartRow(sourceSta.getRow1()); - wrkMastSplitTwin.setStartBay(sourceSta.getBay1()); - wrkMastSplitTwin.setStartLev(sourceSta.getLev1()); - wrkMastSplitTwin.setEndRow(crnStn.getRow()); - wrkMastSplitTwin.setEndBay(crnStn.getBay()); - wrkMastSplitTwin.setEndLev(crnStn.getLev()); - wrkMastSplitTwin.setWrkType(1); - wrkMastSplitTwin.setIoType(2); - if (wrkMastMapper.updateById(wrkMast) == 0) { - log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); - } + if (true){ + // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐� + crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞� + if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) { + log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); + } else { + // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� + Date now = new Date(); + wrkMast.setWrkSts(12L); + wrkMast.setCrnStrTime(now); + wrkMast.setModiTime(now); + WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,crnStation,now); + wrkMastSplitTwin.setWrkSts(1); + wrkMastSplitTwin.setWrkStart(wrkMast.getSourceLocNo()); + wrkMastSplitTwin.setWrkEnd(wrkMast.getSourceStaNo().toString()); + wrkMastSplitTwin.setStartRow(sourceSta.getRow1()); + wrkMastSplitTwin.setStartBay(sourceSta.getBay1()); + wrkMastSplitTwin.setStartLev(sourceSta.getLev1()); + wrkMastSplitTwin.setEndRow(crnStn.getRow()); + wrkMastSplitTwin.setEndBay(crnStn.getBay()); + wrkMastSplitTwin.setEndLev(crnStn.getLev()); + wrkMastSplitTwin.setWrkType(1); + wrkMastSplitTwin.setIoType(2); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } - if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){ - log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo()); + if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){ + log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo()); + } + break; } - break; } +// else { +// // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� +// CrnCommandParam crnCommandParam = new CrnCommandParam(); +// CrnCommand crnCommand = new CrnCommand(); +// crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� +// crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� +// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� +// crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐� +// crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓 +// crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪 +// crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰 +// crnCommand.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺� +// crnCommand.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒� +// crnCommand.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞� +// if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) { +// log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); +// } else { +// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� +// Date now = new Date(); +// wrkMast.setWrkSts(12L); +// wrkMast.setCrnStrTime(now); +// wrkMast.setModiTime(now); +// WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,crnStation,now); +// wrkMastSplitTwin.setWrkSts(1); +// wrkMastSplitTwin.setWrkStart(wrkMast.getSourceLocNo()); +// wrkMastSplitTwin.setWrkEnd(wrkMast.getSourceStaNo().toString()); +// wrkMastSplitTwin.setStartRow(sourceSta.getRow1()); +// wrkMastSplitTwin.setStartBay(sourceSta.getBay1()); +// wrkMastSplitTwin.setStartLev(sourceSta.getLev1()); +// wrkMastSplitTwin.setEndRow(crnStn.getRow()); +// wrkMastSplitTwin.setEndBay(crnStn.getBay()); +// wrkMastSplitTwin.setEndLev(crnStn.getLev()); +// wrkMastSplitTwin.setWrkType(1); +// wrkMastSplitTwin.setIoType(2); +// if (wrkMastMapper.updateById(wrkMast) == 0) { +// log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); +// } +// +// if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){ +// log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo()); +// } +// break; +// } +// } } } diff --git a/src/main/java/com/zy/core/model/command/CrnCommand.java b/src/main/java/com/zy/core/model/command/CrnCommand.java index c777ecb..86456b6 100644 --- a/src/main/java/com/zy/core/model/command/CrnCommand.java +++ b/src/main/java/com/zy/core/model/command/CrnCommand.java @@ -25,7 +25,7 @@ /** * 浠诲姟妯″紡锛� - * 0 = 鏃� + * 0 = CrnCommandParam * 1 = 鍏ュ簱 婧愬拰鐩爣閮藉彂 * 2 = 鍑哄簱 婧愬拰鐩爣閮藉彂 * 3 = 搴撲綅绉昏浆 婧愬拰鐩爣閮藉彂 diff --git a/src/main/java/com/zy/core/model/cpmmandParam/CrnCommandParam.java b/src/main/java/com/zy/core/model/cpmmandParam/CrnCommandParam.java new file mode 100644 index 0000000..cf9562f --- /dev/null +++ b/src/main/java/com/zy/core/model/cpmmandParam/CrnCommandParam.java @@ -0,0 +1,118 @@ +package com.zy.core.model.cpmmandParam; + +import com.alibaba.fastjson.annotation.JSONField; +import com.zy.core.enums.CrnTaskModeType; +import com.zy.core.model.command.CrnCommand; +import lombok.Data; + +import java.util.Calendar; +import java.util.Date; + +/** + * 鍫嗗灈鏈哄懡浠ゆ姤鏂� + * Created by vincent on 2020/8/11 + */ +@Data +public class CrnCommandParam { + + // 鍫嗗灈鏈哄彿 + private Integer crnNo = 0; + + // 浠诲姟瀹屾垚纭浣� + private Short ackFinish = 0; + private Short ackFinish2 = 0; + + // 浠诲姟鍙� + private Short taskNo = 0; + private Short taskNo2 = 0; + + /** + * 浠诲姟妯″紡锛� + * 0 = 鏃� + * 1 = 鍏ュ簱 婧愬拰鐩爣閮藉彂 + * 2 = 鍑哄簱 婧愬拰鐩爣閮藉彂 + * 3 = 搴撲綅绉昏浆 婧愬拰鐩爣閮藉彂 + * 4 = 绔欎綅绉昏浆 婧愬拰鐩爣閮藉彂 + * 5 = 鍥炲師鐐� 涓嶇敤鍙� + * 6 = 鍘诲弽鍘熺偣 鐩爣鍙� + * 7 = 鍧愭爣绉昏 鐩爣鍙� + * 90 = 璁剧疆鏃堕棿 + * 99 = 鍙栨秷褰撳墠浠诲姟 + */ + private Short taskMode = 0; + private Short taskMode2 = 0; + + @JSONField(serialize = false) + private CrnTaskModeType taskModeType; + + private CrnTaskModeType taskModeType2; + + // 婧愪綅缃帓鍙� + private Short sourcePosX = 0; + private Short sourcePosX2 = 0; + + // 婧愪綅缃垪鍙� + private Short sourcePosY = 0; + private Short sourcePosY2 = 0; + + // 婧愪綅缃眰鍙� + private Short sourcePosZ = 0; + private Short sourcePosZ2 = 0; + + // 婧愮珯 + private Short sourceStaNo = 0; + private Short sourceStaNo2 = 0; + + // 婧愬贩閬� + private Short sourceLane = 0; + + // 鐩爣浣嶇疆鎺掑彿 + private Short destinationPosX = 0; + private Short destinationPosX2 = 0; + + // 鐩爣浣嶇疆鍒楀彿 + private Short destinationPosY = 0; + private Short destinationPosY2 = 0; + + // 鐩爣浣嶇疆灞傚彿 + private Short destinationPosZ = 0; + private Short destinationPosZ2 = 0; + + // 鐩爣绔� + private Short destinationStaNo = 0; + private Short destinationStaNo2 = 0; + + // 鐩爣宸烽亾 + private Short destinationLane = 0; + + // 浠诲姟纭 0锛氭湭纭 1锛氬凡纭 + private Short command = 0; + private Short command2 = 0; + + public CrnCommandParam(){ + + } + public CrnCommandParam(CrnCommand crnCommand1,CrnCommand crnCommand2){ + + } + + public void setTaskMode(Short taskMode){ + this.taskMode = taskMode; + this.taskModeType = CrnTaskModeType.get(taskModeType); + } + + public void setTaskMode(CrnTaskModeType type) { + this.taskModeType = type; + this.taskMode = CrnTaskModeType.get(type).id.shortValue(); + } + + public void setTaskMode2(Short taskMode){ + this.taskMode2 = taskMode; + this.taskModeType2 = CrnTaskModeType.get(taskModeType2); + } + + public void setTaskMode2(CrnTaskModeType type) { + this.taskModeType2 = type; + this.taskMode2 = CrnTaskModeType.get(type).id.shortValue(); + } +} diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index 53e5797..12cc3ad 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -19,6 +19,7 @@ import com.zy.core.model.CrnSlave; import com.zy.core.model.Task; import com.zy.core.model.command.CrnCommand; +import com.zy.core.model.cpmmandParam.CrnCommandParam; import com.zy.core.model.protocol.CrnProtocol; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -113,6 +114,10 @@ command2.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒� command2.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞� write5(command2); + break; + // 澶嶄綅 + case 7: + write9((CrnCommandParam) task.getData()); break; default: break; @@ -600,6 +605,147 @@ } } + /** + * 鍐欏叆鏁版嵁 宸ヤ綅2 + */ + private boolean write9(CrnCommandParam command) throws InterruptedException { + if (null == command) { + log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�"); + return false; + } +// convertRow(command); + 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.getSourceStaNo(); +// array[10] = command.getDestinationStaNo(); + array[9] = command.getCommand(); + OperateResult result18 = siemensNet.Write("DB100.38", (short)0); + OperateResult result = siemensNet.Write("DB100.20", array); + log.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array); + + //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� + Thread.sleep(200); + int writeCount = 1; + do { + try{ + if(!result.IsSuccess){ + log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount); + result = siemensNet.Write("DB100.20", array); + Thread.sleep(100); + writeCount++; + continue; + } + OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.20", (short) 24); + if (resultRead.IsSuccess) { + CrnCommand one = new CrnCommand(); + one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2)); + one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4)); + one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6)); + one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8)); + one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10)); + one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12)); + one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14)); + one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16)); + if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode()) + || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY()) + || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX()) + || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ()) + ){ + try{ + log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); + }catch (Exception e){ + try{ + log.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead)); + }catch (Exception e1){ + log.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command)); + } + } + try{ + Thread.sleep(100); + }catch (Exception e){ + + } + log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount); + result = siemensNet.Write("DB100.20", array); + writeCount++; + continue; + } else { + log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); + break; + } + } + }catch (Exception e){ + log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�,寮傚父锛�"+e); + } + writeCount++; + } while (writeCount<6); + + if (command.getAckFinish() == 0) { + short commandFinish = 1; + Thread.sleep(100L); + result = siemensNet.Write("DB100.38", commandFinish); + int signFinish = 1; + while (signFinish<5){ + OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.38", (short) 2); + short transInt16 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0); + if (transInt16 != commandFinish){ + log.info("涓嬪彂DB100.38 鍥炶澶辫触" + "commandFinish:"+commandFinish); + log.info("涓嬪彂DB100.38 鍥炶澶辫触" + "array:"+ JSON.toJSONString(array)); + result = siemensNet.Write("DB100.38", commandFinish); + signFinish++; + }else { + log.info("涓嬪彂DB100.38" + "commandFinish:"+commandFinish); + log.info("涓嬪彂DB100.38" + "array:"+ JSON.toJSONString(array)); + break; + } + } + } + + 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.insert(basCrnOpt); + } catch (Exception ignore) {} + + if (result != null && result.IsSuccess) { + Thread.sleep(200); + this.readStatus(); + 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; + } else { + OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); + log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + return false; + } + } + @Override public void close() { -- Gitblit v1.9.1