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

Ergebnis 1 bis 7 von 7

Thema: AWL Code in FUP

  1. #1
    Registriert seit
    11.05.2013
    Beiträge
    137
    Danke
    19
    Erhielt 3 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich hätte folgende Frage und zwar, kann ich so einen AWL Code auch in FUP darstellen lassen.
    Wenn ja was müsste ich hierfür ändern, Klammern oder ähnliches.

    L B#16#C2
    T #byPAB_1

    L #DB_Number
    T #DB_No

    Auf DB [#DB_No]
    L DBB 42
    T #byPAB_2

    L DBB 43
    T #byPAB_3

    L #byPEB_1
    L B#16#82
    ==I
    SPB I_SC
    BE


    Danke und Gruß
    Zitieren Zitieren AWL Code in FUP  

  2. #2
    Stephan25 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.05.2013
    Beiträge
    137
    Danke
    19
    Erhielt 3 Danke für 2 Beiträge

    Standard

    Mir soll niemenad den AWL Code übersetzen in FUP, bitte nicht falsch verstehen,
    ich will nur wissen ob es geht und wenn ja ob man dann eben irgendwas Ein,-bzw. Ausklammern muss.

  3. #3
    Registriert seit
    29.10.2010
    Beiträge
    553
    Danke
    57
    Erhielt 39 Danke für 37 Beiträge

    Standard

    Einfach so umschalten wird nicht gehen. Es funktioniert nur, wenn du den Code in FUP geschrieben hast und dann zwischen AWL und FUP switche willst.

  4. #4
    Registriert seit
    15.04.2011
    Beiträge
    1.122
    Danke
    229
    Erhielt 208 Danke für 176 Beiträge

    Standard

    Hallo Stephan25,

    soweit ist das alles problemlos, außer bei dem Vergleicher. Bei FUP kann man kein BE angeben, deshalb muß man dies mit einem Sprung ins letzte Netzwerk des Bausteins lösen. Eine Sprungmarke (bei FUP) kann aber nicht alleine in einem Netzwerk stehen, deshalb die Dummy-Sache.
    Angehängte Dateien Angehängte Dateien
    • Dateityp: pdf FC4.pdf (14,9 KB, 54x aufgerufen)
    Gruß
    190B

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

    Stephan25 (27.06.2013)

  6. #5
    Registriert seit
    20.11.2006
    Ort
    Hamburg
    Beiträge
    225
    Danke
    35
    Erhielt 35 Danke für 32 Beiträge

    Standard

    Hinweis:
    Der DB ist nun nicht mehr variabel.

  7. #6
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Zitat Zitat von dentech Beitrag anzeigen
    Einfach so umschalten wird nicht gehen. Es funktioniert nur, wenn du den Code in FUP geschrieben hast und dann zwischen AWL und FUP switche willst.
    Es funktioniert auch, wenn man nachträglich an den richtigen Stellen NOP 0 und Netzwerktrennungen einfügt.
    Aber Du hast Recht, es ist nicht einfach. Denn wer weiß schon, wo welche Einfügung erwartet wird.
    Da ist es einfacher, gleich neu zu erstellen. (Hab' ich auch so gemacht )
    Doch die Frage war ja, ob es überhaupt geht.


    Zitat Zitat von 190B Beitrag anzeigen
    ... außer bei dem Vergleicher. Bei FUP kann man kein BE angeben, ...
    Auch das geht: Programmsteuerung -> [RET] = Bedingtes Bausteinende. Da vorher eh' ein Vergleich durchgeführt wird, kann man auch bedingt den Baustein beenden, statt das unbedingte Ende zu überspringen. Wäre in meinen Augen eh die bessere Variante (, allerdings hängt das auch davon ab, wo der Sprung überhaupt hingeht):
    Code:
    L #byPEB_1
    L B#16#82
    <>I
    BEB
    Was in FUP aber normalerweise beim INT-Vergleich Probleme macht, sind die beiden Byte-Werte.
    Deshalb Frage @190B:
    Wie hat bei Dir STEP7 den als Byte deklarierten Eingang #byPEB1 als Formalparameter am INT-Vergleicher zugelassen. Bei mir wird vorher eine Transformation zu INT erwartet und auch die B#16#82 muss ich als 130 (dezimal) angeben.


    Daraus ergeben sich bei mir folgende grüne Einfügungen bzw. Netzwerktrennungen (------) und rote Änderungen (Sprung entfällt), damit man zu FUP/KOP umschalten kann:
    Zitat Zitat von Stephan25 Beitrag anzeigen
    ... kann ich so einen AWL Code auch in FUP darstellen lassen.
    Wenn ja was müsste ich hierfür ändern, Klammern oder ähnliches.

    Code:
    L     B#16#C2
    T     #byPAB_1
    
    L     #DB_Number
    T     #DB_No
    
    Auf  DB [#DB_No]
    L     DBB 42
    T     #byPAB_2
    
    L     DBB 43
    T     #byPAB_3
    
    L     #byPEB_1
    L     B#16#82
    ==I
    SPB  I_SC
    BE
    Code:
          L     B#16#C2               //Hex-Wert C2 (Dez. 194)
          T     #byPAB_1              //an Ausgangsbyte 1 übertragen
          NOP   0
    
    ---------------------------------------
    
          L     #DB_Number            //Eingang DB-Number von Byte/Int?
          T     #DB_No                //in WORD (temporär?) wandeln
          NOP   0
    
    ---------------------------------------
    
          AUF   DB [#DB_No]           //läßt sich wegen der variablen DB-Nummer nicht zu FUP ändern
    
    ---------------------------------------
    
          L     DBB   42              //Datenbankbyte 42
          T     #byPAB_2              //an Ausgangsbyte 2 übertragen
          NOP   0
    
    ---------------------------------------
    
          L     DBB   43              //Datenbankbyte 43
          T     #byPAB_3              //an Ausgangsbyte 3 übertragen
          NOP   0
    
    ---------------------------------------
    
          L     #byPEB_1              //Eingangsbyte?
          T     #iPEB_1               //in Integer wandeln
          NOP   0
    
    ---------------------------------------
    
          L     #iPEB_1               //zu INT gewandeltes Eingangsbyte
          L     130                   //Hex-Wert b#16#82 als Int 130
          <>I                         //statt bei Gleichheit, Beenden überspringen - bei Ungleicheit den 
          SAVE                        //(für FUP-Befehl RET nötig) 
          BEB                         //Baustein beenden

  8. #7
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wie hat bei Dir STEP7 den als Byte deklarierten Eingang #byPEB1 als Formalparameter am INT-Vergleicher zugelassen. Bei mir wird vorher eine Transformation zu INT erwartet und auch die B#16#82 muss ich als 130 (dezimal) angeben.
    Ich bin zwar nicht 190B, aber es gibt in den Einstellungen die Möglichkeit die Typüberprüfung von den Operanden abzustellen.

    Extras -> Einstellungen -> KOP/FUP -> Typüberprüfung (Haken entfernen)

    Dann geht das ohne Probleme.
    Ich hab sie standardmäßig ausgeschaltet.

    Gruß wolder
    Wenn du denkst du denkst, dann denkst du nur, dass du denkst, denn beim Denken der Gedanken, kommt dir der Gedanke, dass das Denken der Gedanken ein gedankenloses Denken ist

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

    hucki (28.06.2013)

Ähnliche Themen

  1. AWL Code in SCL umwandeln
    Von robson im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 07.02.2013, 17:48
  2. awl in scl Code einbinden
    Von schlarpi im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 01.09.2008, 12:07
  3. AWL-Code Interpretaion
    Von gravieren im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 08.05.2008, 12:34
  4. AWL Code in schaltalgebra
    Von Anonymous im Forum Simatic
    Antworten: 39
    Letzter Beitrag: 23.12.2005, 23:12
  5. AWL-code
    Von Anonymous im Forum Simatic
    Antworten: 29
    Letzter Beitrag: 09.11.2005, 16:48

Lesezeichen

Berechtigungen

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