<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to SP RTE Speicher reservieren ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/392c05b4c3/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/392c05b4c3/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/392c05b4c3/</id><updated>2020-02-28T06:27:56.730000Z</updated><subtitle>Recent posts to SP RTE Speicher reservieren ...</subtitle><entry><title>SP RTE Speicher reservieren ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/392c05b4c3/?limit=25&amp;page=2#0465" rel="alternate"/><published>2020-02-28T06:27:56.730000Z</published><updated>2020-02-28T06:27:56.730000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com1d5c801f998577f88371ac902c14d4948d7ba6eb</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; blackenslaver666&lt;/p&gt;
&lt;p&gt;My 2 cents:&lt;br/&gt;
1. Erik hat da vollkommen recht. Wie will man eine Adresse zum Kopieren berechnen wenn man den Datentyp der einzelnen Struct-Vars nicht kennt? Das hat dann zur Folge dass man immer mehrere Strukturen pflegen muss. Und wenn die mal auseinanderdriften...&lt;br/&gt;
2. Wenn man eine CSV erstellen will, sprich eine Datei mit menschen-lesbaren Daten, warum sollte man dann die Füll-Bytes einer Var eliminieren? Man kann eben nicht alles über Bytes erfassen.&lt;/p&gt;
&lt;p&gt;Wir nutzen eine komplexe Struct, die wir komplett byteweise speichern (unabhängig von den Datentypen der Vars). Wird die Steuerung über die USV gepuffert schreiben wir die Daten auf die Flash. Dazu wird nur die Startadresse &amp;amp; Größe der Struct an einen Binär-Writer übergeben. Beim Laden (SPS-Start) werden die Daten wieder in den entsprechenden Speicherbereich zurückkopiert. Das funktioniert gut solange ein Online-Change erlaubt ist. Ändert sich die Größe der Struktur wird diese automatisch gesichert. Nur wenn man die Struktur ändert, gleichzeitig aber kein OC erlaubt ist bekommt man Probleme. Denn nach dem Start stimmen Struct-Größe &amp;amp; Anzahl der zu lesenden Bytes nicht mehr überein &amp;amp; dann verschiebt sich der Inhalt um bestimmte Bytes. Mit einem ASCII-Writer funktioniert das ebenso gut, dauert nur viel länger.  &lt;/p&gt;
&lt;p&gt;Gruß Andy&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>SP RTE Speicher reservieren ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/392c05b4c3/?limit=25&amp;page=2#5ae4" rel="alternate"/><published>2020-02-28T06:27:54.542000Z</published><updated>2020-02-28T06:27:54.542000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.comc0e1748b7308884054379d11ca6f2115af91cbc7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Moin&lt;/p&gt;
&lt;p&gt;Vermutlich nimmt die Anteilnahme an dem Thread proportional mit der mangelnden Einsicht zur Notwendigkeit einer Lösung ab &lt;br/&gt;
Es ist übrigens wieder Zeit für Spring Session Snowboarding...&lt;/p&gt;
&lt;p&gt;Zum Thema. Ein ähnliches Problem habe ich mit dem Einlesen von gespeicherten Watchlisten.&lt;br/&gt;
Diese sind im Format:&lt;/p&gt;
&lt;p&gt;VarName=VarValue&lt;/p&gt;
&lt;p&gt;gespeichert.&lt;/p&gt;
&lt;p&gt;Aus der Liste kann natürlich kein Datentyp und auch keine Adresse gelesen werden.&lt;/p&gt;
&lt;p&gt;Deshalb gibts eine nicht schöne aber funktionierende Lösung.&lt;/p&gt;
&lt;p&gt;Ich mach mir 2 Array's die 1. den Datentyp und 2. den Variablennamen enthalten.&lt;/p&gt;
&lt;p&gt;Zugeordnet wird das ganze dann in 2 Schleifen.&lt;br/&gt;
Wie gesagt, nicht schön aber funktioniert. Und flexibler ist deine angedachte Lösung auch nicht, wenn ich das richtig verstanden habe.&lt;br/&gt;
Denn schlussendlich soll das ganze ja in eine CSV Datei, und daszu brauchts du ja wieder eine Zuordnung zum Variablennamen.&lt;/p&gt;
&lt;p&gt;Gruß Erik&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="https://forum-de.codesys.com//download/file.php?id=724" rel="nofollow"&gt;LOADWATCHLIST.EXP &lt;span&gt;&lt;span&gt;[6.41 KiB]&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>SP RTE Speicher reservieren ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/392c05b4c3/?limit=25&amp;page=1#94a6" rel="alternate"/><published>2020-02-28T06:27:48.486000Z</published><updated>2020-02-28T06:27:48.486000Z</updated><author><name>mactoolz</name><uri>https://forge.codesys.com/u/mactoolz/</uri></author><id>https://forge.codesys.com78fface0eb89242f70c8cdf688c623a247ef2519</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Halloooooooo,&lt;/p&gt;
&lt;p&gt;Statement dazu ....&lt;/p&gt;
&lt;p&gt;MacToolz&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>SP RTE Speicher reservieren ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/392c05b4c3/?limit=25&amp;page=1#3d65" rel="alternate"/><published>2020-02-28T06:27:46.305000Z</published><updated>2020-02-28T06:27:46.305000Z</updated><author><name>mactoolz</name><uri>https://forge.codesys.com/u/mactoolz/</uri></author><id>https://forge.codesys.com58f5b0a47ed6d060d7736bb295c113764282c501</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo zusammen,&lt;/p&gt;
&lt;p&gt;also ich habe mir das mit den FüllBytes nochmal ganz stark durch den Kopf gehen lassen.&lt;br/&gt;
Also FüllBytes kommen wir leider nicht drum rum.&lt;br/&gt;
Ist alles so wie es meine Vorschreiber schon stark erwähnt haben.&lt;/p&gt;
&lt;p&gt;Nicht desto trotz möchte ich nicht immer wieder irgend welche Strukturen oder sonstiges FBs oder was auch immer&lt;br/&gt;
voll an eine Funktion oder was auch immer übergeben.&lt;/p&gt;
&lt;p&gt;Wenn ich jetzt meinen Thread hier noch so recht im Kopf habe, könnte man folgendes tun.&lt;br/&gt;
Ich wollte mit Adressen arbeiten und entsprechend über eine Struktur die Adresse einer Variabel schreiben oder lesen etc.&lt;/p&gt;
&lt;p&gt;Also zu meiner Idee und auch schon voll in der Umsetzung.&lt;/p&gt;
&lt;p&gt;Ich versuche es mal in Worte zu fassen. Wird nicht einfach werden.&lt;/p&gt;
&lt;p&gt;Da man ja in der Regel weiß wie Groß seine Daten sind, sollte man sich eine Struktur anlegen die genau&lt;br/&gt;
so groß dem Bereich sein sollte worin man z.B. Daten schreiben oder lesen und entsprechend umkopieren möchte.&lt;/p&gt;
&lt;p&gt;Gehen wir einfach mal davon aus man hat einen Datenbereich z.B. von 100 Bytes.&lt;br/&gt;
Was auch immer darin steht ist ja erstmal egal.&lt;/p&gt;
&lt;p&gt;Jetzt geht es um das befüllen der Bytes.&lt;/p&gt;
&lt;p&gt;Man legt eine Struktur an die genauso groß ist. Es braucht ja natürlich nicht vom Typ Byte 100 Bytes sein sondern&lt;br/&gt;
alle möglichen Variabeltypen die wir haben.&lt;/p&gt;
&lt;p&gt;Jetzt nimmt man seine Struktur irgendwo eine Variabel heraus, z.B. ein Real Wert.&lt;br/&gt;
der steht jetzt von den 100 ab dem 8Byte.&lt;/p&gt;
&lt;p&gt;Man nimmt sich also die Adresse von dem 8Byte und kopiert die mit&lt;br/&gt;
der Adresse von der Sturkturvariabel auf die Zieladresse vom 8Byte mit dem SizeOf der SturkturVariabel.&lt;/p&gt;
&lt;p&gt;Der einzige Nachteil darin ist das man im zusammen rechnen seiner Struktur sich nicht vertun darf,&lt;br/&gt;
da sonst die Startadresse nachher irgendwas verschoben quasi kopiert.&lt;/p&gt;
&lt;p&gt;Kann mir da jemand folgen.&lt;/p&gt;
&lt;p&gt;MacToolz&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>SP RTE Speicher reservieren ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/392c05b4c3/?limit=25&amp;page=1#c10b" rel="alternate"/><published>2020-02-28T06:27:40.249000Z</published><updated>2020-02-28T06:27:40.249000Z</updated><author><name>KlOis</name><uri>https://forge.codesys.com/u/klois/</uri></author><id>https://forge.codesys.com99cfb39cddaccc1770deb5c1ca06ed695a081bf4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;mactoolz hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
Wenn Interesse an meiner Idee besteht mal bescheid sagen&lt;br/&gt;
MacToolz&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Klar, ein Happy End wär doch mal super &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>SP RTE Speicher reservieren ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/392c05b4c3/?limit=25&amp;page=1#84c5" rel="alternate"/><published>2020-02-28T06:27:38.060000Z</published><updated>2020-02-28T06:27:38.060000Z</updated><author><name>mactoolz</name><uri>https://forge.codesys.com/u/mactoolz/</uri></author><id>https://forge.codesys.comdd2693caf539c5110ab727cd0de2bf518297a4a8</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo zusammen,&lt;/p&gt;
&lt;p&gt;ich hab eine Idee, habe aber jetzt keine Zeit und werde mal die Tage&lt;br/&gt;
das Problem mit den Füllbytes klären.&lt;/p&gt;
&lt;p&gt;Ich stelle das dann mal Online.&lt;/p&gt;
&lt;p&gt;Bis später mal ...&lt;/p&gt;
&lt;p&gt;Wenn Interesse an meiner Idee besteht mal bescheid sagen&lt;/p&gt;
&lt;p&gt;MacToolz&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>SP RTE Speicher reservieren ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/392c05b4c3/?limit=25&amp;page=1#287e" rel="alternate"/><published>2020-02-28T06:27:31.974000Z</published><updated>2020-02-28T06:27:31.974000Z</updated><author><name>mactoolz</name><uri>https://forge.codesys.com/u/mactoolz/</uri></author><id>https://forge.codesys.com6d16051315da188323774e964ab153236669c666</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo zusammen,&lt;/p&gt;
&lt;p&gt;ich gebe es auf. &lt;br/&gt;
Sehr viele meiner Bausteine basieren darauf Speicher zu allokieren von daher weiß ich doch das es funktioniert hat.&lt;br/&gt;
Ob man diese Vorgehensweise braucht oder nicht ist erstmal nicht das Thema&lt;/p&gt;
&lt;p&gt;Also, euch einen schönen Tag noch.&lt;/p&gt;
&lt;p&gt;Bis dann, man liest sich ...&lt;/p&gt;
&lt;p&gt;Änderung:&lt;br/&gt;
Ich muss nochmal schauen in welcher CoDeSys Version die Allokation ging.&lt;/p&gt;
&lt;p&gt;MacToolz&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>SP RTE Speicher reservieren ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/392c05b4c3/?limit=25&amp;page=1#af0f" rel="alternate"/><published>2020-02-28T06:27:29.737000Z</published><updated>2020-02-28T06:27:29.737000Z</updated><author><name>KlOis</name><uri>https://forge.codesys.com/u/klois/</uri></author><id>https://forge.codesys.comc0de1b084d84b617e77a21c923e7541fc22a908d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Erik Böhm hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
Moin&lt;br/&gt;
Jetzt drehen wir uns aber langam im Kreis...&lt;br/&gt;
1. Das die SysMemLib auf der RTE nicht funktioniert hatten wir ja ganz am Anfang des Threads bereits.&lt;br/&gt;
Gruß Erik&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Da hast du recht, sorry.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>SP RTE Speicher reservieren ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/392c05b4c3/?limit=25&amp;page=1#28f6" rel="alternate"/><published>2020-02-28T06:27:23.555000Z</published><updated>2020-02-28T06:27:23.555000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.comb80a1f9365df2fa14a4593a024dc5996efaa3099</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Moin&lt;br/&gt;
Jetzt drehen wir uns aber langam im Kreis...&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Das die SysMemLib auf der RTE nicht funktioniert hatten wir ja ganz am Anfang des Threads bereits.&lt;br/&gt;
Warum das so ist und ob die Doku dazu korrekt ist sollte bei 3S nachgefragt werden.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Bin ich immer noch der Meinung, dass die Allokierung in einem SPS Programm sowieso keiner braucht.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Gibts das Problem (oder besser diese Lösung des Problems) des WordAlignment und der Füllbytes auch auf jedem anderen System, das mehr als 8 Bit Datenbreite hat.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Gruß Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>SP RTE Speicher reservieren ...</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/392c05b4c3/?limit=25&amp;page=1#766f" rel="alternate"/><published>2020-02-28T06:27:21.333000Z</published><updated>2020-02-28T06:27:21.333000Z</updated><author><name>KlOis</name><uri>https://forge.codesys.com/u/klois/</uri></author><id>https://forge.codesys.come68a53e48097ce8c36ec6d25a1781fdd17025736</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ich wollte nur nochmal auf die kontroversen Hinweise deuten.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
wie werden denn in anderen Programmiersprachen&lt;br/&gt;
für ganze Objekte Speicher reserviert&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In Objektorientierten Sprachen geschieht dies entweder durch Konstruktoren oder auch durch Allokierungsbefehle.&lt;/p&gt;
&lt;p&gt;Gruß&lt;br/&gt;
KlOis&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>