Errors when using EMS with BeginTimestepBeforePredictor in Prototype Building Model
I am not a seasoned EMS user; any advice on how to go about debugging this case would be much appreciated.
I am using the ASHRAE901_OfficeLarge_STD2013 prototype model (https://www.energycodes.gov/901-proto...), and trying to add some switchable glazing via EMS. But I am running into this problem before I can even dig into the fun stuff: if I try to add any sort of EnergyManagementSystem:ProgramCallingManager with an insertion point of BeginTimestepBeforePredictor, even something that should have no real impact on the simulation (two examples included below), it errors out with the following:
... Starting Simulation at 07/21 for CHICAGO OHARE INTL AP ANN CLG .4% CONDNS DB=>MWB **FATAL:CheckPlantMixerSplitterConsistency: Simulation terminated because of problems in plant flow resolver
And the train of warnings and severe errors leading up to this in the .err file is all about cooling sizing calculations.
My limited understanding of how EMS works leaves me scratching my head: how can the act of adding a non-interacting EMS program with this insertion point throw off something else in the simulation? What might it be that is thrown off, and how do I fix it (ideally without having to heavily refactor the prototype model)?
Details / Notes:
I am using EnergyPlus-8-0-0, as per the Prototype Model version
There are other EMS programs in the model, but I don't think the problem is with them: if I remove all of the EnergyManagementSystem:ProgramCallingManager objects in the model it runs without error, and then if I add in anything new with a BeginTimestepBeforePredictor insertion point I get the same error as above.
If I add a ProgramCallingManager object with any other insertion point besides BeginTimestepBeforePredictor, then I don't get this error
Examples of should-be-no-impact EMS changes / additions to the prototype idf that I have tried, in my attempts to track down the problem:
switching the BoilerParManager from BeginNewEnvironment to BeginTimestepBeforePredictor (which calls a routine that computes a set of boiler parameter values which are then kept constant)
adding the following to the idf (which should add an EMS program that does nothing, as per the first example in the Application Guide for EMS):
EnergyManagementSystem:GlobalVariable, Atest;
EnergyManagementSystem:OutputVariable, A test thing, ! Name Atest , ! EMS Variable Name Averaged, ! Type of Data in Variable ZoneTimeStep ; ! Update Frequency
EnergyManagementSystem:ProgramCallingManager,Window EMS Controller, BeginTimestepBeforePredictor,Set_Window_States;
EnergyManagementSystem:Program,Set_Window_States, SET Atest = 1;