#
lsh
2023-12-20 47538a54f9870febd44d0684f37666407ade6502
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -45,7 +45,7 @@
        add(101);add(102);add(103);add(104);
        add(201);add(202);add(203);add(204);add(205);add(206);
        add(207);add(208);add(209);add(210);add(211);add(212);
        add(213);add(105);
        add(213);add(105);add(1000);
    }};
    /**
@@ -89,13 +89,19 @@
                        StaProtocol staProtocol2 = (StaProtocol)task.getData();
                        siemensS7Net.Write("DB108.0" + staProtocol2.getSiteId(), staProtocol2.getStaNo()==1);
                        break;
        //复位测试信号
        case 3:
        StaProtocol staProtocol = (StaProtocol)task.getData();
        siemensS7Net.Write("DB102.0" + staProtocol.getSiteId(), staProtocol.getStaNo());
        break;
        default:
        break;
                    //测试库出库,库位状态改为8
                    case 6:
                        String data = task.getData()+"";
                        Byte coun=8;
                        siemensS7Net.Write("DB38.0" + data, coun);
                        break;
                    //复位测试信号
                    case 3:
                        StaProtocol staProtocol = (StaProtocol) task.getData();
                        siemensS7Net.Write("DB102.0" + staProtocol.getSiteId(), staProtocol.getStaNo());
                        break;
                    default:
                        break;
    }
    // 心跳
//                heartbeat();
@@ -206,14 +212,14 @@
        Thread.sleep(200);
        //测试柜状态获取
        OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB38.0", (short) 96);
        OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB38.0", (short) 48);
        //启动移库按钮
        OperateResultExOne<byte[]> result6 = siemensS7Net.Read("DB102.0", (short) 96);
        //消防报警
        OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB108.0", (short) 48);
        if(result3.IsSuccess) {
            for(int i=0; i<48; i++){
                startSignal[i][0] = siemensS7Net.getByteTransform().TransByte(result3.Content, i*2);//测试柜状态
                startSignal[i][0] = siemensS7Net.getByteTransform().TransByte(result3.Content, i);//测试柜状态
                startSignal[i][1] = siemensS7Net.getByteTransform().TransBool(result4.Content, i)?1:0;//消防状态
                startSignal[i][2] = siemensS7Net.getByteTransform().TransInt16(result6.Content, i*2);//启动按钮状态
            }
@@ -288,11 +294,17 @@
        boolean idFlag = false;
        OperateResult write;
        while(idCount < 5){
            write = siemensS7Net.Write("DB100." + index*4, array);    // 写
            if(write.IsSuccess){
                Thread.sleep(200);
                OperateResultExOne<byte[]> readId = siemensS7Net.Read("DB101.0", (short) (staNoSize*2));
                if(readId.IsSuccess){
                OperateResultExOne<byte[]> readId = siemensS7Net.Read("DB100." + index*4, (short) (staNoSize*2));
                  if(readId.IsSuccess){
                    if(staProtocol.getWorkNo()!=0&&staProtocol.getWorkNo()!=9999){
                        if(!staProtocol.isInEnable()&&(staProtocol.getSiteId()==201||staProtocol.getSiteId()==206)){
                            break;
                        }
                    }
                    short workNo = siemensS7Net.getByteTransform().TransInt16(readId.Content, 0);
                    if(staProtocol.getWorkNo().equals(workNo)){
                        //工作号写入成功