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

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

Thema: Was sind denn IEC-Timer?!

  1. #1
    Registriert seit
    28.01.2010
    Beiträge
    76
    Danke
    5
    Erhielt 3 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Mahlzeit

    ich bin hier im Forum nun schon des Öfteren über die "IEC-Timer" gestoßen. In der Siemens Doku kann ich aber über IEC im Allgemeinen nicht viel finden.
    Was ist IEC, muss ich was kaufen um´s nutzen zu können?

    ...sorry, wenn´s für den ein oder andren vielleicht doof klingt, aber ich hab keine Ahnung

    Wenn ich das richtig verstanden habe, kann ich es mir damit ersparen die "globalen" Timer zu verwenden?!


    Viele Grüße
    Mike
    Zitieren Zitieren Was sind denn IEC-Timer?!  

  2. #2
    Registriert seit
    04.04.2006
    Beiträge
    239
    Danke
    31
    Erhielt 61 Danke für 51 Beiträge

    Standard

    schau dir mal in der Standard Library unter System Function Blocks die Bausteine SFB3, SFB4 und SFB5 an, das sind die von dir gesuchten IEC-Timer. Sinnvoll einsetzen kannst du die IEC-Timer in multiistanzfähigen FBs. Ansonsten musst du jedem Timer einen Instanz-DB zuweisen.

    Gruß Woldo

  3. #3
    Registriert seit
    28.01.2010
    Beiträge
    76
    Danke
    5
    Erhielt 3 Danke für 1 Beitrag

    Standard

    hmmm, ok, da wäre ich dann bei meinen nächsten Problem : Multiinstanz! Kann mir zwar was drunter vorstellen, hatte aber noch nie was damit zu tun.

    Beispiel: Ich habe 2 identische Vorrichtungen mit pneumatischen Spannfunktionen usw.

    Im Moment habe ich für jede der Vorrichtung eine FC erstellt (FC10 und FC11) mit exakt der gleichen Logig. Der Unterschied liegt lediglich im EA Bereich und in den Timern (FC10: EA 80...100 und Timer 40...49, FC11: EA 100...120 und Timer 50...59). Zusätzlich speichere ich bestimmte Informationen zu jeder Vorrichtung in einem DB (DB10 und DB11).

    Da die Logig absolut gleich ist, würde ich das gerne in eine FC (oder nimmt man da lieber nen FB?!) packen und nur noch auf den EA-Bereich bzw. den zugehörigen DB verweisen. - Im Moment hindern mich die Timer an diesem Vorhaben.
    Wenn ich das mit den IEC-Timern richtig verstehe müsste ich die 10 Timer dann aber nochmals in je einen eigenen FB packen oder?!

    Gruß Mike

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo,
    und das, was du da beschreibst kann man über Instanzen (unterschiedliche Zuständigkeiten) des gleichen FB's lösen.
    Alle Daten, die du jetzt in deinem DB abspeicherst, verlagerst du dann in den Instanz-DB des FB. Die Variablen werden dann im STAT-Bereich des FB hinterlegt. Timer würdest du nicht mehr verwenden, sondern die genannten SFB's, denen du eben keinen neuen DB zuweist sondern einen Teil des DB's des aufrufenden FB's. Sie werden dann wie eine Variable im STAT-Bereich des FB deklariert.

    Hilft dir das ?

    Gruß
    LL

  5. #5
    Registriert seit
    18.11.2008
    Beiträge
    152
    Danke
    34
    Erhielt 17 Danke für 15 Beiträge

    Standard

    Hallo,

    vielleicht hilft dieser Link zum besseren Verständnis:

    http://www.automatisierungsprofi.de/TON/index.htm

    Gruß Andy

  6. #6
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Eine Siemens-FAQ zum Thema Multiinstanz findest Du hier:

    ID18723826 Wie können Multiinstanzen erstellt und aktualisiert werden?

    Ein Programmbeispiel für die Verwendung des SFB4 TON in einem FB als Multiinstanz findest Du hier:

    http://www.sps-forum.de/showpost.php...66&postcount=1

    http://www.sps-forum.de/showpost.php...3&postcount=31

    Gruß Kai

  7. #7
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Nachtrag:

    Bei der Verwendung des SFB4 TON und einer Vorgabe des Zeitwertes PT = T#0MS sind die beiden folgenden Threads zu beachten:

    http://www.sps-forum.de/showthread.php?t=17257

    http://www.sps-forum.de/showthread.php?t=24195

    Gruß Kai

  8. #8
    Registriert seit
    28.01.2010
    Beiträge
    76
    Danke
    5
    Erhielt 3 Danke für 1 Beitrag

    Standard

    das Beispiel ist super! Ich glaube, es verstanden zu haben.
    Allerdings hänge ich grad an der EA-Sache.

    Dem FB für die Vorrichtung übergebe ich dann einen Pointer auf den Beginn des EA-Bereichs. Also P#E80.0 bzw. P#100.0.

    Wenn ich nun die Signale von EW80 und EW82 in den DB schreiben will - wie geht das?!

    Im FB deklariere ich ein "IN-Signal" als Pointer (E_Bereich:=POINTER), beim Aufruf übergebe ich dann die Adresse E80.0. Aber wie bekomme ich jetzt die Signale (4 Bytes) in den DB (STAT-Bereich)?

    Viele Grüße
    Mike

  9. #9
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von MikeJ Beitrag anzeigen
    Beispiel: Ich habe 2 identische Vorrichtungen mit pneumatischen Spannfunktionen usw.

    Im Moment habe ich für jede der Vorrichtung eine FC erstellt (FC10 und FC11) mit exakt der gleichen Logig. Der Unterschied liegt lediglich im EA Bereich und in den Timern (FC10: EA 80...100 und Timer 40...49, FC11: EA 100...120 und Timer 50...59). Zusätzlich speichere ich bestimmte Informationen zu jeder Vorrichtung in einem DB (DB10 und DB11).

    Da die Logig absolut gleich ist, würde ich das gerne in eine FC (oder nimmt man da lieber nen FB?!) packen und nur noch auf den EA-Bereich bzw. den zugehörigen DB verweisen. - Im Moment hindern mich die Timer an diesem Vorhaben.
    Beim Aufruf eines FC oder FB kannst Du die Nummer der Zeitfunktion sowie die Länge der Zeitdauer als Parameter übergeben.

    Du musst also nicht unbedingt mit IEC-Timern und mit Multiinstanzen arbeiten.

    Code:
    ORGANIZATION_BLOCK OB 1
    TITLE =Hauptprogramm
    //16
    AUTHOR : Kai
    FAMILY : SPSForum
    NAME : Zeitfunk
    VERSION : 1.0
     
    VAR_TEMP
      OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1)
      OB1_SCAN_1 : BYTE ; //1 (Cold restart scan 1 of OB 1), 3 (Scan 2-n of OB 1)
      OB1_PRIORITY : BYTE ; //Priority of OB Execution
      OB1_OB_NUMBR : BYTE ; //1 (Organization block 1, OB1)
      OB1_RESERVED_1 : BYTE ; //Reserved for system
      OB1_RESERVED_2 : BYTE ; //Reserved for system
      OB1_PREV_CYCLE : INT ; //Cycle time of previous OB1 scan (milliseconds)
      OB1_MIN_CYCLE : INT ; //Minimum cycle time of OB1 (milliseconds)
      OB1_MAX_CYCLE : INT ; //Maximum cycle time of OB1 (milliseconds)
      OB1_DATE_TIME : DATE_AND_TIME ; //Date and time OB1 started
    END_VAR
    BEGIN
    NETWORK
    TITLE =Zeitfunktionen 1
     
          U     E     10.0; 
          =     L     20.0; 
          BLD   103; 
          U     E     10.1; 
          =     L     20.1; 
          BLD   103; 
          CALL FC   100 (
               Eingang_1                := L     20.0,
               Zeitfunktion_1           := T     10,
               Zeitdauer_1              := S5T#10S,
               Eingang_2                := L     20.1,
               Zeitfunktion_2           := T     11,
               Zeitdauer_2              := S5T#15S,
               Ausgang_1                := A     10.0,
               Ausgang_2                := A     10.1);
          NOP   0; 
     
    NETWORK
    TITLE =Zeitfunktionen 2
     
          U     E     20.0; 
          =     L     20.0; 
          BLD   103; 
          U     E     20.1; 
          =     L     20.1; 
          BLD   103; 
          CALL FC   100 (
               Eingang_1                := L     20.0,
               Zeitfunktion_1           := T     20,
               Zeitdauer_1              := S5T#10S,
               Eingang_2                := L     20.1,
               Zeitfunktion_2           := T     21,
               Zeitdauer_2              := S5T#15S,
               Ausgang_1                := A     20.0,
               Ausgang_2                := A     20.1);
          NOP   0; 
     
    END_ORGANIZATION_BLOCK
    Code:
    FUNCTION FC 100 : VOID
    TITLE =Zeitfunktionen
    //16
    AUTHOR : Kai
    FAMILY : SPSForum
    NAME : Zeitfunk
    VERSION : 1.0
     
    VAR_INPUT
      Eingang_1 : BOOL ; 
      Zeitfunktion_1 : TIMER ; 
      Zeitdauer_1 : S5TIME ; 
      Eingang_2 : BOOL ; 
      Zeitfunktion_2 : TIMER ; 
      Zeitdauer_2 : S5TIME ; 
    END_VAR
    VAR_OUTPUT
      Ausgang_1 : BOOL ; 
      Ausgang_2 : BOOL ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =Zeitfunktion 1
     
          U     #Eingang_1; 
          L     #Zeitdauer_1; 
          SE    #Zeitfunktion_1; 
          NOP   0; 
          NOP   0; 
          NOP   0; 
          U     #Zeitfunktion_1; 
          =     #Ausgang_1; 
     
    NETWORK
    TITLE =Zeitfunktion 2
     
          U     #Eingang_2; 
          L     #Zeitdauer_2; 
          SE    #Zeitfunktion_2; 
          NOP   0; 
          NOP   0; 
          NOP   0; 
          U     #Zeitfunktion_2; 
          =     #Ausgang_2; 
     
    END_FUNCTION
    Gruß Kai
    Angehängte Dateien Angehängte Dateien

  10. #10
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von MikeJ Beitrag anzeigen
    Dem FB für die Vorrichtung übergebe ich dann einen Pointer auf den Beginn des EA-Bereichs. Also P#E80.0 bzw. P#100.0.

    Wenn ich nun die Signale von EW80 und EW82 in den DB schreiben will - wie geht das?!
    Wenn Du das EW80 und EW82 übergeben willst, dann musst Du nicht mit Pointern arbeiten.

    Du kannst direkt das ED80 als IN-Parameter (DWORD) am FC oder FB übergeben.

    Gruß Kai

Ähnliche Themen

  1. Wo ist denn UG
    Von jabba im Forum Stammtisch
    Antworten: 2
    Letzter Beitrag: 13.12.2009, 12:01
  2. Suche Ersatz für IFM TIMER LG ( Logik Timer)
    Von GrafLaugenkotz im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 16.01.2007, 17:02
  3. Was macht SCL denn da mit dem AR2?
    Von plc_tippser im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 13.07.2005, 10:03
  4. ICQ? was ist denn das
    Von plc_tippser im Forum Stammtisch
    Antworten: 4
    Letzter Beitrag: 02.08.2004, 08:31

Lesezeichen

Berechtigungen

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