Skip to main content
Jump to: navigation, search


Install Java & Eclipse (on Windows)

Install Java

To develop with Java you need to install the Java JDK first. This can be downloaded at:

If you have Windows 64 bit, you should install the 64 bit version (x64), otherwise install the 32 bit version (x86).

After installation (be careful to uncheck the installation of any stupid toolbars) you should add the java bin directory to your path and create the JAVA_HOME environment variable which should point to the installation directory of the JDK.

Install Eclipse

Now you can install Eclipse. Download it from here

You must install the same architecture as the Java version you installed. So if you installed the 64bit version of Java, you should use the 64bit version of Eclipse. The version on which Eclipse NeoSCADA is based is Mars/4.5. The latest version is 4.5.2, so you should download that one (the classic version). There is no installer, so just unzip it to some directory where you want to have it. You also can savely use Eclipse Neon (4.6.1)

We created a also a short screencast which shows how to do that:

Install WIX (optional)

If you only plan to deploy to a Linux target, it is not necessary to install it.

The runtime plus configuration of Eclipse NeoSCADA is deployed on Windows as an MSI file. The configurator needs the WIX Toolset to create those files, therefor you have to install it. The downloads can be found here:

The installer creates all necessary environment variables, so there is no additional work to do.

Install the Eclipse SCADA IDE tooling

Next step is to install the necessary plugins which contain the actual Eclipse NeoSCADA components. For this go to "Help > Install New Software". In the text box "Work with" just enter following URL:

Since Eclipse projects, which are not part of the release train, don't participate in the automatic mirror selection, using the above URL will be slow, because of bandwith restrictions applying for Eclipse Servers. It is therefore advisable to use one of the Mirrors directly, for instance if you want to use the Mirror of the esslingen University use instead:

Then select the "Eclipse NeoSCADA IDE" category and click on "Next". The next screen should contain all the additionally selected dependencies. Click on "Next" there as well. On the next screen accept the Licenses and click on "Finish". After the installation Eclipse requires a restart. Do that.

Additionally you can now install the additional openSCADA components. To install it just repeat the steps above with the URL and select the "OpenSCADA IDE" category.

After a restart you can start with configuring the SCADA system.

This screencast shows how to do it:

A simple example

Creating a new SCADA project

Click on "New > Other ..." or just press Ctrl+N. Then select "Eclipse SCADA configuration > Configuration Project". On the next page choose a name for the project and click "Finish".

This create a new configuration project, which already contains a pretty basic sample configuration. For Windows this will only work partly and is also not enough. But to check if everything worked so far we can create the deployable artifacts anyway.

The SCADA configuration consists basically of two files: The infrastructure model and the component model. During the configuration process they get merged into one common "world" model which in turn gets transformed into the various artifacts.

Additionally there are recipes which provide some influence on the generation process. The basic steps are: load model, store model. Between those steps there can be added additional processing steps. Two options are implemented out of the box: "Node Mapping" and "skip deployment".

The Node Mapping task provides the ability to replace the IP addresses of the nodes with different ones. This is very useful to provide the same configuration for test and staging environments where just the IP addresses are changed.

Skip deployment is useful during development since the creation of DEB or RPM files can take quite some time.

To actually create the deployment artifacts, right click on a recipe (e.g. productive.recipe) and select "Run Recipe" from the submenu "Eclipse SCADA Configuration". A progress dialog shoud appear and after a few seconds there should be a new "output" directory which contains all the deployment artifacts for each node.

A quick and dirty example

To demonstrate how to access a foreign device we will connect to a modbus device. In our case we will of course simulate it, but the procedure with a real device is exactly the same.

First we open the infrastructure model (world.esim) and remove both nodes which are contained within. Next we create a new "External Node" which represents our Modbus slave device. In our case it will get the hostname "localhost". Now we add our modbus device to it. As name we just use "modbus", port should be 502.

Now we need to create a type system for modbus which is the mapping from the modbus addresses to a struct like variable mapping. To do this press Ctrl+N to open the "New" dialog and select there the "Memory Type Model". Just name it "modbus.mtd" and press "Finish".

Open it and give the type system a name. We stick with "modbus" for now. Then add a new type definition to the Type System. Name it "T1" and add a Variable to it which we name "V1". Add a 16bit unsigned integer to it (which is the modbus standard type). Now we have mapped one register to a variale. The index itself is relative to the block where its queried from.

Now we switch back to the infrastructure model. Here we have to import the type system model first. Click on the topmost root node and select "Load resource". Select "Browse Workspace" and select the freshly created type system model (modbus.mtd). Now click on the "Type System" property of the modbus device and select the "modbus" Type System.

Now add a new Slave to the modbus device and name it "S1". Modbus works by polling the slaves. You have a start register and tell it how many registers you want to query. This is modeled as a "block" in Eclipse SCADA. For each block the polling frequency can be adapted. In our case we set the Block Type to HOLDING, the count to 1, the id to B1, the period to 250 (ms) the Timeout to 10000 (ms) and select Type T1.

Putting it all together it means the modbus slave is queried 4 times a second and the first register is mapped to a variable called V1 and this will be a 16bit integer.

Now we have defined how the device itself is queried. We also need a driver, which in Eclipse SCADA terminology is the protocol adapter (in this case converts from modbus to NGP, the Eclipse SCADA internal protocol). For this we create a node where the driver will actually run. This is a "System Node". Coincidentally it gets the same hostname (localhost) as the modbus device. In a real world example this is unlikely. To the "System Node" we add a "Equinox Driver".

The Instance number will be 14 just because this is per definition the port number (base port of 2100 + 14) where we usually run the modbus drivers. More information to port numbers can be found here: EclipseSCADA/Documentation/StandardPorts As name we use "modbus" again. The Driver Type Id has to be "org.eclipse.scada.da.server.modbus". Click on the Ellipsis button at the "Devices" property and add the "Modbus Device Modbus". This way we tell the modbus driver that it should connect to that device.

This is enough to get the modbus driver to run. First we have to remove the components from the component model, since there are some references to the now not existing nodes. To do that open the model "world.escm" and just remove the level "REGION1". Save and close it.

Now right click on the productive.recipe and run the configurator. When we look at the output directory now, we will see that the folders node1 and node2 have disappaered. What we have now is only "localhost" and under that is our modbus driver. We could now start it. Only we need a target platform which contains some bundles which are not in the standard eclipse distribution. For this

For this right click on the modbus.profile.xml 

and select "Run As > Run Equinox Application Profile". This

Back to the top