初始化调度线程 数据

This commit is contained in:
liuhanqing
2025-07-04 11:54:16 +08:00
parent ae778084c4
commit a26319dbd6
7 changed files with 171 additions and 157 deletions

View File

@@ -22,7 +22,7 @@ public class ThreadOperationController {
* @return * @return
*/ */
@RequestMapping("/startAllThread") @RequestMapping("/startAllThread")
@PreAuthorize("@ss.hasPermi('device:operation:start')") //@PreAuthorize("@ss.hasPermi('device:operation:start')")
public AjaxResult startAllThread() { public AjaxResult startAllThread() {
scheduleThread.startAllThread(); scheduleThread.startAllThread();
return AjaxResult.success(); return AjaxResult.success();
@@ -34,7 +34,7 @@ public class ThreadOperationController {
* @return * @return
*/ */
@RequestMapping("/stopAllThread") @RequestMapping("/stopAllThread")
@PreAuthorize("@ss.hasPermi('device:operation:stop')") //@PreAuthorize("@ss.hasPermi('device:operation:stop')")
public AjaxResult stopAllThread() { public AjaxResult stopAllThread() {
scheduleThread.stopAllThread(); scheduleThread.stopAllThread();
return AjaxResult.success(); return AjaxResult.success();

View File

@@ -5,7 +5,6 @@ import com.ruoyi.device.ssj.service.IDeviceSsjService;
import com.ruoyi.schedule.plcRead.ssj.domain.PlcConnectInfo; import com.ruoyi.schedule.plcRead.ssj.domain.PlcConnectInfo;
import com.ruoyi.schedule.plcRead.ssj.PlcRead; import com.ruoyi.schedule.plcRead.ssj.PlcRead;
import com.ruoyi.schedule.plcRead.ssj.domain.CustomThread; import com.ruoyi.schedule.plcRead.ssj.domain.CustomThread;
import com.ruoyi.schedule.plcRead.ssj.domain.Ssj;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -25,8 +24,8 @@ public class ScheduleThread {
*/ */
@PostConstruct @PostConstruct
public void init() { public void init() {
String ip = "192.168.0.1"; String ip = "127.0.0.1";
int port = 80; int port = 102;
PlcConnectInfo ssjPlcConnectInfo = new PlcConnectInfo(ip, port); PlcConnectInfo ssjPlcConnectInfo = new PlcConnectInfo(ip, port);
ConcurrentHashMap<String, DeviceSsj>list = new ConcurrentHashMap<>(); ConcurrentHashMap<String, DeviceSsj>list = new ConcurrentHashMap<>();
//获取要去取的输送机 //获取要去取的输送机

View File

@@ -8,11 +8,10 @@ import HslCommunication.Profinet.Siemens.SiemensPLCS;
import HslCommunication.Profinet.Siemens.SiemensS7Net; import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.ruoyi.device.ssj.domain.DeviceSsj; import com.ruoyi.device.ssj.domain.DeviceSsj;
import com.ruoyi.schedule.plcRead.ssj.domain.PlcConnectInfo; import com.ruoyi.schedule.plcRead.ssj.domain.PlcConnectInfo;
import com.ruoyi.schedule.plcRead.ssj.domain.Ssj;
import com.ruoyi.schedule.plcRead.util.ParseUtil; import com.ruoyi.schedule.plcRead.util.ParseUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.Offset;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@Slf4j @Slf4j
@@ -38,7 +37,8 @@ public class PlcRead implements Runnable {
while (running && !Thread.currentThread().isInterrupted()) { while (running && !Thread.currentThread().isInterrupted()) {
try { try {
if (IsConnect()) { if (IsConnect()) {
int step = 20;
int baseOffset = 0;
for (String ssjCode : deviceMap.keySet()) { for (String ssjCode : deviceMap.keySet()) {
DeviceSsj ssjDevice = deviceMap.get(ssjCode); DeviceSsj ssjDevice = deviceMap.get(ssjCode);
String readAddress = ""; String readAddress = "";
@@ -47,362 +47,363 @@ public class PlcRead implements Runnable {
switch (ssjDevice.getDeviceCode()) { switch (ssjDevice.getDeviceCode()) {
case "G5011": case "G5011":
// 处理 G5011 // 处理 G5011
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5012": case "G5012":
// 处理 G5012 // 处理 G5012
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5016": case "G5016":
// 处理 G5016 // 处理 G5016
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5017": case "G5017":
// 处理 G5017 // 处理 G5017
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5002": case "G5002":
// 处理 G5002 // 处理 G5002
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5003": case "G5003":
// 处理 G5003 // 处理 G5003
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5007": case "G5007":
// 处理 G5007 // 处理 G5007
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5008": case "G5008":
// 处理 G5008 // 处理 G5008
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3011": case "G3011":
// 处理 G3011 // 处理 G3011
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3012": case "G3012":
// 处理 G3012 // 处理 G3012
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4007": case "G4007":
// 处理 G4007 // 处理 G4007
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4008": case "G4008":
// 处理 G4008 // 处理 G4008
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4016": case "G4016":
// 处理 G4016 // 处理 G4016
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4017": case "G4017":
// 处理 G4017 // 处理 G4017
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4011": case "G4011":
// 处理 G4011 // 处理 G4011
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4012": case "G4012":
// 处理 G4012 // 处理 G4012
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4002": case "G4002":
// 处理 G4002 // 处理 G4002
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4003": case "G4003":
// 处理 G4003 // 处理 G4003
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3002": case "G3002":
// 处理 G3002 // 处理 G3002
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3003": case "G3003":
// 处理 G3003 // 处理 G3003
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G2002": case "G2002":
// 处理 G2002 // 处理 G2002
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G2003": case "G2003":
// 处理 G2003 // 处理 G2003
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G1011": case "G1011":
// 处理 G1011 // 处理 G1011
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3016": case "G3016":
// 处理 G3016 // 处理 G3016
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3017": case "G3017":
// 处理 G3017 // 处理 G3017
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3007": case "G3007":
// 处理 G3007 // 处理 G3007
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3008": case "G3008":
// 处理 G3008 // 处理 G3008
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G1007": case "G1007":
// 处理 G1007 // 处理 G1007
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G1008": case "G1008":
// 处理 G1008 // 处理 G1008
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G1005": case "G1005":
// 处理 G1005 // 处理 G1005
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G1001": case "G1001":
// 处理 G1001 // 处理 G1001
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G1002": case "G1002":
// 处理 G1002 // 处理 G1002
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G2010": case "G2010":
// 处理 G2010 // 处理 G2010
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G2011": case "G2011":
// 处理 G2011 // 处理 G2011
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G1003": case "G1003":
// 处理 G1003 // 处理 G1003
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G1009": case "G1009":
// 处理 G1009 // 处理 G1009
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G2012": case "G2012":
// 处理 G2012 // 处理 G2012
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3009": case "G3009":
// 处理 G3009 // 处理 G3009
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3018": case "G3018":
// 处理 G3018 // 处理 G3018
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4009": case "G4009":
// 处理 G4009 // 处理 G4009
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4018": case "G4018":
// 处理 G4018 // 处理 G4018
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5009": case "G5009":
// 处理 G5009 // 处理 G5009
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5018": case "G5018":
// 处理 G5018 // 处理 G5018
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5013": case "G5013":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5014": case "G5014":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5015": case "G5015":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5004": case "G5004":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5005": case "G5005":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5006": case "G5006":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4013": case "G4013":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4014": case "G4014":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4015": case "G4015":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4004": case "G4004":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4005": case "G4005":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4006": case "G4006":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G1012": case "G1012":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3004": case "G3004":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3005": case "G3005":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3006": case "G3006":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3013": case "G3013":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3014": case "G3014":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3015": case "G3015":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G1006": case "G1006":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G2004": case "G2004":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G2005": case "G2005":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G2006": case "G2006":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G2007": case "G2007":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G2008": case "G2008":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G2009": case "G2009":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G1004": case "G1004":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G1010": case "G1010":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G2001": case "G2001":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3001": case "G3001":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G3010": case "G3010":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4001": case "G4001":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G4010": case "G4010":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5001": case "G5001":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
case "G5010": case "G5010":
readAddress = ""; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "";
break; break;
default: default:
continue; continue;
} }
baseOffset +=step;
ssjDevice.setPlcDbReadAddress(readAddress); ssjDevice.setPlcDbReadAddress(readAddress);
ssjDevice.setPlcDbWriteAddress(writeAddress); ssjDevice.setPlcDbWriteAddress(writeAddress);
@@ -443,15 +444,15 @@ public class PlcRead implements Runnable {
* @param ssjDevice * @param ssjDevice
*/ */
private void readPlcOtherSsj(DeviceSsj ssjDevice) { private void readPlcOtherSsj(DeviceSsj ssjDevice) {
OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("18")); OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("24"));
String ddsx1 = "0"; String ddsx1 = "0";
if (read2.IsSuccess) { if (read2.IsSuccess) {
ddsx1 = SoftBasic.ByteToHexString(read2.Content); ddsx1 = SoftBasic.ByteToHexString(read2.Content);
ssjDevice.setKx(ParseUtil.optInt(0, ddsx1)); ssjDevice.setKx(ParseUtil.optInt(0, ddsx1));
ssjDevice.setDw(ParseUtil.optInt(1, ddsx1)); ssjDevice.setDw(ParseUtil.optInt(2, ddsx1));
ssjDevice.setRkqq(ParseUtil.optInt(2, ddsx1)); ssjDevice.setRkqq(ParseUtil.optInt(4, ddsx1));
ssjDevice.setTrayCode(ParseUtil.optString(3, ddsx1)); ssjDevice.setTaskNo(ParseUtil.optDInt(6, ddsx1));
ssjDevice.setTaskNo(ParseUtil.optDInt(4, ddsx1)); ssjDevice.setTrayCode(ParseUtil.optString(10, ddsx1));
} }
} }
@@ -461,15 +462,15 @@ public class PlcRead implements Runnable {
* @param ssjDevice * @param ssjDevice
*/ */
private void readPlcInSsj(DeviceSsj ssjDevice) { private void readPlcInSsj(DeviceSsj ssjDevice) {
OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("18")); OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("24"));
String ddsx1 = "0"; String ddsx1 = "0";
if (read2.IsSuccess) { if (read2.IsSuccess) {
ddsx1 = SoftBasic.ByteToHexString(read2.Content); ddsx1 = SoftBasic.ByteToHexString(read2.Content);
ssjDevice.setKx(ParseUtil.optInt(0, ddsx1)); ssjDevice.setKx(ParseUtil.optInt(0, ddsx1));
ssjDevice.setDw(ParseUtil.optInt(1, ddsx1)); ssjDevice.setDw(ParseUtil.optInt(2, ddsx1));
ssjDevice.setRkqq(ParseUtil.optInt(2, ddsx1)); ssjDevice.setRkqq(ParseUtil.optInt(4, ddsx1));
ssjDevice.setTrayCode(ParseUtil.optString(3, ddsx1)); ssjDevice.setTaskNo(ParseUtil.optDInt(6, ddsx1));
ssjDevice.setTaskNo(ParseUtil.optDInt(4, ddsx1)); ssjDevice.setTrayCode(ParseUtil.optString(10, ddsx1));
} }
} }
@@ -479,15 +480,15 @@ public class PlcRead implements Runnable {
* @param ssjDevice * @param ssjDevice
*/ */
private void readPlcPickSsj(DeviceSsj ssjDevice) { private void readPlcPickSsj(DeviceSsj ssjDevice) {
OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("18")); OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("24"));
String ddsx1 = "0"; String ddsx1 = "0";
if (read2.IsSuccess) { if (read2.IsSuccess) {
ddsx1 = SoftBasic.ByteToHexString(read2.Content); ddsx1 = SoftBasic.ByteToHexString(read2.Content);
ssjDevice.setKx(ParseUtil.optInt(0, ddsx1)); ssjDevice.setKx(ParseUtil.optInt(0, ddsx1));
ssjDevice.setDw(ParseUtil.optInt(1, ddsx1)); ssjDevice.setDw(ParseUtil.optInt(2, ddsx1));
ssjDevice.setRkqq(ParseUtil.optInt(2, ddsx1)); ssjDevice.setRkqq(ParseUtil.optInt(4, ddsx1));
ssjDevice.setTrayCode(ParseUtil.optString(3, ddsx1)); ssjDevice.setTaskNo(ParseUtil.optDInt(6, ddsx1));
ssjDevice.setTaskNo(ParseUtil.optDInt(4, ddsx1)); ssjDevice.setTrayCode(ParseUtil.optString(10, ddsx1));
} }
} }
@@ -497,15 +498,15 @@ public class PlcRead implements Runnable {
* @param ssjDevice * @param ssjDevice
*/ */
private void readPlcOutSsj(DeviceSsj ssjDevice) { private void readPlcOutSsj(DeviceSsj ssjDevice) {
OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("18")); OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("24"));
String ddsx1 = "0"; String ddsx1 = "0";
if (read2.IsSuccess) { if (read2.IsSuccess) {
ddsx1 = SoftBasic.ByteToHexString(read2.Content); ddsx1 = SoftBasic.ByteToHexString(read2.Content);
ssjDevice.setKx(ParseUtil.optInt(0, ddsx1)); ssjDevice.setKx(ParseUtil.optInt(0, ddsx1));
ssjDevice.setDw(ParseUtil.optInt(1, ddsx1)); ssjDevice.setDw(ParseUtil.optInt(2, ddsx1));
ssjDevice.setRkqq(ParseUtil.optInt(2, ddsx1)); ssjDevice.setRkqq(ParseUtil.optInt(4, ddsx1));
ssjDevice.setTrayCode(ParseUtil.optString(3, ddsx1)); ssjDevice.setTaskNo(ParseUtil.optDInt(6, ddsx1));
ssjDevice.setTaskNo(ParseUtil.optDInt(4, ddsx1)); ssjDevice.setTrayCode(ParseUtil.optString(10, ddsx1));
} }
} }

View File

@@ -1,30 +0,0 @@
package com.ruoyi.schedule.plcRead.ssj.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Ssj {
private String deviceCode;
private String plcReadAddress;
private String plcWriteAddress;
//输送机类型:1-出库 2-拣选 3-入库 4-其他
private String type;
//空闲 0-否 1-是
private Integer empty;
//到位 0-否 1-是
private Integer inPlace;
//入库请求 0-否 1-是
private Integer entryRequest;
//条码
private String trayCode;
//任务号
private Integer taskNo;
}

View File

@@ -12,11 +12,13 @@ import com.ruoyi.api.domain.wcs2wms.MydoJob;
import com.ruoyi.api.service.IApiService; import com.ruoyi.api.service.IApiService;
import com.ruoyi.device.ssj.domain.DeviceSsj; import com.ruoyi.device.ssj.domain.DeviceSsj;
import com.ruoyi.schedule.plcRead.ssj.PlcRead; import com.ruoyi.schedule.plcRead.ssj.PlcRead;
import com.ruoyi.schedule.plcRead.ssj.domain.Ssj;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@@ -25,7 +27,7 @@ import java.util.concurrent.ConcurrentHashMap;
@Component @Component
public class InSsjThread { public class InSsjThread {
public ConcurrentHashMap<String, DeviceSsj> deviceMap; public HashMap<String, List<String>> ssjCodeList;
@Resource @Resource
private IApiService apiService; private IApiService apiService;
@@ -33,15 +35,26 @@ public class InSsjThread {
private IAgvQueueService agvQueueService; private IAgvQueueService agvQueueService;
public void run(){ @PostConstruct
for (String ssjCode : PlcRead.deviceMap.keySet()) { public void init() {
DeviceSsj deviceSsj = PlcRead.deviceMap.get(ssjCode); //todo 获取设备编码列表
if ("3".equals(deviceSsj.getType())){ ssjCodeList = new HashMap<>();
inDispatch(deviceSsj);
}
}
} }
public void run() {
for (String type : ssjCodeList.keySet()) {
if ("in".equals(type)) {
for (String ssjCode : ssjCodeList.get(type)) {
if (PlcRead.deviceMap.containsKey(ssjCode)) {
inDispatch(PlcRead.deviceMap.get(ssjCode));
} else {
log.error("设备不存在 ssjCode{}", ssjCode);
}
}
}
}
}
public void inDispatch(DeviceSsj inSsjDevice) { public void inDispatch(DeviceSsj inSsjDevice) {

View File

@@ -9,11 +9,13 @@ import com.ruoyi.api.domain.wcs2wms.MydoJob;
import com.ruoyi.api.service.IApiService; import com.ruoyi.api.service.IApiService;
import com.ruoyi.device.ssj.domain.DeviceSsj; import com.ruoyi.device.ssj.domain.DeviceSsj;
import com.ruoyi.schedule.plcRead.ssj.PlcRead; import com.ruoyi.schedule.plcRead.ssj.PlcRead;
import com.ruoyi.schedule.plcRead.ssj.domain.Ssj;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@@ -22,18 +24,30 @@ import java.util.concurrent.ConcurrentHashMap;
@Component @Component
public class OutSsjThread { public class OutSsjThread {
public ConcurrentHashMap<String, DeviceSsj> deviceMap; public HashMap<String, List<String>> ssjCodeList;
@Resource @Resource
private IApiService apiService; private IApiService apiService;
@Resource @Resource
private IAgvQueueService agvQueueService; private IAgvQueueService agvQueueService;
@PostConstruct
public void init() {
//todo 获取设备编码列表
ssjCodeList = new HashMap<>();
}
public void run() { public void run() {
for (String ssjCode : PlcRead.deviceMap.keySet()) { for (String type : ssjCodeList.keySet()) {
DeviceSsj deviceSsj = PlcRead.deviceMap.get(ssjCode); if ("out".equals(type)) {
if ("1".equals(deviceSsj.getType())){ for (String ssjCode : ssjCodeList.get(type)) {
outDispatch(deviceSsj); if (PlcRead.deviceMap.containsKey(ssjCode)) {
outDispatch(PlcRead.deviceMap.get(ssjCode));
} else {
log.error("设备不存在 ssjCode{}", ssjCode);
}
}
} }
} }
} }

View File

@@ -7,11 +7,14 @@ import com.ruoyi.api.domain.wcs2wms.MydoJob;
import com.ruoyi.api.service.IApiService; import com.ruoyi.api.service.IApiService;
import com.ruoyi.device.ssj.domain.DeviceSsj; import com.ruoyi.device.ssj.domain.DeviceSsj;
import com.ruoyi.schedule.plcRead.ssj.PlcRead; import com.ruoyi.schedule.plcRead.ssj.PlcRead;
import com.ruoyi.schedule.plcRead.ssj.domain.Ssj;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@@ -20,18 +23,32 @@ import java.util.concurrent.ConcurrentHashMap;
@Component @Component
public class PickSsjTread { public class PickSsjTread {
public ConcurrentHashMap<String, DeviceSsj> deviceMap; public HashMap<String, List<String>> ssjCodeList;
@Resource @Resource
private IApiService apiService; private IApiService apiService;
@Resource @Resource
private IAgvQueueService agvQueueService; private IAgvQueueService agvQueueService;
@PostConstruct
public void init() {
//todo 获取设备编码列表
ssjCodeList = new HashMap<>();
}
@Scheduled(fixedDelay = 5000)
public void run(){ public void run(){
for (String ssjCode : PlcRead.deviceMap.keySet()) { for (String type : ssjCodeList.keySet()) {
DeviceSsj deviceSsj = PlcRead.deviceMap.get(ssjCode); if ("pick".equals(type)) {
if ("2".equals(deviceSsj.getType())){ for (String ssjCode : ssjCodeList.get(type)) {
pickDispatch(deviceSsj); if (PlcRead.deviceMap.containsKey(ssjCode)) {
pickDispatch(PlcRead.deviceMap.get(ssjCode));
} else {
log.error("设备不存在 ssjCode{}", ssjCode);
}
}
} }
} }
} }