<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Daten von Excel nach CoDeSys via DDE</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/00c9ed7415/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/00c9ed7415/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/00c9ed7415/</id><updated>2020-02-28T11:18:05.573000Z</updated><subtitle>Recent posts to Daten von Excel nach CoDeSys via DDE</subtitle><entry><title>Daten von Excel nach CoDeSys via DDE</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/00c9ed7415/?limit=25#053c" rel="alternate"/><published>2020-02-28T11:18:05.573000Z</published><updated>2020-02-28T11:18:05.573000Z</updated><author><name>JoWe</name><uri>https://forge.codesys.com/u/jowe/</uri></author><id>https://forge.codesys.com5edf31c5ec243b9d9c9b67fee93e77364eb3f15a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo,&lt;/p&gt;
&lt;p&gt;ich hab grade Daten von Excel nach CoDeSys über DDE übertragen, und da es keine gescheite Anleitung dazu gibt (&lt;em&gt;wink&lt;/em&gt;), hier ein Codeschnipselchen:&lt;/p&gt;
&lt;p&gt;Daten lesen ist ganz einfach. In eine Zelle muss rein:&lt;/p&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="n"&gt;CoDeSys&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="s1"&gt;'C:\HOME\MYFIRSTSTEPS.PRO'&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;Machine&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;X_pos&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Wichtig ist, daß der Pfad richtig geschrieben ist, sonst kommt eine Fehlermeldung, daß CODESYS.EXE nicht gestartet werden kann.&lt;/p&gt;
&lt;p&gt;Trickreicher ist das Schreiben von Daten nach CoDeSys. Hier ein VBA-Makro, das das erledigt:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;Channel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Application&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DDEInitiate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;"CODESYS"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;"C:\HOME\MYFIRSTSTEPS.PRO"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;Application&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DDEPoke&lt;/span&gt; &lt;span class="n"&gt;Channel&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;"Machine.Counter"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Sheets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;"Blad1"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;Range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;"F8"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;Application&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DDETerminate&lt;/span&gt; &lt;span class="n"&gt;Channel&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Hier ist unbedingt zu beachten, daß DDEPoke als Wert keine Variablen nimmt, sondern nur mit Ranges (also Zellbezügen) arbeitet. Das ist doof, geht aber nicht anders. Ausserdem werden Daten, die geschrieben werden, nicht wieder über DDE zurückübertragen, das ist auch nicht optimal.&lt;/p&gt;
&lt;p&gt;Gruß&lt;/p&gt;
&lt;p&gt;Jochen&lt;/p&gt;
&lt;p&gt;&lt;img alt="IMG: Bild" rel="nofollow" src="http://www.wendebaum.de/avatar88.jpg"/&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>