<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Excel und CoDeSys über DDE - Bug?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1468d5d843/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1468d5d843/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/1468d5d843/</id><updated>2020-02-28T17:15:45.597000Z</updated><subtitle>Recent posts to Excel und CoDeSys über DDE - Bug?</subtitle><entry><title>Excel und CoDeSys über DDE - Bug?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1468d5d843/?limit=25#2208" rel="alternate"/><published>2020-02-28T17:15:45.597000Z</published><updated>2020-02-28T17:15:45.597000Z</updated><author><name>doenercola</name><uri>https://forge.codesys.com/u/doenercola/</uri></author><id>https://forge.codesys.com3af24a0e66c6f5c440d7dbe281c5f6125d5e67f5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo zusammen!&lt;/p&gt;
&lt;p&gt;Ich hab ein Problem mit CoDeSys und Excel. Es handelt sich hierbei um WAGO CoDeSys 2.3 und Excel 2007.&lt;/p&gt;
&lt;p&gt;Excel soll aus CoDeSys Werte von Variablen lesen. Gekoppelt sind sie mittels einer DDE-Verbindung – das funktioniert auch schon teilweise.&lt;br/&gt;
Genauer gesagt handelt es sich um eine JobListe mit 120 Jobs. Ein Job ist ein Struct aus verschiedenen Variablen.&lt;/p&gt;
&lt;p&gt;Jetzt habe ich eine Excel-Tabelle angelegt, in der ich für jeden Job und seine Variablen ein paar Zeilen spendiert hab.&lt;br/&gt;
Die Formel zum auslesen steht direkt in jeder Zeile.&lt;br/&gt;
Beispiel:&lt;br/&gt;
=CoDeSys|'C:\test\CoDeSys\Modbus_Register_Access_FINAL.pro'!'PLC_PRG.JobList&lt;span&gt;[3]&lt;/span&gt;.ASCII_MODE'&lt;br/&gt;
Hier wird auf das dritte Element der JobListe zugegriffen und die Variable "ASCII_MODE" ausgelesen - das funktioniert tadellos jedes Mal.&lt;/p&gt;
&lt;p&gt;Wenn wir allerdings die weiteren Jobs auslesen wollen, funktionieren manche, manche jedoch nicht. Excel zeigt in diesen Feldern "#NV" an.&lt;br/&gt;
Job 1 bis 4 wird ausgelesen, 5 bis 9 nicht, 10 bis 43 geht, 44 bis 99 nicht, der Rest geht.&lt;br/&gt;
Dieses Muster tritt immer auf.&lt;/p&gt;
&lt;p&gt;Was ich schon probiert habe:&lt;/p&gt;
&lt;p&gt;Fehler in Excel? --&amp;gt; Indize ausgetauscht in den "fehlerhaften" Zellen (z.B. Job 5 durch Job 3) - Job 3 wird dann korrekt eingelesen.&lt;br/&gt;
Fehler in JobListe? --&amp;gt; Komplette JobListe mit Werten von einem korrekt eingelesenen Job befüllt - geht trotzdem nicht.&lt;br/&gt;
Mit DDESpy die Verbindung abgehört: Die Anfragen gehen von Excel korrekt raus, bei den "korrekten" Jobs antwortet CoDeSys mit Daten, bei den fehlerhaften nur mit einem ACK.&lt;/p&gt;
&lt;p&gt;Ich erstelle in CoDeSys eine Symboldatei, lasse CoDeSys allerdings im Simulationsmodus laufen (lass nur kurz ohne Sim. laufen, damit die Datei erstellt wird).&lt;br/&gt;
Auch den extra DDE-Server lasse ich nicht laufen - es funktioniert ja trotzdem bei manchen Jobs.&lt;/p&gt;
&lt;p&gt;Woran kann es liegen, dass die immergleichen Jobs - egal wie die Jobs aussehen - nicht eingelesen werden?&lt;/p&gt;
&lt;p&gt;Liebe Grüße&lt;/p&gt;
&lt;p&gt;Doenercola&lt;/p&gt;
&lt;p&gt;Edit: Ich habs auch mal auf der realen Steuerung versucht - die Daten in den korrekten Jobs werden eingelesen, leider kommt bei den anderen Jobs der selbe Fehler.&lt;/p&gt;
&lt;p&gt;E2: Habs jetzt provisorisch mit einem Workaround gelöst - die fehlerhaften Jobs ausgelassen, indem der Arrayindex z.B. bei 4 auf 10 gesetzt wurde&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>