Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

RS 232 Komunikacija

[es] :: Pascal / Delphi / Kylix :: RS 232 Komunikacija

[ Pregleda: 3581 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

IgorMedo
Igor Madjeric
Doboj

Član broj: 101335
Poruke: 30
*.teol.net.



Profil

icon RS 232 Komunikacija29.01.2007. u 07:53 - pre 209 meseci
Pravi jednu aplikaciju koja treba da relizuje paljenje i gasenje osvijetljenja. Pa mi je potrebna mala pomoc.
Aplikacija treba da omogu;i korisniku da upali svijetlo i zatim da ga ugasi. Sto se ti'e elektronike sve je naporavljeno sada samo treba program. A i program bi bio gotov samo kada bih znao da posaljem podatke preko com porta. Pa bih vas molio da mi pomognete. Progam moye da bude napisan ili u pascalu ili u delphiu tj. nije bitno da li je dos ili win.
Unaprijed zahvaljujem
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: RS 232 Komunikacija29.01.2007. u 08:52 - pre 209 meseci
> samo treba program. A i program bi bio gotov samo kada bih znao da posaljem podatke preko com porta.

Najjednostavnije je da nađeš neku komponentu za komunikaciju preko serijskog porta. Dobar kandidat je TComPort Dejana Crnile, u okviru te arhive možeš naći i primere tako da ne bi trebalo da imaš većih problema.
 
Odgovor na temu

dogriz
Sombor

Član broj: 29744
Poruke: 259
*.so-sombor.com.

Sajt: dogriz.blogspot.com


+6 Profil

icon Re: RS 232 Komunikacija29.01.2007. u 09:12 - pre 209 meseci
Meni je za kontrolisanje određene elektronike bitno samo da postoji signal na com portu, tako da mi je bilo dovoljno nešto slično ovom:

Code:

var
  FPort: Integer;
...
function ...
begin
(**********  Definisanje Handle broja za COM1 port i inicijalno postavljanje DTR-a na iskljuceno ****************)
  FPort := CreateFile (pchar('COM1'), GENERIC_READ or GENERIC_WRITE,0,NIl, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  EscapeCommFunction(FPort, CLRDTR);
end;

//EscapeCommFunction(FormMain.FPort, SETDTR); //postavljanje DTR-a na ukljuceno


Na početku rada definiši Handle za COM port koji želiš i kasnije samo postavljaj parametar DTR kako ti odgovara, naravno ako ovo tvoja elektronika može da razume.
 
Odgovor na temu

IgorMedo
Igor Madjeric
Doboj

Član broj: 101335
Poruke: 30
*.teol.net.



Profil

icon Re: RS 232 Komunikacija29.01.2007. u 09:39 - pre 209 meseci
Odlicno i menije potrebno samo postojanje signala na com portu.
Tako da sada idem da isproba ovaj kod.
Nadam se da ce raditi, a ako ne bude potrazicu pojasnjenja ali nadam se da nece trebati.
Hvala!
 
Odgovor na temu

IgorMedo
Igor Madjeric
Doboj

Član broj: 101335
Poruke: 30
*.teol.net.



Profil

icon Re: RS 232 Komunikacija29.01.2007. u 10:38 - pre 209 meseci
Isprobao sam Kod. Povezao RS232 kabal i kada sam probao na pinu mi je napon konstantno isti 10 V sto bi trebalo da bude logicka 1. Evo kako sam prebaci kod sto si mi napisao pa ako sam negdije pogrijesio molim objasnjenje.
Unaprijed Hvala

Code:

unit UFGlavna;

interface

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

type
  TFGlavna = class(TForm)
    Panel1: TPanel;
    SpeedButton1: TSpeedButton;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    procedure SpeedButton1Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FGlavna: TFGlavna;
  FPort:integer;

implementation

{$R *.dfm}

function Incijalizacija:boolean;
begin
  FPort:=CreateFile(pchar('COM1'), GENERIC_READ or GENERIC_WRITE,0,NIl, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  EscapeCommFunction(FPort, CLRDTR);
end;

procedure TFGlavna.SpeedButton1Click(Sender: TObject);
begin
  Close;
end;

procedure TFGlavna.BitBtn1Click(Sender: TObject);
begin
  EscapeCommFunction(FPort, SETDTR);
end;

procedure TFGlavna.BitBtn2Click(Sender: TObject);
begin
  EscapeCommFunction(FPort, CLRDTR);
end;

end.
 
Odgovor na temu

dogriz
Sombor

Član broj: 29744
Poruke: 259
*.so-sombor.com.

Sajt: dogriz.blogspot.com


+6 Profil

icon Re: RS 232 Komunikacija29.01.2007. u 12:30 - pre 209 meseci
Funkciju inicijalizacija pozovi recimo pri kreiranju forme, jer iz ovog koda koji si poslao nigde nema poziva.
Što se DTR signala tiče, moguće je da je tih 10V čak logička 0 (tj. da su logička 0 i 1 obrnute)... Zaboravio sam već šta sam i kako testirao, ali isprobaj svakako.
Meni je sad dovoljan externi modem, preko koga proveravam stanje DTR signala (LE dioda), da ne komplikujem sa unimerima i žicama.

Evo jedan primer koji sam upravo probao sa modemom:

Code:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    FPort: Integer; //koristi se kao Handle Com1 porta
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
(**********  Definisanje Handle broja za COM1 port i inicijalno postavljanje DTR-a na iskljuceno ****************)
  FPort := CreateFile (PChar('COM1'), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  EscapeCommFunction(FPort, CLRDTR);
(****************************************************************************************************************)
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EscapeCommFunction(FPort, SETDTR);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  EscapeCommFunction(FPort, CLRDTR);
end;

end.


Klik na Button1 uključi DTR na modemu, a Button2 isključi.

[Ovu poruku je menjao dogriz dana 29.01.2007. u 14:15 GMT+1]
 
Odgovor na temu

IgorMedo
Igor Madjeric
Doboj

Član broj: 101335
Poruke: 30
*.teol.net.



Profil

icon Re: RS 232 Komunikacija30.01.2007. u 12:09 - pre 209 meseci
Hvala!
Ali sam se ipak oducio za komponentu TComPort, prepravio sam i gresku u svom kod i sada radi :).
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: RS 232 Komunikacija

[ Pregleda: 3581 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.