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

Ergebnis 1 bis 10 von 10

Thema: Taktmerker nach Bitmuster

  1. #1
    Registriert seit
    16.10.2013
    Ort
    Niedersachsen
    Beiträge
    38
    Danke
    11
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    Nachdem ich in der Suchfunktion nicht fündig geworden bin, versuche ich es mal direkt

    Ich möchte gerne einen bestimmten Takt anhand eines Eingangsbyte ausgeben, hab jedoch noch keine Idee dies zu realisieren.
    das Ganze sollte so aussehen:
    ich bekomme ein Eingangsbyte (EB2), anhand diesen Inhalts möchte ich den entsprechenden Taktmerker verwenden, also
    bei einem Wert von 1 zB M100.1,
    bei einem Wert von 2 M100.2
    usw.
    Ich möchte das gerne über einen FB machen, wobei ich als Eingangsparameter
    einmal das Eingangsbyte EB2 bekomme und den Taktmerkerbyte M100.
    Als return -Wert dann den passenden Taktmerker als BOOL, bsp. M100.2.

    Als Software verwende ich Step 7, SPS eine 315DP.

    Kann mir da jemand behilflich sein?

    Vielen Dank schonmal im Vorraus!

    Gruß
    Zitieren Zitieren Taktmerker nach Bitmuster  

  2. #2
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Warum so umständlich?

    Code:
    U E2.1
    U Taktmerker_1
    = M100.1
    Das Grauen lauert in der Zwischenablage !!

  3. #3
    Registriert seit
    12.11.2013
    Beiträge
    14
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von dtsclipper Beitrag anzeigen
    Warum so umständlich?

    Code:
    U E2.1
    U Taktmerker_1
    = M100.1
    Ich denke er möchte auf das Byte vergleichen.

    Dann müsstest du dir eben einen Vergleicher bauen und dieser vergleicht auf die Dezimalzahl
    sprich bei 128 = M100.7
    usw.

    Ansonsten wäre die einfachste Lösung mit Sicherheit die von oben!

  4. #4
    Registriert seit
    16.10.2013
    Ort
    Niedersachsen
    Beiträge
    38
    Danke
    11
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Danke erstmal für eure Anworten!

    Mit meinem Problem bin ich jedoch nicht weiter.

    Ich bekomm an meiner Eingangsschnittstelle des FBs das Taktmerkerbyte M100 ( "#Taktbyte" im FB) und ein Bitmuster in einem Byte("#Vorgabe" im FB).
    Im FB wird dann gecheckt welches Bitmuster sich in #Vorgabe befindet.
    Ist nun da zBsp. eine 1 drin, will ich aus dem #Taktbyte das 1. Bit (10Hz) nehmen und diesen Takt an den Ausgang #Takt(BOOL)
    geben und im OB1 weiter verarbeiten. Somit habe ich für weitere FBs den gleichen Takt, der vorgegeben wurde.

    Ich hoffe ich konnte mich nun ein wenig verständlicher ausdrücken

  5. #5
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    .
    Mach eine Sprungleiste, wo du den Inhalt des EB
    mit festen Werten vergleichst.
    Je nach Ergebnis legst du den jeweiligen Taktmerker
    auf den Ausgang.
    kind regards
    SoftMachine

  6. #6
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    .

    Nachtrag:

    Unter Stichwort "SPL" findest du auch ein Beispiel in der Hilfe.
    kind regards
    SoftMachine

  7. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Ich würde das in etwa so machen:

    Code:
    FUNCTION FC 100 : VOID
    TITLE =
    { S7_language := '9(1) Englisch (USA)  17.10.2013  08:22:01' }
    VERSION : 0.1
    
    
    
    
    VAR_INPUT
      Eingangsbyte : BYTE ;    
      Taktmerkerbyte : BYTE ;    
    END_VAR
    VAR_OUTPUT
      Taktbit : BOOL ;    
    END_VAR
    BEGIN
    NETWORK
    TITLE =
    
    
          L     P##Taktmerkerbyte; 
          L     #Eingangsbyte; 
          +D    ; 
          LAR1  ; 
    
    
          U     M [AR1,P#0.0]; 
          =     #Taktbit; 
    END_FUNCTION
    Aufruf so:

    Code:
      CALL  FC   100
           Eingangsbyte  :=EB10
           Taktmerkerbyte:=MB100
           Taktbit       :=M200.0
    In EB 10 stehen Zahlen von 0-7
    MB100 ist das Taktmerkerbyte der SPS
    M200.0 blinkt je nach Anwahl:

    0 mit Takt von M100.0
    1 mit Takt von M100.1

    7 mit Takt von M100.7

    Achtung, wenn man in EB10 Zahlen höher als 8 hineinschreibt, dann werden die Merker 101.0 ….. als "Taktmerker" ausgelesen, was natürlich i.d.R. nicht zu einem Blinken des M200.0 führt.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  8. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    Reckers (26.11.2013)

  9. #8
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    Zitat Zitat von Reckers Beitrag anzeigen
    Ich bekomm an meiner Eingangsschnittstelle des FBs das Taktmerkerbyte M100 ( "#Taktbyte" im FB) und ein Bitmuster in einem Byte("#Vorgabe" im FB).
    Im FB wird dann gecheckt welches Bitmuster sich in #Vorgabe befindet.
    @Ralle
    Dein Beispiel erwartet eine Zahl.

    Ich habe es so gelesen, das er jeweils 1 Bit von 0...7
    als Vorgabe erhält, um damit den jeweiligen Taktmerker
    auszuwählen und auf den Ausgang zu schalten.

    Gruss
    kind regards
    SoftMachine

  10. Folgender Benutzer sagt Danke zu SoftMachine für den nützlichen Beitrag:

    Reckers (26.11.2013)

  11. #9
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Zitat Zitat von Reckers Beitrag anzeigen
    ich bekomme ein Eingangsbyte (EB2), anhand diesen Inhalts möchte ich den entsprechenden Taktmerker verwenden, also
    bei einem Wert von 1 zB M100.1,
    bei einem Wert von 2 M100.2
    usw.
    @SoftMachine
    Na ja, ich hab das hier genommen, da kann er sich ja aussuchen, was im besser paßt.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

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

    Reckers (26.11.2013)

  13. #10
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    .


    Gruss
    kind regards
    SoftMachine

Ähnliche Themen

  1. Aus Hex Zahl wieder Bitmuster machen
    Von Deimos0815 im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 17.08.2011, 10:34
  2. Bitmuster Puzzel
    Von doelckenbeck im Forum Programmierstrategien
    Antworten: 10
    Letzter Beitrag: 09.08.2010, 10:19
  3. Bitmuster
    Von AdrianS im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 06.10.2007, 15:23
  4. S7 Taktmerker
    Von Anonymous im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 05.01.2006, 09:56
  5. Antworten: 4
    Letzter Beitrag: 23.04.2004, 13:26

Lesezeichen

Berechtigungen

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