Where is this PLC, and how is it related/connected? Is it querying the PC running this VB app? What protocol (Modbus/HTTP/custom API).
I still think the issue is unrelated to the network cable, unless the network connection, especially the daisy chain, is causing the system to hang, and even then the USB hardware should internally complete any communication with the relay board.
A timeout, which this is per the log, would normally be detected by the PC/VB when the relay board did not respond quickly enough. How frequently does the PC query the relay board i.e. how frequently is this StartRestart switch routine called? Is it on demand from the PLC via the network cable? Is it possible to increase the timeout value?
Real-time software like this, which running on a non-real-time platform, needs to be as robust as possible. If several real-time events need to happen, the system should be designed to isolate them so they can be asynchronous as possible e.g. the relay board should be queried at some sustainable rate and the value cached to a memory location, and the code that does that should be independent of the code that handles the network pull from the PLC, which latter code should instead look at the cached location. And all pieces should be able to detect failures and exceptions and recover/reset as gracefully as possible, along with making timestamped logs, both file-based and on-screen, to help diagnose when severe problems occur (e.g. someone knocks a cable loose). It seems like a start has been made along these lines with the Try/Catch and error log.
Caveat: the opinions above makes many assumptions about the process, when I actually know very little about it.