Forum: Mikrocontroller und Digitale Elektronik relaiskarte conrad


von Dario A. (Gast)


Lesenswert?

Hallo zusammen!

Ich habe bei Conrad eine 8-fache Relaiskarte gekauft um ein 
Lüftungssystem zu steuern. Ich würde diese Karte gerne vom PC aus über 
RS232 steuern können. Leider habe ich keine Ahnung wie ich das tun 
sollte.

Dieser Code wurde mir mitgeschickt:

CLS : CLEAR
DIM inbuf(800)
DIM outbuf(8)
OPEN "com2: 19200,n,8,1,bin,cs,ds" FOR RANDOM AS # 1

---INTERRUPT SE RIAL INTERFACE ON---
COM(2) ON
ON ERROR GOTO BADCOM
ON COM(2) GOSUB GETFRAME
---INITIALIZE RELAIS BOARD---
PRINT "INITIALIZE BOARD"
outbuf(O) = 1: outbuf(1) = 1: outbuf(2) = 0: GOSUB sendframe
FOR delay = 1 TO 1000000: NEXT: CLS

---SWITCH RELAIS---
teststart:
r = 1
rt:
outbuf(O) = 3: outbuf(1) = 1: outbuf(2) = r: GOSUB sendframe
FOR delay = 1 TO 1000000: NEXT: CLS
r = r * 2: IF r < 256 THEN GOTO rt
GOTO teststart

---SERIAL COMMUNICATION---
---READ 4 BYTE DATAFRAME----

GETFRAME:
inbuf(bz) = ASC(lNPUT$(l, # 1))
bz = bz + 1

IF bz = 4 THEN GOTO checkframe
RETURN
---CHECK VALIDllY---
checkframe:
ERROR$ = "ERROR"
IF inbuf(O) XOR inbuf(1) XOR inbuf(2) = inbuf(3) THEN ERROR$ = "OK"
bz = 0: PRINT"RECEIVED:";" ";inbuf(0);" ";inbuf(1);" "; inbuf(2);" "; 
inbuf(3); " "; ERROR$
PRINT "-------------------------------------------': RETURN

---SEND 4 BYTE DATAFRAME---

sendframe:
outbuf(3) = outbuf(0) XOR outbuf(1) XOR outbuf(2) send$ = 
CHR$(outbuf(0)) + CHR$(outbuf(1)) + CHR$(outbuf(2)) + CHR$(outbuf(3))
PRINT # 1, send$
PRINT "TRANSMITTED: ";" "; outbuf(0);" "; outbuf(1);" "; outbuf(2);" "; 
outbuf(3)
RETURN

'****************** ERROR HANDLER *************
BADCOM:
PRINT "- DATA ERROR !"
RESUME
RETURN

ende:
END


Kann mir jemand erklären wie ich das tun kann! Ich bin sehr interessiert 
an dieser Sache jedoch noch ein Anfänger.

Herzlichen Dank für jede Hilfe

Gruss

Dario

von Andreas M. (cheflooser)


Lesenswert?

Die erste Hilfe ist mal dich darauf hin zuweisen, mitzuteilen "welche" 
Relaiskarte du gekauft hast!

von Falk B. (falk)


Lesenswert?

@  Dario A. (Gast)

>RS232 steuern können. Leider habe ich keine Ahnung wie ich das tun
>sollte.

Tja, ein wenig Programmierkenntnisse brauchst du schon. Und wenn du die 
hast, dann kannst du den Code leicht verstehen und anpassen.

Die Steuerung ist einfach. Sende der Karte per RS232 ein Datenpaket aus 
4 Bytes. Dort ist kodiert, welche Relais wie geschaltet werden sollen. 
Zum Dank antwortet deine Karte mit einem Paket aus ebenfalls 4 Bytes.
Zum Testen empfehle ich HTERM, dort kann man direkt Binäre/Hexadezimale 
Daten eingeben, anzeigen, versenden und empfangen.

http://www.der-hammer.info/terminal/

MFG
Falk

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.