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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: Problem mit S7-200 (Display/schnelle Zähler)

  1. #1
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Ihr,

    ich habe folgendes Problem:

    Bei einer S7-200 ist ein schneller Zähler generiert, der Impulse eines Drehgebers zählt. Der Drehgeber ist an einem Motor montiert. An einem Panel (OP73micro) soll der Wert eingegeben werden, wie lange sich der Motor dreht (also die Schrittanzahl).

    Dieser Wert wird in eine Variable (VD100) geschrieben und im schnellen Zähler ausgewertet. Bei erreichter Schrittanzahl wird ein Interrupt ausgelöst.

    Soweit so gut - im Grunde funktioniert das Ganze auch.

    ABER:

    Sporadisch schaltet der Motor nicht ab. Offensichtlich gibt es ab und zu ein Zeitproblem zwischen dem schnellen Zähler und der Abfrage von VD100 aus dem Panel. Schreibe ich den Wert fest (also ohne Variable) in den Zähler, so schaltet der Motor immer zuverlässig ab.

    Frage:

    Gibt es eine Möglichkeit die Werte aus dem Panel (Variable) anders in den Zähler zu schreiben - so dass diese z.B. in der SPS zur Verfügung stehen und das zeitliche Problem nicht mehr auftritt?

    Vielen Dank für einen Tipp!

    Grüße
    pinolino
    Zitieren Zitieren Problem mit S7-200 (Display/schnelle Zähler)  

  2. #2
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Hallo,

    Tipp mal in der Hilfe Zähler (HSC) ein.
    Angehängte Grafiken Angehängte Grafiken
    • Dateityp: jpg ztz.jpg (583,7 KB, 23x aufgerufen)

  3. #3
    pinolino ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo verpolt,

    das hatte ich schon gemacht - und auch gelesen!

    Aber geholfen hat es mir leider nicht... habe ich etwas übersehen?

  4. #4
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Einstellen von aktuellen und voreingestellten Werten

    Zurück zum Anfang

    Jeder schnelle Zähler verfügt über einen aktuellen Wert und einen voreingestellten Wert mit jeweils 32 Bit. Beide sind ganzzahlige Werte mit Vorzeichen. Um einen neuen aktuellen Wert oder einen voreingestellten Wert in den schnellen Zähler zu laden, müssen Sie das Steuerbyte und die Bytes des Sondermerkers einrichten, die die aktuellen Werte und/oder die voreingestellten Werte enthalten. Führen Sie dann die Operation HSC aus, um die neuen Werte in den schnellen Zähler zu übertragen. Die folgende Tabelle beschreibt die Bytes der Sondermerker, die die neuen aktuellen und voreingestellten Werte enthalten.

    Zusätzlich zu den Steuerbytes und den Bytes, die die neuen aktuellen und voreingestellten Werte enthalten, kann der aktuelle Wert eines schnellen Zählers auch gelesen werden, indem der Speicherbereich HC (aktueller Wert des schnellen Zählers) und die Nummer des Zählers (0, 1, 2, 3, 4 oder 5) angegeben werden. Auf diese Weise können Sie den aktuellen Wert direkt lesen. Zum Schreiben müssen Sie jedoch die oben beschriebene Operation HSC verwenden.


    Zu ladender Wert HSC0 HSC1 HSC2 HSC3 HSC4 HSC5
    Neuer aktueller Wert SMD38 SMD48 SMD58 SMD138 SMD148 SMD158
    Neuer voreingestellter Wert SMD42 SMD52 SMD62 SMD142 SMD152 SMD162

    Statusbyte

    Zurück zum Anfang

    Jeder schnelle Zähler besitzt ein Statusbyte, das Statusmerker zur Verfügung stellt. Diese Statusbits geben die aktuelle Zählrichtung an. Sie geben außerdem an, ob der aktuelle Wert gleich dem voreingestellten Wert oder größer als dieser ist. Die folgende Tabelle beschreibt die Statusbits für die schnellen Zähler.


    Statusbits für HSC0, HSC1, HSC2, HSC3, HSC4 und HSC5
    HSC0 HSC1 HSC2 HSC3 HSC4 HSC5 Beschreibung
    SM36.0 SM46.0 SM56.0 SM136.0 SM146.0 SM156.0 Nicht verwendet.
    SM36.1 SM46.1 SM56.1 SM136.1 SM146.1 SM156.1 Nicht verwendet.
    SM36.2 SM46.2 SM56.2 SM136.2 SM146.2 SM156.2 Nicht verwendet.
    SM36.3 SM46.3 SM56.3 SM136.3 SM146.3 SM156.3 Nicht verwendet.
    SM36.4 SM46.4 SM56.4 SM136.4 SM146.4 SM156.4 Nicht verwendet.
    SM36.5 SM46.5 SM56.5 SM136.5 SM146.5 SM156.5 Statusbit aktuelle Zählrichtung:
    0 = rückwärts;
    1 = vorwärts
    SM36.6 SM46.6 SM56.6 SM136.6 SM146.6 SM156.6 Statusbit aktueller Wert gleich voreingestellter Wert:
    0 - ungleich, 1 - gleich.
    SM36.7 SM46.7 SM56.7 SM136.7 SM146.7 SM156.7 Statusbit aktueller Wert ist größer als voreingestellter Wert:
    0 = kleiner als oder gleich;
    1 = größer als
    Hinweis:
    Die Statusbits sind nur während der Bearbeitung des Interruptprogramms für den schnellen Zähler gültig. Wenn Sie die Zustände der schnellen Zähler überwachen, können Sie Interrupts für Ereignisse freigeben, die sich auf die bearbeitete Operation auswirken.


    ______________

  5. #5
    pinolino ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo verpolt,

    weiß leider noch immer nicht worauf du hinaus willst...

    Das mit den Steuerbytes habe ich doch eingerichtet - d.h. ich verlgeiche aktuellen Wert und voreingestellten Wert.

    Das Problem ist jedoch, dass es wohl sporadisch zu einem zeitl. Problem kommt, wenn die Variable aus dem Display (voreingestellter Wert) im schnellen Zähler abgefragt wird.

    Könnte mein Anhang Abhilfe schaffen - denn die Variable VD104 wäre dann doch fest in der SPS (und nicht im Panel) verfügbar, oder?

    Danke!
    Angehängte Grafiken Angehängte Grafiken

  6. #6
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Zu ladender Wert HSC0 HSC1 HSC2 HSC3 HSC4 HSC5
    Neuer aktueller Wert SMD38 SMD48 SMD58 SMD138 SMD148 SMD158
    Neuer voreingestellter Wert SMD42 SMD52 SMD62 SMD142 SMD152 SMD162
    Welchen HSC verwendest du?

    Bspl.: HSC 3

    Aktueller Wert = SMD138
    voreingestelleter Wert = SMD62

    eErgenis: SM136.6

    Dann müßte VD100--->in den SMD62

  7. #7
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.716
    Danke
    443
    Erhielt 914 Danke für 739 Beiträge

    Standard

    Und ich würde auch nicht in jedem Zyklus (SM0.0) den voreingestellten Wert neu schreiben, sondern nur wenn der Wert sich ändert.
    Dafür kannst Du entweder den bisherigen Wert und den neuen vergleichen oder vom Display ein Statusbit beim Verändern des Wertes setzen lassen, das nach der Übertragung in des HSC vom Programm zurück gesetzt wird.

  8. #8
    pinolino ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Verpolt Beitrag anzeigen
    Welchen HSC verwendest du?

    Bspl.: HSC 3

    Aktueller Wert = SMD138
    voreingestelleter Wert = SMD62

    eErgenis: SM136.6

    Dann müßte VD100--->in den SMD62
    Aber das ist ja NICHT das Problem! Evtl. habe ich mich noch immer nicht deutlich genug ausgedrückt... das habe ich alles schon am Laufen.

    Die Benutzung einer Variablen (hier VD100) aus dem Panel stellt offensichtlich (sporadisch) ein zeitliches Problem dar, wenn ihr Wert im schnellen Zähler als voreingestellter Wert übernommen wird.

    Insofern war meine Idee, bei einer Eingabeänderung (im Display) dieser Variablen ihren Wert in eine Variable in der SPS zu verschieben und dann diese neue "SPS-Variable" im schnellen Zähler zu verarbeiten... dann müssten doch zeitliche Probleme minimiert werden, oder?

    @hucki:
    Ja stimmt, du hast recht! Besser nicht in jedem Zyklus...

    Ähm, ich weiß jetzt nur nicht, wie ich vom Display so ein Statusbit setzen lassen kann?

    Geht das evtl. so:

    Variable anklicken und dann Ereignisse > Aktivieren und dann SetzeBit???

    Grüße
    pinolino
    Geändert von pinolino (20.01.2011 um 20:12 Uhr)

  9. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.716
    Danke
    443
    Erhielt 914 Danke für 739 Beiträge

    Standard

    Ich denke, dies ist die einfachere Variante:
    Code:
    LDD<>  HSC5_VW:SMD162, VD100
    MOVD   VD100, HSC5_VW:SMD162

  10. #10
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.716
    Danke
    443
    Erhielt 914 Danke für 739 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von pinolino Beitrag anzeigen
    ...
    Ähm, ich weiß jetzt nur nicht, wie ich vom Display so ein Statusbit setzen lassen kann?

    Geht das evtl. so:

    Variable anklicken und dann Ereignisse > Aktivieren und dann SetzeBit???
    ...
    Ich geh' mal davon aus, das Du WinCC flexible benutzt:
    - Kommunikation -> Variablen
    - in der Liste der Variablen diejenige anwählen, deren Wertänderung Du registrieren willst
    - dann in den Eigenschaften Ereignisse -> Wertänderung -> SetzeBit

Ähnliche Themen

  1. S7 200 & schnelle Zähler
    Von DarkLykan im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 26.02.2013, 07:47
  2. Schnelle Zähler bei S7-1200
    Von petzi im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 20.06.2012, 08:04
  3. Schnelle Zähler, S7-200
    Von pinolino im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 16.12.2008, 08:21
  4. S7-200 Schnelle Zähler
    Von GeorgeC im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 18.10.2007, 09:04
  5. Schnelle Zähler CPU 314C
    Von Ciclope im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 12.02.2006, 14:59

Lesezeichen

Berechtigungen

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