<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Variablennamen "zusammenbauen"</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/ec9d3d581b/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/ec9d3d581b/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/ec9d3d581b/</id><updated>2020-02-28T15:32:40.508000Z</updated><subtitle>Recent posts to Variablennamen "zusammenbauen"</subtitle><entry><title>Variablennamen "zusammenbauen"</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/ec9d3d581b/?limit=25#03d4" rel="alternate"/><published>2020-02-28T15:32:40.508000Z</published><updated>2020-02-28T15:32:40.508000Z</updated><author><name>debug</name><uri>https://forge.codesys.com/u/debug/</uri></author><id>https://forge.codesys.com270d7a7d3c31b163591346a81d3bdc2a30ba7e2b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Wie ist es mit:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;In_01&lt;/span&gt; &lt;span class="k"&gt;at&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;IB1&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Byte&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>Variablennamen "zusammenbauen"</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/ec9d3d581b/?limit=25#a86b" rel="alternate"/><published>2020-02-28T15:32:37.680000Z</published><updated>2020-02-28T15:32:37.680000Z</updated><author><name>Martin Wunsch</name><uri>https://forge.codesys.com/u/martin-wunsch/</uri></author><id>https://forge.codesys.comc0cde68f3721ed1b7b6cc44baf7469aa2bdce094</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Die digitalen Ein- und Ausgänge werden steuerungsintern doch von Eingangs- / Augangs-Bytes bzw. -Words gelesen bzw. geschrieben. Kann man nicht direkt z.B. ein Eingangsbyte einlesen, um so auf einen Schlag 8 Eingänge zu haben? &lt;/p&gt;
&lt;p&gt;Natürlich muß man auf die Namen der jeweiligen Steuerung Bezug nehmen, da durchaus die Möglichkeit besteht, daß verschiedene Hersteller ihre Ein- und Ausgänge unterschiedlich benennen bzw. intern platzieren.&lt;/p&gt;
&lt;p&gt;Gruß&lt;/p&gt;
&lt;p&gt;Martin&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Variablennamen "zusammenbauen"</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/ec9d3d581b/?limit=25#5cd4" rel="alternate"/><published>2020-02-28T15:32:29.382000Z</published><updated>2020-02-28T15:32:29.382000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com99498831a3e2a1fd66d2350ac1967e01a9a08c93</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Tja, dann wirds langsam schwierig...&lt;/p&gt;
&lt;p&gt;Also Tatsache ist, dass zur Laufzeit keine neuen Variablen definiert werden können und einen Preprocessor der sowas kann kenne ich auch nicht.&lt;/p&gt;
&lt;p&gt;Sorry&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Variablennamen "zusammenbauen"</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/ec9d3d581b/?limit=25#f0e3" rel="alternate"/><published>2020-02-28T15:32:26.279000Z</published><updated>2020-02-28T15:32:26.279000Z</updated><author><name>MarcelGünther</name><uri>https://forge.codesys.com/u/marcelguenther/</uri></author><id>https://forge.codesys.com7dae3fdc5bf543bfe64eca1c64bb08e1111a43a3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo,&lt;/p&gt;
&lt;p&gt;Danke für die Idee.&lt;/p&gt;
&lt;p&gt;Aber ich glaube das würde mich nicht weiterbringen.&lt;/p&gt;
&lt;p&gt;Denn die Globalen Variablen lassen sich mit dem RuntimeSystem nicht als Array definieren. Somit müsste ich irgendwo an zentraler Stelle etwas schreiben wie &lt;/p&gt;
&lt;p&gt;AUSGANG_1 := Ausgang&lt;span&gt;[1]&lt;/span&gt;;&lt;/p&gt;
&lt;p&gt;AUSGANG_2 := Ausgang&lt;span&gt;[2]&lt;/span&gt;;&lt;/p&gt;
&lt;p&gt;und somit wieder alle möglichen Variablen dem System Bekanntmachen.&lt;/p&gt;
&lt;p&gt;Der Hintergrundgedanke meiner Idee war aber gerade das Bekanntmachen aller globalen Variablen zu Vermeiden, denn jede Variable die im Programm genutzt wird, wird von der Runtime über eine Hookroutine nach aussen gegeben und Belastet somit das angeschlossene System.&lt;/p&gt;
&lt;p&gt;Gruss Marcel&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Variablennamen "zusammenbauen"</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/ec9d3d581b/?limit=25#0cbf" rel="alternate"/><published>2020-02-28T15:32:18.219000Z</published><updated>2020-02-28T15:32:18.219000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com340801f831a8960f3f43d0b105eb1b0bc1e28a13</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo&lt;/p&gt;
&lt;p&gt;Wie wärs denn wenn du ein Array machst ?&lt;/p&gt;
&lt;p&gt;Also z.B.&lt;/p&gt;
&lt;p&gt;Ausgang: array&lt;span&gt;[1..64]&lt;/span&gt; of bool;&lt;/p&gt;
&lt;p&gt;Dann könntest du das so machen:&lt;/p&gt;
&lt;p&gt;for i := 1 to 64 do&lt;/p&gt;
&lt;p&gt;Ausgang&lt;span&gt;[i]&lt;/span&gt; := TRUE;&lt;/p&gt;
&lt;p&gt;end_for&lt;/p&gt;
&lt;p&gt;Gruss&lt;/p&gt;
&lt;p&gt;Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Variablennamen "zusammenbauen"</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/ec9d3d581b/?limit=25#2347" rel="alternate"/><published>2020-02-28T15:32:15.422000Z</published><updated>2020-02-28T15:32:15.422000Z</updated><author><name>MarcelGünther</name><uri>https://forge.codesys.com/u/marcelguenther/</uri></author><id>https://forge.codesys.comce6821c3bf824d06138f1b231b64c782a8832c7c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Erik,&lt;/p&gt;
&lt;p&gt;vielen Dank für Deine schnelle Antwort, auch wenn die Antwort mich nicht gerade glücklich macht.&lt;/p&gt;
&lt;p&gt;das Problem ist nämlich, dass die Variablen im RuntimeSystem nicht aktuallisert werden wenn sie nicht wenigstens einmal namentlich im Programm erwähnt wurden sind - also in der Symboldatei stehen -, ein Zugriff mittels Pointer wird somit sinnlos.&lt;/p&gt;
&lt;p&gt;Gruss&lt;/p&gt;
&lt;p&gt;Marcel&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Variablennamen "zusammenbauen"</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/ec9d3d581b/?limit=25#90e8" rel="alternate"/><published>2020-02-28T15:32:07.859000Z</published><updated>2020-02-28T15:32:07.859000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com02c00c617f079e80e498380a662c405f584f68b7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo&lt;/p&gt;
&lt;p&gt;Also mal ganz kurz gesagt würde ich sagen: Das geht nicht.&lt;/p&gt;
&lt;p&gt;Dazu müsste ein Preprocessor das Programm erst ausführen und dann das Ergebnis an den Compiler weitergeben.&lt;/p&gt;
&lt;p&gt;Gruss Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Variablennamen "zusammenbauen"</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/ec9d3d581b/?limit=25#5e1e" rel="alternate"/><published>2020-02-28T15:32:05.026000Z</published><updated>2020-02-28T15:32:05.026000Z</updated><author><name>MarcelGünther</name><uri>https://forge.codesys.com/u/marcelguenther/</uri></author><id>https://forge.codesys.com18d009c12f393985beb346022877c23466934937</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo,&lt;/p&gt;
&lt;p&gt;ich möchte eine PLC Funktion schreiben, die eine bestimmte globale Variable anspricht. Der Name der Variable soll aus den Parametern der Funktion zusammengebaut werden.&lt;/p&gt;
&lt;p&gt;Beispiel wie ich es mir vorstelle:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;C&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="s2"&gt;"Ausgang_"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="s2"&gt;"1"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;C&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;VariableVonString&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;C&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;TRUE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Der Name wird aus Konstanten zur Progammierzeit zusammengesetzt, nicht dynamisch im Programm.&lt;/p&gt;
&lt;p&gt;Der Compiler müsste also prüfen, ob es "Ausgang_1" auch gibt.&lt;/p&gt;
&lt;p&gt;Vielleicht hat jemand eine Idee.&lt;/p&gt;
&lt;p&gt;Vielen Dank&lt;/p&gt;
&lt;p&gt;Marcel&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>