|  1 |    initial version    |  
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:
Schedule:File,
    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
EnergyManagementSystem:Sensor,
    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
EnergyManagementSystem:Actuator,
    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
EnergyManagementSystem:ProgramCallingManager,
    EMS_PCM_Surface_OA_Temp_Override,  !- Name
    InsideHVACSystemIterationLoop,  !- EnergyPlus Model Calling Point
    EMS_Program_Surface_OA_Temp_Override;  !- Program Name 1
EnergyManagementSystem:Program,
    EMS_Program_Surface_OA_Temp_Override,  !- Name
    SET Surface_OA_Temp_2to50F_Office_1_Floor = Surface_Temp_Hourly_Profile_Sensor;  !- Program Line 1
Output:EnergyManagementSystem,
    Verbose,                 !- Actuator Availability Dictionary Reporting
    Verbose,                 !- Internal Variable Availability Dictionary Reporting
    ErrorsOnly;              !- EMS Runtime Language Debug Output Level