Step 7 Zähler Programmieren

balkanaz

Level-1
Beiträge
82
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

da ich noch Anfänger bin brauche ich eure Hilfe für eine wahrscheinlich einfache Thematik.

Also ich möchte mir einen Wert im WinCC Anzeigen lassen.

Dieser besteht aus dem Aufwärtszählen des Zählers + einem Wert aus einem Eingabefeld

iZähler + iEingabefenster = HMI_Anzeige

Wenn ich jetzt aber öfter mit dem Eingabefenster was dazu addieren möchte, stimmen die Werte nicht mehr.

z.B. 10 + 3 = 13

Möchte ich jetzt nochmals 2 dazu addieren über das Eingabefenster bekomme ich 12 Raus,
obwohl es ja dann 15 sein sollten.

Kann mir jemand einen Ansatz geben wie ich das Lösen könnte?
 
Hallo,
ein Ansatz wäre mehr Informationen:
Mit welcher Software machst Du das ?
Mit welchem Zähler machst Du das ?
und vielleicht wie du das programmiert hast ?
Gruss
 
Wenn ich das richtig sehe und verstehe wird deine erste Rechnung ausgeführt und angezeigt.
Aber nicht gespeichert .Wenn du eine neue Rechnung eingibst wird der Zählwert CTU mit der neuen Eingabe addiert aber der erste Wert überschrieben. Kann mich jetzt aber auch irren bin ziemlich müde.
 
Genau.
die Variable iHMI_Eingabefeld wird überschrieben.

Ich weiß leider nicht wie ich es anstellen kann, dass die Eingegebenen Werte gespeichert werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit dem normalen Zähler zu arbeiten ist etwas umständlich. Da du den Wert des Zählers mit dem was du am HMI eingibst manipulieren willst. Sowas geht am Einfachsten, wenn man sich einen Zähler selbst baut.

Einen Wert speicherst du zwischen, indem du dir eine Hilfsvariable bildest (einen Merker oder eine statische Variable oder eine Variable aus einem Global DB). Diese beschreibst du dann mit dem zu sichernden Wert.
 
Zuletzt bearbeitet:
Guten Morgen balkanaz,

ich persönlich habe noch nie die vorgefertigte Zählerfunktion von SIemens benutzt und den eleganteren Weg finde ich auch dies in ein paar Zeilen selbst zum schreiben.

Da du gerade am Anfang stehst ist es natürlich nicht ganz so leicht für für dich und deswegen habe ich einen kleinen Screenshot für dich gemacht wie es funktioniert.
Dieser ist zwar in AWL aber hey sollte wunderbar klappen.

SPS FOrum.png


Hier siehst du das bei einem positivem Signal der Zähler genau um den Zählwert erhöht wird den du vorgegeben hast.
Wenn du den Zähler ablöschen willst funktioniert das nach dem gleichen Prinzip allerdings wird dann einfach eine 0 reingeladen.

mfg
Rene
 
ich möchte mir einen Wert im WinCC Anzeigen lassen.

Dieser besteht aus dem Aufwärtszählen des Zählers + einem Wert aus einem Eingabefeld

iZähler + iEingabefenster = HMI_Anzeige

Wenn ich jetzt aber öfter mit dem Eingabefenster was dazu addieren möchte, stimmen die Werte nicht mehr.

z.B. 10 + 3 = 13

Möchte ich jetzt nochmals 2 dazu addieren über das Eingabefenster bekomme ich 12 Raus
Das ist nach Deiner Erklärung völlig richtig.

obwohl es ja dann 15 sein sollten.
Klingt so als ob Du aber eigentlich was anderes willst als das was Du erklärt hast?

Kann es sein daß Du den Zählerstand selber verstellen willst? Dann speichere das Ergebnis im Zähler.
Falls nicht, dann brauchst Du noch eine zusätzliche Variable, die Deine Einzel-Addierungen kumuliert. (Muß diese Variable auch mal wieder auf 0 gebracht werden?)
Bei beiden Varianten darfst Du außerdem nur ein einziges mal addieren, z.B. mit einer Flanke wenn eine Visu-Taste "[Jetzt dazuaddieren]" gedrückt wird.

Überlege nochmal, was genau Du willst und ob/wie das dem Visu-Bediener vermittelbar ist. (Warum willst Du öfters Werte addieren?)


Achtung, bei den Standard-Zählern beachten: Am Zählerausgang "DEZ" erhält man den Zählerstand BCD-codiert, am Zählerausgang "DUAL" erhält man den Zählerstand als normale Ganzzahl - wenn Du den Zählerwert als Int weiterverwenden willst, dann mußt Du den Zählerausgang "DUAL" verwenden.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@ Shiks: Ich habe es mal ausprobiert aber da passiert genau das gleiche wie auch schon bei mir

@ Harald: Es soll eine Schrottzählliste werden.

Der produzierte Schrott, welcher von der Anlage automatisch in einer NIO Kiste entsorgt wird, wird mit
einem Zähler hoch gezählt.

Öfters kommt es vor, dass man Teile aufgrund von Störungen aus der Anlage entnehmen muss, deshalb
sollte man auch gleich und öfters weitere Teile dazu addieren.
 
U Schrottteil
FP Flanke_1
SPBN M001

L 1
L Zählwert
+I
T Zählwert

M001: U Zählwert_Korrektur
FP Flanke_2
SPBN M002

L Zählwert
L HMI_Korrekturwert
+I
T Zählwert

M002: U Reset_Zähler
FP Flanke_3
SPBN M003

L 0
T Zählwert

M003: L Zählwert
T HMI_Anzeige


So sollte es funktionieren. Dazu musst du aber noch eine Taste ins HMI machen um den Korrekturwert für die Rechnung zu bestätigen.

Also den Wert im HMI eingeben und dann mittels Taste der Berechnung übergeben
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
ich habe bei dem Script noch was hinzugefügt, was leider nicht wie gewünscht funktioniert.
Das Aufwärtszählen funktioniert einwandfrei.
Das Abwärtszählen (M001 und M003) funktionieren nicht wie sie sollen.
Die Subtrahieren höhere Zahlen ab als sie sollen.

Kann mir jemand sagen wo der Fehler liegt?



U #Schrottteil_zaehlen
FP #Flanke_1
SPBN M001


L 1
L #Zaehlwert
+I
T #Zaehlwert




M001: U #Schrottteil_abziehen
FP #Flanke_2
SPBN M002


L 1
L #Zaehlwert
-I
T #Zaehlwert


M002: U #Zaehlwert_Korrektur_plus
FP #Flanke_3
SPBN M003


L #Zaehlwert
L #HMI_Korrekturwert
+I
T #Zaehlwert


M003: U #Zaehlwert_Korrektur_minu
FP #Flanke_4
SPBN M004


L #Zaehlwert
L #HMI_Korrekturwert
-I
T #Zaehlwert




M004: U #Reset_Zaehler
FP #Flanke_4
SPBN M005


L 0
T #Zaehlwert


M005: L #Zaehlwert
T #HMI_Anzeige
 
Benutzt für Deinen Codeauaszug bitte die Codetags, die mit dem letzten Button (#) der 2. Icon-Reihe erzeugt werden, dann ist er einfacher lesbar.


Korrektur_Minus und Reset haben den gleichen Flankenmerker #Flanke_4. Die sollten aber verschieden sein.


Ich persönlich benutzte beim Reset keine Flanke. Zum Einen stört es den Zählwert nicht, wenn er mehrfach auf 0 gesetzt wird, und zum Anderen soll der Reset bei mir eh' ganzzeitlich Vorrang haben, wenn mehrere Buttton gleichzeitig betätigt werden.
 
Zurück
Oben