eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaProblem z RS-485 › Re: Problem z RS-485
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!news.unit0.net!feeder02.blueworldhosting.com!usenet.bluewo
    rldhosting.com!feeder01.blueworldhosting.com!npeer03.iad.highwinds-media.com!ne
    ws.highwinds-media.com!feed-me.highwinds-media.com!nx02.iad01.newshosting.com!n
    ewshosting.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!news.chmurka.
    net!.POSTED!not-for-mail
    From: Piotr Gałka <p...@c...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Problem z RS-485
    Date: Thu, 10 Oct 2013 19:42:39 +0200
    Organization: news.chmurka.net
    Lines: 51
    Message-ID: <l36ouj$g30$1@somewhere.invalid>
    References: <1...@g...com>
    <l34pfp$k0$1@mx1.internetia.pl>
    NNTP-Posting-Host: 213.192.88.238
    Mime-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="utf-8"; reply-type=response
    Content-Transfer-Encoding: 8bit
    X-Trace: somewhere.invalid 1381426964 16480 213.192.88.238 (10 Oct 2013 17:42:44 GMT)
    X-Complaints-To: abuse-news.(at).chmurka.net
    NNTP-Posting-Date: Thu, 10 Oct 2013 17:42:44 +0000 (UTC)
    X-Authenticated-User: PiotrGalka
    X-Newsreader: Microsoft Outlook Express 6.00.2900.5931
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
    X-Priority: 3
    X-MSMail-Priority: Normal
    X-Received-Bytes: 4070
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:653039
    [ ukryj nagłówki ]


    Użytkownik "Mario" <m...@...pl> napisał w wiadomości
    news:l34pfp$k0$1@mx1.internetia.pl...
    >
    > Terminator 120R na masterze i na ostatnim slave. Jeśli to RS485 to do
    > czego są wykorzystywane pozostałe parki w przewodzie?
    > Przydałoby się, żeby linie +D i -D były odpowiednio podciągnięte do +5V i
    > GND w jednym z urządzeń np w masterze.
    >
    Też bym od tego zaczął przypuszczając, że zastosowano scalaki bez fail-save.

    Gdy zaczynaliśmy z RS485 mieliśmy taki przypadek (nie udało się tego
    zmierzyć - jedynie logika sugeruje, że tak to się (mogło) dziać):
    A nadaje coś do B i kończy.
    Na linii robi się A=2.5V, B=2.5V, A-B=0.
    Odbiornik (ten konkretny scalak) w A widzi to jako 1 (bo nie jest
    zdefiniowany stan dla A=B).
    Potencjały na A i B stopniowo spadają do 0 (pojemność kabla do GND i
    rezystancja wejściowa scalaków).
    Gdy po iluś us na przykład A=B=1V (lub spadają nierówno) odbiornik w A widzi
    0 (bo nie jest zdefiniowany stan dla A=B i może zależeć od common mode).
    Odbiornik w A widzi bit startu i bajt samych zer bez bitu stopu. Po
    odebraniu takiego bajtu pominie go i dalej czeka na odpowiedź.
    Pech polegał na tym, że B (po przetworzeniu zadania) zaczynało (prawie
    zawsze) odpowiadać w trakcie tego bajtu. Jedna na kilkadziesiąt prób się
    udawała. Objaw był taki, że reakcja urządzeń na zdarzenie zamiast następować
    w niezauważalnym czasie następowała po kilku s.
    Nie udało się nic pomierzyć - jakiekolwiek podłączenie się do linii
    oscyloskopem natychmiast usuwało problem. Nie mieliśmy też wtedy jeszcze
    oscyloskopu cyfrowego - może dało by się coś wyczaić na wyjściu odbiornika w
    A. Jakakolwiek zmiana konfiguracji (dodatkowe urządzenie na linii) też
    usuwało problem. Wymiana dowolnego ze scalaków RS485 rozwiązywało problem.
    Problem pojawiał się mniej więcej raz na kilkanaście zestawów urządzeń.
    Zaczęliśmy stosować wyłącznie scalaki z fail-save (również dla zwarcia
    linii) i problem już nigdy się nie pojawił.
    Jak nie masz wpływu na scalaki to musisz rozciągnąć A-B>0.2V rezystorami.
    Jak linia nie musi być zakończona to można to zrobić bardzo delikatnie
    (nawet po 100k).
    Można też zakończyć linię szeregowym RC i rozciągnięcie też delikatne.
    Albo siłowo 2k-100om-2k (czy coś koło tego).
    Zawsze wymagany jest dostęp do zasilania - nie piszesz czy masz.
    Mam też inny pomysł, ale to zależy od prędkości komunikacji, której nie
    znamy. Może zwiększenie pojemności kabla między A-B rozwiązało by problem -
    czyli kondensator zamiast rezystora terminalowego (tak samo zadziała
    zakończenie szeregowym RC z odpowiednio dużym C). Każdy kończy nadawanie
    1-ką. Jeśli kondensator utrzyma ją aż do wejścia na linię kolejnego
    urządzenia problemu nie będzie.
    To wszystko przy założeniu, że źródłem problemu jest brak fail-save a uważam
    to za najbardziej prawdopodobną przyczynę.
    P.G.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: