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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: Wann FC und wann FB?

  1. #11
    Registriert seit
    23.03.2011
    Beiträge
    32
    Danke
    0
    Erhielt 2 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ist es wirklich war? Das ist Stoff vom S7-Serv2!!!!
    Mach einfach immer FC, der Inschdanz-DB wirt nur von wenige, gantz Schlaue geprauchd!

  2. #12
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.572
    Danke
    63
    Erhielt 259 Danke für 219 Beiträge

    Standard

    Hast Du Deine Pillen wieder nicht genommen???
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

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

    Standard

    Vielleicht hat er ja nur eine Signatur ala VL vergessen?
    Gruß
    190B

  4. #14
    Registriert seit
    06.02.2009
    Beiträge
    28
    Danke
    3
    Erhielt 6 Danke für 3 Beiträge

    Standard

    Zitat Zitat von Mephisto Beitrag anzeigen
    Wenn ich nun ein Programm schreiben möchte, in dem nur einige Eingänge logisch verknüpft und auf Merker und Ausgänge geschrieben sollen und vielleicht noch der eine oder andere Timer/Zähler mit im Spiel ist, reicht dann ein FC, oder muss ich dann einen FB für mein Programm kreieren?
    Und wenn ich einen FB kreiere, muss ich dann einen Instanz-DB dazu machen? Reinspeichern tu ich ja eigentlich nichts. Oder treiben da die Zähler/Timer ihr eigenes Spiel?

    Bitte entschuldigt nochmals die dumme Frage
    Es gibt keine dummen Fragen, nur dumme Antworten

    Also.... Ich hab schon viele Maschinen programmiert, die nur mit OB1 und lauter FC`s ausgestattet waren, dazu alles in FUP! Das hatte noch den Vorteil, das der Inbetriebnehmer und Instandhalter sich schnell und prima im Programm zurecht fanden.

    Bitte nicht nur einen riesigen FC erstellen, sondern mehrere, nach (Maschinen)funktionen getrennt.

    Zähler und Timer sind eigene und komplette Funktionen, du musst hier nichts weiter beachten. Die können im OB, FB oder FC stehen. (Die Siemens- Zähler habe ich noch nie verwendet, da programiere ich lieber selber einen Zähler mit einem MD, erhöhe den um 1 und frage dann den Zustand ab)

    Ein grosser Unterschied zwischen FC und FB ist die Remanenz der lokalen Variablen, diese werden beim FB im DB gespeichert (DB`s sind grundsätzlich remanent), Lokalvariablen im FC sind im nächsten Zyklus alle auf 0.

    Eine beliebte Prüfungsfrage ist: Mit Flanke M1.5 soll MW660 um 1 erhöht werden, funktioniert das hier im FC?

    U M 1.5
    FP #H1_Aenderung
    SPBNB _001
    L MW 660
    L 1
    +I
    T MW 660
    _001: NOP 0


    Antwort: Im FC nicht, im FB ja


    Bei Verwendung von FC kann man aber remanente Merker verwenden (Remanenz wird in der CPU eingestellt, Standard 16?) oder "unabhängige" DB verwenden, hier muss die Datenstruktur aber von Hand erstellt werden (Beim Instanz- DB eines FB wird die Datenstruktur automatisch erstellt).

    Man muss aber keine DB verwenden, heutzutage gibt es genug Merker, die sollten bei kleinen Maschinen reichen!

    Vorteil eines FB ist, das man hier eine Funktion programmieren kann, die man dann mehrmals mit verschiedenen DB aufgerufen wird. Ist elegant, aber kompliziert um online zu beobachten, besonders wenn mehrere Funktionen ineinander aufgerufen werden, insofern freue ich mich, wenn darauf verzichtet wird.
    Ritterlicher Verfechter der nachvollziehbaren und übersichtlichen Programmierung

    >>> Das Problem steht zu 95% vor der Maschine

    Meine Umgebung (meistens): Win XP, S7 V5.4 SP5, 840D sl, Transline

  5. Folgende 4 Benutzer sagen Danke zu Pittie für den nützlichen Beitrag:

    Mephisto (27.10.2011),o.s.t. (27.10.2011),Rudi (30.10.2011),Technikfreak (28.10.2011)

  6. #15
    Registriert seit
    14.10.2010
    Ort
    Telgte
    Beiträge
    654
    Danke
    97
    Erhielt 129 Danke für 99 Beiträge

    Standard

    Hi Pittie,

    Lokalvariablen im FC sind im nächsten Zyklus alle auf 0.
    Das ist, so glaube ich, nicht ganz korrekt.
    Ich würde sagen die Lokalvariablen sind nicht klar definiert.
    Je nach Aufrufstruktur und damit welcher Belegung im Lokaldatenstack stehen dort die richtigen Daten oder die völlig falschen.
    Man darf sich nicht darauf verlassen das dort die richtigen Daten stehen,
    aber darf sich auch nicht darauf verlassen das dort alles auf NULL steht.
    Lokale Variablen in einem FC sollten vor einer Abfrage innerhalb des FC´s geschrieben worden sein.

    So habe ich das in Erinnerung, aber ich lasse mich (wenn richtig) gerne eines besseren belehren.

    Gruß
    Toki
    Programmierumgebung: Step7 V5.5, WinCCflex2008-SP3, TIA-PortalV13, MicroWinV4.0

  7. Folgender Benutzer sagt Danke zu Toki0604 für den nützlichen Beitrag:

    Rudi (30.10.2011)

  8. #16
    Registriert seit
    17.05.2010
    Ort
    Paderborn
    Beiträge
    824
    Danke
    84
    Erhielt 125 Danke für 94 Beiträge

    Standard

    Zitat Zitat von Toki0604 Beitrag anzeigen
    Hi Pittie,

    Das ist, so glaube ich, nicht ganz korrekt.
    Ich würde sagen die Lokalvariablen sind nicht klar definiert.
    Je nach Aufrufstruktur und damit welcher Belegung im Lokaldatenstack stehen dort die richtigen Daten oder die völlig falschen.
    Man darf sich nicht darauf verlassen das dort die richtigen Daten stehen,
    aber darf sich auch nicht darauf verlassen das dort alles auf NULL steht.
    Lokale Variablen in einem FC sollten vor einer Abfrage innerhalb des FC´s geschrieben worden sein.

    So habe ich das in Erinnerung, aber ich lasse mich (wenn richtig) gerne eines besseren belehren.

    Gruß
    Toki
    Stimme dem voll und ganz zu. Ich habe das vor längerer Zeit auch mal als Problem gehabt! Also evtl. den Inhalt vorher initialisieren (löschen)!
    Grüße
    Michael

    1001101110110100... Das ist meine Welt

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

    Standard

    Eine beliebte Prüfungsfrage ist: Mit Flanke M1.5 soll MW660 um 1 erhöht werden, funktioniert das hier im FC?

    U M 1.5
    FP #H1_Aenderung
    SPBNB _001
    L MW 660
    L 1
    +I
    T MW 660
    _001: NOP 0


    Antwort: Im FC nicht, im FB ja
    Naja, das stimmt so auch nicht ganz. In einem FC geht das auch.
    Du hast leider nicht beschrieben was #H1_Aenderung für ne Variable ist.
    Wenn es eine INOUT-Variable ist, funktioniert das auch, bei Anlegen eines z.B. remanenten Merkers von Aussen.

    @Toki:
    Ich stimme dir voll und ganz zu.

    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

  10. #18
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    Zitat Zitat von Pittie Beitrag anzeigen
    ...
    Ein grosser Unterschied zwischen FC und FB ist die Remanenz der lokalen Variablen, diese werden beim FB im DB gespeichert (DB`s sind grundsätzlich remanent), Lokalvariablen im FC sind im nächsten Zyklus alle auf 0.

    ...
    Datenbausteine sind nicht grundsätzlich remanent. Es gibt die Baustein-Eigenschaft "Non-Retain" die für die Remanenz zuständig ist.
    In welchen Fällen sie gilt, kannst du in den angegebenen FAQs nachlesen.
    Es könnte dir also jemand deine Remanenz geändert haben.

    * Remanenzverhalten der S7-300 CPU 31x sowie der Komplettgeräte C7-6xx mit MMC
    * Remanenzverhalten der S7-400 CPUs und der CPU 318-2 CPUs
    * Welche unterschiedliche Definitionen der Remanenz sind zwischen STEP 7 V10.5 und V11 beim Erzeugen eines Global-DBs zu beachten?

    P.S.
    Ist der von VL angefragte FAQ-Artikel schon in Arbeit?

  11. Folgender Benutzer sagt Danke zu marlob für den nützlichen Beitrag:

    Rudi (30.10.2011)

  12. #19
    Registriert seit
    11.02.2007
    Beiträge
    90
    Danke
    32
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Zitat Zitat von MCerv Beitrag anzeigen
    Stimme dem voll und ganz zu. Ich habe das vor längerer Zeit auch mal als Problem gehabt! Also evtl. den Inhalt vorher initialisieren (löschen)!
    Das hatte ich auch schon mal und hab sparsam geguckt
    Ich hab mit temp-variablen sprungbefehle ausgeführt und auf einmal wurden prg-zeilen übersprungen die nach der logik her nicht übersprungen werden durften.

    Danach hab im ersten NW (FC) alle temp-variablen auf 0 gesetzt und das Problem war weg.

    Später hab ich das auch in einem anderen Prg. gesehen. Der Programmierer der Maschine hatte wohl ähnliche Probleme.

    mfg
    elektromensch
    Zitieren Zitieren jau  

  13. #20
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.572
    Danke
    63
    Erhielt 259 Danke für 219 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nach dem was ich darüber zu wissen glaube, ist das eine Krücke...

    Wenn der Zustand von TEMP-Variablen bei der Verwendung nicht eindeutig ist, darf man diese einfach nicht verwenden. Sofern der Zustand über mehr als einen Zyklus gespeichert werden soll, muss man eben eine STAT-Variable oder einen Merker, etc. verwenden.

    Wenn vor der Verwendung eine Zuweisung gemacht wird, ist der Zustand eindeutig. Dann muss man auch nicht "initalisieren". Da sehe ich den Sinn von TEMP-Variablen.
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

Ähnliche Themen

  1. Wann NH-Sicherung und wann DIAZED/NEOZED
    Von Snake787 im Forum Schaltschrankbau
    Antworten: 10
    Letzter Beitrag: 01.04.2011, 18:14
  2. Oktoberfest Wer? Wann?
    Von maxi im Forum Stammtisch
    Antworten: 0
    Letzter Beitrag: 21.09.2007, 12:19
  3. Wann Profinet und wann Profibus
    Von Johannes Ashur im Forum Feldbusse
    Antworten: 7
    Letzter Beitrag: 13.07.2007, 08:33
  4. Antworten: 4
    Letzter Beitrag: 25.04.2006, 20:28

Lesezeichen

Berechtigungen

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