From fb992077a4e575c95bb7a4939476e15bd67a5b77 Mon Sep 17 00:00:00 2001
From: lsh <lsh>
Date: 星期四, 23 五月 2024 16:22:56 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/model/JarSlave.java | 49 ++++
src/main/java/com/zy/asrs/service/BasJarService.java | 8
src/main/java/com/zy/core/thread/JarThread.java | 168 +++++++++++++++
src/main/resources/mapper/BasJarMapper.xml | 25 ++
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 1
src/main/java/com/zy/asrs/mapper/BasJarMapper.java | 12 +
src/main/java/com/zy/core/model/protocol/JarProtocol.java | 107 +++++++++
src/main/java/com/zy/core/enums/JarStatusType.java | 43 +++
src/main/java/com/zy/asrs/entity/BasJar.java | 161 ++++++++++++++
src/main/java/com/zy/common/CodeBuilder.java | 4
src/main/java/com/zy/core/ServerBootstrap.java | 43 ++-
src/main/java/com/zy/core/properties/SlaveProperties.java | 9
src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java | 12 +
src/main/java/com/zy/core/enums/SlaveType.java | 3
14 files changed, 626 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/BasJar.java b/src/main/java/com/zy/asrs/entity/BasJar.java
new file mode 100644
index 0000000..f4e48b3
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/BasJar.java
@@ -0,0 +1,161 @@
+package com.zy.asrs.entity;
+
+import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.baomidou.mybatisplus.annotations.TableField;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.io.Serializable;
+
+@Data
+@TableName("asr_bas_jar")
+public class BasJar implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * JAR缂栧彿
+ */
+ @ApiModelProperty(value= "JAR缂栧彿")
+ @TableId(value = "jar_no", type = IdType.INPUT)
+ @TableField("jar_no")
+ private Integer jarNo;
+
+ /**
+ * 鍖哄煙
+ */
+ @ApiModelProperty(value= "鍖哄煙")
+ private Integer region;
+
+ /**
+ * 浠e彿
+ */
+ @ApiModelProperty(value= "浠e彿")
+ @TableField("jar_code")
+ private Integer jarCode;
+
+ /**
+ * 瀵瑰簲鍑哄簱绔�
+ */
+ @ApiModelProperty(value= "瀵瑰簲鍑哄簱绔�")
+ @TableField("sta_no")
+ private Integer staNo;
+
+ /**
+ * 鐘舵��
+ */
+ @ApiModelProperty(value= "鐘舵��")
+ @TableField("jar_status")
+ private Integer jarStatus;
+
+ /**
+ * 搴撳瓨鏁�
+ */
+ @ApiModelProperty(value= "搴撳瓨鏁�")
+ @TableField("jar_count")
+ private Integer jarCount;
+
+ /**
+ * 寮傚父浠g爜
+ */
+ @ApiModelProperty(value= "寮傚父浠g爜")
+ @TableField("jar_err")
+ private Integer jarErr;
+
+ /**
+ * 宸﹂棬(checkBox)
+ */
+ @ApiModelProperty(value= "宸﹂棬(checkBox)")
+ @TableField("left_door")
+ private String leftDoor;
+
+ /**
+ * 鍙抽棬(checkBox)
+ */
+ @ApiModelProperty(value= "鍙抽棬(checkBox)")
+ @TableField("right_door")
+ private String rightDoor;
+
+ /**
+ * 宸﹂棬鍙紑(checkBox)
+ */
+ @ApiModelProperty(value= "宸﹂棬鍙紑(checkBox)")
+ @TableField("left_in_enable")
+ private String leftInEnable;
+
+ /**
+ * 宸﹂棬鍙叧(checkBox)
+ */
+ @ApiModelProperty(value= "宸﹂棬鍙叧(checkBox)")
+ @TableField("left_out_enable")
+ private String leftOutEnable;
+
+ /**
+ * 鑷姩(checkBox)
+ */
+ @ApiModelProperty(value= "鑷姩(checkBox)")
+ private String autoing;
+
+ /**
+ * 妯″紡
+ */
+ @ApiModelProperty(value= "妯″紡")
+ @TableField("jar_mode")
+ private Integer jarMode;
+
+ /**
+ * 鍙抽棬鍙紑(checkBox)
+ */
+ @ApiModelProperty(value= "鍙抽棬鍙紑(checkBox)")
+ @TableField("right_in_enable")
+ private String rightInEnable;
+
+ /**
+ * 鍙抽棬鍙叧(checkBox)
+ */
+ @ApiModelProperty(value= "鍙抽棬鍙叧(checkBox)")
+ @TableField("right_out_enable")
+ private String rightOutEnable;
+
+ public BasJar() {}
+
+ public BasJar(Integer jarNo,Integer region,Integer jarCode,Integer staNo,Integer jarStatus,Integer jarCount,Integer jarErr,String leftDoor,String rightDoor,String leftInEnable,String leftOutEnable,String autoing,Integer jarMode,String rightInEnable,String rightOutEnable) {
+ this.jarNo = jarNo;
+ this.region = region;
+ this.jarCode = jarCode;
+ this.staNo = staNo;
+ this.jarStatus = jarStatus;
+ this.jarCount = jarCount;
+ this.jarErr = jarErr;
+ this.leftDoor = leftDoor;
+ this.rightDoor = rightDoor;
+ this.leftInEnable = leftInEnable;
+ this.leftOutEnable = leftOutEnable;
+ this.autoing = autoing;
+ this.jarMode = jarMode;
+ this.rightInEnable = rightInEnable;
+ this.rightOutEnable = rightOutEnable;
+ }
+
+// BasJar basJar = new BasJar(
+// null, // JAR缂栧彿[闈炵┖]
+// null, // 鍖哄煙
+// null, // 浠e彿
+// null, // 瀵瑰簲鍑哄簱绔�
+// null, // 鐘舵��
+// null, // 搴撳瓨鏁�
+// null, // 寮傚父浠g爜
+// null, // 宸﹂棬(checkBox)
+// null, // 鍙抽棬(checkBox)
+// null, // 宸﹂棬鍙紑(checkBox)
+// null, // 宸﹂棬鍙叧(checkBox)
+// null, // 鑷姩(checkBox)
+// null, // 妯″紡
+// null, // 鍙抽棬鍙紑(checkBox)
+// null // 鍙抽棬鍙叧(checkBox)
+// );
+
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/BasJarMapper.java b/src/main/java/com/zy/asrs/mapper/BasJarMapper.java
new file mode 100644
index 0000000..4c841c4
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/BasJarMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.mapper;
+
+import com.zy.asrs.entity.BasJar;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface BasJarMapper extends BaseMapper<BasJar> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/BasJarService.java b/src/main/java/com/zy/asrs/service/BasJarService.java
new file mode 100644
index 0000000..54a383f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/BasJarService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.service;
+
+import com.zy.asrs.entity.BasJar;
+import com.baomidou.mybatisplus.service.IService;
+
+public interface BasJarService extends IService<BasJar> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java
new file mode 100644
index 0000000..7be688b
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.zy.asrs.mapper.BasJarMapper;
+import com.zy.asrs.entity.BasJar;
+import com.zy.asrs.service.BasJarService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("basJarService")
+public class BasJarServiceImpl extends ServiceImpl<BasJarMapper, BasJar> implements BasJarService {
+
+}
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 def7a6f..e7993b7 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -5465,6 +5465,7 @@
* */
public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd){
if (true){
+ basRgvMapMapper.updateById(basRgvMapCurrent);
return true;
}
diff --git a/src/main/java/com/zy/common/CodeBuilder.java b/src/main/java/com/zy/common/CodeBuilder.java
index 33131f2..14b29f3 100644
--- a/src/main/java/com/zy/common/CodeBuilder.java
+++ b/src/main/java/com/zy/common/CodeBuilder.java
@@ -17,10 +17,10 @@
// generator.table="sys_host";
// sqlserver
generator.sqlOsType = SqlOsType.SQL_SERVER;
- generator.url="localhost:1433;databasename=xjhsasrs";
+ generator.url="10.10.10.254:1433;databasename=ahyxasrs";
generator.username="sa";
generator.password="sa@123";
- generator.table="asr_bas_rgv_err_log";
+ generator.table="asr_bas_jar";
generator.packagePath="com.zy.asrs";
generator.controller = false;
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 7600ceb..51b4378 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -3,10 +3,7 @@
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
-import com.zy.core.model.CrnSlave;
-import com.zy.core.model.DevpSlave;
-import com.zy.core.model.LedSlave;
-import com.zy.core.model.RgvSlave;
+import com.zy.core.model.*;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.*;
import lombok.extern.slf4j.Slf4j;
@@ -60,7 +57,7 @@
for (Slave crn : slaveProperties.getCrn()) {
MessageQueue.init(SlaveType.Crn, crn);
}
- // 鍒濆鍖栧爢鍨涙満mq
+ // 鍒濆鍖朢GVmq
for (Slave rgv : slaveProperties.getRgv()) {
MessageQueue.init(SlaveType.Rgv, rgv);
}
@@ -80,10 +77,18 @@
for (Slave scale : slaveProperties.getScale()) {
MessageQueue.init(SlaveType.Scale, scale);
}
+ // 鍒濆鍖栫~鍖栫綈mq
+ for (Slave jar : slaveProperties.getJar()) {
+ MessageQueue.init(SlaveType.Jar, jar);
+ }
// // 鍒濆鍖栧彴杞q
// for (Slave car : slaveProperties.getCar()) {
// MessageQueue.init(SlaveType.Car, car);
// }
+ // 鍒濆鍖朣temq
+ for (Slave ste : slaveProperties.getSte()) {
+ MessageQueue.init(SlaveType.Ste, ste);
+ }
}
private void initThread(){
@@ -96,13 +101,13 @@
map.put(crnThread, thread);
SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread);
}
-// // 鍒濆鍖栫┛姊溅绾跨▼
-// log.info("鍒濆鍖朢GV绾跨▼...................................................");
-// for (RgvSlave rgv : slaveProperties.getRgv()) {
-// RgvThread rgvThread = new RgvThread(rgv);
-// new Thread((Runnable) rgvThread).start();
-// SlaveConnection.put(SlaveType.Rgv, rgv.getId(), rgvThread);
-// }
+ // 鍒濆鍖栫┛姊溅绾跨▼
+ log.info("鍒濆鍖朢GV绾跨▼...................................................");
+ for (RgvSlave rgv : slaveProperties.getRgv()) {
+ RgvThread rgvThread = new RgvThread(rgv);
+ new Thread((Runnable) rgvThread).start();
+ SlaveConnection.put(SlaveType.Rgv, rgv.getId(), rgvThread);
+ }
// 鍒濆鍖栬緭閫佺嚎绾跨▼
log.info("鍒濆鍖栬緭閫佺嚎绾跨▼...................................................");
for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -125,6 +130,20 @@
new Thread(ledThread).start();
SlaveConnection.put(SlaveType.Led, led.getId(), ledThread);
}
+ // 鍒濆鍖杍ar绾跨▼
+ log.info("鍒濆鍖杍ar绾跨▼...................................................");
+ for (JarSlave jar : slaveProperties.getJar()) {
+ JarThread jarThread = new JarThread(jar);
+ new Thread(jarThread).start();
+ SlaveConnection.put(SlaveType.Jar, jar.getId(), jarThread);
+ }
+ // 鍒濆鍖朣te绾跨▼
+ log.info("鍒濆鍖杝te绾跨▼...................................................");
+ for (SteSlave ste : slaveProperties.getSte()) {
+ SteThread steThread = new SteThread(ste);
+ new Thread(steThread).start();
+ SlaveConnection.put(SlaveType.Ste, ste.getId(), steThread);
+ }
// 鍒濆鍖栫绉ょ嚎绋�
// log.info("鍒濆鍖栫绉ょ嚎绋�...................................................");
// for (Slave scale : slaveProperties.getScale()) {
diff --git a/src/main/java/com/zy/core/enums/JarStatusType.java b/src/main/java/com/zy/core/enums/JarStatusType.java
new file mode 100644
index 0000000..9f522cb
--- /dev/null
+++ b/src/main/java/com/zy/core/enums/JarStatusType.java
@@ -0,0 +1,43 @@
+package com.zy.core.enums;
+
+public enum JarStatusType {
+
+ IDLE(0, "绌洪棽"),
+ MOVING(1, "浣滀笟涓�"),
+ SOS(2, "鎶ヨ"),
+ WAITING(10, "绛夊緟纭"),
+ OFF_LINE(-1, "鏈煡"),
+ OTHER(100, "鍏跺畠"),
+ ;
+
+ public Integer id;
+ public String desc;
+ JarStatusType(Integer id, String desc) {
+ this.id = id;
+ this.desc = desc;
+ }
+
+ public static JarStatusType get(Short id) {
+ if (null == id) {
+ return null;
+ }
+ for (JarStatusType type : JarStatusType.values()) {
+ if (type.id.equals(id.intValue())) {
+ return type;
+ }
+ }
+ return OFF_LINE;
+ }
+
+ public static JarStatusType get(JarStatusType type) {
+ if (null == type) {
+ return null;
+ }
+ for (JarStatusType jarStatusType : JarStatusType.values()) {
+ if (jarStatusType == type) {
+ return jarStatusType;
+ }
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/zy/core/enums/SlaveType.java b/src/main/java/com/zy/core/enums/SlaveType.java
index 02f42af..2896dc6 100644
--- a/src/main/java/com/zy/core/enums/SlaveType.java
+++ b/src/main/java/com/zy/core/enums/SlaveType.java
@@ -9,7 +9,8 @@
Scale,
Car,
Rgv,
- Ste
+ Ste,
+ Jar
;
public static SlaveType findInstance(String s){
diff --git a/src/main/java/com/zy/core/model/JarSlave.java b/src/main/java/com/zy/core/model/JarSlave.java
new file mode 100644
index 0000000..9ced301
--- /dev/null
+++ b/src/main/java/com/zy/core/model/JarSlave.java
@@ -0,0 +1,49 @@
+package com.zy.core.model;
+
+import com.zy.core.Slave;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/8/10
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class JarSlave extends Slave {
+
+ private Integer rack;
+
+ private Integer slot;
+
+ private Boolean demo;
+
+ // 绌挎杞﹀叆搴撶珯鐐�
+ private List<CrnStn> steInStn = new ArrayList<>();
+
+ // 绌挎杞﹀嚭搴撶珯鐐�
+ private List<CrnStn> steOutStn = new ArrayList<>();
+
+ @Data
+ public static class CrnStn {
+
+ // 杈撻�佺嚎plc缂栧彿
+ private Integer devpPlcId;
+
+ // 绌挎杞︾珯鐐圭紪鍙�
+ private Integer staNo;
+
+ // 鎺�
+ private Integer row;
+
+ // 鍒�
+ private Integer bay;
+
+ // 灞�
+ private Integer lev;
+
+ }
+
+}
diff --git a/src/main/java/com/zy/core/model/protocol/JarProtocol.java b/src/main/java/com/zy/core/model/protocol/JarProtocol.java
new file mode 100644
index 0000000..0488b50
--- /dev/null
+++ b/src/main/java/com/zy/core/model/protocol/JarProtocol.java
@@ -0,0 +1,107 @@
+package com.zy.core.model.protocol;
+
+import com.zy.asrs.entity.BasJar;
+import com.zy.core.enums.JarStatusType;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * Created by vincent on 2020/8/7
+ */
+@Slf4j
+@Data
+public class JarProtocol {
+
+ /**
+ * 璁惧鍙�
+ */
+ private Integer jarNo;
+
+ /**
+ * 1 = 鑱旀満妯″紡
+ * 0 = 鑴辨満妯″紡
+ */
+ public Integer mode;
+
+ /**
+ IDLE(0, "绌洪棽"),
+ MOVING(1, "浣滀笟涓�"),
+ SOS(2, "鎶ヨ"),
+ WAITING(3, "浠诲姟瀹屾垚绛夊緟WCS纭"),
+ */
+ public Short status;
+
+ public JarStatusType statusType;
+
+ /*
+ * 宸﹂棬鐘舵��
+ * */
+ private boolean leftDoor;
+
+ /*
+ * 鍙抽棬鐘舵��
+ * */
+ private boolean rightDoor;
+
+ /*
+ * 宸﹂棬鍙紑
+ * */
+ private boolean leftInEnable;
+
+ /*
+ * 宸﹂棬鍙叧
+ * */
+ private boolean leftOutEnable;
+
+ /*
+ * 鍙抽棬鍙紑
+ * */
+ private boolean rightInEnable;
+
+ /*
+ * 鍙抽棬鍙叧
+ * */
+ private boolean rightOutEnable;
+
+ /*
+ * 鑷姩
+ * */
+ private boolean autoing;
+
+
+ /**
+ * 寮傚父鐮�
+ */
+ public Integer jarErr = 0;
+
+ public void setStatus(Short status){
+ this.status = status;
+ this.statusType = JarStatusType.get(status);
+ }
+
+ public void setStatus(JarStatusType type){
+ this.statusType = type;
+ this.status = JarStatusType.get(type).id.shortValue();
+ }
+
+
+ public BasJar toSqlModel(BasJar basJar){
+ if (jarErr!=null) {
+ basJar.setJarErr(jarErr);
+ }
+ basJar.setJarMode(mode);
+// if (basSte.getPakMk().equals("N")) {
+// if (!Cools.isEmpty(row)) {
+// basSte.setRow(row.intValue());
+// }
+// if (!Cools.isEmpty(bay)) {
+// basSte.setBay(bay.intValue());
+// }
+// if (!Cools.isEmpty(lev)) {
+// basSte.setLev(lev.intValue());
+// }
+// }
+ return basJar;
+ }
+
+}
diff --git a/src/main/java/com/zy/core/properties/SlaveProperties.java b/src/main/java/com/zy/core/properties/SlaveProperties.java
index 68d2e55..b026c1b 100644
--- a/src/main/java/com/zy/core/properties/SlaveProperties.java
+++ b/src/main/java/com/zy/core/properties/SlaveProperties.java
@@ -1,10 +1,7 @@
package com.zy.core.properties;
import com.zy.core.Slave;
-import com.zy.core.model.CrnSlave;
-import com.zy.core.model.DevpSlave;
-import com.zy.core.model.LedSlave;
-import com.zy.core.model.RgvSlave;
+import com.zy.core.model.*;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@@ -47,4 +44,8 @@
private List<Slave> car = new ArrayList<>();
+ private List<JarSlave> jar = new ArrayList<>();
+
+ private List<SteSlave> Ste = new ArrayList<>();
+
}
diff --git a/src/main/java/com/zy/core/thread/JarThread.java b/src/main/java/com/zy/core/thread/JarThread.java
new file mode 100644
index 0000000..1268aff
--- /dev/null
+++ b/src/main/java/com/zy/core/thread/JarThread.java
@@ -0,0 +1,168 @@
+package com.zy.core.thread;
+
+import HslCommunication.Core.Types.OperateResult;
+import HslCommunication.Core.Types.OperateResultExOne;
+import HslCommunication.Profinet.Siemens.SiemensPLCS;
+import HslCommunication.Profinet.Siemens.SiemensS7Net;
+import com.core.common.DateUtils;
+import com.core.common.SpringUtils;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.BasJar;
+import com.zy.asrs.service.BasJarService;
+import com.zy.core.News;
+import com.zy.core.ThreadHandler;
+import com.zy.core.cache.MessageQueue;
+import com.zy.core.cache.OutputQueue;
+import com.zy.core.enums.JarStatusType;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.JarSlave;
+import com.zy.core.model.Task;
+import com.zy.core.model.protocol.JarProtocol;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.MessageFormat;
+import java.util.Date;
+
+/**
+ * shuttle 纭寲缃愮嚎绋�
+ * Created by vincent on 2020/8/4
+ * 涓嶈兘鏈� 妲藉彿 鍜� 鏈烘灦鍙�
+ */
+@Data
+@Slf4j
+public class JarThread implements Runnable, ThreadHandler {
+
+ private SiemensS7Net siemensS7Net;
+ private JarSlave slave;
+ private JarProtocol jarProtocol;
+ private short heartBeatVal = 1;
+
+ public JarThread(JarSlave slave) {
+ this.slave = slave;
+ }
+
+ @Override
+ @SuppressWarnings("InfiniteLoopStatement")
+ public void run() {
+ this.connect();
+ while (true) {
+ try {
+ int step = 1;
+ Task task = MessageQueue.poll(SlaveType.Jar, slave.getId());
+ if (task != null) {
+ step = task.getStep();
+ }
+ switch (step) {
+ // 璇绘暟鎹�
+ case 1:
+ readStatus();
+ break;
+ default:
+ break;
+ }
+ // 蹇冭烦
+// heartbeat();
+ Thread.sleep(500);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+ }
+
+ /**
+ * 鍒濆鍖栧爢鍨涙満鐘舵��
+ */
+ private void initSte() {
+ if (null == jarProtocol) {
+ jarProtocol = new JarProtocol();
+ }
+ jarProtocol.setJarNo(slave.getId());
+ jarProtocol.setMode( 0);
+ jarProtocol.setStatus(JarStatusType.OFF_LINE);
+ jarProtocol.setJarErr(0);
+ }
+
+ @Override
+ public boolean connect() {
+ boolean result = false;
+ // 涓嶈兘鏈� 妲藉彿 鍜� 鏈烘灦鍙�
+ siemensS7Net = new SiemensS7Net(SiemensPLCS.S200Smart, slave.getIp());
+// siemensS7Net.setRack(slave.getRack().byteValue());
+// siemensS7Net.setSlot(slave.getSlot().byteValue());
+ OperateResult connect = siemensS7Net.ConnectServer();
+ if(connect.IsSuccess){
+ result = true;
+ OutputQueue.STE.offer(MessageFormat.format( "銆恵0}銆戠~鍖栫綈plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ News.info("纭寲缃恜lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ } else {
+ OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆戠~鍖栫綈plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] ", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ News.error("纭寲缃恜lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ initSte();
+ }
+// melsecMcNet.ConnectClose();
+ return result;
+ }
+
+ /**
+ * 璇诲彇鐘舵��
+ */
+ private void readStatus(){
+ try {
+ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) 10);
+ if (result.IsSuccess) {
+ if (null == jarProtocol) {
+ jarProtocol = new JarProtocol();
+ jarProtocol.setJarNo(slave.getId());
+ }
+ jarProtocol.setMode(siemensS7Net.getByteTransform().TransInt32(result.Content, 2));
+ jarProtocol.setStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 4));
+
+ // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+ BasJarService service = SpringUtils.getBean(BasJarService.class);
+ if (null != service) {
+ // 鍚屾pakMk
+ BasJar one = service.selectById(slave.getId());
+
+ BasJar basJar = new BasJar();
+ basJar.setJarNo(slave.getId());
+ if (!service.updateById(jarProtocol.toSqlModel(basJar))){
+ News.error("纭寲缃恜lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ }
+
+ }
+ } else {
+ OutputQueue.STE.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.STE.offer(MessageFormat.format("銆恵0}銆戣鍙栫~鍖栫綈plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+// News.error("璇诲彇绌挎杞lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ initSte();
+ }
+
+ }
+
+ @Override
+ public void close() {
+// siemensS7Net.ConnectClose();
+ }
+
+ /**
+ * 蹇冭烦
+ */
+ private void heartbeat(){
+ if (heartBeatVal == 1) {
+ heartBeatVal = 2;
+ } else {
+ heartBeatVal = 1;
+ }
+ OperateResult write = siemensS7Net.Write("D10", heartBeatVal);
+ if (!write.IsSuccess) {
+ News.error("纭寲缃恜lc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
+ }
+ }
+
+}
diff --git a/src/main/resources/mapper/BasJarMapper.xml b/src/main/resources/mapper/BasJarMapper.xml
new file mode 100644
index 0000000..0b91213
--- /dev/null
+++ b/src/main/resources/mapper/BasJarMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.BasJarMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasJar">
+ <result column="jar_no" property="jarNo" />
+ <result column="region" property="region" />
+ <result column="jar_code" property="jarCode" />
+ <result column="sta_no" property="staNo" />
+ <result column="jar_status" property="jarStatus" />
+ <result column="jar_count" property="jarCount" />
+ <result column="jar_err" property="jarErr" />
+ <result column="left_door" property="leftDoor" />
+ <result column="right_door" property="rightDoor" />
+ <result column="left_in_enable" property="leftInEnable" />
+ <result column="left_out_enable" property="leftOutEnable" />
+ <result column="autoing" property="autoing" />
+ <result column="jar_mode" property="jarMode" />
+ <result column="right_in_enable" property="rightInEnable" />
+ <result column="right_out_enable" property="rightOutEnable" />
+
+ </resultMap>
+
+</mapper>
--
Gitblit v1.9.1