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

Ergebnis 1 bis 3 von 3

Thema: Einfacher Formelparser in SCL

  1. #1
    Registriert seit
    29.03.2004
    Beiträge
    5.741
    Danke
    143
    Erhielt 1.687 Danke für 1.226 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich habe die Tage mal einen einfachen Formelparser für arithmetische Ausdrücke in SCL programmiert.
    Es gab dazu keinen konkreten Hintergrund. Ich hatte das Programm vorher in C geschrieben, und wollte einfach mal
    sehen ob und wie man das in SCL in einer SPS umsetzen kann.

    Der Parser verarbeitet Formeln wie z.B. "5*(102+a)/b", die als String eingegeben werden müssen.
    Es sind vier Variablen möglich (a, b, c und d) deren Werte im Interpreter durch die Werte der Funktionsparameter ersetzt werden.
    Ist die Formel korrekt, so wird der Ausdruck berechnet und das Ergebnis der Berechnung zurückgegeben.

    Das Programm ist in starker Anlehnung an Niklaus Wirths PL/0 Parser aus dem Buch "Compilerbau" aus dem Jahre 1986 geschrieben.
    Frei im Netz verfügbar ist das etwas neuere Buch von Wirth, "Compiler Construction".

    Der Parser übersetzt die Formel durch rekursiven Abstieg in Code in einer sehr einfachen Sprache mit 3 Befehlen, der später durch eine Stackmaschine ausgeführt wird.

    Durch die Rekursion ergeben sich in einer S7-SPS aufgrund der begrenzten Schachtelungstiefe (z.B. 16 bei einer S7-300) Grenzen bei der maximalen Klammeranzahl.
    Pro Klammerebene erhöht sich die Schachtelungstiefe um 3. Im aktuellen Code wird das nicht geprüft.
    Was eine echte SPS macht denn die Schachtelungstiefe überschritten wird habe ich noch nicht getestet, ich schätze mal es wird in den Stop-Zustand gewechselt.

    Ich habe den Code und ein paar weitere Infos in dem angehängten PDF zusammengefasst. Frei zur Kommentierung sozusagen

    PS
    Ich hatte erst gedacht dass es eine schöne Aufgabe für den Programmierwettbewerb wäre. Aber dann hab ich selber doch ein paar Stunden
    daran gesessen...

    Formelparser-SCL-Code.pdf
    Zitieren Zitieren Einfacher Formelparser in SCL  

  2. Folgende 9 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Chefmech (20.12.2011),dalbi (18.12.2011),Django2012 (13.07.2013),Fanta-Er (14.07.2013),ich988 (20.12.2011),Lars Weiß (20.12.2011),pet27 (02.12.2012),rostiger Nagel (17.12.2011),vollmi (13.07.2013)

  3. #2
    Registriert seit
    09.06.2008
    Beiträge
    138
    Danke
    16
    Erhielt 13 Danke für 13 Beiträge

    Standard

    Super Sache, finde ich sehr interessant.

  4. #3
    Registriert seit
    14.05.2012
    Beiträge
    157
    Danke
    28
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wow.... Das ist wirklich interessant. Und sehr Lehrreich wie ich finde.... Aber auch ganz schön "starker Tobak"

Ähnliche Themen

  1. einfacher zufallsgenerator
    Von linuxluder im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 30.09.2008, 22:19
  2. Einfacher P-Regler mit Step7
    Von magmaa im Forum Programmierstrategien
    Antworten: 17
    Letzter Beitrag: 28.05.2007, 23:01
  3. Einfacher Bildverarbeitung / Checker
    Von kiestumpe im Forum Sensorik
    Antworten: 3
    Letzter Beitrag: 18.01.2007, 09:43
  4. Einfacher Nachauf in AWL
    Von noeppkes im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 02.08.2006, 20:59
  5. Typkonvertierung einfacher?!
    Von Pimsti im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 14.06.2006, 08:40

Lesezeichen

Berechtigungen

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