• Recent
    • Tags
    • Popular
    • Register
    • Login

    Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

    Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website Mango 5 Documentation Website

    Chilled water plant logic

    Scripting general Discussion
    4
    5
    2.9k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      Rodrigo
      last edited by

      Hi guys,
      I need a hand to produce some sort of logic (within Mango or DGLux) for the following scenario:

      I have a chilled water plant that comprises three Water Chillers, I need to setup a logic for the control of this plant as follows:

      • If the ambient temperature is above 17 °C start one unit at 6.00 am.
      • If the ambient temperature continues to rise and reaches a 25 °C value, start the second unit.
      • If the ambient temperature continues to rise and reaches a 35 °C value, start the third unit.
      • This should happen Monday through friday from 6.00 am to 5.00 pm., at this time all running units should shutdown.
      • Units should cycle weekly (i.e. unit 1 transforms in to unit 2, unit 2 in to unit 3, unit 3 in to unit 1)
      • There's also an electric boiler that uses the same water loop, and it should start/stop in the same schedule, but only if the ambient temperature goes below 15 °C.

      Any help you can provide will be greatly appreciated.

      Thanks,
      Regards
      Rodrigo

      1 Reply Last reply Reply Quote 0
      • JoelHaggarJ
        JoelHaggar
        last edited by

        Hi Rodrigo,

        To start with I'll give you some tips on how you might do this and if you still need help we can look at writing a full script.

        In the Scripting Data Source create a binary Data Point and you could call it something like Chillers_Active. I would then create a Scheduled even with a CRON pattern like: Active at: 0 0 6 ? * MON-FRI Inactive at: 0 0 17 ? * MON-FRI Next create an event handler for this Scheduled event to turn the Binary point to true when it's active and false when it's inactive.

        Now you can write a script like:

        if (Chillers_Active && AT.value > 17)
        {
        chiller1.set(true);
        }
        

        I'll have to think more about cycling the chillers but you can probably do that with another scheduled event and some virtual data pionts.

        1 Reply Last reply Reply Quote 0
        • B
          btrombo
          last edited by

          Once you look at the scripting and figure it out you should be able to do this with ease. As for the cycling I would create two scripts. The first one as mentioned by Joel but instead of it turning chillers on have it turn virtual stages on (1-3). The second script will just assign stages to physical chillers and every week increment the stage number with loopback to 1 when greater than 4.

          Week 1: Stage 1 = Chiller 1, Stage 2 = Chiller 2, Stage 3 = Chiller 3
          Week 2: Stage 2 = Chiller 1, Stage 3 = Chiller 2, Stage 1 = Chiller 3
          Week 3: Stage 3 = Chiller 1, Stage 1 = Chiller 2, Stage 2 = Chiller 3

          This can all be done in one script, I just prefer a bunch of smaller scripts.

          1 Reply Last reply Reply Quote 0
          • R
            Rodrigo
            last edited by

            Thanks guys! I will give it a try and let you know how it goes,

            Regards,
            Rodrigo

            1 Reply Last reply Reply Quote 0
            • P
              Pedro
              last edited by

              Units should cycle weekly (i.e. unit 1 transforms in to unit 2, unit 2 in to unit 3, unit 3 in to unit 1)

              If the reason you want to cycle the units is to keep the operating hours similar between units, if you're tracking their total runtime hours, then rather than starting the "next" unit, you could start the unit with the lowest runtime. If you want the unit to be offline for a week for maintenance, then of course only check the runtime weekly.

              1 Reply Last reply Reply Quote 0
              • First post
                Last post