The OPC client is part of, or a module in, an HMI software package. The OPC client requests data from an OPC server, according the way it has been configured for update rates and requested tags.
The OPC server is a program that runs on a Windows box. The OPC server can be on the same PC as the OPC client or a different PC, as long as the PCs are networked and can communicate with each other.
The OPC server has an internal "driver" which is responsible for communicating with the field device (PLC). The internal driver has to be specific for the field device, talking the PLC's protocol on a hardware link that is compatible with the PLC.
It is possible to do your own HMI with VB, but if you want to use the features of OPC, then your HMI would have to integrate an OPC client into it, in order to talk to an OPC server. That's the main attraction of OPC: OPC servers talk to OPC clients and vice versa. Developing your own HMI with the requisite support issues is an economic choice, vs buying a commercial HMI package that has an OPC client module (which most do nowadays).
Both OPC servers and OPC clients need to have a tag data base configured.
OPC is intended to replace DDE; for a variety of reasons, one of which was robustness. OPC clients communicate with OPC servers using Microsoft's DCOM (between PCs) or COM (on the same PC, but DCOM?COM is not the serial COM port, rather COM is Component Object Modeling, a aeans of tunneling data between databases..
Dan