<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Globale Variable über Modbus auslesen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e474c2d930/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e474c2d930/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/e474c2d930/</id><updated>2020-02-28T15:03:25.782000Z</updated><subtitle>Recent posts to Globale Variable über Modbus auslesen</subtitle><entry><title>Globale Variable über Modbus auslesen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e474c2d930/?limit=25#b009" rel="alternate"/><published>2020-02-28T15:03:25.782000Z</published><updated>2020-02-28T15:03:25.782000Z</updated><author><name>Jazz11</name><uri>https://forge.codesys.com/u/jazz11/</uri></author><id>https://forge.codesys.comd665ecf2ce79e5c8c478070b13ca3c26ba53b7bf</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Uwe,&lt;/p&gt;
&lt;p&gt;nochmals vielen Dank, das Auslesen von globalen Variablen, die in der SPS den Datentyp INT oder DINT haben klappt einwandfrei in VBA als als Long oder Single.&lt;/p&gt;
&lt;p&gt;Allerdings bekomme ich immer komische Ergebnisse (meist 0) wenn ich Variable des Datentyps REAL aus der SPS auslesen will. Was muss ich denn mit dem Response Wert aus Modbus genau anstellen damit ich ihn korrekt angezeigt bekomme? Hast Du da vielleicht ein Beispiel?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Globale Variable über Modbus auslesen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e474c2d930/?limit=25#6330" rel="alternate"/><published>2020-02-28T15:03:17.987000Z</published><updated>2020-02-28T15:03:17.987000Z</updated><author><name>Uwe</name><uri>https://forge.codesys.com/u/uwe/</uri></author><id>https://forge.codesys.com291120ee7f298f48617966b4f9aa83b97ed02bd9</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;@Jazz1&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
gibts ne Möglichkeit rauszufinden ob ich MW0 schin verwendet habe?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Klar &lt;br/&gt;
Projekt-&amp;gt;Überprüfen-&amp;gt;Überlappende Speicherbereiche&lt;br/&gt;
und&lt;br/&gt;
Projekt-&amp;gt;Querverweisliste ausgeben =&amp;gt; Kategorie : Adresse / Name : *&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Datentyp Long müsste auch gehen? &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sicher, wenn du in der SPS statt REAL den Typ DINT benutzt oder&lt;/p&gt;
&lt;p&gt;den Wert im VBA von Single nach Long castest -&amp;gt; CLng().&lt;/p&gt;
&lt;p&gt;siehe&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="http://bauwiki.tugraz.at/bin/view/VBA/DatenTypen" rel="nofollow"&gt;http://bauwiki.tugraz.at/bin/view/VBA/DatenTypen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;und&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="http://bauwiki.tugraz.at/bin/view/VBA/DatenTypenKonvertierung" rel="nofollow"&gt;http://bauwiki.tugraz.at/bin/view/VBA/D ... vertierung&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Uwe&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Globale Variable über Modbus auslesen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e474c2d930/?limit=25#564a" rel="alternate"/><published>2020-02-28T15:03:15.066000Z</published><updated>2020-02-28T15:03:15.066000Z</updated><author><name>Matze001</name><uri>https://forge.codesys.com/u/matze001/</uri></author><id>https://forge.codesys.comaa6694ffe516b4a8b88f242f09cad93d4b3fe055</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Golbal suchen/ersetzen ist das Zauberwort für die Suche nach MW0.&lt;/p&gt;
&lt;p&gt;MfG&lt;/p&gt;
&lt;p&gt;Marcel&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Globale Variable über Modbus auslesen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e474c2d930/?limit=25#2199" rel="alternate"/><published>2020-02-28T15:03:07.398000Z</published><updated>2020-02-28T15:03:07.398000Z</updated><author><name>Jazz11</name><uri>https://forge.codesys.com/u/jazz11/</uri></author><id>https://forge.codesys.comaccc15c0f99937640b58cf54d012ba9d25320d3e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Uwe,&lt;/p&gt;
&lt;p&gt;danke nochmal, gibts ne Möglichkeit rauszufinden ob ich MW0 schin verwendet habe?, bin mir da nicht sicher.&lt;/p&gt;
&lt;p&gt;Startadress 12288 soweit klar. Wie kann ich aber die empfangenen Daten so weiterverarbeiten, dass aus sechs Merkern 3 Werte entstehen.&lt;/p&gt;
&lt;p&gt;Datentyp Long müsste auch gehen?&lt;/p&gt;
&lt;p&gt;Jazz&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Globale Variable über Modbus auslesen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e474c2d930/?limit=25#e3bc" rel="alternate"/><published>2020-02-28T15:03:04.512000Z</published><updated>2020-02-28T15:03:04.512000Z</updated><author><name>NetFritz</name><uri>https://forge.codesys.com/u/netfritz/</uri></author><id>https://forge.codesys.combca2fdd51e620cea91cf37e961c59c699cd3c3cc</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
@ Uwe&lt;br/&gt;
Du musst natürlich selbst verwalten welche Adressen du schon belegt hast und welche nicht&lt;br/&gt;
also z.B. musst du wissen das ein REAL 4 Byte belegt und mit der Deklaration&lt;br/&gt;
rVar AT%MW28 : REAL;&lt;br/&gt;
die Merkerworte 28 und 29 belegt sind. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Wo finde ich mehr dazu in der Doku?&lt;/p&gt;
&lt;p&gt;Ich habe folgendes in der Doku gefunden.&lt;/p&gt;
&lt;p&gt;Zum Beispiel würde die Adresse %MD48 die Bytes Nr. 192, 193, 194 und 195 im&lt;/p&gt;
&lt;p&gt;Merkerbereich adressieren (48 * 4 = 192). Das erste Byte ist das Byte Nr. 0.&lt;/p&gt;
&lt;p&gt;Dann ist aber %MD49 die Bytes Nr. 196,197,198 u. 199.&lt;/p&gt;
&lt;p&gt;Gruß NetFritz&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Globale Variable über Modbus auslesen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e474c2d930/?limit=25#4dad" rel="alternate"/><published>2020-02-28T15:02:56.581000Z</published><updated>2020-02-28T15:02:56.581000Z</updated><author><name>Uwe</name><uri>https://forge.codesys.com/u/uwe/</uri></author><id>https://forge.codesys.com8e4924632f6655282cc64a045c21c3b241807982</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Jazz,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Bekomme ich beim übersetzten automatisch eine Fehlermeldung falls MW 0 schon belegt wäre? &lt;br/&gt;
Nein.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Jetzt ist mein Wert ja über zwei Merkerworte verteilt, dann kann ich jetzt wohl nicht statt zuvor die 6 die Modbus Adresse 12288 für MW0 eingeben oder?&lt;br/&gt;
Doch geht.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Du hast doch schon mit der MBT.dll gearbeitet.&lt;/p&gt;
&lt;p&gt;Dort gibst du bei dem Dienst MBTReadRegisters die &lt;/p&gt;
&lt;p&gt;Startadresse -&amp;gt; 12288 an&lt;/p&gt;
&lt;p&gt;und die Anzahl der Worte die du lesen möchtest.&lt;/p&gt;
&lt;p&gt;Dort kannst du bis ca. 120 Worte in einem Rutsch lesen.&lt;/p&gt;
&lt;p&gt;Also auch ein Array.&lt;/p&gt;
&lt;p&gt;Es werden ja keine Variablen sondern lediglich ein Stück aus dem Speicher gelesen.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: 75%;"&gt;Der zu REAL passende Datentyp in deinem VBA ist übrigens Single,&lt;br/&gt;
wahrscheinlich must du die Bytereihenfolge dann in deinem Makro&lt;br/&gt;
noch ein wenig tauschen damit es passt.&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;Uwe&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Globale Variable über Modbus auslesen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e474c2d930/?limit=25#339a" rel="alternate"/><published>2020-02-28T15:02:53.672000Z</published><updated>2020-02-28T15:02:53.672000Z</updated><author><name>Jazz11</name><uri>https://forge.codesys.com/u/jazz11/</uri></author><id>https://forge.codesys.com31ee964cdc5ba1148478d5f63b0b64a2f9285e1d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Uwe,&lt;/p&gt;
&lt;p&gt;vielen Dank, das hat mir schon mal weitergeholfen, hab aber noch einige Anschlussfragen:&lt;/p&gt;
&lt;p&gt;erstmal ja es ist eine 841&lt;/p&gt;
&lt;p&gt;jetzt hab ich meine Variablen jeweils einem Merker zugewiesen d.h. das sieht jetzt so aus:  Var1 AT %MW0:REAL;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;                        &lt;span class="nt"&gt;Var2&lt;/span&gt; &lt;span class="nt"&gt;AT&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nt"&gt;MW2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;REAL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

                        &lt;span class="nt"&gt;Var3&lt;/span&gt; &lt;span class="nt"&gt;AT&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nt"&gt;MW4&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;REAL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  &lt;span class="nt"&gt;da&lt;/span&gt; &lt;span class="nt"&gt;eine&lt;/span&gt; &lt;span class="nt"&gt;REAL&lt;/span&gt; &lt;span class="nt"&gt;Variable&lt;/span&gt; &lt;span class="nt"&gt;jeweils&lt;/span&gt; &lt;span class="nt"&gt;4&lt;/span&gt; &lt;span class="nt"&gt;Byte&lt;/span&gt; &lt;span class="nt"&gt;belegt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;Bekomme&lt;/span&gt; &lt;span class="nt"&gt;ich&lt;/span&gt; &lt;span class="nt"&gt;beim&lt;/span&gt; &lt;span class="err"&gt;ü&lt;/span&gt;&lt;span class="nt"&gt;bersetzten&lt;/span&gt; &lt;span class="nt"&gt;automatisch&lt;/span&gt; &lt;span class="nt"&gt;eine&lt;/span&gt; &lt;span class="nt"&gt;Fehlermeldung&lt;/span&gt; &lt;span class="nt"&gt;falls&lt;/span&gt; &lt;span class="nt"&gt;MW&lt;/span&gt; &lt;span class="nt"&gt;0&lt;/span&gt; &lt;span class="nt"&gt;schon&lt;/span&gt; &lt;span class="nt"&gt;belegt&lt;/span&gt; &lt;span class="nt"&gt;w&lt;/span&gt;&lt;span class="err"&gt;ä&lt;/span&gt;&lt;span class="nt"&gt;re&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Wie bewerkstellige ich nun das Auslesen über Modbus?&lt;/p&gt;
&lt;p&gt;Bisher hab ich Temperaturen über Modbus ausgelesen, die an eine Eingangskarte gekoppelt waren d.h. das sieht in der Steuerungskonfiguration so aus:VAR AT%IW6:INT; Dann konnte ich in der Modbus read address einfach die 6 eingeben. Jetzt ist mein Wert ja über zwei Merkerworte verteilt, dann kann ich jetzt wohl nicht statt zuvor die 6 die Modbus Adresse 12288 für MW0 eingeben oder? Bzw. ich muss wohl MW0 und MW1 übertragen und danach irgendwie zusammenkoppeln??&lt;/p&gt;
&lt;p&gt;Und zum Schluss noch ne ganz andere Frage wenn ich nicht einzelne Variablen auslesen will sondern Arrays die so deklariert sind:&lt;/p&gt;
&lt;p&gt;Var:ARRAY &lt;span&gt;[1..20]&lt;/span&gt;OF REAL;  ist das möglich??&lt;/p&gt;
&lt;p&gt;Jazz&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Globale Variable über Modbus auslesen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e474c2d930/?limit=25#eb3a" rel="alternate"/><published>2020-02-28T15:02:45.720000Z</published><updated>2020-02-28T15:02:45.720000Z</updated><author><name>Uwe</name><uri>https://forge.codesys.com/u/uwe/</uri></author><id>https://forge.codesys.com5bfe12d57609db3ed48fa69e10c5544e3c61a6e2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Jazz,&lt;/p&gt;
&lt;p&gt;Standardfrage : Was für’n System ?&lt;/p&gt;
&lt;p&gt;Ich vermute Wago 841.&lt;/p&gt;
&lt;p&gt;Bei der Variablendeklaration kannst du festlegen wo die Variable angelegt wird.&lt;/p&gt;
&lt;p&gt;z.B.&lt;/p&gt;
&lt;p&gt;wVar  AT%MW0  :   WORD;&lt;/p&gt;
&lt;p&gt;legt deine Variable auf das Merkerwort 0.&lt;/p&gt;
&lt;p&gt;So kannst du deine Variablen auf bestimmte Merkerworte legen.&lt;/p&gt;
&lt;p&gt;Du musst natürlich selbst verwalten welche Adressen du schon belegt hast und welche nicht&lt;/p&gt;
&lt;p&gt;also z.B. musst du wissen das ein REAL 4 Byte belegt und mit der Deklaration&lt;/p&gt;
&lt;p&gt;rVar   AT%MW28   :    REAL;&lt;/p&gt;
&lt;p&gt;die Merkerworte 28 und 29 belegt sind.&lt;/p&gt;
&lt;p&gt;Weiterhin musst du dabei das Word / Doppelwort-Alignment beachten !!&lt;/p&gt;
&lt;p&gt;(kontrolliert der Compiler aber schon)&lt;/p&gt;
&lt;p&gt;Nachdem du nun deine Variablen auf die Merker verteilt hast,&lt;/p&gt;
&lt;p&gt;kannst du ab Adresse 12288 (3000h) mit Modbus auf die Merker zugreifen.&lt;/p&gt;
&lt;p&gt;Also 12288 -&amp;gt; %MW0 u.s.w.&lt;/p&gt;
&lt;p&gt;Beim 842 wäre nun noch eine Randbedingung zu beachten&lt;/p&gt;
&lt;p&gt;(daher die Frage am Anfang).&lt;/p&gt;
&lt;p&gt;Uwe&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Globale Variable über Modbus auslesen</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e474c2d930/?limit=25#fd82" rel="alternate"/><published>2020-02-28T15:02:42.890000Z</published><updated>2020-02-28T15:02:42.890000Z</updated><author><name>Jazz11</name><uri>https://forge.codesys.com/u/jazz11/</uri></author><id>https://forge.codesys.comffd5535e11ca4aa2904aa6363dab1cbac6b3ce20</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo!&lt;/p&gt;
&lt;p&gt;Habe folgendes Problem: Ich würde gern Globale Variable aus einem CoDeSys Programm über Modbus/TCP DLL (MBT.dll) nach EXCEL auslesen.&lt;/p&gt;
&lt;p&gt;Den Zugriff auf Messdaten, die über eine Eingangskarte an der Wago anliegen habe ich bereits hinbekommen. Aber wie kann ich auf globale Variablen zugreifen, die nicht direkt mit einer Karte in Verbindung stehen sondern nur im Programm existieren? Wenn ich das richtig verstanden habe geht das über Merker? aber wie greife ich auf die Merker zu? und wie krieg ich raus welcher Merker welche Modbus Adresse hat?&lt;/p&gt;
&lt;p&gt;Vile Fragen ich weis, vielleicht kann mir ja jemand helfen!&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>