Gast
#1447971
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