====== Průvodce integrací Modbus: práce se složitými daty ====== Modbus je velmi rozšířený „jazyk“ průmyslových zařízení. Je však poměrně starý a preferuje práci s malými, jednoduchými čísly (16bit). Moderní systémy (např. Mervis) často používají velká a přesná čísla (32bit). Propojení těchto dvou světů může být jako snaha vtěsnat velkou krabici do malé poštovní schránky. ===== 1. Nastavení připojení (kanál) ===== Než budete moci číst jakákoliv data, musíte nejprve nakonfigurovat komunikační linku. * **Krok 1**: Klikněte pravým tlačítkem na svůj PLC v Průzkumníku sestavy a vyberte **Add Channel**. * **Krok 2**: Zvolte **Modbus** jako komunikační protokol. * **Krok 3**: Nastavte parametry sériového portu (rychlost přenosu, parita, stop bity) tak, aby přesně odpovídaly vašemu zařízení. Pokud se neshodují, zařízení se „neslyší“. {{ en:tutorials:modbus_01-channel-properties.png?900&direct | Vlastnosti Modbus kanálu }} ===== 2. Přidání obecného zařízení ===== Pokud vaše zařízení není v knihovně, můžete jej přidat ručně pomocí šablony „Generic“. * Klikněte pravým tlačítkem na Modbus kanál a zvolte **Add Device**. * Vyberte **Generic Modbus Device**. * Nastavte **Link Protocol** (RTU pro sériové propojení, TCP pro síťové připojení) a **Hardware Address** (ID zařízení, obvykle 1). {{ en:tutorials:modbus_02-add-device.png?900&direct | Přidání obecného Modbus zařízení }} ===== 3. Řešení „dvou boxů“ (dělené registry) ===== Chcete-li přes Modbus poslat velké číslo (32bit), musíme jej rozdělit napůl a odeslat jako dvě menší čísla (16bit). * **Zmatek**: Příjemce si někdy pořadí těchto polovin „přehodí“ (jako kdybyste místo „Ahoj světe“ dostali „světe Ahoj“). Tomuto jevu se říká „Endianness“. * **Řešení**: Pokud na druhé straně vypadají čísla „pomíchaně“, pravděpodobně bude třeba v konfiguraci zaměnit pořadí obou částí. ===== 4. Řešení pomocí „škálování“ (jednodušší varianta) ===== Jednodušší způsob, jak odesílat desetinná čísla (např. „24,5 °C“), je zbavit se desetinné tečky ještě před odesláním. * **Krok 1**: Vynásobte číslo v řídicí jednotce deseti (24,5 → 245). * **Krok 2**: Odešlete celé číslo „245“ (snadno se vejde do staršího formátu Modbus). * **Krok 3**: Na straně příjemce nastavte, aby zobrazil „desetinnou tečku“ před poslední číslicí. * **Výsledek**: Na displeji se zobrazí „24,5“, aniž byste museli řešit složité výpočty. ===== 5. Kdo je hlavní? (Server vs. Client) ===== * **Mervis jako server (slave)**: Řídicí jednotka tiše čeká, až ji jiné zařízení (např. nadřazený systém budovy) požádá o data. * **Mervis jako klient (master)**: Řídicí jednotka je „šéf“. Aktivně oslovuje jiná zařízení (např. elektroměry) a zjišťuje jejich stav.