The goal of this software is to automatically generate C/C++ code which reads and writes GOOSE and Sampled Value packets. Any valid IEC 61850 Substation Configuration Description (SCD) file, describing GOOSE and/or SV communications, can be used as the input. The output code is lightweight and platform-independent, so it can run on a variety of devices, including low-cost microcontrollers. It\'s ideal for rapid-prototyping new protection and control systems that require communications. This mbed project is a simple example of this functionality. Other code: https://github.com/stevenblair/rapid61850 Project homepage: http://personal.strath.ac.uk/steven.m.blair/

Committer:
sblair
Date:
Fri Oct 07 13:41:08 2011 +0000
Revision:
0:230c10b228ea
Child:
1:9399d44c2b1a

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sblair 0:230c10b228ea 1 #ifndef IED_H
sblair 0:230c10b228ea 2 #define IED_H
sblair 0:230c10b228ea 3
sblair 0:230c10b228ea 4 #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */
sblair 0:230c10b228ea 5 extern "C" {
sblair 0:230c10b228ea 6 #endif
sblair 0:230c10b228ea 7
sblair 0:230c10b228ea 8 #include "datatypes.h"
sblair 0:230c10b228ea 9
sblair 0:230c10b228ea 10 struct E1Q1SB1 {
sblair 0:230c10b228ea 11 struct {
sblair 0:230c10b228ea 12 struct {
sblair 0:230c10b228ea 13 struct LN0 LLN0;
sblair 0:230c10b228ea 14 struct exampleRMXU RMXU_1;
sblair 0:230c10b228ea 15 struct LPHDa LPHD_1;
sblair 0:230c10b228ea 16 struct CSWIa CSWI_1;
sblair 0:230c10b228ea 17 struct CSWIa CSWI_2;
sblair 0:230c10b228ea 18 struct MMXUa MMXU_1;
sblair 0:230c10b228ea 19 struct TVTRa TVTR_1;
sblair 0:230c10b228ea 20 } C1;
sblair 0:230c10b228ea 21 } S1;
sblair 0:230c10b228ea 22 };
sblair 0:230c10b228ea 23
sblair 0:230c10b228ea 24 struct E1Q1BP2 {
sblair 0:230c10b228ea 25 struct {
sblair 0:230c10b228ea 26 } S1;
sblair 0:230c10b228ea 27 };
sblair 0:230c10b228ea 28
sblair 0:230c10b228ea 29 struct E1Q1BP3 {
sblair 0:230c10b228ea 30 struct {
sblair 0:230c10b228ea 31 } S1;
sblair 0:230c10b228ea 32 };
sblair 0:230c10b228ea 33
sblair 0:230c10b228ea 34 struct E1Q2SB1 {
sblair 0:230c10b228ea 35 struct {
sblair 0:230c10b228ea 36 } S1;
sblair 0:230c10b228ea 37 };
sblair 0:230c10b228ea 38
sblair 0:230c10b228ea 39 struct E1Q3SB1 {
sblair 0:230c10b228ea 40 struct {
sblair 0:230c10b228ea 41 } S1;
sblair 0:230c10b228ea 42 };
sblair 0:230c10b228ea 43
sblair 0:230c10b228ea 44 struct E1Q3KA1 {
sblair 0:230c10b228ea 45 struct {
sblair 0:230c10b228ea 46 } S1;
sblair 0:230c10b228ea 47 };
sblair 0:230c10b228ea 48
sblair 0:230c10b228ea 49 struct E1Q3KA2 {
sblair 0:230c10b228ea 50 struct {
sblair 0:230c10b228ea 51 } S1;
sblair 0:230c10b228ea 52 };
sblair 0:230c10b228ea 53
sblair 0:230c10b228ea 54 struct E1Q3KA3 {
sblair 0:230c10b228ea 55 struct {
sblair 0:230c10b228ea 56 } S1;
sblair 0:230c10b228ea 57 };
sblair 0:230c10b228ea 58
sblair 0:230c10b228ea 59 struct D1Q1SB1 {
sblair 0:230c10b228ea 60 struct {
sblair 0:230c10b228ea 61 } S1;
sblair 0:230c10b228ea 62 };
sblair 0:230c10b228ea 63
sblair 0:230c10b228ea 64 struct D1Q1BP2 {
sblair 0:230c10b228ea 65 struct {
sblair 0:230c10b228ea 66 } S1;
sblair 0:230c10b228ea 67 };
sblair 0:230c10b228ea 68
sblair 0:230c10b228ea 69 struct D1Q1BP3 {
sblair 0:230c10b228ea 70 struct {
sblair 0:230c10b228ea 71 } S1;
sblair 0:230c10b228ea 72 };
sblair 0:230c10b228ea 73
sblair 0:230c10b228ea 74 struct D1Q1SB4 {
sblair 0:230c10b228ea 75 struct {
sblair 0:230c10b228ea 76 struct {
sblair 0:230c10b228ea 77 struct LN0 LLN0;
sblair 0:230c10b228ea 78 struct exampleMMXU MMXU_1;
sblair 0:230c10b228ea 79 struct LPHDa LPHD_1;
sblair 0:230c10b228ea 80 struct RSYNa RSYN_1;
sblair 0:230c10b228ea 81 } C1;
sblair 0:230c10b228ea 82 } S1;
sblair 0:230c10b228ea 83 };
sblair 0:230c10b228ea 84
sblair 0:230c10b228ea 85
sblair 0:230c10b228ea 86
sblair 0:230c10b228ea 87
sblair 0:230c10b228ea 88 extern struct E1Q1SB1 E1Q1SB1;
sblair 0:230c10b228ea 89 extern struct E1Q1BP2 E1Q1BP2;
sblair 0:230c10b228ea 90 extern struct E1Q1BP3 E1Q1BP3;
sblair 0:230c10b228ea 91 extern struct E1Q2SB1 E1Q2SB1;
sblair 0:230c10b228ea 92 extern struct E1Q3SB1 E1Q3SB1;
sblair 0:230c10b228ea 93 extern struct E1Q3KA1 E1Q3KA1;
sblair 0:230c10b228ea 94 extern struct E1Q3KA2 E1Q3KA2;
sblair 0:230c10b228ea 95 extern struct E1Q3KA3 E1Q3KA3;
sblair 0:230c10b228ea 96 extern struct D1Q1SB1 D1Q1SB1;
sblair 0:230c10b228ea 97 extern struct D1Q1BP2 D1Q1BP2;
sblair 0:230c10b228ea 98 extern struct D1Q1BP3 D1Q1BP3;
sblair 0:230c10b228ea 99 extern struct D1Q1SB4 D1Q1SB4;
sblair 0:230c10b228ea 100
sblair 0:230c10b228ea 101
sblair 0:230c10b228ea 102 #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */
sblair 0:230c10b228ea 103 }
sblair 0:230c10b228ea 104 #endif
sblair 0:230c10b228ea 105
sblair 0:230c10b228ea 106 #endif