Řízení více sběrnic RS485 z jednoho místa

Odpovědět
kolbaba71
Příspěvky: 505
Registrován: 12 říj 2013, 17:35
Bydliště: Praha
Kontaktovat uživatele:

Řízení více sběrnic RS485 z jednoho místa

Příspěvek od kolbaba71 »

Ve svítilně budu mít cca 140 zařízení, které bych chtěl řídit po sběrnici RS485, jenž má limit 32 zařízení. Jak tento limit obejít?
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1584
Registrován: 16 úno 2013, 13:26

Re: Řízení více sběrnic RS485 z jednoho místa

Příspěvek od Dex »

Tak místo 485ky použij ty MCP2551, ty mají limit až 112 nodů čili stačí dvě větve :-)

Jinak by jsi musel těch 485ek provozovat vícero, čili by hlavní řídící prvek měl mít 5 sériáků a to už je dost. Ještě by to šlo nějak multiplexovat, ale to mi nepřijde moc šikovné.

Btw do čeho to má být celé svedeno?
"all your robots are belong to us"
robodoupe.cz
kolbaba71
Příspěvky: 505
Registrován: 12 říj 2013, 17:35
Bydliště: Praha
Kontaktovat uživatele:

Re: Řízení více sběrnic RS485 z jednoho místa

Příspěvek od kolbaba71 »

Jako centrální mcu jsem uvažoval o ATmega 2560
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1584
Registrován: 16 úno 2013, 13:26

Re: Řízení více sběrnic RS485 z jednoho místa

Příspěvek od Dex »

Ta má tuším 4x sériák čili dvě větve pro MCP nejsou problém. Necpal bych to na ten první, kde číhá i bootloader. Ovšem na 5 větví 485 je to málo, musel by jsi jednu řešit přes soft sériák a to já osobně nemám rád. Krystal tam budeš mít asi 16 MHz, takže doporučuju komunikovat třeba rychlostí 250 000 protože tam bude nulová chybovost a Arduino to v pohodě zvládne.
"all your robots are belong to us"
robodoupe.cz
Uživatelský avatar
fulda
Příspěvky: 1448
Registrován: 04 led 2016, 16:18

Re: Řízení více sběrnic RS485 z jednoho místa

Příspěvek od fulda »

kolbaba71 píše: 02 lis 2020, 10:22 Ve svítilně budu mít cca 140 zařízení, které bych chtěl řídit po sběrnici RS485, jenž má limit 32 zařízení. Jak tento limit obejít?
Tady máme trochu příklad špatně položené otázky.
Záleží, ne jaké úrovni si tu RS486 převezmeš. Ve většině implementací je doporučeno používat 9 bit komunikaci, kde nastavením devátého bitu identifikujeme adresu příjemce. Dodržovat tohle pravidlo je praktické, protože na to má celá řada procesorů podporu. Ale už se moc nespecifikuje, jak ta adresa má vypadat. Pokud máš komunikaci typu PMP (point to multipoint) a uděláš nějakou premisu že jeden bit použiješ na identifikaci request / response, tak máš pořád 127 zařízení. Nebo dokonce můžeš udělat to, že první bajt znamená adresu zařízení a až ve druhém bajtu se dočteš, jestli se jedná o request / response / call byte a tak dále. Takže pak máš 255 komunikujících zařízení a to je víc než potřebuješ.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1584
Registrován: 16 úno 2013, 13:26

Re: Řízení více sběrnic RS485 z jednoho místa

Příspěvek od Dex »

Ahááá takže jestli tomu dobře rozumím, tak to omezení 485ky nesouvisí s fyzickou vrstvou? U toho MCP2551 ale zřejmě ano?
"all your robots are belong to us"
robodoupe.cz
MartinL
Příspěvky: 279
Registrován: 24 úno 2013, 13:13
Kontaktovat uživatele:

Re: Řízení více sběrnic RS485 z jednoho místa

Příspěvek od MartinL »

Pozor souvisí to s hardwarem, záleží na konkrétním budiči. Např. MAX485 má omezení na 32 zařízení na sběrnici, MAX487 128 zařízení, atd.
Uživatelský avatar
JPLABS
Příspěvky: 63
Registrován: 13 čer 2023, 22:45
Kontaktovat uživatele:

Re: Řízení více sběrnic RS485 z jednoho místa

Příspěvek od JPLABS »

Toto téma mi nápadně připomíná téma, které vloni řešilo několik lidí, kteří se baví hracími 8-bitovými domácími počítači. Chtěli je propojit, aby si mohli zahrát obsoletní hry a nechápali, že pouhé propojení několika 8-bitových domácích počítačů jim nezajistí společné hraní.
Takže taková malá nalejvárna: :D

1. hardware
potřebujete "něco" co má TTL Rx/Tx rozhraní. To má kdejaký mikropočítač. Na něj dáte převodník na RS422 (místo obvyklého MAX232 , který je pro RS232C). Převodníků RS422 nebo RS485 je dostatek. Texas dělá také izolované. Když chcete izolovanou RS422 můžete použít buď ty izolované od Texase nebo obvyklé RS422 a k nim přidáte optočleny. Když se rozhodnete pro izolovanou RS422, musíte přidat ještě izolovaný DC/DC převodník pro napájení té izolované strany. Zcela stejné to musí být také na ostatních zařízeních, které chcete na RS422 připojit.
A to je asi tak vše co musíte udělat na hardware. :D

2.software
tak to už je horší. Když přes RS422 spojíte dvě zařízení, třeba počítač na jednom konci a robota na druhém konci, tak stačí posílat povely z počítače, kde si nahodíte terminál. Pochopitelně,když použijete PCčko, musíte k němu mít převodník USB-RS232C. Buď si ho vyrobíte, nebo si koupíte čínský zmetek u AliBaby. Čínský zmetkový převodníky z USB se vyznačují často nekompatibilním USB ovladačem. V takovém případě si převodník dáte do vitrýny. :D

Mnohem horší situace nastane, když chcete spojit více než dvě zařízení. V takovém případě už vám nestačí terminál na PCčku, ale musíte jednotlivé zařízení adresovat. Čili potřebujete software s protokolem. Standardní protokol je Modbus. Existují knihovny Modbusu pro určité vývojové softwarový systémy a pro určité mikropočítače. Málokdy jsou zdarma. Pochopitelně, naprogramovat musíte všechny zařízení, které jsou na síť RS422 navěšený.

Jestliže máte málo zařízení, které chcete na RS422 navěsit, například jen dva roboty a chcete je řídit z jednoho PCčka, můžete se Modbusu vyhnout tím, že na PCčku budou dva adaptéry USB-RS422. Každý pro jednoho robota. Roboti budou nezávislé a PCčko rozhodne o tom, kterého robota bude právě úkolovat. Kdyby jste chtěli, aby robot č.1 komunikoval s robotem č.2, v tom případě musí jít vše přes "velitele", tedy přes PCčko. Robot č.1 pošle data na PCčko a PCčko data přepešle robotovi č.2 :D

Dříve, v dobrých časech, kdy ještě byla ISA sběrnice a PC-AT, existovaly levné adaptéry, které měly třeba 8 sériových portů. Stačilo na každý sériový port navěsit převodník na RS422 a měli jste hvězdicovou síť. Stačilo si napsat řídící program na PCčku, které pak ovládalo 8 robotů. Nepotřebovali jste žádný protokol a adresa robota byla určena adresou COM portu. Takový adaptér lze dnes vyrobit, potíž je kde vzít starý dobrý PCčko s ISA. :lol:

A nakonec, místo RS422 doporučuju použít CAN bus. Je to rychlejší, hardwarově stejně náročné jako RS422 a softwarově méně náročné.
kolbaba71
Příspěvky: 505
Registrován: 12 říj 2013, 17:35
Bydliště: Praha
Kontaktovat uživatele:

Re: Řízení více sběrnic RS485 z jednoho místa

Příspěvek od kolbaba71 »

JPLABS píše: 26 led 2025, 13:08 A nakonec, místo RS422 doporučuju použít CAN bus. Je to rychlejší, hardwarově stejně náročné jako RS422 a softwarově méně náročné.
Tento problém jsem již vyřešil před delší dobou. Za těch 5 let jsem se sice posunul vcelku málo, ale o něco ano. Nevím proč bych měl místo RS422 používat CAN, se kterým nemám vůbec žádné zkušenosti, když chci použít RS485.
E-Ryc
Příspěvky: 95
Registrován: 07 bře 2013, 15:51

Re: Řízení více sběrnic RS485 z jednoho místa

Příspěvek od E-Ryc »

OT Hlavne nevim, proc se na sbernici snazit naroubovat RS-422 ktery je urceny na dvoubodove spojeni... Ale treba nas JPLABS ochytri.-
Odpovědět