Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Controller with 8 in/outputs

  2. Controller with 16 in/outputs

  3. Controller with 32 in/outputs

Writing code

Controller syntax

Syntax

In these controllers, code can be written to translate certain controls.

...

  • assignment statements

  • if and if-else statements (if, else if, else)

  • switch statements

  • comments : single line (//) and multiline (/*...*/)

  • operators :

    • increment operators (++ and --)

    • unary operators (- and !) 

    • binary operators : power (^), multiply (*), modulo (%), divide (/), sum (+), min (-)

    • ternary operator (a = x ? b : x)  see https://www.freecodecamp.org/news/c-ternary-operator/

      • Example: Switch command

        • If Switch = 1 : Output= a , else output = b

          Code Block
          Output = (Switch ==1) ? a: b;
    • conditional operators (|| and &&)

    • comparison (<=', >=, >, <, ==, '!=)

    • mathematical functions : exp, ln, sin, cos, tan, sqrt, min(x1, x2), max(x1, x2), abs, floor, ceil, sgn (signum)

Input/output assignment

The controller needs to interact with the hydronic system. For this purpose, we can feed inputs to the controller and can give outputs to the system.

To assign a variable to an input in the programmeable controller, you can use: parameterName=in1;

Following the same logic, you can provide outputs as: out1=parameterName;

Initialisation

When using a variable that has not been defined before, the controller will equal the new variable to 0. This functionality can be used for initialisation purposes with the following topology:

...

  • time : the time variable of the simulation

  • timestep: the timestep of the simulation

Example code

here is an example with code : example.txt

Note that the inspiration library is filled with written code like this, so be sure to look here for inspiration.

Most Common errors

A non-parseable code will cause the simulation to fail. Below, you can find a list of the most common errors when writing code in the programmeable controller:

  • No semicolon ( ; ) at the end of a line

  • Incorrect usage of ‘==’ (for if-statement) and '='

  • Not closing { } or ( ) brackets properly

  • Instead of having semicolon at the front of the comment, accidentally put // ;

  • Usage of an underscore ( _ ) is not allowed in parameter naming

  • Spelling mistake in parameter names. Code is case-sensitive