<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Different visu for different ip</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/bb824f07ea/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Visualization/thread/bb824f07ea/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Visualization/thread/bb824f07ea/</id><updated>2022-07-29T14:24:53.776000Z</updated><subtitle>Recent posts to Different visu for different ip</subtitle><entry><title>Different visu for different ip</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/bb824f07ea/?limit=25#e7f2/8b28" rel="alternate"/><published>2022-07-29T14:24:53.776000Z</published><updated>2022-07-29T14:24:53.776000Z</updated><author><name>ignat</name><uri>https://forge.codesys.com/u/ignat/</uri></author><id>https://forge.codesys.come8d03d919a235364608f2e936a03f1527821ead0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi, this won't work for me. &lt;br/&gt;
In debugging it shows &lt;strong&gt;-1&lt;/strong&gt; for &lt;strong&gt;GlobalClientID&lt;/strong&gt;, seems the property is missing in &lt;strong&gt;VisuGlobals&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The Codesys and library version 3.5.16.3&lt;/p&gt;
&lt;p&gt;Could you please check do you have the same variables in the respective library? (see attached)&lt;/p&gt;
&lt;p&gt;&lt;img src="./attachment/Globals.png" width="50%"/&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Different visu for different ip</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/bb824f07ea/?limit=25#e7f2" rel="alternate"/><published>2020-02-27T18:07:58.335000Z</published><updated>2020-02-27T18:07:58.335000Z</updated><author><name>timvh</name><uri>https://forge.codesys.com/u/timvh/</uri></author><id>https://forge.codesys.come53523e3f99eced5c4eb21291bbe96173d29e3ac</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;You can iterate over all connected clients.&lt;br/&gt;
From each client you can get data (including asking it's IP address).&lt;br/&gt;
Then you can set the required visualization of this client.&lt;/p&gt;
&lt;p&gt;Please note that currently you cannot read the current page. According to 3S-Smart Software Solutions with SP11 a new user friendlier library will be released which can do the same as below including reading the actual visualization the client is on.&lt;/p&gt;
&lt;p&gt;Below the example code which I used to changed to a certain visualization when a user logged out at a specific client (local client). In this case I remembered who was already logged on. In your case you could use another array to detect if this is a new client. If yes, then set the start visualization.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;PROGRAM&lt;/span&gt; &lt;span class="nt"&gt;PLC_PRG&lt;/span&gt;
&lt;span class="nt"&gt;VAR&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="nt"&gt;pClient&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;POINTER&lt;/span&gt; &lt;span class="nt"&gt;TO&lt;/span&gt; &lt;span class="nt"&gt;VisuElems&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;VisuStructClientData&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="nt"&gt;_VisuFbClientTagDataHelper&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;VisuElems&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;VisuFbClientTagDataHelper&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="nt"&gt;_asIP&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;ARRAY&lt;/span&gt;&lt;span class="cp"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="nx"&gt;..5&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt; &lt;span class="nt"&gt;OF&lt;/span&gt; &lt;span class="nt"&gt;STRING&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="nt"&gt;_asPreviousUserName&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;ARRAY&lt;/span&gt;&lt;span class="cp"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="nx"&gt;..5&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt; &lt;span class="nt"&gt;OF&lt;/span&gt; &lt;span class="nt"&gt;WSTRING&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;END_VAR&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;Iterate&lt;/span&gt; &lt;span class="nv"&gt;over&lt;/span&gt; &lt;span class="nv"&gt;all&lt;/span&gt; &lt;span class="nv"&gt;currently&lt;/span&gt; &lt;span class="nv"&gt;active&lt;/span&gt; &lt;span class="nv"&gt;visualization&lt;/span&gt; &lt;span class="nv"&gt;clients&lt;/span&gt;
&lt;span class="nv"&gt;VisuElems&lt;/span&gt;.&lt;span class="nv"&gt;g_ClientManager&lt;/span&gt;.&lt;span class="nv"&gt;BeginIteration&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;WHILE&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;pClient&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;VisuElems&lt;/span&gt;.&lt;span class="nv"&gt;g_ClientManager&lt;/span&gt;.&lt;span class="nv"&gt;GetNextClient&lt;/span&gt;&lt;span class="ss"&gt;())&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
                &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;Switch&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;visu&lt;/span&gt; &lt;span class="nv"&gt;of&lt;/span&gt; &lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;webclient&lt;/span&gt; &lt;span class="nv"&gt;only&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;it&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;specific&lt;/span&gt; &lt;span class="nv"&gt;client&lt;/span&gt; &lt;span class="nv"&gt;where&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;admin&lt;/span&gt; &lt;span class="nv"&gt;user&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;logged&lt;/span&gt; &lt;span class="nv"&gt;out&lt;/span&gt;. &lt;span class="nv"&gt;In&lt;/span&gt; &lt;span class="nv"&gt;this&lt;/span&gt; &lt;span class="nv"&gt;case&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;current&lt;/span&gt; &lt;span class="nv"&gt;user&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;empty&lt;/span&gt; &lt;span class="nv"&gt;and&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;previous&lt;/span&gt; &lt;span class="nv"&gt;was&lt;/span&gt; &lt;span class="nv"&gt;Admin&lt;/span&gt;.
                &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;pClient&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;.&lt;span class="nv"&gt;GlobalData&lt;/span&gt;.&lt;span class="nv"&gt;ClientType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;VisuElems&lt;/span&gt;.&lt;span class="nv"&gt;Visu_ClientType&lt;/span&gt;.&lt;span class="nv"&gt;WebVisualization&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
                               &lt;span class="nv"&gt;_VisuFbClientTagDataHelper&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;pClientData&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;pClient&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
                               &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;_VisuFbClientTagDataHelper&lt;/span&gt;.&lt;span class="nv"&gt;xIPv4Valid&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
                                               &lt;span class="nv"&gt;_asIP&lt;/span&gt;[&lt;span class="nv"&gt;pClient&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;.&lt;span class="nv"&gt;GlobalData&lt;/span&gt;.&lt;span class="nv"&gt;GlobalClientID&lt;/span&gt;] :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;_VisuFbClientTagDataHelper&lt;/span&gt;.&lt;span class="nv"&gt;stIPv4&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
                                               &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;pClient&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;.&lt;span class="nv"&gt;GlobalData&lt;/span&gt;.&lt;span class="nv"&gt;CurrentUserName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt; &lt;span class="nv"&gt;AND&lt;/span&gt; &lt;span class="nv"&gt;_asPreviousUserName&lt;/span&gt;[&lt;span class="nv"&gt;pClient&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;.&lt;span class="nv"&gt;GlobalData&lt;/span&gt;.&lt;span class="nv"&gt;GlobalClientID&lt;/span&gt;] &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Admin&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nv"&gt;AND&lt;/span&gt; &lt;span class="nv"&gt;_asIP&lt;/span&gt;[&lt;span class="nv"&gt;pClient&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;.&lt;span class="nv"&gt;GlobalData&lt;/span&gt;.&lt;span class="nv"&gt;GlobalClientID&lt;/span&gt;] &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;127.0.0.1&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
                                                               &lt;span class="nv"&gt;VisuElems&lt;/span&gt;.&lt;span class="nv"&gt;g_VisuManager&lt;/span&gt;.&lt;span class="nv"&gt;SetMainVisu&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;pClient&lt;/span&gt;, &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;MainVisu&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;       &lt;/span&gt;
                                               &lt;span class="nv"&gt;END_IF&lt;/span&gt;
                               &lt;span class="nv"&gt;END_IF&lt;/span&gt;
                               &lt;span class="nv"&gt;_asPreviousUserName&lt;/span&gt;[&lt;span class="nv"&gt;pClient&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;.&lt;span class="nv"&gt;GlobalData&lt;/span&gt;.&lt;span class="nv"&gt;GlobalClientID&lt;/span&gt;] :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;pClient&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;.&lt;span class="nv"&gt;GlobalData&lt;/span&gt;.&lt;span class="nv"&gt;CurrentUserName&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
                &lt;span class="nv"&gt;END_IF&lt;/span&gt; 
&lt;span class="nv"&gt;END_WHILE&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>Different visu for different ip</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/bb824f07ea/?limit=25#9eba" rel="alternate"/><published>2020-02-27T18:07:57.249000Z</published><updated>2020-02-27T18:07:57.249000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com5ec1d2115301e744e737519ca76c2716807ebfc9</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; barkamharikrishna&lt;/p&gt;
&lt;p&gt;write small logic in the plc to which Screen to be active depends on Ip .&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Different visu for different ip</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/bb824f07ea/?limit=25#5669" rel="alternate"/><published>2020-02-27T18:07:56.169000Z</published><updated>2020-02-27T18:07:56.169000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com9ab336287e7323612d288beb2adbfd3601e0ac0c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; scott_cunningham&lt;/p&gt;
&lt;p&gt;I had a system that had two different screens - similar problem: same screens but some parts were read only on the remote monitors.  My best solution was to define a variable that is only used by the visu.  You set it on the visu screen at first run (setup screen).  Make the variable persistent retain and it will live even after power cycle.  Maybe that helps you.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Different visu for different ip</title><link href="https://forge.codesys.com/forge/talk/Visualization/thread/bb824f07ea/?limit=25#4c21" rel="alternate"/><published>2020-02-27T18:07:53.093000Z</published><updated>2020-02-27T18:07:53.093000Z</updated><author><name>kruglovay</name><uri>https://forge.codesys.com/u/kruglovay/</uri></author><id>https://forge.codesys.com9e0ea7f01a6466fec84c481647d0a4ed62ac0ebf</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello.&lt;br/&gt;
Is it possible to show different start visu for different clients according to their IP?&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>