Welcome to i.CanDrawIt® graphical programming
for Building Automation and Facility Management.

i.CanDrawIt® Control Library

Comparison function blocks will accept numeric data, and produce either a one or zero at the function block output. The comparison output is type cast as integer.

Reference to "low to high transition" means change in data value from zero to non-zero. A logic low is interpreted as zero. A logic "high" is interpreted as any non-zero value as input data, but a value of strictly one as output data.

Reads I/O object given as input, provides result as floating point.
Reads I/O object given as input, provides result as unsigned integer.
Reads I/O object given as input, provides result as signed integer.
Writes I/O object given using floating point data.
Writes I/O object given using integer data.
Performs conditional write to I/O object given using floating point data. The I/O update is performed only if the conditional input (top) is non-zero.
Performs conditional write to I/O object given using integer data. The I/O update is performed only if the conditional input (top) is non-zero.
Comparison result Y is true if A > B.
Comparison result Y is true if A >= B.
Comparison result Y is true if A < B.
Comparison result Y is true if A <= B.
Comparison result Y is true if A equals B.
Comparison result Y is true if A is not equal to B.
Performs three comparisons on the same A and B inputs. Output Y1 is true if A < B, Y2 is true if A = B, and Y3 is true if A > B.
Event counter, increments on low to high transition of INC input, and decrements on low to high transition of DEC input. RESET clears count when high. COUNT output is an integer count >= 0.
Elapsed time counter, counts seconds while RUN input is logic high. Count is reset to zero when CLEAR input is logic high.
One shot pulse generator, sets output OUT high for a time period defined by the period parameter that may be edited on the drawing. The pulse begins upon low to high transition of the TRIG input, and is cleared upon low to high transition of the CLEAR input. The duration of the pulse will be the one shot period measured from the most recent TRIG transition, except that it will be shortened by the CLEAR input if activated.
Continuous pulse generator, produces an output that toggles between high and low every N ticks where N is a period that may be edited on the drawing. There are 10 ticks per second, therefore the integer count N is tenths of seconds.
Delta timeout has two parameters that may be edited on the drawing: A period in seconds, and a delta value which is any integer value. The VAL input is an integer value to be monitored. Upon the low to high transition of the TRIG input, a timer will be started. Upon timeout of that timer, if the VAL input has not changed by at least the Delta parameter, the FAULT output will be set high. A low to high transition on the CLEAR input will reset the timer and clear the fault output.
Sequencer, sets outputs OUT1 through OUT8 high in sequential order. Initially OUT1 is high and all others are low. Upon low to high transition of the ADV input, the sequencer will step to the next stage. After OUT1 being high, it will be set low while OUT2 is set high, and so on. After OUT8, this particular sequencer will roll over and return to OUT1 high, and the sequence may continue indefinitely. A static high on the RESET input will reset the sequencer and hold it at the initial stage with OUT1 high.
Scale function block, provides the same scaling as the MATH_FX function block with one difference: The math version has slope and intercept fixed as program parameters. The version here gets its slope and intercept from input pins, which are likely to be connected to I/O objects functioning as storage registers, or to EEPROM registers. The formula is:

OUT = IN * SLOPE + INT

PID loop, single output, single variable. Loop parameters may be edited on the drawing. Loop is generalized and will require adaptation via setting of P, I, D terms and related parameters.
PID loop, dual output, single variable. Loop parameters may be edited on the drawing. Loop is generalized and will require adaptation via setting of P, I, D terms and related parameters.
Accepts integer input value in range of 0-100%, produces time proportioned output of 0 or 1 (usually routed to Binary Output) which is at logic 1 for input % of cycle period.
Accepts floating point input value in range of 0-100%, produces time proportioned output of 0 or 1 (usually routed to Binary Output) which is at logic 1 for input % of cycle period.
Provides storage mechanism for retaining a non-volatile data value in the controller's EEPROM memory. The floating point value at the IN input will be written to EEPROM upon a low to high transition of the STORE input. The previously stored floating point value is available at the OUT output.
Provides storage mechanism for retaining a non-volatile data value in the controller's EEPROM memory. The integer value at the IN input will be written to EEPROM upon a low to high transition of the STORE input. The previously stored integer value is available at the OUT output.
Performs EEPROM validation for floating point values including first time initialization of a value.
Performs EEPROM validation for positive integer values including first time initialization of a value.
Produces constant value of zero for connection to unused inputs on other function blocks.
Produces constant value of one for connection to unused inputs on other function blocks.
A connectionless container for placing common library code, especially #LABEL definitions if used. This FB must be the last one in the drawing sequence (highest FB number).