| | |
| | | private SiemensS7Net siemensS7Net; |
| | | private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>(); |
| | | private short heartBeatVal = 1; |
| | | public Integer isCalled = 0; |
| | | public Integer isFinish = 0; |
| | | public ArrayList<Integer> weights = new ArrayList<>(); |
| | | public Integer weight = 0; |
| | | public ArrayList<Integer> halfs = new ArrayList<>(); |
| | | public Integer isHalf = 0; |
| | | |
| | | |
| | | public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{ |
| | |
| | | switch (slave.getId()){ |
| | | case 2: |
| | | write2106((StaProtocol)task.getData());break; |
| | | } |
| | | |
| | | break; |
| | | case 4: |
| | | switch (slave.getId()){ |
| | | case 2: |
| | | writeIsCalled();break; |
| | | } |
| | | case 5: |
| | | switch (slave.getId()){ |
| | | case 2: |
| | | writeIsFinish();break; |
| | | } |
| | | |
| | | break; |
| | |
| | | staProtocol.setBatch(batch); |
| | | } |
| | | } |
| | | |
| | | // 空桶出库信号 |
| | | OperateResultExOne<byte[]> readCall = siemensS7Net.Read("DB102", (short) 4); |
| | | if (readCall.IsSuccess){ |
| | | Integer isNeed = siemensS7Net.getByteTransform().TransInt32(result.Content, 0); // IBC要桶信号 |
| | | Integer isFinish = siemensS7Net.getByteTransform().TransInt32(result.Content, 2); // IBC灌装完成信号 |
| | | Integer weight = siemensS7Net.getByteTransform().TransInt32(result.Content, 4); // IBC灌装重里 |
| | | Integer isAHalf = siemensS7Net.getByteTransform().TransInt32(result.Content, 6); // IBC半桶标记 |
| | | |
| | | isCalled = isNeed; |
| | | isFinish = isFinish; |
| | | weight = weight; |
| | | isHalf = isAHalf; |
| | | } |
| | | |
| | | // 完成罐装信号 |
| | | OperateResultExOne<byte[]> finish = siemensS7Net.Read("DB105.240", (short) 4); |
| | | if (finish.IsSuccess){ |
| | | short amount = siemensS7Net.getByteTransform().TransInt16(result.Content, 0); |
| | | // isCalled = amount; |
| | | } |
| | | |
| | | // if (isCalled == 1) { |
| | | // writeIsCalled(); |
| | | // } |
| | | |
| | | OperateResultExOne<byte[]> readWeight = siemensS7Net.Read("DB101.260", (short) 2); |
| | | if (readWeight.IsSuccess){ |
| | |
| | | log.info("输送线命令下发 [id:{}] >>>>> 命令下发: {}", slave.getId(), JSON.toJSON(staProtocol)); |
| | | } |
| | | } |
| | | |
| | | private void writeIsCalled() throws InterruptedException { |
| | | OperateResult write = siemensS7Net.Write("DB102.0" , 0); // 工作号 |
| | | } |
| | | |
| | | private void writeIsFinish() throws InterruptedException { |
| | | OperateResult finish = siemensS7Net.Write("DB102.2" , 0); // 工作号 |
| | | OperateResult half = siemensS7Net.Write("DB102.6" , 0); // 工作号 |
| | | } |
| | | |
| | | /** |
| | | * 写入 ID+目标站 =====> 单站点写入 |
| | | */ |