Komunikační linky

HW sériových komunikačních linek.

Co je RS422 RS485 a srovnání s RS232

Dálkový přenos dat po komunikačních linkáchhw server

 

Co je RS 422, RS 485 a srovnání s RS 232

Pojem RS 232 je vzhledem k popularitě dnešních PC velice známý. U RS 422 & 485 je situace poněkud odlišná: používá se spíše v průmyslovém prostředí a v systémech pro řízení a přenos dat (maloobjemových, žádné stovky Mb/s).

Jaký je tedy mezi RS 232 a RS 422 & 485 rozdíl? Signály RS 232 jsou reprezentovány napěťovými úrovněmi vzhledem k zemi. Pro každý signál jeden vodič + společný zemní vodič, vůči němuž jsou napěťové úrovně vztaženy. Tento způsob je vhodný pro point-to-point komunikaci při nízkých rychlostech. Například na port COM 1 u PC může být připojená myš, na COM 2 modem atd. To je příklad point-to-point komunikace, jeden port, jedno zařízení. Zapojení signálů vyžaduje společnou zem, tudíž se dostáváme k omezené délce vodičů – maximálně cca 30 až 60 metrů (hlavní roli hraje odpor dlouhého vedení a snadná zarušitelnost). V krátkosti tedy, RS 232 bylo vyvinuto pro komunikaci lokálních zařízení a podporuje jeden vysílač a jeden přijímač.

RS 422 & 485 používá poněkud odlišný princip: pro každý signál používá jedno twistedpair (TP) vedení, tj. 2 vodiče smotané kolem sebe. Z elektrického hlediska mluvíme tzv. Balanced data transmision, nebo také Differential voltage transmission. Laicky řečeno, označíme-li si jeden vodič z TP jako A druhý jako B, pak je-li signál neaktivní, je napětí na A záporné a na B kladné. V opačném případě, signál je aktivní, je A kladné a B záporné. Pochopitelně se jedná o rozdíl (diferenci) mezi vodiči A a B. Pro RS 422 & 485 může délka vedení dosahovat až 4000 stop (cca 1200 metrů) a běžně vyráběné obvody dosahují přenosových rychlostí 2.5 MB/s.

Jaký je rozdíl mezi RS 422 a RS 485? Elektrický princip je stejný: Obojí používá diferenční vysílače s alternujícím napětím 0 a 5V. RS 422 je však určena, podobně jako RS 232 pro point-to-point komunikaci. RS 422 používá dva oddělené TP vodiče a data mohou být přenášena v obou směrech současně. RS 422 se často používá na prodloužení vedení RS 232, nebo v průmyslovém prostředí.

RS 485 se používá pro multipoint komunikaci, více zařízení může být připojeno na jedno signálové vedení. Stejně jako například sítě ETHERNET, vedené po koaxiálním kabelu. Většina RS 485 systémů používá Master/Slave architekturu, kde má každá slave jednotka svojí unikátní adresu a odpovídá pouze na jí určené pakety. Tyto pakety generuje Master (například PC) a periodicky obesílá všechny připojené slave jednotky.

V tomto článku budeme hovořit především o Master/Slave architektuře, protože na 95% aplikací to stačí. Ve speciálních případech (zabezpečovací systém atd..) se však používá vylepšená obdoba tzv. multiprocesorové komunikace známé z procesorů 8X51. Tento systém používá pouze jedno vedení na obousměrnou komunikaci, ale není určen žádný Master. Všechna zařízení ohlašují odeslání paketu o určité délce a zároveň poslouchají, zda byla data v pořádku odeslána. Pokud se tak nestalo, zastaví komunikaci a čekají, co se stalo. V té době je možno po lince přenést urgentní pakety. Tento systém se výborně hodí např. pro zařízení, která potřebují ihned přenést zařízení velmi důležitá a aktuální data, aniž by čekaly, až na něj přijde řada a Master mu dá příležitost. V praxi je však přenos užitečných dat výrazně menší, než v prvním případě (cca o 30% méně efektivní).
V Master/Slave architektuře slave nikdy nezačíná komunikaci. Je tedy pochopitelné, že master musí vysílat správné adresy.

Přenos dat po linkách RS485 a RS422

Přenos dat po linkách RS485 a RS422

Pro přenos dat mezi zařízeními se často používá sériová komunikace. Zatímco snaha po zrychlení toku dat (například mezi jednotlivými obvody v jednom přístroji) vede k užívání synchronního přenosu (data, synchronizační impulsy, rámec), pro malé objemy dat a větší vzdálenosti je naopak výhodná asynchronní komunikace. Pojmem “malý objem dat” je zde myšlena rychlost v řádech 1 až 100 kbitů za sekundu. Asynchronní komunikace minimalizuje počet vodičů potřebných k přenosu,čímž se zlevňuje komunikační vedení.

Linky RS232, RS485 a RS422
Komunikace po lince RS232 je nejběžnější, protože rozhraní RS232 má vyveden každý běžný počítač. Používá se pro připojení zařízení komunikujících maximální rychlostí 115.2 kBd na vzdálenost maximálně 15m. Kromě vodičů pro přenos dat - RxD a TxD obsahuje ještě další vodiče pro řízení toku dat. Tyto pomocné řídící signály nejsou obsaženy v linkách typu RS422 ani RS485 a musí být nahrazeny komunikačním protokolem. Ani mnohá zařízení komunikující po lince RS232tyto signály nevyužívají.

Nevýhodou linky RS232 je omezená komunikační vzdálenost a nemožnost jejího větvení. Navíc obvykle nebývá od zařízení galvanicky oddělena, což přináší problémy se zemními smyčkami, které v průmyslovém prostředí celou komunikaci znemožní. Proto tam, kde nelze použít jinou linku, lze doporučit alespoň galvanicky oddělit všechny používané signály. Kromě zlepšení komunikace se tak předejde zničení budičů a přijímačů zařízení.
Pro přenos dat na větší vzdálenosti je vhodné použít linku RS485 nebo RS422. Linky mohou být vedeny až na vzdálenost 1600m (vodiče s kapacitou do 65pF/m) a lze je větvit.
Každý ze signálů linky je přenášen po dvojici vodičů, nejlépe v provedení twistový pár. Vodiče označované a a b jsou vysílačem buzeny v protifázi a přijímač vyhodnocuje jejich napěťový rozdíl. Tímto principem se odstraní součtové (aditivní) rušení.

RS_05
Obr. 1. Přenos jednoho signálu po lince RS485 nebo RS422. D je vysílač, R je přijímač.

Z toho vyplývá i základní doporučení pro provedení linky RS485 nebo RS422 – není-li k dispozici zkroucený (twistový) pár vodičů, je třeba použít alespoň tak vedené vodiče, aby se do obou indukovaly poruchy shodně.
Zatímco linka RS232 pracuje s úrovněmi typicky –12V a +12V, úrovně linky RS485 nebo RS422 jsou menší, typický rozdíl mezi vodiči je 2V. Aby přijímač mohl pracovat diferenciálně, nesmí být rozdíl mezi zemí vysílače a zemí přijímače větší než 7V. V opačném případě se vstupy přijímače zahltí a dojde k přerušení komunikace.
Proto je nezbytné používat linky RS485 a RS422 vždy s galvanickým oddělením, jinak se jejich výhody ztratí.

Chyba OpenTherm komunikace

   Dobrý den, chtěl bych se s Vámi podělit o problém a zároveň znát Váš názor. Rodinný dům mám řízen PLC systémem WAGO (jsem programátor) a řídím zde kotel Thermona KDZ25 převodníkem výstupní vody UI16.01 (0-10V -> OpenTherm, Thermona). Vše funguje, jak má. Na 4 kanálové analogové výstupní kartě (wago 750-559) je využíván momentálně pouze jeden kanál právě pro kotel. Rozhodl jsem se použít další kanál v kartě pro LED stmívač (také 0-10V, dimLED). Jakmile zapojím stmívač 0-10V do AO karty na další kanál, kotel začne hlásit poruchu E43 (Chyba komunikace OpenTherm). Když stmívač odpojím, vše je funguje. Nerozhoduje, na jaký kanál stmívač připojím. Setkal jste se v minulosti s něčím podobným? Dotaz jsem zadal také na Thermonu a WAGO podporu. Děkuji a přeji hezký den.

M-Bus AMiT

   Dobrý den, připravujeme zakázku, kde budeme komunikovat s měřiči tepla Multical 603 a 403 firmy CAMSTRUP po komunikaci M-BUS s Amitem. Mohl bych vás požádat, zdali pro tyto měřice nemáte typovou aplikaci? Je to můj 1. M-BUS a trochu se v tom motám. Předem děkuji za Vaši odpověď.
P.S. Jsem Váš velký fanoušek

GENIbus Grundfos

Dobrý den, při hledání informaci o PLC AMiT jsem narazil na vaše stránky a když jsem ještě zjistil, že obchodujete s čerpadly Grundfos, tak mě to zaujalo.
Již delší dobu plánuji kontrolu čerpadla Grundfos přes sběrnici RS485 s protokolem Grundfos GENIBUS.
Na výstavě Aquatherm jsem navštívil stánek AMiT a PLC ADiR se mi jeví jako stvořený pro můj projekt.
V mém rodinném domku mám tepelné čerpadlo země/voda a na primárním okruhu zemního kolektoru běží čerpadlo Grundfos Magna 32–120, které má adapter Grundfos Geni module. Přes tento modul lze řídit čerpadlo a sledovat celou řadu provozních parametrů. Pro můj účel by bylo dostačující sledovat průtok vody ze zemního kolektoru a v případě, že klesne pod určitou hranici, okamžitě vypnout kompresor tepelného čerpadla, protože by hrozilo zamrznutí tepelného výměníku. Komunikace se řídí protokolem Grundfos GENIBUS.
Chtěl bych se zeptat, zda s protokolem GENIBUS máte nějaké zkušenosti a zda by šlo zmíněnou situaci realizovat.

Více zásuvek na jednom UTP

V současné době řeším problém s kabelovým rozvodem UTP na počítačovou síť. Provedl jsem zapojení několika zásuvek na jeden kabel od switche a setkal jsem se s problémem tohoto typu. Na konci vedení počítač normálně připojím. Jakmile však se vzdaluji od konce a připojuji se na průběžně zapojené zásuvky, dochází k nestabilitě, případně k úplným výpadkům síťového připojení. Kritická je vzdálenost asi 7m. Na asi 10m už není možné se vůbec připojit. Věděl byste, jak provést kompenzaci odrazu na vedení (domnívám se že jde o tento jev), jak spočítat příslušný kompenzační rezistor nebo kondenzátor, případně indukčnost. Nemám vůbec tušení k čemu tam přesně fyzikálně dochází, nikdy jsem se s tímto problémem nesetkal, ani nikdo z mých známých, kteří běžně síťování počítačů řeší. Znáte nějaký způsob jak to vyřešit? Podotýkám že používám klasický UTP Cat.5e. Vícečetné vývody z jednoho kabelového vedení chci zachovat z praktického důvodu. Jedná se o několik místnosti, kde chci mít zásuvky na různých místech, ale nemám možnost a ani nechci tahat ke každé zásuvce samostatně kabel. V každé místnosti budu mít zapojenu v jednu chvíli vždy pouze jednu datovou zásuvku. Děkuji za případnou účinnou radu.

Soubory: 

Něco k tématu od čtenáře tohoto webu

Začínám se trochu seznamovat s průmyslovou sběrnicí RS485 a zaujal mě Váš článek na jvalter.cz/komunikacni-linky
Při podrobnějším prostudování jsem nalezl ve Vašem článku rozpor a to kap."Na závěr několik typů: " kde píšete: "Nevíte který vodič je A a B? V klidu je B kladnější než A." S tím souhlasím, potom by v klidovém stavu na výstupu obvodu MAX48_ byla log."0" Ovšem v kap. "Zakončení sběrnice" píšete: "Proto je třeba definovat klidový stav linky připojením rezistorů podle obrázku (předpokládáme, že v klidu je vodič b zápornější než a). " Mohl byste mi sdělit, které tvrzení je pravdivé?


Původně jsem tento web udělal jen z podkladů, které mi pomáhali k řešení problémů v mé profesi, a toto je zrovna ten případ. Tyto články jsem stáhl, už nevím kde (pravděpodobně z www.hw.cz), a proto se k nim můžu jen omezeně vyjádřit.
1) "Nevíte který vodič je A a B? V klidu je B kladnější než A."
Předpokládám, že když autor tak tento obvod popsal, tak funguje (u odvodů MAXIM), ale více k tomu Vám neřeknu.
2) "Proto je třeba definovat klidový stav linky připojením rezistorů podle obrázku (předpokládáme, že v klidu je vodič b zápornější než a)."
Standardně je ale RS485 v klidovém stavu v log1. (firma AMiT)
Nedalo mi to a na výrobku firmy AMiT (budič RS485 - SN75176b) jsem změřil napětí při zapojeném zakončovacím odporu a klidových odporech a naměřil jsem:
G485(zem linky) --- A = 2,85 V
G485(zem linky) --- B = 2,51 V
A --- B = 0,32 V
Z toho vyplívá, že A je kladnější než B. Pokud máte nějaké zkušenosti s obvody MAXIM a máte nějaké informace k prvnímu článku, budu rád, když mi je napíšete.

Děkuji za odpověď. Se sběrnicí RS485 se teprve seznamuji a zkouším obvody řady MAX48_. Pokud by měla linka být v klidu na log.1, potom by bylo správné tvrzení že "A je kladnější než B", obdobně jako u obvodu SN75176b. Pro úplnost katalogové listy k MAXIM48.. a SN75176b.

Soubory: