RTV forum PL | NewsGroups PL

Programowanie komunikacji RS485 w języku C podobieństwa do RS232?

RS 485 - programowanie

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Programowanie komunikacji RS485 w języku C podobieństwa do RS232?

Goto page 1, 2  Next

E.N
Guest

Tue Nov 23, 2004 9:07 am   



Witam.

Jestem początkowym programistą.
Mam urządzenie (miernik) z interfejsem RS485 oraz
pc z wbudowanym interfejsem RS485. Mam oprogramować komunikację pomiędzy
tymi urządzeniami (w języku c).
Mam pewne doświadczenia z RS232. Rozumiem, że przy
takich warunkach, oprogramowanie komunikacji (kod aplikacji) jest takie samo
jak w przypadku RS 232.
Proszę o potwierdzenie tej tezy.


pozdrawiam
GG

Piotr Gałka
Guest

Tue Nov 23, 2004 9:51 am   



Użytkownik "E.N" <gm@gnas.pl> napisał w wiadomości
news:cnuun5$lcv$1@nemesis.news.tpi.pl...
Quote:
Witam.

Jestem początkowym programistą.
Mam urządzenie (miernik) z interfejsem RS485 oraz
pc z wbudowanym interfejsem RS485. Mam oprogramować komunikację
pomiędzy
tymi urządzeniami (w języku c).
Mam pewne doświadczenia z RS232. Rozumiem, że przy
takich warunkach, oprogramowanie komunikacji (kod aplikacji) jest
takie samo
jak w przypadku RS 232.

W RS232 są osobne tory w dwie strony, a tu jest jeden wspólny.
W RS485 ramki mogą się "zderzyć" i trzeba to jakoś rozwiązać.
Można wymyślić coś samemu, lub zastosować jakiś standard (nie znam).
P.G.

entroper
Guest

Tue Nov 23, 2004 9:55 am   



"E.N" <gm@gnas.pl> wrote in message
news:cnuun5$lcv$1@nemesis.news.tpi.pl...
(...)
Quote:
Mam pewne doświadczenia z RS232. Rozumiem, że przy
takich warunkach, oprogramowanie komunikacji (kod aplikacji) jest
takie samo
jak w przypadku RS 232.

jesli to RS485 full duplex (2 pary), to bedzie tak samo, jesli jedna
para, a komunikacja ma zachodzic w dwie strony, wtedy trzeba
zapewnic jakis mechanizm zwalniania magistrali. No i nadawane dane
beda wracac do odbiornika ("echo").

pozdrawiam
entrop3r

Michał
Guest

Tue Nov 23, 2004 10:17 am   



Quote:
Mam pewne doświadczenia z RS232. Rozumiem, że przy
takich warunkach, oprogramowanie komunikacji (kod aplikacji) jest
takie samo
jak w przypadku RS 232.

jesli to RS485 full duplex (2 pary), to bedzie tak samo, jesli jedna
para, a komunikacja ma zachodzic w dwie strony, wtedy trzeba
zapewnic jakis mechanizm zwalniania magistrali. No i nadawane dane
beda wracac do odbiornika ("echo").

Potwierdzam, to cholerne echo przytrzymalo mnie kilka dni w miejscu,
zanim rozpoznalem i rozwiazalem problem.
Jesli ktos chce kilka fotek sieci na RS485 mozna przejrzec tu:
http://www.michallo.ll.pl/RS485/index.htm
Pzd Michał

Quote:
pozdrawiam
entrop3r


Sebastian Bialy
Guest

Tue Nov 23, 2004 11:30 am   



Michał wrote:
Quote:
Potwierdzam, to cholerne echo przytrzymalo mnie kilka dni w miejscu,
zanim rozpoznalem i rozwiazalem problem.
Jesli ktos chce kilka fotek sieci na RS485 mozna przejrzec tu:
http://www.michallo.ll.pl/RS485/index.htm

Stosowałeś jakiś popularny protokół, czy coś własnego ? Własnie szyke
sieć na RS485 i mam jeszcze pole manewru ;)

--
Sebastian Bialy - heby@poczta.onet.pl

GG
Guest

Tue Nov 23, 2004 12:05 pm   



Można gdzieś poczytać o metodach rozwiązujących ten problem ???

Użytkownik "entroper" <entroper@CWD.spamerom.poczta.onet.pl> napisał w
wiadomości news:cnv0s1$l1$1@achot.icm.edu.pl...
Quote:
"E.N" <gm@gnas.pl> wrote in message
news:cnuun5$lcv$1@nemesis.news.tpi.pl...
(...)
Mam pewne doświadczenia z RS232. Rozumiem, że przy
takich warunkach, oprogramowanie komunikacji (kod aplikacji) jest
takie samo
jak w przypadku RS 232.

jesli to RS485 full duplex (2 pary), to bedzie tak samo, jesli jedna
para, a komunikacja ma zachodzic w dwie strony, wtedy trzeba
zapewnic jakis mechanizm zwalniania magistrali. No i nadawane dane
beda wracac do odbiornika ("echo").

pozdrawiam
entrop3r


Michał
Guest

Tue Nov 23, 2004 1:41 pm   



Quote:
Stosowałeś jakiś popularny protokół, czy coś własnego ? Własnie szyke
sieć na RS485 i mam jeszcze pole manewru Wink

Protokół wlasny, nawet nie chcialo mi sie szukac czego co moglnym
przystosowac do swojej sieci. W ramce danych mam zapisana temeperature, stan
fotokomorek oraz sterowanie przekaznikiem.
Pzd Michał

Tomasz Sliwa
Guest

Tue Nov 23, 2004 4:13 pm   



Witam

Quote:
zapewnic jakis mechanizm zwalniania magistrali. No i nadawane dane
beda wracac do odbiornika ("echo").

Ja rozwiazalem to bardzo prosto. W momencie nadawania wylaczalem odbiornik.
Nie mam pdfa (max485) pod reka, ale chyba wystarczylo zewrzec wyprowadzenia
ENABLE nadajnika i odbiornika, bo uaktywniane sa (o ile dobrze pamietam -
projekt robilem prawie 3 lata temu) roznymi stanami logicznymi (FIXME).
Dzialalo tot bez zarzutu, nie mialem problemu z echem.
Pozdrawiam
Tomek

GG
Guest

Wed Nov 24, 2004 5:42 am   



Czy problemy także wystepują gdy używamy jakiegoś popularnego protokołu
(Modbus, profibus) ?

Użytkownik "Tomasz Sliwa" <tomsliwaXXX@XXXsys.net.pl> napisał w wiadomości
news:cnvnrb$gj6$1@nemesis.news.tpi.pl...
Quote:
Witam

zapewnic jakis mechanizm zwalniania magistrali. No i nadawane dane
beda wracac do odbiornika ("echo").

Ja rozwiazalem to bardzo prosto. W momencie nadawania wylaczalem
odbiornik.
Nie mam pdfa (max485) pod reka, ale chyba wystarczylo zewrzec
wyprowadzenia
ENABLE nadajnika i odbiornika, bo uaktywniane sa (o ile dobrze pamietam -
projekt robilem prawie 3 lata temu) roznymi stanami logicznymi (FIXME).
Dzialalo tot bez zarzutu, nie mialem problemu z echem.
Pozdrawiam
Tomek



Mariusz Dybiec
Guest

Wed Nov 24, 2004 5:39 pm   



entroper wrote:
Quote:
"E.N" <gm@gnas.pl> wrote in message
news:cnuun5$lcv$1@nemesis.news.tpi.pl...
(...)

Mam pewne doświadczenia z RS232. Rozumiem, że przy
takich warunkach, oprogramowanie komunikacji (kod aplikacji) jest

takie samo

jak w przypadku RS 232.


jesli to RS485 full duplex (2 pary), to bedzie tak samo, jesli jedna
para, a komunikacja ma zachodzic w dwie strony, wtedy trzeba
zapewnic jakis mechanizm zwalniania magistrali. No i nadawane dane
beda wracac do odbiornika ("echo").
Jeśli full duplex to nie będzie RS485 tylko RS422. Jeśli jednak RS485

czyli 1 para to dzięki "sprzętowemu" zwalnianiu magistrali nie masz
echa. Jeśli pracuje nadajnik to odbiornik jest po tej stronie odłączony
( na wyjściu ustawiony na 1 ). Przełączenie odbiór-nadawanie jest albo
sterowane linią RTS albo następuje automatycznie przy pojawieniu się
bitu startu po stronie TTL przy pomocy prostego przerzutnika
monostabilnego. Wszystkie znane mi karty RS485/RS422 oraz konwertery
485-232 mają tak rozwiązane. Czasami to przełączanie powoduje, że
obetnie ci początek odpowiedzi jeśli Slave za szybko zacznie odpowiadać.
Ja robiąc obsługę w Slave musiałem zazwyczaj trochę opóźniać odpowiedż
bo pecet z kartą Advantecha nie zdążał.

--
Pozdrawiam
MD

Mariusz Dybiec
Guest

Wed Nov 24, 2004 5:45 pm   



Piotr Gałka wrote:

Quote:

W RS232 są osobne tory w dwie strony, a tu jest jeden wspólny.
W RS485 ramki mogą się "zderzyć" i trzeba to jakoś rozwiązać.
Nie mogą jeśli to jest RS485 bo wg standardu musisz zastosować

Master-Slave. Slave nie może nadawać spontanicznie tylko jest odpytywany.

--
Pozdrawiam
MD

Andrzej Augustynowicz
Guest

Wed Nov 24, 2004 6:46 pm   



Witam

Quote:
W RS232 są osobne tory w dwie strony, a tu jest jeden wspólny.
W RS485 ramki mogą się "zderzyć" i trzeba to jakoś rozwiązać.
Nie mogą jeśli to jest RS485 bo wg standardu musisz zastosować
Master-Slave. Slave nie może nadawać spontanicznie tylko jest odpytywany.

Moment, moment - RS485 definiuje TYLKO warstwe fizyczna.
Jesli uklad jest typu multimaster (a dlaczego nie ?) to moga wystapic
"kolizje". Zalozmy sytuacje, kedy master-slave skoncza wymiane danych
i inne mastery chca rozpoczac transmisje do swoich adresatow.
Z pewnoscia badaja zajetosc szyny transmisyjnej jednak nie mozna
wykluczyc ze decyzje o rozpoczceciu transmisji podejma w tym samym
czasie.
Oczywiscie mozna to rozwiazac poprzez wymiane "tokenow", przydzial
czasu itd. ale to juz inna bajka :)

Pozdrawiam
Andrzej

entroper
Guest

Wed Nov 24, 2004 8:19 pm   



"Mariusz Dybiec" <mardyb@poczta.onet.pl> wrote in message
news:co2h1u$56c$1@atlantis.news.tpi.pl...
(...)
Quote:
Jeśli full duplex to nie będzie RS485 tylko RS422. Jeśli jednak
RS485
czyli 1 para to dzięki "sprzętowemu" zwalnianiu magistrali nie
masz
echa.

zalezy czy "sprzet" zwalnia Smile W gotowej karcie albo konwerterze
232/485 moze byc zrobione tak jak mowisz (w konwerterze nawet jest
to calkiem zrozumiale Smile ), ale np. scalony driver we wlasnym
urzadzeniu mozesz podlaczyc roznie - uzywajac czegos do przelaczania
nadawanie/odbior lub nie. Lokalne echo natomiast wcale nie jest (jak
dla mnie) takie zle - mozna np. programowo sprawdzac kolizje w
systemie multimaster czy tez po prostu kontrolowac sprawnosc drivera
i linii.

pozdrawiam
entrop3r

Mariusz Dybiec
Guest

Thu Nov 25, 2004 12:14 am   



Andrzej Augustynowicz wrote:
Quote:
Witam


W RS232 są osobne tory w dwie strony, a tu jest jeden wspólny.
W RS485 ramki mogą się "zderzyć" i trzeba to jakoś rozwiązać.

Nie mogą jeśli to jest RS485 bo wg standardu musisz zastosować
Master-Slave. Slave nie może nadawać spontanicznie tylko jest odpytywany.


Moment, moment - RS485 definiuje TYLKO warstwe fizyczna.
Jesli uklad jest typu multimaster (a dlaczego nie ?) to moga wystapic
"kolizje". Zalozmy sytuacje, kedy master-slave skoncza wymiane danych
i inne mastery chca rozpoczac transmisje do swoich adresatow.
Nie będę się upierał ale nie przypominam sobie żeby EIA/TIA-485

dopuszczało więcej niż jeden master. Na 75176 obciążonym 50ohm możesz
sobie rzeźbić dowolnie ale to nie oznacza, że efekt będzie zgodny z
RS485 czyli "Recommended Standard".
W tym przypadku gość ma dość prosty układ - miernik który pewnie nie
jest masterem i pc który może i powinien być masterem. Pisanie mu o
wersjach RS485 dwu i czteroprzewodowych o echach i kolizjach jakie muszą
towarzyszyć wersji 2 przewodowej wprowadza chaos pojęciowy.


--
Pozdrawiam
MD

Mariusz Dybiec
Guest

Thu Nov 25, 2004 12:29 am   



E.N wrote:
Quote:
Witam.

Jestem początkowym programistą.
Mam urządzenie (miernik) z interfejsem RS485 oraz
pc z wbudowanym interfejsem RS485. Mam oprogramować komunikację pomiędzy
tymi urządzeniami (w języku c).
Mam pewne doświadczenia z RS232. Rozumiem, że przy
takich warunkach, oprogramowanie komunikacji (kod aplikacji) jest takie samo
jak w przypadku RS 232.
Proszę o potwierdzenie tej tezy.
Jeśli i miernik i karta ma rzeczywiście RS-485 to łączysz jedną parką.

Jeśli karta w komputerze ma automatyczne przełączanie nadawanie- odbiór
to tylko wysyłasz rozkaz do miernika a potem z bufora coma odczytujesz
odpowiedź. Karta powinna po wysłaniu automatycznie przełączyć się na
odbiór. Ale w starych kartach musisz sprawdzić czy ewentualnie zworkami
jest ustawiona prawidłowa prędkość transmisji ( bo od niej zależy
prędkość przełączania). Jeśli nie ma automatu to przełączasz linią RTS -
powinno być w dokumentacji karty. Karta powinna mieć wlutowane
terminatory - rezystory np 120 Ohm. Jeśli ta karta to Advantech to w
dokumentacji jest błędnie zaznaczone który rezystor jest od 485.

Jeśli miernik ma jednak RS422 a nie 485 to ustaw kartę na 422 ( pewnie
ma wybór) podłącz dwie parki i nie musisz o niczym myślec.

--
Pozdrawiam
MD

Goto page 1, 2  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Programowanie komunikacji RS485 w języku C podobieństwa do RS232?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map