OPC is a method of transferring information between software applications; it is not usually a device communications protocol. In fact, there are very few devices that have built-in OPC servers. Typically, a server would communicate to a device using different device drivers (like Modbus), and then serve that data to a client via OPC.
With the creation of the OPC Client Drivers (OPC DA, OPC UA, and OPC XML-DA), the server should be able to connect to any server that is compliant with those specifications. This includes servers running on PCs, Embedded operating sytstems, and controllers.