SVGHMI: add support of all IEC61131 interger types.
- add HMI_*INT types
- fix sprintf.js with big int (64b)
- extend svghmi_real test project
--- a/svghmi/gen_index_xhtml.xslt Fri Mar 10 09:13:29 2023 +0100
+++ b/svghmi/gen_index_xhtml.xslt Fri Aug 18 11:38:20 2023 +0200
@@ -2170,8 +2170,6 @@
</xsl:text>
<xsl:text> this.incoming[index] = undefined;
</xsl:text>
- <xsl:text> // TODO: add timestamp argument to dispatch, so that defered data do not appear wrong on graphs
-</xsl:text>
<xsl:text> this.lastdispatch[index] = Date.now();
</xsl:text>
<xsl:text> this.do_dispatch(new_val, old_val, index);
@@ -9273,8 +9271,6 @@
</xsl:text>
<xsl:text>
</xsl:text>
- <xsl:text> console.log("dispatch(",value,oldval, index, time);
-</xsl:text>
<xsl:text> // naive local buffer impl.
</xsl:text>
<xsl:text> // data is updated only when graph is visible
@@ -10985,9 +10981,19 @@
</xsl:text>
<xsl:text>
</xsl:text>
- <xsl:text> if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {
-</xsl:text>
- <xsl:text> throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))
+ <xsl:text> if (re.numeric_arg.test(ph.type)){
+</xsl:text>
+ <xsl:text> let argtype = typeof arg;
+</xsl:text>
+ <xsl:text> if ( argtype !== 'bigint') {
+</xsl:text>
+ <xsl:text> if ( argtype !== 'number' && isNaN(arg) ) {
+</xsl:text>
+ <xsl:text> throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
</xsl:text>
<xsl:text> }
</xsl:text>
@@ -11481,13 +11487,27 @@
</xsl:text>
<xsl:text>const dvgetters = {
</xsl:text>
- <xsl:text> INT: (dv,offset) => [dv.getInt16(offset, true), 2],
-</xsl:text>
- <xsl:text> BOOL: (dv,offset) => [dv.getInt8(offset, true), 1],
-</xsl:text>
- <xsl:text> NODE: (dv,offset) => [dv.getInt8(offset, true), 1],
-</xsl:text>
- <xsl:text> REAL: (dv,offset) => [dv.getFloat32(offset, true), 4],
+ <xsl:text> SINT: (dv,offset) => [dv.getInt8(offset, true), 1],
+</xsl:text>
+ <xsl:text> INT: (dv,offset) => [dv.getInt16(offset, true), 2],
+</xsl:text>
+ <xsl:text> DINT: (dv,offset) => [dv.getInt32(offset, true), 4],
+</xsl:text>
+ <xsl:text> LINT: (dv,offset) => [dv.getBigInt64(offset, true), 8],
+</xsl:text>
+ <xsl:text> USINT: (dv,offset) => [dv.getUint8(offset, true), 1],
+</xsl:text>
+ <xsl:text> UINT: (dv,offset) => [dv.getUint16(offset, true), 2],
+</xsl:text>
+ <xsl:text> UDINT: (dv,offset) => [dv.getUint32(offset, true), 4],
+</xsl:text>
+ <xsl:text> ULINT: (dv,offset) => [dv.getBigUint64(offset, true), 8],
+</xsl:text>
+ <xsl:text> BOOL: (dv,offset) => [dv.getInt8(offset, true), 1],
+</xsl:text>
+ <xsl:text> NODE: (dv,offset) => [dv.getInt8(offset, true), 1],
+</xsl:text>
+ <xsl:text> REAL: (dv,offset) => [dv.getFloat32(offset, true), 4],
</xsl:text>
<xsl:text> STRING: (dv, offset) => {
</xsl:text>
@@ -11717,8 +11737,22 @@
</xsl:text>
<xsl:text>const typedarray_types = {
</xsl:text>
+ <xsl:text> SINT: (number) => new Int8Array([number]),
+</xsl:text>
<xsl:text> INT: (number) => new Int16Array([number]),
</xsl:text>
+ <xsl:text> DINT: (number) => new Int32Array([number]),
+</xsl:text>
+ <xsl:text> LINT: (number) => new Int64Array([number]),
+</xsl:text>
+ <xsl:text> USINT: (number) => new Uint8Array([number]),
+</xsl:text>
+ <xsl:text> UINT: (number) => new Uint16Array([number]),
+</xsl:text>
+ <xsl:text> UDINT: (number) => new Uint32Array([number]),
+</xsl:text>
+ <xsl:text> ULINT: (number) => new Uint64Array([number]),
+</xsl:text>
<xsl:text> BOOL: (truth) => new Int8Array([truth]),
</xsl:text>
<xsl:text> NODE: (truth) => new Int8Array([truth]),
--- a/svghmi/hmi_tree.py Fri Mar 10 09:13:29 2023 +0100
+++ b/svghmi/hmi_tree.py Fri Aug 18 11:38:20 2023 +0200
@@ -17,7 +17,15 @@
HMI_TYPES_DESC = {
"HMI_NODE":{},
"HMI_STRING":{},
+ "HMI_SINT":{},
"HMI_INT":{},
+ "HMI_DINT":{},
+ "HMI_LINT":{},
+ "HMI_DINT":{},
+ "HMI_USINT":{},
+ "HMI_UINT":{},
+ "HMI_UDINT":{},
+ "HMI_ULINT":{},
"HMI_BOOL":{},
"HMI_REAL":{}
}
--- a/svghmi/pous.xml Fri Mar 10 09:13:29 2023 +0100
+++ b/svghmi/pous.xml Fri Aug 18 11:38:20 2023 +0200
@@ -16,11 +16,46 @@
</contentHeader>
<types>
<dataTypes>
+ <dataType name="HMI_SINT">
+ <baseType>
+ <SINT/>
+ </baseType>
+ </dataType>
<dataType name="HMI_INT">
<baseType>
<INT/>
</baseType>
</dataType>
+ <dataType name="HMI_DINT">
+ <baseType>
+ <DINT/>
+ </baseType>
+ </dataType>
+ <dataType name="HMI_LINT">
+ <baseType>
+ <LINT/>
+ </baseType>
+ </dataType>
+ <dataType name="HMI_USINT">
+ <baseType>
+ <USINT/>
+ </baseType>
+ </dataType>
+ <dataType name="HMI_UINT">
+ <baseType>
+ <UINT/>
+ </baseType>
+ </dataType>
+ <dataType name="HMI_UDINT">
+ <baseType>
+ <UDINT/>
+ </baseType>
+ </dataType>
+ <dataType name="HMI_ULINT">
+ <baseType>
+ <ULINT/>
+ </baseType>
+ </dataType>
<dataType name="HMI_REAL">
<baseType>
<REAL/>
--- a/svghmi/sprintf.js Fri Mar 10 09:13:29 2023 +0100
+++ b/svghmi/sprintf.js Fri Aug 18 11:38:20 2023 +0200
@@ -59,8 +59,13 @@
arg = arg()
}
- if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {
- throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))
+ if (re.numeric_arg.test(ph.type)){
+ let argtype = typeof arg;
+ if ( argtype !== 'bigint') {
+ if ( argtype !== 'number' && isNaN(arg) ) {
+ throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))
+ }
+ }
}
if (re.number.test(ph.type)) {
--- a/svghmi/svghmi.js Fri Mar 10 09:13:29 2023 +0100
+++ b/svghmi/svghmi.js Fri Aug 18 11:38:20 2023 +0200
@@ -24,10 +24,17 @@
var has_watchdog = window.location.hash == "#watchdog";
const dvgetters = {
- INT: (dv,offset) => [dv.getInt16(offset, true), 2],
- BOOL: (dv,offset) => [dv.getInt8(offset, true), 1],
- NODE: (dv,offset) => [dv.getInt8(offset, true), 1],
- REAL: (dv,offset) => [dv.getFloat32(offset, true), 4],
+ SINT: (dv,offset) => [dv.getInt8(offset, true), 1],
+ INT: (dv,offset) => [dv.getInt16(offset, true), 2],
+ DINT: (dv,offset) => [dv.getInt32(offset, true), 4],
+ LINT: (dv,offset) => [dv.getBigInt64(offset, true), 8],
+ USINT: (dv,offset) => [dv.getUint8(offset, true), 1],
+ UINT: (dv,offset) => [dv.getUint16(offset, true), 2],
+ UDINT: (dv,offset) => [dv.getUint32(offset, true), 4],
+ ULINT: (dv,offset) => [dv.getBigUint64(offset, true), 8],
+ BOOL: (dv,offset) => [dv.getInt8(offset, true), 1],
+ NODE: (dv,offset) => [dv.getInt8(offset, true), 1],
+ REAL: (dv,offset) => [dv.getFloat32(offset, true), 4],
STRING: (dv, offset) => {
const size = dv.getInt8(offset);
return [
@@ -142,7 +149,14 @@
};
const typedarray_types = {
+ SINT: (number) => new Int8Array([number]),
INT: (number) => new Int16Array([number]),
+ DINT: (number) => new Int32Array([number]),
+ LINT: (number) => new Int64Array([number]),
+ USINT: (number) => new Uint8Array([number]),
+ UINT: (number) => new Uint16Array([number]),
+ UDINT: (number) => new Uint32Array([number]),
+ ULINT: (number) => new Uint64Array([number]),
BOOL: (truth) => new Int8Array([truth]),
NODE: (truth) => new Int8Array([truth]),
REAL: (number) => new Float32Array([number]),
--- a/tests/projects/svghmi_real/plc.xml Fri Mar 10 09:13:29 2023 +0100
+++ b/tests/projects/svghmi_real/plc.xml Fri Aug 18 11:38:20 2023 +0200
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<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">
<fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/>
- <contentHeader name="Unnamed" modificationDateTime="2021-02-16T10:38:12">
+ <contentHeader name="Unnamed" modificationDateTime="2023-08-18T11:29:36">
<coordinateInfo>
<fbd>
<scaling x="5" y="5"/>
@@ -27,53 +27,334 @@
</variable>
<variable name="var1">
<type>
+ <derived name="HMI_SINT"/>
+ </type>
+ </variable>
+ <variable name="var2">
+ <type>
<derived name="HMI_INT"/>
</type>
</variable>
+ <variable name="var3">
+ <type>
+ <derived name="HMI_DINT"/>
+ </type>
+ </variable>
+ <variable name="var4">
+ <type>
+ <derived name="HMI_LINT"/>
+ </type>
+ </variable>
+ <variable name="var5">
+ <type>
+ <derived name="HMI_USINT"/>
+ </type>
+ </variable>
+ <variable name="var6">
+ <type>
+ <derived name="HMI_UINT"/>
+ </type>
+ </variable>
+ <variable name="var7">
+ <type>
+ <derived name="HMI_UDINT"/>
+ </type>
+ </variable>
+ <variable name="var8">
+ <type>
+ <derived name="HMI_ULINT"/>
+ </type>
+ </variable>
+ <variable name="var9">
+ <type>
+ <derived name="HMI_UDINT"/>
+ </type>
+ </variable>
</localVars>
</interface>
<body>
<FBD>
<inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false">
- <position x="240" y="45"/>
+ <position x="320" y="60"/>
<connectionPointOut>
<relPosition x="125" y="15"/>
</connectionPointOut>
<expression>var0</expression>
</inVariable>
- <outVariable localId="10" executionOrderId="0" height="25" width="85" negated="false">
- <position x="720" y="70"/>
+ <block localId="11" typeName="REAL_TO_INT" executionOrderId="0" height="40" width="100">
+ <position x="495" y="95"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="495" y="125"/>
+ <position x="470" y="125"/>
+ <position x="470" y="75"/>
+ <position x="445" y="75"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="100" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <outVariable localId="12" executionOrderId="0" height="25" width="45" negated="false">
+ <position x="680" y="65"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="1" formalParameter="OUT">
+ <position x="680" y="75"/>
+ <position x="610" y="75"/>
+ </connection>
+ </connectionPointIn>
+ <expression>var1</expression>
+ </outVariable>
+ <outVariable localId="13" executionOrderId="0" height="25" width="45" negated="false">
+ <position x="680" y="115"/>
<connectionPointIn>
<relPosition x="0" y="10"/>
<connection refLocalId="11" formalParameter="OUT">
- <position x="720" y="80"/>
- <position x="667" y="80"/>
- <position x="667" y="75"/>
- <position x="605" y="75"/>
- </connection>
- </connectionPointIn>
- <expression>var1</expression>
- </outVariable>
- <block localId="11" typeName="REAL_TO_INT" executionOrderId="0" height="40" width="100">
- <position x="505" y="45"/>
- <inputVariables>
- <variable formalParameter="IN">
- <connectionPointIn>
- <relPosition x="0" y="30"/>
- <connection refLocalId="5">
- <position x="505" y="75"/>
- <position x="445" y="75"/>
- <position x="445" y="60"/>
- <position x="365" y="60"/>
- </connection>
- </connectionPointIn>
- </variable>
- </inputVariables>
- <inOutVariables/>
- <outputVariables>
- <variable formalParameter="OUT">
- <connectionPointOut>
- <relPosition x="100" y="30"/>
+ <position x="680" y="125"/>
+ <position x="595" y="125"/>
+ </connection>
+ </connectionPointIn>
+ <expression>var2</expression>
+ </outVariable>
+ <outVariable localId="14" executionOrderId="0" height="25" width="45" negated="false">
+ <position x="680" y="165"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="21" formalParameter="OUT">
+ <position x="680" y="175"/>
+ <position x="605" y="175"/>
+ </connection>
+ </connectionPointIn>
+ <expression>var3</expression>
+ </outVariable>
+ <outVariable localId="15" executionOrderId="0" height="25" width="45" negated="false">
+ <position x="680" y="215"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="20" formalParameter="OUT">
+ <position x="680" y="225"/>
+ <position x="605" y="225"/>
+ </connection>
+ </connectionPointIn>
+ <expression>var4</expression>
+ </outVariable>
+ <outVariable localId="16" executionOrderId="0" height="25" width="45" negated="false">
+ <position x="680" y="265"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="22" formalParameter="OUT">
+ <position x="680" y="275"/>
+ <position x="610" y="275"/>
+ </connection>
+ </connectionPointIn>
+ <expression>var5</expression>
+ </outVariable>
+ <outVariable localId="17" executionOrderId="0" height="25" width="45" negated="false">
+ <position x="680" y="315"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="23" formalParameter="OUT">
+ <position x="680" y="325"/>
+ <position x="605" y="325"/>
+ </connection>
+ </connectionPointIn>
+ <expression>var6</expression>
+ </outVariable>
+ <outVariable localId="18" executionOrderId="0" height="25" width="45" negated="false">
+ <position x="680" y="365"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="24" formalParameter="OUT">
+ <position x="680" y="375"/>
+ <position x="610" y="375"/>
+ </connection>
+ </connectionPointIn>
+ <expression>var7</expression>
+ </outVariable>
+ <outVariable localId="19" executionOrderId="0" height="25" width="45" negated="false">
+ <position x="680" y="415"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="25" formalParameter="OUT">
+ <position x="680" y="425"/>
+ <position x="610" y="425"/>
+ </connection>
+ </connectionPointIn>
+ <expression>var8</expression>
+ </outVariable>
+ <block localId="1" typeName="REAL_TO_SINT" executionOrderId="0" height="40" width="115">
+ <position x="495" y="45"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="495" y="75"/>
+ <position x="445" y="75"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="115" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="20" typeName="REAL_TO_LINT" executionOrderId="0" height="40" width="110">
+ <position x="495" y="195"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="495" y="225"/>
+ <position x="470" y="225"/>
+ <position x="470" y="75"/>
+ <position x="445" y="75"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="110" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="21" typeName="REAL_TO_DINT" executionOrderId="0" height="40" width="110">
+ <position x="495" y="145"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="495" y="175"/>
+ <position x="470" y="175"/>
+ <position x="470" y="75"/>
+ <position x="445" y="75"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="110" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="22" typeName="REAL_TO_USINT" executionOrderId="0" height="40" width="115">
+ <position x="495" y="245"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="495" y="275"/>
+ <position x="470" y="275"/>
+ <position x="470" y="75"/>
+ <position x="445" y="75"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="115" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="23" typeName="REAL_TO_UINT" executionOrderId="0" height="40" width="110">
+ <position x="495" y="295"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="495" y="325"/>
+ <position x="470" y="325"/>
+ <position x="470" y="75"/>
+ <position x="445" y="75"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="110" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="24" typeName="REAL_TO_UDINT" executionOrderId="0" height="40" width="115">
+ <position x="495" y="345"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="495" y="375"/>
+ <position x="470" y="375"/>
+ <position x="470" y="75"/>
+ <position x="445" y="75"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="115" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="25" typeName="REAL_TO_ULINT" executionOrderId="0" height="40" width="115">
+ <position x="495" y="395"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="495" y="425"/>
+ <position x="470" y="425"/>
+ <position x="470" y="75"/>
+ <position x="445" y="75"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="115" y="30"/>
</connectionPointOut>
</variable>
</outputVariables>
--- a/tests/projects/svghmi_real/svghmi_0@svghmi/svghmi.svg Fri Mar 10 09:13:29 2023 +0100
+++ b/tests/projects/svghmi_real/svghmi_0@svghmi/svghmi.svg Fri Aug 18 11:38:20 2023 +0200
@@ -25,7 +25,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title />
+ <dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
@@ -59,14 +59,14 @@
inkscape:current-layer="hmi0"
showgrid="false"
units="px"
- inkscape:zoom="0.64"
- inkscape:cx="106.50649"
- inkscape:cy="372.66049"
- inkscape:window-width="1600"
- inkscape:window-height="836"
- inkscape:window-x="1600"
+ inkscape:zoom="0.90509668"
+ inkscape:cx="672.72033"
+ inkscape:cy="359.05499"
+ inkscape:window-width="1850"
+ inkscape:window-height="1036"
+ inkscape:window-x="0"
inkscape:window-y="27"
- inkscape:window-maximized="0"
+ inkscape:window-maximized="1"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-global="true"
@@ -381,13 +381,13 @@
<g
id="g4490"
inkscape:label="HMI:Input:%.4f@/VAR0"
- transform="translate(220,-220)">
+ transform="translate(220,-480)">
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect4452"
- width="165.96402"
- height="78.240181"
- x="207.3945"
+ width="525.04169"
+ height="78.240173"
+ x="147.3945"
y="501.87585"
rx="7"
ry="7"
@@ -395,18 +395,18 @@
<text
id="text4456"
y="551.66504"
- x="289.30231"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="161.72418"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="value"><tspan
y="551.66504"
- x="289.30231"
+ x="161.72418"
id="tspan4454"
sodipodi:role="line">1234</tspan></text>
<g
id="g4464"
inkscape:label="-1"
- transform="translate(-414.79908,-17.189114)">
+ transform="translate(-474.79908,-17.189114)">
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect4458"
@@ -428,7 +428,7 @@
y="566.1087">-1</tspan></text>
</g>
<g
- transform="translate(-534.79908,-17.189114)"
+ transform="translate(-594.79908,-17.189114)"
inkscape:label="-10"
id="g4472">
<rect
@@ -452,7 +452,7 @@
sodipodi:role="line">-10</tspan></text>
</g>
<g
- transform="translate(111.20092,-17.189114)"
+ transform="translate(411.20092,-17.189114)"
inkscape:label="+1"
id="g4480">
<rect
@@ -478,7 +478,7 @@
<g
id="g4488"
inkscape:label="+10"
- transform="translate(231.20092,-17.189114)">
+ transform="translate(531.20092,-17.189114)">
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect4482"
@@ -502,7 +502,7 @@
<g
id="g154"
inkscape:label="+0.1"
- transform="translate(-8.7991028,-17.189114)">
+ transform="translate(291.2009,-17.189114)">
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect148"
@@ -524,7 +524,7 @@
y="566.1087">+.1</tspan></text>
</g>
<g
- transform="translate(-294.79907,-17.189114)"
+ transform="translate(-354.79907,-17.189114)"
inkscape:label="-0.1"
id="g162">
<rect
@@ -551,85 +551,69 @@
<g
id="g170"
inkscape:label="HMI:Display@/VAR0"
- transform="translate(-400)">
+ transform="translate(-380,60)">
<text
id="text166"
y="96.5625"
- x="595.3125"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="550.9082"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="format"><tspan
y="96.5625"
- x="595.3125"
+ x="550.9082"
id="tspan164"
sodipodi:role="line">%.2f</tspan></text>
</g>
<g
- inkscape:label="HMI:Display@/VAR1"
- id="g3879"
- transform="translate(-400,80)">
- <text
- inkscape:label="format"
- xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- x="595.3125"
- y="96.5625"
- id="text3877"><tspan
- sodipodi:role="line"
- id="tspan3875"
- x="595.3125"
- y="96.5625">%d</tspan></text>
- </g>
- <g
inkscape:label="HMI:Display@/VAR0"
id="g3885"
- transform="translate(-140)">
+ transform="translate(20,60)">
<text
inkscape:label="format"
xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- x="595.3125"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="464.23828"
y="96.5625"
id="text3883"><tspan
sodipodi:role="line"
id="tspan3881"
- x="595.3125"
+ x="464.23828"
y="96.5625">temp: %.2f℃</tspan></text>
</g>
<g
- transform="translate(220)"
+ transform="translate(460,60)"
id="g3895"
inkscape:label="HMI:Display@/VAR0">
<text
id="text3893"
y="96.5625"
- x="595.3125"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="455.88867"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="format"><tspan
y="96.5625"
- x="595.3125"
+ x="455.88867"
id="tspan3891"
sodipodi:role="line">ratio: %.2f%%</tspan></text>
</g>
<g
- transform="translate(-220,80)"
+ transform="translate(-240,120.96802)"
id="g3901"
inkscape:label="HMI:Display@/VAR1">
<text
id="text3899"
y="96.5625"
- x="655.3125"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="507.86133"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="format"><tspan
y="96.5625"
- x="655.3125"
+ x="507.86133"
id="tspan3897"
sodipodi:role="line">padded: %'04d</tspan></text>
</g>
<g
- transform="translate(-140,440)"
+ transform="translate(-18.895146,610.14757)"
id="g3907"
inkscape:label="HMI:Display@/VAR1@/VAR0">
<text
@@ -642,6 +626,356 @@
y="96.5625"
x="595.3125"
id="tspan3903"
- sodipodi:role="line">this way, %d and %.3f are together</tspan></text>
+ sodipodi:role="line">Multiple variable display: var1 %d and var0 %.3f</tspan></text>
+ </g>
+ <text
+ inkscape:label="format"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="19.93924"
+ y="156.82739"
+ id="text3883-3"><tspan
+ sodipodi:role="line"
+ id="tspan3881-6"
+ x="19.93924"
+ y="156.82739">REAL</tspan></text>
+ <text
+ id="text631"
+ y="216.82739"
+ x="19.93924"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="format"><tspan
+ y="216.82739"
+ x="19.93924"
+ sodipodi:role="line"
+ id="tspan637">SINT</tspan></text>
+ <text
+ inkscape:label="format"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="19.93924"
+ y="276.82739"
+ id="text643"><tspan
+ id="tspan641"
+ sodipodi:role="line"
+ x="19.93924"
+ y="276.82739">INT</tspan></text>
+ <text
+ id="text647"
+ y="336.82739"
+ x="19.93924"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="format"><tspan
+ y="336.82739"
+ x="19.93924"
+ sodipodi:role="line"
+ id="tspan645">DINT</tspan></text>
+ <text
+ inkscape:label="format"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="19.93924"
+ y="396.82739"
+ id="text651"><tspan
+ id="tspan649"
+ sodipodi:role="line"
+ x="19.93924"
+ y="396.82739">LINT</tspan></text>
+ <text
+ inkscape:label="format"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="19.93924"
+ y="456.82739"
+ id="text655"><tspan
+ id="tspan653"
+ sodipodi:role="line"
+ x="19.93924"
+ y="456.82739">USINT</tspan></text>
+ <text
+ id="text659"
+ y="516.82739"
+ x="19.93924"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="format"><tspan
+ y="516.82739"
+ x="19.93924"
+ sodipodi:role="line"
+ id="tspan657">UINT</tspan></text>
+ <text
+ inkscape:label="format"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="19.93924"
+ y="576.82739"
+ id="text663"><tspan
+ id="tspan661"
+ sodipodi:role="line"
+ x="19.93924"
+ y="576.82739">UDINT</tspan></text>
+ <text
+ id="text667"
+ y="636.82739"
+ x="19.93924"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="format"><tspan
+ y="636.82739"
+ x="19.93924"
+ sodipodi:role="line"
+ id="tspan665">ULINT</tspan></text>
+ <g
+ transform="translate(-400,120.96802)"
+ id="g673"
+ inkscape:label="HMI:Display@/VAR1"
+ style="">
+ <text
+ id="text671"
+ y="96.5625"
+ x="595.3125"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="format"><tspan
+ y="96.5625"
+ x="595.3125"
+ id="tspan669"
+ sodipodi:role="line">%d</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Display@/VAR2"
+ id="g679"
+ transform="translate(-400,180.96802)">
+ <text
+ inkscape:label="format"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="566.5332"
+ y="96.5625"
+ id="text677"><tspan
+ sodipodi:role="line"
+ id="tspan675"
+ x="566.5332"
+ y="96.5625">%d</tspan></text>
+ </g>
+ <g
+ transform="translate(-400,240.96802)"
+ id="g685"
+ inkscape:label="HMI:Display@/VAR3">
+ <text
+ id="text683"
+ y="96.5625"
+ x="566.5332"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="format"><tspan
+ y="96.5625"
+ x="566.5332"
+ id="tspan681"
+ sodipodi:role="line">%d</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Display@/VAR4"
+ id="g691"
+ transform="translate(-400,300.96802)">
+ <text
+ inkscape:label="format"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="566.5332"
+ y="96.5625"
+ id="text689"><tspan
+ sodipodi:role="line"
+ id="tspan687"
+ x="566.5332"
+ y="96.5625">%d</tspan></text>
+ </g>
+ <g
+ transform="translate(-400,360.96802)"
+ id="g697"
+ inkscape:label="HMI:Display@/VAR5">
+ <text
+ id="text695"
+ y="96.5625"
+ x="566.5332"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="format"><tspan
+ y="96.5625"
+ x="566.5332"
+ id="tspan693"
+ sodipodi:role="line">%d</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Display@/VAR6"
+ id="g703"
+ transform="translate(-400,420.96802)">
+ <text
+ inkscape:label="format"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="566.5332"
+ y="96.5625"
+ id="text701"><tspan
+ sodipodi:role="line"
+ id="tspan699"
+ x="566.5332"
+ y="96.5625">%d</tspan></text>
+ </g>
+ <g
+ transform="translate(-400,480.96802)"
+ id="g709"
+ inkscape:label="HMI:Display@/VAR7">
+ <text
+ id="text707"
+ y="96.5625"
+ x="566.5332"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="format"><tspan
+ y="96.5625"
+ x="566.5332"
+ id="tspan705"
+ sodipodi:role="line">%d</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Display@/VAR8"
+ id="g3879"
+ transform="translate(-400,540.96802)">
+ <text
+ inkscape:label="format"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="566.5332"
+ y="96.5625"
+ id="text3877"><tspan
+ sodipodi:role="line"
+ id="tspan3875"
+ x="566.5332"
+ y="96.5625">%d</tspan></text>
+ </g>
+ <g
+ transform="translate(480,24)"
+ inkscape:label="HMI:Input:%d@/VAR9"
+ id="g765">
+ <rect
+ inkscape:label="edit"
+ ry="7"
+ rx="7"
+ y="501.87585"
+ x="281.3945"
+ height="78.240173"
+ width="236.67467"
+ id="rect711"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ inkscape:label="value"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="289.72418"
+ y="551.66504"
+ id="text715"><tspan
+ sodipodi:role="line"
+ id="tspan713"
+ x="289.72418"
+ y="551.66504">1234</tspan></text>
+ <g
+ transform="translate(-234.79908,-17.189114)"
+ inkscape:label="-1"
+ id="g723">
+ <rect
+ ry="7"
+ rx="7"
+ y="513.73041"
+ x="392.38638"
+ height="88.909302"
+ width="99.578415"
+ id="rect717"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text721"
+ y="566.1087"
+ x="441.65189"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="566.1087"
+ x="441.65189"
+ id="tspan719"
+ sodipodi:role="line">-1</tspan></text>
+ </g>
+ <g
+ id="g731"
+ inkscape:label="-10"
+ transform="translate(-354.79908,-17.189114)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect725"
+ width="99.578415"
+ height="88.909302"
+ x="392.38638"
+ y="513.73041"
+ rx="7"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="441.65189"
+ y="566.1087"
+ id="text729"><tspan
+ sodipodi:role="line"
+ id="tspan727"
+ x="441.65189"
+ y="566.1087">-10</tspan></text>
+ </g>
+ <g
+ id="g739"
+ inkscape:label="+1"
+ transform="translate(145.20092,-17.189114)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect733"
+ width="99.578415"
+ height="88.909302"
+ x="392.38638"
+ y="513.73041"
+ rx="7"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="441.65189"
+ y="566.1087"
+ id="text737"><tspan
+ sodipodi:role="line"
+ id="tspan735"
+ x="441.65189"
+ y="566.1087">+1</tspan></text>
+ </g>
+ <g
+ transform="translate(265.20092,-17.189114)"
+ inkscape:label="+10"
+ id="g747">
+ <rect
+ ry="7"
+ rx="7"
+ y="513.73041"
+ x="392.38638"
+ height="88.909302"
+ width="99.578415"
+ id="rect741"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text745"
+ y="566.1087"
+ x="441.65189"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="566.1087"
+ x="441.65189"
+ id="tspan743"
+ sodipodi:role="line">+10</tspan></text>
+ </g>
</g>
</svg>