Autor Thema: Zähler (C) gezielt auf einen Wert setzen (mit DB)  (Gelesen 5378 mal)

Offline ChristianHemker

  • Jr. Member
  • **
  • Beiträge: 38
Zähler (C) gezielt auf einen Wert setzen (mit DB)
« am: Februar 11, 2009, 11:10:29 Vormittag »
Hallo,

für eine Rolladensteuerung mit einem Taster setze ich einen Zähler bei Tastendruck um einen höher.
Nun möchte ich diesen Zähler gezielt auf zwei Werte setzen.

Im angehängten Programm habe ich das nachgebaut:
C1 speichert in MB1.
Bei Betätigung I1 zählt C1 einen höher.
Bei Betätigung I2 wird MB1 durch DB1 auf 33 gesetzt.

Problem: MB1 wird wieder auf den vorherigen Wert zurückgesetzt, auch wenn I1 nicht betätigt wird.
Wie kann ich das verhindern?
Tutorial Rollladensteuerung
http://www.hemker.de/easy/teil1-4.zip
Tutorial Visualisierung mit ShowIt
http://www.hemker.de/easy/showit.zip

Offline veltins54

  • easy god
  • *****
  • Beiträge: 1199
Re: Zähler (C) gezielt auf einen Wert setzen (mit DB)
« Antwort #1 am: Februar 11, 2009, 11:35:54 Vormittag »
Hallo ChristianHemker,

schau dir mal das Beispiel an.

Gruß veltins54
Für die Richtigkeit der Beispiele wird keine Gewähr übernommen.
Für Schäden, die durch Verwendung der Beispiele entstehen, wird keine Haftung übernommen.

Offline KressSwiss

  • easy god
  • *****
  • Beiträge: 1659
  • Und sie dreht sich doch..."Galileo Galilei"
    • Electronics Planet
Re: Zähler (C) gezielt auf einen Wert setzen (mit DB)
« Antwort #2 am: Februar 11, 2009, 11:40:19 Vormittag »
Hallo ChristianHemker
in Deinem Programm geschieht folgendes:
Zeile 1: Der Zählerwert wird im Zähler in das MW1 übertragen
Zeile 2: Mittels I2 wird die Zahl 33 in das MW1 übertragen

Nun beginnt der Programmablsuf von neuem
Zeile 1: Der Zählerwert wird im Zähler in das MW1 übertragen
Zeile 2: Mittels I2 wird die Zahl 33 in das MW1 übertragen
usw.

Die Lösung von Veltins ist das Ei des Collumbus. Er ist wie immer einen Zacken schneller als ich.
« Letzte Änderung: Februar 11, 2009, 11:43:16 Vormittag von KressSwiss »
Achtung:
Angehängte Dateien sind nur für eingelogte User sichtbar!

Offline ChristianHemker

  • Jr. Member
  • **
  • Beiträge: 38
Re: Zähler (C) gezielt auf einen Wert setzen (mit DB)
« Antwort #3 am: Februar 11, 2009, 11:46:31 Vormittag »
Hallo,

erstmal vielen Dank für die Aufklärung und das Beisipiel.
Dieses funktioniert insofern, dass MB1 jetzt fest auf 33 gesetzt wird.
Das Ziel war allerdings, den Zähler auf 33 zu setzen.

Momentan passiert folgendes:
1. I1 setzt den Zähler und MB1 auf 1
2. I2 setzt MB1 auf 33 (der Zähler bleibt auf 1)
3. I1 setzt den Zähler und MB1 auf 2

Kann man den Zähler an sich auch beeinflussen?
Tutorial Rollladensteuerung
http://www.hemker.de/easy/teil1-4.zip
Tutorial Visualisierung mit ShowIt
http://www.hemker.de/easy/showit.zip

Offline veltins54

  • easy god
  • *****
  • Beiträge: 1199
Re: Zähler (C) gezielt auf einen Wert setzen (mit DB)
« Antwort #4 am: Februar 11, 2009, 11:56:00 Vormittag »
Hallo ChristianHemker,

verstehe ich das richtig mit I2 soll der Zähler und MB1 auf 33 gesetzt werden?

Gruß veltins54
Für die Richtigkeit der Beispiele wird keine Gewähr übernommen.
Für Schäden, die durch Verwendung der Beispiele entstehen, wird keine Haftung übernommen.

Offline ChristianHemker

  • Jr. Member
  • **
  • Beiträge: 38
Re: Zähler (C) gezielt auf einen Wert setzen (mit DB)
« Antwort #5 am: Februar 11, 2009, 11:58:24 Vormittag »
Hallo,

ja, das verstehst du richtig, wobei MB1 nur Mittel zum Zweck ist, eigentlich geht es um den Zähler.
Natürlich kann ich einen Zähler auf den IST Wert zurücksetzen. Den IST Wert könnte ich auf 33 setzen. Problem dabei: Ich muss den Zähler zu bestimmten zeiten auf 2 verschiedene Werte setzen, habe aber nur einen IST Wert.
Tutorial Rollladensteuerung
http://www.hemker.de/easy/teil1-4.zip
Tutorial Visualisierung mit ShowIt
http://www.hemker.de/easy/showit.zip

Offline veltins54

  • easy god
  • *****
  • Beiträge: 1199
Re: Zähler (C) gezielt auf einen Wert setzen (mit DB)
« Antwort #6 am: Februar 11, 2009, 12:06:23 Nachmittag »
Hallo ChristianHemker,

du hast 2 Istwerte die zu verscheidenden Zeiten in den Zähler geladen werden sollen,
sind die Istwerte feste werte.

Gruß veltins54 
Für die Richtigkeit der Beispiele wird keine Gewähr übernommen.
Für Schäden, die durch Verwendung der Beispiele entstehen, wird keine Haftung übernommen.

Offline ChristianHemker

  • Jr. Member
  • **
  • Beiträge: 38
Re: Zähler (C) gezielt auf einen Wert setzen (mit DB)
« Antwort #7 am: Februar 11, 2009, 12:13:56 Nachmittag »
Hallo,

ich verdeutliche das mal.

Der Zähler hat folgende Bedeutung:
0: löst nichts aus (Rollade STOP)
1: Rollade auf
2: löst nichts aus (Rollade STOP)
3: Rollade ab
4: Zurücksetzen auf 0

Jetzt möchte ich zu bestimmten Zeiten die Rollade auf- oder abfahren. Das heißt ich möchte dann den Zähler auf 1 oder 3 setzen.


Ich habe jetzt eine Lösung gefunden, die aber wahrscheinlich zu komplex ist, da reicht der Speicher nicht aus.
Ich nehme als IST Wert des Zählers ein MerkerByte, das ich dann auf 1 oder 3 setzen kann. Dann kann ich zu bestimmten Zeiten den Zähler auf den IST Wert zurücksetzen.
Habe das mal angehängt. Geht das noch einfacher?
Tutorial Rollladensteuerung
http://www.hemker.de/easy/teil1-4.zip
Tutorial Visualisierung mit ShowIt
http://www.hemker.de/easy/showit.zip

Offline veltins54

  • easy god
  • *****
  • Beiträge: 1199
Re: Zähler (C) gezielt auf einen Wert setzen (mit DB)
« Antwort #8 am: Februar 11, 2009, 13:46:59 Nachmittag »
Hallo ChristianHemker,

ich sehe in deinem Testprogramm nicht eine Lösung,eine mögliche Lösung ist,es mit
2 DB-Bausteinen zu machen einen für wert(1) und einen für wert(3),aber Speicherplatz
braucht das alles.Wie oft brauchst du das denn (anzahl der Zähler)
Welcher Speicherplatz reicht dafür nicht (Strompfade oder der Speicher selbst)?


Gruß veltins54

 
« Letzte Änderung: Februar 11, 2009, 18:50:47 Nachmittag von veltins54 »
Für die Richtigkeit der Beispiele wird keine Gewähr übernommen.
Für Schäden, die durch Verwendung der Beispiele entstehen, wird keine Haftung übernommen.

Juergen.J

  • Gast
Re: Zähler (C) gezielt auf einen Wert setzen (mit DB)
« Antwort #9 am: Februar 11, 2009, 14:04:34 Nachmittag »
Hallo christian,
hab dir mal ein Beispiel angehangen. Achten musst du das die DB im Bausteinplan vor dem Zähler sind, sonst funktioniert es nicht.
Gruss
Jürgen

Offline Mr. Spok

  • Sr. Member
  • ****
  • Beiträge: 652
Re: Zähler (C) gezielt auf einen Wert setzen (mit DB)
« Antwort #10 am: Februar 11, 2009, 16:58:08 Nachmittag »
Hallo,

wie wärs den mit einem Schieberegister? Und zu den entsprechenden Ausgängen die Schaltuhren verodern und das Register reseten wenn die Schaltuhren steuern.

mfG Jan
Für die Richtigkeit und Funktionalität der hier veröffentlichten Beispiele wird keine Gewähr übernommen.
Für Schäden, die durch Verwendung der Beispiele entstehen, wird keine Haftung übernommen.

Offline ChristianHemker

  • Jr. Member
  • **
  • Beiträge: 38
Re: Zähler (C) gezielt auf einen Wert setzen (mit DB)
« Antwort #11 am: Februar 11, 2009, 18:24:00 Nachmittag »
eine mögliche Lösung es mit 2 DB-Bausteinen zu machen einen für wert(1) und einen für wert(3),aber Speicherplatz
braucht das alles.Wie oft brauchst du das denn (anzahl der Zähler)
Welcher Speicherplatz reicht dafür nicht (Strompfade oder der Speicher selbst)?
Hallo,

vielen Dank für eure Hilfe, das hat den nötigen Geistesblitz gebracht.
Ich setze nun wirklich mit zwei DB Bausteienen die Werte in MerkerBytes. Diese MerkerBytes nutze ich dann als IST Werte fpr die Zähler. So kann ich dann die Zähler auf den IST Wert zurücksetzen, da dieser ja dem geünschten Wert entspricht.

Ich konnte dadurch einige überflüssige Zeilen löschen und habe dadurch sogar mehr Speicher als vorher :)
Tutorial Rollladensteuerung
http://www.hemker.de/easy/teil1-4.zip
Tutorial Visualisierung mit ShowIt
http://www.hemker.de/easy/showit.zip