Find answers to common questions here. Not finding the answer you were looking for? Please send a mail to salesdepartment@proces-data.com

Field application update

How to make updates to your live systems

How can I download new Customware to a running system?
Program download using PD 688 If you require new features or program changes in a project and want to use a PD 688 as a device for download, e.g. on a running system in the field, you can do the following steps. STEP 1: Make the required updates to your project. STEP 2: Prepare the downloader PD 688
  • Add a new device as PD 688 to your project assembly and give it a proper name
  • Connect the new PD 688 to the desired network, e.g. IP
  • Add a visualization for the Configurator (PD_3184-nn - View_for_Configurator) as a Guest view for the new PD 688
  • Insert the right serial number for the new PD 688 in your VIGO6 project
  • Build the project
  • Download the Customware to the PD 688 and see that the download screen appears on the PD 688
  • Copy the ‘Output’ folder from the project folder in your VIGO6 library to a SD card. The ‘Output’ folder must be placed in the root of the SD card and the name shall be ‘Output’.
  • Insert the SD card in the PD 688
STEP 3: Use the PD 688 for download
  • Connect the new PD 688 to the running system in the field via the desired network
  • Switch on power for the new PD 688
  • Press the button for ‘Config all modules’ and new customware will be downloaded to all devices in the running system.
  • Your running system is now updated with new Customware.

Hardware modules

Tips on the COPP hardware modules and peripherals

Can I protect hardware installed on a motor vehicle?
Indeed you can! Simpy use the PD 690 Automotive Power Protection, DIN mounted via the base module BM018. For purchasing information contact salesdepartment@proces-data.com FYI - this module can be used with non-VIGO6 (or even non-PD hardware as well).
Can I work with GPS-positions in VIGO6?
Yes indeed. You have two options: Choose the PD803 COPP DPI which also include a GSM modem supporting 2G/3G and GPRS. Choose the PD947 GPS Navigation Receiver
Which NFC-TAGs work with the PD688 NFC-reader?
You can use cards, bracelets, keyhangers, stickers or any other vessel that contains a TAG of type NTAG210(Mifare Ultralight), NTAG213, NTAG 214 or NTAG216.  
Which printers work with VIGO6?
You need a PD688 or a PD803 to be able to print from VIGO6. The printer must:
  • be connected via USB
  • understand ESC/POS command format
We have tested two printers: EPSON TM-T88V-042 model M244A CITIZEN model CT-P293 Special note for the CITIZEN printer. The switches must be set as in the attached pictures in order to function correctly.

IT and Support

When something does not work, look here

Can I get PD-support on my program?
Your PD-contact person can help you sort out what kind of support is required and appropriate for your specific problem. If we need our VIGO6-experts to have a look at your problem, they will typically ask for a socalled support file. Instructions on how to generate a support file: Right click on the component title and select “Gather support info”. You are then asked to confirm to create a zip-file. Press yes and wait for the file to finish. Once the file is created either send it via e-mail or send a ftp-link.
How do I install VIGO6 to try it out?
Contact salesdepartment@proces-data.com or press the yellow tab on the right hand side of this screen and fill in the form.
My VIGO6-editor says offline, can I keep working?
You can continue working offline, i.e. creating and editing components, views etc and downloading program to your COPP-modules, on all the content in your local archive. Once back online you can push your work to the company archive (signer archive) for safe-keeping. The contents of your local archive (and that of the company archive) can be found in the editor by selecting "open"  "All types". FYI: The section "Draft types" contains a subset of the local archive. It holds all the stuff you are the writer of and that you have not yet pushed to the company archive (signer archive). So anything in the "Draft types"-section exist only on your local PC.  
Our company firewall is blocking the VIGO6-server, what do we do?
Your VIGO6 server hosted with PROCES-DATA communicates on port 35349 and the communication protocol is TCP, so if your company firewall is changed to allow communication on this port, you should be up and running.  
What sort of PC do I need to run the VIGO6-editor?
We have the following minimum recommendations for the workstation used to run the VIGO6-editor:
  • Minimum 3,6 GHz CPU
  • Minimum 6 GB RAM
  • A SSD-disk
Especially the SSD disk is important for the speed. We have seen 50-60 times speed improvements between using a non SSD-disk and a SSD-disk.


Understand the elements of VIGO6 and the COPP programming language.

Can I work with 0-10V inputs?
While the PROCES-DATA modules are designed for 4-20mA inputs (and outputs) it is possible to use a 0-10V input. Below is an example of a 0-10V level input transforming the 0-10V input signal to a length. It has basic error handling implemented and will signal to it’s supervisor if it has an error.  It can be operated in Manual feedback, auto and disabled. (for more info on the built in functionality of process components see https://www.vigo6.com/tutorial-7-control-mode-error-states-conditions/). The component is PD-18096 and in the documentation section you can see what it does (basically reading voltage and converting it to metres). We have also created a visualization for the component (PD-18048) and a visualisation for the assembly (PD-18117), but of course you also have the possibility to create your own visualisation. As is mentioned in the documentation for the component, it can only be located in a PD850 AND you need to set operator rights in order to edit and see the visualization. If you do not add any operator control, you will likely not see any fields on the visualizations we have made.  That is why I have added component PD-17553 Display interface control to the assembly, because then I can add the login/logout button to my assembly visualization, and play around with the operator rights. To see how the component can be used, there is a project called PD-18108.

If you want to interface to this component in your overall control component, then do it as a “supervisor-servant”-connenction.  Below you see how to access the “level in metres”

How do I change the automatically assigned channels?
First locate your components into devices – which will give you the automatic configuration. The method here is that the first output you add gets the first I/O channel, the first input you add gets the first I-channel etc. Only when all I-channels are filled up will the inputs get allocated to an I/O-channel. You can change the allocation by finding the Hardware interface of the component, right click and then select “Assign hardware interface to channel”. If you have “filled” all channels in the device, you can start by clearing the channel number on a few of the components, so you have space to move around.

How do I change units? I would like to have volume in litres and flowrate in either m3/h or L/min.
Using one of the predefined "Quantity <-> locat units relation table" All units in VIGO6 are stored as SI-units but can be displayed as any derived unit you want. Volume in Litres and flow rate in litres pr second are already defined and are e.g. used in the “quantity <-> local units relation table” PD_12849 Europe_metric_system_MID. So if you select that one in both project and editor, you will work in litres instead of m3.   Creating your own derived quantity If you want eg litres pr minute, you first need to create your own local unit. Open PD_13598 Volume_flowrate_l/s. Rightclick and select “create new type” now rename this new type to “Volume_flowrate_l/minute” and adjust the symbol to “l/m” and the scale to 60000 (1000 to go from M3/s to l/s and another 60 to go from l/s to l/m) You then need to create your own “quantity <-> local units relation table”. Open PD_12849 Europe_metric_system_MID. Right click and press “create new type”. Rename to eg” MYCOMPANYNAME_europe_metric_system” Then you right click on  “VolumeFlowRate” and select “Add local unit type” and choose the “volume_flowrate_l/minute” you just created. And then you press on the radio button next to your own unit.

The final step is then to select this new “quantity <-> local units relation table” in your project(right click on the project name and select “quantity <-> local units relation table”). You should also add it  in your editor (set on the setup screen).

How do we design our VIGO6-program?
Overall design: In general PD recommends to create components for “logical functions”. As an example , please see the below component structure for a milk tanker system. By following this methodology, you can use a broad range of physical components (pumps, valves etc) and combinations of them, without having to change any program code.  We have made a demo-project PD_17604-02 that implement the described component structure.   Using methods to reduce number of program lines: Should you find that a method becomes so large that you find it difficult to read, you have the option to create methods within the component, that you can call from your “too large” method. Examples of where additional methods could be an idea: a functionality used in many places , make a method for each state in a state machine. And remember that you can make a supervisor/servant-connection from one component to another and in this way get access to the methods and data in another component.  
I am not sure whether I need relay outputs or 1A DC outputs. How do I proceed?
In VIGO6, you do not need to know the specific final design of your outputs, or inputs for that matter. You can develop all your control code without deciding which type of digital output to use. In your control component, you add a connector or servant proxy to ” PD_2824-xx - Digital_output_base”. Now your control code can interface to any of the decendants of the digital output_base, illustrated in green colour in the inheritance diagram below.   Now you can write your control code that controls the (generic)output. See also: https://www.vigo6.com/tutorial-1-create-component/ Once the decision is made regarding the type of output, you can proceed. Let us assume that a relay output is selected. In your assembly you simply add the relay output component(PD-2825) and your control component, connect the two, and locate the relay component in PD850 and the control component in PD850 (or other suitable place) see also: https://www.vigo6.com/tutorial-2-assemblies-projects/
I have used VIGO5. Is it easy to move to VIGO6?
The programming language in VIGO6, called COPP, is similar in syntax to PROCESS-PASCAL, so this part should be no problem. And the VIGO6 platform contains many improvements that will make development easier, including:
  • In VIGO6 you build (and test) a functionality (a component) one time and can use it over and over. No copy paste - you just add the component to your assembly.
  • In VIGO6 you have a lot of ready-made components that you can use to construct your project. Eg pump- valve and flow-meter components.
  • In VIGO6, the visualisation is tied to a component or assembly, and can be reused over and over.
  • In VIGO6, you have better options for maintenance of exsting systems. There are no configurations done directly on the modules (as was the case in VIGO5), so when you locate your project for the system, you know what is running, can make the required updates and then build and download the new program and you are up-and running.
  • In VIGO6 a faulty module can be replaced on-the-fly. You simply remove the faulty module and plug in a new one, type in the Serial Number of the new module and you are back in business.
See also:https://www.vigo6.com/advantages-in-vigo6/
Is it possible to predefine users in a VIGO6 project?
While we suggest to use the NFC-reader in the PD688 display unit for easy login, you can also predefine users. We have created a control component  (PD_17553) and visualisation (PD_18202)that allow you to create 6 default users pr display unit pr project. These are instance constants in the control component, so once you have added the component to your project you simply define the default users you want. And of course remember to locate the component into the display unit. The user logs in with username + password OR with userID + password. Password and Usename is a (text)string. The string value is entered as plain text in the “AdaptString” cell. See example for Operator 0. NoOfElements is the string length, 0,1,2,3 …  is the elements of the string. So since NoOfElements is 20, the password can be up to 20 characters long.

Tip: To add the visualization, you need to find the  get/set method of the “Operator_log_in” (see the attached screendump)

Please explain more about the advantages of the supervisor/servant-model
All the subcomponents marked with X are servant proxys. They create a supervisor/servant communication channel between a supervisor component and a servant component. So this is how your components communicate with each other. In the supervisor/servant-model, one supervisor component can control many servant components. A servant can only have one supervisor (but see later about connectors though) The supervisor/servant communication method is described in tutorial 4 https://www.vigo6.com/tutorial-4-introducing-proxy-model-supervisorservant/ The advantage of using supervisor/servant is that the data from the servant that you see in the supervisor is validated, so eg. you will get “invalid” if your servant component is not able to communicate (module down, network down etc). Another advantage is that the supervisor is automatically notified whenever there is a change in the data of the servant (the actual register is updated and the method “calculate actual” is called in the supervisor”).  So you do not need to ask the servants all the time about their status and data, as they will tell you themselves. If you need more than one component to control a component (inputs and outputs are represented in VIGO6 as components also) you can add a connector. The connector is created in the section “connection to external components”. The connector is a different way of communicating between two components. You have no “automatic notification” as you have in the supervisor/servant communication model. For further information and inspiration of what the supervisor/servant communication can do for you, please check out tutorial 8 where a servant component can expose it’s error state and control condition as a combination of its own state/condition and the state/condition of its servants. This is an out-of-the-box way of creating a very intuitive monitoring system where the system will show you and guide you to where the problem is. https://www.vigo6.com/tutorial-8-exposing-temperature-regulator-servant-supervisors/ Connectors are described in tutorial 1 step 5: https://www.vigo6.com/tutorial-1-create-component/


Tips and tricks on building awesome visualisations for your components and assemblies

Can I change the default keyboards?

Yes you can. Please see the attached guide for detailed instructions on how to create your own keyboard.

How can I add a button in a view that opens another (full screen) view of my choice?
Have a look at this tutorial: https://www.vigo6.com/tutorial-6-adding-views-main-view/ It explains how to add either standard buttons  or custom made buttons NB! The view always opens in the size it was built in, there is no “show on full screen”-mode. But as long as you design your view for your maximum screen size you will get the desired effect.
How do I create a swipe-view?
A swipe view consists of a number of frames that the user can swipe between. The program code can determine which frame to show on swipe left/swipe right. Default, the first frame in the view list is shown and swipe order is determined by the order in which the frames are added to the view list. Each frame has a “Show” property when added to the view list. If the actual logged-in users rights  is not ticked in the frames list, the swipe will skip this frame and jump to the next visible frame.   For control components: First create a “basic view” based on PD_11813 - Comp_view that has the size you want and contain eg. header and any buttons you want to be on all views (do not bother with forward/back arrow – they will come automatically). Build each individual frame for the swipe using your “basic view” as your template. Build your swipe by using this view as your base:  PD_15398 Basic_swipe_view_for_component and then placing the individual frames in the view list of this view. Remember to set the size of this view to the same size as you selected for your “basic view”.   For assemblies: Same as control components but create a “basic view” based on PD_13556 - Asm_view and build your swipe by using this view as your base:  PD_15452 Basic_swipe_for_assembly. The first two elements in the view list for the PD_15398 and PD_15452 are buttons to swipe left or right and they automatically work. The first frame in the view list will be shown first, and then the second etc.

FYI: Process components have a predefined set of frames with pre-programmed “swipe-logic”. They are based on  “PD_15399-17 - Swipe_View_for_Process_component_100_x_75”. See https://www.vigo6.com/tutorial-7-control-mode-error-states-conditions/ for examples on how they work. Process assemblies (as e.g. valve or pump) have a special swipe-control which give an “assembly process component” the same swipe-logic as a process component. They are based on “PD_15453-15 - Process_swipe_for_assembly”.
How to set language and operator access rights for visualization and printouts?
A project may have more than one device for visualization and printing. A project can define up to four different languages and each device may use one or more of these languages. Language and user access rights can be set individually in each device and in different ways depending on the device:
  1. Fixed in the program to default
  2. Fixed in the program via Instance constants or set via program
  3. Login via a visualization where the operator enters his credentials
  4. Login by using NFC
1: If you do not want to restrict any user access, or use any translations, the default setting is Language = 1 (if no language 1 is  defined in the project, texts will be shown as written in the program) and User access rights is set to all rights. There are no restrictions in what can be shown/edited/printed.

2: If the language and user access rights must be set to specific values, then PD_17553-xx - Display_interface_control components must be located in the device for each kind of presentation interface (Screen, Printer). This is the predefined configuration when using the PD_13619-xx - PD688_complete assembly. For other devices you must add and locate this Display_interface_control component. Now the power-on Language and User access rights can be set through the instance constants shown here:

Automatic_Logout_at_StartUp must be True. Logout_language_index is set to the required language. Logout_operator_rights must be set for the presentation interface. Or, you can set the Language in your program: Create a connector to the Display_interface_control component and write the following line: Display_interface_control.Display_interface_Language_index.Language_index:= 3 (1 to 4) The value you assign may be a constant (3, in this example) or it may be a variable depending on e.g. a customer record information. As always, remember to connect the connector in your control component. 3: By adding the PD_17553-xx - Display_interface_control to a device you can add a visualization for this component: PD_18202-xx - View for operator define. Through this visualization, the operator can enter his credentials and setup the rights and language as defined in the operator array.

The login view can be covered by the drawing “PD_18207-xx ca_Cover_login_logout_button”, and this must have the hit-test disabled:

The Instance constant Operator_array defines the rights, language, name, password and ID for a group of operators, see more details in the documentation for PD_17553-xx - Display_interface_control. If you are using the PD_13619-xx - PD688_complete assembly, visualizations for Logged-in user and Printer setup are already included in the PD_17616-xx - Setup_PD_688_pushbutton visualization as individual swipe frames, where you can see the operator access rights and select a Language. This way you can have individual Language settings for visualization and printouts. PD_17552-xx - View_for_PD_688_active_operator_data:

PD_20658-xx - View_for_PD_688_printer:

4: Using NFC login is possible for a PD 688. The default setup for setting the language is that both the Display (visualization) and the Printer (printouts via USB) are set to the same language when a user is logging in with an NFC card. The specific language to set is stored on the NFC card. This is the predefined configuration when using the PD_13619-xx - PD688_complete assembly. However, you may wish that any login via NFC will only affect the visualization and the printouts should always have the same language. This is selected by the Instance constant NFC_login_actions in the PD_15627-xx - PD688_NFC_component. Default setting is that the NCF login information is sent to both Screen and Printer. You can now select that the Printer presentation interface is not informed, NFC_login_actions[Printer] = False, and then you can configure your settings for the Printer presentation interface as described in section ‘2’ above.

I need to add a variable that will display a blinking message on the user interface when a given variable is TRUE. How do this?

This can be done in VIGO6 via a pre-built component.

Once I open a new screen with a touch button, it opens up a screen on top of another screen without closing the original screen? This creates a stack of screens, is this normal?
Yes this is “as designed”. We have not included close buttons as default on the views because:
  • they take up space, and some visualizations will need to utilize every available pixel for other purposes J
  • if a view is set as “non closeable” it makes no sense to have a close button on it.
But of course you have several options to change the default-behaviour of the screens. In the implementation of the “button that opens a view” you can set behaviours such as “ close when parent closes”. There are also two close buttons available: PD_18158-01 - Close_all_windows_button (closing all windows EXCEPT guest views  that have been marked “Non closeable” in the project/assembly) – a button with a red circle PD_18157-01 - Close_window_button (closes only the window it is located on- as long as this window is NOT marked as “Non closeable”) – a button with a red X. You can change the size of the buttons by the scale factor. And if you want to have other symbols you can clone the buttons and choose other images. To create your own design, just clone our button and replace the picture with another of your own choosing These two buttons must be added as “Drawing” on the view list. Also : in your project, you can define behaviours of your “start screen” eg non-closeable.