Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehle über RS232 schicken und dann Relais schalten
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.
#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
So müsste es funktionieren...
#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
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!
versuch es doch so mal...
#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
Funktioniert leider auch nicht!
Will nicht in die Schleife springen, aber warum? (=
Bin mit meinem Latein am Ende ...
Hab da noch ein Fehlerchen gefunden (#Abfrage)
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
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
Zumindest geht es mit den Änderungen nun etwas besser O:)
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???
#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
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?
C-Control 1 Station 2!
Links neben dem Display, an der Schnittstelle funktioniert es, nur an den RS232 Klemmen funktioniert es nicht! Ich habe die RX und TX Leitungen schon getauscht! Gibt es irgendeine Einstellungsmöglichkeit?
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.