--- a/svghmi/widget_xygraph.ysl2 Wed Jun 01 09:12:59 2022 +0200
+++ b/svghmi/widget_xygraph.ysl2 Wed Jun 01 09:14:19 2022 +0200
@@ -22,20 +22,35 @@
path name="value" count="1+" accepts="HMI_INT,HMI_REAL" > value
- arg name="size" accepts="int" > buffer size
+ arg name="xrange" accepts="int,time" > X axis range expressed either in samples or duration. arg name="xformat" count="optional" accepts="string" > format string for X label
arg name="yformat" count="optional" accepts="string" > format string for Y label
- arg name="ymin" count="optional" accepts="int,real" > minimum value foe Y axis
- arg name="ymax" count="optional" accepts="int,real" > maximum value for Y axis
widget_class("XYGraph") {
this.x_format, this.y_format] = this.args;
+ let timeunit = x_duration_s.slice(-1); + if(factor == undefined){ + this.max_data_length = Number(x_duration_s); + this.x_duration = undefined; + let duration = factor*Number(x_duration_s.slice(0,-1)); + this.max_data_length = undefined; + this.x_duration = duration*1000; // Min and Max given with paths are meant to describe visible range,
@@ -97,7 +112,6 @@
this.curves_data = this.curves.map(_unused => []);
- this.max_data_length = this.args[0];
dispatch(value,oldval, index) {
@@ -114,13 +128,24 @@
let ymax_damaged = false;
- if(data_length > this.max_data_length){
- [this.xmin, overflow] = this.curves_data[index].shift();
- data_length = data_length - 1;
+ if(this.max_data_length == undefined){ + let peremption = time - this.x_duration; + let oldest = this.curves_data[index][0][0] + this.xmin = peremption; + if(oldest < peremption){ + overflow = this.curves_data[index].shift()[1]; + data_length = data_length - 1; - if(this.xmin == undefined){
+ if(data_length > this.max_data_length){ + [this.xmin, overflow] = this.curves_data[index].shift(); + data_length = data_length - 1; + if(this.xmin == undefined){ @@ -141,6 +166,7 @@
let Yrange = this.ymax - this.ymin;
+ // apply margin by moving min and max to enlarge range let [xMargin,yMargin] = zip(this.Margins, [Xrange, Yrange]).map(([m,l]) => m*l);
[[this.dxmin, this.dxmax],[this.dymin,this.dymax]] =
[[this.xmin-xMargin, this.xmax+xMargin],
@@ -163,6 +189,7 @@
let px = base_point.x + xv.x + yv.x;
let py = base_point.y + xv.y + yv.y;
+ // update min and max from curve data if needed if(ymin_damaged && y < this.ymin) this.ymin = y;
if(ymax_damaged && y > this.ymax) this.ymax = y;
--- a/tests/projects/svghmi_xy/svghmi_0@svghmi/svghmi.svg Wed Jun 01 09:12:59 2022 +0200
+++ b/tests/projects/svghmi_xy/svghmi_0@svghmi/svghmi.svg Wed Jun 01 09:14:19 2022 +0200
@@ -306,13 +306,13 @@
inkscape:window-height="836"
- inkscape:zoom="2.6222222"
- inkscape:cx="138.92196"
- inkscape:cy="243.43713"
+ inkscape:zoom="0.32777778" + inkscape:cx="-105.99939" + inkscape:cy="106.14218" inkscape:window-maximized="1"
- inkscape:current-layer="g2776" />
+ inkscape:current-layer="hmi0" /> inkscape:label="HMI:Page:Home"
@@ -322,100 +322,7 @@
style="color:#000000;opacity:1;fill:#d6d6d6;fill-opacity:1" />
- transform="matrix(3.7795276,0,0,3.7795276,-24.745762,-208.06827)"
- inkscape:label="HMI:XYGraph|10:100:%.2D:%.4f@/TRENDVAL0@/TRENDVAL1">
- inkscape:label="background"
- 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:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.66866732;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;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" />
- style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="m 155.83129,160.76911 c -6.48118,-0.65276 -10.17779,-21.29836 -15.40662,-31.02314 -3.53004,-8.41808 -7.5877,-1.29208 -10.4198,6.97869 -4.61524,10.2233 -10.32507,20.13252 -15.96731,14.06607 -7.74352,-19.32213 -18.607099,-4.75161 -26.390159,-23.86108 -4.63396,-13.32693 -11.88412,-10.90822 -16.09527,3.29105 -2.36066,8.20528 -4.35835,18.89169 -7.94811,21.41954 -2.80281,2.74222 -5.9827,1.11526 -8.29837,-5.00354"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccccccc"
- inkscape:label="curve_1" />
- inkscape:label="curve_0"
- sodipodi:nodetypes="cccccccc"
- inkscape:connector-curvature="0"
- d="m 55.011564,133.09949 c 6.481177,0.19426 10.177788,6.33834 15.406617,9.23241 3.530037,2.5052 7.587703,0.38452 10.419795,-2.07684 4.615243,-3.04243 10.325074,-5.99139 15.967312,-4.18603 7.743522,5.75022 18.607102,1.41407 26.390162,7.101 4.63396,3.96606 11.88412,3.24626 16.09527,-0.97941 2.36066,-2.44187 4.35835,-5.62212 7.94811,-6.3744 2.80281,-0.81608 5.9827,-0.3319 8.29837,1.48904"
- style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#00b4cf;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
- inkscape:label="y_interval_minor_mark"
- inkscape:connector-curvature="0"
- d="m 43.637172,172.91226 h -1.35783"
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- sodipodi:nodetypes="cc" />
- inkscape:label="y_axis_line"
- inkscape:connector-curvature="0"
- d="M 44.123362,185.11382 V 98.607125"
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6249)"
- sodipodi:nodetypes="cc" />
- inkscape:label="y_interval_major_mark"
- inkscape:connector-curvature="0"
- d="m 43.637172,167.88501 h -3.4745"
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- inkscape:label="y_axis_label"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;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:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- xml:space="preserve"><tspan
- style="font-size:4.23333311px;text-align:end;text-anchor:end;stroke-width:0.26458332px"
- sodipodi:role="line">10</tspan></text>
- sodipodi:nodetypes="cc"
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m 63.393748,179.65255 v 1.35783"
- inkscape:connector-curvature="0"
- inkscape:label="x_interval_minor_mark" />
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6185)"
- d="M 39.02135,179.37991 H 169.44888"
- inkscape:connector-curvature="0"
- inkscape:label="x_axis_line" />
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m 68.420998,179.65255 v 3.4745"
- inkscape:connector-curvature="0"
- inkscape:label="x_interval_major_mark" />
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;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:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
- inkscape:label="x_axis_label"
- transform="rotate(-90)"><tspan
- style="font-size:4.23333311px;stroke-width:0.26458332px;text-anchor:end;text-align:end;">10</tspan></text>
- transform="matrix(2.1611542,0,0,2.1611542,616.6367,256.27681)"
+ transform="matrix(2.1611542,0,0,2.1611542,936.6367,256.27681)" inkscape:label="HMI:Meter@/TRENDVAL0">
@@ -432,7 +339,7 @@
- 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;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#00b4cf;stroke-width:1.74884677;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:url(#marker19820-3);marker-end:url(#marker25117-7);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;font-variant-east_asian:normal;vector-effect:none;stroke-linecap:butt;stroke-linejoin:miter" />
+ 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:none;fill-opacity:1;fill-rule:nonzero;stroke:#00b4cf;stroke-width:1.74884677;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:url(#marker19820-3);marker-end:url(#marker25117-7);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> @@ -466,7 +373,7 @@
sodipodi:role="line">1</tspan></text>
- transform="matrix(2.1611542,0,0,2.1611542,630.36551,530.09036)"
+ transform="matrix(2.1611542,0,0,2.1611542,950.36551,530.09036)" inkscape:label="HMI:Meter@/TRENDVAL1">
@@ -483,7 +390,7 @@
- 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;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:1.7488468;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:url(#marker19820-3);marker-end:url(#marker25117-7);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;font-variant-east_asian:normal;vector-effect:none;stroke-linecap:butt;stroke-linejoin:miter" />
+ 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:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:1.74884677;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:url(#marker19820-3);marker-end:url(#marker25117-7);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> @@ -519,18 +426,18 @@
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"
inkscape:label="_blup"><tspan
- y="83.8983">blup</tspan></text>
+ y="663.89832">blup</tspan></text> inkscape:label="HMI:DropDown:#langs@lang"
- transform="matrix(0.81491208,0,0,0.81491208,42.49804,-160.06995)"
+ transform="matrix(0.81491208,0,0,0.81491208,-657.50196,-160.06995)" style="stroke-width:0.35083869">
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:#53676c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;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"
@@ -582,4 +489,380 @@
inkscape:transform-center-y="10.92088"
inkscape:label="button" />
+ style="stroke-width:1.81524098" + inkscape:label="HMI:XYGraph|5:10s:%.2D:%.2f@/TRENDVAL0,-1,1@/TRENDVAL1" + transform="matrix(2.0836471,0,0,2.08057,14.234354,161.43189)"> + 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:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.21379232;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;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" + inkscape:label="background" /> + inkscape:label="curve_1" + sodipodi:nodetypes="cccccccc" + inkscape:connector-curvature="0" + d="m 155.83129,160.76911 c -6.48118,-0.65276 -10.17779,-21.29836 -15.40662,-31.02314 -3.53004,-8.41808 -7.5877,-1.29208 -10.4198,6.97869 -4.61524,10.2233 -10.32507,20.13252 -15.96731,14.06607 -7.74352,-19.32213 -18.607099,-4.75161 -26.390159,-23.86108 -4.63396,-13.32693 -11.88412,-10.90822 -16.09527,3.29105 -2.36066,8.20528 -4.35835,18.89169 -7.94811,21.41954 -2.80281,2.74222 -5.9827,1.11526 -8.29837,-5.00354" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.81524098;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#00b4cf;stroke-width:1.81524098;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 55.011564,133.09949 c 6.481177,0.19426 10.177788,6.33834 15.406617,9.23241 3.530037,2.5052 7.587703,0.38452 10.419795,-2.07684 4.615243,-3.04243 10.325074,-5.99139 15.967312,-4.18603 7.743522,5.75022 18.607102,1.41407 26.390162,7.101 4.63396,3.96606 11.88412,3.24626 16.09527,-0.97941 2.36066,-2.44187 4.35835,-5.62212 7.94811,-6.3744 2.80281,-0.81608 5.9827,-0.3319 8.29837,1.48904" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccc" + inkscape:label="curve_0" /> + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.12007062;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 44.208773,172.91226 h -1.35783" + inkscape:connector-curvature="0" + inkscape:label="y_interval_minor_mark" /> + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.48103884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6249)" + d="M 44.123362,185.11382 V 98.607125" + inkscape:connector-curvature="0" + inkscape:label="y_axis_line" /> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.24014124;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 44.208773,167.88501 h -3.4745" + inkscape:connector-curvature="0" + inkscape:label="y_interval_major_mark" /> + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.20188332px;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:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.48028249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:label="y_axis_label"><tspan + style="font-size:3.20188332px;text-align:end;text-anchor:end;stroke-width:0.48028249px">10</tspan></text> + inkscape:label="x_interval_minor_mark" + inkscape:connector-curvature="0" + d="m 63.393748,179.65255 v 1.35783" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.12007062;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="cc" /> + inkscape:label="x_axis_line" + inkscape:connector-curvature="0" + d="M 39.02135,179.37991 H 169.44888" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.48103884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6185)" /> + inkscape:label="x_interval_major_mark" + inkscape:connector-curvature="0" + d="m 68.420998,179.65255 v 3.4745" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.24014124;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + transform="rotate(-90)" + inkscape:label="x_axis_label" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.20188332px;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:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.48028249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:3.20188332px;text-align:end;text-anchor:end;stroke-width:0.48028249px" + sodipodi:role="line">10</tspan></text> + transform="matrix(2.0836471,0,0,2.08057,14.234354,-118.56811)" + inkscape:label="HMI:XYGraph|10:100:%.2D:%.2f@/TRENDVAL0@/TRENDVAL1" + style="stroke-width:1.81524098"> + inkscape:label="background" + 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:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.21379232;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;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" /> + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.81524098;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 155.83129,160.76911 c -6.48118,-0.65276 -10.17779,-21.29836 -15.40662,-31.02314 -3.53004,-8.41808 -7.5877,-1.29208 -10.4198,6.97869 -4.61524,10.2233 -10.32507,20.13252 -15.96731,14.06607 -7.74352,-19.32213 -18.607099,-4.75161 -26.390159,-23.86108 -4.63396,-13.32693 -11.88412,-10.90822 -16.09527,3.29105 -2.36066,8.20528 -4.35835,18.89169 -7.94811,21.41954 -2.80281,2.74222 -5.9827,1.11526 -8.29837,-5.00354" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccc" + inkscape:label="curve_1" /> + inkscape:label="curve_0" + sodipodi:nodetypes="cccccccc" + inkscape:connector-curvature="0" + d="m 55.011564,133.09949 c 6.481177,0.19426 10.177788,6.33834 15.406617,9.23241 3.530037,2.5052 7.587703,0.38452 10.419795,-2.07684 4.615243,-3.04243 10.325074,-5.99139 15.967312,-4.18603 7.743522,5.75022 18.607102,1.41407 26.390162,7.101 4.63396,3.96606 11.88412,3.24626 16.09527,-0.97941 2.36066,-2.44187 4.35835,-5.62212 7.94811,-6.3744 2.80281,-0.81608 5.9827,-0.3319 8.29837,1.48904" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#00b4cf;stroke-width:1.81524098;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + inkscape:label="y_interval_minor_mark" + inkscape:connector-curvature="0" + d="m 44.208773,172.91226 h -1.35783" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.12007062;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="cc" /> + inkscape:label="y_axis_line" + inkscape:connector-curvature="0" + d="M 44.123362,185.11382 V 98.607125" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.48103884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6249)" + sodipodi:nodetypes="cc" /> + inkscape:label="y_interval_major_mark" + inkscape:connector-curvature="0" + d="m 44.208773,167.88501 h -3.4745" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.24014124;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + inkscape:label="y_axis_label" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.20188332px;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:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.48028249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:3.20188332px;text-align:end;text-anchor:end;stroke-width:0.48028249px" + sodipodi:role="line">10</tspan></text> + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.12007062;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 63.393748,179.65255 v 1.35783" + inkscape:connector-curvature="0" + inkscape:label="x_interval_minor_mark" /> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.48103884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6185)" + d="M 39.02135,179.37991 H 169.44888" + inkscape:connector-curvature="0" + inkscape:label="x_axis_line" /> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.24014124;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 68.420998,179.65255 v 3.4745" + inkscape:connector-curvature="0" + inkscape:label="x_interval_major_mark" /> + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.20188332px;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:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.48028249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:label="x_axis_label" + transform="rotate(-90)"><tspan + style="font-size:3.20188332px;text-align:end;text-anchor:end;stroke-width:0.48028249px">10</tspan></text> + transform="matrix(2.0836471,0,0,2.08057,414.23435,161.43189)" + inkscape:label="HMI:XYGraph|10:1s:%.2D:%.2f@/TRENDVAL0,-2,2@/TRENDVAL1" + style="stroke-width:1.81524098"> + inkscape:label="background" + 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:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.21379232;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;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" /> + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.81524098;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 155.83129,160.76911 c -6.48118,-0.65276 -10.17779,-21.29836 -15.40662,-31.02314 -3.53004,-8.41808 -7.5877,-1.29208 -10.4198,6.97869 -4.61524,10.2233 -10.32507,20.13252 -15.96731,14.06607 -7.74352,-19.32213 -18.607099,-4.75161 -26.390159,-23.86108 -4.63396,-13.32693 -11.88412,-10.90822 -16.09527,3.29105 -2.36066,8.20528 -4.35835,18.89169 -7.94811,21.41954 -2.80281,2.74222 -5.9827,1.11526 -8.29837,-5.00354" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccc" + inkscape:label="curve_1" /> + inkscape:label="curve_0" + sodipodi:nodetypes="cccccccc" + inkscape:connector-curvature="0" + d="m 55.011564,133.09949 c 6.481177,0.19426 10.177788,6.33834 15.406617,9.23241 3.530037,2.5052 7.587703,0.38452 10.419795,-2.07684 4.615243,-3.04243 10.325074,-5.99139 15.967312,-4.18603 7.743522,5.75022 18.607102,1.41407 26.390162,7.101 4.63396,3.96606 11.88412,3.24626 16.09527,-0.97941 2.36066,-2.44187 4.35835,-5.62212 7.94811,-6.3744 2.80281,-0.81608 5.9827,-0.3319 8.29837,1.48904" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#00b4cf;stroke-width:1.81524098;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + inkscape:label="y_interval_minor_mark" + inkscape:connector-curvature="0" + d="m 44.208773,172.91226 h -1.35783" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.12007062;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="cc" /> + inkscape:label="y_axis_line" + inkscape:connector-curvature="0" + d="M 44.123362,185.11382 V 98.607125" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.48103884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6249)" + sodipodi:nodetypes="cc" /> + inkscape:label="y_interval_major_mark" + inkscape:connector-curvature="0" + d="m 44.208773,167.88501 h -3.4745" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.24014124;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + inkscape:label="y_axis_label" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.20188332px;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:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.48028249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:3.20188332px;text-align:end;text-anchor:end;stroke-width:0.48028249px" + sodipodi:role="line">10</tspan></text> + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.12007062;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 63.393748,179.65255 v 1.35783" + inkscape:connector-curvature="0" + inkscape:label="x_interval_minor_mark" /> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.48103884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6185)" + d="M 39.02135,179.37991 H 169.44888" + inkscape:connector-curvature="0" + inkscape:label="x_axis_line" /> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.24014124;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 68.420998,179.65255 v 3.4745" + inkscape:connector-curvature="0" + inkscape:label="x_interval_major_mark" /> + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.20188332px;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:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.48028249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:label="x_axis_label" + transform="rotate(-90)"><tspan + style="font-size:3.20188332px;text-align:end;text-anchor:end;stroke-width:0.48028249px">10</tspan></text> + style="stroke-width:1.81524098" + inkscape:label="HMI:XYGraph|5:1m:%.2D:%.2f@/TRENDVAL0,-0.5,0.5@/TRENDVAL1" + transform="matrix(2.0836471,0,0,2.08057,414.23435,-118.56811)"> + 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:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.21379232;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;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" + inkscape:label="background" /> + inkscape:label="curve_1" + sodipodi:nodetypes="cccccccc" + inkscape:connector-curvature="0" + d="m 155.83129,160.76911 c -6.48118,-0.65276 -10.17779,-21.29836 -15.40662,-31.02314 -3.53004,-8.41808 -7.5877,-1.29208 -10.4198,6.97869 -4.61524,10.2233 -10.32507,20.13252 -15.96731,14.06607 -7.74352,-19.32213 -18.607099,-4.75161 -26.390159,-23.86108 -4.63396,-13.32693 -11.88412,-10.90822 -16.09527,3.29105 -2.36066,8.20528 -4.35835,18.89169 -7.94811,21.41954 -2.80281,2.74222 -5.9827,1.11526 -8.29837,-5.00354" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.81524098;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#00b4cf;stroke-width:1.81524098;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 55.011564,133.09949 c 6.481177,0.19426 10.177788,6.33834 15.406617,9.23241 3.530037,2.5052 7.587703,0.38452 10.419795,-2.07684 4.615243,-3.04243 10.325074,-5.99139 15.967312,-4.18603 7.743522,5.75022 18.607102,1.41407 26.390162,7.101 4.63396,3.96606 11.88412,3.24626 16.09527,-0.97941 2.36066,-2.44187 4.35835,-5.62212 7.94811,-6.3744 2.80281,-0.81608 5.9827,-0.3319 8.29837,1.48904" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccc" + inkscape:label="curve_0" /> + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.12007062;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 44.208773,172.91226 h -1.35783" + inkscape:connector-curvature="0" + inkscape:label="y_interval_minor_mark" /> + sodipodi:nodetypes="cc" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.48103884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6249)" + d="M 44.123362,185.11382 V 98.607125" + inkscape:connector-curvature="0" + inkscape:label="y_axis_line" /> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.24014124;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 44.208773,167.88501 h -3.4745" + inkscape:connector-curvature="0" + inkscape:label="y_interval_major_mark" /> + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.20188332px;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:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.48028249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:label="y_axis_label"><tspan + style="font-size:3.20188332px;text-align:end;text-anchor:end;stroke-width:0.48028249px">10</tspan></text> + inkscape:label="x_interval_minor_mark" + inkscape:connector-curvature="0" + d="m 63.393748,179.65255 v 1.35783" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.12007062;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="cc" /> + inkscape:label="x_axis_line" + inkscape:connector-curvature="0" + d="M 39.02135,179.37991 H 169.44888" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.48103884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6185)" /> + inkscape:label="x_interval_major_mark" + inkscape:connector-curvature="0" + d="m 68.420998,179.65255 v 3.4745" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.24014124;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + transform="rotate(-90)" + inkscape:label="x_axis_label" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.20188332px;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:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.48028249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:3.20188332px;text-align:end;text-anchor:end;stroke-width:0.48028249px" + sodipodi:role="line">10</tspan></text>