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

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

Thema: Wie programmiere ich richtig ein Timer oder Zähler in einen FB bei einer S7 1200

  1. #1
    Registriert seit
    28.10.2011
    Beiträge
    33
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,
    Ich habe folgendes Problem. In einen FB habe ich einen Timer und Zähler programmiert für eine Dosierpumpe in meinen Meerwassersbecken. So , wenn ich den FB einmal nutze läuft der Probelmlos. Wenn ich für zwei Pumpen den FB benutze läuft die zweie Pumpe zwar an aber es wird nicht gezählt und es läuft auch keine Zeit ab. Deswegen stoppt die Pumpe nicht.
    Als Grundlage für die Programmierung habe ich das M3 Modul IEC- Zeiten und IEC- Zähler bei der SIMATIC S7-1200 verwendet.
    Dabei schreibt Siemens....Einige Befehle wie Zeiten und Zähler verhalten sich wie Funktionsbausteine. Werden diese aufgerufen, so stellen sie ebenfalls Instanzen dar und benötigen einen zugeordneten
    Speicherbereich z.B. in Form eines Instanz- Datenbausteins.
    und genau hier ist bestimmt der Hund begaben!!!
    Wenn ich also einen Timer/Zähler in einen FB programmiere so lege ich doch nur einen Intanzdatenbaustein an für den Timer/Zähler und nicht drei.
    Meine Frage ist:
    Wie muss ich nun den FB richtig programieren, damit ich ihn für drei/vier Pumpen benutzen kann. Also ein Aufruf FB für eine Pumpe.
    Welche Information braucht ihr noch für meine Fragestellung

    Danke im voraus und ein Gruß von meinen Fischis

    Gruß Jörg
    Zitieren Zitieren Wie programmiere ich richtig ein Timer oder Zähler in einen FB bei einer S7 1200  

  2. #2
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Der Timer muss als Multiinstanz eingerichtet werden, damit der aufrufende FB mehrfach nutzbar ist.
    PS: Und der aufrufende FB sollte möglichst nur Lokaldaten enthalten.

    Ich denke, es wird einfacher, wenn Du mal einen Screenshot oder den pdf-Ausdruck von Deinem FB hier postest.
    Oder noch besser das Projekt als Archiv, wenn es nicht der Geheimhaltung unterliegt.

  3. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    leix (04.09.2013)

  4. #3
    leix ist offline Benutzer
    Themenstarter
    Registriert seit
    28.10.2011
    Beiträge
    33
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke, Danke hucki bin darüber

  5. #4
    leix ist offline Benutzer
    Themenstarter
    Registriert seit
    28.10.2011
    Beiträge
    33
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

  6. #5
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    In deinem Dosierbaustein (FB3) rufst du einen Timer auf dem du einen externen Instanzdb zuweist. Das darfst du tun. Dann darf FB3 aber nur ein einziges mal aufgerufen werden.

    Wenn du FB3 wirklich öfter aufrufen willst. Darf in diesem KEIN FB mit einem Globalen DB aufgerufen werden, alle FB müssen im STAT Bereich des FB3 deklariert werden. Das hast du teilweise auch gemacht. Nämlich als IEC_TIMER_0_DB11 Unglücklicher Name aber okay. Diesen Namen gibst du statt des DB Namens beim Timeraufruf an.

    Desweiteren empfehle ich dir keine FCs zur Programmkoordination zu nehmen. Ggfl brauchst du in deinem FC wo der FB3 aufgerufen wird ja diesen FB3 zweimal und dann doch nochmal n TON und vielleicht noch einen FB dann machst du in diesem FC diverse Aufrufe mit eigenen IDB. Diese könntest du viel schöner und übersichtlicher in der Schnittstelle eines FBs deklarieren der dann nur einen IDB für sich verwendet.


    mfG René
    Geändert von vollmi (02.09.2013 um 17:49 Uhr)

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

    leix (04.09.2013)

  8. #6
    leix ist offline Benutzer
    Themenstarter
    Registriert seit
    28.10.2011
    Beiträge
    33
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Rene, Hallo Leute,
    Darf in diesem KEIN FB mit einem Globalen DB aufgerufen werden, alle FB müssen im STAT Bereich des FB3 deklariert werden. Das hast du teilweise auch gemacht. Nämlich als IEC_TIMER_0_DB11 Unglücklicher Name aber okay. Diesen Namen gibst du statt des DB Namens beim Timeraufruf an.
    ok habe ich gemacht.....das gleiche

    es nicht gezählt und es wird nicht gezeitet

    oder muss ich jetzt den den FB drei mal unter anderen Namen aufrufen? Wo ist da der Sinn?

    Gruß Jörg und bastel weiter

  9. #7
    leix ist offline Benutzer
    Themenstarter
    Registriert seit
    28.10.2011
    Beiträge
    33
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hier noch ein paar Bilder,
    S7 1200_7.JPGS7 1200_5.JPGS7 1200_6.JPG

  10. #8
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    Zitat Zitat von leix Beitrag anzeigen
    oder muss ich jetzt den den FB drei mal unter anderen Namen aufrufen? Wo ist da der Sinn?
    Genau so. Jeder fb braucht natürlich seinen eigenen speicherbereich. Das ist der sinn dahinter.
    Du brauchst t.b zwei zeiten in einem fb. Dann deklarierst du dieße im stat bereich dieses fb.
    Diesen fb brauchst du jetzt z.b. Auch mehrmals. Dann braucht entweder jeder aufruf einen igenen instanzdb. Oder du deklarierst diesen wiederum im stat des aurufenden fbs. Erst dem obersten fb in dem alles andere drin ist, dem gibst du dann einen eigenen instanzdb.

    Mfg René

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

    leix (04.09.2013)

  12. #9
    leix ist offline Benutzer
    Themenstarter
    Registriert seit
    28.10.2011
    Beiträge
    33
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Rene,
    Ich habe in den drei FC(FC 13_Dosier1,FC 14_Dosier2,FC 15_Dosier3) den FB Dos_2 (FB4) aufgerufen und alles "beschaltet". Also habe ich auch an den Eingängen und Ausgängen für die Zeiten und Zähler meinen Datenbaustein(DE_PCL2) für Eingängen und meinen Datenbaustein (DA_PCL2) programmiert.
    Jetzt wird gezählt und gezeitet aber sobald die erste Zeit oder der erste Zähler sein Endwert erreicht hat werden alle Ausgänge abgeschalten wenn alle zeitgleich eingeschalten wurden. Wenn sie nacheinander aktiviert , werden Dosierpumpe2 und Dosierpumpe3 nicht abgeschaltet.
    Also mache ich etwas falsch. Aber was!

    Ich mach jetzt noch ein paar Bilder von meinen Datenbausteinen

    Gruß Jörg

  13. #10
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hat dein fb4 auch jedesmal eine andere instanz?

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 29.09.2012, 13:55
  2. Wie programmiere ich das??
    Von Tompson im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 28.10.2009, 11:30
  3. Antworten: 5
    Letzter Beitrag: 18.08.2009, 19:35
  4. Antworten: 15
    Letzter Beitrag: 26.02.2006, 18:20
  5. wie halte ich einen timer an?
    Von mg im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 13.01.2005, 12:53

Lesezeichen

Berechtigungen

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