-         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Ein Aus Schaltung

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.05.2005
    Ort
    Rott am Inn
    Alter
    30
    Beiträge
    373

    Ein Aus Schaltung

    Anzeige

    Ich habe zwei Schalter und möchte mit einem meine
    Aktion Starten und mit dem anderen Stoppen.
    das ist mein Programm:

    $regfile = "m32def.dat"
    $crystal = 8000000
    $baud = 9600

    Config Portc = Output
    Config Portd = Input
    Dim A As Bit


    Do

    If Pind.3 = 0 Then Set A
    If A = 1 Then
    Portc.6 = 1
    Portc.7 = 1
    End If
    If Pind.4 = 0 Then Reset A

    loop


    End

    Einschalten funktioniert, Ausschalten dagegen nicht.
    Könntet ihr mir vielleicht sagen wo der Fehler liegt?
    Danke

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.11.2004
    Beiträge
    263
    Du Schaltest ja auch nichts aus

    Probiers mal so:
    Code:
    $regfile = "m32def.dat" 
    $crystal = 8000000 
    $baud = 9600 
    
    Config Portc = Output 
    Config Portd = Input 
    Dim A As Bit 
    
    
    Do 
    
    If Pind.3 = 0 Then Set A 
    If Pind.4 = 0 Then Reset A 
    
    If A = 1 Then 
       Portc.6 = 1 
       Portc.7 = 1 
    else
       Portc.6 = 0 
       Portc.7 = 0  
    end if
    
    loop 
    
    
    End

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Einschalten funktioniert, Ausschalten dagegen nicht.
    Was willst du denn ausschalten? Portc.6 und Portc.7? Wenn ja, dann solltest du das auch irgendwo in deinem Programm veranlassen.

    Die Anweisungen Portc.6 = 0 und Portc.7 = 0 irgendwie geschickt in den Code eingebauten könnten dein Problem lösen.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2005
    Ort
    Niederdorfelden / Hessen
    Alter
    50
    Beiträge
    368
    Hi all,

    es geht noch kürzer

    Code:
    $regfile = "m32def.dat" 
    $crystal = 8000000 
    $baud = 9600 
    
    Config Portc = Output 
    Config Portd = Input 
    Dim A As Bit 
    
    Do 
    
    If Pind.3 = 0 Then Set A 
    If Pind.4 = 0 Then Reset A 
    
    Portc.6 = A 
    Portc.7 = A
    
    loop 
    
    End
    Dann spart man sich den If-Then-Else Teil.

    Gruß Klaus
    Eine verrückte Idee ist besser als keine

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    es geht noch kürzer
    Stimmt. Aber ein bischen blöde an der Geschichte ist, dass bei zwei Schaltern auch beide gleichzeitig ein und beide gleichzeitig aus sein können.
    Wenn man dagegen Taster verwendet, was wohl üblicher ist, muss man die Taster gedrückt halten - auch nicht besondes praktisch.

    Da würde ich das Programm dann zu Gunsten einer etwas praktischeren Bedienbarkeit doch lieber etwas länger machen

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2005
    Ort
    Niederdorfelden / Hessen
    Alter
    50
    Beiträge
    368
    Hi recycle,

    Die Aufgabenstellung von franzl ist ein RS - Flipflop. FF's werden allgemein mit Impulsen angestoßen und speichern den Setz - bzw. Rücksetz - Befehl.

    Die hier vorgestellte Version ist eine mit vorrangigem Rücksetzen, was aus dem Blickwinkel der Sicherheit vorteilhaft ist.

    In SPS'en werden solche Schaltungen millionenfach verwendet. Der Witz an der ganzen Sache ist ja gerade die Speicherung des Impulses.

    Gruß Klaus
    Eine verrückte Idee ist besser als keine

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Hallo Klaus_0168
    Die Aufgabenstellung von franzl ist ein RS - Flipflop.
    Und woher soll ich das wissen? Geschrieben hat er davon jedenfalls nichts.

    Der Witz an der ganzen Sache ist ja gerade die Speicherung des Impulses.
    Und wo wird in deinem Beispiel der Impuls gespeichert?
    Wenn ich keinen Taster drücke, bzw. den sobald ich den gedrückten Taster wieder loslasse, flattert A die ganze Zeit hin- und her.
    Wo wird denn da dann ein Impuls gespeichert?

    Nach meinem Verständnis sind bei deinem Beispiel die beiden Ports nur solange an, wie ich den 2. Taster gedrückt halte. Das kann man eigentlich auch einfacher haben.

    Wenn statt Tastern tatsächlich Schalter gemeint sind, macht das Ganze noch weniger Sinn, denn ein Schalter speichert seine Stellung doch sowieso.

    Oder habe ich mal wieder ein Brett vorm Kopf?

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2005
    Ort
    Niederdorfelden / Hessen
    Alter
    50
    Beiträge
    368
    Hi recycle,

    die RS - Funktionalität erkennt man an den Befehlen 'Set' und Reset'.

    Soweit ich franzl verstanden habe möchte er die Schaltung mit Tastern verwenden.

    Was die ganze Sache etwas undurchsichtig macht ist, das die Eingänge Low - Aktiv sind. Ich hoffe, das die Hardware so aufgebaut ist, das bei unbetätigtem Taster Spannung am Digitaleingang ansteht. Wenn nicht müssen die If - Abfragen auf '1' getestet werden.

    @franzl : Sollen die Eingänge d.3 und d.4 Lowaktiv sein ??
    Ich habe es einfach mal vorausgesetzt, weil das Einschalten in Deiner Urversion funktioniert hat.

    Gruß Klaus
    Eine verrückte Idee ist besser als keine

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.05.2005
    Ort
    Rott am Inn
    Alter
    30
    Beiträge
    373
    Danke für eure hilfe das Programm funktioniert jetzt.

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.02.2005
    Beiträge
    385
    Frage:
    Wenn ich jetzt Abfrage ob der Taster ein oder aus ist, wie kann ich verhindern, dass die Schleife schneller ist als ich wieder loslassen kann? Am besten ohne wait-befehl, da man ja auch noch andere Sachen machen will als warten.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •