wu
2024-04-11 d8cb845856064ff7d41fe92dda97249f7123c91b
springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
@@ -10,6 +10,7 @@
import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
import com.github.xingshuangs.iot.protocol.s7.service.MultiAddressWrite;
import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
import com.github.xingshuangs.iot.utils.FloatUtil;
import com.google.common.primitives.Bytes;
import org.apache.ibatis.jdbc.Null;
@@ -470,8 +471,52 @@
        }
        return addresslist;
    }
    public void writeString(String addr,String data) {
        s7PLC.writeString(addr,data);
    }
    public String readStrings(String addr) {
        return s7PLC.readString(addr);
    }
    public float readFloat32(String addr) {
        return s7PLC.readFloat32(addr);
    }
    public double readFloat64(String addr) {
        return s7PLC.readFloat64(addr);
    }
    // public float[] readfloat32(List<String> addr) {
    //     float[] result=new float[addr.size()];
    //     for (int i=0;i<addr.size();i++) {
    //         String address=addr.get(i);
    //         result[i]=readFloat32(address);
    //     }
    //     return result;
    // }
    public List<Float> readFloat32(List<String> addr) {
        List<Float> result=new ArrayList<>();
        for (String string : addr) {
            if(string.equals("DB10.2000")||string.equals("DB10.2008")){
                result.add((float)s7PLC.readFloat64(string));
            }else if (string.equals("DB10.224")||string.equals("DB10.226")||string.equals("DB10.228")||string.equals("DB10.230")) {
                List<Short> word=ReadWord(string,1);
                for (Short short1 : word) {
                    result.add((float)short1);
                }
            }
            else{
                result.add(s7PLC.readFloat32(string));
            }
        }
        return result;
    }
    public void writeFloat32(String addr, float data) {
      s7PLC.writeFloat32(addr,data);
   }
}