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

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

Thema: Counter in einem DB

  1. #1
    Registriert seit
    02.05.2006
    Beiträge
    46
    Danke
    37
    Erhielt 2 Danke für 2 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Kann man in einem Datenbaustein einen Counter definieren und welchen Anfangswert muss dieser dann haben?--> ein Beispiel!
    Zitieren Zitieren Counter in einem DB  

  2. #2
    Registriert seit
    04.04.2007
    Beiträge
    16
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Code:
          AUF   DB    10                    // Datenbaustein öffnen
    //**************************************************************************************
    //**  Aufwärtszähler
    //**************************************************************************************
          U     #Ereignis_1                 // Kommendes Ereignis
          FP    #Flanke_1                   // Steigende Flanke auswerten
          SPBN  m001                        // Keine steigende Flanke? Dann weiter. Sonst...
          L     DBW    0                    // Lade Zählerwort 1
          L     1                           // lade 1
          +I                                // addiere
          T     DBW    0                    // speicher neuen Zählerwert
    m001: L     DBW    0                    // Lade Zählerwert 1
          L     #CountMax                   // Maximalwert
          >=I                               // erreicht? Dann...
          =     #Erreicht_1                 // Erreicht = 1
          SPBN  m002                        // Nicht erreicht? Dann weiter. Sonst...
          T     DBW    0                    // Zähler auf Max
    //**************************************************************************************
    //**  Abwärtszähler
    //**************************************************************************************
    m002: U     #Ereignis_2                 // Kommendes Ereignis
          FP    #Flanke_2                   // Steigende Flanke auswerten
          SPBN  m003                        // Keine steigende Flanke? Dann weiter. Sonst...
          L     DBW    2                    // Lade Zählerwort 2
          L     1                           // lade 1
          -I                                // subtrahieren
          T     DBW    2                    // speicher neuen Zählerwert
    m003: L     DBW    2                    // Lade Zählerwert 2
          L     0                           // Minimalwert = 0
          <=I                               // erreicht? Dann...
          =     #Erreicht_2                 // Erreicht = 1
          SPBN  m004                        // Nicht erreicht? Dann weiter. Sonst...
          T     DBW    2                    // Zähler auf 0
    m004: NOP   0                           // Ende
    Zitieren Zitieren eine Möglichkeit  

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

    Mujo (23.04.2007)

  4. #3
    Avatar von Mujo
    Mujo ist offline Benutzer
    Themenstarter
    Registriert seit
    02.05.2006
    Beiträge
    46
    Danke
    37
    Erhielt 2 Danke für 2 Beiträge

    Frage

    Danke für die Antwort aber meine Frage ist wahrscheinlich viel simpler als sie erscheint!

    Ich möchte nicht die Symboltabelle von Step7 benutzen! Sondern alle Merker, Zeiten, Zähler usw. in einem DB definieren!

    Je nach Produkt (Teilenummer) schnappe ich mir dann den DB und die zugehörigen FCs/FBs und kann diese auf eine andere Anlage überspielen. Ein paar Zuweisungen der Datenbereiche und schon bin ich fertig.

    Mein Problem: In der Symboltabelle gebe ich z.B. normalerweise an: Symbol = Stückzähler, Adresse = Z1 und Datentyp COUNTER. Damit definiere ich den Zähler!

    Geht das auch in einem DB das ich dort einen Zähler (Counter) anlege!

    Danke für die Hilfe!

  5. #4
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Nein. Du kannst in einem DB keinen Zähler oder Timer anlegen.
    Ein DB (Datenbaustein) ist dazu gut das du Daten speichern kannst. Also du kannst dort zb in einem Word einen Wert von einem Zähler hinterlegen. (siehe Rumo) oder von einem Timer einen Zeitwert hinterlegen wenn du den Datentyp als S5Time anlegst.
    Merker kannst du zb schon machen. Ein Bit von einem Datenbaustein ist im Prinzip das selbe wie ein Merker.

    Was willst du eigentlich genau machen?
    Ist deine andere Anlage eine eigene SPS?
    Willst du das selbe Programm in einer anderen SPS verwenden?
    Oder nur die Daten (Werte von Zähler Timer usw) in einer anderen SPS abfragen?

    godi

  6. Folgender Benutzer sagt Danke zu godi für den nützlichen Beitrag:

    Mujo (23.04.2007)

  7. #5
    Avatar von Mujo
    Mujo ist offline Benutzer
    Themenstarter
    Registriert seit
    02.05.2006
    Beiträge
    46
    Danke
    37
    Erhielt 2 Danke für 2 Beiträge

    Lächeln

    Ich bin begeistert wie schnell man hier eine Antwort bekommt. Ein dickes Danke!

    Wir haben an jeder Spritzgussmaschine ein festes Grundgestell mit Peripherieplätzen. Das Master Programm auf der SPS ist immer das gleiche aber die Peripherie kann je nach Teilenummer auch mal zwischen den Spritzgussmaschinen wechseln. Deshalb will ich jeden Platz in sich Programmieren, so das ich im Notfall ein Paket aus FCs/FBs und einem globalen DB kopiere und auf einer anderen Anlage (Master) aufspiele. So kann ich dann von dem jeweiligen Platz die E/A dem DB zuweisen und es läuft.

    Danke nochmal!

    Gruß Mujo

  8. #6
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Am flexiblesten wärst du wenn du zb im OB1 die ganzen Eingänge und Augänge in einen Datenbaustein schreibst.
    Die Zähler mit Plus und Minus Programmierst (also keine Standartzähler) und die IEC Timer als Multiinstanz verwendest. Die ganzen Startzeitwerte und Zählwerte würde ich auch in den DB ablegen. Dann kannst du im DB die ganzen Werte beliebig ändern wie du willst.

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

    Mujo (24.04.2007)

  10. #7
    Registriert seit
    27.08.2003
    Ort
    Schweitenkirchen
    Beiträge
    472
    Danke
    101
    Erhielt 73 Danke für 59 Beiträge

    Standard

    Also wenn der "Notfall" öfter vorkommt,würd ich mir überlegen eine Codierung an die Peripherie zu bauen.

    z.b. mit 4 Eingängen kannst du dann 15 verschiedene Peripherien dran hängen und nach Programmnummer identifizieren.

    Im Programm dann nur noch auf die Programmnummer reagieren.

    So sparst dir den Eingriff in die SPS und hast weniger Stillstandszeiten...

    Gruss Andy

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

    Mujo (24.04.2007)

  12. #8
    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

    Zitat Zitat von Mujo Beitrag anzeigen
    Ich bin begeistert wie schnell man hier eine Antwort bekommt. Ein dickes Danke!

    Wir haben an jeder Spritzgussmaschine ein festes Grundgestell mit Peripherieplätzen. Das Master Programm auf der SPS ist immer das gleiche aber die Peripherie kann je nach Teilenummer auch mal zwischen den Spritzgussmaschinen wechseln. Deshalb will ich jeden Platz in sich Programmieren, so das ich im Notfall ein Paket aus FCs/FBs und einem globalen DB kopiere und auf einer anderen Anlage (Master) aufspiele. So kann ich dann von dem jeweiligen Platz die E/A dem DB zuweisen und es läuft.

    Danke nochmal!

    Gruß Mujo
    Wir hatten ein ähnliches Problem, aber mit wesentlich mehr Peripheriestationen und haben dann für jede Peripheriestation eine eigene (kleine) CPU eingesetzt, die über einen DP/DP-Koppler mit dem Master kommuniziert. Tauscht man die Peripherie, tauscht man die Kiste mit der CPU mit und diese meldet sich dann entsprehend beim Master an. Programmiergerät etc. ist so nicht nötig beim Peripherietausch.
    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

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

    Mujo (24.04.2007)

  14. #9
    Registriert seit
    04.04.2007
    Beiträge
    16
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Wenn ich dich richtig verstanden habe, so brauchst du doch nur die Eingänge und Ausgänge flexibel zu gestalten.
    Dann würde ich folgendes vorschlagen:

    DB 1 "Daten"
    Code:
    Eingaenge STRUCT   
    E_1 DWORD DW#16#0 Eingang 0.0 
    E_2 DWORD DW#16#1 Eingang 0.1 
    E_3 DWORD DW#16#8 Eingang 1.0 
    E_4 DWORD DW#16#82 Eingang 16.2 
     END_STRUCT   
    Ausgaenge STRUCT   
    A_1 DWORD DW#16#1F9 Ausgang 63.1 
    A_2 DWORD DW#16#405 Ausgang 128.5 
     END_STRUCT
    Die Eingangs und Ausgangsbytes werden mit 8 multipiziert und die Bitnummer addiert. So berechnet, speicherst du die EA's im DB deiner Wahl.

    Code:
          L     "Daten".Eingaenge.E_1
          T     #Eingang1
          L     "Daten".Ausgaenge.A_1
          T     #Ausgang1
          U     E [#Eingang1]
          S     A [#Ausgang1]
    Eingang1 und Ausgang1 vom Type TEMP DWORD. Auf diese Art und Weise haben ich bereits eine komplexe Weichensteuerung in unserer Firma realisiert.
    Zitieren Zitieren neue Möglichkeit  

  15. #10
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    das ist doch viel zu aufwändig.

    ich würde das folgendermassen machen.
    am anfang vom ob1 transferierst du alle relevanten eingänge in datenworte.
    im programm arbeitest du nur mit den datenbits.
    am ende vom ob1 transferierst du datenworte der ausgänge in die ausgänge.

    auf meiner homepage findest du zeiten und zähler die mit datenworten arbeiten nach aussen hin aber genauso arbeiten wie die normalen.
    damit bist du dann auch was die z/t betrifft flexibel.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  16. Folgender Benutzer sagt Danke zu volker für den nützlichen Beitrag:

    Mujo (24.04.2007)

Ähnliche Themen

  1. Taktfrequenz Counter
    Von logan im Forum Sonstige Steuerungen
    Antworten: 11
    Letzter Beitrag: 04.05.2011, 08:41
  2. Counter für Visualisierung
    Von hightower777 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 28.02.2011, 21:48
  3. Zähler CTU-Counter
    Von Spoon im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 06.02.2010, 16:50
  4. Counter programmieren
    Von bra_elo im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 05.11.2008, 11:06
  5. Counter im OB35 Problem
    Von noeppkes im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 03.08.2006, 12:05

Lesezeichen

Berechtigungen

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