Delphi-PRAXiS
Seite 5 von 5   « Erste     345   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Relaiskarte K8056 von Velleman seriell ansteuern (https://www.delphipraxis.net/69932-relaiskarte-k8056-von-velleman-seriell-ansteuern.html)

robinWie 30. Apr 2007 14:46

Re: Relaiskarte K8056 von Velleman seriell ansteuern
 
Zitat:

Zitat von Reinhard Kern
Hallo,

wenn die Karten von 1..255 nummeriert werden, dann wird die Karte 1 GANZ BESTIMMT NICHT mit $31 angesprochen, sondern mit $01. Ausserdem ist CR 13 oder $0D (oder soll es DC3 sein, das wäre $13), und "T" ist 84 oder $54 ...

Ohne Anspruch auf Vollständigkeit.

Gruss Reinhard

Das $13 gibt nicht die Adresse der Karte an. Die Adresse kommt als 2.


Zitat:

Zitat von Cyberbob
Die Checksumme kann aber auch berechnet werden, was einfacher ist, wenn man mehr als eine Karte betreibt.

Du hast recht. Ich würde das auch lieber berechnen als irgendwelche Konstanten abfragen. Aber ich hab das mit den Berechnen nicht ganz verstanden wie das geht. Text aus dem Handbuch
Zitat:

'checksum' Summe prüfen (2-Komplement der Summe der 4 vorigen Bytes + 1)

Klaus01 30. Apr 2007 15:01

Re: Relaiskarte K8056 von Velleman seriell ansteuern
 
Zitat:

Zitat von robinWie
Du hast recht. Ich würde das auch lieber berechnen als irgendwelche Konstanten abfragen. Aber ich hab das mit den Berechnen nicht ganz verstanden wie das geht. Text aus dem Handbuch
'checksum' Summe prüfen (2-Komplement der Summe der 4 vorigen Bytes + 1)

Schau Dir doch einmal den Beitrag 14 an.

Grüße
Klaus

robinWie 30. Apr 2007 16:39

Re: Relaiskarte K8056 von Velleman seriell ansteuern
 
ich hab mit das von Beitrag #14 mal angeguckt und rumprobiert. Ich bekomme das einfach nicht anlaufen und werde mit Fehlermeldungen überschüttet.

Klaus01 30. Apr 2007 16:54

Re: Relaiskarte K8056 von Velleman seriell ansteuern
 
Zitat:

Zitat von robinWie
ich hab mit das von Beitrag #14 mal angeguckt und rumprobiert. Ich bekomme das einfach nicht anlaufen und werde mit Fehlermeldungen überschüttet.

Dann zeige doch einmal Deinen Ansatz und sage was für Fehlermeldungen Du so bekommst,

Grüße
Klaus

robinWie 30. Apr 2007 22:22

Re: Relaiskarte K8056 von Velleman seriell ansteuern
 
Hier ist mein Ansatz aus einer Prozedur. Ich hab immer diesen Fehler:
Zitat:

[Fehler] MainUnit.pas(716): E2015 Operator ist auf diesen Operandentyp nicht anwendbar
Delphi-Quellcode:
procedure TMainForm.SetRelay(Card, Relay: Char);
var
  CMD: Char;
  ST: CHAR;
  S: String;
begin
  CMD := 'S';
  ST := Char(13);
  CHECK := ((ST + Card + CMD + RELAY) XOR $FF) + 1; // <== Und das ist die Zeile wo der Fehler auftritt
  S := ST + CARD + CMD + RELAY + CHECK;
  RS.Send(S);
end;

robinWie 24. Apr 2008 19:14

Re: Relaiskarte K8056 von Velleman seriell ansteuern
 
Ja Ja ich weiss der Thread is schon verdammt alt aber ich habe eine simple Funktion gebastelt um das Problem mit der Checksumme zu lösen.

Delphi-Quellcode:
function GetChecksum(Card, Relay: integer; CMD: string): integer;
var
 i: Extended;
 ASC_C: integer;
 ASC_R: integer;
 A: Extended;
 B: Extended;
 _i: integer;
begin
 CMD := UpperCase(CMD[1]);
 case CMD[1] of
  'E': ASC_C := 69; 'D': ASC_C := 68; 'S': ASC_C := 83;
  'C': ASC_C := 67; 'T': ASC_C := 84; 'A': ASC_C := 65;
  'F': ASC_C := 70; 'B': ASC_C := 66;
 end;
 if (CMD[1] <> 'A') and (CMD[1] <> 'B') then
  ASC_R := Relay + 48 else
  ASC_R := Relay;
 _i := 13 + Card + ASC_C + ASC_R;
 A := _i / 256;
 B := Int(A);
 i := (255 - 256*(A-B)) + 1;
 Result := Round(i);
end;
Kleines Beispiel:
Relais 2 auf Karte 1 setzten
Delphi-Quellcode:
var
Checksum: Char;
begin
Checksum := Char(GetChecksum(2, 1, 'S'))
...
Bei den Befehl A (Karte neue Adresse zuweisen) müsst ihr bei dem Relay Parameter die neue Kartenaddresse eingeben
Bei den Befehl B (Alle Relais der Karte ansteuern) müsst ihr bei dem Relay Parameter die Nummer eingeben wo drin steht welche Relais gesetzt und welche ausgeschaltet werden sollen (1..255)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 Uhr.
Seite 5 von 5   « Erste     345   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz