S7 FC in S7-200 übersetzen

PhilippL

Level-1
Beiträge
250
Reaktionspunkte
28
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

kann mir jemand helfen den folgenden FC in S7-200 zu übersetzen (natürlich nur wenn möglich????)

Code:
      L     0                           //Returnwert ablöschen
      T     #Out
      L     #IN                         //Prüfen ob Bit 8 des Eingangsbyts auch benutzt wird und wenn nötig Bit 8 ablöschen
      L     128
      >=I   
      SPBN  NEXT
      L     #IN
      L     128
      -I    
      SPB   M001

NEXT: L     #IN                         //Inwerte auf Arbeitsvariable kopieren
M001: T     #wrkval
A001: L     0                           //Arbeitsvariable vergleichen ob 0
      L     #wrkval
      ==I   
      SPB   A002
      SRW   1                           //Arbeitsvariable um eins nach rechts schieben
      T     #wrkval
      SPZ   A001                        //Sprung zu A001 wenn Arbeitsvariable gleich 0
      L     #Out                        //Out-Wert inkrementieren
      L     1
      +I    
      T     #Out
      SPA   A001
A002: L     #Out                        // Out-Wert modulo 2 dividiert und prüfen ob Zahl ungleich 0 => ergibt Ausgang_1 gleich 1
      L     2
      MOD   
      L     0
      <>I   
      =     #Ausgang_1
      L     #Out                        // Out-Wert mit 2 maskiert und geprüft ob die Bit-2 vorhanden => ergibt Ausgang_2 gleich 1
      L     B#16#2
      UW    
      L     2
      ==I   
      =     #Ausgang_2
      L     #Out                        // Out-Wert größer 4 => ergibt Ausgang_3 gleich 1
      L     4
      >=I   
      =     #Ausgang_3
      SET                               //ENO-Bit auf 1 setzen
      SAVE

Kenn mich leider überhaupt nicht mit der Syntax von S7-200 aus... oder vielleicht gibts ja irgendwo ne Gegenüberstellung der Syntax S7-300 und S7-200

Danke schonmal!

Gruß

PhilippL
 
Baustein

Hallo,

also die ersten Zeilen bis SPA A001 zählen die gesetzten Bits innerhalb des Bytes allerdings ohne Bit 7 (nicht wie kommentiert Bit 8 ). Dafür hatte ich schon mal nen Baustein reingestellt. Da müsstest du noch das Bit 7 ausfiltern.

http://raeppel.de/phpBB3/downloads.php?view=detail&df_id=12

Dann kommt ne Auswertung Parity

Code:
A002: L     #Out                        // Out-Wert modulo 2 dividiert und prüfen ob Zahl ungleich 0 => ergibt Ausgang_1 gleich 1
      L     2
      MOD   
      L     0
      <>I   
      =     #Ausgang_1

Der Rest ist ja ausreichend kommentiert und bei den Sachen ist das auch mit der Syntax einfacher.

André
 
Zuletzt bearbeitet:
Zurück
Oben