Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

How to set an EMS Actuator to values from a Schedule:File object?

asked 2015-05-05 09:02:25 -0500

daren-thomas's avatar

updated 2023-09-11 16:18:13 -0500

I have an actuator in EnergyPlus and would like to set the value of that actuator to a value obtained from a CSV file at every time step.

I figured I can use SCHEDULE:FILE to read in the values and use an ENERGYMANAGEMENTSYSTEM:SENSOR to map those to a EMS variable.

Do I then create a ENERGYMANAGEMENTSYSTEM:PROGRAM to write the value from one place to another? (it seems a bit verbose...)

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted

answered 2015-05-05 11:15:08 -0500

Ivan Korolija's avatar

updated 2015-05-05 11:15:34 -0500

You might be able to assign a schedule value directly to the EMS actuator.

    SchName,  !- Name
    ... (all associated Schedule:File object's fields)

   Schedule Value;
edit flag offensive delete link more

answered 2015-05-05 18:36:42 -0500

Archmage's avatar

Yes, you need a small EMS program with a line that sets the actuator equal to the sensor.

edit flag offensive delete link more

answered 2023-09-10 03:57:50 -0500

Keigo's avatar

Ivan's answer is misleading. Schedule:File should be a Sensor, not an Actuator. Some parameters you want to override in Schedule:File should be Actuators.

One example. I wanted to override the Outdoor Air Drybulb Temperature for building surfaces with Schedule:File for some reason. In such cases, the EMS program looks like this:

    Surface_Temp_Hourly_Profile,  !- Name
    ,                        !- Schedule Type Limits Name
    C:\Project\Project_XXXXX\Surface_Temp_Hourly_Profile.csv,  !- File Name
    2,                       !- Column Number
    1,                       !- Rows to Skip at Top
    8760,                    !- Number of Hours of Data
    Comma,                   !- Column Separator
    No,                      !- Interpolate to Timestep
    60;                      !- Minutes per Item

    Surface_Temp_Hourly_Profile_Sensor,  !- Name
    Surface_Temp_Hourly_Profile,  !- Output:Variable or Output:Meter Index Key Name
    Schedule Value ;         !- Output:Variable or Output:Meter Name

    Surface_OA_Temp_2to50F_Office_1_Floor,  !- Name
    2to50F_Office_1_Floor,  !- Actuated Component Unique Name
    Surface,                 !- Actuated Component Type
    Outdoor Air Drybulb Temperature;  !- Actuated Component Control Type

    EMS_PCM_Surface_OA_Temp_Override,  !- Name
    InsideHVACSystemIterationLoop,  !- EnergyPlus Model Calling Point
    EMS_Program_Surface_OA_Temp_Override;  !- Program Name 1

    EMS_Program_Surface_OA_Temp_Override,  !- Name
    SET Surface_OA_Temp_2to50F_Office_1_Floor = Surface_Temp_Hourly_Profile_Sensor;  !- Program Line 1

    Verbose,                 !- Actuator Availability Dictionary Reporting
    Verbose,                 !- Internal Variable Availability Dictionary Reporting
    ErrorsOnly;              !- EMS Runtime Language Debug Output Level
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2015-05-05 09:02:25 -0500

Seen: 683 times

Last updated: Sep 10