src/main/java/com/zy/asrs/controller/SiteController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/DevpThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/pipeline.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/SiteController.java
@@ -4,15 +4,18 @@ import com.core.common.R; import com.zy.asrs.domain.vo.PlcErrorTableVo; import com.zy.asrs.domain.vo.SiteTableVo; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.SlaveType; import com.zy.core.model.DevpSlave; import com.zy.core.model.protocol.StaProtocol; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.DevpThread; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Random; import java.util.concurrent.atomic.AtomicInteger; import java.util.*; /** * 输送设备接口 @@ -22,31 +25,34 @@ @RequestMapping("/site") public class SiteController { private AtomicInteger integer = new AtomicInteger(); @Autowired private SlaveProperties slaveProperties; @PostMapping("/table/site") @ManagerAuth(memo = "站点信息表") public R siteTable(){ List<SiteTableVo> list = new ArrayList<>(); for (int i=0;i<32;i++){ SiteTableVo vo = new SiteTableVo(); vo.setDevNo(String.valueOf(i)); vo.setWorkNo("1204"); vo.setAutoing("Y"); vo.setCanining("Y"); vo.setCanouting("N"); vo.setHighLow("1"); vo.setInreqIn("Y"); vo.setInreqOut("N"); vo.setLoading("Y"); if (integer.get()%5 == 0) { vo.setStaNo("0000"); } else { vo.setStaNo("9998"); for (DevpSlave devp : slaveProperties.getDevp()) { DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); Map<Integer, StaProtocol> station = devpThread.getStation(); for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) { StaProtocol staProtocol = entry.getValue(); SiteTableVo vo = new SiteTableVo(); vo.setDevNo(entry.getKey()); // 站点编号 vo.setWorkNo(staProtocol.getWorkNo()); // 工作号 vo.setAutoing(staProtocol.isAutoing()?"Y":"N"); // 自动 vo.setLoading(staProtocol.isLoading()?"Y":"N"); // 有物 vo.setInEnable(staProtocol.isInEnable()?"Y":"N"); // 可入 vo.setOutEnable(staProtocol.isOutEnable()?"Y":"N"); // 可出 vo.setInreq1(staProtocol.isInreq1()?"Y":"N"); // 需求1 vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N"); // 空板信号 vo.setStaNo(staProtocol.getStaNo()); // 目标站 list.add(vo); } list.add(vo); } integer.getAndIncrement(); return R.ok().add(list); } src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
@@ -1,15 +1,18 @@ package com.zy.asrs.domain.vo; import lombok.Data; /** * Created by vincent on 2020-06-02 */ @Data public class SiteTableVo { // 站号 private String devNo; private Integer devNo; // 工作号 private String workNo; private Short workNo; // 自动 private String autoing; @@ -18,100 +21,18 @@ private String loading; // 可入 private String canining; private String inEnable; // 可出 private String canouting; private String outEnable; // 需求入 private String inreqIn; // 需求1 private String inreq1; // 需求出 private String inreqOut; // 高低库 private String highLow; // 空板信号 private String emptyMk; // 目标站 private String staNo; private Short staNo; public String getDevNo() { return devNo; } public void setDevNo(String devNo) { this.devNo = devNo; } public String getWorkNo() { return workNo; } public void setWorkNo(String workNo) { this.workNo = workNo; } public String getAutoing() { return autoing; } public void setAutoing(String autoing) { this.autoing = autoing; } public String getLoading() { return loading; } public void setLoading(String loading) { this.loading = loading; } public String getCanining() { return canining; } public void setCanining(String canining) { this.canining = canining; } public String getCanouting() { return canouting; } public void setCanouting(String canouting) { this.canouting = canouting; } public String getInreqIn() { return inreqIn; } public void setInreqIn(String inreqIn) { this.inreqIn = inreqIn; } public String getInreqOut() { return inreqOut; } public void setInreqOut(String inreqOut) { this.inreqOut = inreqOut; } public String getHighLow() { return highLow; } public void setHighLow(String highLow) { this.highLow = highLow; } public String getStaNo() { return staNo; } public void setStaNo(String staNo) { this.staNo = staNo; } } src/main/java/com/zy/core/thread/DevpThread.java
@@ -5,15 +5,19 @@ import HslCommunication.Profinet.Siemens.SiemensPLCS; import HslCommunication.Profinet.Siemens.SiemensS7Net; import com.alibaba.fastjson.JSON; import com.core.common.DateUtils; import com.zy.core.Slave; import com.zy.core.ThreadHandler; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; import com.zy.core.enums.SlaveType; 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.Date; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -56,6 +60,9 @@ default: break; } // 心跳 heartbeat(); Thread.sleep(400); } catch (Exception e) { e.printStackTrace(); @@ -73,8 +80,10 @@ OperateResult connect = siemensS7Net.ConnectServer(); if(connect.IsSuccess){ result = true; OutputQueue.CRN.offer(MessageFormat.format( "【{0}】输送线plc连接成功 ===>> [id:{}] [ip:{}] [port:{}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); log.info("输送线plc连接成功 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); } else { OutputQueue.CRN.offer(MessageFormat.format( "【{0}】输送线plc连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); log.error("输送线plc连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); } siemensS7Net.ConnectClose(); @@ -82,7 +91,7 @@ } /** * 读取状态 * 读取状态 ====> 整块plc */ private void read(){ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) 40); @@ -111,7 +120,7 @@ } /** * 写入 * 写入 =====> 单站点写入 */ private void write(StaProtocol staProtocol){ if (null == staProtocol) { @@ -131,6 +140,16 @@ } } /** * 心跳 */ private void heartbeat(){ OperateResult write = siemensS7Net.Write("DB100.50", (short) 1); if (!write.IsSuccess) { log.error("输送线plc编号={} 心跳失败", slave.getId()); } } @Override public void close() { siemensS7Net.ConnectClose(); src/main/webapp/views/pipeline.html
@@ -61,9 +61,8 @@ <th>有物</th> <th>可入</th> <th>可出</th> <th>需求入</th> <th>需求出</th> <th>高低库</th> <th>需求1</th> <th>空板信号</th> <th>目标站</th> </tr> </thead> @@ -147,23 +146,11 @@ setVal(tr.children("td").eq(1), table[i-1].workNo); setVal(tr.children("td").eq(2), table[i-1].autoing); setVal(tr.children("td").eq(3), table[i-1].loading); setVal(tr.children("td").eq(4), table[i-1].canining); setVal(tr.children("td").eq(5), table[i-1].canouting); setVal(tr.children("td").eq(6), table[i-1].inreqIn); setVal(tr.children("td").eq(7), table[i-1].inreqOut); setVal(tr.children("td").eq(8), table[i-1].highLow); setVal(tr.children("td").eq(4), table[i-1].inEnable); setVal(tr.children("td").eq(5), table[i-1].outEnable); setVal(tr.children("td").eq(6), table[i-1].inreq1); setVal(tr.children("td").eq(7), table[i-1].emptyMk); setVal(tr.children("td").eq(9), table[i-1].staNo); // tr.children("td").eq(0).html(table[i-1].devNo); // tr.children("td").eq(1).html(table[i-1].workNo); // tr.children("td").eq(2).html(table[i-1].autoing); // tr.children("td").eq(3).html(table[i-1].loading); // tr.children("td").eq(4).html(table[i-1].canining); // tr.children("td").eq(5).html(table[i-1].canouting); // tr.children("td").eq(6).html(table[i-1].inreqIn); // tr.children("td").eq(7).html(table[i-1].inreqOut); // tr.children("td").eq(8).html(table[i-1].highLow); // tr.children("td").eq(9).html(table[i-1].staNo); } } else if (res.code === 403){ window.location.href = baseUrl+"/login"; @@ -240,7 +227,6 @@ var html = ""; for (var i = 0; i < line; i ++){ html += " <tr>\n" + " <td></td>\n" + " <td></td>\n" + " <td></td>\n" + " <td></td>\n" +