It depends on the protocol exposed by the PLC.
In many cases, the OPC server willo peridically poll the PLC and read the values. It the compares them with the cached (old) values it already has. If there is a difference (with an optional use of a deadband), the OPC server will send report the change to the OPC client(s). The subscription mechanism between the OPC server and OPC client is always exception-based.
Some smarter protocols support COV (change of value) reporting, and an OPC server for such protocol can take advantage of this, and will not poll unless necessary or required.