Komunikace pro průmyslových linkách RS485 a RS422
Jak komunikovat po průmyslových linkách RS485 a RS422? Jaké jsou parametry linek, kapacity vodičů a zapojení budičů? Co je to zakončení? Dozvíte se v tomto článku. (I když článku je již více než 25 let, mnohé informace v něm jsou stále aktuální.)
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ě 15 m. 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 RS232 tyto 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 1600 m (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í.
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 –12 V a +12 V, úrovně linky RS485 nebo RS422 jsou menší, typický rozdíl mezi vodiči je 2 V. 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í.
Provedení linky RS485 a RS422
Provedení obou linek je na obrázcích 2 a 3. Jak již bylo uvedeno, obě linky přenášejí pouze data a nepoužívají žádné řídící signály.
Obr. 2. Provedení nevětvené linky RS422.
Linka RS422 používá jeden pár vodičů pro signál RxD a druhý pro signál TxD. Z toho vyplývá, že použijeme-li linku RS422 k prodloužení přenosové vzdálenosti místo "třídrátové" RS232 (RxD, TxD, GND), nic se nemusí na způsobu komunikace měnit a není tedy třeba ani zásah do software.
Obr. 3. Provedení nevětvené linky RS485.
Linka RS485 používá jeden pár vodičů pro oba směry toku dat. Je tedy třeba směr komunikace přepínat, a to může být problém zvláště v případech, kdy s touto možností software nepočítá.
Přepínání směru komunikace jistě bude vyřešeno u zařízení, které obsahuje už standardně linku RS485. Pokud však používáme zařízení s vyvedenou linkou RS232 (například počítač PC) a následným převodníkem RS232/RS485, je třeba přepínání směru zajistit. Nejvhodnější způsob je použít pro přepnutí některý volný řídící signál linky RS232 (například DTR nebo RTS), jeho ovládání však musí umožnit použitý program (pozor při psaní takového programu pro PC – díky různým bufferům na nových motherboardech to není úplně jednoduché).
Jestliže není signál pro přepnutí k dispozici, je jedinou možností použít převodník linky RS232 na RS485 s automatickým přepínáním. I to má však úskalí. Takový převodník je stále přepnut na příjem z linky RS485 a při zjištění dat vysílaných ze strany linky RS232 se přepne na vysílání. V režimu vysílání však převodník zůstane ještě po nějakou dobu (protože nemůže přesně identifikovat konec dat). Jestliže během této doby začne na linku vysílat někdo jiný, dojde ke kolizi a data nejsou přijata.
Problémy s přepínáním lze však po prozkoumání konkrétní situace téměř vždy vyřešit. Poslední možností je použít linku RS422, která přepínání nepotřebuje.
U rozvětvených linek může být počet zařízení na lince maximálně 16, avšak existují přijímače s menší zátěží, takže jich může být až 128. Linka by měla být provedena jako linie s krátkými odbočkami, ne jako strom nebo hvězda.
Zakončení
Impedanční zakončení linky RS485 nebo RS422 je věc dosti problematická. Samozřejmě je správné na konce linky zapojit rezistor o shodné hodnotě s impedancí vedení a tím zabránit odrazům na vedení. V praxi však nejsou obvykle používány vysoké rychlosti přenosu (typické jsou 9.6 kBd nebo 19.2 kBd) a ani vedení nebývají správně provedena. Zakončení pak ztrácí smysl a jen snižuje úroveň signálu a tím i odolnost proti poruchám. Proto je vhodné volit zakončení spíše větší, do 1000 Ohmů.
Mnohem důležitější, než impedanční zakončení je definování klidového stavu linky. Protože při komunikaci po lince RS485 nebo při rozvětvené lince RS422 se vysílače odpojují, dochází k dobám, kdy na linku žádné zařízení nevysílá. V této době není stav linky definován a linka je extrémně citlivá na indukovaná napětí (poruchy), které se jeví jako přicházející data. 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).
Obr. 4. Definování klidového stavu linky. Odpor Rt je zakončovací (např. 150Ohmů), odpory R1 a R2 definují klidový stav (oba asi 470Ohmu až 1Kohm). Vcc a GND jsou lokální napájení a zem budiče.
Co je vodič a a co je vodič b
Rozpoznání vodičů linky RS485 nebo RS422 není složité, ale ve značení je zmatek. Vodiče a a b bývají různě značeny u různých výrobců a ani z normy EIA není zřejmý jejich vzájemný potenciál v klidovém stavu. Pokud tedy označení vodičů není jasné, je jediným řešením uvést zařízení do klidového stavu při vysílání a polaritu změřit, nebo prohozením správné zapojení najít. Přehozením vodičů nelze budiče linky zničit, přímo norma předepisuje proudové omezení.
Protokoly
V historii byla řada pokusů o zavedení standardních komunikačních protokolů na sériových linkách, avšak žádný z nich se neujal. Typy komunikace jsou standardní maximálně pro zařízení od jednoho výrobce. Tato skutečnost komplikuje připojení více různých zařízení na jednu linku, protože dochází ke kolizím dat
Proudová smyčka
Pro komunikaci na větší vzdálenosti se dříve používala také proudová smyčka 0/20 mA (pozor, nezaměňovat se smyčkou 0(4) až 20 mA pro přenos analogových veličin). Její vlastnosti jsou však horší než u linek RS485 a RS422, proto pro nová zařízení není vhodná.
Závěr
Linky RS485 nebo RS422 lze doporučit pro nejrůznější přenosy dat v průmyslovém prostředí. Při správném provedení je spolehlivost přenosu v porovnání s linkou RS232 nebo proudovou smyčkou vysoká.
Ing. Pavel Poucha