Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 24

Thema: Zeitlicher Ablauf in ST

  1. #11
    Registriert seit
    30.08.2005
    Beiträge
    280
    Danke
    41
    Erhielt 96 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja, moment mal.
    Rekursion ist ja schon mal überhaupt nicht erlaubt. Zeitlicher Ablauf hin oder her. Die IEC verbietet explizit rekursive Funktionsaufrufe. Über den Sinn dessen kann man streiten, aber umgehen lässt es sich nicht.

    Bernhard

  2. Folgender Benutzer sagt Danke zu Werner29 für den nützlichen Beitrag:

    Basstarono (30.07.2008)

  3. #12
    Basstarono ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.05.2008
    Beiträge
    12
    Danke
    10
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also du bist dir sicher, dass rekursive Funktionen in TwinCat nicht möglich sind @ Werner29?

    Gruß Basstarono
    Zitieren Zitieren nicht möglich?  

  4. #13
    Registriert seit
    18.11.2007
    Beiträge
    44
    Danke
    0
    Erhielt 7 Danke für 6 Beiträge

    Standard

    Bei Unity Pro (SPS IEC1131 software van Schneider Electric) und ich denke auch bei zb S7 macht man unterschied zwischen funktionen und funktionsbausteine. Eine funktion hat keine interne variabelen und ist in prinzip direkt ganz fertig (beispiel a = b + c). Aber wann man ein FunktionsBaustein aufruft, kann es sein das diese funktionsbaustein langer dauert. Beste beispiel ist eine zeitverzoegerung TON. Diese baustein benutzt eine interne variabele die jeden programmzyklus die zeitwert inkrementiert und speichert.
    So in das beispiel, wann es um funktionen geht, ist die berechnung der erste funktion ganz fertig wann mann die zweite funcktion anfangt. Aber
    wann es un FB's geht, kan mann nur sagen das ins programm die FB aufrufreihenfolge feststeht...
    Zitieren Zitieren Unity Pro  

  5. Folgender Benutzer sagt Danke zu chrisgoossens für den nützlichen Beitrag:

    Basstarono (30.07.2008)

  6. #14
    Registriert seit
    30.08.2005
    Beiträge
    280
    Danke
    41
    Erhielt 96 Danke für 66 Beiträge

    Standard

    Zitat Zitat von Basstarono Beitrag anzeigen
    Also du bist dir sicher, dass rekursive Funktionen in TwinCat nicht möglich sind @ Werner29?
    Ja, ich bin mir eigentlich schon sicher. In CoDeSys ist es definitiv ein Fehler, mir wäre nicht bewusst, das Twincat das anders handhabt. Aber probier es halt einfach aus.

    Bernhard

  7. Folgender Benutzer sagt Danke zu Werner29 für den nützlichen Beitrag:

    Basstarono (30.07.2008)

  8. #15
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Zitat Zitat von chrisgoossens Beitrag anzeigen
    Eine funktion hat keine interne variabelen und
    CodeDeSys und Abkömlinge erlauben lokale Variablen in Funktionen, die dann aber nicht rekusiv sein dürfen. Abgesehen davon, ist rekursive Programmierung in einer Echtzeitumgebung ziemlich gefährlich. Deswegen finde ich das Verbot in der Norm als sinnvoll.
    Geändert von drfunfrock (04.08.2008 um 09:53 Uhr)

  9. #16
    Registriert seit
    30.08.2005
    Beiträge
    280
    Danke
    41
    Erhielt 96 Danke für 66 Beiträge

    Standard

    Programmieren in einer Echtzeitumgebung ist an sich gefährlich. Vor allem wenn man anfängt Ausgänge zu setzen.
    Im Ernst: natürlich kann man sich Probleme einhandeln, aber die kann man sich auch mit einer WHILE oder einer FOR-Schleife einhandeln. Ich plädiere für den mündigen Programmierer, der viele Möglichkeiten geboten bekommt, auch die potenziell gefährlichen, und der sich dann selbst einschränkt, wo er es für richtig hält.
    Aber wie gesagt, darüber kann man sich streiten.

    Bernhard

  10. #17
    Basstarono ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.05.2008
    Beiträge
    12
    Danke
    10
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,

    Rekursive Funktionen sind auch in Twincat nicht möglich.

    Hat einer ne Idee wie man eine Baumstruktur durchlaufen kann ohne rekursive Funktion?

    Gruß Basstarono
    Zitieren Zitieren rekursive Programmierung in Twincat  

  11. #18
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Kann man nicht 2 funktional identische Funktionen nehmen, die sich gegenseitig aufrufen und so dem Verbot der Rekursivität ausweichen?

  12. #19
    Registriert seit
    30.08.2005
    Beiträge
    280
    Danke
    41
    Erhielt 96 Danke für 66 Beiträge

    Standard

    So schlau ist das System leider schon, dass es Rekursionen auch über mehrere Aufrufebenen überprüft.
    Vielleicht funktioniert es, sich eine Iterationsfunktion zu schreiben, die zu einem gegebenen Baum-Knoten den "nächsten" (ersten Kindknoten, nächstes Geschwister) liefert.
    So dass man am Ende mit einer WHILE-Schleife durch den Baum iterieren kann.
    Kommt natürlich drauf an, wieviel Information im Baum steckt, ob man von einem Kind zum Vater kommt und so weiter.
    Auf alle Fälle bricht man sich für diese Fälle einen ab, und mit Rekursion wäre es viel einfacher und übersichtlicher.

    Falls es irgendjemand interessiert: ab Version 3 ist in CoDeSys das Rekursionsverbot gelockert. Man darf dann in einer Methode dieselbe Methode eines anderen Objekts aufrufen. Ansonsten hätte man an der Objektorientierung wenig Freude. Der Nachteil ist natürlich, dass man statisch den Stackverbrauch nicht mehr ermitteln kann, und es zur Laufzeit zu Stackoverflow-Exceptions kommen kann. Und die sind sehr unangenehm.

    Bernhard

  13. #20
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wozu brauchst du denn den Baum?
    "Das Leben ist viel zu kurz, um schlecht zu essen !"
    (Johann Lafer zur SWR3 Grillparty)

Ähnliche Themen

  1. Speicherproblem mit zeitlichem Ablauf
    Von MadDog im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 05.04.2011, 07:59
  2. Programmaufbau, -ablauf
    Von Stoif im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 27.05.2009, 20:47
  3. Ablauf Regallager
    Von sr-83 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 09.10.2007, 10:03
  4. Ideen für Ablauf
    Von patrickm im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 18.12.2006, 18:35
  5. GUrndlagen? FB und Ablauf
    Von MSP im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 22.11.2005, 20:46

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •