Find answers to common questions here. Not finding the answer you were looking for? Please send a mail to firstname.lastname@example.org
Field application update
How to make updates to your live systems
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.
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
Tips on the COPP hardware modules and peripherals
You need a PD688, PD802 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
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.
Contact email@example.com or press the yellow tab on the right hand side of this screen and fill in the form.
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.
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.
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.
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).
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”
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.
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.
You should also add it in your editor (set on the setup screen).
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.
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.
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)
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.
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.
To add the visualization, you need to find the get/set method of the “Operator_log_in” (see the attached screendump)
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.
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.
Connectors are described in tutorial 1 step 5:
Tips and tricks on building awesome visualisations for your components and assemblies
Have a look at this tutorial:
It explains how to add either standard buttons or custom made buttons
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”.
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.
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”.
This can be done in VIGO6 via a pre-built component.
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_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.