Some Knowledge of Visual Studio (VBA) is necessary to make a DIY scada form. 

When writing your own scada, it is wise to use the "empty" VBA solution as a template. The template contains all functions. Use the below description to get the I/O tags on your DIY form. The communication to the sketch is based on Textbox controls. If you wish, you can program events on the Textbox (do something with color or update other controls... all up to you). Easy learning by doing in VBA. When starting your application, don't forget to add and set the right parameters for your shortcut: /comport=<used comport> /baudrate=<used baudrate> /monitor=NO. Use NO for the monitor, otherwise the application will paint all tags on your fresh created form and will set the form width automatic.

 

First of all, open the standard Visual Studio 2015 solution (see the Visual Studio repository). Place a new TextBox control on the VBA form with the toolbox for the given tag(s). The same procedure is valid for all datatypes. When placed on the form, right click the control and chose "properties" from the pull down menu.  Then give the TextBox control the same name as the tagname known in the sketch.  The next step is different for all datatypes.  Because of the fact that digital inputs can be "masked" and digital outputs can be "forced", a specific ContextMenuStrip must be connected to the control for all types of data. Below an overview for all different datatypes.

 

Digital input ContextMenuStrip must be given de value "DigInMask".

 

 

Digital output ContextMenuStrip must be given de value "DigOutForce"

As explained in the prior paragraphs for digital I/O, the same procedure applies  for the other standard I/O types. In the table below the name of the ContextMenuStrip is given per I/O type.

 

I/O type

ContextMenuStrip

DO

DigOutForce

DI

DigInMask

AI

AnaInMask

AO

AnaOutForce

TT

TTMask

DM

UltrasonicMask

SO

ServoForce

Digital

marker

DigOutForce

Analogue

Marker

AnaOutForce

TEXT

marker

TextForce

 

 

For the analogue data points (like the temperature and analogue out/in), the context menu is different as for the digital data points. To force or to mask a data point you have to input a certain value. See the example below: 

 

 

Right clicking on data point "licht" presents a context menu. Via option "mask" it is possible to give the data point a certain value. Via a tooltip the possible range is displayed. After setting a value and clicking "Set mask", the data point is masked with value 25 and the background of the data point is painted yellow as soon as the board has responded on the message from HMI.