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

Ergebnis 1 bis 8 von 8

Thema: Zähler arbeiten nicht kein Zählen

  1. #1
    Registriert seit
    09.03.2012
    Beiträge
    24
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Bin neu in der Siemens Welt also könnte es sich um einen banalen Fehler halten aber mit Hilfe und Handbuch komm ich grad nicht weiter.

    Ich verwende zur Ablaufsteuerung einige Zähler, also diese globalen Z1.. usw.
    Dass Problem ist wenn ich diese in zyklisch unbedingt oder bedingt aufgerufenen FC's verwende.
    funktionieren sie einfach nicht.
    Benutze in AWL einfach die Befehle: ZV R ZR

    Interessanterweise laufen sie aber wenn ich irgend eine Verwendung im OB1 platziere.
    Momentan:

    CLR
    ZV Z1
    ZV Z2
    ZV Z3

    Den FR Befehl habe ich schon in den jeweiligen FC's platziert, hat auch nichts gebracht.

    Warum ist das so?
    Was mach ich falsch?

    Bin kurz davor die Dinger auf zu geben.


    Danke schon mal
    Grüße
    Zitieren Zitieren Zähler arbeiten nicht kein Zählen  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von Hilfe zu AWL - ZV Zählen vorwärts
    ZV <Zähler> erhöht den Zählwert des adressierten Zählers um "1", wenn das VKE von "0" auf "1" wechselt [...]
    d.h. nach jedem "Zählaufruf" mit VKE=1 muß der Zähler auch einmal mit VKE=0 aufgerufen werden (oder die Operation FR ausgeführt werden) - wobei er da nicht zählt, sondern nur der interne Flankenmerker rückgesetzt wird.

    Deine FR-Operation hätte eigentlich das gleiche bewirken müssen - da kommt es wohl genau auf Deinen Programmcode drauf an ...
    Zitat Zitat von Hilfe zu AWL - FR Freigabe Zähler
    FR <Zähler> löscht den Flankenmerker [...] Das heißt, trotz konstantem VKE von 1 an den Anweisungen Setze Zählerstartwert, Zählen vorwärts oder Zählen rückwärts, werden nach der Freigabe diese Operationen erneut ausgeführt.
    Werden Deine FC auch aufgerufen und bearbeitet?

    PS: Schrittzähler oder Ablaufzähler macht man üblicherweise nicht mit den Zählern, sondern erhöht eigene INT-Variablen - das ist viel flexibler und einfacher.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    ellmecc (23.07.2013)

  4. #3
    ellmecc ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.03.2012
    Beiträge
    24
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Funktioniert jetzt, Danke Harald

    Die FC werden Zyklisch aufgerufen, daran lag es nicht

    Hatte das mit dem VKE wechsel von 0 auf 1 nicht richtig gemacht.
    Bei meinem Test mit dem FR hatte ich wohl etwas falsch gemacht bei der Platzierung.

    Normalerweise mache ich sowas auch mit INT Variablen, allerdings fand ich es mit dem ZV des Zähler einfacher und schöner was die abfragen usw. angeht.

    Hab mich noch nicht so richtig an AWL gewöhnen können,
    mir gefallen die ganzen Sprünge einfach nicht,
    oder gibt es eine alternative bei VKE 1 zu inkrementieren?

    Danke

  5. #4
    Beginner09 Gast

    Standard

    Hi,

    verstehe ich dich richtig dass du dein VKE von 1 auf 0 ändern möchtest?!
    Wenn ja dient dazu der Befehl NOT.
    Mit dem Befehl "NOT" wird das VKE in der Programmiersprache Anweisungsliste AWL negiert. Das geschieht in beide Richtungen, also von 1 auf 0 und von 0 auf 1. Das bedeutet:
    Hat das VKE den Wert "1" und wird dann die Operation NOT ausgeführt, so hat das VKE nach der Operation NOT den Wert "0".
    Hat das VKE den Wert "0" und wird dann die Operation NOT ausgeführt, so hat das VKE nach der Operation NOT den Wert "1".

  6. #5
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Zitat Zitat von Beginner09 Beitrag anzeigen
    verstehe ich dich richtig dass du dein VKE von 1 auf 0 ändern möchtest?!
    Wenn ja ...
    Eher nicht.
    Da er bei der Variante selbst zählen möchte, möchte er seinen INT-Wert nur um 1 inkrementieren, wenn das VKE auf 1 ist. Dazu muss er, wie üblich, die folgende Rechen-Operation überspringen, wenn das VKE noch 0 ist. Und das gefällt ihm nicht und deshalb sucht er nach 'ner anderen Möglichkeit.


    @ellmecc,
    eine andere Möglichkeit gibt es aber unter AWL meines Wissens nach nicht. Ist nun mal Maschinensprache. Könntest höchstens auf die Hochsprache SCL ausweichen. Da siehst Du die Sprünge im Hintergrund, genau wie bei FUP/KOP, nicht.

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

    ellmecc (23.07.2013)

  8. #6
    ellmecc ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.03.2012
    Beiträge
    24
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @hucki,
    Genau das hab ich gemeint.

    Werd mich schon noch an die Sprünge gewöhnen (müssen),
    kann mir aber leider die Programmiersprache nicht selbst aussuchen,
    ansonsten würde ich fast ausschliesslich mit SCL arbeiten.

    Werde mir wahrscheinlich eine FC für solche Programmsteuerung basteln, braucht man eh ständig.

    danke,
    Grüße

  9. #7
    Registriert seit
    12.04.2005
    Ort
    Black Forest
    Beiträge
    1.336
    Danke
    27
    Erhielt 130 Danke für 117 Beiträge

    Standard

    Wie wäre es mit F(lanke)N(egativ) ...?

  10. #8
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Boxy Beitrag anzeigen
    Wie wäre es mit F(lanke)N(egativ) ...?

    Da muss man doch aber trotzdem über die Addition hinweg springen, wenn nicht gezählt werden soll.


    Ich denke, er hatte sich sowas wie 'ne bedingt Addition erhofft:
    Code:
    L #Zähler
    L 1
    +IB //addiere nur, wenn VKE=1 -> gibt's aber (leider) nicht

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

    ellmecc (25.07.2013)

Ähnliche Themen

  1. Nicht funktionierender Zähler
    Von T800 im Forum Programmierstrategien
    Antworten: 9
    Letzter Beitrag: 15.03.2013, 15:22
  2. mit Zähler ins Minus zählen
    Von Pockebrd im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 22.12.2011, 19:35
  3. DB Zähler funktioniert nicht
    Von User1974 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 25.10.2010, 09:51
  4. Zähler soll nur bis 11 zählen
    Von Benno1989 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 12.11.2009, 08:34
  5. Zähler zählt nicht ?
    Von Deep Blue im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 04.04.2008, 19:47

Stichworte

Lesezeichen

Berechtigungen

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