forked from careychow/libIEC61850
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
77 lines (44 loc) · 4.23 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
README:
-------
This file is part of the documentation of libiec61850.
Build Status:
- [![Build Status](https://travis-ci.org/careychow/libIEC61850.png?branch=master)](https://travis-ci.org/careychow/libIEC61850)
Content:
- Overview
- Building and running the example server
- Building on Windows with GOOSE support
- Implementing your own IEC61850 MMS devices
Overview
---------
libiec61850 is an open-source (GPLv3) implementation of an IEC 61850 client and server library. It is implemented in C to provide maximum portability. It can be used to implement IEC 61850 compliant client and server applications on embedded systems and PCs running Linux and Windows. Included is a set of simple example applications that can be used as a starting point to implement your own IEC 61850 compliant devices or to communicate with IEC 61850 devices.
The library implements parts of the IEC 61850 specification on top of the MMS mapping. It provides the MMS protocol stack on top of TCP/IP.
The goal of this project is to provide an implementation that can run on memory constrained microcontrollers. But currently the library only runs on embedded linux systems as well as Desktop PCs running Linux or Windows.
Building and running the examples
----------------------------------------
In the project root directoy type
> make examples
If the build succeeds you can find a few binary files in the projects root directory. You can also find a binary version of the library ("libiec61850.a") in the "build" directory.
Run the sample applications in the example folders. E.g.:
> cd examples/server_example1
> sudo ./server_example1
on the Linux command line.
The example server is tested against the openIEC61850 client example. You can find and download openIEC61850 a Java implementation of IEC 61590 MMS for client and server applications at http://www.openmuc.org.
Building on windows with GOOSE support
---------------------------------------
To build the library and run libiec61850 applications with GOOSE support on Windows (7/8) the use of a third-party library (winpcap) is required. This is necessary because current versions of Windows have no working support for raw sockets. You can download winpcap here (http://www.winpcap.org).
1. Download and install winpcap. Make sure that the winpcap driver is loaded at boot time (you can choose this option at the last screen of the winpcap installer).
2. Reboot the system (you can do this also later, but you need to reboot or load the winpcap driver before running any llibiec61850 applications that use GOOSE).
3. Download the winpcap developers pack from here (http://www.winpcap.org/install/bin/WpdPack_4_1_2.zip)
4. Unpack the zip file. Copy the folders Lib and Include from the WpdPack directory in the third_party/winpcap directory of libiec61850
Building with the cmake build system
-------------------------------------
With the help of the cmake build system it is possible to create platform independet project descriptions and let cmake create specific project or build files for other tools like Make or Visual Studio.
If you have cmake installed fire up a command line (cmd.exe) and create a new subdirectory in the libiec61850-0.x folder. Change to this subdirectory. Then you can invoke cmake. As an command line argument you have to supply a "generator" that is used by cmake to create the project file for the actual build tool (in our case Visual Studio).
cmake -G "Visual Studio 11" ..
will instruct cmake to create a "solution" for Visual Studio 2012. To do the same thing for Visual Studio 2010 type
cmake -G "Visual Studio 10" ..
Note: The ".." at the end of the command line tells cmake where to find the main build script file (called CMakeLists.txt). This should point to the folder libiec61850-0.x which is in our case the parent directory (..).
Implementing your own IEC61850 MMS server devices
--------------------------------------------------
Until now libiec61850 uses a static server model. That means that the IEC61850 data model is not generated at runtime by reading an ICD file, but by converting an ICD file to static C data structures at compile time.
To provide your own IEC 61850 compliant device model a tool is provided that translates an IED file to C code that can be compiled into the server application.