openSCADA Developer Reference
Overview and Purpose The different modules and projects of openSCADA openSCADA Modules OpenSCADA Projects Getting Started Creating applications based on openSCADA Hacking openSCADA
Overview and Purpose
This document describes the different aspects of programming with OpenSCADA.
The different modules and projects of openSCADA
openSCADA consists of several different projects and modules.
openSCADA Modules
A&E Alarms & Events A monitoring and alarming system CA Conguration Administrator A system to access conguration information DA Data Access A system to access I/Os from multiple sources HD Historical Data Providing historical data originating from DA
OpenSCADA Projects
External The external projects wraps up all external modules and libraries that are used by openSCADA. Aurora The aurora project hosts all base modules which are independent of SCADA or UI functionality. Utgard The utgard project contains the OPC DCOM specic modules. Oxygen The oxygen project indends to host all protocol specic modules that are required by the SCADA functionality. This project has it focus on protocols which are used by the SCADA parts to interface external eld devices. Internal communication is not part of this project, neither is OPC DCOM. Atlantis
The atlantis project is the main SCADA project which holds all functionality regarding data acquisition, historical data, alarming, calculated values, client and server libraries etc. Orilla Orilla hosts all modules and libraries which are UI related and used to be in atlantis. In order to reduce the number of modules in atlantis all UI specic modules were relocated to orilla. Othala Othala is the spin off project which removes all OSTC components out of orilla. While Othala is the project hosting the eclipse product setup of OSTC, Orilla is now the UI project which can also be integrated into other UI based projects.
Getting Started
Creating applications based on openSCADA Hacking openSCADA
In order to get the openSCADA source code you will need: Eclipse 3.7 Java 1.6 EGit
Create a new Eclipse workspace and clone the following repositories into it: git://git.openscada.org/org.openscada.builder.git git://git.openscada.org/org.openscada.external.git git://git.openscada.org/org.openscada.aurora.git git://git.openscada.org/org.openscada.utgard.git git://git.openscada.org/org.openscada.oxygen.git git://git.openscada.org/org.openscada.atlantis.git git://git.openscada.org/org.openscada.orilla.git git://git.openscada.org/org.openscada.othala.git git://git.openscada.org/org.openscada.dakara.git git://git.openscada.org/org.openscada.tauri.git
git://git.openscada.org/org.openscada.deploy.git git://git.openscada.org/org.openscada.documentation.git
The cloned repositories must be located in the same directory side by side and are required to have the .git extension. When importing the projects from the cloned repositories you should create separate working sets. Although this is not a requirement. Next you will need to create a new target platform: Which includes: Installation: Either {eclipse_home} to a fresh unzipped Eclipse 3.7.x (the latter as prefered) Directory: ${project_loc:builder_external}/builder/lib The EMF and GEF SDK The ECF 3.2 SDK
The latter components can be installed using the normal P2 way using a repository or by downloading the zipped P2 repositories from Eclipse and install them manually into the target platform. First the builder bootstrapper must be build. Locate the file build.xml in the project builder_global and run it using Run as / Ant build. Next the bootstrapper must be loaded for at least the builder_atlantis project. Run the ant script bootstrap.ant in the builder_atlantis project. After importing all projects the XML Schema definitions must be compiled. This step has to be performed manually after the setup or when the schema files have been edited. Inside Eclipse navigate to the following projects in this particular order and run the ant script schema_build.xml by executing Run as / Ant build from the context menu and refresh the project (F5) afterwards. org.openscada.da.server.common org.openscada.da.server.exec org.openscada.da.server.jdbc org.openscada.da.server.opc org.openscada.da.server.exec org.openscada.da.server.proxy org.openscada.da.server.simulation org.openscada.da.server.snmp
org.openscada.da.server.exporter
Following these steps should provide you with a completely build and error free workspace.