1. Goals and objectives.

The goal of this project is creation of SCADA system with open source code for using it for public purposes as well as commercial needs. The first release is mainly targeted for home users. Forusers which don't need fully functional SCADA, but need some simple tool for visualizing something. Major criteria here are simplicity for end-users, open and simple architecture, availability and newness of used technologies.

Main objective here is implementation of fully-functional SCADA system, which in perspective should cover as much as possible stages of production and management processes. Starting from HMI of a technological process, flexible reporting capabilities and ending with integration with other CIM (Computer Integrated Manufacturing) systems. Last time such systems are called «MES» (http://en.wikipedia.org/wiki/Process_Development_Execution_System).

2. Used technologies.

The main programming language for the project is C# and .Net 3.0 platform. At this moment there are several parts of .Net used: WinForms (GUI controls and window management), WPF and XAML (schema editing capabilities) and OPC (communication with 3rd party devices). There are also plans to try a few more things: ADO.NET, WCF, LINQ, Silverlight 2.0 and OPC UA. In general we can say that requirements for used technologies are: availability for public community, easy to learn and its innovation. Stability is also important and should be considered on case-by-case basic. The project can also use open or with free license modules from 3rd party developers.

3. Architecture.

Overall architecture diagram is on figure below.


There are two main modules for interacting with

users: Designer and Run Time. Designer - a tool used for creation of documents:

● Definition of links with data sources

● Setting up rules for archiving

● Declaring alarms and expected user reaction for them

● Creation of visual schemes and report templates

● Setting up scheduler of report generation

Run Time - a tool used to regular work with the document:

● Archiving data in real time

● Alarm generation

● Data visualization

● Report generation

● Sending visual data (schemes) to remote clients by using HTTP protocol for Web access as Silverlight 2.0 application

● Sending data to remote clients by OPC XMLDA protocol

. There is also a set of communication plugins which provide abstract communication layer with  other applications (e.g. OPC, MODBUS)