Hallo,
in versuche seit geraumer Zeit die 8 Fach Relaisplatine von Conrad anzusteuern. Leider nur mit mäßigen Erfolg. Die Platine wird an die Serielle Schnittstelle angeschlossen.
Ein Hardware Fehler kann ausgeschlossen werden, da sie mit der (selbstprogrammierten)Software von jemand anderem funktioniert.
Die Serielle Schnittstelle habe ich erfolgreich initialisiert. Siehe Code:
Code:
function opencom(comport : string): boolean;
begin
hport:= CreateFile(PChar(comport),GENERIC_READ + GENERIC_WRITE,0,nil,OPEN_EXISTING,0,0);
GetCommState(hport,dcb);
dcb.BaudRate := StrToCard(comconfig.baudrate.Text);// Bautrate
dcb.ByteSize := StrToInt(comconfig.data.Text); // 8 Bits je Byte
dcb.Parity := StrToInt(comconfig.parity.Text); // kein Paritäts Bit NOPARITY
dcb.StopBits := StrToInt(comconfig.stopbit.text); // ein Stopp Bit ONESTOPBIT
dcb.wReserved:= 0;
// In Buffer // Out Buffer
if SetupComm(hPort, strtoint(comconfig.inbuffer.Text), strtoint(comconfig.Data.Text))
then
begin
result := true;
log(comconfig.ComboBox1.Text + 'erfolgreich initialisiert...');
end
else
begin
result := false;
log(comconfig.ComboBox1.Text + 'konnte NICHT initialisiert!');
end;
SetCommState(hport,dcb);
end;
Daten sende ich über diese Funktion an die Karte:
Code:
// byte
procedure outport(data: char);
var
len: cardinal;
written: dword; // cardinal
begin
len:= 1;
WriteFile(hport,data,len,written,nil);
end;
Mein Problem liegt nun im ansteuern der Relais! Die Karte erwartet einen 4 Byte langen Befehlsrahmen (siehe weiter unten Datenblatt), den ich wahrscheinlich nicht richtig "aufbaue" und an die Karte sende.
Auch das initialisieren der Karte klappt nicht!.
Code:
procedure senddata(par1, par2,par3: byte);
var summe : byte;
begin
summe := par1 xor par2 xor par3;
outport(chr(par1));
outport(chr(par2));
outport(chr(par3));
outport(chr(summe));
end;
Procedure initcard;
begin
senddata (1,1,0);
end;
Auf Seite 7 des Datenblattes steht wie die Relais anzusteuern sind.
Auf der darauf folgenden Seite ist ein BASIC Programm, das mich leider nicht weiterbringt.
Datenblatt
So, ich hoffe das war nicht zuviel auf einmal
Please help.
Mfg
Salomon