| | |
| | | import com.zy.core.thread.BarcodeThread; |
| | | import com.zy.core.thread.MelsecCrnThread; |
| | | import com.zy.core.thread.ScaleThread; |
| | | import com.zy.core.thread.SiemensCrnThread; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | CrnDetailVo vo = new CrnDetailVo(); |
| | | for (CrnSlave crnSlave : slaveProperties.getCrn()) { |
| | | if (crnSlave.getId().equals(crnNo)) { |
| | | MelsecCrnThread crnThread = (MelsecCrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); |
| | | SiemensCrnThread crnThread = (SiemensCrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); |
| | | CrnProtocol crnProtocol = crnThread.getCrnProtocol(); |
| | | vo.setCrnNo(crnNo); |
| | | vo.setWorkNo(crnProtocol.getTaskNo()); |
| | |
| | | res.add(map2); |
| | | } else { |
| | | Map<String, Object> map3 = new HashMap<>(); |
| | | map3.put("floor", 2); |
| | | map3.put("floor", 3); |
| | | map3.put("modeVal", devpThread.ioModeOf1F3.id); |
| | | map3.put("modeDesc", devpThread.ioModeOf1F3.desc); |
| | | res.add(map3); |
| | |
| | | // 初始化堆垛机线程 |
| | | log.info("初始化堆垛机线程..................................................."); |
| | | for (CrnSlave crn : slaveProperties.getCrn()) { |
| | | CrnThread crnThread = new MelsecCrnThread(crn); |
| | | CrnThread crnThread = new SiemensCrnThread(crn); |
| | | new Thread((Runnable) crnThread).start(); |
| | | SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread); |
| | | } |
| | |
| | | WAITING(10, "任务完成等待WCS确认"), |
| | | PAUSE(11, "任务暂停"), |
| | | SOS(99, "报警"), |
| | | UNKNOW(100,"其他") |
| | | ; |
| | | |
| | | public Integer id; |
| | |
| | | } |
| | | if (slave.getId() == 2 && this.ioModeOf1F3 != IoModeType.NONE) { |
| | | if (!siemensS7Net.Write("DB100.300", this.ioModeOf1F3.id).IsSuccess) { |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线1F3入出库模式失败。输送线plc编号={1}", slave.getId())); |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线1F3入出库模式失败。输送线plc编号={2}", slave.getId())); |
| | | log.error("写入输送线1F3入出库模式失败。输送线plc编号={}", slave.getId()); |
| | | } |
| | | } |
| | | if (slave.getId() == 2 && this.ioModeOf1F4 != IoModeType.NONE) { |
| | | if (!siemensS7Net.Write("DB100.302", this.ioModeOf1F4.id).IsSuccess) { |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线1F4入出库模式失败。输送线plc编号={1}", slave.getId())); |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线1F4入出库模式失败。输送线plc编号={2}", slave.getId())); |
| | | log.error("写入输送线1F4入出库模式失败。输送线plc编号={}", slave.getId()); |
| | | } |
| | | } |
| | | if (slave.getId() == 2 && this.ioModeOf2F1 != IoModeType.NONE) { |
| | | if (!siemensS7Net.Write("DB100.304", this.ioModeOf2F1.id).IsSuccess) { |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线2F1入出库模式失败。输送线plc编号={1}", slave.getId())); |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线2F1入出库模式失败。输送线plc编号={2}", slave.getId())); |
| | | log.error("写入输送线2F1入出库模式失败。输送线plc编号={}", slave.getId()); |
| | | } |
| | | } |
| | | if (slave.getId() == 2 && this.ioModeOf2F2 != IoModeType.NONE) { |
| | | if (!siemensS7Net.Write("DB100.306", this.ioModeOf2F2.id).IsSuccess) { |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线2F2入出库模式失败。输送线plc编号={1}", slave.getId())); |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线2F2入出库模式失败。输送线plc编号={2}", slave.getId())); |
| | | log.error("写入输送线2F2入出库模式失败。输送线plc编号={}", slave.getId()); |
| | | } |
| | | } |
| | | if (slave.getId() == 2 && this.ioModeOf3F1 != IoModeType.NONE) { |
| | | if (!siemensS7Net.Write("DB100.308", this.ioModeOf3F1.id).IsSuccess) { |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线3F1入出库模式失败。输送线plc编号={1}", slave.getId())); |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线3F1入出库模式失败。输送线plc编号={2}", slave.getId())); |
| | | log.error("写入输送线3F1入出库模式失败。输送线plc编号={}", slave.getId()); |
| | | } |
| | | } |
| | | if (slave.getId() == 2 && this.ioModeOf3F2 != IoModeType.NONE) { |
| | | if (!siemensS7Net.Write("DB100.310", this.ioModeOf3F2.id).IsSuccess) { |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线3F2入出库模式失败。输送线plc编号={1}", slave.getId())); |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线3F2入出库模式失败。输送线plc编号={2}", slave.getId())); |
| | | log.error("写入输送线3F2入出库模式失败。输送线plc编号={}", slave.getId()); |
| | | } |
| | | } |
| | |
| | | # 堆垛机1 |
| | | crn[0]: |
| | | id: 1 |
| | | ip: 10.10.10.101 |
| | | ip: 10.10.10.10 |
| | | port: 102 |
| | | rack: 0 |
| | | slot: 0 |
| | |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 102 |
| | | row: 2 |
| | | bay: 2 |
| | | bay: 84 |
| | | lev: 1 |
| | | # 堆垛机入库站点2 |
| | | crnInStn[1]: |
| | | devpPlcId: ${wcs-slave.devp[1].id} |
| | | staNo: 112 |
| | | row: 2 |
| | | bay: 55 |
| | | bay: 1 |
| | | lev: 1 |
| | | # 堆垛机入库站点3 |
| | | crnInStn[2]: |
| | | devpPlcId: ${wcs-slave.devp[1].id} |
| | | staNo: 202 |
| | | row: 2 |
| | | bay: 55 |
| | | bay: 1 |
| | | lev: 4 |
| | | # 堆垛机入库站点 |
| | | crnInStn[3]: |
| | | devpPlcId: ${wcs-slave.devp[1].id} |
| | | staNo: 302 |
| | | row: 2 |
| | | bay: 55 |
| | | bay: 1 |
| | | lev: 7 |
| | | # 堆垛机出库站点1 |
| | | crnOutStn[0]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 102 |
| | | row: 2 |
| | | bay: 2 |
| | | bay: 84 |
| | | lev: 1 |
| | | # 堆垛机出库站点2 |
| | | crnOutStn[1]: |
| | | devpPlcId: ${wcs-slave.devp[1].id} |
| | | staNo: 112 |
| | | row: 2 |
| | | bay: 55 |
| | | bay: 1 |
| | | lev: 1 |
| | | # 堆垛机出库站点3 |
| | | crnOutStn[2]: |
| | | devpPlcId: ${wcs-slave.devp[1].id} |
| | | staNo: 202 |
| | | row: 2 |
| | | bay: 55 |
| | | bay: 1 |
| | | lev: 4 |
| | | # 堆垛机出库站点 |
| | | crnOutStn[3]: |
| | | devpPlcId: ${wcs-slave.devp[1].id} |
| | | staNo: 302 |
| | | row: 2 |
| | | bay: 55 |
| | | bay: 1 |
| | | lev: 7 |
| | | # 堆垛机2 |
| | | # 堆垛机1 |
| | | crn[1]: |
| | | id: 2 |
| | | ip: 10.10.10.111 |
| | | ip: 10.10.10.20 |
| | | port: 102 |
| | | rack: 0 |
| | | slot: 0 |
| | |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 106 |
| | | row: 7 |
| | | bay: 2 |
| | | bay: 84 |
| | | lev: 1 |
| | | # 堆垛机入库站点2 |
| | | crnInStn[1]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 116 |
| | | row: 7 |
| | | bay: 55 |
| | | bay: 1 |
| | | lev: 1 |
| | | # 堆垛机入库站点3 |
| | | crnInStn[2]: |
| | | devpPlcId: ${wcs-slave.devp[1].id} |
| | | staNo: 205 |
| | | row: 7 |
| | | bay: 55 |
| | | bay: 1 |
| | | lev: 4 |
| | | # 堆垛机入库站点4 |
| | | crnInStn[3]: |
| | | devpPlcId: ${wcs-slave.devp[1].id} |
| | | staNo: 305 |
| | | row: 7 |
| | | bay: 55 |
| | | bay: 1 |
| | | lev: 7 |
| | | # 堆垛机出库站点1 |
| | | crnOutStn[0]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 106 |
| | | row: 7 |
| | | bay: 2 |
| | | bay: 84 |
| | | lev: 1 |
| | | # 堆垛机出库站点2 |
| | | crnOutStn[1]: |
| | |
| | | devpPlcId: ${wcs-slave.devp[1].id} |
| | | staNo: 205 |
| | | row: 7 |
| | | bay: 55 |
| | | bay: 1 |
| | | lev: 4 |
| | | # 堆垛机出库站点3 |
| | | crnOutStn[3]: |
| | | devpPlcId: ${wcs-slave.devp[1].id} |
| | | staNo: 305 |
| | | row: 7 |
| | | bay: 55 |
| | | bay: 1 |
| | | lev: 7 |
| | | # 输送线1 |
| | | devp[0]: |
| | |
| | | "rackDescs": [ |
| | | { |
| | | "type": "rackDescs", |
| | | "id": "lb_desc8", |
| | | "text": "#8", |
| | | "id": "lb_desc1", |
| | | "text": "#1", |
| | | "top": 150, |
| | | "left": 1345, |
| | | "width": 30, |
| | | "height": 23 |
| | | }, |
| | | { |
| | | "type": "rackDescs", |
| | | "id": "lb_desc6", |
| | | "text": "#6", |
| | | "top": 223, |
| | | "left": 1380, |
| | | "width": 30, |
| | | "height": 23 |
| | | }, |
| | | { |
| | | "type": "rackDescs", |
| | | "id": "lb_desc5", |
| | | "text": "#5", |
| | | "top": 245, |
| | | "left": 1380, |
| | | "width": 30, |
| | | "height": 23 |
| | | }, |
| | | { |
| | | "type": "rackDescs", |
| | | "id": "lb_desc4", |
| | | "text": "#4", |
| | | "top": 280, |
| | | "left": 1380, |
| | | "width": 30, |
| | | "height": 23 |
| | |
| | | "type": "rackDescs", |
| | | "id": "lb_desc3", |
| | | "text": "#3", |
| | | "top": 223, |
| | | "left": 1380, |
| | | "width": 30, |
| | | "height": 23 |
| | | }, |
| | | { |
| | | "type": "rackDescs", |
| | | "id": "lb_desc4", |
| | | "text": "#4", |
| | | "top": 245, |
| | | "left": 1380, |
| | | "width": 30, |
| | | "height": 23 |
| | | }, |
| | | { |
| | | "type": "rackDescs", |
| | | "id": "lb_desc5", |
| | | "text": "#5", |
| | | "top": 280, |
| | | "left": 1380, |
| | | "width": 30, |
| | | "height": 23 |
| | | }, |
| | | { |
| | | "type": "rackDescs", |
| | | "id": "lb_desc6", |
| | | "text": "#6", |
| | | "top": 300, |
| | | "left": 1380, |
| | | "width": 30, |
| | |
| | | }, |
| | | { |
| | | "type": "rackDescs", |
| | | "id": "lb_desc1", |
| | | "text": "#1", |
| | | "id": "lb_desc8", |
| | | "text": "#8", |
| | | "top": 380, |
| | | "left": 1345, |
| | | "left": 1380, |
| | | "width": 30, |
| | | "height": 23 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-102", |
| | | "text": "102", |
| | | "top": 173, |
| | | "left": 403, |
| | | "top": 172, |
| | | "left": 1342, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-101", |
| | | "text": "101", |
| | | "top": 173, |
| | | "left": 332, |
| | | "top": 172, |
| | | "left": 1413, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-100", |
| | | "text": "100", |
| | | "top": 173, |
| | | "left": 261, |
| | | "top": 172, |
| | | "left": 1484, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-106", |
| | | "text": "106", |
| | | "top": 358, |
| | | "left": 403, |
| | | "top": 359, |
| | | "left": 1342, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-105", |
| | | "text": "105", |
| | | "top": 358, |
| | | "left": 332, |
| | | "top": 359, |
| | | "left": 1413, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-104", |
| | | "text": "104", |
| | | "top": 358, |
| | | "left": 261, |
| | | "top": 359, |
| | | "left": 1484, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-103", |
| | | "text": "103", |
| | | "top": 358, |
| | | "left": 190, |
| | | "top": 359, |
| | | "left": 1555, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-112", |
| | | "text": "112", |
| | | "top": 172, |
| | | "left": 1342, |
| | | "top": 173, |
| | | "left": 403, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-111", |
| | | "text": "111", |
| | | "top": 172, |
| | | "left": 1413, |
| | | "top": 173, |
| | | "left": 332, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-110", |
| | | "text": "110", |
| | | "top": 172, |
| | | "left": 1484, |
| | | "top": 173, |
| | | "left": 261, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-116", |
| | | "text": "116", |
| | | "top": 359, |
| | | "left": 1342, |
| | | "top": 358, |
| | | "left": 403, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-115", |
| | | "text": "115", |
| | | "top": 359, |
| | | "left": 1413, |
| | | "top": 358, |
| | | "left": 332, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-114", |
| | | "text": "114", |
| | | "top": 359, |
| | | "left": 1484, |
| | | "top": 358, |
| | | "left": 261, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "type": "stn", |
| | | "id": "site-113", |
| | | "text": "113", |
| | | "top": 359, |
| | | "left": 1555, |
| | | "top": 358, |
| | | "left": 190, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "id": "site-202", |
| | | "text": "202", |
| | | "top": 173, |
| | | "left": 1342, |
| | | "left": 403, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "id": "site-201", |
| | | "text": "201", |
| | | "top": 173, |
| | | "left": 1413, |
| | | "left": 332, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "id": "site-200", |
| | | "text": "200", |
| | | "top": 173, |
| | | "left": 1484, |
| | | "left": 261, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "id": "site-205", |
| | | "text": "205", |
| | | "top": 358, |
| | | "left": 1342, |
| | | "left": 403, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "id": "site-204", |
| | | "text": "204", |
| | | "top": 358, |
| | | "left": 1413, |
| | | "left": 332, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "id": "site-203", |
| | | "text": "203", |
| | | "top": 358, |
| | | "left": 1484, |
| | | "left": 261, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "id": "site-302", |
| | | "text": "302", |
| | | "top": 173, |
| | | "left": 1342, |
| | | "left": 403, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "id": "site-301", |
| | | "text": "301", |
| | | "top": 173, |
| | | "left": 1413, |
| | | "left": 332, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "id": "site-300", |
| | | "text": "300", |
| | | "top": 173, |
| | | "left": 1484, |
| | | "left": 261, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "id": "site-305", |
| | | "text": "305", |
| | | "top": 358, |
| | | "left": 1342, |
| | | "left": 403, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "id": "site-304", |
| | | "text": "304", |
| | | "top": 358, |
| | | "left": 1413, |
| | | "left": 332, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | "id": "site-303", |
| | | "text": "303", |
| | | "top": 358, |
| | | "left": 1484, |
| | | "left": 261, |
| | | "width": 70, |
| | | "height": 20 |
| | | }, |
| | |
| | | <!-- <span> </span>--> |
| | | <input id="crn2" disabled="disabled"> |
| | | </div> |
| | | <div class="crn-command-item"> |
| | | <label>3#</label> |
| | | <button id="demoBtn-3" class="demoBtn" onclick="demoSwitch(this.id)"> - </button> |
| | | <!-- <span> </span>--> |
| | | <input id="crn3" disabled="disabled"> |
| | | </div> |
| | | <div class="crn-command-item"> |
| | | <label>4#</label> |
| | | <button id="demoBtn-4" class="demoBtn" onclick="demoSwitch(this.id)"> - </button> |
| | | <!-- <span> </span>--> |
| | | <input id="crn4" disabled="disabled"> |
| | | </div> |
| | | <div class="crn-command-item"> |
| | | <label>5#</label> |
| | | <button id="demoBtn-5" class="demoBtn" onclick="demoSwitch(this.id)"> - </button> |
| | | <!-- <span> </span>--> |
| | | <input id="crn5" disabled="disabled"> |
| | | </div> |
| | | |
| | | </div> |
| | | <!-- 堆垛机状态位信息 --> |
| | | <div class="crn-state"> |
| | |
| | | <div class="select-container" style="padding: 20px 0;"> |
| | | <label><input type="radio" name="crnSelect" value="1" checked> 1号堆垛机</label> |
| | | <label><input type="radio" name="crnSelect" value="2"> 2号堆垛机</label> |
| | | <label><input type="radio" name="crnSelect" value="3"> 3号堆垛机</label> |
| | | <label><input type="radio" name="crnSelect" value="4"> 4号堆垛机</label> |
| | | <label><input type="radio" name="crnSelect" value="5"> 5号堆垛机</label> |
| | | |
| | | </div> |
| | | </div> |
| | | <!-- 源站/源库位 选择 --> |