1IEC61850 DEFINITIONS ::= BEGIN
2
3GOOSEpdu ::= CHOICE {
4	gseMngtPdu	[APPLICATION 0] IMPLICIT GSEMngtPdu,
5	goosePdu	[APPLICATION 1] IMPLICIT IECGoosePdu,
6	...
7}
8
9GSEMngtPdu ::= SEQUENCE {
10	stateID		[0] IMPLICIT INTEGER,
11--	security	[3] ANY OPTIONAL,
12					-- reserved for future definition
13	requestResp	RequestResponse
14--	CHOICE {
15--		requests	[1] IMPLICIT GSEMngtRequests,
16--		responses	[2] IMPLICIT GSEMngtResponses
17--	}
18}
19
20RequestResponse ::= CHOICE {
21	requests	[1] IMPLICIT GSEMngtRequests,
22	responses	[2] IMPLICIT GSEMngtResponses
23}
24
25GSEMngtRequests ::= CHOICE {
26	getGoReference			[1] IMPLICIT GetReferenceRequestPdu,
27	getGOOSEElementNumber	[2] IMPLICIT GetElementRequestPdu,
28	getGsReference			[3] IMPLICIT GetReferenceRequestPdu,
29	getGSSEDataOffset		[4] IMPLICIT GetElementRequestPdu,
30	...
31}
32
33GSEMngtResponses ::= CHOICE {
34	gseMngtNotSupported		[0] IMPLICIT NULL,
35	getGoReference			[1] IMPLICIT GSEMngtResponsePdu,
36	getGOOSEElementNumber	[2] IMPLICIT GSEMngtResponsePdu,
37	getGsReference			[3] IMPLICIT GSEMngtResponsePdu,
38	getGSSEDataOffset		[4] IMPLICIT GSEMngtResponsePdu,
39	...
40}
41
42GetReferenceRequestPdu ::= SEQUENCE {
43	ident	[0] IMPLICIT VisibleString, -- size shall support up to 65 octets
44	offset	[1] IMPLICIT SEQUENCE OF INTEGER,
45	...
46}
47
48GetElementRequestPdu ::= SEQUENCE {
49	ident		[0] IMPLICIT VisibleString, -- size shall support up to 65 octets
50	references	[1] IMPLICIT SEQUENCE OF VisibleString,
51	...
52}
53
54GSEMngtResponsePdu ::= SEQUENCE {
55	ident		[0] IMPLICIT VisibleString, -- echos the value of the request
56	confRev		[1] IMPLICIT INTEGER OPTIONAL,
57	posNeg		PositiveNegative,
58--	CHOICE {
59--		responsePositive	[2] IMPLICIT SEQUENCE {
60--			datSet				[0] IMPLICIT VisibleString OPTIONAL,
61--			result				[1] IMPLICIT SEQUENCE OF RequestResults
62--		},
63--		responseNegative	[3] IMPLICIT GlbErrors
64--	},
65	...
66}
67
68PositiveNegative ::= CHOICE {
69	responsePositive	[2] IMPLICIT SEQUENCE {
70		datSet				[0] IMPLICIT VisibleString OPTIONAL,
71		result				[1] IMPLICIT SEQUENCE OF RequestResults
72	},
73	responseNegative	[3] IMPLICIT GlbErrors
74}
75
76RequestResults::= CHOICE {
77	offset		[0] IMPLICIT INTEGER,
78	reference	[1] IMPLICIT IA5String,
79	error		[2] IMPLICIT ErrorReason
80}
81
82GlbErrors ::= INTEGER {
83	other(0),
84	unknownControlBlock(1),
85	responseTooLarge(2),
86	controlBlockConfigurationError(3) --,
87--	...
88}
89
90ErrorReason ::= INTEGER {
91	other (0),
92	notFound (1) --,
93--	...
94}
95
96IECGoosePdu ::= SEQUENCE {
97	gocbRef				[0] IMPLICIT VisibleString,
98	timeAllowedtoLive	[1] IMPLICIT INTEGER,
99	datSet				[2] IMPLICIT VisibleString,
100	goID				[3] IMPLICIT VisibleString OPTIONAL,
101	t					[4] IMPLICIT UtcTime,
102	stNum				[5] IMPLICIT INTEGER,
103	sqNum				[6] IMPLICIT INTEGER,
104	simulation			[7] IMPLICIT BOOLEAN DEFAULT FALSE,
105	confRev				[8] IMPLICIT INTEGER,
106	ndsCom				[9] IMPLICIT BOOLEAN DEFAULT FALSE,
107	numDatSetEntries	[10] IMPLICIT INTEGER,
108	allData				[11] IMPLICIT SEQUENCE OF Data --,
109--	security			[12] ANY OPTIONAL
110							 -- reserved for digital signature
111}
112
113UtcTime ::= OCTET STRING -- format and size defined in 8.1.3.6.
114
115TimeOfDay ::= OCTET STRING -- (SIZE (4 | 6))
116FloatingPoint ::= OCTET STRING
117
118
119Data ::= CHOICE
120	{
121	-- context tag 0 is reserved for AccessResult
122	array			    [1] IMPLICIT SEQUENCE OF Data,
123	structure		    [2] IMPLICIT SEQUENCE OF Data,
124	boolean			    [3] IMPLICIT BOOLEAN,
125	bit-string		    [4] IMPLICIT BIT STRING,
126	integer			    [5] IMPLICIT INTEGER,
127	unsigned		    [6] IMPLICIT INTEGER,
128	floating-point		[7] IMPLICIT FloatingPoint,
129	real		 	    [8] IMPLICIT REAL,
130	octet-string		[9] IMPLICIT OCTET STRING,
131	visible-string		[10] IMPLICIT VisibleString,
132	binary-time		    [12] IMPLICIT TimeOfDay,
133	bcd			        [13] IMPLICIT INTEGER,
134	booleanArray		[14] IMPLICIT BIT STRING,
135    objId               [15] IMPLICIT OBJECT IDENTIFIER,
136  ...,
137    mMSString           [16] IMPLICIT MMSString,
138    utc-time            [17] IMPLICIT UtcTime				-- added by IEC61850 8.1 G3
139    }
140
141MMSString ::= UTF8String
142
143END
144