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

Ergebnis 1 bis 9 von 9

Thema: Rechenoperationen mit Simatic in SCL

  1. #1
    Registriert seit
    14.12.2011
    Ort
    Reutte in Tirol
    Beiträge
    12
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Lächeln


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen!

    Habe gestern einen kleinen Rechner in Simatic programmiert und wollte in austesten!
    Doch leider weiß ich nicht wie ich Rechenzeichen (+,-,*,/) in die Variablentabelle schreiben kann!
    Bin mit SCL noch nicht ganz vertraut darum nur ein kleines Programm!

    1.zu meinem Programm FB1:

    FUNCTION_BLOCK FB1
    VAR_INPUT
    //Eingangsvariablen
    Operant1: INT;
    Operant2: INT;
    Operator: CHAR;
    END_VAR
    VAR_OUTPUT
    //Ausgangsvariablen
    Ergebnis: INT;
    END_VAR
    VAR_TEMP
    // temporäre Variablen

    END_VAR
    VAR
    // statische Variablen

    END_VAR

    // Anweisungsteil
    BEGIN
    IF Operator= '+' THEN Ergebnis:= Operant1 + Operant2;
    ELSIF Operator= '-' THEN Ergebnis:= Operant1 - Operant2;
    ELSIF Operator= '*' THEN Ergebnis:= Operant1 * Operant2;
    ELSIF Operator= '/' THEN Ergebnis:= Operant1 / Operant2;
    ELSE Ergebnis:=0;
    END_IF;
    END_FUNCTION_BLOCK

    Wie ich das Programm im OB1 aufrufe, ist kein Problem.

    Danke im Voraus
    Zitieren Zitieren Rechenoperationen mit Simatic in SCL  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Du gibst in der Variablentabelle in der Spalte "Operand" die Adresse ein, die du an deinem Eingangsparameter für den FB1 eingetragen hast, z.B. MB 100.
    Es muss auf jeden Fall ein Byte sein, bei einer Adresse im DB müsstest du dann beispielsweise DB1.DBB0 schreiben.

    Das Anzeigeformat stellst du dann auf den Typ "ZEICHEN" um. Dann kannst du als Steuerwert direkt das Zeichen eingeben. Wenn du dann die Steuerwerte aktivierst (F9), wird das Zeichen auf den eingestellen Operanden geschrieben.

  3. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Zagatho (20.12.2011)

  4. #3
    Zagatho ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.12.2011
    Ort
    Reutte in Tirol
    Beiträge
    12
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank!
    Jetzt klappts!

  5. #4
    Zagatho ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.12.2011
    Ort
    Reutte in Tirol
    Beiträge
    12
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    .
    Es muss auf jeden Fall ein Byte sein, bei einer Adresse im DB müsstest du dann beispielsweise DB1.DBB0 schreiben.
    Noch kurz eine Frage:
    Dieses DB1.DBB0, was genau ist das?

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

    Standard

    Die Adressierung des Byte 0 des DB1
    Sollte ein Beispiel sein, falls deine Daten in einem DB(Datenbaustein) liegen.

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

    Zagatho (20.12.2011)

  8. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von Zagatho Beitrag anzeigen
    Noch kurz eine Frage:
    Dieses DB1.DBB0, was genau ist das?
    Das ist eine Adresse wenn du absolut und nicht symbolisch adressierst.

    DB = Datenbaustein
    1 = Datenbausteinnummer 1
    . = Trennzeichen
    DBB = Datenbaustein Byte
    0 = Adresse 0

  9. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Zagatho (20.12.2011)

  10. #7
    Zagatho ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.12.2011
    Ort
    Reutte in Tirol
    Beiträge
    12
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Was ist der Unterschied zwischen absolut und symbolisch?
    Pro und Contra?

  11. #8
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Hängt davon ab in welchem Zusammenhang du die Frage stellst.

    Bei der Ansicht:
    Macht technisch keinen Unterschied, lediglich Unterschied in der Darstellung. Die Adresse ist meistens kürzer, man sieht mehr auf dem Bildschirm. Symbolische Darstellung ist in der Regel selbsterklärend, wenn man die Symbole richtig benennt z.B. "KF01".LS_Belegt (Kettenförderer 01, Lichtschranke belegt). Dafür benötigt diese Darstellung mehr Platz.

    Beim Operandenvorrang:
    Absolut: Es wird immer die Adresse als Referenz verwendet. Wenn man das Symbol ändert passiert nichts ausser dass der Operand jetzt anders heißt. Einfügen von Operanden in DB´s ist in der Regel mit viel Arbeit verbunden.
    Symbolisch: Es wird immer das Symbol als Referenz verwendet. Wenn man das Symbol ändert wird der Operand nicht mehr gefunden. Dafür kann man DB´s spreitzen wie man will, solange das Symbol nicht geändert wird findet S7 immer wieder die passenden Referenzen.
    mfG Aventinus

  12. Folgender Benutzer sagt Danke zu Aventinus für den nützlichen Beitrag:

    Zagatho (20.12.2011)

  13. #9
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Absolut = E1.0

    Symbolisch = TasteLichtAn (E1.0)

    Was lässt sich leichter merken? Symbolauswahl und Suche ist einfacher.
    Änderungen an E1.0 müssen nicht im Programm geändert werden, da das Symbol ja dafür steht. vorher E1.0 (TasteLichtAn) , nacher E2.0 (TasteLichtAn).
    Bei absoluter Programmierung würde an den E1.0 Abfragen (vorher), nacher E1.0 bleiben und nicht wie gewünscht E2.0 . ( Software-Umverdrahten ist angesagt).

  14. Folgender Benutzer sagt Danke zu Verpolt für den nützlichen Beitrag:

    Zagatho (20.12.2011)

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 07.02.2011, 21:59
  2. Rechenoperationen bei S7
    Von Roos im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 29.02.2008, 12:49
  3. Rechenoperationen mit sich ändernden Variablen
    Von stift im Forum Programmierstrategien
    Antworten: 29
    Letzter Beitrag: 13.02.2008, 10:45
  4. komplexe Rechenoperationen
    Von stift im Forum Programmierstrategien
    Antworten: 25
    Letzter Beitrag: 12.02.2008, 14:49
  5. Simatic NET: Start >Simatic > SIMATIC NET > COML S7
    Von plc_tippser im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 13.06.2004, 18:30

Stichworte

Lesezeichen

Berechtigungen

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