<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to PLC-Name / Steuerungsname</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/d9f431f31e/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/d9f431f31e/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/d9f431f31e/</id><updated>2020-02-27T14:10:24.298000Z</updated><subtitle>Recent posts to PLC-Name / Steuerungsname</subtitle><entry><title>PLC-Name / Steuerungsname</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/d9f431f31e/?limit=25#7fbe" rel="alternate"/><published>2020-02-27T14:10:24.298000Z</published><updated>2020-02-27T14:10:24.298000Z</updated><author><name>ThomasRohner</name><uri>https://forge.codesys.com/u/thomasrohner/</uri></author><id>https://forge.codesys.com42317d4ae44760b5e4f21f3bfe9f1c4fe7f7274f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;my solution, quick and possibly "dirty" -&amp;gt; is there a better solution ?&lt;/p&gt;
&lt;p&gt;e.g.&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;ReadOutSysInfos&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt;
   &lt;span class="nv"&gt;init&lt;/span&gt;: &lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;strTemp&lt;/span&gt;: &lt;span class="nv"&gt;STRING&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;strBoardName&lt;/span&gt;: &lt;span class="nv"&gt;STRING&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;strBoardName2&lt;/span&gt;: &lt;span class="nv"&gt;STRING&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;wstrBoardName2&lt;/span&gt;: &lt;span class="nv"&gt;WSTRING&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;fileHandle&lt;/span&gt;:    &lt;span class="nv"&gt;SysTypes&lt;/span&gt;.&lt;span class="nv"&gt;RTS_IEC_HANDLE&lt;/span&gt;&lt;span class="c1"&gt;;                  // File handle number&lt;/span&gt;
   &lt;span class="nv"&gt;fileName&lt;/span&gt;:      &lt;span class="nv"&gt;STRING&lt;/span&gt;[&lt;span class="mi"&gt;63&lt;/span&gt;] :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/flashdisk/CodesysV3/CoDeSysControl.cfg&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;;      // Path and file name&lt;/span&gt;
   &lt;span class="nv"&gt;rte&lt;/span&gt;:          &lt;span class="nv"&gt;RTS_IEC_RESULT&lt;/span&gt;&lt;span class="c1"&gt;;                  // Error code according runtime error list&lt;/span&gt;
   &lt;span class="nv"&gt;ptrToString&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;BYTE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;ptrToString1&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;BYTE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;ptrToString1a&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;STRING&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;strCmp1&lt;/span&gt;: &lt;span class="nv"&gt;STRING&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;[SysTarget]&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;readSize&lt;/span&gt;: &lt;span class="nv"&gt;UDINT&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;constantReadSize&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;bytesRead&lt;/span&gt;: &lt;span class="nv"&gt;UDINT&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;udi&lt;/span&gt; :&lt;span class="nv"&gt;UDINT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;readLog&lt;/span&gt;:      &lt;span class="nv"&gt;ARRAY&lt;/span&gt; [&lt;span class="mi"&gt;0&lt;/span&gt;..&lt;span class="nv"&gt;constantReadSize&lt;/span&gt;] &lt;span class="nv"&gt;OF&lt;/span&gt; &lt;span class="nv"&gt;BYTE&lt;/span&gt;&lt;span class="c1"&gt;;// Array to read old logs&lt;/span&gt;
   &lt;span class="nv"&gt;str_offset&lt;/span&gt;: &lt;span class="nv"&gt;INT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;str_offset2&lt;/span&gt;: &lt;span class="nv"&gt;INT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;iLen&lt;/span&gt;: &lt;span class="nv"&gt;INT&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;strComponent&lt;/span&gt; : &lt;span class="nv"&gt;STRING&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;SysTarget&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;strKeyValue&lt;/span&gt;: &lt;span class="nv"&gt;STRING&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;NodeName&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt; &lt;span class="nv"&gt;CONSTANT&lt;/span&gt;
   &lt;span class="nv"&gt;constantReadSize&lt;/span&gt;:   &lt;span class="nv"&gt;UDINT&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4000&lt;/span&gt;&lt;span class="c1"&gt;;   &lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;init&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FALSE&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
   &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;strBoardName&lt;/span&gt; &lt;span class="o"&gt;=&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;fileHandle&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysFileOpen&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;fileName&lt;/span&gt;, &lt;span class="nv"&gt;AM_READ&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;rte&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;   // Open original file&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;fileHandle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;#&lt;span class="nv"&gt;FFFFFFFF&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;OR&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;fileHandle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
         &lt;span class="nv"&gt;strBoardName&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;invalid handle&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="k"&gt;ELSE&lt;/span&gt;
         &lt;span class="nv"&gt;strBoardName&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;not found&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;ptrToString&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;readLog&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;ptrToString1&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;strCmp1&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;bytesRead&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysFileRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;fileHandle&lt;/span&gt;, &lt;span class="nv"&gt;ptrToString&lt;/span&gt;, &lt;span class="nv"&gt;readSize&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;rte&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;   // Read the original file&lt;/span&gt;
         &lt;span class="k"&gt;FOR&lt;/span&gt; &lt;span class="nv"&gt;udi&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="nv"&gt;TO&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;bytesRead&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;250&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
            &lt;span class="nv"&gt;ptrToString1a&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;ptrToString&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
            &lt;span class="nv"&gt;str_offset&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;Standard&lt;/span&gt;.&lt;span class="nv"&gt;FIND&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ptrToString1a&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;, &lt;span class="nv"&gt;strCmp1&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;str_offset&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
               &lt;span class="nv"&gt;ptrToString1a&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;ptrToString1a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nv"&gt;str_offset&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
               &lt;span class="nv"&gt;str_offset&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;Standard&lt;/span&gt;.&lt;span class="nv"&gt;FIND&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ptrToString1a&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;, &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;NodeName=&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;8&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;str_offset&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
                  &lt;span class="nv"&gt;ptrToString1a&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;ptrToString1a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nv"&gt;str_offset&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
                  &lt;span class="nv"&gt;ptrToString1&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;ptrToString1a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nv"&gt;Standard&lt;/span&gt;.&lt;span class="nv"&gt;FIND&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ptrToString1a&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;, &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;$R&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
                  &lt;span class="nv"&gt;ptrToString1&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
                  &lt;span class="nv"&gt;strBoardName&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;ptrToString1a&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
                  &lt;span class="k"&gt;EXIT&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;ptrToString&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;ptrToString&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;END_FOR&lt;/span&gt;
         &lt;span class="nv"&gt;rte&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysFileClose&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;fileHandle&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;            // Close original file&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;init&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;;&lt;/span&gt;
&lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>PLC-Name / Steuerungsname</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/d9f431f31e/?limit=25#7ddd" rel="alternate"/><published>2020-02-27T14:10:23.941000Z</published><updated>2020-02-27T14:10:23.941000Z</updated><author><name>timvh</name><uri>https://forge.codesys.com/u/timvh/</uri></author><id>https://forge.codesys.com62abb2656c3cdfbc6432d1d7a82ec2ac846d8778</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Good question. Please share your solution if you have found out how to do this.&lt;br/&gt;
You could use the CmpApp library to get information about the application, but as far as I have seen this doesn't give information about the device name.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>PLC-Name / Steuerungsname</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/d9f431f31e/?limit=25#48a5" rel="alternate"/><published>2020-02-27T14:10:23.592000Z</published><updated>2020-02-27T14:10:23.592000Z</updated><author><name>ThomasRohner</name><uri>https://forge.codesys.com/u/thomasrohner/</uri></author><id>https://forge.codesys.com79fdd5056f310417664d8783e4a7632422a05e82</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Forum,&lt;/p&gt;
&lt;p&gt;gibt es eine Funktion/Bibliothek um den Steuerungsnamen aus CODESYSCONTROL.CFG auszulesen?&lt;br/&gt;
Oder muss ich das von Hand und mit SysFile selbst bewerkstelligen?&lt;/p&gt;
&lt;p&gt;Does a function/library exist to read out the nodename-value from CODESYSCONTROL.CFG?&lt;br/&gt;
Or do I have to read manually with library 'SysFile'?&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>