I was wondering if someone may have some sort of Best ++ programming manual available? Or maybe some examples of some programs? I want to see some examples so I can see Carrier's syntax and there commands.
just about anything really. I just want to see some examples to get an idea of how Carrier programming is laid out. Maybe some math programs, or reset programs for boilers or AHUs.
Thanks for the manual.
I am getting ready to set up a 1600 universal controller. Is there a manual that may help me understand what all the parameters in each of the tables means?
just about anything really. I just want to see some examples to get an idea of how Carrier programming is laid out. Maybe some math programs, or reset programs for boilers or AHUs.
Thanks for the manual.
I am getting ready to set up a 1600 universal controller. Is there a manual that may help me understand what all the parameters in each of the tables means?
Thanks for you help.
Are you working with a Universal Controller [UC16] or a Comfort Controller [CC1600]. There is a difference as you can't use BEST++ on a UC16.
Originally Posted by Qui-Gon Jinn (Star Wars Episode 1)
"The ablilty to speak does not make you intelligent!"
Are you working with a Universal Controller [UC16] or a Comfort Controller [CC1600]. There is a difference as you can't use BEST++ on a UC16.
I will have to check and see what is on the job when I go out there.
I do have a question regarding Best ++. When I am referencing certain variables in a controller do I have to type in the point name exactly as it appears in the CCN table in the comfort controller? Like for instance if I want to reference the supply air temperature, and the point name is SAT. Do I just reference SAT in my program?
I will have to check and see what is on the job when I go out there.
I do have a question regarding Best ++. When I am referencing certain variables in a controller do I have to type in the point name exactly as it appears in the CCN table in the comfort controller? Like for instance if I want to reference the supply air temperature, and the point name is SAT. Do I just reference SAT in my program?
A UC16 is beige, a CC1600 is white. The UC16 is an entry level controller with a set of built-in algorithms to perform tasks with 8ins/8outs, it will not hold any BEST++. The CC1600 is a higher level, no expandable controller so it has 8ins/8outs. The built-in algorithms are larger and can handle most programming without BEST++.
I can take a CC1600 and program cooling towers, chillers, ahu's, etc and do it most of the time without BEST++. I typically only need it when there is an odd control sequence.
Below is an example of a pump lead/lag I use in conjunction to a built-in pump algorithm. The top section in red loads the variables you need in the BEST++, the under TASK in blue it executes.
CWP3_SS & CWP4_SS are the pump start/stops, CWP3_ST & CWP4_ST are the pump status's and PUMP_02 is loaded to read/write certain variables in the built-in pump algorithm
PROGRAM PH_6 {PH_6,"CWP Pump Fail",0}
CONNECT CWP1SS AS DISC_OUTPUT {CWP3_SS,0,79}
CONNECT CWP2SS AS DISC_OUTPUT {CWP4_SS,0,79}
CONNECT CWP1ST AS SENSED_DISC_INPUT {CWP3_ST,0,75}
CONNECT CWP2ST AS SENSED_DISC_INPUT {CWP4_ST,0,75}
CONNECT CWP AS DO_PUMP_CONTROL {PUMP_02,0,112}
TASK CWP_RESET {,,5,8,1,60}
AUTO CWP1SS
AUTO CWP2SS
STEP FAILCHECK
IF CWP.PUMP.FAIL EQ 1 THEN
GOTO ONE
ENDIF
DELAY CWP_RESET (1)
REPEAT
STEP ONE
TURNON CWP1SS
TURNON CWP2SS
IF CWP1ST EQ 1 THEN
DELAY CWP_RESET (5)
TURNOFF CWP2SS
DELAY CWP_RESET (5)
CWP.PUMP.ROTATNOW = 1
DELAY CWP_RESET (10)
WHEN CWP.PUMP.FAIL EQ 0
GOTO TWO
ENDIF
IF CWP2ST EQ 1 THEN
DELAY CWP_RESET (5)
TURNOFF CWP1SS
DELAY CWP_RESET (5)
CWP.PUMP.ROTATNOW = 1
DELAY CWP_RESET (10)
WHEN CWP.PUMP.FAIL EQ 0
GOTO TWO
ENDIF
DELAY CWP_RESET (2)
REPEAT
STEP TWO
IF (CWP1SS EQ 1) AND (CWP.PUMP.LEADPMP EQ 2) THEN
CWP.PUMP.ROTATNOW = 1
ENDIF
IF (CWP2SS EQ 1) AND (CWP.PUMP.LEADPMP EQ 1) THEN
CWP.PUMP.ROTATNOW = 1
ENDIF
AUTO CWP1SS
AUTO CWP2SS
ENDTASK
Originally Posted by Qui-Gon Jinn (Star Wars Episode 1)
"The ablilty to speak does not make you intelligent!"
A UC16 is beige, a CC1600 is white. The UC16 is an entry level controller with a set of built-in algorithms to perform tasks with 8ins/8outs, it will not hold any BEST++. The CC1600 is a higher level, no expandable controller so it has 8ins/8outs. The built-in algorithms are larger and can handle most programming without BEST++.
I can take a CC1600 and program cooling towers, chillers, ahu's, etc and do it most of the time without BEST++. I typically only need it when there is an odd control sequence.
Below is an example of a pump lead/lag I use in conjunction to a built-in pump algorithm. The top section in red loads the variables you need in the BEST++, the under TASK in blue it executes.
CWP3_SS & CWP4_SS are the pump start/stops, CWP3_ST & CWP4_ST are the pump status's and PUMP_02 is loaded to read/write certain variables in the built-in pump algorithm
PROGRAM PH_6 {PH_6,"CWP Pump Fail",0}
CONNECT CWP1SS AS DISC_OUTPUT {CWP3_SS,0,79}
CONNECT CWP2SS AS DISC_OUTPUT {CWP4_SS,0,79}
CONNECT CWP1ST AS SENSED_DISC_INPUT {CWP3_ST,0,75}
CONNECT CWP2ST AS SENSED_DISC_INPUT {CWP4_ST,0,75}
CONNECT CWP AS DO_PUMP_CONTROL {PUMP_02,0,112}
TASK CWP_RESET {,,5,8,1,60}
AUTO CWP1SS
AUTO CWP2SS
STEP FAILCHECK
IF CWP.PUMP.FAIL EQ 1 THEN
GOTO ONE
ENDIF
DELAY CWP_RESET (1)
REPEAT
STEP ONE
TURNON CWP1SS
TURNON CWP2SS
IF CWP1ST EQ 1 THEN
DELAY CWP_RESET (5)
TURNOFF CWP2SS
DELAY CWP_RESET (5)
CWP.PUMP.ROTATNOW = 1
DELAY CWP_RESET (10)
WHEN CWP.PUMP.FAIL EQ 0
GOTO TWO
ENDIF
IF CWP2ST EQ 1 THEN
DELAY CWP_RESET (5)
TURNOFF CWP1SS
DELAY CWP_RESET (5)
CWP.PUMP.ROTATNOW = 1
DELAY CWP_RESET (10)
WHEN CWP.PUMP.FAIL EQ 0
GOTO TWO
ENDIF
DELAY CWP_RESET (2)
REPEAT
STEP TWO
IF (CWP1SS EQ 1) AND (CWP.PUMP.LEADPMP EQ 2) THEN
CWP.PUMP.ROTATNOW = 1
ENDIF
IF (CWP2SS EQ 1) AND (CWP.PUMP.LEADPMP EQ 1) THEN
CWP.PUMP.ROTATNOW = 1
ENDIF
AUTO CWP1SS
AUTO CWP2SS
ENDTASK
Thanks a lot... That really helps out. I have a question about the part in red. Where you have the name and numbers in {} I am assuming that it the exact point name in the controller along with the element and bus number correct?
With a CONNECT you do not need the bus/element as you are in the same controller. A NETWORK POINT would require the bus/element as the program need to go to another controller.
If you paste the Syntax from BEST++, it will look like the example below for a Discrete Output.
CONNECT discro AS A DISC_OUTPUT {,0,}
I replace the discro with the name I want to use in the program as they need to be unique. Then in the {}, the Point Name goes before the the first ,. When you compile it adds other information, believe it pertains to the point type or something.
The numbers in the {} after the TASK CWP_RESET is also added when you compile. I do know the second number [8] pertains to the force proirity that BEST++ applies to points that are written. The last number [60] pertains to the startup time delay, basically if the controller reboots it will delay 60 seconds before running the task.
Originally Posted by Qui-Gon Jinn (Star Wars Episode 1)
"The ablilty to speak does not make you intelligent!"