Good point about already developed tools.
What is interesting is that at first, in my project, the plc was the central control. As I slowly went down the rabbit hole in transferring control entirely to aHMI. While it does work, I am finding out that there is a cost or rather trade offs/cons in doing so.
For instance, due to the nature of tcp protocol, if a scanner is disconnected and then reconnected, the app no longer recognizes that the scanner has scanned something. I must disconnect and then reconnect. From my understanding, this is because a port was left open and the client does not realize that there is no longer a server to listen to. Typically if this were connected to a PLC, you would get an "I/O Not Responding" and once the server reconnects all is well again.
Needless to say, version 2 of my app will include the plc once again so that I will gain back the "already developed" features. Some might say, "just disconnect programattically and reconnect". Not that simple if your app has methods running in separate threads.
I suppose my real reason for creating this post was so that new comers would be informed and not go down the same rabbit hole as I have.