- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Befehle über RS232 schicken und dann Relais schalten

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    16.07.2007
    Beiträge
    6

    Befehle über RS232 schicken und dann Relais schalten

    Anzeige

    Praxistest und DIY Projekte
    Hi,

    ich habe folgendes vor. Ich schicke "0" und "1" über RS232 an die C-Control. Wenn ich eine "1"schicke, soll der Alarm ausgelöst werden d.h. es soll das Relais 1 geschaltet werden. Bei "0" soll das Relais 1 wieder ausgeschaltet werden. Hier mein Quellcode.

    Code:
    #Abfrage
    define x as Byte[10]
    LCD.CLEAR
    LCD.POS 1,1
    LCD.PRINT "Standby"
    LIGHT=ON 'Licht aus
    Led1=true
    
    IF RXD = true then
        BAUD R9600
        GET x
        
        IF x = 49 then 'ASCII Zeichen für 1        
            LCD.CLEAR
            LCD.POS 1,1
            LCD.PRINT "ALARM!"
            LIGHT=OFF 'Licht an
            Rel1=true
            
            IF x = 48 then 'ASCCI Zeichen für 0	
                LCD.CLEAR
                LCD.POS 1,1
                LCD.PRINT "Alarm deaktiviert!"
                LIGHT=OFF 'Licht an
                Rel1=false
            END IF
        END IF
        GET x
    END IF
    
    GOTO Abfrage
    Vielen Dank schon mal im vorraus!
    Gruß Khoi

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    16.09.2004
    Ort
    Schwabenland
    Beiträge
    156
    So müsste es funktionieren...
    Code:
    #Abfrage
    define x as Byte[10]
    LCD.CLEAR
    LCD.POS 1,1
    LCD.PRINT "Standby"
    LIGHT=ON 'Licht aus
    Led1=true
    
    IF RXD = true then
        BAUD R9600
        GET x
       
        IF x = 49 then 'ASCII Zeichen für 1       
            LCD.CLEAR
            LCD.POS 1,1
            LCD.PRINT "ALARM!"
            LIGHT=OFF 'Licht an
            Rel1=true
        ELSE         '<<<< hier fehlte wohl ein ELSE
           
            IF x = 48 then 'ASCCI Zeichen für 0   
                LCD.CLEAR
                LCD.POS 1,1
                LCD.PRINT "Alarm deaktiviert!"
                LIGHT=OFF 'Licht an
                Rel1=false
            END IF
        END IF
        GET x
    END IF
    
    GOTO Abfrage

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    16.07.2007
    Beiträge
    6
    Funktioniert auch nicht! )=
    Es sieht so aus, dass das Programm gar nicht in die Schleife "reinspringt"!
    Verbindung ist aber vorhanden, also Kabel hab ich geprüft!

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    16.09.2004
    Ort
    Schwabenland
    Beiträge
    156
    versuch es doch so mal...
    Code:
    #Abfrage
    define x as Byte[10]
    
    BAUD R9600   '<<<<hier und nicht mitten drin
    LCD.INIT         '<< statt .clear 
    LCD.POS 1,1
    LCD.PRINT "Standby"
    LCD.OFF          '<< das fehlt.
    LIGHT=ON 'Licht aus
    Led1=true
    
    IF RXD = true then
    
        GET x
       
        IF x = 49 then 'ASCII Zeichen für 1       
            LCD.INIT         '<< statt .clear 
            LCD.POS 1,1
            LCD.PRINT "ALARM!"
            LCD.OFF          '<< das fehlt.
            LIGHT=OFF 'Licht an
            Rel1=true
        ELSE         '<<<< hier fehlte wohl ein ELSE
           
            IF x = 48 then 'ASCCI Zeichen für 0   
                LCD.INIT         '<< statt .clear 
                LCD.POS 1,1
                LCD.PRINT "Alarm deaktiviert!"
                LCD.OFF          '<< das fehlt.
                LIGHT=OFF 'Licht an
                Rel1=false
            END IF
        END IF
        GET x
    END IF
    
    GOTO Abfrage

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    16.07.2007
    Beiträge
    6
    Funktioniert leider auch nicht!
    Will nicht in die Schleife springen, aber warum? (=
    Bin mit meinem Latein am Ende ...

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    16.09.2004
    Ort
    Schwabenland
    Beiträge
    156
    Hab da noch ein Fehlerchen gefunden (#Abfrage)
    Code:
    BAUD R9600   '<<<<hier und nicht mitten drin
    LCD.INIT         '<< statt .clear
    LCD.POS 1,1
    LCD.PRINT "Standby"
    LCD.OFF          '<< das fehlt.
    LIGHT=ON 'Licht aus
    Led1=true
    
    #Abfrage '<<<<<< Hier wollen wir hinspringen :)
    
    IF RXD = true then
    
        GET x
       
        IF x = 49 then 'ASCII Zeichen für 1       
            LCD.INIT         '<< statt .clear
            LCD.POS 1,1
            LCD.PRINT "ALARM!"
            LCD.OFF          '<< das fehlt.
            LIGHT=OFF 'Licht an
            Rel1=true
        ELSE         '<<<< hier fehlte wohl ein ELSE
           
            IF x = 48 then 'ASCCI Zeichen für 0   
                LCD.INIT         '<< statt .clear
                LCD.POS 1,1
                LCD.PRINT "Alarm deaktiviert!"
                LCD.OFF          '<< das fehlt.
                LIGHT=OFF 'Licht an
                Rel1=false
            END IF
        END IF
       ' GET x   Das hat hier auch nix zu suchen
    END IF
    
    GOTO Abfrage

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    16.07.2007
    Beiträge
    6
    OK ich habs, es lag nicht am QuelleCode sondern an HyperTerminal!!!
    Mit dem mitgelieferten Terminal Programm von Basic funtkioniert es!!
    Trotzdem vielen Dank für deine Hilfe!!!!!!!!!

    Gruß Khoi

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    16.09.2004
    Ort
    Schwabenland
    Beiträge
    156
    Zumindest geht es mit den Änderungen nun etwas besser

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    16.07.2007
    Beiträge
    6
    OK hier mein fertiger Code! (=
    Ich hab jetzt festgestellt, es funktioniert nur, wenn ich über RS232-Übertragungsschnittstelle angeschlossen bin. An der Anschlussstelle für RS232 an der C-Control an der Seite, funktioniert es nicht!
    An was könnte das liegen???

    Code:
    #Abfrage
    
    define x as Byte 
    BAUD R9600    
    LCD.INIT     
    LCD.POS 1,1 
    LCD.PRINT "Standby" 
    LCD.OFF          
    LIGHT=ON 'Licht aus 
    Led1=true
      
    IF RXD then 
        GET x
        SELECT Case x 
        Case 49 'ASCII Zeichen für 1        
            LCD.INIT        
            LCD.POS 1,1 
            LCD.PRINT "ALARM!" 
            LCD.OFF
            LIGHT=OFF 'Licht an 
            Rel1=true 
            PAUSE 300 '5 Sekunden Pause
            
        Case 48 'ASCCI Zeichen für 0    
            LCD.INIT 
            LCD.POS 1,1 
            LCD.PRINT "Alarm deaktiviert!" 
            LCD.OFF          
            LIGHT=OFF 'Licht an 
            Rel1=false
            PAUSE 300 '5 Sekunden Pause 
        END SELECT
    END IF 
    
    GOTO Abfrage

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    16.09.2004
    Ort
    Schwabenland
    Beiträge
    156
    Von welcher C-Control redest Du? C-Control I Station 2?

    Und an der Front funktioniert es nur mit einem Kabel an den Klemmen nicht?
    RX und TX Leitungen mal herumgedreht?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test