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 1 von 5  1 23     Letzte »    
HaGü

Registriert seit: 18. Apr 2006
Ort: Cochem
19 Beiträge
 
#1

Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 22. Mai 2006, 14:42
Hallo Leute,

bin rel. neu hier und bis jetzt nur im LeseStatus.
Da ich aber für mein Problem keine Lösung finden kann, schreibe ich heute mal.
Also, ich möchte die Relaikarte K8056 von Velleman seriell ansteuern.
Um einen Befehl auszuführen, muss die richtige Befehlsfolge übertragen werden.
Eigentlich sieht solch eine Befehlsfolge so aus:
1. CHR$(13)
2. Kartenadresse(1...255)
3. Befehl
4. Adresse (1...255) oder Relaisnummmer('1'..'9' ASCII)
5. 'checksum' Summe prüfen(2-Komplement der Summe der 4 vorigen Bytes +1)

Befehle:
'E': Nothalt
'D': Display-Adresse
'S': Relais einstellen
'C': Relais löschen
'T': Toggle-Relais
'A': Adresse einer Karte wechseln
'F': Alle Karten auf Adresse 1
'B': Byte senden. Ermöglicht es, den Status aler Relais mit einem Befehl zu steuern.

Ich versuche dauernd folgenden Befehl in verschiedenen Versionen und Fariationen zu senden:
CHR($13)+CHR($31)+CHR($84)+CHR($31)+CHR($98)
1. CHR($13)
2. CHR($31) - Kartenadresse 1
3. CHR($84) - Befehl('T' Toggle)
4. CHR($31) - Relaisnummer 1
5. CHR($98) - Checksumme

Was ist falsch und/oder wie funktionierts
Brauche dringend Hilfe

Mit Grüssen von der Mosel
HaGü
  Mit Zitat antworten Zitat
Klaus01

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

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 22. Mai 2006, 15:02
Womit kommunizierst denn Du mit der Schnittstelle
AsyncPro, TSerial?

Würde eventuell helfen, Dein Problem zu lösen.
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
HaGü

Registriert seit: 18. Apr 2006
Ort: Cochem
19 Beiträge
 
#3

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 22. Mai 2006, 15:14
Hallo Klaus,

öffnen und schliessen mach ich mit inpout32.dll.
Habe aber auch die "TurboPower Async Professional" installiert.
Mein Listing bis jetzt wäre:
Delphi-Quellcode:
unit Relaiskarte1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    beenden1: TMenuItem;
    Relais1: TMenuItem;
    allean1: TMenuItem;
    alleaus1: TMenuItem;
    RadioGroup1: TRadioGroup;
    RadioGroup2: TRadioGroup;
    RadioGroup3: TRadioGroup;
    RadioGroup4: TRadioGroup;
    RadioGroup5: TRadioGroup;
    RadioGroup6: TRadioGroup;
    RadioGroup7: TRadioGroup;
    RadioGroup8: TRadioGroup;
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure beenden1Click(Sender: TObject);
    procedure allean1Click(Sender: TObject);
    procedure alleaus1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);


  private
    { Private-Deklarationen }


  public
    { Public-Deklarationen }
  end;
var
  Form1: TForm1;
  ComHandle: THandle;
  f: TextFile;
  s: string;

implementation
{$R *.dfm}
{Funktionen aus "inpout32.dll" laden:}
procedure Out32(Addresse:Integer; Wert:byte);stdcall;export; external 'INPOUT32.DLL';
function Inp32(Addresse:Integer):Byte;stdcall;export; external 'INPOUT32.DLL';



procedure TForm1.beenden1Click(Sender: TObject);
begin
     RadioGroup1.ItemIndex:= 1;
     RadioGroup2.ItemIndex:= 1;
     RadioGroup3.ItemIndex:= 1;
     RadioGroup4.ItemIndex:= 1;
     RadioGroup5.ItemIndex:= 1;
     RadioGroup6.ItemIndex:= 1;
     RadioGroup7.ItemIndex:= 1;
     RadioGroup8.ItemIndex:= 1;
  FileClose(ComHandle);
  close;
end;

procedure TForm1.allean1Click(Sender: TObject);

begin

     RadioGroup1.ItemIndex:= 0;
     RadioGroup2.ItemIndex:= 0;
     RadioGroup3.ItemIndex:= 0;
     RadioGroup4.ItemIndex:= 0;
     RadioGroup5.ItemIndex:= 0;
     RadioGroup6.ItemIndex:= 0;
     RadioGroup7.ItemIndex:= 0;
     RadioGroup8.ItemIndex:= 0;
end;

procedure TForm1.alleaus1Click(Sender: TObject);
begin
     RadioGroup1.ItemIndex:= 1;
     RadioGroup2.ItemIndex:= 1;
     RadioGroup3.ItemIndex:= 1;
     RadioGroup4.ItemIndex:= 1;
     RadioGroup5.ItemIndex:= 1;
     RadioGroup6.ItemIndex:= 1;
     RadioGroup7.ItemIndex:= 1;
     RadioGroup8.ItemIndex:= 1;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
 {evtl. geöffnete Schnittstelle schließen:}
 CloseHandle(ComHandle);
 {COM2 per API-Funktion (CreateFile) öffnen:}
 ComHandle := CreateFile('COM2', GENERIC_READ or GENERIC_WRITE,
                           0, nil, OPEN_EXISTING, 0, 0);
 {Hinweis, ob Schnittstelle geöffnet werden konnte:}
 if ComHandle = INVALID_HANDLE_VALUE then
  begin
   beep;
   Label1.Caption := 'Fehler beim Öffnen von COM2';
  end
  else
   Label1.Caption := 'COM2 geöffnet';
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
   EscapeCommFunction(ComHandle, SETDTR);
   EscapeCommFunction(ComHandle, SETRTS);
   EscapeCommFunction(ComHandle, SETBREAK);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
   EscapeCommFunction(ComHandle, CLRDTR);
   EscapeCommFunction(ComHandle, CLRRTS);
   EscapeCommFunction(ComHandle, CLRBREAK);
end;





end.
  Mit Zitat antworten Zitat
Klaus01

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

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 22. Mai 2006, 15:23
mit inpout32 habe ich noch nicht gearbeitet,
nach der Durchsicht dieser WebSeite http://sheepdogguides.com/dt4j.htm
erscheint es mir aber das inpout32 für parallele Schnittstellen ist.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
HaGü

Registriert seit: 18. Apr 2006
Ort: Cochem
19 Beiträge
 
#5

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 22. Mai 2006, 15:40
Hallo Klaus,

ca. in der Mitte im Oberen Teil der Site steht: InpOut32 should also allow you to access your serial port.
Und ich kann, wie gesagt den Port aus- und einschalten. Getestet mit eine LED an den Strippen.
Ach ja, vielleicht wichtig, der Anschluß ist mit 2 Adern, müßte dann Asyncron sein.

Gruß Hagü
  Mit Zitat antworten Zitat
Klaus01

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

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 22. Mai 2006, 16:46
Hallo HaGü,

mhm, ich denke da kann ich Dir nicht viel weiterhelfen
außer vielleicht mit diesem Link: http://ourworld.compuserve.com/homep..._Boyd/Dt5f.htm

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
HaGü

Registriert seit: 18. Apr 2006
Ort: Cochem
19 Beiträge
 
#7

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 22. Mai 2006, 16:56
Hallo Klaus,

bin gerade mit APRO am rumspielen, kann auch senden.
ich habe aber immernoch das problem mit dem richtigen String.
Habe einen Quelltext in VB gefunden, demnach brache ich nur die Zeilen:

checksum = (255 - ((((13 + address + Asc("T") + Asc(factor)) / 256) - Int((13 + address + Asc("T") + Asc(factor)) / 256)) * 256)) + 1
messagestring = Chr$(13) & Chr$(address) & "T" & factor & Chr$(checksum)

umzusetzen.
Aber wie??????????
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 22. Mai 2006, 17:14
Hai HaGü,

ersteinmal : "Herzlich Willkommen in der Delphi-PRAXiS"

In deinem Code sendest Du mit Chr($13) den ASCII Code 19 (Hex 13) an die Karte. Wenn ich das eben richtig gelesen habe wird bei der Karte ein sogenanntes Telegram aber mit Chr(13) oder Chr($D) eingeleitet.

Auch bei allen anderen Zahlen verwendest Du immer die HEX-Notation. Eventuell ist ja das dein Problem.
Stephan B.
  Mit Zitat antworten Zitat
HaGü

Registriert seit: 18. Apr 2006
Ort: Cochem
19 Beiträge
 
#9

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 23. Mai 2006, 21:25
Hallo Leute,

hab heut` so ziemlich den ganzen Tag im Internet gesucht und auch Teile gefunden, auch hier.
Danke schon mal an ALLE.

Bin also jetzt soweit, das ich nur noch 3 Fehlermeldungen bekomme.
Aber was ist noch falsch?
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var messagestring:string;
    checksum:extended;
    address:integer;
    factor:integer;
begin

  checksum := (255 - ((((13 + address + Ord('T') + Ord(factor)) / 256) - (Int(13)) + address + Ord('T') + Ord(factor)) / 256)) * 256 + 1;
  messagestring := Char(13) + Char(address) + 'T' + factor + (checksum);

  messagestring:= messagestring+messagestring;
  ApdComPort1.Output:= messagestring;
  showmessage (checksum);

end;
Bitte bitte helfen, sonst wird es wieder eine lange Nacht.
  Mit Zitat antworten Zitat
HaGü

Registriert seit: 18. Apr 2006
Ort: Cochem
19 Beiträge
 
#10

Re: Relaiskarte K8056 von Velleman seriell ansteuern

  Alt 23. Mai 2006, 21:45
Ach ja, die Fehlermeldungen,

[Fehler] Relaiskarte1.pas(157): Inkompatible Typen
[Fehler] Relaiskarte1.pas(157): Inkompatible Typen: 'String' und 'Extended'
[Fehler] Relaiskarte1.pas(161): Inkompatible Typen: 'String' und 'Extended'
[Fataler Fehler] Karte1.dpr(5): Verwendete Unit 'Relaiskarte1.pas' kann nicht compiliert werden

Gruß von der Mosel
HaGü
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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 05:46 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