AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

COM - Port Kommunikation

Ein Thema von schneckman · begonnen am 29. Jul 2003 · letzter Beitrag vom 17. Apr 2008
Antwort Antwort
Seite 1 von 2  1 2      
schneckman

Registriert seit: 29. Jul 2003
5 Beiträge
 
#1

COM - Port Kommunikation

  Alt 29. Jul 2003, 14:40
Hallo allerseits,

ich versuche meinen COM1 Port über Delphi 5 anzusprechen, aber bekomme immer wieder Fehlermeldungen wie "nicht erlaubter Zugriff". Liegt es an meinem OS (win2000)?

Kann mir jemand weiterhelfen? Ich möchte nur eine bestimmte Zeichenkette an ein Gerät übertragen, dass an COM1 angeschlossen ist.
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#2

Re: COM - Port Kommunikation

  Alt 29. Jul 2003, 14:43
hallo,

wie versuchst du aufs comport zuzugreifen?
Daniel
  Mit Zitat antworten Zitat
schneckman

Registriert seit: 29. Jul 2003
5 Beiträge
 
#3

Re: COM - Port Kommunikation

  Alt 29. Jul 2003, 14:50
habe es mit AssignFile(f,'COM1') versucht (dann wie eine Datei behandelt)
und auch mit verschiedenen kleinen Programmen mit entsprechenden DLLs, die ich im Netz gefunden habe. Hat nichts funktioniert.

Mein Problem ist eigentlich ganz simpel. Ich möchte "CC" oder "CW" an einen kleinen Motor übergeben, der an COM1 liegt. Dies hat auch schon funktioniert, aber mit anderen Programmen. Nun möchte ich es gerne in Delphi haben.
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#4

Re: COM - Port Kommunikation

  Alt 29. Jul 2003, 14:58
Das dürfte am OS liegen. Verhält sich wahrscheinlich ähnlich wie beim LPT ansteuern. Ist ein privilegierter Zugriff der Treibern vorbehalten ist.

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
schneckman

Registriert seit: 29. Jul 2003
5 Beiträge
 
#5

Re: COM - Port Kommunikation

  Alt 29. Jul 2003, 15:01
Kann ich denn den Treiber mit Delphi benutzen? Wenn ja: wie?
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#6

Re: COM - Port Kommunikation

  Alt 29. Jul 2003, 15:57
Naja vom Prinzip her geht das wie folgt:
Code:
OS Check ---> Kein NT System ---> Keinen Treiber laden
  |
  |
  |
  v
NT System
  |
  |
  |
  v
Treiber laden
  |
  |
  |
  v
Arbeiten
  |
  |
  |
  v
Beim Beenden Treiber entladen
Wie genau man das macht weiss ich nicht und ich weiss leider auch nicht was man für nen Treiber nehmen muss, aber ich würde dir empfehlen mal auf www.torry.ru zu suchen. Dort findet sich bestimmt die ein oder andere Komponente oder ein Treiber.

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Benutzerbild von mika
mika

Registriert seit: 25. Okt 2002
176 Beiträge
 
Delphi 6 Professional
 
#7

Re: COM - Port Kommunikation

  Alt 29. Jul 2003, 17:02
Normalerweise brauchst du keinen Treiber wenn du nur Zeichen über den
ComPort senden willst, das sollte auch so gehen!

Hier mal n paar Codeschnipseln, ich hoffe Sie helfen dir, hab die nur
grade aus einer meiner Units kopiert und nicht extra angepasst.
Beim Verständnis sollten die helfen ansonsten frag noch mal nach.

Delphi-Quellcode:

Const
  comport = 'com1';

FUNCTION OeffnePort():boolean;
VAR
  DCB : TDCB;
  TIMEO : TCommTimeouts;

BEGIN
  result := true;
  CommHandle:=CreateFile(pchar(comport), GENERIC_READ or GENERIC_WRITE,
                         0, nil, OPEN_EXISTING, 0, 0);
  if CommHandle <= 0 then
  begin
    result := false;
  end
  else
  begin
    DCB.DCBlength:=SizeOf(DCB);
    DCB.ByteSize:=8;
    DCB.Parity:=NoParity;
    DCB.StopBits:=TWOSTOPBITS;
    DCB.BaudRate:=9600;
    DCB.Flags:=5123; // Wenn 2 Pins belegt sind
    DCB.EofChar:=#0;
    DCB.ErrorChar:=#0;
    DCB.EvtChar:=#0;
    DCB.XoffChar:=#0;
    DCB.XoffLim:=0;
    DCB.XonChar:=#0;
    DCB.XonLim:=0;
    SetCommState(CommHandle, DCB);
    GetCommTimeOuts(CommHandle, TimeO);

    TimeO.ReadIntervalTimeOut:=100;
    TimeO.ReadTotalTimeoutMultiplier:=0;
    TimeO.ReadTotalTimeoutConstant:=250;

    TimeO.WriteTotalTimeoutMultiplier:=0;
    TimeO.WriteTotalTimeoutConstant:=200;
    SetCommTimeouts(CommHandle, TimeO);
  end;
END;

// .............................................................................

PROCEDURE SchliessePort;
BEGIN
  FileClose(CommHandle);
END;

// .............................................................................

FUNCTION SchreibePort (Text: string):boolean;
VAR
  i,x : integer;

BEGIN
(*
  // Einen String senden, jedes Zeichen einzeln
  result := true; x := 0;
  For i := 1 to length(text) do
  begin
    x := x + filewrite(CommHandle, Text[I], 1);
    sleep (1);
  end;
  IF X <> length (text) then result := false;
*)

  // String als ganzes senden

  result := true;
  i := filewrite(CommHandle, Text[1], Length(text));
  If i <> Length(text) then result := false;
END;

// #############################################################################

FUNCTION INBuffer():integer;
VAR
 l : TComStat;
 i : Cardinal;

BEGIN
  ClearCommError(CommHandle,i,@l);
  if i = ce_txfull then purgecomm (commhandle, purge_txclear);
  Result:=l.cbInQue;
END;

// .............................................................................

FUNCTION LoescheBuffer():boolean;
VAR
  temp : LongBool;
BEGIN
  temp := purgecomm(commhandle,purge_txabort OR purge_rxabort OR purge_txclear OR purge_rxclear);
  If temp = false then result := false else result := true;
END;

// .............................................................................

FUNCTION LeseBuffer():String;
VAR
  anzahl : integer;
  temp : string;

BEGIN
  anzahl := InBuffer;
  SetLength(Temp, Anzahl);
  If anzahl > 0 then
  begin
    FileRead(CommHandle, Temp[1], anzahl);
    result := temp;
  end
  else
    result := '';
END;
Hoffe das hilft dir, aber nicht beschweren über fehlende Variablen oder
so hab es wie gesagt nur schnell hier reingeworfen.



Gruß, Mika
:: don't Panic ::
  Mit Zitat antworten Zitat
schneckman

Registriert seit: 29. Jul 2003
5 Beiträge
 
#8

Re: COM - Port Kommunikation

  Alt 31. Jul 2003, 12:33
Habe mitlerweile Erfolge erzielt!
Es ist mir mit einer Kombination von hier dargelegtem Wissen und einem sehr zu empfelenden Buch ("Handbuch der PC-Mess-und Steuertechnik") gelungen, meine 3 Befehle an die entsprechenden COM Ports zu senden.

Danke an alle, die dabei geholfen haben!

Wer genaueres wissen möchte, kann mich gerne kontaktieren.
  Mit Zitat antworten Zitat
BungeeBug

Registriert seit: 19. Dez 2002
Ort: zuhause?!
227 Beiträge
 
Delphi 6 Personal
 
#9

Re: COM - Port Kommunikation

  Alt 31. Jul 2003, 15:21
Hi,


könntest dus evl. eben posten ... ich versuch nämlich grad ne Steuersoftware für ne Shimadzu UV-160/CL-750 zuschreiben.

THX schon mal.
MfG BungeeBug
Wer andern eine Grube gräbt sollte auf Gasleitungen achten!!!!
  Mit Zitat antworten Zitat
schneckman

Registriert seit: 29. Jul 2003
5 Beiträge
 
#10

Re: COM - Port Kommunikation

  Alt 5. Aug 2003, 12:38
Hi,


procedure Serielle_Schnittstelle_Pumpen;
var Openstring: String;
j : Integer;
Zeichen : char;
COM : integer;
begin
Openstring := 'COM'+IntToStr(COM)+':9600,N,8,1';
OPENCOM (pchar (Openstring));
for j:=1 to Length(tosend) do
begin
Zeichen:=tosend[j];
SendByte (ord(Zeichen));
end;
SendByte (ord(VK_RETURN));
CloseCOM;
end;

damit´s funktioniert, braucht man natürlich noch eine entsprechende DLL. Meine heißt "RSCOMdec".

Ich hoffe ich konnte helfen...
Angehängte Dateien
Dateityp: pas rscomdec.pas (1,5 KB, 64x aufgerufen)
Dateityp: dll rscom.dll (59,0 KB, 45x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:00 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