Hi, I'm not bkhashfeh but I have the same problem and I'd apreciate the help  :D . Here is my code where I'm reading three registers per second (or trying).
package modbusmastertest;
import com.serotonin.modbus4j.ModbusFactory;
import com.serotonin.modbus4j.ModbusMaster;
import com.serotonin.modbus4j.code.DataType;
import com.serotonin.modbus4j.ip.IpParameters;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Calendar;
class MBMasterTest {
public static void main(String[] args) throws Exception {
// Modbus master settings
ModbusFactory factory = new ModbusFactory();
IpParameters params = new IpParameters();
params.setHost("192.168.0.1");
params.setPort(502);
params.setEncapsulated(false);
ModbusMaster master = factory.createTcpMaster(params, false);
master.setTimeout(333);
master.setRetries(1);
// CSV writter settings
FileWriter fwriter;
fwriter = new FileWriter("C:/Users/NESTOR/Dropbox/Siemens_S7-1200.csv");
PrintWriter outputFile = new PrintWriter(fwriter);
outputFile.println("Date,Sensor_1,Sensor_2,Sensor_3"); // Primera línea
Object []Register = new Object[3];
// Date settings
Calendar cal = Calendar.getInstance();
long elapsedTime = 0;
long time = 0;
	    // Cuerpo del programa
	long start = System.currentTimeMillis(); // Tiempo de inicio
	try {
		master.init();
		while(System.currentTimeMillis()<(start+10000)) {
			time = System.currentTimeMillis();
			for(int i = 0; i<3; i++) {
				Register* = master.getValue(1,40001+i,DataType.TWO_BYTE_INT_SIGNED);
			}
			System.out.println(Register[0]+","+Register[1]+","+Register[2]);
			System.out.println(""
					+ "");
			elapsedTime = System.currentTimeMillis()-time;
			cal.setTimeInMillis(cal.getTime().getTime() + elapsedTime);
			outputFile.println(cal.getTime().toString()+","+Register[0]+","+Register[1]+","+Register[2]); // Se escribe nueva linea en archivo
		}
		outputFile.close(); // Se cierra el archivo
	}
	finally {
		master.destroy(); //Se destruye el objeto master
	}
	
	System.out.println(""
			+ "");
	System.out.println("Tardo " + (System.currentTimeMillis()-start) + "ms");
}
}