Tutorial 2: Assemblies and projects

In this second tutorial we will continue introducing some key concepts of VIGO6 and you will learn how to use your component and locate it in hardware.

We will continue with the component created in tutorial 1 and use an instance of the component in an assembly, a main assembly and a project and we will run our program on a test bed. 

The below illustration shows what you will build in this tutorial. The red dots indicate tutorial steps.


The tutorial alternates between information and "hands on" exercises using the information just presented and supported by "how-to"-live demonstrations. These demonstrations are identified by this icon: 

Now - lets get started.


A normal mechanical assembly (drawing) specifies a number of mechanical components and how to join them together. The assembly can be used to produce many identical units of same type.
A COPP assembly type is similar. It specifies a number of COPP types and their interconnections.  


Step 1: Create an assembly.

First step is to create an assembly for the temperature regulator:
Select ‘Create new type’ on the main button menu and select ‘Assembly’.
Rename to XX_Temperature_regulator_simple_assembly
Right click to add an instance of your control component (XX_Temperature_regulator_simple).

Note that variables are no longer visible and that only a subset of the methods (those declared as external) are visible. You can still see the instance constant, the registers and the connectors.

Right click to add an instance of  temperature input transmitter interface PD_2855 Temperature_input_4_to_20_mA. Rename to "Temperature input"
Right click to add an instance of the output interface PD_2823 Digital_1A_DC_output. Rename to "DC Output"

Now find the the control component instance and right click on the Temperature connector and connect it to the just added temperature input transmitter interface.
Connect Output in the same way to digital DC output. Note that the editor only allows establishing a connection to a component of the specified type.

Configure the instance constant in your control component instance "Regulating_interval" to 2 seconds.


Automation of a plant is specified in a project. It is not a type, it specifies a specific plant.

Attributes of a project include:
Name of the company,
Phone number
Internet IP address
Colour theme
Local unit table
Languages for visualization
Serial numbers for the devices

The project also must include a Main asssembly, containing the control components, interconnections and devices necessary to build and run the plant automation.

By separating languages, units, color themes and module serial numbers from the control logic an assembly can be reused without any customization or recoding in different locations/countries simply by creating different projects and adding an assembly instance to each project

Step 2: Create a project 

  • Select "create new type" and select project.
  •  Rename the project to: XX_Temperature_regulator_simple_project



Step 3: Creating a main assembly 

More about assemblies - main assembly

Now that we have an assembly that contain our control code and our interfaces to the outside world (our input and output), we are ready to decide which modules (and hence also networks) we need to run our setup. This we define in a Main assembly.

A Main assembly can contain:
Other Assemblies 
Devices (representing physical modules)

The Assembly shown here contains the following instances : 2 assemblies of Z-type, component Q, device W, device Y and Net H.

The components are located in devices, as guest components, using the memory and CPU of the device to run the methods.

The COPP type "net" represents the physical  P-NET supporting the protocols RS485 and UDP on Ethernet.

When devices are connected to a P-NET, the system automatically gives a node address to the device on the Net. Visualization of a P-NET will show the different devices connected to the net.


In COPP, a piece of physical equipment is represented by the COPP type "device". A device contain a CPU and some memory of various categories and can include I/O‘s with electrical connections to the plant. It contains Firmware and has room for Customware with Guest components. The control system “intelligence” is distributed into several Devices.

Step 4: Locate the control components.

Now you need to locate your software components in suitable hardware. For this tutorial we will use a PD 850 Multifunction module that contain both analogue and digital I/O as well as a processor, so all your components can reside in it.

Click on the PD 850 device. Double click on the components in the "Not located elements" and they will move to the "Located elements".

Step 5: Setting up your test environment.

Now you need to set up your test environment. For this tutorial you need a PD 850,  a PD610 and a PD COPP PC. 

Connect one input (a 4-20mA  slider) to terminals 10 and 30(GND)

Connect one output (green or red LED) to terminal 01 and 21(GND).

Install your PD COPP PC by copying it from the USB device to your hard disk. Make note of where you install it. You will need to find it again to start the device.

Step 6: Finalising your project, downloading your code and testing your regulator.

In your project add your main assembly "XX_Temperature_regulator_simple_main".

Find the "Project Downloader device" in the "download" assembly and set it as downloader.

Add your visualisation "Window_for_XX-temperature_regulator_simple"as guest view on the device "COPP PC with display"

Key in the serial numbers of the modules into the corresponding devices (PD 850, PD 610, Display device AND project downloader device). SN for project downloader device is 20327971.

Save and build. 

Make sure that the COPP PC is started and the power is on on the modules. Connect the test bed (PD 610) to the PC via an USB-Ethernet Adaptor (we recommend D-link-1312).

Press the "Start project downloader" button.
A system window opens and you press "config all modules". Wait for the program to finish. Check that there are no failed modules.

Now your code is loaded into the modules.
Now your display PC will show you the visualisation and you can change the input by moving the potentiometer, change the set point by keying in a value and see how the output indicator change from on to off, depending on the temperature and the set point.

Now let us move to the next tutorial where you learn how to add data logging.