cactus-test-definitions 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cactus-test-definitions might be problematic. Click here for more details.
- cactus_test_definitions/__init__.py +39 -0
- cactus_test_definitions/__pycache__/__init__.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/actions.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/checks.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/csipaus.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/errors.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/events.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/parameters.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/schema.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
- cactus_test_definitions/__pycache__/test_procedures.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/variable_expressions.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/version.cpython-312.pyc +0 -0
- cactus_test_definitions/client/__init__.py +26 -0
- cactus_test_definitions/client/__pycache__/__init__.cpython-312.pyc +0 -0
- cactus_test_definitions/client/__pycache__/actions.cpython-312.pyc +0 -0
- cactus_test_definitions/client/__pycache__/checks.cpython-312.pyc +0 -0
- cactus_test_definitions/client/__pycache__/events.cpython-312.pyc +0 -0
- cactus_test_definitions/client/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
- cactus_test_definitions/client/actions.py +98 -0
- cactus_test_definitions/client/checks.py +117 -0
- cactus_test_definitions/client/events.py +71 -0
- cactus_test_definitions/client/procedures/ALL-01.yaml +94 -0
- cactus_test_definitions/client/procedures/ALL-02.yaml +108 -0
- cactus_test_definitions/client/procedures/ALL-03-REJ.yaml +69 -0
- cactus_test_definitions/client/procedures/ALL-03.yaml +110 -0
- cactus_test_definitions/client/procedures/ALL-04.yaml +69 -0
- cactus_test_definitions/client/procedures/ALL-05.yaml +117 -0
- cactus_test_definitions/client/procedures/ALL-06.yaml +128 -0
- cactus_test_definitions/client/procedures/ALL-07.yaml +76 -0
- cactus_test_definitions/client/procedures/ALL-08.yaml +78 -0
- cactus_test_definitions/client/procedures/ALL-09.yaml +103 -0
- cactus_test_definitions/client/procedures/ALL-10.yaml +128 -0
- cactus_test_definitions/client/procedures/ALL-11.yaml +111 -0
- cactus_test_definitions/client/procedures/ALL-12.yaml +108 -0
- cactus_test_definitions/client/procedures/ALL-13.yaml +112 -0
- cactus_test_definitions/client/procedures/ALL-14.yaml +165 -0
- cactus_test_definitions/client/procedures/ALL-15.yaml +109 -0
- cactus_test_definitions/client/procedures/ALL-16.yaml +102 -0
- cactus_test_definitions/client/procedures/ALL-17.yaml +63 -0
- cactus_test_definitions/client/procedures/ALL-18.yaml +288 -0
- cactus_test_definitions/client/procedures/ALL-19.yaml +78 -0
- cactus_test_definitions/client/procedures/ALL-20.yaml +136 -0
- cactus_test_definitions/client/procedures/ALL-21.yaml +203 -0
- cactus_test_definitions/client/procedures/ALL-22.yaml +82 -0
- cactus_test_definitions/client/procedures/ALL-23.yaml +158 -0
- cactus_test_definitions/client/procedures/ALL-24.yaml +132 -0
- cactus_test_definitions/client/procedures/ALL-25.yaml +136 -0
- cactus_test_definitions/client/procedures/ALL-26.yaml +147 -0
- cactus_test_definitions/client/procedures/ALL-27.yaml +144 -0
- cactus_test_definitions/client/procedures/ALL-28.yaml +274 -0
- cactus_test_definitions/client/procedures/ALL-29.yaml +87 -0
- cactus_test_definitions/client/procedures/ALL-30.yaml +188 -0
- cactus_test_definitions/client/procedures/BES-01.yaml +136 -0
- cactus_test_definitions/client/procedures/BES-02.yaml +137 -0
- cactus_test_definitions/client/procedures/BES-03.yaml +135 -0
- cactus_test_definitions/client/procedures/BES-04.yaml +228 -0
- cactus_test_definitions/client/procedures/DRA-01.yaml +54 -0
- cactus_test_definitions/client/procedures/DRA-02.yaml +64 -0
- cactus_test_definitions/client/procedures/DRD-01.yaml +667 -0
- cactus_test_definitions/client/procedures/DRL-01.yaml +327 -0
- cactus_test_definitions/client/procedures/GEN-01.yaml +73 -0
- cactus_test_definitions/client/procedures/GEN-02.yaml +72 -0
- cactus_test_definitions/client/procedures/GEN-03.yaml +160 -0
- cactus_test_definitions/client/procedures/GEN-04.yaml +161 -0
- cactus_test_definitions/client/procedures/GEN-05.yaml +89 -0
- cactus_test_definitions/client/procedures/GEN-06.yaml +90 -0
- cactus_test_definitions/client/procedures/GEN-07.yaml +145 -0
- cactus_test_definitions/client/procedures/GEN-08.yaml +145 -0
- cactus_test_definitions/client/procedures/GEN-09.yaml +117 -0
- cactus_test_definitions/client/procedures/GEN-10.yaml +737 -0
- cactus_test_definitions/client/procedures/GEN-11.yaml +376 -0
- cactus_test_definitions/client/procedures/GEN-12.yaml +376 -0
- cactus_test_definitions/client/procedures/GEN-13.yaml +70 -0
- cactus_test_definitions/client/procedures/LOA-01.yaml +73 -0
- cactus_test_definitions/client/procedures/LOA-02.yaml +73 -0
- cactus_test_definitions/client/procedures/LOA-03.yaml +160 -0
- cactus_test_definitions/client/procedures/LOA-04.yaml +161 -0
- cactus_test_definitions/client/procedures/LOA-05.yaml +85 -0
- cactus_test_definitions/client/procedures/LOA-06.yaml +85 -0
- cactus_test_definitions/client/procedures/LOA-07.yaml +145 -0
- cactus_test_definitions/client/procedures/LOA-08.yaml +145 -0
- cactus_test_definitions/client/procedures/LOA-09.yaml +117 -0
- cactus_test_definitions/client/procedures/LOA-10.yaml +739 -0
- cactus_test_definitions/client/procedures/LOA-11.yaml +376 -0
- cactus_test_definitions/client/procedures/LOA-12.yaml +376 -0
- cactus_test_definitions/client/procedures/LOA-13.yaml +71 -0
- cactus_test_definitions/client/procedures/MUL-01.yaml +92 -0
- cactus_test_definitions/client/procedures/MUL-02.yaml +80 -0
- cactus_test_definitions/client/procedures/MUL-03.yaml +78 -0
- cactus_test_definitions/client/procedures/OPT-1-IN-BAND.yaml +115 -0
- cactus_test_definitions/client/procedures/OPT-1-OUT-OF-BAND.yaml +101 -0
- cactus_test_definitions/client/procedures/test-procedures.yaml +75 -0
- cactus_test_definitions/client/test_procedures.py +296 -0
- cactus_test_definitions/csipaus.py +81 -0
- cactus_test_definitions/errors.py +15 -0
- cactus_test_definitions/parameters.py +149 -0
- cactus_test_definitions/py.typed +0 -0
- cactus_test_definitions/schema.py +22 -0
- cactus_test_definitions/server/README.md +170 -0
- cactus_test_definitions/server/__pycache__/actions.cpython-312.pyc +0 -0
- cactus_test_definitions/server/__pycache__/checks.cpython-312.pyc +0 -0
- cactus_test_definitions/server/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
- cactus_test_definitions/server/actions.py +139 -0
- cactus_test_definitions/server/checks.py +117 -0
- cactus_test_definitions/server/procedures/S-ALL-01.yaml +42 -0
- cactus_test_definitions/server/procedures/S-ALL-02.yaml +65 -0
- cactus_test_definitions/server/procedures/S-ALL-03.yaml +65 -0
- cactus_test_definitions/server/procedures/S-ALL-04.yaml +137 -0
- cactus_test_definitions/server/procedures/S-ALL-05.yaml +111 -0
- cactus_test_definitions/server/procedures/S-OPT-01.yaml +42 -0
- cactus_test_definitions/server/procedures/S-OPT-02.yaml +40 -0
- cactus_test_definitions/server/procedures/S-OPT-03.yaml +44 -0
- cactus_test_definitions/server/procedures/S-OPT-04.yaml +32 -0
- cactus_test_definitions/server/procedures/test-procedures.yaml +14 -0
- cactus_test_definitions/server/test_procedures.py +183 -0
- cactus_test_definitions/variable_expressions.py +419 -0
- cactus_test_definitions-1.0.0.dist-info/METADATA +288 -0
- cactus_test_definitions-1.0.0.dist-info/RECORD +135 -0
- cactus_test_definitions-1.0.0.dist-info/WHEEL +5 -0
- cactus_test_definitions-1.0.0.dist-info/licenses/LICENSE.txt +22 -0
- cactus_test_definitions-1.0.0.dist-info/top_level.txt +2 -0
- tests/__init__.py +0 -0
- tests/unit/__init__.py +0 -0
- tests/unit/client/__init__.py +0 -0
- tests/unit/client/test_actions.py +72 -0
- tests/unit/client/test_checks.py +47 -0
- tests/unit/client/test_config.py +61 -0
- tests/unit/client/test_events.py +36 -0
- tests/unit/client/test_test_procedures.py +150 -0
- tests/unit/server/__init__.py +0 -0
- tests/unit/server/test_test_procedures.py +86 -0
- tests/unit/test_csipaus.py +49 -0
- tests/unit/test_parameters.py +197 -0
- tests/unit/test_variable_expressions.py +402 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
Description: Default Control – Import Limit
|
|
2
|
+
Category: Control
|
|
3
|
+
Classes:
|
|
4
|
+
- G
|
|
5
|
+
|
|
6
|
+
TargetVersions:
|
|
7
|
+
- v1.2
|
|
8
|
+
- v1.3-beta/storage
|
|
9
|
+
|
|
10
|
+
Criteria:
|
|
11
|
+
checks:
|
|
12
|
+
- type: all-steps-complete
|
|
13
|
+
parameters: {}
|
|
14
|
+
|
|
15
|
+
Preconditions:
|
|
16
|
+
init_actions:
|
|
17
|
+
- type: set-comms-rate
|
|
18
|
+
parameters:
|
|
19
|
+
dcap_poll_seconds: 60
|
|
20
|
+
edev_list_poll_seconds: 60
|
|
21
|
+
fsa_list_poll_seconds: 60
|
|
22
|
+
der_list_poll_seconds: 60
|
|
23
|
+
derp_list_poll_seconds: 60
|
|
24
|
+
mup_post_seconds: 60
|
|
25
|
+
checks:
|
|
26
|
+
- type: end-device-contents
|
|
27
|
+
parameters: {}
|
|
28
|
+
- type: der-settings-contents
|
|
29
|
+
parameters: {}
|
|
30
|
+
actions:
|
|
31
|
+
- type: create-der-control
|
|
32
|
+
parameters:
|
|
33
|
+
start: $(now)
|
|
34
|
+
duration_seconds: 900
|
|
35
|
+
opModImpLimW: $(setMaxW * 2)
|
|
36
|
+
instructions:
|
|
37
|
+
- DER shall be importing at the connection point at least 50% of its active power rating.
|
|
38
|
+
|
|
39
|
+
Steps:
|
|
40
|
+
|
|
41
|
+
# (a, b)
|
|
42
|
+
GET-DEFAULT-DERC:
|
|
43
|
+
event:
|
|
44
|
+
type: GET-request-received
|
|
45
|
+
parameters:
|
|
46
|
+
endpoint: /edev/1/derp/1/dderc
|
|
47
|
+
actions:
|
|
48
|
+
- type: set-default-der-control
|
|
49
|
+
parameters:
|
|
50
|
+
opModImpLimW: $(setMaxW * 0.3)
|
|
51
|
+
- type: enable-steps
|
|
52
|
+
parameters:
|
|
53
|
+
steps:
|
|
54
|
+
- GET-DERC-1
|
|
55
|
+
- type: remove-steps
|
|
56
|
+
parameters:
|
|
57
|
+
steps:
|
|
58
|
+
- GET-DEFAULT-DERC
|
|
59
|
+
|
|
60
|
+
# (b, c, d) This will be the first poll after client has received the defaults
|
|
61
|
+
# the client will see the existing control but it will be cancelled immediately after
|
|
62
|
+
GET-DERC-1:
|
|
63
|
+
event:
|
|
64
|
+
type: GET-request-received
|
|
65
|
+
parameters:
|
|
66
|
+
endpoint: /edev/1/derp/1/derc
|
|
67
|
+
serve_request_first: true # Run this AFTER server receives the request
|
|
68
|
+
actions:
|
|
69
|
+
- type: cancel-active-der-controls
|
|
70
|
+
parameters: {}
|
|
71
|
+
- type: enable-steps
|
|
72
|
+
parameters:
|
|
73
|
+
steps:
|
|
74
|
+
- GET-DERC-2
|
|
75
|
+
- type: remove-steps
|
|
76
|
+
parameters:
|
|
77
|
+
steps:
|
|
78
|
+
- GET-DERC-1
|
|
79
|
+
|
|
80
|
+
# (d, e) On this poll, client will discover control was cancelled and a new control will be added at 200% of setMaxW
|
|
81
|
+
GET-DERC-2:
|
|
82
|
+
event:
|
|
83
|
+
type: GET-request-received
|
|
84
|
+
parameters:
|
|
85
|
+
endpoint: /edev/1/derp/1/derc
|
|
86
|
+
serve_request_first: true # Run this AFTER server receives the request
|
|
87
|
+
actions:
|
|
88
|
+
- type: create-der-control
|
|
89
|
+
parameters:
|
|
90
|
+
start: $(now)
|
|
91
|
+
duration_seconds: 600
|
|
92
|
+
opModImpLimW: $(setMaxW * 2)
|
|
93
|
+
- type: enable-steps
|
|
94
|
+
parameters:
|
|
95
|
+
steps:
|
|
96
|
+
- WAIT-CONTROL-END
|
|
97
|
+
- type: remove-steps
|
|
98
|
+
parameters:
|
|
99
|
+
steps:
|
|
100
|
+
- GET-DERC-2
|
|
101
|
+
|
|
102
|
+
# (f, g) Waits for the new control to finish (with a bit of overtime)
|
|
103
|
+
WAIT-CONTROL-END:
|
|
104
|
+
event:
|
|
105
|
+
type: wait
|
|
106
|
+
parameters:
|
|
107
|
+
duration_seconds: 660
|
|
108
|
+
actions:
|
|
109
|
+
- type: enable-steps
|
|
110
|
+
parameters:
|
|
111
|
+
steps:
|
|
112
|
+
- GET-DERC-3
|
|
113
|
+
- type: remove-steps
|
|
114
|
+
parameters:
|
|
115
|
+
steps:
|
|
116
|
+
- WAIT-CONTROL-END
|
|
117
|
+
instructions:
|
|
118
|
+
- DER should ramp down import to 30% at the rate of setGradW (default 0.27%/s)
|
|
119
|
+
- DER should then discover a new control and then ramp up to unconstrained at the rate of setGradW (default 0.27%/s)
|
|
120
|
+
- Upon control completion, DER should then ramp down to 30% at the rate of setGradW (default 0.27%/s)
|
|
121
|
+
|
|
122
|
+
# (h) On this poll, client will discover control the DefaultDERControl is cancelled and a new 0W control is in place
|
|
123
|
+
GET-DERC-3:
|
|
124
|
+
event:
|
|
125
|
+
type: GET-request-received
|
|
126
|
+
parameters:
|
|
127
|
+
endpoint: /edev/1/derp/1/derc
|
|
128
|
+
actions:
|
|
129
|
+
- type: create-der-control
|
|
130
|
+
parameters:
|
|
131
|
+
start: $(now)
|
|
132
|
+
duration_seconds: 600
|
|
133
|
+
opModImpLimW: 0
|
|
134
|
+
- type: set-default-der-control
|
|
135
|
+
parameters:
|
|
136
|
+
cancelled: true
|
|
137
|
+
- type: enable-steps
|
|
138
|
+
parameters:
|
|
139
|
+
steps:
|
|
140
|
+
- WAIT-TEST-END
|
|
141
|
+
- type: remove-steps
|
|
142
|
+
parameters:
|
|
143
|
+
steps:
|
|
144
|
+
- GET-DERC-3
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
WAIT-TEST-END:
|
|
148
|
+
event:
|
|
149
|
+
type: wait
|
|
150
|
+
parameters:
|
|
151
|
+
duration_seconds: 120
|
|
152
|
+
actions:
|
|
153
|
+
- type: remove-steps
|
|
154
|
+
parameters:
|
|
155
|
+
steps:
|
|
156
|
+
- WAIT-TEST-END
|
|
157
|
+
- type: finish-test
|
|
158
|
+
parameters: {}
|
|
159
|
+
instructions:
|
|
160
|
+
- DER shall ramp down import to 0W at the rate of setGradW (default 0.27%/s)
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
Description: Default Control – Load Limit
|
|
2
|
+
Category: Control
|
|
3
|
+
Classes:
|
|
4
|
+
- G
|
|
5
|
+
|
|
6
|
+
TargetVersions:
|
|
7
|
+
- v1.2
|
|
8
|
+
- v1.3-beta/storage
|
|
9
|
+
|
|
10
|
+
Criteria:
|
|
11
|
+
checks:
|
|
12
|
+
- type: all-steps-complete
|
|
13
|
+
parameters: {}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
Preconditions:
|
|
17
|
+
init_actions:
|
|
18
|
+
- type: set-comms-rate
|
|
19
|
+
parameters:
|
|
20
|
+
dcap_poll_seconds: 60
|
|
21
|
+
edev_list_poll_seconds: 60
|
|
22
|
+
fsa_list_poll_seconds: 60
|
|
23
|
+
der_list_poll_seconds: 60
|
|
24
|
+
derp_list_poll_seconds: 60
|
|
25
|
+
mup_post_seconds: 60
|
|
26
|
+
checks:
|
|
27
|
+
- type: end-device-contents
|
|
28
|
+
parameters: {}
|
|
29
|
+
- type: der-settings-contents
|
|
30
|
+
parameters: {}
|
|
31
|
+
actions:
|
|
32
|
+
- type: create-der-control
|
|
33
|
+
parameters:
|
|
34
|
+
start: $(now)
|
|
35
|
+
duration_seconds: 900
|
|
36
|
+
opModLoadLimW: $(setMaxW * 2)
|
|
37
|
+
instructions:
|
|
38
|
+
- DER shall be importing at least 50% of its active power rating.
|
|
39
|
+
|
|
40
|
+
Steps:
|
|
41
|
+
|
|
42
|
+
# (a, b)
|
|
43
|
+
GET-DEFAULT-DERC:
|
|
44
|
+
event:
|
|
45
|
+
type: GET-request-received
|
|
46
|
+
parameters:
|
|
47
|
+
endpoint: /edev/1/derp/1/dderc
|
|
48
|
+
actions:
|
|
49
|
+
- type: set-default-der-control
|
|
50
|
+
parameters:
|
|
51
|
+
opModLoadLimW: $(setMaxW * 0.3)
|
|
52
|
+
- type: enable-steps
|
|
53
|
+
parameters:
|
|
54
|
+
steps:
|
|
55
|
+
- GET-DERC-1
|
|
56
|
+
- type: remove-steps
|
|
57
|
+
parameters:
|
|
58
|
+
steps:
|
|
59
|
+
- GET-DEFAULT-DERC
|
|
60
|
+
|
|
61
|
+
# (b, c, d) This will be the first poll after client has received the defaults
|
|
62
|
+
# the client will see the existing control but it will be cancelled immediately after
|
|
63
|
+
GET-DERC-1:
|
|
64
|
+
event:
|
|
65
|
+
type: GET-request-received
|
|
66
|
+
parameters:
|
|
67
|
+
endpoint: /edev/1/derp/1/derc
|
|
68
|
+
serve_request_first: true # Run this AFTER server receives the request
|
|
69
|
+
actions:
|
|
70
|
+
- type: cancel-active-der-controls
|
|
71
|
+
parameters: {}
|
|
72
|
+
- type: enable-steps
|
|
73
|
+
parameters:
|
|
74
|
+
steps:
|
|
75
|
+
- GET-DERC-2
|
|
76
|
+
- type: remove-steps
|
|
77
|
+
parameters:
|
|
78
|
+
steps:
|
|
79
|
+
- GET-DERC-1
|
|
80
|
+
|
|
81
|
+
# (d, e) On this poll, client will discover control was cancelled and a new control will be added at 200% of setMaxW
|
|
82
|
+
GET-DERC-2:
|
|
83
|
+
event:
|
|
84
|
+
type: GET-request-received
|
|
85
|
+
parameters:
|
|
86
|
+
endpoint: /edev/1/derp/1/derc
|
|
87
|
+
serve_request_first: true # Run this AFTER server receives the request
|
|
88
|
+
actions:
|
|
89
|
+
- type: create-der-control
|
|
90
|
+
parameters:
|
|
91
|
+
start: $(now)
|
|
92
|
+
duration_seconds: 600
|
|
93
|
+
opModLoadLimW: $(setMaxW * 2)
|
|
94
|
+
- type: enable-steps
|
|
95
|
+
parameters:
|
|
96
|
+
steps:
|
|
97
|
+
- WAIT-CONTROL-END
|
|
98
|
+
- type: remove-steps
|
|
99
|
+
parameters:
|
|
100
|
+
steps:
|
|
101
|
+
- GET-DERC-2
|
|
102
|
+
|
|
103
|
+
# (f, g) Waits for the new control to finish (with a bit of overtime)
|
|
104
|
+
WAIT-CONTROL-END:
|
|
105
|
+
event:
|
|
106
|
+
type: wait
|
|
107
|
+
parameters:
|
|
108
|
+
duration_seconds: 660
|
|
109
|
+
actions:
|
|
110
|
+
- type: enable-steps
|
|
111
|
+
parameters:
|
|
112
|
+
steps:
|
|
113
|
+
- GET-DERC-3
|
|
114
|
+
- type: remove-steps
|
|
115
|
+
parameters:
|
|
116
|
+
steps:
|
|
117
|
+
- WAIT-CONTROL-END
|
|
118
|
+
instructions:
|
|
119
|
+
- DER should ramp down import to 30% at the rate of setGradW (default 0.27%/s)
|
|
120
|
+
- DER should then discover a new control and then ramp up to unconstrained at the rate of setGradW (default 0.27%/s)
|
|
121
|
+
- Upon control completion, DER should then ramp down to 30% at the rate of setGradW (default 0.27%/s)
|
|
122
|
+
|
|
123
|
+
# (h) On this poll, client will discover control the DefaultDERControl is cancelled and a new 0W control is in place
|
|
124
|
+
GET-DERC-3:
|
|
125
|
+
event:
|
|
126
|
+
type: GET-request-received
|
|
127
|
+
parameters:
|
|
128
|
+
endpoint: /edev/1/derp/1/derc
|
|
129
|
+
actions:
|
|
130
|
+
- type: create-der-control
|
|
131
|
+
parameters:
|
|
132
|
+
start: $(now)
|
|
133
|
+
duration_seconds: 600
|
|
134
|
+
opModLoadLimW: 0
|
|
135
|
+
- type: set-default-der-control
|
|
136
|
+
parameters:
|
|
137
|
+
cancelled: true
|
|
138
|
+
- type: enable-steps
|
|
139
|
+
parameters:
|
|
140
|
+
steps:
|
|
141
|
+
- WAIT-TEST-END
|
|
142
|
+
- type: remove-steps
|
|
143
|
+
parameters:
|
|
144
|
+
steps:
|
|
145
|
+
- GET-DERC-3
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
WAIT-TEST-END:
|
|
149
|
+
event:
|
|
150
|
+
type: wait
|
|
151
|
+
parameters:
|
|
152
|
+
duration_seconds: 120
|
|
153
|
+
actions:
|
|
154
|
+
- type: remove-steps
|
|
155
|
+
parameters:
|
|
156
|
+
steps:
|
|
157
|
+
- WAIT-TEST-END
|
|
158
|
+
- type: finish-test
|
|
159
|
+
parameters: {}
|
|
160
|
+
instructions:
|
|
161
|
+
- DER shall ramp down import to 0W at the rate of setGradW (default 0.27%/s)
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
Description: Active Controls – Import Limit
|
|
2
|
+
Category: Control
|
|
3
|
+
Classes:
|
|
4
|
+
- L
|
|
5
|
+
- S
|
|
6
|
+
|
|
7
|
+
TargetVersions:
|
|
8
|
+
- v1.2
|
|
9
|
+
- v1.3-beta/storage
|
|
10
|
+
|
|
11
|
+
Criteria:
|
|
12
|
+
checks:
|
|
13
|
+
- type: all-steps-complete
|
|
14
|
+
parameters: {}
|
|
15
|
+
- type: all-notifications-transmitted
|
|
16
|
+
parameters: {}
|
|
17
|
+
|
|
18
|
+
Preconditions:
|
|
19
|
+
init_actions:
|
|
20
|
+
- type: set-comms-rate
|
|
21
|
+
parameters:
|
|
22
|
+
dcap_poll_seconds: 60
|
|
23
|
+
edev_list_poll_seconds: 60
|
|
24
|
+
fsa_list_poll_seconds: 60
|
|
25
|
+
der_list_poll_seconds: 900 # Set to a large value - testing whether they respond due to notification - not polls
|
|
26
|
+
derp_list_poll_seconds: 900 # Set to a large value - testing whether they respond due to notification - not polls
|
|
27
|
+
mup_post_seconds: 60
|
|
28
|
+
checks:
|
|
29
|
+
- type: end-device-contents
|
|
30
|
+
parameters: {}
|
|
31
|
+
- type: der-settings-contents
|
|
32
|
+
parameters: {}
|
|
33
|
+
- type: subscription-contents
|
|
34
|
+
parameters:
|
|
35
|
+
subscribed_resource: /edev/1/derp/1/derc
|
|
36
|
+
|
|
37
|
+
actions:
|
|
38
|
+
- type: create-der-control
|
|
39
|
+
parameters:
|
|
40
|
+
start: $(now)
|
|
41
|
+
duration_seconds: 300
|
|
42
|
+
opModImpLimW: $(setMaxW * 2)
|
|
43
|
+
instructions:
|
|
44
|
+
- EndDevice should be registered with active subscriptions before starting.
|
|
45
|
+
- DER shall be importing from the connection point at least 50% of its active power rating.
|
|
46
|
+
|
|
47
|
+
Steps:
|
|
48
|
+
|
|
49
|
+
# NOTE - The majority of this test's validation is watching
|
|
50
|
+
|
|
51
|
+
# (a, b, c)
|
|
52
|
+
# After a short delay (to allow precondition actions to propagate subscriptions)
|
|
53
|
+
WAIT-CREATE-DERC:
|
|
54
|
+
event:
|
|
55
|
+
type: wait
|
|
56
|
+
parameters:
|
|
57
|
+
duration_seconds: 60
|
|
58
|
+
actions:
|
|
59
|
+
- type: create-der-control
|
|
60
|
+
parameters:
|
|
61
|
+
start: $(now + '5 minutes')
|
|
62
|
+
duration_seconds: 120
|
|
63
|
+
opModImpLimW: 0
|
|
64
|
+
- type: enable-steps
|
|
65
|
+
parameters:
|
|
66
|
+
steps:
|
|
67
|
+
- WAIT-TEST-FINISH
|
|
68
|
+
- type: remove-steps
|
|
69
|
+
parameters:
|
|
70
|
+
steps:
|
|
71
|
+
- WAIT-CREATE-DERC
|
|
72
|
+
|
|
73
|
+
# (a, b, c)
|
|
74
|
+
WAIT-TEST-FINISH:
|
|
75
|
+
event:
|
|
76
|
+
type: wait
|
|
77
|
+
parameters:
|
|
78
|
+
duration_seconds: 480 # enough time for the control to start, run and then finish
|
|
79
|
+
actions:
|
|
80
|
+
- type: remove-steps
|
|
81
|
+
parameters:
|
|
82
|
+
steps:
|
|
83
|
+
- WAIT-TEST-FINISH
|
|
84
|
+
instructions:
|
|
85
|
+
- DER should be observed ramping to and then from 0W control.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
Description: Active Controls – Load Limit
|
|
2
|
+
Category: Control
|
|
3
|
+
Classes:
|
|
4
|
+
- L
|
|
5
|
+
- S
|
|
6
|
+
|
|
7
|
+
TargetVersions:
|
|
8
|
+
- v1.2
|
|
9
|
+
- v1.3-beta/storage
|
|
10
|
+
|
|
11
|
+
Criteria:
|
|
12
|
+
checks:
|
|
13
|
+
- type: all-steps-complete
|
|
14
|
+
parameters: {}
|
|
15
|
+
- type: all-notifications-transmitted
|
|
16
|
+
parameters: {}
|
|
17
|
+
|
|
18
|
+
Preconditions:
|
|
19
|
+
init_actions:
|
|
20
|
+
- type: set-comms-rate
|
|
21
|
+
parameters:
|
|
22
|
+
dcap_poll_seconds: 60
|
|
23
|
+
edev_list_poll_seconds: 60
|
|
24
|
+
fsa_list_poll_seconds: 60
|
|
25
|
+
der_list_poll_seconds: 900 # Set to a large value - testing whether they respond due to notification - not polls
|
|
26
|
+
derp_list_poll_seconds: 900 # Set to a large value - testing whether they respond due to notification - not polls
|
|
27
|
+
mup_post_seconds: 60
|
|
28
|
+
checks:
|
|
29
|
+
- type: end-device-contents
|
|
30
|
+
parameters: {}
|
|
31
|
+
- type: der-settings-contents
|
|
32
|
+
parameters: {}
|
|
33
|
+
- type: subscription-contents
|
|
34
|
+
parameters:
|
|
35
|
+
subscribed_resource: /edev/1/derp/1/derc
|
|
36
|
+
|
|
37
|
+
actions:
|
|
38
|
+
- type: create-der-control
|
|
39
|
+
parameters:
|
|
40
|
+
start: $(now)
|
|
41
|
+
duration_seconds: 300
|
|
42
|
+
opModLoadLimW: $(setMaxW * 2)
|
|
43
|
+
instructions:
|
|
44
|
+
- EndDevice should be registered with active subscriptions before starting.
|
|
45
|
+
- DER shall be consuming at least 50% of its active power rating.
|
|
46
|
+
|
|
47
|
+
Steps:
|
|
48
|
+
|
|
49
|
+
# NOTE - The majority of this test's validation is watching
|
|
50
|
+
|
|
51
|
+
# (a, b, c)
|
|
52
|
+
# After a short delay (to allow precondition actions to propagate subscriptions)
|
|
53
|
+
WAIT-CREATE-DERC:
|
|
54
|
+
event:
|
|
55
|
+
type: wait
|
|
56
|
+
parameters:
|
|
57
|
+
duration_seconds: 60
|
|
58
|
+
actions:
|
|
59
|
+
- type: create-der-control
|
|
60
|
+
parameters:
|
|
61
|
+
start: $(now + '5 minutes')
|
|
62
|
+
duration_seconds: 120
|
|
63
|
+
opModLoadLimW: 0
|
|
64
|
+
- type: enable-steps
|
|
65
|
+
parameters:
|
|
66
|
+
steps:
|
|
67
|
+
- WAIT-TEST-FINISH
|
|
68
|
+
- type: remove-steps
|
|
69
|
+
parameters:
|
|
70
|
+
steps:
|
|
71
|
+
- WAIT-CREATE-DERC
|
|
72
|
+
|
|
73
|
+
# (a, b, c)
|
|
74
|
+
WAIT-TEST-FINISH:
|
|
75
|
+
event:
|
|
76
|
+
type: wait
|
|
77
|
+
parameters:
|
|
78
|
+
duration_seconds: 480 # enough time for the control to start, run and then finish
|
|
79
|
+
actions:
|
|
80
|
+
- type: remove-steps
|
|
81
|
+
parameters:
|
|
82
|
+
steps:
|
|
83
|
+
- WAIT-TEST-FINISH
|
|
84
|
+
instructions:
|
|
85
|
+
- DER should be observed ramping to and then from 0W control.
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
Description: Default Controls – Import Limit
|
|
2
|
+
Category: Control
|
|
3
|
+
Classes:
|
|
4
|
+
- L
|
|
5
|
+
- S
|
|
6
|
+
|
|
7
|
+
TargetVersions:
|
|
8
|
+
- v1.2
|
|
9
|
+
- v1.3-beta/storage
|
|
10
|
+
|
|
11
|
+
Criteria:
|
|
12
|
+
checks:
|
|
13
|
+
- type: all-steps-complete
|
|
14
|
+
parameters: {}
|
|
15
|
+
- type: all-notifications-transmitted
|
|
16
|
+
parameters: {}
|
|
17
|
+
|
|
18
|
+
Preconditions:
|
|
19
|
+
init_actions:
|
|
20
|
+
- type: set-comms-rate
|
|
21
|
+
parameters:
|
|
22
|
+
dcap_poll_seconds: 60
|
|
23
|
+
edev_list_poll_seconds: 60
|
|
24
|
+
fsa_list_poll_seconds: 60
|
|
25
|
+
der_list_poll_seconds: 1800 # Set to a large value - testing whether they respond due to notification - not polls
|
|
26
|
+
derp_list_poll_seconds: 1800 # Set to a large value - testing whether they respond due to notification - not polls
|
|
27
|
+
mup_post_seconds: 60
|
|
28
|
+
- type: create-der-program
|
|
29
|
+
parameters:
|
|
30
|
+
primacy: 0
|
|
31
|
+
|
|
32
|
+
checks:
|
|
33
|
+
- type: end-device-contents
|
|
34
|
+
parameters: {}
|
|
35
|
+
- type: der-settings-contents
|
|
36
|
+
parameters: {}
|
|
37
|
+
- type: subscription-contents
|
|
38
|
+
parameters:
|
|
39
|
+
subscribed_resource: /edev/1/derp/1/derc
|
|
40
|
+
- type: subscription-contents
|
|
41
|
+
parameters:
|
|
42
|
+
subscribed_resource: /edev/1/derp/1/dderc
|
|
43
|
+
|
|
44
|
+
actions:
|
|
45
|
+
- type: create-der-control
|
|
46
|
+
parameters:
|
|
47
|
+
start: $(now)
|
|
48
|
+
duration_seconds: 300
|
|
49
|
+
opModImpLimW: $(setMaxW * 2)
|
|
50
|
+
# (a, b)
|
|
51
|
+
- type: set-default-der-control
|
|
52
|
+
parameters:
|
|
53
|
+
opModImpLimW: $(setMaxW * 0.3)
|
|
54
|
+
instructions:
|
|
55
|
+
- EndDevice should be registered with active subscriptions before starting.
|
|
56
|
+
- DER shall be importing from the connection point with at least 50% of its active power rating.
|
|
57
|
+
|
|
58
|
+
Steps:
|
|
59
|
+
|
|
60
|
+
# (c)
|
|
61
|
+
# Give enough time for precondition notifications to propagate before cancelling all DERControls
|
|
62
|
+
WAIT-CANCEL-DERC:
|
|
63
|
+
event:
|
|
64
|
+
type: wait
|
|
65
|
+
parameters:
|
|
66
|
+
duration_seconds: 60
|
|
67
|
+
actions:
|
|
68
|
+
- type: cancel-active-der-controls
|
|
69
|
+
parameters: {}
|
|
70
|
+
|
|
71
|
+
- type: enable-steps
|
|
72
|
+
parameters:
|
|
73
|
+
steps:
|
|
74
|
+
- WAIT-DEVICE-RAMP
|
|
75
|
+
- type: remove-steps
|
|
76
|
+
parameters:
|
|
77
|
+
steps:
|
|
78
|
+
- WAIT-CANCEL-DERC
|
|
79
|
+
|
|
80
|
+
# (d, e)
|
|
81
|
+
WAIT-DEVICE-RAMP:
|
|
82
|
+
event:
|
|
83
|
+
type: wait
|
|
84
|
+
parameters:
|
|
85
|
+
duration_seconds: 120
|
|
86
|
+
actions:
|
|
87
|
+
- type: create-der-control
|
|
88
|
+
parameters:
|
|
89
|
+
start: $(now)
|
|
90
|
+
duration_seconds: 600
|
|
91
|
+
opModImpLimW: $(setMaxW * 2)
|
|
92
|
+
- type: enable-steps
|
|
93
|
+
parameters:
|
|
94
|
+
steps:
|
|
95
|
+
- WAIT-CONTROL-FINISH
|
|
96
|
+
- type: remove-steps
|
|
97
|
+
parameters:
|
|
98
|
+
steps:
|
|
99
|
+
- WAIT-DEVICE-RAMP
|
|
100
|
+
instructions:
|
|
101
|
+
- DER should be ramping to the DefaultDERControl value of 30% max power at rate setGradW (default 0.27%/s).
|
|
102
|
+
|
|
103
|
+
# (f, g, h)
|
|
104
|
+
WAIT-CONTROL-FINISH:
|
|
105
|
+
event:
|
|
106
|
+
type: wait
|
|
107
|
+
parameters:
|
|
108
|
+
duration_seconds: 720
|
|
109
|
+
actions:
|
|
110
|
+
- type: create-der-control
|
|
111
|
+
parameters:
|
|
112
|
+
start: $(now)
|
|
113
|
+
duration_seconds: 600
|
|
114
|
+
opModImpLimW: 0
|
|
115
|
+
- type: set-default-der-control
|
|
116
|
+
parameters:
|
|
117
|
+
cancelled: true
|
|
118
|
+
|
|
119
|
+
- type: enable-steps
|
|
120
|
+
parameters:
|
|
121
|
+
steps:
|
|
122
|
+
- WAIT-TEST-FINISH
|
|
123
|
+
- type: remove-steps
|
|
124
|
+
parameters:
|
|
125
|
+
steps:
|
|
126
|
+
- WAIT-CONTROL-FINISH
|
|
127
|
+
instructions:
|
|
128
|
+
- DER should be ramping to the active DERControl unconstrained value at rate setGradW (default 0.27%/s).
|
|
129
|
+
- Upon completion of the active DERControl (10 minutes) the DER should ramp to the DefaultDERControl value of 30% max power.
|
|
130
|
+
|
|
131
|
+
# (i)
|
|
132
|
+
WAIT-TEST-FINISH:
|
|
133
|
+
event:
|
|
134
|
+
type: wait
|
|
135
|
+
parameters:
|
|
136
|
+
duration_seconds: 720
|
|
137
|
+
actions:
|
|
138
|
+
- type: remove-steps
|
|
139
|
+
parameters:
|
|
140
|
+
steps:
|
|
141
|
+
- WAIT-TEST-FINISH
|
|
142
|
+
- type: finish-test
|
|
143
|
+
parameters: {}
|
|
144
|
+
instructions:
|
|
145
|
+
- DER should be ramping to the active DERControl 0W value at rate setGradW (default 0.27%/s).
|