|
1 <?xml version='1.0' encoding='utf-8'?> |
|
2 <project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201"> |
|
3 <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2018-07-28T02:24:08"/> |
|
4 <contentHeader name="BACnet" modificationDateTime="2018-07-29T01:54:59"> |
|
5 <coordinateInfo> |
|
6 <fbd> |
|
7 <scaling x="0" y="0"/> |
|
8 </fbd> |
|
9 <ld> |
|
10 <scaling x="0" y="0"/> |
|
11 </ld> |
|
12 <sfc> |
|
13 <scaling x="0" y="0"/> |
|
14 </sfc> |
|
15 </coordinateInfo> |
|
16 </contentHeader> |
|
17 <types> |
|
18 <dataTypes/> |
|
19 <pous> |
|
20 <pou name="program0" pouType="program"> |
|
21 <interface> |
|
22 <localVars> |
|
23 <variable name="EnergyCounter" address="%MD0.2.0"> |
|
24 <type> |
|
25 <REAL/> |
|
26 </type> |
|
27 </variable> |
|
28 <variable name="Temperature" address="%ID0.0.0"> |
|
29 <type> |
|
30 <REAL/> |
|
31 </type> |
|
32 </variable> |
|
33 <variable name="Humidity" address="%ID0.0.1"> |
|
34 <type> |
|
35 <REAL/> |
|
36 </type> |
|
37 </variable> |
|
38 </localVars> |
|
39 <localVars> |
|
40 <variable name="TempSimulation"> |
|
41 <type> |
|
42 <derived name="Simulator"/> |
|
43 </type> |
|
44 </variable> |
|
45 <variable name="HumiditySimulation"> |
|
46 <type> |
|
47 <derived name="Simulator"/> |
|
48 </type> |
|
49 </variable> |
|
50 </localVars> |
|
51 <localVars> |
|
52 <variable name="TemperatureSetPoint" address="%QD0.1.0"> |
|
53 <type> |
|
54 <REAL/> |
|
55 </type> |
|
56 </variable> |
|
57 <variable name="ControlDisable" address="%QX0.4.2"> |
|
58 <type> |
|
59 <BOOL/> |
|
60 </type> |
|
61 </variable> |
|
62 <variable name="Heater" address="%IX0.3.0"> |
|
63 <type> |
|
64 <BOOL/> |
|
65 </type> |
|
66 </variable> |
|
67 <variable name="Cooler" address="%IX0.3.1"> |
|
68 <type> |
|
69 <BOOL/> |
|
70 </type> |
|
71 </variable> |
|
72 </localVars> |
|
73 </interface> |
|
74 <body> |
|
75 <FBD> |
|
76 <inVariable localId="1" executionOrderId="0" height="30" width="105" negated="false"> |
|
77 <position x="299" y="521"/> |
|
78 <connectionPointOut> |
|
79 <relPosition x="105" y="15"/> |
|
80 </connectionPointOut> |
|
81 <expression>EnergyCounter</expression> |
|
82 </inVariable> |
|
83 <outVariable localId="2" executionOrderId="0" height="30" width="105" negated="false"> |
|
84 <position x="654" y="521"/> |
|
85 <connectionPointIn> |
|
86 <relPosition x="0" y="15"/> |
|
87 <connection refLocalId="3" formalParameter="OUT"> |
|
88 <position x="654" y="536"/> |
|
89 <position x="533" y="536"/> |
|
90 </connection> |
|
91 </connectionPointIn> |
|
92 <expression>EnergyCounter</expression> |
|
93 </outVariable> |
|
94 <block localId="3" typeName="ADD" executionOrderId="0" height="60" width="67"> |
|
95 <position x="466" y="506"/> |
|
96 <inputVariables> |
|
97 <variable formalParameter="IN1"> |
|
98 <connectionPointIn> |
|
99 <relPosition x="0" y="30"/> |
|
100 <connection refLocalId="1"> |
|
101 <position x="466" y="536"/> |
|
102 <position x="404" y="536"/> |
|
103 </connection> |
|
104 </connectionPointIn> |
|
105 </variable> |
|
106 <variable formalParameter="IN2"> |
|
107 <connectionPointIn> |
|
108 <relPosition x="0" y="50"/> |
|
109 <connection refLocalId="4"> |
|
110 <position x="466" y="556"/> |
|
111 <position x="436" y="556"/> |
|
112 <position x="436" y="585"/> |
|
113 <position x="401" y="585"/> |
|
114 </connection> |
|
115 </connectionPointIn> |
|
116 </variable> |
|
117 </inputVariables> |
|
118 <inOutVariables/> |
|
119 <outputVariables> |
|
120 <variable formalParameter="OUT"> |
|
121 <connectionPointOut> |
|
122 <relPosition x="67" y="30"/> |
|
123 </connectionPointOut> |
|
124 </variable> |
|
125 </outputVariables> |
|
126 </block> |
|
127 <inVariable localId="4" executionOrderId="0" height="30" width="105" negated="false"> |
|
128 <position x="296" y="570"/> |
|
129 <connectionPointOut> |
|
130 <relPosition x="105" y="15"/> |
|
131 </connectionPointOut> |
|
132 <expression>0.00131</expression> |
|
133 </inVariable> |
|
134 <comment localId="5" height="67" width="229"> |
|
135 <position x="27" y="525"/> |
|
136 <content> |
|
137 <xhtml:p><![CDATA[Always consume some energy]]></xhtml:p> |
|
138 </content> |
|
139 </comment> |
|
140 <block localId="6" typeName="Simulator" instanceName="TempSimulation" executionOrderId="0" height="115" width="134"> |
|
141 <position x="188" y="661"/> |
|
142 <inputVariables> |
|
143 <variable formalParameter="MinVal"> |
|
144 <connectionPointIn> |
|
145 <relPosition x="0" y="35"/> |
|
146 <connection refLocalId="8"> |
|
147 <position x="188" y="696"/> |
|
148 <position x="138" y="696"/> |
|
149 </connection> |
|
150 </connectionPointIn> |
|
151 </variable> |
|
152 <variable formalParameter="MaxVal"> |
|
153 <connectionPointIn> |
|
154 <relPosition x="0" y="66"/> |
|
155 <connection refLocalId="9"> |
|
156 <position x="188" y="727"/> |
|
157 <position x="138" y="727"/> |
|
158 </connection> |
|
159 </connectionPointIn> |
|
160 </variable> |
|
161 <variable formalParameter="PeriodSeconds"> |
|
162 <connectionPointIn> |
|
163 <relPosition x="0" y="97"/> |
|
164 <connection refLocalId="10"> |
|
165 <position x="188" y="758"/> |
|
166 <position x="138" y="758"/> |
|
167 </connection> |
|
168 </connectionPointIn> |
|
169 </variable> |
|
170 </inputVariables> |
|
171 <inOutVariables/> |
|
172 <outputVariables> |
|
173 <variable formalParameter="Out"> |
|
174 <connectionPointOut> |
|
175 <relPosition x="134" y="35"/> |
|
176 </connectionPointOut> |
|
177 </variable> |
|
178 </outputVariables> |
|
179 </block> |
|
180 <outVariable localId="7" executionOrderId="0" height="30" width="92" negated="false"> |
|
181 <position x="421" y="681"/> |
|
182 <connectionPointIn> |
|
183 <relPosition x="0" y="15"/> |
|
184 <connection refLocalId="6" formalParameter="Out"> |
|
185 <position x="421" y="696"/> |
|
186 <position x="322" y="696"/> |
|
187 </connection> |
|
188 </connectionPointIn> |
|
189 <expression>Temperature</expression> |
|
190 </outVariable> |
|
191 <inVariable localId="8" executionOrderId="0" height="30" width="105" negated="false"> |
|
192 <position x="33" y="681"/> |
|
193 <connectionPointOut> |
|
194 <relPosition x="105" y="15"/> |
|
195 </connectionPointOut> |
|
196 <expression>18.0</expression> |
|
197 </inVariable> |
|
198 <inVariable localId="9" executionOrderId="0" height="30" width="105" negated="false"> |
|
199 <position x="33" y="712"/> |
|
200 <connectionPointOut> |
|
201 <relPosition x="105" y="15"/> |
|
202 </connectionPointOut> |
|
203 <expression>30.0</expression> |
|
204 </inVariable> |
|
205 <inVariable localId="10" executionOrderId="0" height="30" width="105" negated="false"> |
|
206 <position x="33" y="743"/> |
|
207 <connectionPointOut> |
|
208 <relPosition x="105" y="15"/> |
|
209 </connectionPointOut> |
|
210 <expression>120</expression> |
|
211 </inVariable> |
|
212 <block localId="11" typeName="Simulator" instanceName="HumiditySimulation" executionOrderId="0" height="115" width="134"> |
|
213 <position x="185" y="803"/> |
|
214 <inputVariables> |
|
215 <variable formalParameter="MinVal"> |
|
216 <connectionPointIn> |
|
217 <relPosition x="0" y="35"/> |
|
218 <connection refLocalId="13"> |
|
219 <position x="185" y="838"/> |
|
220 <position x="135" y="838"/> |
|
221 </connection> |
|
222 </connectionPointIn> |
|
223 </variable> |
|
224 <variable formalParameter="MaxVal"> |
|
225 <connectionPointIn> |
|
226 <relPosition x="0" y="66"/> |
|
227 <connection refLocalId="14"> |
|
228 <position x="185" y="869"/> |
|
229 <position x="135" y="869"/> |
|
230 </connection> |
|
231 </connectionPointIn> |
|
232 </variable> |
|
233 <variable formalParameter="PeriodSeconds"> |
|
234 <connectionPointIn> |
|
235 <relPosition x="0" y="97"/> |
|
236 <connection refLocalId="15"> |
|
237 <position x="185" y="900"/> |
|
238 <position x="135" y="900"/> |
|
239 </connection> |
|
240 </connectionPointIn> |
|
241 </variable> |
|
242 </inputVariables> |
|
243 <inOutVariables/> |
|
244 <outputVariables> |
|
245 <variable formalParameter="Out"> |
|
246 <connectionPointOut> |
|
247 <relPosition x="134" y="35"/> |
|
248 </connectionPointOut> |
|
249 </variable> |
|
250 </outputVariables> |
|
251 </block> |
|
252 <outVariable localId="12" executionOrderId="0" height="30" width="92" negated="false"> |
|
253 <position x="418" y="823"/> |
|
254 <connectionPointIn> |
|
255 <relPosition x="0" y="15"/> |
|
256 <connection refLocalId="11" formalParameter="Out"> |
|
257 <position x="418" y="838"/> |
|
258 <position x="319" y="838"/> |
|
259 </connection> |
|
260 </connectionPointIn> |
|
261 <expression>Humidity</expression> |
|
262 </outVariable> |
|
263 <inVariable localId="13" executionOrderId="0" height="30" width="105" negated="false"> |
|
264 <position x="30" y="823"/> |
|
265 <connectionPointOut> |
|
266 <relPosition x="105" y="15"/> |
|
267 </connectionPointOut> |
|
268 <expression>55.0</expression> |
|
269 </inVariable> |
|
270 <inVariable localId="14" executionOrderId="0" height="30" width="105" negated="false"> |
|
271 <position x="30" y="854"/> |
|
272 <connectionPointOut> |
|
273 <relPosition x="105" y="15"/> |
|
274 </connectionPointOut> |
|
275 <expression>78.0</expression> |
|
276 </inVariable> |
|
277 <inVariable localId="15" executionOrderId="0" height="30" width="105" negated="false"> |
|
278 <position x="30" y="885"/> |
|
279 <connectionPointOut> |
|
280 <relPosition x="105" y="15"/> |
|
281 </connectionPointOut> |
|
282 <expression>58</expression> |
|
283 </inVariable> |
|
284 <block localId="16" typeName="GT" executionOrderId="0" height="60" width="67"> |
|
285 <position x="231" y="1103"/> |
|
286 <inputVariables> |
|
287 <variable formalParameter="IN1"> |
|
288 <connectionPointIn> |
|
289 <relPosition x="0" y="30"/> |
|
290 <connection refLocalId="18"> |
|
291 <position x="231" y="1133"/> |
|
292 <position x="132" y="1133"/> |
|
293 </connection> |
|
294 </connectionPointIn> |
|
295 </variable> |
|
296 <variable formalParameter="IN2"> |
|
297 <connectionPointIn> |
|
298 <relPosition x="0" y="50"/> |
|
299 <connection refLocalId="22"> |
|
300 <position x="231" y="1153"/> |
|
301 <position x="208" y="1153"/> |
|
302 <position x="208" y="1169"/> |
|
303 <position x="185" y="1169"/> |
|
304 </connection> |
|
305 </connectionPointIn> |
|
306 </variable> |
|
307 </inputVariables> |
|
308 <inOutVariables/> |
|
309 <outputVariables> |
|
310 <variable formalParameter="OUT"> |
|
311 <connectionPointOut> |
|
312 <relPosition x="67" y="30"/> |
|
313 </connectionPointOut> |
|
314 </variable> |
|
315 </outputVariables> |
|
316 </block> |
|
317 <inVariable localId="18" executionOrderId="0" height="30" width="92" negated="false"> |
|
318 <position x="40" y="1118"/> |
|
319 <connectionPointOut> |
|
320 <relPosition x="92" y="15"/> |
|
321 </connectionPointOut> |
|
322 <expression>Temperature</expression> |
|
323 </inVariable> |
|
324 <block localId="19" typeName="AND" executionOrderId="0" height="60" width="67"> |
|
325 <position x="347" y="1059"/> |
|
326 <inputVariables> |
|
327 <variable formalParameter="IN1" negated="true"> |
|
328 <connectionPointIn> |
|
329 <relPosition x="0" y="30"/> |
|
330 <connection refLocalId="20"> |
|
331 <position x="347" y="1089"/> |
|
332 <position x="263" y="1089"/> |
|
333 <position x="263" y="1074"/> |
|
334 <position x="145" y="1074"/> |
|
335 </connection> |
|
336 </connectionPointIn> |
|
337 </variable> |
|
338 <variable formalParameter="IN2"> |
|
339 <connectionPointIn> |
|
340 <relPosition x="0" y="50"/> |
|
341 <connection refLocalId="16" formalParameter="OUT"> |
|
342 <position x="347" y="1109"/> |
|
343 <position x="337" y="1109"/> |
|
344 <position x="337" y="1133"/> |
|
345 <position x="298" y="1133"/> |
|
346 </connection> |
|
347 </connectionPointIn> |
|
348 </variable> |
|
349 </inputVariables> |
|
350 <inOutVariables/> |
|
351 <outputVariables> |
|
352 <variable formalParameter="OUT"> |
|
353 <connectionPointOut> |
|
354 <relPosition x="67" y="30"/> |
|
355 </connectionPointOut> |
|
356 </variable> |
|
357 </outputVariables> |
|
358 </block> |
|
359 <inVariable localId="20" executionOrderId="0" height="30" width="104" negated="false"> |
|
360 <position x="41" y="1059"/> |
|
361 <connectionPointOut> |
|
362 <relPosition x="104" y="15"/> |
|
363 </connectionPointOut> |
|
364 <expression>ControlDisable</expression> |
|
365 </inVariable> |
|
366 <outVariable localId="21" executionOrderId="0" height="30" width="92" negated="false"> |
|
367 <position x="468" y="1074"/> |
|
368 <connectionPointIn> |
|
369 <relPosition x="0" y="15"/> |
|
370 <connection refLocalId="19" formalParameter="OUT"> |
|
371 <position x="468" y="1089"/> |
|
372 <position x="414" y="1089"/> |
|
373 </connection> |
|
374 </connectionPointIn> |
|
375 <expression>Cooler</expression> |
|
376 </outVariable> |
|
377 <inVariable localId="22" executionOrderId="0" height="30" width="146" negated="false"> |
|
378 <position x="39" y="1154"/> |
|
379 <connectionPointOut> |
|
380 <relPosition x="146" y="15"/> |
|
381 </connectionPointOut> |
|
382 <expression>TemperatureSetPoint</expression> |
|
383 </inVariable> |
|
384 <block localId="17" typeName="LT" executionOrderId="0" height="60" width="67"> |
|
385 <position x="228" y="1278"/> |
|
386 <inputVariables> |
|
387 <variable formalParameter="IN1"> |
|
388 <connectionPointIn> |
|
389 <relPosition x="0" y="30"/> |
|
390 <connection refLocalId="23"> |
|
391 <position x="228" y="1308"/> |
|
392 <position x="129" y="1308"/> |
|
393 </connection> |
|
394 </connectionPointIn> |
|
395 </variable> |
|
396 <variable formalParameter="IN2"> |
|
397 <connectionPointIn> |
|
398 <relPosition x="0" y="50"/> |
|
399 <connection refLocalId="27"> |
|
400 <position x="228" y="1328"/> |
|
401 <position x="205" y="1328"/> |
|
402 <position x="205" y="1344"/> |
|
403 <position x="182" y="1344"/> |
|
404 </connection> |
|
405 </connectionPointIn> |
|
406 </variable> |
|
407 </inputVariables> |
|
408 <inOutVariables/> |
|
409 <outputVariables> |
|
410 <variable formalParameter="OUT"> |
|
411 <connectionPointOut> |
|
412 <relPosition x="67" y="30"/> |
|
413 </connectionPointOut> |
|
414 </variable> |
|
415 </outputVariables> |
|
416 </block> |
|
417 <inVariable localId="23" executionOrderId="0" height="30" width="92" negated="false"> |
|
418 <position x="37" y="1293"/> |
|
419 <connectionPointOut> |
|
420 <relPosition x="92" y="15"/> |
|
421 </connectionPointOut> |
|
422 <expression>Temperature</expression> |
|
423 </inVariable> |
|
424 <block localId="24" typeName="AND" executionOrderId="0" height="60" width="67"> |
|
425 <position x="344" y="1234"/> |
|
426 <inputVariables> |
|
427 <variable formalParameter="IN1" negated="true"> |
|
428 <connectionPointIn> |
|
429 <relPosition x="0" y="30"/> |
|
430 <connection refLocalId="25"> |
|
431 <position x="344" y="1264"/> |
|
432 <position x="260" y="1264"/> |
|
433 <position x="260" y="1249"/> |
|
434 <position x="142" y="1249"/> |
|
435 </connection> |
|
436 </connectionPointIn> |
|
437 </variable> |
|
438 <variable formalParameter="IN2"> |
|
439 <connectionPointIn> |
|
440 <relPosition x="0" y="50"/> |
|
441 <connection refLocalId="17" formalParameter="OUT"> |
|
442 <position x="344" y="1284"/> |
|
443 <position x="334" y="1284"/> |
|
444 <position x="334" y="1308"/> |
|
445 <position x="295" y="1308"/> |
|
446 </connection> |
|
447 </connectionPointIn> |
|
448 </variable> |
|
449 </inputVariables> |
|
450 <inOutVariables/> |
|
451 <outputVariables> |
|
452 <variable formalParameter="OUT"> |
|
453 <connectionPointOut> |
|
454 <relPosition x="67" y="30"/> |
|
455 </connectionPointOut> |
|
456 </variable> |
|
457 </outputVariables> |
|
458 </block> |
|
459 <inVariable localId="25" executionOrderId="0" height="30" width="104" negated="false"> |
|
460 <position x="38" y="1234"/> |
|
461 <connectionPointOut> |
|
462 <relPosition x="104" y="15"/> |
|
463 </connectionPointOut> |
|
464 <expression>ControlDisable</expression> |
|
465 </inVariable> |
|
466 <outVariable localId="26" executionOrderId="0" height="30" width="92" negated="false"> |
|
467 <position x="465" y="1249"/> |
|
468 <connectionPointIn> |
|
469 <relPosition x="0" y="15"/> |
|
470 <connection refLocalId="24" formalParameter="OUT"> |
|
471 <position x="465" y="1264"/> |
|
472 <position x="411" y="1264"/> |
|
473 </connection> |
|
474 </connectionPointIn> |
|
475 <expression>Heater</expression> |
|
476 </outVariable> |
|
477 <inVariable localId="27" executionOrderId="0" height="30" width="146" negated="false"> |
|
478 <position x="36" y="1329"/> |
|
479 <connectionPointOut> |
|
480 <relPosition x="146" y="15"/> |
|
481 </connectionPointOut> |
|
482 <expression>TemperatureSetPoint</expression> |
|
483 </inVariable> |
|
484 <comment localId="28" height="67" width="229"> |
|
485 <position x="343" y="734"/> |
|
486 <content> |
|
487 <xhtml:p><![CDATA[Simple sensor simulation]]></xhtml:p> |
|
488 </content> |
|
489 </comment> |
|
490 <comment localId="29" height="67" width="229"> |
|
491 <position x="37" y="978"/> |
|
492 <content> |
|
493 <xhtml:p><![CDATA[Climate control]]></xhtml:p> |
|
494 </content> |
|
495 </comment> |
|
496 <comment localId="30" height="464" width="773"> |
|
497 <position x="14" y="16"/> |
|
498 <content> |
|
499 <xhtml:p><![CDATA[This examples shows how to work with BACnet extension. |
|
500 |
|
501 Extensions requires native BACnet stack to be installed nearby Beremiz. |
|
502 Following directory structure is expected: |
|
503 <Parent directory> |
|
504 "beremiz" |
|
505 "BACnet" |
|
506 |
|
507 If library is installed elsewhere, then place corresponding paths |
|
508 in CFLAGS/LDFLAGS in project settings. |
|
509 |
|
510 For GNU/Linux to install BACnet library in parent directory run following commands: |
|
511 $ svn checkout https://svn.code.sf.net/p/bacnet/code/trunk/bacnet-stack/ BACnet |
|
512 $ cd BACnet |
|
513 $ make |
|
514 |
|
515 After that BACnet extension is ready to be used in Beremiz projects. |
|
516 BACnet stack implementation contains a lot of test tools. They could be useful during |
|
517 debugging and BACnet investigation. See "BACnet/bin/readme.txt" for more information about them.]]></xhtml:p> |
|
518 </content> |
|
519 </comment> |
|
520 </FBD> |
|
521 </body> |
|
522 </pou> |
|
523 <pou name="Simulator" pouType="functionBlock"> |
|
524 <interface> |
|
525 <outputVars> |
|
526 <variable name="Out"> |
|
527 <type> |
|
528 <REAL/> |
|
529 </type> |
|
530 </variable> |
|
531 </outputVars> |
|
532 <inputVars> |
|
533 <variable name="MinVal"> |
|
534 <type> |
|
535 <REAL/> |
|
536 </type> |
|
537 </variable> |
|
538 <variable name="MaxVal"> |
|
539 <type> |
|
540 <REAL/> |
|
541 </type> |
|
542 </variable> |
|
543 <variable name="PeriodSeconds"> |
|
544 <type> |
|
545 <INT/> |
|
546 </type> |
|
547 </variable> |
|
548 </inputVars> |
|
549 <localVars> |
|
550 <variable name="TON0"> |
|
551 <type> |
|
552 <derived name="TON"/> |
|
553 </type> |
|
554 </variable> |
|
555 <variable name="seconds"> |
|
556 <type> |
|
557 <INT/> |
|
558 </type> |
|
559 </variable> |
|
560 <variable name="BaseVal"> |
|
561 <type> |
|
562 <REAL/> |
|
563 </type> |
|
564 </variable> |
|
565 <variable name="VarVal"> |
|
566 <type> |
|
567 <REAL/> |
|
568 </type> |
|
569 </variable> |
|
570 </localVars> |
|
571 </interface> |
|
572 <body> |
|
573 <ST> |
|
574 <xhtml:p><![CDATA[(* pseudo-random variations *) |
|
575 TON0(IN := TRUE, PT := T#3120s); |
|
576 IF TON0.Q THEN |
|
577 TON0(IN := FALSE); |
|
578 END_IF; |
|
579 seconds := TIME_TO_INT(TON0.ET); |
|
580 |
|
581 BaseVal := (MaxVal + MinVal)/2.0; |
|
582 VarVal := (MaxVal-MinVal)*INT_TO_REAL((seconds MOD PeriodSeconds) - (PeriodSeconds/2))/INT_TO_REAL(PeriodSeconds); |
|
583 |
|
584 Out := BaseVal + VarVal;]]></xhtml:p> |
|
585 </ST> |
|
586 </body> |
|
587 </pou> |
|
588 </pous> |
|
589 </types> |
|
590 <instances> |
|
591 <configurations> |
|
592 <configuration name="config"> |
|
593 <resource name="resource1"> |
|
594 <task name="task0" priority="0" interval="T#20ms"> |
|
595 <pouInstance name="instance0" typeName="program0"/> |
|
596 </task> |
|
597 </resource> |
|
598 </configuration> |
|
599 </configurations> |
|
600 </instances> |
|
601 </project> |