Jak integrovat podstanice Merbon a SoftPLC mezi sebou

Výměnu dat mezi systémy SoftPLC a Merbon můžeme potřebovat z několika důvodů:

  • technologie je budována v několika etapách, dodávaných firmami, které používají různé systémy
  • pro zařízení vybavené primárně regulací Merbon potřebujeme využít komunikační drivery, dostupné zatím pouze v podstanicích SoftPLC
  • pro zařízení vybavené podstanicemi SoftPLC potřebujeme některou z funkcí podstanic  Merbon, například programování v jazyce ST
  • do budovy, vybavené jedním systémem, je instalována cizí technologie, využívající druhý systém jako OEM regulaci (např. VZT jednotka či výměníková stanice).

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, Merbon 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 Merbon. Klientem ale může být i jiná podstanice – jak SoftPLC, tak Merbon PLC mají implementovány oba komunikační protokoly, SoftPLC Link i SSCP.

topo

Š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).

Komunikace z Merbonu do SoftPLC

Pokud hodnoty vznikají v Merbonu 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 Merbon a hodnoty načítat do SoftPLC proměnných. Jako seznam proměnných v PLC Merbon slouží soubor .vlist, který najdeme v projektu Merbon 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 Merbonu.

Postup je následující:

  • v projektu SoftPLC založíme nový kanál typu TCP s protokolem SSCP:

SoftPLC_SSCP_channel

  • ve vlastnostech kanálu nastavíme IP adresu PLC Merbon, protože SoftPLC se na ně bude připojovat jako klient:

SoftPLC_SSCP_IP

  • v parametrech driveru nastavíme uživatelské jméno a heslo pro přihlášení tak, jak bylo nastaveno v PLC Merbon
  • v tabulce Generic založíme novou proměnnou
  • pod tlačítkem Communication parameters otevřeme dialog pro editaci komunikačních parametrů; pokud známe parametry proměnné, vyplníme je v oddíle Communication parameters, pokud ne, načteme z projektu Merbon soubor .vlist (tlačítkem Load variable list source) a proměnnou vybereme:

SoftPLC_SSCP_vars

  • potvrdíme a v okně Variable nastavíme název, typ a případně další parametry SoftPLC proměnné.

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 Merbon zapisuje do RAM a jednou za čas do paměti Flash, proměnné definované v Merbonu 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.

Komunikace ze SoftPLC do Merbonu

Máme-li existující SoftPLC regulaci a přidáváme PLC Merbon, lze do něj integrovat data ze stávajících podstanic SoftPLC.

  • V Merbon IDE přidáme k PLC komunikační kanál a vybereme protokol SoftPLC Link.
  • Nastavíme timeout (Max. doba trvání telegramu) na cca. 300 ms a Pauzu mezi telegramy cca. 50 ms.
  • Do kanálu vložíme zařízení (Device) a nastavíme mu komunikační parametry pro spojení s příslušným SoftPLC runtimem (uživatelské jméno, heslo, IP adresu a TCP port). V Merbon IDE je koncept poněkud odlišný, pokud komunikujeme s více SoftPLC, každé PLC má samostatné zařízení, ale všechna jsou v rámci jednoho SoftPLC Link kanálu.
  • V zařízení založíme skupinu datových bodů a její parametr Interval čtení/zápis nastavíme podle toho, jak často chceme data vyčítat – u hodnot typu venkovní teplota by měly stačit desítky vteřin.
  • Do skupiny vložíme novou proměnnou a v jejích vlastnostech vybereme GUID, pomocí něhož je proměnná v SoftPLC projektu jednoznačně určena. Pro výběr použijeme soubor .splcproj projektu SoftPLC:

SSCP_SoftPLC_vars

  •  Typ proměnné je vybrán automaticky.
  • Zkontrolujeme a případně nastavíme parametr Group type: každá proměnná je buď ke čtení (ze SoftPLC do Merbonu) nebo k zápisu (z Merbonu do 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.

Omezení

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í.

Merbon 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, 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é).