How to use Bacnet in CPU to CPU point communication with Fidelix CPU:s
Bacnet can be used in CPU to CPU point communication when a faster communication is needed than what can be achieved with global points.
This is especially useful when a measurement and a control point that uses that measurement are in different CPU:s.
First you have to activate Bacnet in the CPU:s.
- Sign in to the CPU using your credentials.
 - Click on dropdown menu that reads "Usermode" and choose option "Settings".

 - Click on dropdown menu that reads "Select category" and choose option "Activations".

 - Copy the Product code for "Bacnet Functionality".
 - Sign in to "support.fidelix.fi" and choose option Product activation.
- If you do not have an account the site contains information on how to aquire an account.
 
 - Paste the copied product code to the product code field and fill in project information.
 - Click Order.
 - You will see a page with 6 digit "ActivationKey". This will also be sent to you in email.
 - Copy the activation key and paste it to the activation key field in the CPU:s activations page.
 - Click "Change".

 - Bacnet is now activated to this CPU.
 
Next You have to set up Bacnet in the CPU.
- Click on dropdown menu where you previously chose "Activations" and choose option "System setup".

 - You will see a box with "BACnet Device Settings". Activate BACnet IP and choose an ID for the CPU. For example the ID could be the last 4 digits of CPU:s IP address.

 - Click "Change".
 
Next you can start setting up the points that will be using Bacnet.
- Measurements
- In the CPU writing the point to another CPU, select from the first dropdown menu "Programming" and from the second menu "Measurements"

 - Locate the point you wish to write to another CPU.
 - From the points programming options activate "Bacnet Server Object". At this point you can choose identifying number for the point or allow it to be set automatically.

 - Click "Change".
 - Then from the CPU that is reading the point from the first CPU go to "Programming" and "Measurements" page.
 - Locate the point to witch you wish to read the value from the other CPU.
 - From the points programming options activate "External Bacnet Object".

 - Choose port "Bacnet IP

 - Click on "Devices" button
 - A list will appear showing all CPU:s in the network that have Bacnet enabled.

 - Click on the CPU that you want to read a point from.
 - A list will appear showing all points that can be read from the CPU.

 - Click on the point you want to read
 - A list will appear showing information from the point.

 - Click on the row: "present-value".
 - The choices made will now show on the points programming options.

 - Click "Change".
 - The value of the point is now read from the other CPU with Bacnet.
 
 - In the CPU writing the point to another CPU, select from the first dropdown menu "Programming" and from the second menu "Measurements"
 -  Indications/alarms
- With indication and alarm points most of the settings are the same as with measurements, except that the object type will be "Multi-state Input".
 - Again activate "Bacnet Server Object" from the points programming options. Identifying number can be chosen also or it can be automatically set.

 - Click "Change".
 - Go to points programming of the point where you want to read the value from the other CPU and activate "External Bacnet Object".

 - Choose port "Bacnet IP".
 - Click on "Devices" button.
 - A list will appear showing all CPU:s in the network that have Bacnet enabled.
 - Select the CPU where you want to read the point value from.
 - A list will appear showing all points that can be read from the CPU.
 - Select the point you want to read.
 - A list will appear showing information from the point.
 - Select "present-value".
 - Click "Change".
 - The value of the point is now read from the other CPU with Bacnet.
 
 
 Important to note with "Multi-state Input" Bacnet objects is that the value of the point will increase by 1 when read through Bacnet. So if the value at the CPU writing the point is 0 the CPU reading the point will get value 1 and if the value at the CPU writing the point is 1 the CPU reading the point will get value 2. So this must be considered when programming functions that use these points.