diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index a5b62cd..f9cf070 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -15,6 +15,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) @EnableScheduling @EnableAsync +@MapperScan("com.ruoyi.**.mapper") public class RuoYiApplication { public static void main(String[] args) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java index 6819df8..87e4b74 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java @@ -576,7 +576,7 @@ public class ApiServiceImpl implements IApiService { genAgvSchedulingTaskRequest.setTaskTyp("F01"); genAgvSchedulingTaskRequest.setCtnrCode("0"); genAgvSchedulingTaskRequest.setCtnrNum("0"); - genAgvSchedulingTaskRequest.setTaskMode("0"); +// genAgvSchedulingTaskRequest.setTaskMode("0"); genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getWmsTaskNo()); genAgvSchedulingTaskRequest.setAgvTyp("CTU"); genAgvSchedulingTaskRequest.setPositionSelStrategy("0"); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java b/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java index a0e7305..1b1af8d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java @@ -72,5 +72,8 @@ public class DeviceSsj extends BaseEntity @Excel(name = "任务号") private int taskNo; + @Excel(name = "校验码反馈") + private Integer checksum; + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcRead.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcRead.java index c82e531..fa9e6b2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcRead.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcRead.java @@ -86,15 +86,15 @@ public class PlcRead implements Runnable { * @param ssjDevice */ private void readPlcOtherSsj(DeviceSsj ssjDevice) { - OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("20")); + OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("40")); String ddsx1 = "0"; if (read2.IsSuccess) { ddsx1 = SoftBasic.ByteToHexString(read2.Content); - ssjDevice.setKx(ParseUtil.optInt(0, ddsx1)); - ssjDevice.setDw(ParseUtil.optInt(2, ddsx1)); - ssjDevice.setRkqq(ParseUtil.optInt(4, ddsx1)); - ssjDevice.setTaskNo(ParseUtil.optDInt(6, ddsx1)); - ssjDevice.setTrayCode(ParseUtil.optString(10, ddsx1)); + ssjDevice.setTaskNo(ParseUtil.optDInt(0, ddsx1)); + ssjDevice.setTrayCode(ParseUtil.optString(4, ddsx1)); + ssjDevice.setKx(ParseUtil.optInt(34, ddsx1)); + ssjDevice.setDw(ParseUtil.optInt(36, ddsx1)); + ssjDevice.setChecksum(ParseUtil.optInt(38, ddsx1)); } } @@ -104,15 +104,15 @@ public class PlcRead implements Runnable { * @param ssjDevice */ private void readPlcInSsj(DeviceSsj ssjDevice) { - OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("20")); + OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("40")); String ddsx1 = "0"; if (read2.IsSuccess) { ddsx1 = SoftBasic.ByteToHexString(read2.Content); - ssjDevice.setKx(ParseUtil.optInt(0, ddsx1)); - ssjDevice.setDw(ParseUtil.optInt(2, ddsx1)); - ssjDevice.setRkqq(ParseUtil.optInt(4, ddsx1)); - ssjDevice.setTaskNo(ParseUtil.optDInt(6, ddsx1)); - ssjDevice.setTrayCode(ParseUtil.optString(12, ddsx1)); + ssjDevice.setTaskNo(ParseUtil.optDInt(0, ddsx1)); + ssjDevice.setTrayCode(ParseUtil.optString(4, ddsx1)); + ssjDevice.setKx(ParseUtil.optInt(34, ddsx1)); + ssjDevice.setDw(ParseUtil.optInt(36, ddsx1)); + ssjDevice.setChecksum(ParseUtil.optInt(38, ddsx1)); } } @@ -122,15 +122,15 @@ public class PlcRead implements Runnable { * @param ssjDevice */ private void readPlcPickSsj(DeviceSsj ssjDevice) { - OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("20")); + OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("40")); String ddsx1 = "0"; if (read2.IsSuccess) { ddsx1 = SoftBasic.ByteToHexString(read2.Content); - ssjDevice.setKx(ParseUtil.optInt(0, ddsx1)); - ssjDevice.setDw(ParseUtil.optInt(2, ddsx1)); - ssjDevice.setRkqq(ParseUtil.optInt(4, ddsx1)); - ssjDevice.setTaskNo(ParseUtil.optDInt(6, ddsx1)); - ssjDevice.setTrayCode(ParseUtil.optString(10, ddsx1)); + ssjDevice.setTaskNo(ParseUtil.optDInt(0, ddsx1)); + ssjDevice.setTrayCode(ParseUtil.optString(4, ddsx1)); + ssjDevice.setKx(ParseUtil.optInt(34, ddsx1)); + ssjDevice.setDw(ParseUtil.optInt(36, ddsx1)); + ssjDevice.setChecksum(ParseUtil.optInt(38, ddsx1)); } } @@ -140,15 +140,15 @@ public class PlcRead implements Runnable { * @param ssjDevice */ private void readPlcOutSsj(DeviceSsj ssjDevice) { - OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("20")); + OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("40")); String ddsx1 = "0"; if (read2.IsSuccess) { ddsx1 = SoftBasic.ByteToHexString(read2.Content); - ssjDevice.setKx(ParseUtil.optInt(0, ddsx1)); - ssjDevice.setDw(ParseUtil.optInt(2, ddsx1)); - ssjDevice.setRkqq(ParseUtil.optInt(4, ddsx1)); - ssjDevice.setTaskNo(ParseUtil.optDInt(6, ddsx1)); - ssjDevice.setTrayCode(ParseUtil.optString(10, ddsx1)); + ssjDevice.setTaskNo(ParseUtil.optDInt(0, ddsx1)); + ssjDevice.setTrayCode(ParseUtil.optString(4, ddsx1)); + ssjDevice.setKx(ParseUtil.optInt(34, ddsx1)); + ssjDevice.setDw(ParseUtil.optInt(36, ddsx1)); + ssjDevice.setChecksum(ParseUtil.optInt(38, ddsx1)); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcWrite.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcWrite.java new file mode 100644 index 0000000..e46ded7 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcWrite.java @@ -0,0 +1,193 @@ +package com.ruoyi.schedule.plcRead.ssj; + +import HslCommunication.Profinet.Siemens.SiemensPLCS; +import HslCommunication.Profinet.Siemens.SiemensS7Net; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class PlcWrite { + + /** + * plc1输送机ip地址 + */ + private static final String ADDRCONV1 = "192.168.56.20"; + private static final String ADDRCONV2 = "192.168.56.21"; + private static final String ADDRCONV3 = "192.168.56.22"; + + + /** + * 地址偏移值 + */ + int offset = 78; + + private static final String db5 = "DB5.DB"; + private static final String db6 = "DB6.DB"; + /** + * 向输送机写值 + * + * @param convNum 输送机编号 + * @param taskNo 任务号 + * @param Barcode 条码 + * @param checksum 校验码 + */ + public static void convWrite(String convNum, Integer taskNo, String Barcode, Integer checksum) + { + String ipAddress = ""; + int num = 0; + String db = ""; + try { + switch(convNum) + { +//************************************* plc1 ************************************* +//---------------------------DB5------------------------------- + case "G1003": + ipAddress = ADDRCONV1; + num = 0; + db = db5; + break; + case "G1006": + ipAddress = ADDRCONV1; + num = 1; + db = db5; + break; + case "G1009": + ipAddress = ADDRCONV1; + num = 2; + db = db5; + break; + case "G1012": + ipAddress = ADDRCONV1; + num = 3; + db = db5; + break; +//---------------------------DB6------------------------------- + case "G1004": + ipAddress = ADDRCONV1; + num = 0; + db = db6; + break; + case "G1010": + ipAddress = ADDRCONV1; + num = 1; + db = db6; + break; + +//************************************* plc2 ************************************* +//---------------------------DB5------------------------------- + case "G2006": + ipAddress = ADDRCONV2; + num = 0; + db = db5; + break; + case "G2012": + ipAddress = ADDRCONV2; + num = 1; + db = db5; + break; + case "G3009": + ipAddress = ADDRCONV2; + num = 2; + db = db5; + break; + case "G3018": + ipAddress = ADDRCONV2; + num = 3; + db = db5; + break; +//---------------------------DB6------------------------------- + case "G2001": + ipAddress = ADDRCONV2; + num = 0; + db = db6; + break; + case "G2007": + ipAddress = ADDRCONV2; + num = 1; + db = db6; + break; + case "G3001": + ipAddress = ADDRCONV2; + num = 2; + db = db6; + break; + case "G3010": + ipAddress = ADDRCONV2; + num = 3; + db = db6; + break; + +//************************************* plc3 ************************************* +//---------------------------DB5------------------------------- + case "G4009": + ipAddress = ADDRCONV3; + num = 0; + db = db5; + break; + case "G4018": + ipAddress = ADDRCONV3; + num = 1; + db = db5; + break; + case "G5009": + ipAddress = ADDRCONV3; + num = 2; + db = db5; + break; + case "G5018": + ipAddress = ADDRCONV3; + num = 3; + db = db5; + break; +//---------------------------DB6------------------------------- + case "G4001": + ipAddress = ADDRCONV3; + num = 0; + db = db6; + break; + case "G4010": + ipAddress = ADDRCONV3; + num = 1; + db = db6; + break; + case "G5001": + ipAddress = ADDRCONV3; + num = 2; + db = db6; + break; + case "G5010": + ipAddress = ADDRCONV3; + num = 3; + db = db6; + break; + } + + //非电控输送机空判断 + if (ipAddress.equals("") || ipAddress == null){ + log.info("无效操作:向" + convNum + "写入值"); + return; + } + + SiemensS7Net plc=new SiemensS7Net(SiemensPLCS.S1500, ipAddress); + plc.Write(db + "D" + (40 + 78 * num), taskNo); + plc.Write(db + "W" + (46 + 78 * num), Barcode); + plc.Write(db + "W" + (76 + 78 * num), checksum); + plc.Write(db + "W" + (44 + 78 * num), 1); + }catch(Exception e){ + int num1 = 0; + switch (ipAddress){ + case ADDRCONV1: + num1 = 1; + break; + case ADDRCONV2: + num1 = 2; + break; + case ADDRCONV3: + num1 = 3; + break; + } + log.info("输送机plc" + num1 + "写入异常,IP地址:" + ipAddress + "," + e.getMessage()); + } + + + } +} diff --git a/ruoyi-admin/src/main/resources/mapper/device/DeviceSsjMapper.xml b/ruoyi-admin/src/main/resources/mapper/device/DeviceSsjMapper.xml index 5b79323..6b5b108 100644 --- a/ruoyi-admin/src/main/resources/mapper/device/DeviceSsjMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/device/DeviceSsjMapper.xml @@ -6,8 +6,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - + +