| | |
| | | import com.zy.core.model.DevpSlave; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.protocol.StaProtocol; |
| | | import io.swagger.models.auth.In; |
| | | import lombok.Data; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | |
| | | // 写数据 ID+目标站 码垛完成 给输送线写任务完成 |
| | | case 3: |
| | | write3((StaProtocol)task.getData()); |
| | | break; |
| | | // 写数据 ID+目标站 码垛完成 给输送线写任务完成复位 |
| | | case 4: |
| | | write4((StaProtocol)task.getData()); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | if (null == staProtocol) { |
| | | return; |
| | | } |
| | | ArrayList<Integer> staNos = getStaNo(); |
| | | int index = staNos.indexOf(staProtocol.getSiteId()); |
| | | Integer siteId = staProtocol.getSiteId(); |
| | | Integer index =0; |
| | | switch (siteId){ |
| | | case 118: |
| | | index=0; |
| | | break; |
| | | case 119: |
| | | index=1; |
| | | break; |
| | | case 120: |
| | | index=2; |
| | | break; |
| | | case 121: |
| | | index=3; |
| | | break; |
| | | case 131: |
| | | index=4; |
| | | break; |
| | | case 135: |
| | | index=5; |
| | | break; |
| | | default: |
| | | return; |
| | | } |
| | | |
| | | OperateResult write = null; |
| | | //任务下发次数 |
| | | int writeCount = 0; |
| | | do { |
| | | write = siemensS7Net.Write("DB100." + index*6, (short)1); // 工作号 |
| | | write = siemensS7Net.Write("DB100.600." + index, true); // 任务完成 |
| | | if(write.IsSuccess){ |
| | | writeCount=6; |
| | | }else { |
| | |
| | | log.error("写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(staProtocol)); |
| | | } else { |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】 输送线命令下发 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); |
| | | log.info("输送线命令下发 [id:{}] >>>>> 命令下发: {}", slave.getId(), JSON.toJSON(staProtocol)); |
| | | log.info("输送线命令下发码垛完成 给输送线写任务完成 [id:{}] >>>>> 命令下发: {}", slave.getId(), JSON.toJSON(staProtocol)); |
| | | } |
| | | } |
| | | |
| | | private void write4(StaProtocol staProtocol) throws InterruptedException { |
| | | if (null == staProtocol) { |
| | | return; |
| | | } |
| | | Integer siteId = staProtocol.getSiteId(); |
| | | Integer index =0; |
| | | switch (siteId){ |
| | | case 118: |
| | | index=0; |
| | | break; |
| | | case 119: |
| | | index=1; |
| | | break; |
| | | case 120: |
| | | index=2; |
| | | break; |
| | | case 121: |
| | | index=3; |
| | | break; |
| | | case 131: |
| | | index=4; |
| | | break; |
| | | case 135: |
| | | index=5; |
| | | break; |
| | | default: |
| | | return; |
| | | } |
| | | |
| | | OperateResult write = null; |
| | | //任务下发次数 |
| | | int writeCount = 0; |
| | | do { |
| | | write = siemensS7Net.Write("DB100.600." + index, false); // 任务完成复位 |
| | | if(write.IsSuccess){ |
| | | writeCount=6; |
| | | }else { |
| | | writeCount++; |
| | | log.error("写入输送线命令后读取失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); |
| | | } |
| | | }while (writeCount<5); |
| | | |
| | | if (!write.IsSuccess) { |
| | | staProtocol = station.get(staProtocol.getSiteId()); |
| | | if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) { |
| | | staProtocol.setPakMk(true); |
| | | } |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点数据失败。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(staProtocol))); |
| | | log.error("写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(staProtocol)); |
| | | } else { |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】 输送线命令下发 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); |
| | | log.info("输送线命令下发码垛完成 给输送复位 [id:{}] >>>>> 命令下发: {}", slave.getId(), JSON.toJSON(staProtocol)); |
| | | } |
| | | } |
| | | // 更新入出库模式 |