Please note that all of the functions except the ones beginning with Begin* and End* are blocking and calling these functions will block until a response is received from the PLC device. If there's a communication problem your application will block (freeze) until a timeout occur.
You can either use blocking methods in a separate thread or use advanced asynchronous methods for a non blocking usage.