Page 1 of 2 12 LastLast
Results 1 to 13 of 16
  1. #1
    Join Date
    Jun 2012
    Location
    Northern NV
    Posts
    2,006
    Post Likes

    Need a Delta guru to look at this for me...

    One year old Delta system. Do not seem to be able to "get it right" and invite some suggestion and comments on the "Watchdog" PG.

    Has a problem with temperature control integrating the economizers with 4 stages of cooling on six RTU's. (All old analog Aaons.) My ideal was to use the economizers when conditions allow and bring on stages of cooling if demand is there. Seamlessly. Not the case.

    Following is copied and pasted:

    // Manages setpoints and maintains default values

    // Default setpoints
    'Occupied Cooling Setpoint' = 72
    'Occupied Heating Setpoint' = 70
    'Unoccupied Cooling Setpoint' = 85
    'Unoccupied Heating Setpoint' = 55
    'Condenser Fan Shutdown Delay' = 2
    'Occupancy Request Time' = 120
    'Economizer Minimum Occupied Position' = 10


    // Fan status
    Switch ( 'Indoor Fan Status', 'Indoor Fan Motor CT', 1, 0.5)


    // Economizer control loop
    'Economizer Control Loop.Integral_Constant' = Economizer
    IfOnce Economizer On Then
    'Economizer Control Loop.Bias' = 50
    End If


    // Occupancy request timer
    IfOnce BI9 On Then
    'Occupancy Request Time Remaining' = 'Occupancy Request Time'
    'Occupancy Request' = On
    End If
    DoEvery 1M
    'Occupancy Request Time Remaining' = Limit ('Occupancy Request Time Remaining' - 1, 0, 'Occupancy Request Time')
    End Do
    If 'Occupancy Request Time Remaining' > 0 And 'Occupancy Schedule' Off Then
    'Occupancy Request' = On
    Else
    'Occupancy Request' = Off
    End If

  2. #2
    Join Date
    Jun 2012
    Location
    Northern NV
    Posts
    2,006
    Post Likes
    Thread Starter
    ...and here is the "occupied" PG:


    // Runs equipment in occupied mode

    // Define variables
    Variable coolRequired As Integer
    Variable heatRequired As Integer
    Variable stagesOfCooling As Integer


    // Control fans
    'Indoor Fan Enable (G)' = On
    //'Exhaust Fan Enable' = On
    Switch ( 'Exhaust Fan Enable', 'Economizer 1-10Vdc', 60, 50)


    // Set active setpoints
    'Active Cooling Setpoint' = 'Occupied Cooling Setpoint'
    'Active Heating Setpoint' = 'Occupied Heating Setpoint'


    // Determine if heating is required
    Switch ( heatRequired, 'Indoor Air Temperature', 'Active Heating Setpoint', 'Active Heating Setpoint' + 1.5)

    // Control heating 1st stage
    'Heat W1' = heatRequired
    // Control heating 2nd stage
    If 'Heat W1' Off Then
    'Heat W2' = Off
    ElseIf 'Heat W1' OnFor 10M And 'Indoor Air Temperature' < 'Active Heating Setpoint' - 2 Then
    'Heat W2' = On
    ElseIf 'Heat W2' OnFor 10M And 'Indoor Air Temperature' > 'Active Heating Setpoint' + 0.5 Then
    'Heat W2' = Off
    End If

    // Determine if cooling is required
    Switch ( coolRequired, 'Indoor Air Temperature', 'Active Cooling Setpoint', 'Active Cooling Setpoint' - 1.5)

    // Determine if economizer is allowed
    Economizer = coolRequired * Switch ( Economizer, 'Outside Air Temp (Transferred)', 'Return Air Temperature' - 2, 'Return Air Temperature')
    'Economizer 1-10Vdc' = Limit ('Economizer Control Loop' * Economizer, 'Economizer Minimum Occupied Position', 100)

    // Control cooling 1st stage
    If coolRequired Off Then
    stagesOfCooling = 0
    ElseIf Economizer Off Or (('Economizer 1-10Vdc' = 100) OnFor 10M) Then
    If (('Compressors Required' = zero) OnFor 10M) And 'Indoor Air Temperature' > 'Active Cooling Setpoint' + 1 Then
    stagesOfCooling = 1
    End If
    End If
    // Control cooling 2nd stage
    If (('Compressors Required' = one) OnFor 10M) And ((stagesOfCooling = 1) OnFor 10M) And 'Indoor Air Temperature' > 'Active Cooling Setpoint' + 1 Then
    stagesOfCooling = 2
    ElseIf (('Compressors Required' = two) OnFor 10M) And 'Indoor Air Temperature' < 'Active Cooling Setpoint' - 1 Then
    stagesOfCooling = 1
    End If
    // Control cooling 3rd stage
    If (('Compressors Required' = two) OnFor 10M) And 'Indoor Air Temperature' > 'Active Cooling Setpoint' + 2 Then
    stagesOfCooling = 3
    ElseIf (('Compressors Required' = three) OnFor 10M) And 'Indoor Air Temperature' < 'Active Cooling Setpoint' - 0.5 Then
    stagesOfCooling = 2
    End If
    // Control cooling 4th stage
    If (('Compressors Required' = three) OnFor 10M) And 'Indoor Air Temperature' > 'Active Cooling Setpoint' + 2 Then
    stagesOfCooling = 4
    ElseIf (('Compressors Required' = four) OnFor 10M) And 'Indoor Air Temperature' < 'Active Cooling Setpoint' Then
    stagesOfCooling = 3
    End If

    'Compressors Required' = 1 + stagesOfCooling

    // Lockout compressor until eceonmizeron for 10 minutes
    If Not (Economizer OnFor 10M) Then
    'Compressors Required' = zero
    End If

  3. #3
    Join Date
    Jun 2012
    Location
    Northern NV
    Posts
    2,006
    Post Likes
    Thread Starter
    So, latest. Being as the casino was getting quite warm, I loaded an archived file from two weeks back. Now, some of the units are simultaneously running a/c and HEAT.... I thought you controls guys were more on top of things..

    Where or how can I get a quick tutorial on the programs I posted above? I need to take matters into hand and welcome assistance for a fella tech...

  4. #4
    Join Date
    Jan 2003
    Location
    USA
    Posts
    4,941
    Post Likes
    Quote Originally Posted by Juan Madera View Post
    I thought you controls guys were more on top of things..
    We are a coin operated bunch.

    Following though a few pages of random line code isn't a hobby for most.
    Propagating the formula. http://www.noagendashow.com/

  5. Likes stanbyyourword liked this post.
  6. #5
    Join Date
    Jun 2012
    Location
    Northern NV
    Posts
    2,006
    Post Likes
    Thread Starter
    That's what I am finding.....

    Open wide and I'll drop in a quarter.

    Thanks.

  7. #6
    Join Date
    Sep 2007
    Location
    Under the sea
    Posts
    271
    Post Likes
    I'm not particularly fond of switch functions.
    First thing I would do is track down the 'Active Heating Setpoint" and 'Active cooling setpoint" AVs to find out where they're controlled from and if someone has them overridden in manual with values that don't make sense.

    In the code you posted, if both set points are the same, you'll probably get heating and cooling on at the same time.
    Last edited by AutoPilot; 05-25-2018 at 12:46 PM. Reason: spelling error
    In case of malfunction-Reconnect brain BEFORE starting mouth.

  8. #7
    Join Date
    May 2018
    Location
    Houston
    Posts
    46
    Post Likes
    Not a big programmer so i cant help much but cant you drop in Boolean logic to make sure the cooling and heating don't both show true at the same time and if they do then you throw an alarm or if the guy is right and they are too close together put in logic to make sure you cant have them both pushed together like that so if cool equals 70 then heat cannot be greater than or equal to cool minus 2....

    also i dont program in whatever this language is but why do you ad 1.5 to the heat instead of subtract and subtract on the cooling when you would want it to be warmer to cool and colder to heat... or atleast thats how im looking at it but the syntax doesnt quite make since with the commas

  9. #8
    Join Date
    Jun 2012
    Location
    Northern NV
    Posts
    2,006
    Post Likes
    Thread Starter
    Pilot... No manual entries, first thing I looked for, but thanks. Can you explain "switch functions?"

    Heinous... I am not a programmer either, but I may need to learn... Valid thought on the +/- thought. I posted this in hopes that someone who does program for Delta might see some very obvious code that is not right. I do not and will not "fool with" any of the code without someone leading/educating me.

    Thanks both of you!

  10. #9
    Join Date
    May 2018
    Location
    Houston
    Posts
    46
    Post Likes
    well to me it looks like they are adding and subtracting because a thermistor will show 69.9 so you dont want the heat to kick on and they are bypassing real PID looping by just saying wait 1.5 degrees so i bet if you switch it your good on them running at the same time because without a PID loop you get over cooling and at half a degree 71.5 your heat will kick on if Im right and then your cooling is going to stay on until 70.5

  11. #10
    Join Date
    Apr 2009
    Location
    chicago
    Posts
    107
    Post Likes
    Function

    Switches a value ON or OFF based on analog input values. The value being switched must be binary.

    Syntax

    { output = } SWITCH ( output, input-expr, on-expr, off-expr )

    Comment

    SWITCH simulates the operation of a conventional ON-OFF thermostat.

  12. Likes Juan Madera liked this post.
  13. #11
    Join Date
    Apr 2009
    Location
    chicago
    Posts
    107
    Post Likes
    Looks like you have all the basics.
    but its missing the custom stuff.
    like ;
    no heat above osa of xxF
    or
    no cooling below osa of xxxF
    helps stop the heating/cooling together thing you noticed, when
    setpoints are close together,
    i use a H/C changeover delay to further stop htg/clg from starting,
    and maybe something for optimizing cooling staging,
    when changing from unocc to occ ,85 to 72F
    so it doesn't go to 4 stg clg immediately on Occ mode,
    but yea, essentially thats what you do
    to make a multistage thermostat,
    its bangbang control so your always cycling something to try
    and get the capacity to match the space load,
    osa can add stability if you have a problem with that,
    and osa is the one thing that separates a standalone tstat from a ddc one, eh,

  14. Likes Juan Madera liked this post.
  15. #12
    Join Date
    Dec 2006
    Location
    What? Who? Where?
    Posts
    2,476
    Post Likes
    Let me guess, ATC?
    Probably took the lowest price for the job and they sent their lowest paid tech/programmer to the project.

    kontrol out
    "Good" - Jocko
    "Open is as open does." - Forrest Gump
    "Can't we all just get a Lon?" - Garry Jack
    "BACnet: integration or interrogation?" - The Janitor
    "Interoperability? You can't handle interoperability!" - Nathan R. Jessup
    “What’s that? Aaa… open protocols? Don’t talk about…. open protocols? Are you kidding me? Open protocols? I just hope we can hardwire an interface!” - Jim Mora Watch it here!

  16. #13
    Join Date
    May 2018
    Location
    Houston
    Posts
    46
    Post Likes
    if thats the way the switch works shouldnt there be an operator saying less than and more than those tempertures because otherwise the switch shouldnt know which is which and also its still written wrong because its heating untill its over the setpoint not to the setpoint and cooling until its a degree and a half under not to the setpoint... sooo....

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •