# HG changeset patch # User Andrey Skvortsov <andrej.skvortzov@gmail.com> # Date 1476883930 -10800 # Node ID d329cc88d3075d3feda39a6d10bd0bc1a6bc66c4 # Parent 2969c21231051e6542d42d951c5e81b92f974763 cleanup svgui example diff -r 2969c2123105 -r d329cc88d307 tests/svgui/plc.xml --- a/tests/svgui/plc.xml Tue Oct 18 17:44:08 2016 +0300 +++ b/tests/svgui/plc.xml Wed Oct 19 16:32:10 2016 +0300 @@ -1,14 +1,7 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns="http://www.plcopen.org/xml/tc6.xsd" - xmlns:xhtml="http://www.w3.org/1999/xhtml" - xsi:schemaLocation="http://www.plcopen.org/xml/tc6.xsd"> - <fileHeader companyName="beremiz" - productName="Beremiz" - productVersion="0.0" - creationDateTime="2008-12-14T16:21:19"/> - <contentHeader name="Beremiz Python Support Tests" - modificationDateTime="2009-09-26T18:14:56"> +<?xml version='1.0' encoding='utf-8'?> +<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"> + <fileHeader companyName="beremiz" productName="Beremiz" productVersion="0.0" creationDateTime="2008-12-14T16:21:19"/> + <contentHeader name="Beremiz SVGUI Test" modificationDateTime="2016-10-19T14:46:29"> <coordinateInfo> <pageSize x="1024" y="1024"/> <fbd> @@ -33,57 +26,17 @@ <INT/> </type> </variable> - <variable name="DigitalBit0"> - <type> - <BOOL/> - </type> - </variable> - <variable name="DigitalBit1"> - <type> - <BOOL/> - </type> - </variable> - <variable name="DigitalBit2"> - <type> - <BOOL/> - </type> - </variable> - <variable name="DigitalBit3"> - <type> - <BOOL/> - </type> - </variable> - <variable name="DigitalBit4"> - <type> - <BOOL/> - </type> - </variable> - <variable name="DigitalBit5"> - <type> - <BOOL/> - </type> - </variable> - <variable name="DigitalBit6"> - <type> - <BOOL/> - </type> - </variable> - <variable name="DigitalBit7"> - <type> - <BOOL/> - </type> - </variable> <variable name="Start_Stop"> <type> <derived name="Button"/> </type> </variable> - <variable name="Compteur"> + <variable name="Counter_TextCtrl"> <type> <derived name="TextCtrl"/> </type> </variable> - <variable name="Temoin"> + <variable name="State_LedCtrl"> <type> <derived name="Led"/> </type> @@ -92,15 +45,15 @@ </interface> <body> <FBD> - <block localId="32" width="80" height="110" typeName="ADD"> - <position x="665" y="420"/> + <block localId="32" width="80" height="110" typeName="ADD" executionOrderId="0"> + <position x="649" y="241"/> <inputVariables> <variable formalParameter="EN"> <connectionPointIn> <relPosition x="0" y="35"/> <connection refLocalId="5"> - <position x="665" y="455"/> - <position x="610" y="455"/> + <position x="649" y="276"/> + <position x="594" y="276"/> </connection> </connectionPointIn> </variable> @@ -108,8 +61,8 @@ <connectionPointIn> <relPosition x="0" y="65"/> <connection refLocalId="100" formalParameter="OUT"> - <position x="665" y="485"/> - <position x="490" y="485"/> + <position x="649" y="306"/> + <position x="474" y="306"/> </connection> </connectionPointIn> </variable> @@ -117,12 +70,12 @@ <connectionPointIn> <relPosition x="0" y="95"/> <connection refLocalId="33"> - <position x="665" y="515"/> - <position x="645" y="515"/> - <position x="645" y="555"/> - <position x="870" y="555"/> - <position x="870" y="485"/> - <position x="855" y="485"/> + <position x="649" y="336"/> + <position x="629" y="336"/> + <position x="629" y="374"/> + <position x="854" y="374"/> + <position x="854" y="306"/> + <position x="839" y="306"/> </connection> </connectionPointIn> </variable> @@ -141,71 +94,71 @@ </variable> </outputVariables> </block> - <inOutVariable localId="33" height="35" width="85"> - <position x="770" y="470"/> + <inOutVariable localId="33" height="35" width="85" executionOrderId="0" negatedOut="false" negatedIn="false"> + <position x="754" y="289"/> <connectionPointIn> - <relPosition x="0" y="15"/> + <relPosition x="0" y="17"/> <connection refLocalId="32" formalParameter="OUT"> - <position x="770" y="485"/> - <position x="745" y="485"/> + <position x="754" y="306"/> + <position x="729" y="306"/> </connection> </connectionPointIn> <connectionPointOut> - <relPosition x="85" y="15"/> + <relPosition x="85" y="17"/> </connectionPointOut> <expression>counter</expression> </inOutVariable> - <inVariable localId="39" height="35" width="70"> - <position x="90" y="470"/> - <connectionPointOut> - <relPosition x="70" y="15"/> + <inVariable localId="39" height="35" width="89" executionOrderId="0" negated="false"> + <position x="55" y="289"/> + <connectionPointOut> + <relPosition x="89" y="17"/> </connectionPointOut> <expression>BOOL#1</expression> </inVariable> - <inVariable localId="41" height="30" width="120"> - <position x="45" y="180"/> + <inVariable localId="41" height="30" width="120" executionOrderId="0" negated="false"> + <position x="21" y="575"/> <connectionPointOut> <relPosition x="120" y="15"/> </connectionPointOut> <expression>'stop_back'</expression> </inVariable> - <inVariable localId="42" height="30" width="120"> - <position x="45" y="225"/> + <inVariable localId="42" height="30" width="120" executionOrderId="0" negated="false"> + <position x="21" y="617"/> <connectionPointOut> <relPosition x="120" y="15"/> </connectionPointOut> <expression>'stop_sele'</expression> </inVariable> - <inVariable localId="46" height="30" width="180"> - <position x="675" y="265"/> - <connectionPointOut> - <relPosition x="180" y="15"/> - </connectionPointOut> - <expression>'text_compteur'</expression> - </inVariable> - <inVariable localId="51" height="30" width="110"> - <position x="725" y="80"/> - <connectionPointOut> - <relPosition x="110" y="15"/> + <inVariable localId="46" height="30" width="121" executionOrderId="0" negated="false"> + <position x="694" y="755"/> + <connectionPointOut> + <relPosition x="121" y="15"/> + </connectionPointOut> + <expression>'text_counter'</expression> + </inVariable> + <inVariable localId="51" height="30" width="119" executionOrderId="0" negated="false"> + <position x="692" y="568"/> + <connectionPointOut> + <relPosition x="119" y="15"/> </connectionPointOut> <expression>'led_stop'</expression> </inVariable> - <inVariable localId="52" height="30" width="120"> - <position x="715" y="115"/> + <inVariable localId="52" height="30" width="120" executionOrderId="0" negated="false"> + <position x="691" y="604"/> <connectionPointOut> <relPosition x="120" y="15"/> </connectionPointOut> <expression>'led_start'</expression> </inVariable> - <block localId="83" width="145" height="60" typeName="INT_TO_STRING"> - <position x="600" y="320"/> + <block localId="83" width="145" height="60" typeName="INT_TO_STRING" executionOrderId="0"> + <position x="537" y="812"/> <inputVariables> <variable formalParameter="IN"> <connectionPointIn> <relPosition x="0" y="40"/> <connection refLocalId="4"> - <position x="600" y="360"/> - <position x="555" y="360"/> + <position x="537" y="852"/> + <position x="504" y="852"/> </connection> </connectionPointIn> </variable> @@ -219,24 +172,24 @@ </variable> </outputVariables> </block> - <block localId="92" width="200" height="230" typeName="Button" instanceName="Start_Stop"> - <position x="225" y="155"/> + <block localId="92" width="187" height="230" typeName="Button" instanceName="Start_Stop" executionOrderId="0"> + <position x="201" y="549"/> <inputVariables> <variable formalParameter="back_id"> <connectionPointIn> - <relPosition x="0" y="40"/> + <relPosition x="0" y="41"/> <connection refLocalId="41"> - <position x="225" y="195"/> - <position x="165" y="195"/> + <position x="201" y="590"/> + <position x="141" y="590"/> </connection> </connectionPointIn> </variable> <variable formalParameter="sele_id"> <connectionPointIn> - <relPosition x="0" y="85"/> + <relPosition x="0" y="83"/> <connection refLocalId="42"> - <position x="225" y="240"/> - <position x="165" y="240"/> + <position x="201" y="632"/> + <position x="141" y="632"/> </connection> </connectionPointIn> </variable> @@ -244,19 +197,19 @@ <connectionPointIn> <relPosition x="0" y="125"/> <connection refLocalId="93"> - <position x="225" y="280"/> - <position x="165" y="280"/> + <position x="201" y="674"/> + <position x="141" y="674"/> </connection> </connectionPointIn> </variable> <variable formalParameter="set_state"> <connectionPointIn> - <relPosition x="0" y="165"/> + <relPosition x="0" y="167"/> </connectionPointIn> </variable> <variable formalParameter="state_in"> <connectionPointIn> - <relPosition x="0" y="210"/> + <relPosition x="0" y="209"/> </connectionPointIn> </variable> </inputVariables> @@ -264,45 +217,45 @@ <outputVariables> <variable formalParameter="state_out"> <connectionPointOut> - <relPosition x="200" y="40"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="93" height="30" width="70"> - <position x="95" y="265"/> - <connectionPointOut> - <relPosition x="70" y="15"/> + <relPosition x="187" y="41"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <inVariable localId="93" height="30" width="120" executionOrderId="0" negated="false"> + <position x="21" y="659"/> + <connectionPointOut> + <relPosition x="120" y="15"/> </connectionPointOut> <expression>BOOL#1</expression> </inVariable> - <block localId="94" width="100" height="145" typeName="TextCtrl" instanceName="Compteur"> - <position x="900" y="240"/> + <block localId="94" width="100" height="145" typeName="TextCtrl" instanceName="Counter_TextCtrl" executionOrderId="0"> + <position x="876" y="730"/> <inputVariables> <variable formalParameter="back_id"> <connectionPointIn> <relPosition x="0" y="40"/> <connection refLocalId="46"> - <position x="900" y="280"/> - <position x="855" y="280"/> + <position x="876" y="770"/> + <position x="815" y="770"/> </connection> </connectionPointIn> </variable> <variable formalParameter="set_text"> <connectionPointIn> - <relPosition x="0" y="80"/> + <relPosition x="0" y="81"/> <connection refLocalId="3"> - <position x="900" y="320"/> - <position x="855" y="320"/> + <position x="876" y="811"/> + <position x="815" y="811"/> </connection> </connectionPointIn> </variable> <variable formalParameter="text"> <connectionPointIn> - <relPosition x="0" y="120"/> + <relPosition x="0" y="122"/> <connection refLocalId="83" formalParameter="OUT"> - <position x="900" y="360"/> - <position x="745" y="360"/> + <position x="876" y="852"/> + <position x="682" y="852"/> </connection> </connectionPointIn> </variable> @@ -310,31 +263,31 @@ <inOutVariables/> <outputVariables/> </block> - <inVariable localId="1" height="30" width="70"> - <position x="80" y="85"/> - <connectionPointOut> - <relPosition x="70" y="15"/> + <inVariable localId="1" height="30" width="88" executionOrderId="0" negated="false"> + <position x="59" y="220"/> + <connectionPointOut> + <relPosition x="88" y="15"/> </connectionPointOut> <expression>BOOL#1</expression> </inVariable> - <block localId="95" width="100" height="130" typeName="Led" instanceName="Temoin"> - <position x="900" y="55"/> + <block localId="95" width="100" height="130" typeName="Led" instanceName="State_LedCtrl" executionOrderId="0"> + <position x="876" y="545"/> <inputVariables> <variable formalParameter="back_id"> <connectionPointIn> - <relPosition x="0" y="40"/> + <relPosition x="0" y="38"/> <connection refLocalId="51"> - <position x="900" y="95"/> - <position x="835" y="95"/> + <position x="876" y="583"/> + <position x="811" y="583"/> </connection> </connectionPointIn> </variable> <variable formalParameter="sele_id"> <connectionPointIn> - <relPosition x="0" y="75"/> + <relPosition x="0" y="74"/> <connection refLocalId="52"> - <position x="900" y="130"/> - <position x="835" y="130"/> + <position x="876" y="619"/> + <position x="811" y="619"/> </connection> </connectionPointIn> </variable> @@ -342,8 +295,8 @@ <connectionPointIn> <relPosition x="0" y="110"/> <connection refLocalId="2"> - <position x="900" y="165"/> - <position x="835" y="165"/> + <position x="876" y="655"/> + <position x="811" y="655"/> </connection> </connectionPointIn> </variable> @@ -351,28 +304,28 @@ <inOutVariables/> <outputVariables/> </block> - <block localId="96" width="80" height="65" typeName="AND"> - <position x="200" y="45"/> + <block localId="96" width="80" height="65" typeName="AND" executionOrderId="0"> + <position x="200" y="182"/> <inputVariables> <variable formalParameter="IN1" negated="true"> <connectionPointIn> - <relPosition x="0" y="30"/> + <relPosition x="0" y="31"/> <connection refLocalId="96" formalParameter="OUT"> - <position x="200" y="75"/> - <position x="175" y="75"/> - <position x="175" y="30"/> - <position x="305" y="30"/> - <position x="305" y="75"/> - <position x="280" y="75"/> + <position x="200" y="213"/> + <position x="175" y="213"/> + <position x="175" y="167"/> + <position x="305" y="167"/> + <position x="305" y="213"/> + <position x="280" y="213"/> </connection> </connectionPointIn> </variable> <variable formalParameter="IN2"> <connectionPointIn> - <relPosition x="0" y="55"/> + <relPosition x="0" y="53"/> <connection refLocalId="1"> - <position x="200" y="100"/> - <position x="150" y="100"/> + <position x="200" y="235"/> + <position x="147" y="235"/> </connection> </connectionPointIn> </variable> @@ -381,68 +334,96 @@ <outputVariables> <variable formalParameter="OUT"> <connectionPointOut> - <relPosition x="80" y="30"/> + <relPosition x="80" y="31"/> </connectionPointOut> </variable> </outputVariables> </block> <connector name="CLOCK" localId="97" height="30" width="90"> - <position x="345" y="60"/> + <position x="345" y="198"/> <connectionPointIn> <relPosition x="0" y="15"/> <connection refLocalId="96" formalParameter="OUT"> - <position x="345" y="75"/> - <position x="280" y="75"/> + <position x="345" y="213"/> + <position x="280" y="213"/> </connection> </connectionPointIn> </connector> <connector name="COUNT" localId="98" height="30" width="90"> - <position x="485" y="180"/> + <position x="461" y="575"/> <connectionPointIn> <relPosition x="0" y="15"/> <connection refLocalId="92" formalParameter="state_out"> - <position x="485" y="195"/> - <position x="425" y="195"/> + <position x="461" y="590"/> + <position x="388" y="590"/> </connection> </connectionPointIn> </connector> - <continuation name="COUNT" localId="2" height="30" width="90"> - <position x="745" y="150"/> + <continuation name="COUNT" localId="2" height="30" width="120"> + <position x="691" y="640"/> + <connectionPointOut> + <relPosition x="120" y="15"/> + </connectionPointOut> + </continuation> + <inVariable localId="4" height="35" width="85" executionOrderId="0" negated="false"> + <position x="419" y="835"/> + <connectionPointOut> + <relPosition x="85" y="17"/> + </connectionPointOut> + <expression>counter</expression> + </inVariable> + <continuation name="COUNT" localId="5" height="30" width="90"> + <position x="504" y="261"/> <connectionPointOut> <relPosition x="90" y="15"/> </connectionPointOut> </continuation> - <inVariable localId="4" height="35" width="85"> - <position x="470" y="345"/> - <connectionPointOut> - <relPosition x="85" y="15"/> - </connectionPointOut> - <expression>counter</expression> - </inVariable> - <continuation name="COUNT" localId="5" height="30" width="90"> - <position x="520" y="440"/> + <block localId="99" width="80" height="110" typeName="AND" executionOrderId="0"> + <position x="199" y="264"/> + <inputVariables> + <variable formalParameter="IN1"> + <connectionPointIn> + <relPosition x="0" y="42"/> + <connection refLocalId="39"> + <position x="199" y="306"/> + <position x="144" y="306"/> + </connection> + </connectionPointIn> + </variable> + <variable formalParameter="IN2"> + <connectionPointIn> + <relPosition x="0" y="87"/> + <connection refLocalId="6"> + <position x="199" y="351"/> + <position x="144" y="351"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="80" y="42"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <continuation name="CLOCK" localId="6" height="30" width="90"> + <position x="54" y="336"/> <connectionPointOut> <relPosition x="90" y="15"/> </connectionPointOut> </continuation> - <block localId="99" width="80" height="110" typeName="AND"> - <position x="215" y="445"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="40"/> - <connection refLocalId="39"> - <position x="215" y="485"/> - <position x="160" y="485"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="85"/> - <connection refLocalId="6"> - <position x="215" y="530"/> - <position x="160" y="530"/> + <block localId="100" width="125" height="45" typeName="BOOL_TO_INT" executionOrderId="0"> + <position x="349" y="274"/> + <inputVariables> + <variable formalParameter="IN"> + <connectionPointIn> + <relPosition x="0" y="32"/> + <connection refLocalId="99" formalParameter="OUT"> + <position x="349" y="306"/> + <position x="279" y="306"/> </connection> </connectionPointIn> </variable> @@ -451,45 +432,41 @@ <outputVariables> <variable formalParameter="OUT"> <connectionPointOut> - <relPosition x="80" y="40"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <continuation name="CLOCK" localId="6" height="30" width="90"> - <position x="70" y="515"/> - <connectionPointOut> - <relPosition x="90" y="15"/> + <relPosition x="125" y="32"/> + </connectionPointOut> + </variable> + </outputVariables> + </block> + <continuation name="CLOCK" localId="3" height="30" width="122"> + <position x="693" y="796"/> + <connectionPointOut> + <relPosition x="122" y="15"/> </connectionPointOut> </continuation> - <block localId="100" width="125" height="45" typeName="BOOL_TO_INT"> - <position x="365" y="455"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="99" formalParameter="OUT"> - <position x="365" y="485"/> - <position x="295" y="485"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="125" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <continuation name="CLOCK" localId="3" height="30" width="90"> - <position x="765" y="305"/> - <connectionPointOut> - <relPosition x="90" y="15"/> - </connectionPointOut> - </continuation> + <comment localId="101" height="147" width="718"> + <position x="27" y="8"/> + <content> + <xhtml:p><![CDATA[This example shows how IEC program in PLC can interact with web interface. + +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!!! + +As the program is running in PLC, web UI will be available at http://localhost:8009/. + + +Web interface is build as SVG file in Inkscape. To edit SVG file click 'Inkscape' button in 0x: svgui extension. +Inkscape is a free and open-source vector graphics editor. It's not part of Beremiz and needs to be installed separately. +]]></xhtml:p> + </content> + </comment> + <comment localId="102" height="101" width="544"> + <position x="17" y="409"/> + <content> + <xhtml:p><![CDATA[In this example basic elements like 'Button', 'Led' and 'Text' are used. +Back_id and sele_id inputs of these blocks are IDs of graphic primitives in SVG file. +This is the way how elements in SVG are bound to elements in PLC program. +You can find out or edit these IDs in Inkscape.]]></xhtml:p> + </content> + </comment> </FBD> </body> </pou>