Vytváření HW proměnných v komunikačním kanálu
Na komunikačním kanálu definujeme jednotlivé fyzické proměnné, které budeme chtít nakomunikovat. Je zde na výběr ze tří možností:
Základní rozdíl mezi výše uvedenými je, že u existujícího zařízení nastavujeme pouze několik málo vlastností společných pro skupinu fyzických proměnných, které zařízení obsahuje, zatímco pro obecné zařízení musíme definovat komunikační vlastnosti pro jednotlivé fyzické proměnné. Typickým příkladem zařízení z knihovny jsou I/O moduly Domat, pro které jsou připravené modbusové mapy. Uživatel však není omezen pouze výběrem z existujících zařízení, může si po zdárném nakonfigurování obecného zařízení toto zařízení uložit do knihovny vlastních zařízení a při dalším použití ho snadno vyvolat.
Přidat existující zařízení z knihovny
Vyberte I/O modul z knihovny modulů. Většina zařízení Domat komunikuje pomocí protokolu Modbus. Abyste měli přístup do položky Přidat zařízení ze knihovny (viz níže), je třeba nastavit v definici kanálu protokol Modbus.
Modul pojmenujte a nastavte mu Modbusovou adresu v projektu.
Přidat obecné zařízení
Nastavení komunikačních parametrů pro jednotlivé komunikační protokoly se může značně lišit. Znalost potřebných parametrů konkrétního komunikačního protokolu je nezbytná pro jeho úspěšnou implementaci. Nastavení obecného zařízení bude demonstrováno na komunikačním protokolu Modbus, kde fyzická proměnná je definovaná funkcí, číslem registru příp. bitu a adresou zařízení na modbusové sběrnici. Nastavíme si komunikaci vybraných hodnot z ovladače UI011.
Popis modbusové komunikace je ke stažení na http://domat-int.com/ke-stazeni/technicka-dokumentace/modbus-tabulky.
Klikneme pravým tlačítkem na komunikační kanál a přidáme zařízení (Přidat zařízení). Jednoduchým kliknutím zobrazíme jeho vlastnosti. Ve vlastnostech zařízení v prvním řádku zařízení pojmenujeme, v našem případě UI_01 - ovladač UI na adrese 01. Dvojitým kliknutím na zařízení (ve struktuře projektu sestavy) zobrazíme editor.
Proměnné ke čtení:
Vytvoříme si proměnné „set_temp“ a „actual_temp“. Proměnné jsou dostupné na registrech 11 a 17, čtou se funkcí „read holding registers“. Pravým tlačítkem klikneme na pracovní plochu editoru a přidáme skupinu.
Skupina bude pouze ke čtení. Počáteční registr se shoduje s číslem nejnižšího registru vyčítaných proměnných (tedy v tomto případě č. 11). Počet registrů pro čtení je počet čtených registrů, které přijdou v odpovědi. V našem případě je to 7 (čtou se registry 11, 12….17, tedy celkem 7).
Nyní si založíme ve skupině „temp_read“ založíme proměnnou „set_temp“ a přiřadíme jí následující vlastnosti.
Skupina: příslušnost ke skupině
Transformace: transformace proměnné - lineární transformace je zvolena z důvodů, že komunikovaná hodnota je ve formátu tzv. HVAC integer, tedy nastavená teplota × 100. Transformace je definována rovnicí Y = kx + q, kde Y je výsledná hodnota (ta kterou dále použijeme v programu a která představuje hodnotu fyzikální veličiny, např. teplota ve °C), k je směrnice přímky, x je komunikovaná hodnota a q je aditivní konstanta (ta se používá např. pro korekci při přeměřování čidla).
Typ ST: typ proměnné - v našem případě „real“
Typ proměnné pro mapování: v našem případě BuiltIn, v případě že je proměnná typu „bool“ potom je typ „bit“
Data Offset: posun v bytech od začátku telegramu
Bit Offset: posun v bitech od začátku telegramu
MultiByte Length: délka čteného slova v bytech, v našem případě 2 (standardní modbusový registr, 1 word = 2 byty)
MultiByte Order: pořadí informací ve slově
Stejným způsobem si založíme druhou proměnnou „act_temp“. Z modbusové tabulky vidíme, že je k vyčtení v registru 17.
Vidíme, že proměnné se kromě názvu liší pouze v položce Data Offset. Číslo získáme jednoduchým rozdílem čísel registrů a vynásobením počtem bytů v registru (tedy ×2). Tedy v tomto případě Data Offset = (17 - 11) × 2 = 12.