<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to ST: Wie Arrays von Funktionsblock an Funktion übergeben?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/104200a628/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/104200a628/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/104200a628/</id><updated>2020-02-28T08:14:52.062000Z</updated><subtitle>Recent posts to ST: Wie Arrays von Funktionsblock an Funktion übergeben?</subtitle><entry><title>ST: Wie Arrays von Funktionsblock an Funktion übergeben?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/104200a628/?limit=25#e529" rel="alternate"/><published>2020-02-28T08:14:52.062000Z</published><updated>2020-02-28T08:14:52.062000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.comf593edeeaddb564a9cd81209d31f68e513135164</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; TH&lt;/p&gt;
&lt;p&gt;Nochmal vielen Dank für die vielen Antworten.&lt;/p&gt;
&lt;p&gt;@Rainer&lt;/p&gt;
&lt;p&gt;Die Variante "globales Array" scheidet aus, da ich verschiedene Funktionsblöcke mit solchen Arrays habe, die pro Funktionsblock unterschiedliche Daten enthalten und unterschiedliche Größen haben. Die Funktion(en) soll(en) mit dem Datenstrom in den Arrays arbeiten.&lt;/p&gt;
&lt;p&gt;@alle&lt;/p&gt;
&lt;p&gt;Mit Pointern konnte ich das Problem gut lösen. Es ist dann eben keine IEC 61131-3 Portierung geworden, sondern eine CoDeSys-Portierung, weil ich POINTER, ADR und SIZEOF verwendet habe. Eine andere Lösung konnte ich nicht finden, und laut Bernhard scheint es ja auch keine zu geben. Alternativ bräuchte ich wohl so was wie eine "Referenz" auf das Array oder so eine Art "gleitendes Sub-Array, das über das große Array verschiebbar ist, oder so eine Art "Basisklasse" zu den Funktionsblöcken.&lt;/p&gt;
&lt;p&gt;Es geht konkret um eine ST Portierung der fuzzyTECH Runtime Library. fuzzyTECH wird die Fuzzy-System-spezifischen Daten plus i/o-interface als einen instanzierbaren Funktionsblock erzeugen. Die eigentliche Fuzzy-Berechnung wird dann in einer Funktion durchgeführt werden, die für alle erstellbaren Fuzzy-Systeme gleich ist und durch das jeweilige Instanz-Daten-Array geeignet gesteuert wird.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ST: Wie Arrays von Funktionsblock an Funktion übergeben?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/104200a628/?limit=25#519f" rel="alternate"/><published>2020-02-28T08:14:45.397000Z</published><updated>2020-02-28T08:14:45.397000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com8ae3f3160c54f95688f75137cf2803052c9b1a29</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; Bernhard Werner&lt;/p&gt;
&lt;p&gt;Hallo allerseits,&lt;/p&gt;
&lt;p&gt;zur Klarstellung: Pointer sind in der Norm nicht vorgesehen, das ist eine "3S-Erfindung". Es dürfte aber jedem klar sein, dass der beschriebene Fall ohne Pointer nicht sinnvoll zu lösen ist. Deswegen haben wir ja auch Pointer eingeführt.&lt;/p&gt;
&lt;p&gt;Ich würde niemandem raten, in seinem Projekt nur "reine" IEC zu verwenden. Aber es ist gut, wenn man weiss, an welchen Stellen man die Norm verlässt. Sinnvoll kann es sein, systemspezifische Teile in eigene Bausteine zu stecken, und vielleicht in einer Bibliothek zu kapseln.&lt;/p&gt;
&lt;p&gt;Im vorliegenden Fall hiesse das: die Funktion, die den Array bekommt auszugliedern, die Funktionsblöcke die die Arrays beinhalten aber in portierbarem ST zu schreiben. &lt;/p&gt;
&lt;p&gt;Wenn man portieren muss, muss man dann nur abgegrenzte Teile des Projekts anfassen. &lt;/p&gt;
&lt;p&gt;Das einfachste ist aber, man wechselt nur zu anderen CoDeSys-programmierbaren Geräten.  &lt;/p&gt;
&lt;p&gt;Bernhard&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ST: Wie Arrays von Funktionsblock an Funktion übergeben?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/104200a628/?limit=25#f1f8" rel="alternate"/><published>2020-02-28T08:14:43.105000Z</published><updated>2020-02-28T08:14:43.105000Z</updated><author><name>Rainer</name><uri>https://forge.codesys.com/u/rainer/</uri></author><id>https://forge.codesys.com503c2a6b2a3d7ba23f9699530ce21b0535c176d5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Kannst du das Array nicht global deklarieren?&lt;/p&gt;
&lt;p&gt;Dann ist es überall bekannt und du brauchst es nicht übergeben. &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ST: Wie Arrays von Funktionsblock an Funktion übergeben?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/104200a628/?limit=25#3339" rel="alternate"/><published>2020-02-28T08:14:36.375000Z</published><updated>2020-02-28T08:14:36.375000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.come5ec4a6a3171a08ada54eab7da218740df7c3dbc</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; Fx64&lt;/p&gt;
&lt;p&gt;Hallo Erik,&lt;/p&gt;
&lt;p&gt;dann tauscht Du ja allenfalls das Target - ich meinte aber Portierbarkeit zu anderen IEC 61131 Tools und dann wird es ganz schnell dünn. Denn wenn Du bei einem Tool bleibst, brauchst Du die Norm eh nicht!&lt;/p&gt;
&lt;p&gt;Viele Grüsse&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ST: Wie Arrays von Funktionsblock an Funktion übergeben?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/104200a628/?limit=25#ac80" rel="alternate"/><published>2020-02-28T08:14:33.906000Z</published><updated>2020-02-28T08:14:33.906000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com2e7940b10d3ac1f8f1fc354ef5deab6b97b2f39e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo&lt;/p&gt;
&lt;p&gt;Ich hab hier in der Firma diverse CoDeSys programmierbare Steuerungen von verschiedenen Herstellern.&lt;/p&gt;
&lt;p&gt;Die Portierbarkeit liegt dann wohl zum grössten Teil an der gewissenhaftigkeit der ausführenden Programmierer.&lt;/p&gt;
&lt;p&gt;Ich benutze meine Quellcodes fast täglich systemübergreifend.&lt;/p&gt;
&lt;p&gt;Deshalb gefällt mir ja das CoDeSys-System auch so gut.&lt;/p&gt;
&lt;p&gt;Gruss&lt;/p&gt;
&lt;p&gt;Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ST: Wie Arrays von Funktionsblock an Funktion übergeben?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/104200a628/?limit=25#68bb" rel="alternate"/><published>2020-02-28T08:14:27.370000Z</published><updated>2020-02-28T08:14:27.370000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.comd45323cf4ee16e8d4a1d800beb03f9d16462ebaa</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; Fx64&lt;/p&gt;
&lt;p&gt;Hallo Erik,&lt;/p&gt;
&lt;p&gt;sagen wir es so, die IEC PLCs und die Projekte, die ich bisher kennengelernt habe waren und sind nur mit mehr oder weniger Anpassungen portierbar; von den Systemfunktionen abgesehen.&lt;/p&gt;
&lt;p&gt;Dann scheinst Du bessere Erfahrungen gemacht zu haben - für mich ist es ein Traumtürmchen.&lt;/p&gt;
&lt;p&gt;Viele Grüsse&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ST: Wie Arrays von Funktionsblock an Funktion übergeben?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/104200a628/?limit=25#6021" rel="alternate"/><published>2020-02-28T08:14:25.014000Z</published><updated>2020-02-28T08:14:25.014000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com9455d44cac11341767f5b6441e43ee6779b9fbb4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo&lt;/p&gt;
&lt;p&gt;@FX64: Portabler Code ist keine Traumvorstellung, sondern Realität.&lt;/p&gt;
&lt;p&gt;Besonders bei Libraries nach IEC 61131.&lt;/p&gt;
&lt;p&gt;Dafür ist die Norm schliesslich da.&lt;/p&gt;
&lt;p&gt;Libraries die keine explizit zielsystemspezifischen Funktionen enthalten sollten immer portierbar sein.&lt;/p&gt;
&lt;p&gt;Für die Anpassungan ans Zielsystem gibts dann die SysX libs.&lt;/p&gt;
&lt;p&gt;Nur zur Info...&lt;/p&gt;
&lt;p&gt;Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ST: Wie Arrays von Funktionsblock an Funktion übergeben?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/104200a628/?limit=25#3af9" rel="alternate"/><published>2020-02-28T08:14:18.437000Z</published><updated>2020-02-28T08:14:18.437000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com6e8d140160901793bfdc230ddfb737eed155bf23</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; Fx64&lt;/p&gt;
&lt;p&gt;Hallo, &lt;/p&gt;
&lt;p&gt;verstehe die Diskussion nicht!? Warum soll ein System nicht mehr können als eine Norm? Ob man es benutzen möchte, ist eine andere Frage. &lt;/p&gt;
&lt;p&gt;Portabler Code ist so oder so eine Traumvorstellung - ein bisschen Anpassungsbedarf wird es immer geben!! Norm hin oder her.&lt;/p&gt;
&lt;p&gt;Also wer mit Pointern gut kann, dann verwenden.&lt;/p&gt;
&lt;p&gt;Viele Grüsse&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ST: Wie Arrays von Funktionsblock an Funktion übergeben?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/104200a628/?limit=25#70d8" rel="alternate"/><published>2020-02-28T08:14:16.145000Z</published><updated>2020-02-28T08:14:16.145000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.come476b022913b07f69f489cc903f6b74134d96066</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo&lt;/p&gt;
&lt;p&gt;So ganz genau kann das vermutlich nur jemand von 3S klären, wie und ob Pointer in der Norm vorgesehen sind.&lt;/p&gt;
&lt;p&gt;Richte die Frage doch mal direkt an  e &lt;a class="" href="mailto:support@3s-software.com"&gt;support@3s-software.com&lt;/a&gt; e .&lt;/p&gt;
&lt;p&gt;Wenn Pointer grundsätzlich erlaubt sind, aber kein muss, dann kann jeder Hersteller selbst entscheiden ob er das unterstützt oder nicht.&lt;/p&gt;
&lt;p&gt;Wenn du jetzt die Library mit CoDeSys erstellst und abspeicherst, hast du aber auf jeden Fall schon mal ein Problem die Lib z.B. in S7 oder AutomationStudio von B&amp;amp;R (oder so...) wieder zu importieren, weil ja schon das File Format unterschiedlich ist.&lt;/p&gt;
&lt;p&gt;Da scheint mir auch die Aufgabenstellung deines Auftraggebers ein wenig besser definierbar zu 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>ST: Wie Arrays von Funktionsblock an Funktion übergeben?</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/104200a628/?limit=25#1867" rel="alternate"/><published>2020-02-28T08:14:09.681000Z</published><updated>2020-02-28T08:14:09.681000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com3c4808ac0d36e73ad742c4f2922c67ae1c495502</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; TH&lt;/p&gt;
&lt;p&gt;Danke für die Antworten.&lt;/p&gt;
&lt;p&gt;Also für CoDeSys sind Pointer kein Problem, und ich kann damit gut umgehen und weiß was ich tue. So weit so gut.&lt;/p&gt;
&lt;p&gt;Ich habe die Anforderung, die Library nach IEC61131-3 zu portieren. Ich bin eher zufällig bei CoDeSys gelandet. Im Idealfall sollte also mein ST Code auch mit anderen IEC61131-3-Tools funktionieren und nicht nur mit CoDeSys. &lt;/p&gt;
&lt;p&gt;Leider habe ich keinen Überblick über Tools, die im IEC61131-3 Umfeld relevant sind.&lt;/p&gt;
&lt;p&gt;So wie ich eure Kommentare verstehe, bin ich bei Verwendung von Pointern an CoDeSys gebunden, und mein Code wäre nicht IEC61131-3 konform im strengen Sinne, oder?&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>