From a7b455d1982e0b4df3913e70461fe91c6eea1c8f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 02 一月 2021 09:22:01 +0800
Subject: [PATCH] #
---
/dev/null | 253 ------------------------------------------
src/main/webapp/static/js/common.js | 2
pom.xml | 2
src/main/resources/application.yml | 24 ----
src/main/java/com/zy/core/ServerBootstrap.java | 31 ----
5 files changed, 4 insertions(+), 308 deletions(-)
diff --git a/pom.xml b/pom.xml
index 516c71c..04e7fe2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -185,7 +185,7 @@
</dependencies>
<build>
- <finalName>jswcs</finalName>
+ <finalName>htwcs</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 49d53e2..9e5e95d 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -74,17 +74,7 @@
// 鍒濆鍖栧爢鍨涙満绾跨▼
log.info("鍒濆鍖栧爢鍨涙満绾跨▼...................................................");
for (CrnSlave crn : slaveProperties.getCrn()) {
- CrnThread crnThread = null;
- switch (crn.getId()) {
- case 1:
- crnThread = new SiemensCrnThread(crn);
- break;
- case 2:
- crnThread = new MelsecCrnThread(crn);
- break;
- default:
- break;
- }
+ CrnThread crnThread = new SiemensCrnThread(crn);
new Thread((Runnable) crnThread).start();
SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread);
}
@@ -92,17 +82,7 @@
// 鍒濆鍖栬緭閫佺嚎绾跨▼
log.info("鍒濆鍖栬緭閫佺嚎绾跨▼...................................................");
for (DevpSlave devp : slaveProperties.getDevp()) {
- DevpThread devpThread = null;
- switch (devp.getId()) {
- case 1:
- devpThread = new SiemensDevpThread(devp);
- break;
- case 2:
- devpThread = new MelsecDevpThread(devp);
- break;
- default:
- break;
- }
+ DevpThread devpThread = new SiemensDevpThread(devp);
new Thread((Runnable) devpThread).start();
SlaveConnection.put(SlaveType.Devp, devp.getId(), devpThread);
}
@@ -120,13 +100,6 @@
LedThread ledThread = new LedThread(led);
new Thread(ledThread).start();
SlaveConnection.put(SlaveType.Led, led.getId(), ledThread);
- }
- // 鍒濆鍖栧彴杞︾嚎绋�
- log.info("鍒濆鍖栧彴杞︾嚎绋�...................................................");
- for (Slave car : slaveProperties.getCar()) {
- CarThread carThread = new CarThread(car);
- new Thread(carThread).start();
- SlaveConnection.put(SlaveType.Car, car.getId(), carThread);
}
}
diff --git a/src/main/java/com/zy/core/thread/CarThread.java b/src/main/java/com/zy/core/thread/CarThread.java
deleted file mode 100644
index b05fac3..0000000
--- a/src/main/java/com/zy/core/thread/CarThread.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.zy.core.thread;
-
-import com.zy.core.Slave;
-import com.zy.core.ThreadHandler;
-import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
-
-import java.io.IOException;
-
-/**
- * 鍙拌溅绾跨▼
- * Created by vincent on 2020/8/4
- */
-@Data
-@Slf4j
-public class CarThread implements Runnable, ThreadHandler {
-
- private Slave slave;
-
- public CarThread(Slave slave) {
- this.slave = slave;
- }
-
- @Override
- @SuppressWarnings("InfiniteLoopStatement")
- public void run() {
- connect();
- while (true) {
- try {
- Thread.sleep(1000);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
-
- @Override
- public boolean connect() {
- try {
- } catch (Exception e) {
- log.error("鍙拌溅杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- return false;
- }
- return true;
- }
-
- @Override
- public void close() {
- }
-
- public void write(byte[] msg, int len) throws IOException {
- }
-
- public byte[] read(int bufferSize, int timeOut) throws IOException {
- return null;
- }
-
-
- public static void main(String[] args) throws Exception {
- CarThread barcodeThread = new CarThread(new Slave());
- barcodeThread.getSlave().setIp("192.168.2.150");
- barcodeThread.getSlave().setPort(51236);
- boolean connect = barcodeThread.connect();
- System.out.println(connect);
- barcodeThread.write("T".getBytes(), "T".length());
- byte[] read = barcodeThread.read(11, 1000);
- System.out.println(new String(read));
- }
-}
diff --git a/src/main/java/com/zy/core/thread/MelsecCrnThread.java b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
deleted file mode 100644
index 53f159b..0000000
--- a/src/main/java/com/zy/core/thread/MelsecCrnThread.java
+++ /dev/null
@@ -1,411 +0,0 @@
-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.Arith;
-import com.core.common.DateUtils;
-import com.core.common.SpringUtils;
-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.core.CrnThread;
-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.Calendar;
-import java.util.Date;
-
-/**
- * 鍫嗗灈鏈虹嚎绋�
- * Created by vincent on 2020/8/4
- */
-@Data
-@Slf4j
-public class MelsecCrnThread implements Runnable, CrnThread {
-
- private MelsecMcNet melsecMcNet;
- private CrnSlave slave;
- private CrnProtocol crnProtocol;
- private boolean resetFlag = false;
- private short heartBeatVal = 1;
- private int heartTimes = 0;
-
- public MelsecCrnThread(CrnSlave slave) {
- this.slave = slave;
- }
-
- @Override
- @SuppressWarnings("InfiniteLoopStatement")
- public void run() {
- this.connect();
- 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;
- }
- // 蹇冭烦 2s涓�娆�
- heartTimes++;
- if (Arith.remainder(heartTimes, 4) == 0) {
- heartbeat();
- heartTimes = 0;
- }
- Thread.sleep(500);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- }
- }
-
- @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()));
- log.info("鍫嗗灈鏈簆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()));
- log.error("鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] ", slave.getId(), slave.getIp(), slave.getPort());
- }
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- /**
- * array[1] = command.getSourcePosY(); // 鍒�
- * array[2] = command.getSourcePosZ(); // 灞�
- * array[3] = command.getSourcePosX(); // 鎺�
- * array[4] = command.getDestinationPosY(); // 鍒�
- * array[5] = command.getDestinationPosZ(); // 灞�
- * array[6] = command.getDestinationPosX(); // 鎺�
- * array[7] = command.getTaskNo();
- */
- Date date = new Date();
- Calendar cal = Calendar.getInstance();
- cal.setTime(date);
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskMode(CrnTaskModeType.TIMING); // 浠诲姟妯″紡: 璁剧疆鏃堕棿
- crnCommand.setSourcePosY((short) cal.get(Calendar.YEAR)); // 骞达細1980锝�2079
- crnCommand.setSourcePosZ((short) (cal.get(Calendar.MONTH)+1)); // 鏈堬細1锝�12
- crnCommand.setSourcePosX((short) cal.get(Calendar.DATE)); // 鏃ワ細1锝�31
- crnCommand.setDestinationPosY((short) cal.get(Calendar.HOUR_OF_DAY)); // 鏃讹細0锝�23
- crnCommand.setDestinationPosZ((short) cal.get(Calendar.MINUTE)); // 鍒嗭細0锝�59
- crnCommand.setDestinationPosX((short) cal.get(Calendar.SECOND)); // 绉掞細0锝�59
-// crnCommand.setTaskNo((short) (cal.get(Calendar.DAY_OF_WEEK) - 1)); // 鏄熸湡锛�0(鏃�)锝�6(鍏�)
- crnCommand.setTaskNo((short) 0); // 鏄熸湡锛�0(鏃�)锝�6(鍏�)
- crnCommand.setTaskSend((short) 1);
- crnCommand.setAckFinish((short) 0);
- if (write(crnCommand)) {
- log.info("鍫嗗灈鏈簆lc鏍″鏃堕棿鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] ", slave.getId(), slave.getIp(), slave.getPort());
- }
-
- melsecMcNet.ConnectClose();
- try {
- Thread.sleep(1000);
- } catch (InterruptedException ignore) {}
- return result;
- }
-
- /**
- * 璇诲彇鐘舵��
- */
- private void readStatus(){
- OperateResultExOne<byte[]> result = melsecMcNet.Read("D1119", (short) 58);
- if (result.IsSuccess) {
- if (null == crnProtocol) {
- crnProtocol = new CrnProtocol();
- }
- crnProtocol.setTaskNo(melsecMcNet.getByteTransform().TransInt16(result.Content, 0));
- crnProtocol.setMode(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.setFingerPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 16));
- crnProtocol.setLoaded(melsecMcNet.getByteTransform().TransInt16(result.Content, 18));
- crnProtocol.setAlarm1(melsecMcNet.getByteTransform().TransInt16(result.Content, 20));
- crnProtocol.setTemp1(melsecMcNet.getByteTransform().TransInt16(result.Content, 22));
- crnProtocol.setTemp2(melsecMcNet.getByteTransform().TransInt16(result.Content, 24));
- crnProtocol.setTemp3(melsecMcNet.getByteTransform().TransInt16(result.Content, 26));
- crnProtocol.setTemp4(melsecMcNet.getByteTransform().TransInt16(result.Content, 28));
- crnProtocol.setXSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 30));
- crnProtocol.setYSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 34));
- crnProtocol.setZSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 38));
- crnProtocol.setXDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 42));
- crnProtocol.setYDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 46));
- crnProtocol.setXDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 50));
- crnProtocol.setYDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 54));
-
- OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-
- // 澶嶄綅淇″彿
- if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
- if (resetFlag) {
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setAckFinish((short)1);
- if (write(crnCommand)) {
- resetFlag = false;
- }
-
- }
- }
-
- // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
- BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
- BasCrnp basCrnp = new BasCrnp();
- basCrnp.setCrnNo(slave.getId());
- crnProtocol.setAlarm1((short) (crnProtocol.getAlarm1() + 1000));
- if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
- log.error("鍫嗗灈鏈簆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()));
- log.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- }
- }
-
- /**
- * 鍐欏叆鏁版嵁
- */
- private boolean write(CrnCommand command){
- if (null == command) {
- log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
- return false;
- }
- if (command.getAckFinish() == 1) {
- command.setTaskSend((short) 0);
- command.setTaskNo((short) 0);
- } else if (command.getAckFinish() == 0) {
- command.setTaskSend((short) 1);
- }
- command.setCrnNo(slave.getId());
- short[] array = new short[10];
- array[0] = command.getTaskMode();
- array[1] = command.getSourcePosY(); // 鍒�
- array[2] = command.getSourcePosZ(); // 灞�
- array[3] = command.getSourcePosX(); // 鎺�
- array[4] = command.getDestinationPosY(); // 鍒�
- array[5] = command.getDestinationPosZ(); // 灞�
- array[6] = command.getDestinationPosX(); // 鎺�
- array[7] = command.getTaskNo();
- array[8] = command.getTaskSend();
- array[9] = command.getAckFinish();
-
- OperateResult result = melsecMcNet.Write("D1001", array);
- if (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)));
-
- 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) {}
-
- 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;
- }
- }
-
- /**
- * 蹇冭烦
- */
- private void heartbeat(){
- if (heartBeatVal == 1) {
- heartBeatVal = 0;
- } else {
- heartBeatVal = 1;
- }
- OperateResult write = melsecMcNet.Write("D1000", heartBeatVal);
- if (!write.IsSuccess) {
- log.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
- }
- }
-
- @Override
- public void close() {
- melsecMcNet.ConnectClose();
- }
-
- /******************************************************************************************/
- /**************************************** 娴嬭瘯涓撶敤 *****************************************/
- /*****************************************************************************************/
- public static void main(String[] args) throws InterruptedException {
- CrnSlave slave = new CrnSlave();
- slave.setId(1);
- slave.setIp("192.168.6.9");
- MelsecCrnThread crnThread = new MelsecCrnThread(slave);
- crnThread.connect();
- crnThread.readStatus();
- System.out.println(JSON.toJSONString(crnThread.crnProtocol));
- Thread.sleep(3000L);
-
- // 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);
-
-// // 7.鍧愭爣绉昏 鐩爣鍙� pass
-// CrnCommand command = new CrnCommand();
-// command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙�
-// command.setTaskNo((short) 0); // 宸ヤ綔鍙�
-// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
-// command.setTaskMode(CrnTaskModeType.OFFSET_MOVE); // 浠诲姟妯″紡
-// command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓
-// command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪
-// command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰
-// command.setDestinationPosX((short) 2); // 鐩爣搴撲綅鎺�
-// command.setDestinationPosY((short) 1); // 鐩爣搴撲綅鍒�
-// command.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞�
-// 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);
-// }
-
- }
-}
diff --git a/src/main/java/com/zy/core/thread/MelsecDevpThread.java b/src/main/java/com/zy/core/thread/MelsecDevpThread.java
deleted file mode 100644
index 1cfa839..0000000
--- a/src/main/java/com/zy/core/thread/MelsecDevpThread.java
+++ /dev/null
@@ -1,253 +0,0 @@
-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.zy.asrs.entity.BasDevp;
-import com.zy.asrs.service.BasDevpService;
-import com.zy.asrs.utils.Utils;
-import com.zy.core.DevpThread;
-import com.zy.core.cache.MessageQueue;
-import com.zy.core.cache.OutputQueue;
-import com.zy.core.enums.SlaveType;
-import com.zy.core.model.DevpSlave;
-import com.zy.core.model.Task;
-import com.zy.core.model.protocol.StaProtocol;
-import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * 杈撻�佺嚎绾跨▼
- * Created by vincent on 2020/8/4
- */
-@Data
-@Slf4j
-public class MelsecDevpThread implements Runnable, DevpThread {
-
- private DevpSlave slave;
- private MelsecMcNet melsecMcNet;
- private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
- private short heartBeatVal = 1;
- public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
- add(101);add(102);add(103);add(104);add(105);add(106);add(107);
- }};
- private List<Integer> errors = new ArrayList<>();
-
- public MelsecDevpThread(DevpSlave slave) {
- this.slave = slave;
- }
-
- @Override
- @SuppressWarnings("InfiniteLoopStatement")
- public void run() {
- connect();
- while (true) {
- try {
- int step = 1;
- Task task = MessageQueue.poll(SlaveType.Devp, slave.getId());
- if (task != null) {
- step = task.getStep();
- }
- switch (step) {
- // 璇绘暟鎹�
- case 1:
- read();
- break;
- // 鍐欐暟鎹� ID+鐩爣绔�
- case 2:
- write((StaProtocol)task.getData());
- break;
- default:
- break;
- }
-
- // 蹇冭烦
-// heartbeat();
- Thread.sleep(400);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- }
- }
-
- @Override
- public boolean connect() {
- boolean result = false;
- melsecMcNet = new MelsecMcNet(slave.getIp(), slave.getPort());
- OperateResult connect = melsecMcNet.ConnectServer();
- if(connect.IsSuccess){
- result = true;
- OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- log.info("杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- } else {
- OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- log.error("杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- }
- melsecMcNet.ConnectClose();
- try {
- Thread.sleep(1000);
- } catch (InterruptedException ignore) {}
- return result;
- }
-
- /**
- * 璇诲彇鐘舵�� ====> 鏁村潡plc
- */
- private void read() throws InterruptedException {
- OperateResultExOne<byte[]> result = melsecMcNet.Read("D101", (short) 30);
- if (result.IsSuccess) {
- // 绔欑偣鏁版嵁
- for (int i = 0; i < staNos.size(); i++) {
- Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
- StaProtocol staProtocol = station.get(siteId);
- if (null == staProtocol) {
- staProtocol = new StaProtocol();
- staProtocol.setSiteId(siteId);
- station.put(siteId, staProtocol);
- }
- short workNo = melsecMcNet.getByteTransform().TransInt16(result.Content, (i) * 2);
- staProtocol.setWorkNo(workNo==-1?0:workNo); // 宸ヤ綔鍙�
- staProtocol.setStaNo(melsecMcNet.getByteTransform().TransInt16(result.Content, (i)*2+40)); // 鐩爣绔�
- }
- }
- Thread.sleep(200);
- OperateResultExOne<boolean[]> result1 = melsecMcNet.ReadBool("M800", (short) 64);
- if (result1.IsSuccess) {
- for (int i = 0; i < staNos.size(); i++) {
- Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
- StaProtocol staProtocol = station.get(siteId);
- staProtocol.setAutoing(result1.Content[(i)*8]); // 鑷姩
- staProtocol.setLoading(result1.Content[(i)*8+1]); // 鏈夌墿
- staProtocol.setInEnable(result1.Content[(i)*8+2]); // 鍙叆
- staProtocol.setOutEnable(result1.Content[(i)*8+3]);// 鍙嚭
- staProtocol.setEmptyMk(result1.Content[(i)*8+4]); // 绌烘澘淇″彿
-
- if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
- staProtocol.setPakMk(true);
- }
- }
- }
-// Thread.sleep(100);
-// errors.clear();
-// OperateResultExOne<boolean[]> result2 = melsecMcNet.ReadBool("M1000", (short) 21);
-// if (result2.IsSuccess) {
-// for (int i = 0; i < result2.Content.length; i++) {
-// if (result2.Content[i]) {
-// errors.add(i);
-// }
-// }
-// }
- if (result.IsSuccess && result1.IsSuccess) {
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-
- // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
- try {
- List<BasDevp> basDevps = new ArrayList<>();
- for (Integer siteId : staNos) {
- StaProtocol staProtocol = station.get(siteId);
- basDevps.add(staProtocol.toSqlModel());
- }
- BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
- if (!basDevpService.updateBatchById(basDevps)) {
- throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
- }
- } catch (Exception e) {
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戞洿鏂版暟鎹簱鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- log.error("鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- }
-
- } else {
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣鍙栬緭閫佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- log.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] ", slave.getId(), slave.getIp(), slave.getPort());
- }
- }
-
- /**
- * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
- */
- private void write(StaProtocol staProtocol) throws InterruptedException {
- if (null == staProtocol) {
- return;
- }
- System.out.println();
- OperateResult write1 = melsecMcNet.Write("D1" + Utils.zerofill(String.valueOf(staNos.indexOf(staProtocol.getSiteId())+21), 2), staProtocol.getStaNo()); // 鐩爣绔�
- Thread.sleep(200);
- OperateResult write = melsecMcNet.Write("D1" + Utils.zerofill(String.valueOf(staNos.indexOf(staProtocol.getSiteId())+1), 2), staProtocol.getWorkNo()); // 宸ヤ綔鍙�
- if (!write.IsSuccess || !write1.IsSuccess) {
- staProtocol = station.get(staProtocol.getSiteId());
- if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
- staProtocol.setPakMk(true);
- }
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
- log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
- } else {
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
- log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
- }
- }
-
- /**
- * 蹇冭烦
- */
- private void heartbeat(){
- if (heartBeatVal == 1) {
- heartBeatVal = 2;
- } else {
- heartBeatVal = 1;
- }
- OperateResult write = melsecMcNet.Write("D141", heartBeatVal);
- if (!write.IsSuccess) {
- log.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
- }
- }
-
- /**
- * 璁剧疆鍏ュ簱鏍囪
- */
- @Override
- public void setPakMk(Integer siteId, boolean pakMk) {
- StaProtocol staProtocol = station.get(siteId);
- if (null != staProtocol) {
- staProtocol.setPakMk(pakMk);
- }
- }
-
- @Override
- public void close() {
- melsecMcNet.ConnectClose();
- }
-
- public static void main(String[] args) throws Exception {
- DevpSlave slave = new DevpSlave();
- slave.setIp("192.168.6.21");
- slave.setPort(6000);
- MelsecDevpThread devpThread = new MelsecDevpThread(slave);
- devpThread.connect();
- for (int i = 1; i < 999; i ++) {
- OperateResultExOne<Short> d = devpThread.getMelsecMcNet().ReadInt16("D" + i);
- Thread.sleep(200);
- if (d.IsSuccess) {
- System.out.println(DateUtils.convert(new Date()) + d.Content);
- } else {
- System.out.println("璇诲彇澶辫触");
- }
- }
- devpThread.getMelsecMcNet().ConnectClose();
- }
-
-
-
-
-
-}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index dd5a80d..7640124 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -7,11 +7,7 @@
application:
name: @pom.build.finalName@
datasource:
- # sql-server
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- #url: jdbc:sqlserver://192.168.3.99:1433;databasename=gdasrs
- #username: sa
- #password: eisoft
url: jdbc:sqlserver://192.168.2.250:1433;databasename=jsasrs
username: sa
password: sa@123
@@ -105,26 +101,6 @@
# 鎷f枡鍏ュ簱鍙�
pickSta[0]:
staNo: 3
- # 杈撻�佺嚎
- devp[1]:
- id: 2
- ip: 192.168.6.21
- port: 6000
- rack: 0
- slot: 1
- # 鍏ュ簱鍙�1
- inSta[0]:
- staNo: 105
- barcode: ${wcs-slave.barcode[1].id}
- # 绌烘澘鍏ュ簱鍙�1
- emptyInSta[0]:
- staNo: 104
- # 鍑哄簱鍙�1
- outSta[0]:
- staNo: 104
- # 鎷f枡鍏ュ簱鍙�
- pickSta[0]:
- staNo: 105
# 鏉$爜鎵弿浠�
barcode[0]:
id: 1
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 183c4b5..726c5e9 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -1,4 +1,4 @@
-var baseUrl = "/jswcs";
+var baseUrl = "/htwcs";
// 璧嬪��
function setVal(el, val) {
--
Gitblit v1.9.1