<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to HILFE! wie funktioniert die Speicher aufteilung???</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e067b2ea2f/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e067b2ea2f/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/e067b2ea2f/</id><updated>2020-02-28T12:36:18.904000Z</updated><subtitle>Recent posts to HILFE! wie funktioniert die Speicher aufteilung???</subtitle><entry><title>HILFE! wie funktioniert die Speicher aufteilung???</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e067b2ea2f/?limit=25#72ba" rel="alternate"/><published>2020-02-28T12:36:18.904000Z</published><updated>2020-02-28T12:36:18.904000Z</updated><author><name>bolle</name><uri>https://forge.codesys.com/u/bolle/</uri></author><id>https://forge.codesys.comf26f1dd89e047f5cc1dd1d9e64406d857035149a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;na eh klar,ich war ja auch ziemlich nervig aber muss halt naechsten di die loesung fuer des ganze prob erläutern und wenn ich da mit leeren haenden da gestanden waer ,haette es keinen guten eindruck gemacht.Aber wie gesagt DANKE&lt;/p&gt;
&lt;p&gt;warst eh sehr geduldig&lt;/p&gt;
&lt;p&gt;denk schon das ichs verstanden hab&lt;/p&gt;
&lt;p&gt;mein denkfehler ,vermut ich, lag darin das ich gemeint haette man kann externe signal nur auf globale variablen legen deswegen gibts da auch so viele bei mir ,aber des is ja net zwingend&lt;/p&gt;
&lt;p&gt;(hoff echt das ich  mich jetzt net bis auf die knochen blamier weil ichs doch net gecheckt hab   )&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>HILFE! wie funktioniert die Speicher aufteilung???</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e067b2ea2f/?limit=25#689b" rel="alternate"/><published>2020-02-28T12:36:11.637000Z</published><updated>2020-02-28T12:36:11.637000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.come44e97bb778e63ddffa9b94a57554369da016c91</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Na also. Geht doch. &lt;/p&gt;
&lt;p&gt;Hast du's auch wirklich verstanden, oder nur aufgegeben weil ich so 'pampig' geworden bin ? War nicht bös gemeint, aber das musste einfach mal gesagt sein.&lt;/p&gt;
&lt;p&gt;Gruss&lt;/p&gt;
&lt;p&gt;Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>HILFE! wie funktioniert die Speicher aufteilung???</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e067b2ea2f/?limit=25#38d3" rel="alternate"/><published>2020-02-28T12:36:08.814000Z</published><updated>2020-02-28T12:36:08.814000Z</updated><author><name>bolle</name><uri>https://forge.codesys.com/u/bolle/</uri></author><id>https://forge.codesys.comf16d6229de8806e0f489ed465b518d1f0872ca6a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;passt jetzt hab ichs auch verstanden=)&lt;/p&gt;
&lt;p&gt;da ich kein echter Programmierer bin sondern noch studierender Mechatroniker darf ich FUP benutzen  &lt;/p&gt;
&lt;p&gt;Jedem das seine und mir FUP, find des einfach uebersichtlicher aber im grunde genommen bleibts sich gleich.man kann ja eh alles mit allem kombinieren.&lt;/p&gt;
&lt;p&gt;Viele wegen fuehren nach Rom!&lt;/p&gt;
&lt;p&gt;en programmierkurs kanns net ersetzen aber da von der loesung dieses problems die Zukunft meines ganzen Praxisemesters abhing und diese schon halb um ist war ich diesml a bissl hartnäckiger&lt;/p&gt;
&lt;p&gt;aber DICKES DANKE an alle die mir dabei geholfen     &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>HILFE! wie funktioniert die Speicher aufteilung???</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e067b2ea2f/?limit=25#7dfd" rel="alternate"/><published>2020-02-28T12:36:01.552000Z</published><updated>2020-02-28T12:36:01.552000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.comf8a9f6c20adf71b6d3cd377f56db8bc39278166f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Also der 750-842 ist nicht unbedingt am oberen Ende der Performance, was SPS'en angeht. Eher am unteren. Eine SPS auf momentanem Stand der Technik hat normalerweise einen 32 Bit Prozessor und mehrere MB RAM und FLASH-Speicher.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Globale Variablen belegen Speicher, und zwar dauernd, rund um die Uhr. Lokale Variabeln (in Funktionen) belegen den Speicher nur zur Laufzeit, also nur solange die Funktion aktiv ist. Deshalb: alles was nicht Global sein MUSS als lokale Variable definieren.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ich kann kein FUP (will ich auch gar nicht können...).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ohne jemanden beleidigen zu wollen: Diese Lego-Kästchen programmierung ist schon vor 10 Jahren veraltet gewesen.&lt;/p&gt;
&lt;p&gt;Echte Programmierer schreiben ihren Code noch mit Tinte &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Wenn man das ganze 'Objektorientiert' betrachtet, ist das Objekt der Lüfter, mit diversen spezifischen Eigenschaften. Diese Eigenschaften werden in einer Funktion abgebildet, die mit entsprechendem Input versorgt werden muss und dann dementsprechenden Output erzeugt.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Falls dieser Output das weitere Verhalten des Objekts beeinflussen soll, muss du dir das in einer globalen Variable merken.&lt;/p&gt;
&lt;p&gt;Das Forum ist ja ne feine Sache, aber es ist eigentlich nicht als Ersatz für einen Programmierkurs tauglich &lt;/p&gt;
&lt;p&gt;Trotzdem: Bei Fragen -&amp;gt; fragen.&lt;/p&gt;
&lt;p&gt;Gruss Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>HILFE! wie funktioniert die Speicher aufteilung???</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e067b2ea2f/?limit=25#490b" rel="alternate"/><published>2020-02-28T12:35:58.641000Z</published><updated>2020-02-28T12:35:58.641000Z</updated><author><name>bolle</name><uri>https://forge.codesys.com/u/bolle/</uri></author><id>https://forge.codesys.comd9ebe856a527134d3baad504589111b240748c65</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;hi&lt;/p&gt;
&lt;p&gt;macht des etwas nen unterschied ob global oder nicht???oder was meinst mit"Variablen können auch übergeben werden."&lt;/p&gt;
&lt;p&gt;die sache is die:&lt;/p&gt;
&lt;p&gt;mein prog dient zur steuerung von jet lueftern , d.h. so ca 50 stueck sollen damit angesteuert werden.Um strom spitzen beim anschalten zu vermeiden muessen sie allerdings alle zu verschiedenen zeiten angeschaltet werden ergo sie muessen alle einzeln ansteuerbar sein deswegen die hohe anzahl an globalen variablen.Ausserdem kann es vorkommen das die leufter nochmal interne sensoren haben die auch alle einzeln ausgewertet sollen,zusätzliche dazu kommt noch das es verschiedene typen an leuftern sind die teilweise verschiedene einschalt- und trudelzeiten haben.&lt;/p&gt;
&lt;p&gt;daher kommt die hohe anzahl an globalen variablen&lt;/p&gt;
&lt;p&gt;(sorry das ich die ganze zeit mit gegenfragen komm aber ich bin noch ziemlich gruen hinter den ohren;)    )&lt;/p&gt;
&lt;p&gt;und moecht mich jetzt schon mal fuer deinen rat bedanken&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>HILFE! wie funktioniert die Speicher aufteilung???</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e067b2ea2f/?limit=25#1f7f" rel="alternate"/><published>2020-02-28T12:35:50.956000Z</published><updated>2020-02-28T12:35:50.956000Z</updated><author><name>Oberchefe</name><uri>https://forge.codesys.com/u/oberchefe/</uri></author><id>https://forge.codesys.com7b14ff6e25409e662d94047e3a5dfa1a8796d77c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;der 750-842 hat 128 kByte Programmspeicher und 64 kByte Datenspeicher sowie 8 kByte Remanentspeicher, da hättest Du besser den 750-841 genommen, der hat 512 kByte Programmspeicher und 128 kByte Datenspeicher sowie 24 kByte Remanentspeicher. Abgesehen davon hat er einen 32 Bit Prozessor (statt des 16 Bit Prozessors im 750-842).&lt;/p&gt;
&lt;p&gt;Ich würde mir allerdings Gedanken machen ob die Globalen Variablen wirklich alle global sein müssen, Variablen können auch übergeben werden.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>HILFE! wie funktioniert die Speicher aufteilung???</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e067b2ea2f/?limit=25#ffec" rel="alternate"/><published>2020-02-28T12:35:48.246000Z</published><updated>2020-02-28T12:35:48.246000Z</updated><author><name>bolle</name><uri>https://forge.codesys.com/u/bolle/</uri></author><id>https://forge.codesys.com2a3cbed594cb67574078cdb16da0f50d318c056e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;hi erik&lt;/p&gt;
&lt;p&gt;danke fuer die antwort&lt;/p&gt;
&lt;p&gt;aber die verwirrung is jetzt wirklich perfekt=)&lt;/p&gt;
&lt;p&gt;kann dir nich ganz folgen&lt;/p&gt;
&lt;p&gt;was Timer sind weiss ich ,aber was meinst mit"alle Variablen (z.B. Timer) extern deklarieren und beim Aufruf an die Funktion übergeben und nach Ausführung wieder übernehmen."???koenntest des anhand von nem FUP bsp deutlich machen&lt;/p&gt;
&lt;p&gt;kann man in meinem fall IN_OUT_Variablen ueberhaupt nutzen???&lt;/p&gt;
&lt;p&gt;des sind doch Var die von den instanzen"durchgereicht" werden und jede bearbeiet sie dann und gibt sie dann wieder weiter.&lt;/p&gt;
&lt;p&gt;haett gmeint sowas is nur nuetzlich fuer zahlenwerte die verarbeitet werden muessen,bei boolschen variablen bringt des doch nix oder????&lt;/p&gt;
&lt;p&gt;mal ganz was anderes&lt;/p&gt;
&lt;p&gt;bin irgendwie entäuscht von dem controller wago 750-842 haette wirklich gemeint da kann man mehr mit anfangen.haette gedacht das er in sachen speicher eher zur oberen schicht gehoert oder gibts da welche mit noch mehr???&lt;/p&gt;
&lt;p&gt;liegt des an meiner fehlenden programmiererfahrung ergo nich sehr effektiven programm oder is sowas eher fuer kleiner progs gedacht ?&lt;/p&gt;
&lt;p&gt;ich mein normalerweise werden doch damit noch viel komplexerer aufgaben geloest,versteh die welt nich mehr =(&lt;/p&gt;
&lt;p&gt;Bolle&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>HILFE! wie funktioniert die Speicher aufteilung???</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e067b2ea2f/?limit=25#cb1e" rel="alternate"/><published>2020-02-28T12:35:40.979000Z</published><updated>2020-02-28T12:35:40.979000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com172ca2731441d7ceec784effc1554768692e8891</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Mahlzeit&lt;/p&gt;
&lt;p&gt;Eine FB Instanzierung würde so aussehen:&lt;/p&gt;
&lt;p&gt;Luefter: array&lt;span&gt;[1..100]&lt;/span&gt; of FB_Luefter;&lt;/p&gt;
&lt;p&gt;Der Aufruf sieht dann (in ST) so aus:&lt;/p&gt;
&lt;p&gt;Luefter&lt;a href="../"&gt;1&lt;/a&gt;;&lt;/p&gt;
&lt;p&gt;Luefter&lt;a href="../"&gt;2&lt;/a&gt;;&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;Luefter&lt;a href="../"&gt;100&lt;/a&gt;;&lt;/p&gt;
&lt;p&gt;Das geht auch in einer Schleife&lt;/p&gt;
&lt;p&gt;FOR i:=1 TO 100 DO&lt;/p&gt;
&lt;p&gt;Luefter&lt;a href="../"&gt;i&lt;/a&gt;;&lt;/p&gt;
&lt;p&gt;end_for&lt;/p&gt;
&lt;p&gt;Das wird am Speicherverbrauch aber wiederum kaum etwas ändern, weil für jede Instanz ein eigener Speicherbereich reserviert wird. Das muss auch so sein, weil ansonsten nach jedem Aufruf die internen Variablen verloren wären.&lt;/p&gt;
&lt;p&gt;Um Speicher zu sparen gibts nur die möglichkeit eine FUNCTION zu benutzen. Die belegt nur während der Ausführung Speicher, behält aber natürlich keine Variablenzustände.&lt;/p&gt;
&lt;p&gt;Du musst also alle Variablen (z.B. Timer) extern deklarieren und beim Aufruf an die Funktion übergeben und nach Ausführung wieder übernehmen. Da drängen sich dann IN_OUTPUT Variablen auf.&lt;/p&gt;
&lt;p&gt;Deklariert als VAR_IN_OUT. Die werden an die Funktion als Referenz (Pointer) übergeben.&lt;/p&gt;
&lt;p&gt;Ich denke deine Verwirrung ist damit perfekt, aber das ist meiner Meinung nach die einzige Lösung.&lt;/p&gt;
&lt;p&gt;Gruss Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>HILFE! wie funktioniert die Speicher aufteilung???</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e067b2ea2f/?limit=25#cbd3" rel="alternate"/><published>2020-02-28T12:35:38.432000Z</published><updated>2020-02-28T12:35:38.432000Z</updated><author><name>bolle</name><uri>https://forge.codesys.com/u/bolle/</uri></author><id>https://forge.codesys.com45968f89153db012b9c72e25a61db0e0d9cf6ec1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;hallo an alle&lt;/p&gt;
&lt;p&gt;ich hab jetzt fast alle vorgeschlagenen aenderungen vorgenommen(timer bausteine direkt instanzieren ,lueftereinheit progs in FBs umwandeln,bei der )hat mir aber leider kaum speicher vorteile gebracht.speicher verbrauch hat sich von 3084 bytes auf 3102 bytes pro luefter FB verändert,war also net wirklich ne ersparnis.&lt;/p&gt;
&lt;p&gt;zur zykluszeit:kann ich die zykluszeit nur mit einer schleife aendern &lt;/p&gt;
&lt;p&gt;zB.:&lt;/p&gt;
&lt;p&gt;IF Zykluszaehler MOD 10 = 0 THEN (&lt;em&gt; TRUE jede volle Sekunde (Zyklus 100ms) &lt;/em&gt;) &lt;/p&gt;
&lt;p&gt;oder geht des auch anders???&lt;/p&gt;
&lt;p&gt;bei der idee mit den arrays blick ich noch net ganz durch,hab noch nie  mit arrays gearbeitet!&lt;/p&gt;
&lt;p&gt;so wie ich des verstanden hab soll ich also den einzelnen FB luefter mehrmals instanzieren,also ihm praktisch eingangswerte zuweisen ,den FB abarbeiten lassen und danach neue eingangswerte zuweisen und wieder abarbeiten lassen oder???&lt;/p&gt;
&lt;p&gt;aber die fbs haben interne zeiten ,geht das dann trotzdem.ich haette gesagt das diese instanzierung nur mit zeitunabhaengigen FBs &lt;/p&gt;
&lt;p&gt;funktioniert oder??&lt;/p&gt;
&lt;p&gt;hab mein prjekt mal angehaengt falls jemand mal reinschauen will &lt;em&gt;hoff&lt;/em&gt;=)&lt;/p&gt;
&lt;p&gt;danke im vorraus an alle &lt;/p&gt;
&lt;p&gt;&lt;a class="" href="https://forum-de.codesys.com//download/file.php?id=189" rel="nofollow"&gt;Tiefgaragensteuerung_alpha_2forum.pro &lt;span&gt;&lt;span&gt;[58.88 KiB]&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>HILFE! wie funktioniert die Speicher aufteilung???</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/e067b2ea2f/?limit=25#9f4b" rel="alternate"/><published>2020-02-28T12:35:31.091000Z</published><updated>2020-02-28T12:35:31.091000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.comc8a4e1976e31410ee446498d5f538a773ae084dc</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Also 1. sind z.B. 2GB mit einem 16Bit Controller nur sehr schwer zu addressieren und der Controller wird dann auch 'ein wenig' teurer...&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Lies doch mal das Handbuch zum Thema "Instanzen von Funktionsblöcken". Da ist das detailiert beschrieben.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ein Array ist eine Aneinanderreihung von Objekten. Das können auch Funktionsblöcke oder Strukturen sein.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Gruss&lt;/p&gt;
&lt;p&gt;Erik&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>