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

Ergebnis 1 bis 7 von 7

Thema: TON und TOF mit Datenbaustein im FB bibliotheksfähig erzeugen

  1. #1
    Registriert seit
    06.02.2007
    Beiträge
    105
    Danke
    10
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,
    da für den TON und TOF Baustein ein Datenbaustein benötigt wird, frage ich mich, wie diese Schaltung bibliotheksfähig gemacht werden kann.

    Beispiel: Im FB1, der universell verwendet werden soll, wird eine Einschaltverzögerung benötigt.
    Dazu wird der TON Baustein verwendet, der einen Datenbaustein benötigt.
    Da ich den FB1 mehrfach benutzen möchte, kann ich nicht den Datenbaustein z.B.DB1 direkt vorgeben.

    Wisst ihr, wie ich das Problem lösen kann?

    In der Classic habe ich einfach SE oder SA Bausteine verwendet, die keinen DB benötigten.
    Danke
    Zitieren Zitieren TON und TOF mit Datenbaustein im FB bibliotheksfähig erzeugen  

  2. #2
    Registriert seit
    07.06.2006
    Ort
    Bayern
    Beiträge
    623
    Danke
    27
    Erhielt 156 Danke für 139 Beiträge

    Standard

    Stichwort: Multiinstanz

  3. #3
    Registriert seit
    17.09.2015
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo mwissen,

    Hierfür verwendet man die s.g. "Multiinstanzen". Um dies durchzuführen must du Timer mit dem Datentyp TON oder TOF als statische Variable anlegen.
    Wenn du das im TIA Portal so eingibst, wird bspw. "Timer1" von Datentyp "TON_TIME" erzeugt.
    Programmierst du in FUP, musst du dann den Baustein ganz normal einfügen, aber anstatt einen neuen DB anzulegen, gibst du die Multiinstanz "Timer1" als Datenablage vor.

    Soweit verstanden?
    Ich hab das erst nach ein paar eigenen Tests vollständig erfasst, Rückfragen sind also gerne gesehen

  4. #4
    mwissen ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.02.2007
    Beiträge
    105
    Danke
    10
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank, wir probieren es gleich aus.


    Es hat ganz einfach funktioniert. Einfach eine Multinstanz statt einen DB und schon war die Schaltung bibliotheksfähig. Vielen Dank. Hat mir sehr geholfen.
    Geändert von mwissen (21.09.2015 um 10:41 Uhr)

  5. #5
    Registriert seit
    24.10.2017
    Beiträge
    7
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Stamm oder jeder andere Nutzer der sich angesprochen fühlt,

    es ist zwar bereits eine Weile her aber vielleicht kann mir hier ja trotzdem noch geholfen werden
    Ich habe einen FB, in dem ich mehrere Timer verwenden will. Da ich aber keine 10 Timer mit jeweiligen DBs anlegen will, hab ich gedacht, einen Timer (oder mehrere für eine jeweilige bestimmte Zeit - also einen für 5Sekunden, einen für 2 Sekunden usw) als Multiinstanz anzulegen und diesen dann immer zu verwenden.

    Allerdings klappt das nicht so wie ich mir das vorgestellt habe. Sobald der Timer das erste Mal durchlaufen ist und die zeit abgelaufen, ist das bei jedem nachfolgenden Timer so, auch wenn erst aus dem FB rausgegangen wird in den aufrufenden FB. Als Foto mal noch ein Code-Beispiel.

    Timer_Multiinstanz.jpg

    Ich nehme an ich mache einfach einen sehr trivialen Fehler. Aber ich hab viel gegooglet und nichts hilfreiches gefunden, und auch ausprobiert habe ich shcon alles was mir eingefallen ist. Bin recht neu im Thema SPS-Programmierung, deswegen verzeiht mir bitte etwaige dumme Fragen

    Über Hilfe würde ich mich echt sehr freuen

    Gruß
    Mone

  6. #6
    Registriert seit
    27.06.2015
    Ort
    Hamburg
    Beiträge
    173
    Danke
    23
    Erhielt 41 Danke für 36 Beiträge

    Standard

    Moin!

    Ein Grundsatzproblem in deinem Code ist, dass du deine Timer bedingt aufrufst. Das darf man schlichtweg nicht. Also die Timer immer Aufrufen und nur deinen Eingang vom Timer bedingt kippen lassen.

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

    mone_284 (23.11.2017)

  8. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn du nur einen Timer nutzen willst, dann schreibe diesen Timer "außerhalb" deines bedingten Codes und starte ihn über ein Datenbit, welches du in deinen bedingten Anweisung setzen und rücksetzen kannst.
    Im Code also Datenbit ein, dann warten auf Timerausgang, Datenbit wieder aus.
    Wichtig ist, dass ein Timer eine Flanke zum Starten benötigt. Du mußt also in jedem Fall sicherstellen, dass dein Datenbit einmal mit "False" an deinem Timer anliegt, bevor du es wieder auf True steuerst.
    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

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

    mone_284 (23.11.2017)

Ähnliche Themen

  1. Step 7 TON/TOF mit "MM:SS" beschalten und zurücklesen
    Von Waelder im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 22.01.2014, 10:22
  2. Wie TON und TOF Bausteine in SCL aufrufen?
    Von Firefly87 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.04.2012, 18:01
  3. Tof als Ton und Ton als PT usw.
    Von Dar1gaaz im Forum Programmierstrategien
    Antworten: 2
    Letzter Beitrag: 20.03.2009, 19:53
  4. S7 200er CPU 212 TOF mit TON :-)
    Von veritas im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 06.01.2009, 10:16
  5. Reset bei TP, TON und TOF
    Von ogstyle im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 02.08.2007, 07:02

Stichworte

Lesezeichen

Berechtigungen

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