Step 7 Anzeige

pascal1

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

Ich habe folgendes Problem und würde mich riesig über Hilfe freuen.

Ich habe eine 7 Segmentanzeige diese soll Schritte Anzeigen zählen.

dazu habe ich einen Vorwärts Zähler ( der mir vergangende Schritte Anzeigt ) programmiert und gehe von seinem CV BCD (MW100) Ausgang auf einen Move Befehl und von diesem auf das Ausgangsbyte (QB0) meiner Ausgangsbaugruppe.

Das funktioniert auch alles super.. aber jetzt hab ich folgendes Problem : ich möchte auch noch einen Rückwärtszähler dieser soll die noch zu verbleibenen Schritte zählen. Ich möchte mittels eines schalters zwischen den werten hin und her

wechseln können. aber ich kriege es nicht hin mein mw200 vom 2ten zähler auch über eien movebefehl auf das selbe abyte zu übertragen. also natürlich nicht beides gleichzeitig .

Kann man 2 verschiedene Merkerwörter abwechselnd auf ein ausgangsbyte bringen ?

DANKE SCHON MAL :)
 
Als erstes baust du dir einen Blinktakt, der in dem Intervall das du haben möchstest zwischen 0 und 1 wechselt, und legst dieses z.B. auf einen Merker.

Je nach Programmiersprache gibst du dann bei Merker=0 das eine, bei Merker=1 das andere MW auf das AB.
In FUP mit einer Move-Box, in AWL musst du das mit Sprüngen lösen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
also der eine zähler soll die geleisteten schritte anzeigen und wenn ich den schalter betätige soll der andere die noch zu leistenen schritte anzeigen. beides über ein merkerbyte.

Ich habe bis jetzt probiert das merkerwort 100 vom vorwärtszähler auf die anzeige zu bringen... das funktionier auch super, aber wenn ich den schalter betätige und möchte das andere merkerwort vom vom rückwärtszähler angezeigt wird passiert nichts.... also die anzeige zeigt nur 00 . wenn ich wieder zurückschalte auf den vorwärtszähler zeigt sie wieder ganz normal das merkerwort 100 an. Ideen ?:icon_confused:
 
Hallo, hm.. ist gerade schlecht da ich nicht auf arbeit bin.
ich probier das nochmal genauer zu beschreiben :

mein erster Vorwärtszähler hat ja einen bcd ausgang aus diesem erhalte ich in meinem falle das MW100 dieses gebe ich über den move befehl auf das ausgangsbyte 0 , das funktionier auch super.

mein zweiter Zähler ein Rückwärtszähler gibt mir an seinem bcd ausgang das MW200 dieses möchte ich auch mit dem move befehl an das ausgangsbyte 0 schicken.

und der wechsel soll mittels drehschalter, also 0 oder 1 passieren : quasi schalter in stellung 0 dann MW 100 auf ausgangsbyte 0

schalter in stellung 1 dann MW 200 auf ausgangsbyte 0
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn du FUP programmierst dann sollte dir der (EN) Eingang weiterhelfen:ROFLMAO:

Du kannst 2 Move-Box verwenden. Der erste kannst du für den MW100 verwenden und der (EN) mit dem Schalter hinzufügen (beachten das er negiert ist)

Denn zweiten kannst du für den MW200 verwenden und der (EN) auch mit dem Schalter hinzufügen (diesmal nicht negiert):ROFLMAO:

Bei beiden Ausgängen von den Move-Box mit QB0 beschriften

Beide in separaten Netzwerk's ;)

Ich hoffe das hilft dir
 
Danke für deine Hilfe. So hatte ich das schon probiert,aber irgendwie hat die anzeige nur immer die werte vom mw 100 dargestellt und nach dem umschalten nichts nur 00.

Aber hab auch ebend mit meinem Kollegen gesprochen der meinte auch müsste so gegen. Ich probier das Montag nochmal.

Aber vielen Dank ;)
 
ich möchte auch noch einen Rückwärtszähler dieser soll die noch zu verbleibenen Schritte zählen.
Warum einen 2. Zähler? Sowas löst man m.M.n. besser durch Berechnung.


Kann man 2 verschiedene Merkerwörter abwechselnd auf ein ausgangsbyte bringen ?
Dir ist aber bewußt, das durch die unterschiedliche Bitanzahl von WORD und BYTE 2 BCD-Stellen verloren gehen?


Ansonsten mal zum Vergleich ein funktionierendes Beispiel in FUP mit Berechnung (Netzwerk 4 ist die eigentliche Anzeigeumschaltung):





bzw. als Quelle:
Code:
[FONT=Courier New]FUNCTION FC 1 : VOID
TITLE =
VERSION : 0.1


VAR_INPUT
  Count : BOOL ;	
  Reset : BOOL ;	
  Sel : BOOL ;	
  PV : INT ;	
  Count_Nr : COUNTER ;	
END_VAR

VAR_OUTPUT
  BCD_OUT : BYTE ;	
END_VAR

VAR_TEMP
  CV : WORD ;	
  CV_INT : INT ;	
  CD : INT ;	
  BCD : WORD ;	
END_VAR


BEGIN

NETWORK
TITLE =Zähler
      U     #Count; 
      ZV    #Count_Nr; 
      NOP   0; 
      NOP   0; 
      NOP   0; 
      U     #Reset; 
      R     #Count_Nr; 
      L     #Count_Nr; 
      T     #CV; 
      LC    #Count_Nr; 
      T     #BCD; 
      NOP   0; 

NETWORK
TITLE =Zählerwert in INT wandeln
      L     #CV; 
      T     #CV_INT; 
      NOP   0; 

NETWORK
TITLE =Rest berechnen
      L     #PV; 
      L     #CV_INT; 
      -I    ; 
      T     #CD; 
      NOP   0; 

NETWORK
TITLE =Ausgabe Rest
      U     #Sel; 
      SPBNB _001; 
      L     #CD; 
      ITB   ; 
      T     #BCD; 
_001: NOP   0; 

NETWORK
TITLE =Ausgabe Zählerwert
      L     #BCD; 
      T     #BCD_OUT; 
      NOP   0; 


END_FUNCTION
[/FONT]

und der Beispiel-Aufruf im OB1:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe bis jetzt probiert das merkerwort 100 vom vorwärtszähler auf die anzeige zu bringen... das funktionier auch super, aber wenn ich den schalter betätige und möchte das andere merkerwort vom vom rückwärtszähler angezeigt wird passiert nichts.... also die anzeige zeigt nur 00 . wenn ich wieder zurückschalte auf den vorwärtszähler zeigt sie wieder ganz normal das merkerwort 100 an. Ideen ?:icon_confused:
Demnach wird die Anzeige zwischen 2 Werten umgeschaltet. Das eigentliche Problem könnte dann auch der Rückwärtszähler sein.
Sicher das dieser wie gewünscht funktioniert?
 
Du kannst 2 Move-Box verwenden. Der erste kannst du für den MW100 verwenden und der (EN) mit dem Schalter hinzufügen (beachten das er negiert ist)

Denn zweiten kannst du für den MW200 verwenden und der (EN) auch mit dem Schalter hinzufügen (diesmal nicht negiert):ROFLMAO:
Den ersten EN muss man nicht unbedingt mit dem negierten Signal des Schalters belegen. Das funktioniert auch so:



Wenn der MOVE im 2. Netzwerk ausgeführt wird, überschreibt er den MOVE von Netzwerk 1 einfach.
 
Also das mit dem berechnen könnte ich mal probieren, ist eine gute idee ... Danke:)

ich hatte das auch schon mit den 2 movebefehlen so, aber wie gesagt da wurde immer nur mw 100 angezeigt und nach dem umschalten nichts mehr...

ich werde das auf jedenfall nochmal probieren.

eine frage hätte ich noch kann ich die anzeige einfach mit einem taktmerker blinken lassen quasi mit als und verknüpfung an en ?
 
Hätte jemand vielleicht noch eine Idee, wie ich die 7-Segment-Anzeige blinken lassen kann, ohne die Spannung wegnehmen zu müssen ?
 
Zurück
Oben