Werte in BCD ausgeben

Zuviel Werbung?
-> Hier kostenlos registrieren
volker schrieb:
welche ausgange die sps-bauguppe belegt musst du in der hw-config gucken. standartmässig ist das erst mal aw124

damit die restlichen 4 ausgänge noch zur verfügung stehen gehst du so vor.

dieses löschen
L MW 18
ITB
T AW 2
NOP 0
----------------------

dafür dieses.
l mw 18
itb
t mw20

l aw124
l w#16#f000 //binär 1111 0000 0000 0000
uw //undwort verknüpfen. damit werden alle a's ausser a124.4-124.7 auf 0 gesetzt.
l mw20 //zählerdaten
ow //oderwort verknüpfen.
t aw124

das wars.
auf den a124.0-124.3 liegen jetzt die 100er
auf a125.4-a125.7 die 10er, auf 125.0-a125.3 die 1er.

a125.0 = bcd1
a125.1 = bcd2
a125.2 = bcd4
a125.3 = bcd8

für die beiden anderen tetraden genauso.

Moin @all

So Feinde der Sonne und Freunde der Nacht ich bin überglücklich, denn eure Tipps haben alle geholfen, es funktioniert endlich. Die Ausgangsbelegung war zwar etwas anders, aber das konnte ich so eben noch selbst lösen. Vielen vielen Dank für eure schnelle Hilfe. Volker ich hab jetzt nur noch ein kleines Problem, der Wertebereich der Stoppuhr ist auf 100 begrenzt. Wenn dieses Maximum erreicht wurde, kann man die Stoppuhr auch nicht mehr reseten. Hast du dafür vlt. auch noch eine Lösung parat?

Mit bestem Dank und freundlichem Gruß
der SPS-Linksfuß:D
 
wieso nur bis 100? normal solltest du bis 999 zählen können.

reset.
e124.0 = Taster(Öffner)

wenn die a124.4-124.7 nicht benutzt werden dan so
Code:
      UN    E    124.0
      SPBNB _002
      L     0
      T     AW   125
_002: NOP   0
falls doch dann so
Code:
      UN    E    124.0
      =     L     68.0
      U     L     68.0
      SPBNB _001
      L     0
      T     AB   125
_001: NOP   0
      U     L     68.0
      R     A    124.0
      R     A    124.1
      R     A    124.2
      R     A    124.3
 
Zuviel Werbung?
-> Hier kostenlos registrieren
volker schrieb:
wieso nur bis 100? normal solltest du bis 999 zählen können.

reset.
e124.0 = Taster(Öffner)

wenn die a124.4-124.7 nicht benutzt werden dan so
Code:
      UN    E    124.0
      SPBNB _002
      L     0
      T     AW   125
_002: NOP   0
falls doch dann so
Code:
      UN    E    124.0
      =     L     68.0
      U     L     68.0
      SPBNB _001
      L     0
      T     AB   125
_001: NOP   0
      U     L     68.0
      R     A    124.0
      R     A    124.1
      R     A    124.2
      R     A    124.3

Hi Volker, wenn ich es richtig durchschaut habe, dann liegt das problem darin, dass der Wert 256 in den Akku1 durch MW10 geladen wird und von diesem aus dann bis auf Null runtergezählt wird. Ich weiß aber leider nicht, wie ich diesen Wert erhöhen kann um so den maximalen Zahlenwert der Stoppuhr zu steigern
 
du schreibst ja auch keinen wert ins mw10.

am anfang des programms

entwerder so
L 123 //wert in sekunden
T MW10

oder so
in einer VAT einfach den gewünschten wert ins mw10 schreiben.

oder
externe eingabe.
zb über ein hmi gerät.
oder über 3 bcd-codierte rändelschalter. funktioniert im prinzip wie die bcd-ausgabe. nur eben andersrum ;)
 
volker schrieb:
du schreibst ja auch keinen wert ins mw10.

am anfang des programms

entwerder so
L 123 //wert in sekunden
T MW10

oder so
in einer VAT einfach den gewünschten wert ins mw10 schreiben.

oder
externe eingabe.
zb über ein hmi gerät.
oder über 3 bcd-codierte rändelschalter. funktioniert im prinzip wie die bcd-ausgabe. nur eben andersrum ;)
Super danke Volker für die wirklich schnelle Hilfe, dass löst bestimmt mein Problem. Hab jetzt noch zwei Schwierigkeiten. Ich muss meine Aussage von gerade revidieren, denn sie war so nicht ganz richtig. Die SPS zählt jetzt bis 256 ( sprich den geladen Akkuwert von MW10 ), bis 100 zählt sie nur bei weiter aktiven Startsignal. Jetzt das erste Problem, wie krieg ich diesen ungewollten Stopper noch raus, damit ich die gesamte Zeit mein Startsignal halten kann. Und das andere viel schwerliegendere Problem ist, dass es sich hierbei um eine Stoppuhr handelt, bei der die 10er Stellen die vollen Sekunden darstellen sollen, sprich diese Anzeige dürfte nur bis 5 gehen und bei dem Sprung von 59 müsste diese auf 00 springen und +1 bei den hunderten( Minuten ) bewirken. Da ich offengestanden mittlerweile denn durchblick verloren habe, bitte ich wiederrum um Hilfe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
warum sagst du nase das denn nicht sofort?

dein prog funzt. natürlich musst du die eingänge so anpassen, das die mit deiner hardware übereinstimmen.

dein nw1

u e 1.0 //e124.0
s m1.1

u m1.1
se t1

das klappt doch.

SPBNB _001
L #TEMP0
L W#16#2000 <---------- siehe unten
+I
T MW 12
_001=NOP 0

das ist die zeitbasis für den timer

3000 bedeutet 10 sekunden
2000 sekunden
1000 1/10 sekunden
0000 1/100 sekunden

ersetze in deinem fall die 2000 durch 1000

ausserdem hatte wir das thema stopuhr vor kurzem

suche mal nach stoppuhr
 
ausserdem hatte wir das thema stopuhr vor kurzem

suche mal nach stoppuhr[/quote]

Dank Dank und nochmals Dank. Perfekt jetzt funzt das Prog bestimmt genauso wie ich es wollte. Du hast recht mit dem Thema "Stoppuhr", dass war ein Arbeitskollege von mir, der jetzt im Urlaub ist und sich schön den Arsch bräunt, während ich jetzt seine Kacke weiter machen darf. Deshalb vielen Dank, du hast mich echt gerettet. Vielen Dank:-D
 
ahh.. arbeitskollege.

und warum seit ihr euch nicht einig ob nun vorwärts oder rückwärts gezählt werden soll?

oder ändert der chef seine meinung des öfteren.
mach ihm doch den vorschlag, das man beide varianten abhängig von z.b. einem ein eingang betreiben könnte.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja der Chef ist sehr sprunghaft, daher weiß man nie so genau wo welche Aufgabe hingeht. Aber bislang gefällt ihm diese Variante am Besten mit dem Vorwärtszählen. Ich habe deinen tipp bezüglich der Zeitbasis des Timers befolgt und muss dir sagen, dass ich das nicht meinte. Also dein Programm ist soweit in Ordnung, nur wollte ich die 1er Stellen für die Sekunden, die 10er Stellen für die Zehnersekunden und die 100er Stellen für die Minuten verwenden. Wenn ich nun die Zeitbasis änder bekomm ich ja fast keine Minute mehr zustande. Ich dachte daran den Wert der 10er also der Zehnersekunden vielleicht durch einen Vergleicher oder so zu beschränken. Sprich ich will ihm sagen, dass wenn er die 60 Sekunden anzeigen möchte, muss er die 1er und die 10er reseten und bei den 100er +1 rechnen und ausgeben. Desweiteren hab ich das Problem, dass ich ab einen bestimmten Zahlenwert nicht mehr reseten kann. Und einen kompletten Neustart der SPS durchführen muss. Für mic hein weiteres Mysterium. Wäre sehr nett wenn du mir zum xten mal helfen könntest.
 
ersetze
l mw 18
itb
t mw20


durch
L MW 18
L 60
MOD
ITB
T MW 24
L MW 18
L 60
/I
ITB
SLW 8
T MW 22
L MW 24
OW
T MW 20
 
So Volker nach verdienter Mittagspause hab ich deine vorgeschlagenen Änderungen vorgenommen, soweit funzt alles. Also der Wechsel von 59 Sek zu 1.00 ist klasse. Jetzt hab ich dadurch nur ein gravierendes Problem bekommen. Ich habe mir gerade etwas Zeit genommen und habe alles gecheckt. Jetzt stellen sich mir folgende Probleme. Zum einen hängt die Stoppuhr bei dauerhaftem Startsignal ab 60 Sekunden ( 1.00 Minuten ) und lässt sich nur noch durch einen kompletten Neustart der SPS reseten. Bei einmaligen Startsignal läuft die Zeit zwar über diese 60 Sekunden hinaus, hängt sich jedoch nach kurzem bzw. dauerhaften Resetsignal auf und läuft ebenfalls erst wieder nach einem kompletten Neustart der SPS an. Was hab ich falsch gemacht?
 
Ich hoffe das reicht dir bzw. ich hoffe, dass ist es was du wolltest. Konnte auf die schnelle nur Bilder machen, weil ich an einem Laptop ohne Internetverbindung arbeiten muss
 

Anhänge

  • Prog1.JPG
    Prog1.JPG
    26,5 KB · Aufrufe: 15
  • Prog2.JPG
    Prog2.JPG
    14,4 KB · Aufrufe: 7
ne das ist nicht was ich will.

baustein im editor öffnen. datei/quelle generieren. name für quelle wählen.
ok. baustein wählen (operdanden absolut). ok
die quelle ist nun im manager. rechte maustaste auf die quelle und exprotieren.
diese datei hierein als anhang.

welche ea adressen sind in der hwconfig angegeben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jetzt weiß ich was du meinst, aber als ich es vorhin so ausprobiert habe, konnte ich die Datei aufgrund eines unzulässigen Formats nicht anhängen. Und jetzt hab ich Feierabend und komm dummerweise nicht mehr an die Sachen, deshalb versuch ich es morgen nocheinmal. Also bis dahin wünsch ich dir nen angenehmen Tag. Bye bye
 
stoppuhr; rückwärts; 1byte minuten; 2byte sekunden

man kann eine datei auch zippen.

und dann auch noch nach hause gehen, wenns prob noch nicht gelöst ist. tsstss

prüfe im prog deine eingänge.

lust ein bisschen mitzudenken scheinst du nicht wirklich zu haben.

dieser code funktioniert.
damit ist das thema für mich abgeschlossen
Code:
// zuweisen anfang
      L     1
      T     MW    30                    //minuten
      L     12
      L     MW    32                    //sekunden
      U     E    124.0                  //taster
      UN    M      1.1
      S     M      1.0                  //start
      U     E    124.1                  //taster
      =     M      1.1                  //reset
//zuweisen ende

      L     MW    30
      L     60
      *I    
      L     MW    32
      +I    
      ITB   
      L     W#16#2000
      OW    
      U     M      1.0
      SE    T      1
      U     M      1.1
      R     T      1
      L     T      1
      L     60
      MOD   
      ITB   
      T     MW    34
      L     T      1
      L     60
      /I    
      ITB   
      SLW   8
      L     MW    34
      OW    
      T     MW    36

// zuweisen anfang
      L     AW   124
      L     W#16#F000
      UW    
      L     MW    36
      OW    
      T     AW   124
//zuweisen ende
 
Morgen Volker. Ich habs wirklich versucht zu zippen, aber eine rar.datei kann ich nicht in dieses Forum anhängen. Und selbst wenn ich die Dateien zu Hause hätte, könnte ich an dem Prob nichts weiter machen, da mir jegliche Hard- und Software fehlt. Aber ich wollte mich auf diesem Wege auch nochmals herzlichst bei dir bedanken. Ohne dich hätte ich einfach nix auf die Kette gekriegt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn es sich um WinRar handelt einfach aus dem Kontextmenü "Zu einem Archiv hinzufügen..." auswählen und dort nicht rar sondern zip als Dateiformat anklicken. Dann packen und ab in dir Tüte...
 
Danke Rainer, dass werd ich sofort machen.

So ich hab das Problem mit dem Stillstehen der Stoppuhr ab 60 Sekunden selbst gelöst. Ich musste einfach die Rücksetzbedingung meines Merkers 1.1 auch auf meinen Timer T1 übertragen, jetzt funktioniert alles so wie ich bzw. mein Ausbilder es will. Nochmals unsagbaren Dank
 

Anhänge

  • Stoppuhr.zip
    4,5 KB · Aufrufe: 10
Zuletzt bearbeitet:
Problem mit anhalten der Stoppuhr

Schönen guten Morgen die Herrschaften.

Ich habe folgendes Problem mit meinem Prog. Und zwar möchte ich bei Auslösen eines Tasters den aktuellen Zeitwert der Stoppuhr quasi einfrieren und gleichzeitig ausgeben. Erst nach einem manuel durchgeführten Reset soll die Uhrzeit wieder von vorne anlaufen. Krieg es aber nicht hin. Könnt ihr mir helfen?
 
Zurück
Oben