Výměnu dat mezi systémy SoftPLC a Domat můžeme potřebovat z několika důvodů:
Každá podstanice se v síti Ethernet chová jako server, na který se připojují klienti pomocí komunikačního protokolu. Klientem je například vývojové prostředí (SoftPLC IDE, Domat IDE), vizualizace (RcWare Vision, viz obrázek), ovládací panely (HT101, HT200), či jakýkoli program, komunikující protokolem SoftPLC Link pro podstanice SoftPLC, nebo SSCP pro podstanice Domat. Klientem ale může být i jiná podstanice – jak SoftPLC, tak Domat PLC mají implementovány oba komunikační protokoly, SoftPLC Link i SSCP.
Šipky ukazují směr navazování spojení, nikoli směr toku dat (v jednom spojení mohou být proměnné z podstanice čteny i do ní zapisovány).
Pokud hodnoty vznikají v Domatu a chceme je přenášet do podstanice s runtimem SoftPLC, nejjednodušší je založit v SoftPLC kanál s protokolem SSCP, připojit se jako klient na PLC Domat a hodnoty načítat do SoftPLC proměnných. Jako seznam proměnných v PLC Domat slouží soubor .vlist, který najdeme v projektu Domat po kompilaci v adresáři [název_projektu]\bin\. Soubor je k dispozici ve dvou podobách, s kódováním Unicode a UTF-8.
Pozor, tato komunikace je podporována pouze u IPLC501, IPLC510, MXPLC-L. Platformy IPLC201, IPLC301, MXPLC tuto možnost nemají a je nutné využít postup popsaný níže – Komunikace ze SoftPLC do Domatu.
U strukturovaných proměnných (pole atd.) můžeme využít parametry Offset a Length, kterými určíme pozici dat, která nás zajímají. Proměnné mohou být jak pro čtení, tak pro zápis – u zapisovaných proměnných se v runtimu Domat zapisuje do RAM a jednou za čas do paměti Flash, proměnné definované v Domatu jako RETAIN se zapisují přímo do NVRAM.
Podobně postupujeme pro další proměnné v rámci jednoho PLC. Spojení se ovšem navazuje jen jedno. Pokud integrujeme proměnné z více PLC, pro každé PLC musí být založen samostatný SSCP kanál.
Máme-li existující SoftPLC regulaci a přidáváme PLC Domat, lze do něj integrovat data ze stávajících podstanic SoftPLC.
Podobně přidáme další proměnné, případně další zařízení, pokud komunikujeme s více SoftPLC.
U proměnných pro zápis musíme dbát na to, že SoftPLC runtime neví, zda je k němu připojen HMI panel nebo vizualizace (a tedy proměnné, uložené v EEPROM, by bylo možné zapsat okamžitě, protože změna vyvolaná uživatelem není příliš častá), nebo jiný runtime (který zapisuje trvale, v krátkých intervalech, což by časem vedlo k poškození EEPROM). Proměnné pro zápis se tedy v SoftPLC do paměti EEPROM ukládají přibližně jednou za 30 minut.
Každé zařízení má určitou kapacitu zdrojů pro příchozí spojení. Na to je třeba dbát při návrhu komunikační topologie. Nezapomeňme také počítat s jedním volným spojením pro servis a konfiguraci z IDE. Počet proměnných v rámci jednoho spojení není omezen, u vyšších desítek až stovek proměnných je třeba počítat s delší dobou odezvy.
SoftPLC runtime: Pro IPLC201, IPLC301 a MXPLC platí omezení na max. 5 příchozích spojení. U IPLC501, IPLC510, MXPLC-L a Windows SoftPLC Runtime doporučujeme nepřekračovat cca. 20 spojení.
Domat runtime: Podstanice s operačním systémem FreeRTOS (IMIO10x, ICIO20x, mark100, mark150/xxx, mark12x) mohou přijmout zároveň max. 5 spojení od SSCP klientů. Podstanice s operačním systémem Linux (markMX.2, markMX, mark320, mark220) mohou přijmout zároveň max. 20 spojení.
Pro návrh komunikace mezi systémy platí v zásadě stejná doporučení, jako pro komunikaci mezi podstanicemi v rámci jednoho systému: neměly by být používány pro přenos kritických signálů a datových bodů v rámci jedné regulační smyčky (např. teplota na přívodu VZT a ventil ohřevu). Při problémech v síti Ethernet by přenos hodnot nefungoval. Pro ošetření problémů v komunikaci je možné využít datových bodů s hlášením poruchy komunikace (CommError pro kanál), případně v SoftPLC použít defaultní hodnotu pro případ nekomunikace (Use default value on comm error ve vlastnostech proměnné).