| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.SpringUtils; |
| | | import com.zy.asrs.entity.BasRgv; |
| | | import com.zy.asrs.entity.BasRgvOpt; |
| | | import com.zy.asrs.service.BasRgvOptService; |
| | | import com.zy.asrs.service.BasRgvService; |
| | | import com.zy.common.utils.News; |
| | | import com.zy.core.ThreadHandler; |
| | | import com.zy.entity.BasRgv; |
| | | import com.zy.entity.BasRgvOpt; |
| | | import com.zy.service.BasRgvOptService; |
| | | import com.zy.service.BasRgvService; |
| | | import com.zy.utils.News; |
| | | import com.zy.core.RgvThread2; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.OutputQueue; |
| | | import com.zy.core.enums.RgvStatusType; |
| | |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.model.RgvSlave; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.command.CrnCommand; |
| | | import com.zy.core.model.command.RgvCommand; |
| | | import com.zy.core.model.protocol.RgvProtocol; |
| | | import lombok.Data; |
| | |
| | | */ |
| | | @Data |
| | | @Slf4j |
| | | public class RgvThread implements Runnable, ThreadHandler { |
| | | public class RgvThread implements Runnable, RgvThread2 { |
| | | |
| | | private SiemensS7Net siemensNet; |
| | | private RgvSlave slave; |
| | |
| | | * 工位2复位信号 |
| | | */ |
| | | private boolean resetFlag2 = false; |
| | | |
| | | //锁定标记 |
| | | private boolean PakMk = true; |
| | | |
| | | public RgvThread(RgvSlave slave) { |
| | | this.slave = slave; |
| | |
| | | } else { |
| | | initRgv(); |
| | | OutputQueue.RGV.offer(MessageFormat.format("【{0}】读取RGV plc状态信息失败 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); |
| | | log.error("读取RGV plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); |
| | | // log.error("读取RGV plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | OutputQueue.RGV.offer(MessageFormat.format("【{0}】读取RGV plc状态信息失败 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); |
| | | log.error("读取RGV plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); |
| | | // log.error("读取RGV plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); |
| | | initRgv(); |
| | | } |
| | | } |
| | |
| | | return false; |
| | | } |
| | | |
| | | OperateResultExOne<byte[]> result3 = siemensNet.Read("DB100.0", (short) 12); |
| | | OperateResultExOne<byte[]> result4 = siemensNet.Read("DB100.10", (short) 2); |
| | | if (result3.IsSuccess){ |
| | | RgvCommand one = new RgvCommand(); |
| | | // one.setAckFinish1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0)); |
| | | one.setTaskNo1(siemensNet.getByteTransform().TransInt16(result3.Content, 2)); |
| | | one.setTaskMode1(siemensNet.getByteTransform().TransInt16(result3.Content, 4)); |
| | | one.setSourceStaNo1(siemensNet.getByteTransform().TransInt16(result3.Content, 6)); |
| | | one.setDestinationStaNo1(siemensNet.getByteTransform().TransInt16(result3.Content, 8)); |
| | | one.setCommand(siemensNet.getByteTransform().TransInt16(result4.Content, 0)); |
| | | |
| | | News.error("RGV命令下发前读取状态[id:{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); |
| | | } |
| | | |
| | | |
| | | OperateResult result8 = siemensNet.Write("DB100.10", (short) 0); |
| | | if (result8.IsSuccess){ |
| | | News.error("下发前把车子确认位置为0"); |
| | | } |
| | | |
| | | // siemensNet.Write("DB100.20", command.getCommand()); |
| | | |
| | | command.setRgvNo(slave.getId()); |