1 <?xml version='1.0' encoding='utf-8'?> |
|
2 <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201"> |
|
3 <fileHeader companyName="beremiz" productName="Beremiz" productVersion="0.0" creationDateTime="2008-12-14T16:21:19"/> |
|
4 <contentHeader name="Beremiz SVGUI Test" modificationDateTime="2018-09-26T13:18:53"> |
|
5 <coordinateInfo> |
|
6 <pageSize x="1024" y="1024"/> |
|
7 <fbd> |
|
8 <scaling x="0" y="0"/> |
|
9 </fbd> |
|
10 <ld> |
|
11 <scaling x="5" y="5"/> |
|
12 </ld> |
|
13 <sfc> |
|
14 <scaling x="5" y="5"/> |
|
15 </sfc> |
|
16 </coordinateInfo> |
|
17 </contentHeader> |
|
18 <types> |
|
19 <dataTypes/> |
|
20 <pous> |
|
21 <pou name="main_pytest" pouType="program"> |
|
22 <interface> |
|
23 <localVars> |
|
24 <variable name="counter"> |
|
25 <type> |
|
26 <INT/> |
|
27 </type> |
|
28 </variable> |
|
29 <variable name="Start_Stop"> |
|
30 <type> |
|
31 <derived name="Button"/> |
|
32 </type> |
|
33 </variable> |
|
34 <variable name="Counter_TextCtrl"> |
|
35 <type> |
|
36 <derived name="TextCtrl"/> |
|
37 </type> |
|
38 </variable> |
|
39 <variable name="State_LedCtrl"> |
|
40 <type> |
|
41 <derived name="Led"/> |
|
42 </type> |
|
43 </variable> |
|
44 </localVars> |
|
45 </interface> |
|
46 <body> |
|
47 <FBD> |
|
48 <block localId="32" width="80" height="110" typeName="ADD" executionOrderId="0"> |
|
49 <position x="649" y="285"/> |
|
50 <inputVariables> |
|
51 <variable formalParameter="EN"> |
|
52 <connectionPointIn> |
|
53 <relPosition x="0" y="35"/> |
|
54 <connection refLocalId="5"> |
|
55 <position x="649" y="320"/> |
|
56 <position x="594" y="320"/> |
|
57 </connection> |
|
58 </connectionPointIn> |
|
59 </variable> |
|
60 <variable formalParameter="IN1"> |
|
61 <connectionPointIn> |
|
62 <relPosition x="0" y="65"/> |
|
63 <connection refLocalId="100" formalParameter="OUT"> |
|
64 <position x="649" y="350"/> |
|
65 <position x="474" y="350"/> |
|
66 </connection> |
|
67 </connectionPointIn> |
|
68 </variable> |
|
69 <variable formalParameter="IN2"> |
|
70 <connectionPointIn> |
|
71 <relPosition x="0" y="95"/> |
|
72 <connection refLocalId="33"> |
|
73 <position x="649" y="380"/> |
|
74 <position x="629" y="380"/> |
|
75 <position x="629" y="418"/> |
|
76 <position x="854" y="418"/> |
|
77 <position x="854" y="350"/> |
|
78 <position x="839" y="350"/> |
|
79 </connection> |
|
80 </connectionPointIn> |
|
81 </variable> |
|
82 </inputVariables> |
|
83 <inOutVariables/> |
|
84 <outputVariables> |
|
85 <variable formalParameter="ENO"> |
|
86 <connectionPointOut> |
|
87 <relPosition x="80" y="35"/> |
|
88 </connectionPointOut> |
|
89 </variable> |
|
90 <variable formalParameter="OUT"> |
|
91 <connectionPointOut> |
|
92 <relPosition x="80" y="65"/> |
|
93 </connectionPointOut> |
|
94 </variable> |
|
95 </outputVariables> |
|
96 </block> |
|
97 <inOutVariable localId="33" height="35" width="85" executionOrderId="0" negatedOut="false" negatedIn="false"> |
|
98 <position x="754" y="333"/> |
|
99 <connectionPointIn> |
|
100 <relPosition x="0" y="17"/> |
|
101 <connection refLocalId="32" formalParameter="OUT"> |
|
102 <position x="754" y="350"/> |
|
103 <position x="729" y="350"/> |
|
104 </connection> |
|
105 </connectionPointIn> |
|
106 <connectionPointOut> |
|
107 <relPosition x="85" y="17"/> |
|
108 </connectionPointOut> |
|
109 <expression>counter</expression> |
|
110 </inOutVariable> |
|
111 <inVariable localId="39" height="35" width="89" executionOrderId="0" negated="false"> |
|
112 <position x="55" y="333"/> |
|
113 <connectionPointOut> |
|
114 <relPosition x="89" y="17"/> |
|
115 </connectionPointOut> |
|
116 <expression>BOOL#1</expression> |
|
117 </inVariable> |
|
118 <inVariable localId="41" height="30" width="120" executionOrderId="0" negated="false"> |
|
119 <position x="21" y="619"/> |
|
120 <connectionPointOut> |
|
121 <relPosition x="120" y="15"/> |
|
122 </connectionPointOut> |
|
123 <expression>'stop_back'</expression> |
|
124 </inVariable> |
|
125 <inVariable localId="42" height="30" width="120" executionOrderId="0" negated="false"> |
|
126 <position x="21" y="661"/> |
|
127 <connectionPointOut> |
|
128 <relPosition x="120" y="15"/> |
|
129 </connectionPointOut> |
|
130 <expression>'stop_sele'</expression> |
|
131 </inVariable> |
|
132 <inVariable localId="46" height="30" width="122" executionOrderId="0" negated="false"> |
|
133 <position x="694" y="799"/> |
|
134 <connectionPointOut> |
|
135 <relPosition x="122" y="15"/> |
|
136 </connectionPointOut> |
|
137 <expression>'text_counter'</expression> |
|
138 </inVariable> |
|
139 <inVariable localId="51" height="30" width="119" executionOrderId="0" negated="false"> |
|
140 <position x="692" y="612"/> |
|
141 <connectionPointOut> |
|
142 <relPosition x="119" y="15"/> |
|
143 </connectionPointOut> |
|
144 <expression>'led_stop'</expression> |
|
145 </inVariable> |
|
146 <inVariable localId="52" height="30" width="120" executionOrderId="0" negated="false"> |
|
147 <position x="691" y="648"/> |
|
148 <connectionPointOut> |
|
149 <relPosition x="120" y="15"/> |
|
150 </connectionPointOut> |
|
151 <expression>'led_start'</expression> |
|
152 </inVariable> |
|
153 <block localId="83" width="145" height="60" typeName="INT_TO_STRING" executionOrderId="0"> |
|
154 <position x="537" y="856"/> |
|
155 <inputVariables> |
|
156 <variable formalParameter="IN"> |
|
157 <connectionPointIn> |
|
158 <relPosition x="0" y="40"/> |
|
159 <connection refLocalId="4"> |
|
160 <position x="537" y="896"/> |
|
161 <position x="504" y="896"/> |
|
162 </connection> |
|
163 </connectionPointIn> |
|
164 </variable> |
|
165 </inputVariables> |
|
166 <inOutVariables/> |
|
167 <outputVariables> |
|
168 <variable formalParameter="OUT"> |
|
169 <connectionPointOut> |
|
170 <relPosition x="145" y="40"/> |
|
171 </connectionPointOut> |
|
172 </variable> |
|
173 </outputVariables> |
|
174 </block> |
|
175 <block localId="92" width="187" height="230" typeName="Button" instanceName="Start_Stop" executionOrderId="0"> |
|
176 <position x="201" y="593"/> |
|
177 <inputVariables> |
|
178 <variable formalParameter="back_id"> |
|
179 <connectionPointIn> |
|
180 <relPosition x="0" y="41"/> |
|
181 <connection refLocalId="41"> |
|
182 <position x="201" y="634"/> |
|
183 <position x="141" y="634"/> |
|
184 </connection> |
|
185 </connectionPointIn> |
|
186 </variable> |
|
187 <variable formalParameter="sele_id"> |
|
188 <connectionPointIn> |
|
189 <relPosition x="0" y="83"/> |
|
190 <connection refLocalId="42"> |
|
191 <position x="201" y="676"/> |
|
192 <position x="141" y="676"/> |
|
193 </connection> |
|
194 </connectionPointIn> |
|
195 </variable> |
|
196 <variable formalParameter="toggle"> |
|
197 <connectionPointIn> |
|
198 <relPosition x="0" y="125"/> |
|
199 <connection refLocalId="93"> |
|
200 <position x="201" y="718"/> |
|
201 <position x="141" y="718"/> |
|
202 </connection> |
|
203 </connectionPointIn> |
|
204 </variable> |
|
205 <variable formalParameter="set_state"> |
|
206 <connectionPointIn> |
|
207 <relPosition x="0" y="167"/> |
|
208 </connectionPointIn> |
|
209 </variable> |
|
210 <variable formalParameter="state_in"> |
|
211 <connectionPointIn> |
|
212 <relPosition x="0" y="209"/> |
|
213 </connectionPointIn> |
|
214 </variable> |
|
215 </inputVariables> |
|
216 <inOutVariables/> |
|
217 <outputVariables> |
|
218 <variable formalParameter="state_out"> |
|
219 <connectionPointOut> |
|
220 <relPosition x="187" y="41"/> |
|
221 </connectionPointOut> |
|
222 </variable> |
|
223 </outputVariables> |
|
224 </block> |
|
225 <inVariable localId="93" height="30" width="120" executionOrderId="0" negated="false"> |
|
226 <position x="21" y="703"/> |
|
227 <connectionPointOut> |
|
228 <relPosition x="120" y="15"/> |
|
229 </connectionPointOut> |
|
230 <expression>BOOL#1</expression> |
|
231 </inVariable> |
|
232 <block localId="94" width="100" height="145" typeName="TextCtrl" instanceName="Counter_TextCtrl" executionOrderId="0"> |
|
233 <position x="876" y="774"/> |
|
234 <inputVariables> |
|
235 <variable formalParameter="back_id"> |
|
236 <connectionPointIn> |
|
237 <relPosition x="0" y="40"/> |
|
238 <connection refLocalId="46"> |
|
239 <position x="876" y="814"/> |
|
240 <position x="816" y="814"/> |
|
241 </connection> |
|
242 </connectionPointIn> |
|
243 </variable> |
|
244 <variable formalParameter="set_text"> |
|
245 <connectionPointIn> |
|
246 <relPosition x="0" y="81"/> |
|
247 <connection refLocalId="3"> |
|
248 <position x="876" y="855"/> |
|
249 <position x="815" y="855"/> |
|
250 </connection> |
|
251 </connectionPointIn> |
|
252 </variable> |
|
253 <variable formalParameter="text"> |
|
254 <connectionPointIn> |
|
255 <relPosition x="0" y="122"/> |
|
256 <connection refLocalId="83" formalParameter="OUT"> |
|
257 <position x="876" y="896"/> |
|
258 <position x="682" y="896"/> |
|
259 </connection> |
|
260 </connectionPointIn> |
|
261 </variable> |
|
262 </inputVariables> |
|
263 <inOutVariables/> |
|
264 <outputVariables/> |
|
265 </block> |
|
266 <inVariable localId="1" height="30" width="88" executionOrderId="0" negated="false"> |
|
267 <position x="59" y="272"/> |
|
268 <connectionPointOut> |
|
269 <relPosition x="88" y="15"/> |
|
270 </connectionPointOut> |
|
271 <expression>BOOL#1</expression> |
|
272 </inVariable> |
|
273 <block localId="95" width="100" height="130" typeName="Led" instanceName="State_LedCtrl" executionOrderId="0"> |
|
274 <position x="876" y="589"/> |
|
275 <inputVariables> |
|
276 <variable formalParameter="back_id"> |
|
277 <connectionPointIn> |
|
278 <relPosition x="0" y="38"/> |
|
279 <connection refLocalId="51"> |
|
280 <position x="876" y="627"/> |
|
281 <position x="811" y="627"/> |
|
282 </connection> |
|
283 </connectionPointIn> |
|
284 </variable> |
|
285 <variable formalParameter="sele_id"> |
|
286 <connectionPointIn> |
|
287 <relPosition x="0" y="74"/> |
|
288 <connection refLocalId="52"> |
|
289 <position x="876" y="663"/> |
|
290 <position x="811" y="663"/> |
|
291 </connection> |
|
292 </connectionPointIn> |
|
293 </variable> |
|
294 <variable formalParameter="state_in"> |
|
295 <connectionPointIn> |
|
296 <relPosition x="0" y="110"/> |
|
297 <connection refLocalId="2"> |
|
298 <position x="876" y="699"/> |
|
299 <position x="811" y="699"/> |
|
300 </connection> |
|
301 </connectionPointIn> |
|
302 </variable> |
|
303 </inputVariables> |
|
304 <inOutVariables/> |
|
305 <outputVariables/> |
|
306 </block> |
|
307 <block localId="96" width="80" height="65" typeName="AND" executionOrderId="0"> |
|
308 <position x="200" y="234"/> |
|
309 <inputVariables> |
|
310 <variable formalParameter="IN1" negated="true"> |
|
311 <connectionPointIn> |
|
312 <relPosition x="0" y="31"/> |
|
313 <connection refLocalId="96" formalParameter="OUT"> |
|
314 <position x="200" y="265"/> |
|
315 <position x="175" y="265"/> |
|
316 <position x="175" y="219"/> |
|
317 <position x="305" y="219"/> |
|
318 <position x="305" y="265"/> |
|
319 <position x="280" y="265"/> |
|
320 </connection> |
|
321 </connectionPointIn> |
|
322 </variable> |
|
323 <variable formalParameter="IN2"> |
|
324 <connectionPointIn> |
|
325 <relPosition x="0" y="53"/> |
|
326 <connection refLocalId="1"> |
|
327 <position x="200" y="287"/> |
|
328 <position x="147" y="287"/> |
|
329 </connection> |
|
330 </connectionPointIn> |
|
331 </variable> |
|
332 </inputVariables> |
|
333 <inOutVariables/> |
|
334 <outputVariables> |
|
335 <variable formalParameter="OUT"> |
|
336 <connectionPointOut> |
|
337 <relPosition x="80" y="31"/> |
|
338 </connectionPointOut> |
|
339 </variable> |
|
340 </outputVariables> |
|
341 </block> |
|
342 <connector name="CLOCK" localId="97" height="30" width="90"> |
|
343 <position x="345" y="250"/> |
|
344 <connectionPointIn> |
|
345 <relPosition x="0" y="15"/> |
|
346 <connection refLocalId="96" formalParameter="OUT"> |
|
347 <position x="345" y="265"/> |
|
348 <position x="280" y="265"/> |
|
349 </connection> |
|
350 </connectionPointIn> |
|
351 </connector> |
|
352 <connector name="COUNT" localId="98" height="30" width="90"> |
|
353 <position x="461" y="619"/> |
|
354 <connectionPointIn> |
|
355 <relPosition x="0" y="15"/> |
|
356 <connection refLocalId="92" formalParameter="state_out"> |
|
357 <position x="461" y="634"/> |
|
358 <position x="388" y="634"/> |
|
359 </connection> |
|
360 </connectionPointIn> |
|
361 </connector> |
|
362 <continuation name="COUNT" localId="2" height="30" width="120"> |
|
363 <position x="691" y="684"/> |
|
364 <connectionPointOut> |
|
365 <relPosition x="120" y="15"/> |
|
366 </connectionPointOut> |
|
367 </continuation> |
|
368 <inVariable localId="4" height="35" width="85" executionOrderId="0" negated="false"> |
|
369 <position x="419" y="879"/> |
|
370 <connectionPointOut> |
|
371 <relPosition x="85" y="17"/> |
|
372 </connectionPointOut> |
|
373 <expression>counter</expression> |
|
374 </inVariable> |
|
375 <continuation name="COUNT" localId="5" height="30" width="90"> |
|
376 <position x="504" y="305"/> |
|
377 <connectionPointOut> |
|
378 <relPosition x="90" y="15"/> |
|
379 </connectionPointOut> |
|
380 </continuation> |
|
381 <block localId="99" width="80" height="110" typeName="AND" executionOrderId="0"> |
|
382 <position x="199" y="308"/> |
|
383 <inputVariables> |
|
384 <variable formalParameter="IN1"> |
|
385 <connectionPointIn> |
|
386 <relPosition x="0" y="42"/> |
|
387 <connection refLocalId="39"> |
|
388 <position x="199" y="350"/> |
|
389 <position x="144" y="350"/> |
|
390 </connection> |
|
391 </connectionPointIn> |
|
392 </variable> |
|
393 <variable formalParameter="IN2"> |
|
394 <connectionPointIn> |
|
395 <relPosition x="0" y="87"/> |
|
396 <connection refLocalId="6"> |
|
397 <position x="199" y="395"/> |
|
398 <position x="144" y="395"/> |
|
399 </connection> |
|
400 </connectionPointIn> |
|
401 </variable> |
|
402 </inputVariables> |
|
403 <inOutVariables/> |
|
404 <outputVariables> |
|
405 <variable formalParameter="OUT"> |
|
406 <connectionPointOut> |
|
407 <relPosition x="80" y="42"/> |
|
408 </connectionPointOut> |
|
409 </variable> |
|
410 </outputVariables> |
|
411 </block> |
|
412 <continuation name="CLOCK" localId="6" height="30" width="90"> |
|
413 <position x="54" y="380"/> |
|
414 <connectionPointOut> |
|
415 <relPosition x="90" y="15"/> |
|
416 </connectionPointOut> |
|
417 </continuation> |
|
418 <block localId="100" width="125" height="45" typeName="BOOL_TO_INT" executionOrderId="0"> |
|
419 <position x="349" y="318"/> |
|
420 <inputVariables> |
|
421 <variable formalParameter="IN"> |
|
422 <connectionPointIn> |
|
423 <relPosition x="0" y="32"/> |
|
424 <connection refLocalId="99" formalParameter="OUT"> |
|
425 <position x="349" y="350"/> |
|
426 <position x="279" y="350"/> |
|
427 </connection> |
|
428 </connectionPointIn> |
|
429 </variable> |
|
430 </inputVariables> |
|
431 <inOutVariables/> |
|
432 <outputVariables> |
|
433 <variable formalParameter="OUT"> |
|
434 <connectionPointOut> |
|
435 <relPosition x="125" y="32"/> |
|
436 </connectionPointOut> |
|
437 </variable> |
|
438 </outputVariables> |
|
439 </block> |
|
440 <continuation name="CLOCK" localId="3" height="30" width="122"> |
|
441 <position x="693" y="840"/> |
|
442 <connectionPointOut> |
|
443 <relPosition x="122" y="15"/> |
|
444 </connectionPointOut> |
|
445 </continuation> |
|
446 <comment localId="101" height="197" width="1001"> |
|
447 <position x="11" y="12"/> |
|
448 <content> |
|
449 <xhtml:p><![CDATA[This example shows how IEC program in PLC can interact with web interface. |
|
450 |
|
451 svgui is extensions to build web interface to PLC. It has *integrated* web-server. So it's NOT necessary to install Apache, lighttpd or nginx for that!!! |
|
452 |
|
453 As the program is running in PLC, web UI will be available at http://localhost:8009/. |
|
454 |
|
455 |
|
456 Web interface is build as SVG file in Inkscape. To edit SVG file click 'Inkscape' button in 0x: svgui extension. |
|
457 Inkscape is a free and open-source vector graphics editor. It's not part of Beremiz and needs to be installed separately. |
|
458 ]]></xhtml:p> |
|
459 </content> |
|
460 </comment> |
|
461 <comment localId="102" height="126" width="641"> |
|
462 <position x="17" y="441"/> |
|
463 <content> |
|
464 <xhtml:p><![CDATA[In this example basic elements like 'Button', 'Led' and 'Text' are used. |
|
465 Back_id and sele_id inputs of these blocks are IDs of graphic primitives in SVG file. |
|
466 This is the way how elements in SVG are bound to elements in PLC program. |
|
467 You can find out or edit these IDs in Inkscape.]]></xhtml:p> |
|
468 </content> |
|
469 </comment> |
|
470 </FBD> |
|
471 </body> |
|
472 </pou> |
|
473 </pous> |
|
474 </types> |
|
475 <instances> |
|
476 <configurations> |
|
477 <configuration name="config"> |
|
478 <resource name="res_pytest"> |
|
479 <task name="pytest_task" interval="t#100ms" priority="0"/> |
|
480 <pouInstance name="pytest_instance" typeName="main_pytest"/> |
|
481 </resource> |
|
482 </configuration> |
|
483 </configurations> |
|
484 </instances> |
|
485 </project> |
|