AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Relaiskarte K8056 von Velleman seriell ansteuern
Thema durchsuchen
Ansicht
Themen-Optionen

Relaiskarte K8056 von Velleman seriell ansteuern

Ein Thema von HaGü · begonnen am 22. Mai 2006 · letzter Beitrag vom 24. Apr 2008
Antwort Antwort
Seite 5 von 5   « Erste     345   
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#41

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 30. Apr 2007, 14:46
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 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)
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#42

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 30. Apr 2007, 15:01
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
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#43

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 30. Apr 2007, 16:39
ich hab mit das von Beitrag #14 mal angeguckt und rumprobiert. Ich bekomme das einfach nicht anlaufen und werde mit Fehlermeldungen überschüttet.
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#44

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 30. Apr 2007, 16:54
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
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#45

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 30. Apr 2007, 22:22
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;
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#46

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 24. Apr 2008, 19:14
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)
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 Uhr.
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