<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Better Plotting Tool for CoDeSys 3.5?</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/0fa817a332/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Visualization/thread/0fa817a332/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Visualization/thread/0fa817a332/</id><updated>2020-02-27T18:11:10.708000Z</updated><subtitle>Recent posts to Better Plotting Tool for CoDeSys 3.5?</subtitle><entry><title>Better Plotting Tool for CoDeSys 3.5?</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/0fa817a332/?limit=25#8793" rel="alternate"/><published>2020-02-27T18:11:10.708000Z</published><updated>2020-02-27T18:11:10.708000Z</updated><author><name>galexis</name><uri>https://forge.codesys.com/u/galexis/</uri></author><id>https://forge.codesys.com4921b5044935bbe68af9e8ae8698ec5e793b9860</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Could you post example please ?&lt;br/&gt;
Best regards&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Better Plotting Tool for CoDeSys 3.5?</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/0fa817a332/?limit=25#bb02" rel="alternate"/><published>2020-02-27T18:11:09.550000Z</published><updated>2020-02-27T18:11:09.550000Z</updated><author><name>Julian Henkel</name><uri>https://forge.codesys.com/u/julian-henkel/</uri></author><id>https://forge.codesys.com0e909ca391295dadb5a4e556b98a91da22c9b976</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;It has indeed helped me a lot.&lt;/p&gt;
&lt;p&gt;Thanks again!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Better Plotting Tool for CoDeSys 3.5?</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/0fa817a332/?limit=25#c48d" rel="alternate"/><published>2020-02-27T18:11:06.247000Z</published><updated>2020-02-27T18:11:06.247000Z</updated><author><name>PJE</name><uri>https://forge.codesys.com/u/pje/</uri></author><id>https://forge.codesys.com0e7421f3cecd14b5667d64094f84241925e1ffd0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Here's a template taken from my test code.&lt;/p&gt;
&lt;p&gt;You embed a polyline in the visualizaiton and set the Dynamic Point settings to:&lt;/p&gt;
&lt;p&gt;Array of points: _MAIN.apPoints&lt;span&gt;[&lt;strong&gt;Trace#&lt;/strong&gt;]&lt;/span&gt;&lt;br/&gt;
Number of points: 256 (or as many as you need)&lt;/p&gt;
&lt;p&gt;Hope this helps.&lt;/p&gt;
&lt;p&gt;PJE&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;PROGRAM&lt;/span&gt; &lt;span class="nv"&gt;_MAIN&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt;                                                                                        
    &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nv"&gt;History&lt;/span&gt; &lt;span class="nv"&gt;Graphs&lt;/span&gt; &lt;span class="o"&gt;----------------------------------------------------------------------------------------------&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
    &lt;span class="nv"&gt;atGraphPoints&lt;/span&gt; : &lt;span class="nv"&gt;ARRAY&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;..&lt;span class="mi"&gt;5&lt;/span&gt;] &lt;span class="nv"&gt;OF&lt;/span&gt; &lt;span class="nv"&gt;ARRAY&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;..&lt;span class="mi"&gt;255&lt;/span&gt;] &lt;span class="nv"&gt;OF&lt;/span&gt; &lt;span class="nv"&gt;VisuElems&lt;/span&gt;.&lt;span class="nv"&gt;VisuStructPoint&lt;/span&gt;&lt;span class="c1"&gt;;       (* Graph Storage                *)&lt;/span&gt;
    &lt;span class="nv"&gt;apPoints&lt;/span&gt;      : &lt;span class="nv"&gt;ARRAY&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;..&lt;span class="mi"&gt;5&lt;/span&gt;] &lt;span class="nv"&gt;OF&lt;/span&gt; &lt;span class="nv"&gt;POINTER&lt;/span&gt; &lt;span class="nv"&gt;TO&lt;/span&gt; &lt;span class="nv"&gt;VisuElems&lt;/span&gt;.&lt;span class="nv"&gt;VisuStructPoint&lt;/span&gt;&lt;span class="c1"&gt;;             (* Pointers to Graph Data       *)&lt;/span&gt;
    &lt;span class="nv"&gt;iWidth&lt;/span&gt;        : &lt;span class="nv"&gt;INT&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;670&lt;/span&gt;&lt;span class="c1"&gt;;                                                      (* Graph Box Width              *)&lt;/span&gt;
    &lt;span class="nv"&gt;iHeight&lt;/span&gt;       : &lt;span class="nv"&gt;INT&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="c1"&gt;;                                                      (* Graph Box Height             *)&lt;/span&gt;
    &lt;span class="nv"&gt;iOffY&lt;/span&gt;         : &lt;span class="nv"&gt;INT&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;240&lt;/span&gt;&lt;span class="c1"&gt;;                                                      (* Graph Box Y Offset           *)&lt;/span&gt;
    &lt;span class="nv"&gt;iOffX&lt;/span&gt;         : &lt;span class="nv"&gt;INT&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="c1"&gt;;                                                       (* Graph Box X Offset           *)&lt;/span&gt;
    &lt;span class="nv"&gt;iPX&lt;/span&gt;           : &lt;span class="nv"&gt;INT&lt;/span&gt;&lt;span class="c1"&gt;;                                                             (* Calculated X Coordinate      *)&lt;/span&gt;
    &lt;span class="nv"&gt;iPY&lt;/span&gt;           : &lt;span class="nv"&gt;INT&lt;/span&gt;&lt;span class="c1"&gt;;                                                             (* Calculated Y Coordinate      *)&lt;/span&gt;
    &lt;span class="nv"&gt;bUpdate&lt;/span&gt;       : &lt;span class="nv"&gt;BOOL&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&lt;/span&gt;&lt;span class="c1"&gt;;                                                    (* Request To Update Graphs     *)&lt;/span&gt;
    &lt;span class="nv"&gt;siTrace&lt;/span&gt;       : &lt;span class="nv"&gt;BYTE&lt;/span&gt;&lt;span class="c1"&gt;;                                                            (* Trace Number                 *)&lt;/span&gt;
    &lt;span class="nv"&gt;siPoint&lt;/span&gt;       : &lt;span class="nv"&gt;BYTE&lt;/span&gt;&lt;span class="c1"&gt;;                                                            (* Point Number within Trace    *)&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;    &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="o"&gt;------------------------------------------------------------------------------------------------------&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;bUpdate&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;    &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nv"&gt;Generate&lt;/span&gt; &lt;span class="nv"&gt;Graphs&lt;/span&gt; &lt;span class="o"&gt;============================================================================&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;FOR&lt;/span&gt; &lt;span class="nv"&gt;siTrace&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="nv"&gt;TO&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;                                                         &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nv"&gt;Draw&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt; &lt;span class="nv"&gt;Graphs&lt;/span&gt;                &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;FOR&lt;/span&gt; &lt;span class="nv"&gt;siPoint&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="nv"&gt;TO&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;                                                   &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;  &lt;span class="nv"&gt;Each&lt;/span&gt; &lt;span class="nv"&gt;With&lt;/span&gt; &lt;span class="mi"&gt;256&lt;/span&gt; &lt;span class="nv"&gt;Points&lt;/span&gt;        &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
            &lt;span class="nv"&gt;iPX&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nv"&gt;Calculate&lt;/span&gt; &lt;span class="nv"&gt;X&lt;/span&gt; &lt;span class="nv"&gt;coordinate&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;point&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;..&lt;span class="nv"&gt;iWidth&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;               (*   Calculate X Coordinate     *)&lt;/span&gt;
            &lt;span class="nv"&gt;iPY&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nv"&gt;Calculate&lt;/span&gt; &lt;span class="nv"&gt;Y&lt;/span&gt; &lt;span class="nv"&gt;coordinate&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;point&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;..&lt;span class="nv"&gt;iHeight&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;              (*   Calculate Y Coordinate     *)&lt;/span&gt;
            &lt;span class="nv"&gt;atGraphPoints&lt;/span&gt;[&lt;span class="nv"&gt;siTrace&lt;/span&gt;][&lt;span class="nv"&gt;siPoint&lt;/span&gt;].&lt;span class="nv"&gt;iX&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;LIMIT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;, &lt;span class="nv"&gt;iPX&lt;/span&gt;, &lt;span class="nv"&gt;iWidth&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;  &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nv"&gt;iOffX&lt;/span&gt;&lt;span class="c1"&gt;;    (*   Range Check &amp;amp; Add X offset *)&lt;/span&gt;
            &lt;span class="nv"&gt;atGraphPoints&lt;/span&gt;[&lt;span class="nv"&gt;siTrace&lt;/span&gt;][&lt;span class="nv"&gt;siPoint&lt;/span&gt;].&lt;span class="nv"&gt;iY&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;LIMIT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;, &lt;span class="nv"&gt;iPY&lt;/span&gt;, &lt;span class="nv"&gt;iHeight&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nv"&gt;iOffY&lt;/span&gt;&lt;span class="c1"&gt;;    (*   Range Check &amp;amp; Add Y offset *)&lt;/span&gt;
        &lt;span class="nv"&gt;END_FOR&lt;/span&gt;                                                                      &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;                              &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
        &lt;span class="nv"&gt;apPoints&lt;/span&gt;[&lt;span class="nv"&gt;siTrace&lt;/span&gt;] :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;atGraphPoints&lt;/span&gt;[&lt;span class="nv"&gt;siTrace&lt;/span&gt;]&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;                            (*  Assign Pointer to Data      *)&lt;/span&gt;
    &lt;span class="nv"&gt;END_FOR&lt;/span&gt;                                                                          &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;                              &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
    &lt;span class="nv"&gt;bUpdate&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FALSE&lt;/span&gt;&lt;span class="c1"&gt;;                                                                (* Prevent Constant Update      *)&lt;/span&gt;
&lt;span class="nv"&gt;END_IF&lt;/span&gt;    &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="o"&gt;=======================================================================================================&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>Better Plotting Tool for CoDeSys 3.5?</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/0fa817a332/?limit=25#0a2b" rel="alternate"/><published>2020-02-27T18:11:05.168000Z</published><updated>2020-02-27T18:11:05.168000Z</updated><author><name>Julian Henkel</name><uri>https://forge.codesys.com/u/julian-henkel/</uri></author><id>https://forge.codesys.com034718496ec8426ab077147b932a3c5d00699ab1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;That sounds very interesting and seems to be exactly what I need. It would be awesome if you could post an example, but if you don't have the time, I would also be happy if you'd post the link to the thread where you found the information.   &lt;/p&gt;
&lt;p&gt;Thank you very much!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Better Plotting Tool for CoDeSys 3.5?</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/0fa817a332/?limit=25#271d" rel="alternate"/><published>2020-02-27T18:11:04.083000Z</published><updated>2020-02-27T18:11:04.083000Z</updated><author><name>PJE</name><uri>https://forge.codesys.com/u/pje/</uri></author><id>https://forge.codesys.com8a47c7a05813788e9966a3040c5d4f9dd275a3bb</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I bypassed the standard functions and wrote my own... It's pretty easy. Each graph trace is a polyline whose x,y point coordinates can be set via codesys code.&lt;/p&gt;
&lt;p&gt;Doing this I have implemented multiple overlapping graphs with different scales and a multi-channel logic analyzer which uses the shortest polyline to draw the trace.&lt;/p&gt;
&lt;p&gt;The information for doing this was found on this forum. I can probably put a example together.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Better Plotting Tool for CoDeSys 3.5?</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/0fa817a332/?limit=25#d794" rel="alternate"/><published>2020-02-27T18:11:01.002000Z</published><updated>2020-02-27T18:11:01.002000Z</updated><author><name>Julian Henkel</name><uri>https://forge.codesys.com/u/julian-henkel/</uri></author><id>https://forge.codesys.comccf81c73c78b2ddd5d79748198adb2fef1557d12</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I'm working with CoDeSys 3.5 SP4 Patch 2 for a few weeks now. At the moment I'm trying to get a few x-y Graph done and I'm quite surprised that CoDeSys only comes with a histogram tool, that has absolutely no options of editing the x-Axis whatsoever. I'm looking for a plot tool/function like in MATLAB, where you can edit the x-Axis and have more overall opions, like logarithmic axes, etc. Is there maybe a better tool available that I can import into CoDeSys?&lt;/p&gt;
&lt;p&gt;Thanks for your answers!&lt;/p&gt;
&lt;p&gt;Julian&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>