Sonstiges Counter mit beliebigem Wert zum Inkrementieren

GBat

Level-1
Beiträge
84
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen
Wie baut ihr eigentlich einen Softwarezähler (in FUP), ähnlich einem “CTU”, den man anstatt um 1 um eine beliebige Zahl inkrementieren kann?
Beste Grüße und viele Dank
Geri
 
Nimm dir zB eine Integervariable und addiere deinen beliebigen Wert dazu. Dafür gibt es links unter Festpunktfunktionen den Baustein ADD_I dort an den Enable eine Flanke vor das Zählsignal schalten. Zum setzen des Zählers auf einen bestimmten Wert nimmst du den MOVE Befehl und schreibst einen Wert in die Integervariable. Zum Schalten eines Ausganges brauchst du nun nur noch eine Vergleichsfunktion. Davon gibt es ja auch genug (stehen links unter Vergleicher) und Fertig ist dein Zähler.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Pinky

Danke für deine Tipps. Ich habe mal versucht deine Beschreibung nachzubilden, kam aber nicht ganz auf einen grünen Zweig. Vielleicht kannst du mir das noch ein wenig konkretisieren. Meine Version sah so aus. Diese funktionierte allerdings nicht.

Beste Grüsse und vielen Dank nochmals

GeriCounter01.png
 
Der Counter funktioniert nun halbwegs. Wenn der Eingang IXE0 1 ist, dann wird in der Simulation interessanterweise aber eine große Zahl angezeigt...
Habt ihr hierfür vielleicht eine Erklärung

Beste Grüsse
Counter_OK.pngCounter_NOK.png
Geri
 
versuch es mal mit einer pos. Flanke von IXE0. sonst addiert er in jedem Zyklus... bis zum Überlauf deiner Variablen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Thomas

Ich war eigentlich der Meinung, dass "P" einen einzelnen Impuls erzeugt, wenn der Eingang auf 1 geht..?
Interessanterweise stimmt auch der Zählerwert, wenn der Eingang gerade auf 0 ist. Der Zähler zählt "schön" bei jedem Übergang von 0 nach 1 um zwei weiter. Solage am Eingang aber eben eine 1 anliegt stimmt der Wert in der Simulation nicht.
Geht er wieder von 1 auf 0, dann wird der richtiger Zählerwert ausgegeben..

Beste Grüsse
Geri
 
Sorry mein Fehler, hatte auf meinem Telefon nicht so genau hingeschaut.

Gesendet von meinem GT-N7100 mit Tapatalk 2
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du nutzt den Merker 0.0 als Flankenmerker für die Auswertung des positiven Impuls. Der Merker 0.0 ist aber ein Merker innerhalb des Bereichs des MD0.
Dadurch kommt es zur einer Überschneidung. Nimm mal für den Flankenmerker z.B. den Merker 4.0, wenn dieser wirklich frei ist.
 
Hallo 190B


Danke für den Hinweis! Gibt es eigentlich eine Möglichkeit solche Überschneidungen per Knopfdruck festzustellen? ..oder wie macht ihr das allgemein um das Problem zu vermeiden?.
1.) Man könnte für die unterschiedlichen Typen ja z.B. von Haus aus unterschiedliche Speicherbereiche definieren. Z.B. M0-100 bitmerker, M101-102 Bytes, M201-300 Word ....
2.) Alignment-Liste prüfen
3.) ...


Kann das Problem auch bei Datenbausteinen auftreten?

Beste Grüsse und Danke nochmals

Geri

Die Ressourcensicht
 
Danke für den Hinweis! Gibt es eigentlich eine Möglichkeit solche Überschneidungen per Knopfdruck festzustellen?
Über die Querverweise/Verwendungsstellen



..oder wie macht ihr das allgemein um das Problem zu vermeiden?
Lokale Variablen benutzen. Vor allem für solche Sachen, wie Flankenmerker.
Wenn unbedingt globaler Speicher benötigt wird, dann auf DB's zurückgreifen.



1.) Man könnte für die unterschiedlichen Typen ja z.B. von Haus aus unterschiedliche Speicherbereiche definieren. Z.B. M0-100 bitmerker, M101-102 Bytes, M201-300 Word ....
Könnte man.
Aber manchmal ist es eben auch Absicht, z.B. auf einzelne Bits eines Words zuzugreifen. Und das wäre dann nicht mehr möglich.
Da es doch besser, sich mit dem Speicheraufbau vertraut zu machen.
;)



Kann das Problem auch bei Datenbausteinen auftreten?
Theoretisch ja. Wenn man nicht symbolisch, sondern (nur) absolut darauf zugreift.
Üblicherweise ist das aber meist ein Problem mit den Merkern, da man bei denen für den Bit-, Byte- usw. Zugriff verschiedene Symbole erstellen kann.
 
Du kannst dir die Referenzdaten anzeigen lassen. Dort kannst du auch sehen welche Bereiche du wie zugreifst. Im TIA heisst das allerdings Belegungsplan oder so
 
Zurück
Oben