Sterowanie SSR'ów za pomocą RS232

Na tym forum rozmawiamy o elektronice nie związanej bezpośrednio z tematem CNC

Autor tematu
ambrosius
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 3
Posty: 205
Rejestracja: 01 paź 2008, 20:47
Lokalizacja: Wielkopolska

Sterowanie SSR'ów za pomocą RS232

#1

Post napisał: ambrosius » 24 cze 2010, 20:11

Witam.
mam 2 pytania:

1) Pisze pewien program w Delphi, i chciałem załączać przekaźniki SSR 40A (ster 3 - 32 DC) za pomocą portu rs232. (port lpt mam zajęty do innego celu) czy jest możliwe podanie na konkretne linie stanu wysokiego???
Jakimi funkcjami/komponentami to się realizuje w delphi??? jakieś wskazówki??

2) Czy jest możliwe odczytanie stanu, tzn, podpinam przycisk pod 2 linie rs232 i czy jest możliwość odczytania stanu, czy te linie są zwarte czy też nie??? np. gdy nacisnę przycisk to w programie się coś dzieje

Z góry dziękuje za naprowadzenie. szukałem na temat ale głownie widzę wszędzie rs232 do transmisji...




Leoo
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 4017
Rejestracja: 15 lis 2006, 22:01
Lokalizacja: Tarnobrzeg

#2

Post napisał: Leoo » 25 cze 2010, 08:13

Kolega poszuka książki "RS232 - praktyczne programowanie" wydawnictwa Helion.
Port nie nadaje się do przekazywania informacji równoległych, za to niewielkim nakładem środków można uzyskać dużą ilość pinów ON/OFF tzn. MAX232+dowolny procesor z UART, począwszy od zacnego 8051.


Autor tematu
ambrosius
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 3
Posty: 205
Rejestracja: 01 paź 2008, 20:47
Lokalizacja: Wielkopolska

#3

Post napisał: ambrosius » 25 cze 2010, 09:51

dziękuję za odpowiedz.

Co do sterowania włącz wyłącz używam także karty na usb takiej ( instaluje się jak port com, wystarczy wpisać "1" i przekaźnik się załącza.

Obrazek


Jednak najbardziej potrzebuje 3 przycisków.

Do lpt mam płytkę ssk-mb2 ( będe używał tylko 2 silników sterowanych z delphi) a jakby użyć jako przycisków krańcówek HOME??? Jak to zaprogramować przez pytkę ssk-mb2 , czy po prostu z gniazda LPT "zabrać" nie używane piny i na nich zrobić przyciski??? Uda się tak?

Awatar użytkownika

Inf-el
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 573
Rejestracja: 22 cze 2004, 18:41
Lokalizacja: Szczecin
Kontakt:

#4

Post napisał: Inf-el » 25 cze 2010, 10:14

Bez potrzeby programowania procesorków 8051 lub AVR można wysterować piny portu szeregowego DTR i RTS a odczytać CTS i DSR z poziomu Delphi używając darmowej biblioteki ComPort.
Aby sygnały dawały napięcie 5 i 0 V potrzebny jeszcze będzie max232 i kilka kondensatorów.
Oczywiście możliwości wzrastają gdy zastosujemy dodatkowo procesor.

ComPort do Delphi 2010
lib_comm.zip do starszych
Ostatnio zmieniony 27 cze 2010, 11:26 przez Inf-el, łącznie zmieniany 1 raz.


Autor tematu
ambrosius
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 3
Posty: 205
Rejestracja: 01 paź 2008, 20:47
Lokalizacja: Wielkopolska

#5

Post napisał: ambrosius » 25 cze 2010, 13:20

Kod: Zaznacz cały

 Dana:= TestLPT.DLPortIO.Port[DataPort]; 
  Dana := Dana shl 1;                     // przesuwamy w lewo o jeden
  if Dana=0 then Dana:=$10;             // warunek przekroczenia zakresu
  TestLPT.DLPortIO.Port[DataPort] := Dana;        // wpisujemy nową wartość
  TestLPT.Caption := IntToStr(Dana); 
 Sleep(2000); 
zrobiłem coś takiego i teraz na pinach co 2s zmienia się i pojawia się napięcie (około 5V) pomiędzy pinem 6,7,8,9 do masy.

Teraz chciałbym aby działało to odwrotnie, czyli przyciski zwierają/rozwierają dwa piny i program sprawdza jaki jest stan. Ma ktoś pomysł jak to zrealizować???

A może łatwiej będzie odczytać stany z płytki ssk-mb2??? ( krańcówka e-stop i home)?

Kod: Zaznacz cały

procedure TTestLPT.Timer2Timer(Sender: TObject); 
begin
DataPort:=$378+1; 
 Dana := TestLPT.DLPortIO.Port[DataPort]; 

  If (( Dana = 255 ) or ( Dana = 63 )) then
  begin
  TestLPT.Color := clRed; 
  end
  else TestLPT.Color := clBlack; 

  //działaja 10,11,12,13,15 - przy nich zmienia sie wartość Dana
  TestLPT.Caption :=  IntToStr(Dana); 
end;
Ten kod jak zwieram piny 10,11,12,13,15 do masy powoduje zmianę wartości będącej w zmiennej "Dana". Czy ta wartość ( bo rożne te wartości były: 255, 63 i inne) będą zawsze takie same ze będę mógł je wpisać na stałe i za każdym uruchomieniem komputera będą takie same????

Awatar użytkownika

blue_17
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 3
Posty: 1715
Rejestracja: 16 kwie 2009, 07:55
Lokalizacja: Kraków/Kornatka

#6

Post napisał: blue_17 » 27 cze 2010, 02:26

Kolego jaką masz wersję delphi ?

Z tego co mi wiadomo w jednej z zakładek jest odpowiedni komponent

A na forum jest coś takiego jak praktyczne programowanie RS232 w C chyba i w C++builder borlanda jeszcze to powinno Ci się wiele rzeczy wyjaśnić jak nie znajdziesz na forum to skontaktuj się na PW ze mną to Ci wyślę ma gdzieś na dysku :)
"I siedzieli oni razem pod nagim DOS-em i nie wstydzili sie tego." :D

Awatar użytkownika

Inf-el
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 573
Rejestracja: 22 cze 2004, 18:41
Lokalizacja: Szczecin
Kontakt:

#7

Post napisał: Inf-el » 06 lip 2010, 19:01

Ja mam Delphi 2010 Pro i nie widzę komponentu do com'a.

Awatar użytkownika

blue_17
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 3
Posty: 1715
Rejestracja: 16 kwie 2009, 07:55
Lokalizacja: Kraków/Kornatka

#8

Post napisał: blue_17 » 06 lip 2010, 21:49

blue_17 pisze:
Z tego co mi wiadomo w jednej z zakładek jest odpowiedni komponent
Fakt są ale jeśli się je wcześniej zainstaluje są Darmowe komponent do Com-a więc problemu niema

Na marginesie czy koledzy robili coś w Lazarusie to jest też Delphi ale darmowy program i wieloplatformowy jedna aplikacja może działać na Windzie, Linuxie i Macu. Można instalować dodatkowe komponenty.

Bardzo ciekawe środowisko tylko nie wiem czy można za darmo wykorzystywać w celach komercyjnych.

Bo program jest standardowo w repozytoriach ( ja mam akurat kubuntu )

Próbował ktoś tego bo na razie bawię się w Delphi 2009 z programikiem bazodanowym i mam pewne problemy :???:
"I siedzieli oni razem pod nagim DOS-em i nie wstydzili sie tego." :D

Awatar użytkownika

Inf-el
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 573
Rejestracja: 22 cze 2004, 18:41
Lokalizacja: Szczecin
Kontakt:

#9

Post napisał: Inf-el » 06 lip 2010, 22:55

A z jakimi bazami kolega pracuje ?
Jeśli PostgreSQL to służę pomocą.

Awatar użytkownika

blue_17
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 3
Posty: 1715
Rejestracja: 16 kwie 2009, 07:55
Lokalizacja: Kraków/Kornatka

#10

Post napisał: blue_17 » 06 lip 2010, 23:47

Baza jest Mysql-owa i jako tak "ujażmiłem" już ją tylko zostały mi jeszcze 4 rzeczy ale to są operacje związane z DBGridem i formowaniem zapytania SQL-owego, ponieważ program ma obsługiwać dowolną tabele a nie konkretnie zdefiniowaną tabele.

Szczegóły mogę przesłać na PW lub ewentualnie prosił bym o podanie e-maila na PW

Z góry dzięki :)
"I siedzieli oni razem pod nagim DOS-em i nie wstydzili sie tego." :D

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika ogólna”