PLC

Páteční průmyslový protokol: RS-232

Zdroj: Wikipedia

Grafika s označením RS-232 a rámcem sériové linky
Ilustrace: redakce

RS-232 není protokol, ale elektrická vrstva: definuje, jaké napětí znamená nulu a jaké jedničku, ne co se po lince posílá. Proto po něm může jít Modbus, ASCII příkazy i vlastní binárka — a proto každá druhá „nekomunikující“ linka končí u kabelu nebo špatné přenosové rychlosti. A také u zemnění, které se snadno zvrtne.

Rámec znaku na sériové lince

Co to je a odkud pochází

Standard vznikl v roce 1962 pro připojení terminálu k modemu, dnešní podoba je TIA-232-F z roku 1997. Řeší jedinou věc: napěťové úrovně a pinové zapojení pro sériový přenos mezi dvěma zařízeními. Všechno ostatní — přenosová rychlost, počet datových bitů, parita, protokol — je věc nadstavby.

Jak funguje

Přenos je asynchronní a single-ended: logická úroveň se pozná podle napětí vůči společné zemi. Kladné napětí 3 až 15 V znamená logickou 0 (space), záporné −3 až −15 V logickou 1 (mark). Pásmo mezi −3 a +3 V je nedefinované, proto je RS-232 odolná proti šumu jen do určité míry.

Každý znak má vlastní rámec: start bit, 5 až 8 datových bitů (obvykle 8), volitelný paritní bit a 1 nebo 2 stop bity. Nejběžnější nastavení je 8N1 — osm datových bitů, bez parity, jeden stop bit.

Zapojení a piny

Konektor DB9 v roli DTE: pin 2 = RXD, pin 3 = TXD, pin 5 = GND, pin 7 = RTS, pin 8 = CTS. Křížení je povinné — TX jednoho zařízení na RX druhého, a proto se používají překřížené kabely (null modem), ne rovné.

Hardwarové řízení toku RTS/CTS je lepší než softwarové XON/XOFF, protože XON/XOFF se plete s přenášenými daty. Pokud zařízení RTS/CTS nemá, musí se tok řídit softwarově nebo vůbec — a při plném bufferu přicházejí ztráty.

Rychlosti a vzdálenost

Praktické maximum je 115200 bit/s na několik metrů. Standard sám uvádí limit kapacity linky 2500 pF, což v praxi znamená asi 15 m při 19200 bit/s s běžným kabelem. Delší vedení funguje, ale je to mimo specifikaci — a v hlučném prostředí se to projeví jako náhodné chyby rámců.

Kdy to použít

Na servisní porty, váhy, čtečky čárových kódů, starší měřicí přístroje a všude, kde výrobce dodal DB9. Pro novou instalaci do haly je to špatná volba — jediný vodič proti zemi znamená společnou zem, zemní smyčky a náchylnost k rušení od frekvenčních měničů.

Testování a kód

V Pythonu pyserial:

import serial
s = serial.Serial("/dev/ttyUSB0", 19200, bytesize=8, parity="N",
                  stopbits=1, timeout=0.5)
s.write(b"\x01\x03\x00\x00\x00\x02\xc4\x0b")   # pozadavek Modbus RTU
print(s.read(64).hex())
s.close()

Než začnete psát kód, propojte si TX s RX na jednom konektoru (loopback) — tím vyloučíte kabel i převodník.

Licence

Standard TIA-232-F je placený dokument, ale elektrické parametry jsou veřejně známé a implementace jsou zdarma. Nikdo nevlastní RS-232 jako značku; název je označení standardu.

Pro údržbu: první tři věci u nefunkční sériové linky jsou vždy stejné — překřížené TX/RX, špatná přenosová rychlost a chybějící zem. Až čtvrtá je převodník USB, který se po přehřátí odhlásí z systému.

Seriál Páteční průmyslový protokol vychází každý pátek. Další díl najdete v přehledu série.

Zdroje

  1. RS-232 — Wikipedia
  2. TIA-232-F — Interface Between Data Terminal Equipment and Data Circuit-Terminating Equipment — TIA

Odkazy vedou na primární zdroje. Text článku je redakční shrnutí, ne převzatá zpráva.