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

Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: Erstellen eigener log. Bausteine

  1. #1
    Manticor Gast

    Default


    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
    Reply With Quote Reply With Quote Answered: Erstellen eigener log. Bausteine  

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


  3. #2
    Join Date
    17.06.2004
    Location
    Offenau
    Posts
    4,079
    Danke
    210
    Erhielt 466 Danke für 366 Beiträge

    Default

    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
    Reply With Quote Reply With Quote Hilfe...  

  4. #3
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,815
    Danke
    747
    Erhielt 3,129 Danke für 2,233 Beiträge

    Default

    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

    Default

    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

    Default

    Danke Ralle,

    ich werde es gleich mal testen.

  7. #6
    Manticor Gast

    Default

    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
    Join Date
    19.06.2003
    Posts
    2,299
    Danke
    85
    Erhielt 274 Danke für 179 Beiträge

    Default

    Quote Originally Posted by 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
    Join Date
    10.12.2003
    Posts
    34
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    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
    Join Date
    19.06.2003
    Posts
    2,299
    Danke
    85
    Erhielt 274 Danke für 179 Beiträge

    Default

    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
    Join Date
    13.03.2004
    Location
    Nordhessen
    Posts
    144
    Danke
    12
    Erhielt 6 Danke für 6 Beiträge

    Default


    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

Similar Threads

  1. TIA TIA Openness: Bausteine erstellen
    By wbach in forum Simatic
    Replies: 1
    Last Post: 31.05.2017, 09:58
  2. Replies: 2
    Last Post: 18.06.2012, 13:09
  3. Erstellen eigener Bibliotheken (intern oder extern?)
    By twincatter in forum CODESYS und IEC61131
    Replies: 2
    Last Post: 09.12.2011, 12:52
  4. BAUSTEINHILFE eigener Bausteine mittels Taste "F1"
    By churchill in forum PC- und Netzwerktechnik
    Replies: 32
    Last Post: 03.07.2007, 09:09
  5. Bausteine erstellen
    By Anonymous in forum Stammtisch
    Replies: 2
    Last Post: 28.10.2004, 09:38

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •