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