Nedávno jsme se setkali s potížemi při komunikaci na sběrnici s I/O moduly – sběrnice byla zarušená a normální komunikace nebyla prakticky možná. Příčinou byl jeden z modulů napájený vadným trafem a tedy asi 6 V, tím pádem byl permanentně v resetu a vysílal na sběrnici rušení.
Pozná se to podle toho, že jeho červená Tx LED trvale blikala - za normální situace blikne pouze, když odpovídá na dotaz z podstanice, tedy moduly se v blikání postupně střídají.
Další věcí je správné ukončení sběrnice (bus end). K tomu slouží modrobílé DIP switche („piánka“) na modulech: přepínače 1 a 2 v poloze ON (dovnitř modulu) ukončují sběrnici.
Sběrnice by měla mít liniovou topologii a být ukončena na začátku (např. na M011, nebo na MiniPLC u příslušného rozhraní) a na konci, tedy na posledním modulu v řadě.
Sběrnici je dobré ukončit vždy. Při menším počtu modulů se může stát, že komunikace bude chodit bez problémů i při neukončené sběrnici; při pozdějším přidávání dalších pak ale mohou nastat záhadné problémy – některé moduly občas mizí, runtime hlásí CommErrory atd.
Je-li na sběrnici větší množství modulů se zapnutými přepínači, může to také způsobovat potíže. Při problémech s komunikací je tedy nejprve vhodné zkontrolovat všechny přepínače BUS END na modulech, je-li sběrnice správně ukončena.
Důležitá je též volba správného převodníku na RS485: některé typy (např. ICPCON 7561) se nestihnou po vyslání dotazu včas přepnout do naslouchacího módu a nestihnou přečíst rychlou odpověď modulu. Vypadá to pak, že modul je vadný, při připojení na MiniPLC nebo podstanici s M011 však funguje správně.
Tyto problémy se obtížně diagnostikují, protože při nich komunikace funguje s některými typy modulů a s jinými ne (u novějších byl použit výkonnější procesor, který odpovídá prakticky bez zpoždění).
Uměle zavedené zpoždění by výrazně snižovalo efektivní přenosovou rychlost a proto se nepoužívá. Používejte proto převodníky M011, které mají přepínání dostatečně rychlé.