Hallo,
ich bin eigentlich absoluter Java Neuling, versuche allerdings gerade die 8-fache, serielle Relaiskarte von Conrad mit Java anzusteuern.
Das habe ich bisher geschrieben:
Allerdings rührt sich bis jetzt noch gar nichts an der Relais Karte.
In dem Handbuch der Karte steht das folgende QBasic Programm:
Vielleicht könnt ihr mir sagen, ob ich die COM Schnittstelle jetzt mit Java richtig geöffnet habe oder ob da schon ein Fehler drin ist.
Was und wie ich jetzt die Befehle an die Karte senden soll ist mir nicht klar. ???:L
:### Das Handbuch zur Karte gibt es hier:
http://www2.produktinfo.conrad.com/...7720-an-01-de-Relaisplatine_8fach_seriell.pdf
Da steht im Kapitel 4, wie die Karte angesteuert werden soll. unter 4.5 steht, welche Kommandos gesendet werden sollen.
Vielen vielen Dank für euere Hilfe.
Gruß
Sven
ich bin eigentlich absoluter Java Neuling, versuche allerdings gerade die 8-fache, serielle Relaiskarte von Conrad mit Java anzusteuern.
Das habe ich bisher geschrieben:
Code:
import javax.comm.*;
import java.io.*;
public class Relais {
static CommPortIdentifier portID;
static InputStream ins;
static OutputStream out;
static SerialPort serss;
public static void main(String[] args) {
// COMM oeffnen
try{
portID = CommPortIdentifier.getPortIdentifier("COM1");
serss = (SerialPort) portID.open("COM1",2000);
}
catch(Exception exc)
{
System.out.println("Fehler :"+exc);
}
System.out.println("Relais schalten\n---------------------------");
System.out.println("COM1 geoeffnet !");
try
{
ins = serss.getInputStream();
OutputStream os = serss.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(os);
byte Aktion=1;
byte Adr=0;
bos.write(1);
bos.write(Adr);
bos.write(0);
bos.write(3);
bos.write(Adr);
bos.write(1);
bos.write(Adr);
}
catch (Exception e) { System.out.println("Fehler: "+e);}
serss.notifyOnDataAvailable(true);
try
{
serss.setSerialPortParams(19200,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1 ,
SerialPort.PARITY_NONE);
}
catch (UnsupportedCommOperationException e) {}
}
}
Allerdings rührt sich bis jetzt noch gar nichts an der Relais Karte.
In dem Handbuch der Karte steht das folgende QBasic Programm:
Code:
CLS : CLEAR
DIM inbuff(800)
DIM outbuff(8)
OPEN "com1:19200,n,8,1,bin,cs,ds" FOR RANDOM AS #1
COM(2) ON
ON ERROR GOTO BADCOM
ON COM(2) GOSUB GETFRAME
PRINT "Initialize borad"
outbuf(0) = 1: outbuf(1) = 1: outbuf(2) = 0: GOSUB sendframe
FOR delay = 1 TO 100000: NEXT: CLS
teststart:
r = 1
rt:
outbuf(0) = 3: outbuf(1) = 1: outbuf(2) = r: GOSUB sendframe
FOR delay = 1 TO 100000: NEXT: CLS
r = r * 2: IF r < 256 THEN GOTO rt
GOTO teststart
GETFRAME:
inbuf(bz) = ASC(INPUT$(1, #1))
bz = bz + 1
IF bz = 4 THEN GOTO checkframe
RETURN
checkframe:
ERROR$ = "ERROR"
IF inbuf(0) XOR inbuf(1) XOR infbuf(2) = inbuf(3) THEN ERROR$ = "OK"
bz = 0: PRINT "Empfangen: "; " "; inbuf(0); " "; inbuf(1); " "; inbuf(2); " "; inbuf(3); " ", ERROR$
PRINT "---------------------------------": RETURN
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 "gesendet !"; outbuf(0); outbuf(1)
RETURN
BADCOM:
PRINT "---- DATA ERROR ---- "
RESUME
RETURN
ende:
END
Vielleicht könnt ihr mir sagen, ob ich die COM Schnittstelle jetzt mit Java richtig geöffnet habe oder ob da schon ein Fehler drin ist.
Was und wie ich jetzt die Befehle an die Karte senden soll ist mir nicht klar. ???:L
:### Das Handbuch zur Karte gibt es hier:
http://www2.produktinfo.conrad.com/...7720-an-01-de-Relaisplatine_8fach_seriell.pdf
Da steht im Kapitel 4, wie die Karte angesteuert werden soll. unter 4.5 steht, welche Kommandos gesendet werden sollen.
Vielen vielen Dank für euere Hilfe.
Gruß
Sven