| | |
| | | import HslCommunication.Core.Types.OperateResultExOne; |
| | | import HslCommunication.Profinet.Siemens.SiemensPLCS; |
| | | import HslCommunication.Profinet.Siemens.SiemensS7Net; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.zy.core.ThreadHandler; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.enums.CrnTaskModeType; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.model.CrnSlave; |
| | | import com.zy.core.model.Task; |
| | |
| | | |
| | | public CrnThread(CrnSlave slave) { |
| | | this.slave = slave; |
| | | this.connect(); |
| | | } |
| | | |
| | | @Override |
| | | @SuppressWarnings("InfiniteLoopStatement") |
| | | public void run() { |
| | | this.connect(); |
| | | while (true) { |
| | | try { |
| | | int step = 1; |
| | |
| | | case 2: |
| | | write((CrnCommand) task.getData()); |
| | | break; |
| | | case 3: |
| | | break; |
| | | // 复位 |
| | | case 4: |
| | | case 3: |
| | | CrnCommand command = (CrnCommand) task.getData(); |
| | | if (null == command) { |
| | | command = new CrnCommand(); |
| | | } |
| | | command.setCrnNo(slave.getId()); // 堆垛机编号 |
| | | command.setTaskNo((short) 0); // 工作号 |
| | | command.setAckFinish((short) 1); // 任务完成确认位 |
| | | command.setTaskMode(CrnTaskModeType.NONE); // 任务模式: 库位移转 |
| | | command.setSourcePosX((short)0); // 源库位排 |
| | | command.setSourcePosY((short)0); // 源库位列 |
| | | command.setSourcePosZ((short)0); // 源库位层 |
| | | command.setDestinationPosX((short)0); // 目标库位排 |
| | | command.setDestinationPosY((short)0); // 目标库位列 |
| | | command.setDestinationPosZ((short)0); // 目标库位层 |
| | | write(command); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | Thread.sleep(3000); |
| | | Thread.sleep(500); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | crnProtocol.setForkPos(siemensNet.getByteTransform().TransInt16(result.Content, 10)); |
| | | crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 12)); |
| | | crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 14)); |
| | | crnProtocol.setTaskFinish(siemensNet.getByteTransform().TransInt16(result.Content, 16)); |
| | | // crnProtocol.setTaskFinish(siemensNet.getByteTransform().TransInt16(result.Content, 16)); |
| | | crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 18)); |
| | | crnProtocol.setAlarm1(siemensNet.getByteTransform().TransInt16(result.Content, 20)); |
| | | crnProtocol.setError1(siemensNet.getByteTransform().TransInt16(result.Content, 22)); |
| | |
| | | |
| | | @Override |
| | | public void close() { |
| | | |
| | | siemensNet.ConnectClose(); |
| | | } |
| | | |
| | | public CrnProtocol getCrnProtocol(){ |
| | |
| | | } |
| | | return this.crnProtocol; |
| | | } |
| | | |
| | | |
| | | /******************************************************************************************/ |
| | | /**************************************** 测试专用 *****************************************/ |
| | | /*****************************************************************************************/ |
| | | public static void main(String[] args) { |
| | | CrnSlave slave = new CrnSlave(); |
| | | slave.setIp("192.168.2.9"); |
| | | slave.setRack(0); |
| | | slave.setSlot(0); |
| | | CrnThread crnThread = new CrnThread(slave); |
| | | crnThread.readStatus(); |
| | | System.out.println(JSON.toJSONString(crnThread.crnProtocol)); |
| | | // // 写 |
| | | // CrnCommand command = new CrnCommand(); |
| | | // command.setCrnNo(slave.getId()); // 堆垛机编号 |
| | | // command.setTaskNo((short) 0); // 工作号 |
| | | // command.setAckFinish((short) 1); // 任务完成确认位 |
| | | // command.setTaskMode(CrnTaskModeType.NONE); // 任务模式: 库位移转 |
| | | // command.setSourcePosX((short)0); // 源库位排 |
| | | // command.setSourcePosY((short)0); // 源库位列 |
| | | // command.setSourcePosZ((short)0); // 源库位层 |
| | | // command.setDestinationPosX((short)0); // 目标库位排 |
| | | // command.setDestinationPosY((short)0); // 目标库位列 |
| | | // command.setDestinationPosZ((short)0); // 目标库位层 |
| | | // crnThread.write(command); |
| | | |
| | | } |
| | | |
| | | } |