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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Erstellen eigener log. Bausteine

  1. #1
    Manticor Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen, ich sitze gerade an meinem S7-Projekt fürs Studium und komme einfach nicht mehr weiter. Ich möchte eigentlich nur ein ganz simples Lauflicht mit Hilfe eines Schiebregisters mit D-Flip Flops realisieren.
    Deshalb habe ich mir zunächst einen Funktionsbaustein FB1 geschrieben, der ein D-FF realisiert, welches auch sehr gut funktioniert und keinerlei Fehler enthält.
    Dann bin ich auf die Idee gekommen, diesen Baustein FB1 in einem andern Baustein FB2 mehrfach aufzurufen und die Ausgänge miteinander zuverschalten. Leider erhalte ich nicht das gewünschte Ergebnis, sondern es scheint mir so, als ob alle FB1 gleichzeit abgearbeitet würden, obwohl sie hintereinander geschlatet sind.
    Danach mein D-FF in einem Netzwerk realisiert und in einem FB mehrmals hintereinander gefügt. Dies führte zu dem von mir erwünschten Erfolg. Doch ist nun leider mein Code sehr unübersichtlich.

    Nun zu meiner Frage, gibt es eine Möglichkeit in Simantic S7 ein logischer Baustein (z.b. D-FF) so zu speichern, dass er in anderen Funktionen hintereinander verschaltet werden kann?

    Ich würde mich freuen, wenn jemand dazu was weiß und mir vielleicht erklären kann wie ich das mache.


    Gruß
    Steffen Hellwig
    Zitieren Zitieren Gelöst: Erstellen eigener log. Bausteine  

  2. "Danke sehr, ich werde es gleich mal testen!"


  3. #2
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Schick mal n bisschen Quelltext, dann ist vieleicht leichter nachzuvollziehen.

    N Lauflist kannst aber auch über RLD realisieren:

    FC1:
    UN M1.0
    SPB ANF

    U T1
    SPB END
    L MD2
    RLD
    T MD2
    L S5T#500MS
    SA T1
    SPA END



    ANF:
    L B#(0, 0, 0, 1)
    T MD2
    S M1.0
    END: NOP 0


    Denkemal des müsst gehe...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Hilfe...  

  4. #3
    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

    Gleichzeitig abarbeiten geht bei einer S7 eigentlich nicht.

    Wenn du deinen FB mit IN- und Out-Variablen versorgt hast, könnte hier das Problem liegen. In-Variablen kannst du zwar im FB verändern (beschreiben), nach Rückkehr aus dem FB haben sie aber nach außen hin wieder den alten Wert. In diesem Fall nimm INOUT-Variablen.

    Gruß Ralle !

  5. #4
    Manticor Gast

    Standard

    Zu meiner Aufgabe im Projekt gehört es leider die D-FF selbst zu basteln und damit das Lauflicht zu realisieren.

    Ich verusche mal den quellcode zu schicken, weiß aber nicht ob es möglich ist, da ich in FUP programmiert habe.

    habe den FUP jetzt in awl umgewandelt. Hier ein kleiner Auszug aus dem Programm. Es handelt sich um jeweils eine funktion die ein D-Flip Flop darstellt. Und mit dem anderen verbunden ist.


    Code:
    erstes netzwerk:
      U     #C
          =     L      1.0
          BLD   103
          U     #D
          =     L      1.1
          BLD   103
          CALL  FC     2
           C:=L1.0
           D:=L1.1
           Q:=#Merker1
          NOP   0
    
    zweites:
          U     #C
          =     L      1.0
          BLD   103
          U     #Merker1
          =     L      1.1
          BLD   103
          CALL  FC     2
           C:=L1.0
           D:=L1.1
           Q:=#Merker2
          NOP   0

    Ich hoffe, ich konnte dir mein Problem damit etwas genauer schildern. Jetzt schon einmal vielen dank für deine Hilfe



    // edit by markus
    source in code-tags gesetzt

  6. #5
    Manticor Gast

    Standard

    Danke Ralle,

    ich werde es gleich mal testen.

  7. #6
    Manticor Gast

    Standard

    Ich habe es nun meine In - Out-Variablen durch IN/OUT-Variablen erstetzt dennoch schaltet er alle FFs direkt durch. Ich habe zur Sicheheit meine FF-Schaltung nochmal in Digitrace aufgebaut, aber da lief es ohne probleme.

    Kann es daran liegen, dass ich eine Funktion und keinen Funktionsbaustein zum Aufrufen meines FFs verwendet habe ?

  8. #7
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von Manticor
    Zu meiner Aufgabe im Projekt gehört es leider die D-FF selbst zu basteln und damit das Lauflicht zu realisieren.
    Code:
          CALL  FC     2
           C:=#C
           D:=#D
           Q:=#Merker1.1
    
          CALL  FC     2
           C:=#C
           D:=#Merker1.1
           Q:=#Merker2
    Sollte reichen. Poste mal deinen FB2.
    Wichtig ist, dass Q von FB2 OUT oder INOUT ist.
    Ferner deucht es mich, dass die Nachbildung eines D-Flipflops einen Hilfsmerker zur Erkennung massgeblichen Flanke benötigt. Auch dieser muss über mehrere Aufrufe hinweg seinen Zustand speichern. Also müsste da noch ein Hilfsmerker sein, vom Typ INOUT.

  9. #8
    Registriert seit
    10.12.2003
    Beiträge
    34
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    falls Du die FC 2 - Aufrufe mit Lokaldaten (#) beschaltest wird es auch nicht funktionieren, da darin keine Werte über Bausteingrenzen hinweg speichern kannst.
    m.f.G
    RonOro

  10. #9
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Code:
          CALL  FC     2
           C:=#C
           D:=#D
           Q:=#Merker1.1
    
          CALL  FC     2
           C:=#C
           D:=#Merker1.1
           Q:=#Merker2
    Mir fällt gerade auf, dass du vielleicht ein Pegelgetriggertes D-FlipFlop hast (eben ohne Hilfsmerker).
    Dann stell mal den Code so um:
    Code:
          CALL  FC     2
           C:=#C
           D:=#Merker1.1
           Q:=#Merker2
    
          CALL  FC     2
           C:=#C
           D:=#D
           Q:=#Merker1.1
    Denn er wird ja sequntiell ausgeführt und bei z.B. Clock=1 "fällt"
    das Ergebnis bis hinten durch.

  11. #10
    Registriert seit
    13.03.2004
    Beiträge
    135
    Danke
    10
    Erhielt 6 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Sorry für diese Frage, aber was macht ein D-Flip-Flop? Der Begriff
    Flipflop ist mir zwar bekannt, bekomme es aber trotzdem nicht zusammen.

    Gruss Hagen

Ähnliche Themen

  1. Eigener AMS/ADS Client
    Von Neals im Forum CODESYS und IEC61131
    Antworten: 29
    Letzter Beitrag: 15.01.2016, 20:46
  2. BAUSTEINHILFE eigener Bausteine mittels Taste "F1"
    Von churchill im Forum PC- und Netzwerktechnik
    Antworten: 32
    Letzter Beitrag: 03.07.2007, 09:09
  3. eigener Hilfetext in STEP7 Bibliothek
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 09.05.2007, 12:33
  4. Eigener Bereich Antriebstechnik
    Von Maxl im Forum Stammtisch
    Antworten: 8
    Letzter Beitrag: 17.02.2006, 01:55
  5. Bausteine erstellen
    Von Anonymous im Forum Stammtisch
    Antworten: 2
    Letzter Beitrag: 28.10.2004, 09:38

Lesezeichen

Berechtigungen

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