Step 7 Uhr Programmieren mit ADD_I !!!

Ersoy_78

Level-1
Beiträge
33
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich Habe versucht ein Normale Uhr Programmieren mit ADD_I, also Sekunden, Minuten und Stunden. Da habe ich DB mit FB genommen und In : Takt, start, reset
INOUT: sekunden, minuten, stunden uns Stat: pf0, pf1, pf2 genommen.


Also wenn ich die Zeit starte mit Taktmerker muss Sekunden zählen bis 59. Sekunden dann muss 1. Minuten anzeigen.
Wenn 59. Minuten kommt 1. Stunden anzeigen.

Leider mein Versuche sind gescheitert, da habe ich auch die Vergleichen genommen aber da ist auch nicht Funktioniert.

Wenn euch mich helft freue mich sehr.

vielen Grüßen

Ersoy_78
 
Also... kurze Zusammenfassung:

1. Du löscht die Sekunden auf 0 bevor sie bei den Minuten ausgewertet werden können. Mach doch nur einen Vergleich der die Minuten hochzählt und anschließend die Sekunden auf 0 setzt
2. Du addierst auf die Minuten 60 auf - warum nicht 1 ?
3. Warum ist bei den Minuten >= 59 Sek. mit Start verodert?

Das mal zu Anfang... den Rest bekommst Du dann sicher hin?!

Grüße

Marcel
 
Hallo Ersoy,
ich erspare mir, die Kästchen zu zeichnen. Ist folgendes verständlich?
Code:
Tmp := Impuls
    Tmp --> Sekunden := Sekunden + 1 

Tmp := Tmp AND Sekunden>59
    Tmp --> Minuten  := Minuten  + 1 
    Tmp OR Reset  -->  Sekunden := 0
                        
Tmp := Tmp AND Minuten>59 
    Tmp --> Stunden  := Stunden  + 1 
    Tmp OR Reset  -->  Minuten  := 0
                        
Tmp := Tmp AND Stunden>23 
    Tmp OR Reset  -->  Stunden  := 0
Mit "-->" ist gemeint, die Variable oder das VerknüpfungsErgebnis links vom Pfeil auf den EN-Eingang des ADD I oder MOVE rechts davon zu verdrahten.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Antwort:
1. Kannst du mir ein Beispiel geben? Ich habe so vorgestellt ist das Richtig?
2. Du hast Recht das ist falsch da muss 1 sein.
3. Da habe ein Versucht gemacht, deshalb ist so.
 
Danke für Antwort, da versuche ich immer mit FUP Programmieren. Ich habe es mit DB und FB Programmiert.

Ist Tmp : TEMP?
 

Anhänge

  • IMG_2267.jpg
    IMG_2267.jpg
    625,4 KB · Aufrufe: 20
Antwort:
1. Kannst du mir ein Beispiel geben? Ich habe so vorgestellt ist das Richtig?
2. Du hast Recht das ist falsch da muss 1 sein.
3. Da habe ein Versucht gemacht, deshalb ist so.
 
Tmp ist eine temporäre BOOL-Variable.
Sorry, die Malerei hat 'n Bisschen gedauert.
Voilà, hoffentlich habe ich mich nicht vertippt. ;)
Code:
            +-----+     +-----+
     Takt --+  P  +-----+     | Tmp
            +-----+     +-----+
                                            
                                    +-----+                
                           Tmp -----+ADD I+----- Sekunden                
                                    |     |                
                      Sekunden -----+     |
                                    |     |
                             1 -----+     +-- 
                                    +-----+      
            +-----+                                               
 Sekunden --+CMP >|                                               
            |     |     +-----+                                   
       59 --+     +-----+ AND |                                   
            +-----+     |     |                                   
                        |     |     +-----+                                           
      Tmp --------------+     +-----+     | Tmp                   
                        +-----+     +-----+                       
                                                                  
                                    +-----+                       
                           Tmp -----+ADD I+----- Minuten                       
                                    |     |                       
                       Minuten -----+     |
                                    |     |
                             1 -----+     +--
                                    +-----+      
                                    
                        +-----+     
               Tmp -----+  OR | 
                        |     |     +-----+
             Reset -----+     +-----+ MOVE+----- Sekunden
                        +-----+     |     |
                                    |     |
                             0 -----+     +-- 
                                    +-----+     
            +-----+                                        
  Minuten --+CMP >|                                        
            |     |     +-----+                            
       59 --+     +-----+ AND |                            
            +-----+     |     |                            
                        |     |     +-----+                
      Tmp --------------+     +-----+     | Tmp            
                        +-----+     +-----+                
                                                                      
                                    +-----+                
                           Tmp -----+ADD I+----- Stunden                
                                    |     |                
                       Stunden -----+     |
                                    |     |
                             1 -----+     +--
                                    +-----+      
                                        
                        +-----+     
               Tmp -----+  OR | 
                        |     |     +-----+
             Reset -----+     +-----+ MOVE+----- Minuten
                        +-----+     |     |
                                    |     |
                             0 -----+     +-- 
                                    +-----+     
            +-----+                                        
  Stunden --+CMP >|                                        
            |     |     +-----+                            
       23 --+     +-----+ AND |                            
            +-----+     |     |                            
                        |     |     +-----+                
      Tmp --------------+     +-----+     | Tmp            
                        +-----+     +-----+                
                                                                      
                        +-----+     
               Tmp -----+  OR | 
                        |     |     +-----+
             Reset -----+     +-----+ MOVE+----- Stunden
                        +-----+     |     |
                                    |     |
                             0 -----+     +--
                                    +-----+
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Ersoy_78
Warum werden bei Dir die Sekunden immer erhöht und die Minuten nur wenn #start = true? Und die Stunden fehlen noch.

takt wird schon außerhalb des FB300 auf einen Puls nur 1 Zyklus lang gebracht. Eigentlich ist es nicht nötig, das im FB300 nochmal zu machen, es schadet aber auch nicht. Aber gut, der FB300 weiß das vielleicht nicht.

Mein Vorschlag:
Code:
        #pf0
       +-----+   +-----+
#takt--|  P  |---|  &  |   +-------+
       +-----+   |     |   | ADD_I |
         #start--|     |---|       |
                 +-----+   |       |
                #Sekunden--|       |-#Sekunden
                           |       |
                        1--|       |
                           +-------+
           +-------+
           | CMP>I |
#Sekunden--|       |
           |       |   +-----+
       59--|       |---| >=1 |
           +-------+   |     |   +------+
               #reset--|     |---| MOVE |
                       +-----+   |      |--#Sekunden
                              0--|      |             +-------+
                                 |      |-------------| ADD_I |
                                 +------+             |       |
                                            #Minuten--|       |-#Minuten
                                                      |       |
                                                   1--|       |
                                                      +-------+
           +-------+
           | CMP>I |
 #Minuten--|       |
           |       |   +-----+
       59--|       |---| >=1 |
           +-------+   |     |   +------+
               #reset--|     |---| MOVE |
                       +-----+   |      |--#Minuten
                              0--|      |             +-------+
                                 |      |-------------| ADD_I |
                                 +------+             |       |
                                            #Stunden--|       |-#Stunden
                                                      |       |
                                                   1--|       |
                                                      +-------+
           +-------+
           | CMP>I |
 #Stunden--|       |
           |       |   +-----+
       23--|       |---| >=1 |
           +-------+   |     |   +------+
               #reset--|     |---| MOVE |
                       +-----+   |      |--#Stunden
                              0--|      |
                                 |      |-
                                 +------+

Harald
 
Hallo Harald und Harald,

ich bedanke mich euch sehr, diese Aufgabe habe 1 Wochen lang versucht ein Lösung zu finden. Ihr seit großartig
:D;)

Bei de Stunde habe ich Doppelinteger genommen also ADD_DI und L#1.

Ich sende euch einiges Bilder!!!

IMG_2270.jpgIMG_2271.jpgIMG_2272.jpg
 
Hallo Harald,

ich habe so gemacht weil unsere Dozent so erklärt hat. Falls wenn wir 1000 stunde haben dann benötigt man Doppelinteger. Aber du hast auch Recht da kann man mit Integer deklarien in FB.

Aber ich möchte nochmal bedanken, danke :)

vielen Grüßen

Ersoy_78
 
Zurück
Oben