There are a number of ways to do this. Usually I try to select the approach that most closely matches the approach in the real world. Here are some real world strategies followed by a potential EnergyPlus Controls Description:
1. There are multiple water to water heat pumps - this is the simplest system to model in EnergyPlus. In the real world, some heat pumps are usually dedicated to heating and some to cooling. Depending on the season, you might have all (or almost all) dedicated one way or the other. In the models I have created in EnergyPlus, usually there is enough diversity in the building that the number of heat pumps operating in one mode or the other that the system mimics the scheduled operation pretty well.
2. Scheduling - this might happen if a water to water heat pump serves a two-pipe fan coil loop. In this case, the heat pump is scheduled to operate in one mode or the other. Use an availability schedule in your PlantEquipmentOperationSchemes
3. Thermal storage - In this case, the heat pump is operating to meet a setpoint (with deadband) in a thermal storage tank. The hot or chilled water loop draws off the thermal storage tank. For modeling purposes, in this mode you can allow each heat pump to operate for a short period of time on an alternating schedule. I have not found that this works particularly well. You could either use an EMS program to change the Availability schedule values during run-time (but be careful with maximum iterations. A better operation might be to use some combination of AvailabilityManagers to enable one heat pump and disable the other. Because AvailabilityManagers can only be applied to a PlantLoop, and you do not want to turn off the demand side of the plant loop, you would want to separate the supply side of the plantloop into it's own loop, and connect the two loops with a HeatExchanger:FluidToFluid
Hope this helps,
--
Karen