Fatek URI syntax
To connect with Fatek PLC you should prepare URI connection with below format:
scheme://ip.address:port?param1=value1¶mN=ValueN
Where:
- schema - is transport protocol, tcp or udp
 - ip.address - Fatek PLC address
 - port - Fatek PLC port for chosen protocol
 - param can be one of:
- plcId - Fatek PLC station ID - default 1
 - timeout - connection timeout in milliseconds - default 5000
 
 
Example:
tcp://192.168.9.9?plcId=1&timeout=3000
Example of usage
Read the data from continuous data registers
try (FatekPLC fatekPLC = new FatekPLC("tcp://192.168.9.9?plcId=1")) {
    List<RegValue> list = new FatekReadDataCmd(fatekPLC, R(100), 3).send();
    System.out.println(list.get(0).intValueUnsigned());
    System.out.println(list.get(1).intValueUnsigned());
    System.out.println(list.get(2).intValueUnsigned());
}
Write the data to continuous data registers
Values for writing as parameter list:
try (FatekPLC fatekPLC = new FatekPLC("tcp://192.168.9.9?plcId=1")) {
    new FatekWriteDataCmd(fatekPLC, R(100), 1, 2, 3).send();
}
Values for writing in sequence:
try (FatekPLC fatekPLC = new FatekPLC("tcp://192.168.9.9?plcId=1")) {
    FatekWriteDataCmd writeDataCmd = new FatekWriteDataCmd(fatekPLC, R(100));
    writeDataCmd.addValue(1);
    writeDataCmd.addValue(2);
    writeDataCmd.addValue(3);
    writeDataCmd.send();
}
Read the status from continuous discrete registers
try (FatekPLC fatekPLC = new FatekPLC("tcp://192.168.9.9?plcId=1")) {
    List<Boolean> values = new FatekReadDiscreteCmd(fatekPLC, X(0), 4).send();
}
Write the status to continuous discrete registers
try (FatekPLC fatekPLC = new FatekPLC("tcp://192.168.9.9?plcId=1")) {
    new FatekWriteDiscreteCmd(fatekPLC, X(0), true, false, true, false).send();
}
Mixed read the random discrete status or register data
try (FatekPLC fatekPLC = new FatekPLC("tcp://192.168.9.9?plcId=1")) {
    Map<Reg, RegValue> valueMap = new FatekReadMixDataCmd(fatekPLC, X(0), R(100), D(1)).send();
    System.out.println(valueMap.get(X(0)));
    System.out.println(valueMap.get(R(100)));
    System.out.println(valueMap.get(D(1)));
}
Mixed write the random discrete status or register data
Add values to write to command:
try (FatekPLC fatekPLC = new FatekPLC("tcp://192.168.9.9?plcId=1")) {
    FatekWriteMixDataCmd writeMixDataCmd = new FatekWriteMixDataCmd(fatekPLC);
    writeMixDataCmd.addReg(X(0), true);
    writeMixDataCmd.addReg(R(100), 1000);
    writeMixDataCmd.addReg(D(1), 2000);
    writeDataCmd.send();
}
Value to write as Map:
try (FatekPLC fatekPLC = new FatekPLC("tcp://192.168.9.9?plcId=1")) {
    Map<Reg, RegValue> valueMap = new HashMap<>();
    valueMap.put(X(0), RegValueDis.TRUE);
    valueMap.put(R(100), new RegValue16(1000));
    valueMap.put(DD(100), new RegValue32(1000));
    new FatekWriteMixDataCmd(fatekPLC, valueMap).send();
}
    
    
    
    
    