Komunikační protokol Text Parser (.NET)
Od verze Domat IDE 2.6.0.x.
Popis komunikačního protokolu
Text Parser je komunikační protokol komunikující s PLC pomocí .NET driverů přes linkový protokol TCP nebo přes FileSystem v PLC.
Tento komunikační protokol je podporovaný na platformách:
- markMXL
- mark520
- wPLC751-9301
- Windows RT
Pro nahrání komunikačního protokolu do PLC je potřeba nejdříve .NET drivery povolit ve vlastnostech PLC.
Vytvoření kanálu a zařízení
Pro vytvoření nového kanálu klikneme pravým tlačítkem myši na PLC a vybereme "Přidat kanál". Na tomto kanálu poté vybereme protokol Text Parser (.NET).
Vlastnosti kanálu
- Název - obvykle se pojmenuje podle zařízení, která jsou na něj připojena, nebo sběrnice v projektu.
- Povolit - kanál musí být povolen (True), aby komunikoval.
- Interval čtení / zápis - jak často má kanál zakomunikovat. Pro trvalou komunikaci, tj. co nejrychleji za sebou, nechte 0 ms.
- Linkový protokol - TCP nebo File(.NET).
Čtení z webových stránek
U vlastností kanálu je potřeba nastavit linkový protokol na TCP.
Dále vytvoříme zařízení pod daným kanálem a vyplníme jeho vlastnosti.
Vlastnosti zařízení
- Název - obvykle se pojmenuje podle zařízení, která jsou na něj připojena, nebo sběrnice v projektu.
- Povolit - kanál musí být povolen (True), aby komunikoval.
- Interval čtení / zápis - jak často má zařízení zakomunikovat. Pro trvalou komunikaci, tj. co nejrychleji za sebou, nechte 0 ms.
- Je specifický box - informace o tom, zda je zařízení z knihovny, nebo ho lze upravovat.
Parametry TCP
- Adresa zařízení - adresa zařízení, se kterým chceme komunikovat (například hostname.test.com). Některé webové stránky mají hostname ve tvaru „www.hostname.test.com“, tudíž je potřeba tento parametr zadat v celém tvaru.
- Ověřovat certifikát - možnost povolení ověření certifikátu. Pokud není certifikát ověřen, spojení se nenaváže - je-li tato volba True, v PLC musí být nahrány potřebné certifikáty a klíče a PLC musí mít přístup k příslušným certifikačním autoritám.
- Port zařízení - port zařízení, se kterým chceme komunikovat.
- SSL povoleno - povolení šifrované komunikace. Pokud je povolena, v PLC musí být nahrány potřebné certifikáty a klíče.
Vlastnosti zařízení Text Parser
- Limit paměti - limit paměti (výchozí hodnota je 4096 KB).
- Cesta - cesta za "Adresa zařízení" (například /data/test.xml).
- Timeout dotazu - timeout dotazu (výchozí hodnota je 10 s).
Definice prototypu
- ID modelu - volně definovatelné, poznámka pro konkrétní typ zařízení.
- ID verze přístroje - volně definovatelné, poznámka pro konkrétní verzi zařízení.
- ID výrobce - volně definovatelné, poznámka pro jméno výrobce zařízení.
- Zámek pro linkový protokol - má být False.
- **Verze prototypu **- volitelný text, formát "Vx_y"
- Stav - poznámka pro fázi vývoje.
Informace o zařízení
- Model - volně definovatelné, poznámka pro název hardwaru.
- Verze - volně definovatelné, poznámka pro verzi hardwaru.
- Výrobce - volně definovatelné, poznámka pro název výrobce
- Cesta kategorie - cesta, kde se zobrazí prototyp zařízení v menu "Přidat zařízení z knihovny", používá se pro lepší orientaci ve stromu uživatelsky definovaných zařízení.
Čtení ze souboru
U vlastností kanálu je potřeba vybrat linkový protokol File (.NET)
Dále vytvoříme zařízení pod daným kanálem a vyplníme jeho vlastnosti.
Vlastnosti zařízení
- Název - obvykle se pojmenuje podle zařízení, která jsou na něj připojena, nebo sběrnice v projektu.
- Povolit - kanál musí být povolen (True), aby komunikoval.
- Interval čtení / zápis - jak často má zařízení zakomunikovat. Pro trvalou komunikaci, tj. co nejrychleji za sebou, nechte 0 ms.
- Je specifický box - informace o tom, zda je zařízení z knihovny, nebo ho lze upravovat.
Vlastnosti zařízení Text Parser
- Limit paměti - limit paměti (výchozí hodnota je 4096 KB).
- Cesta - cesta do File System PLC (například /tmp/test.xml) nebo cesta na disk u Windows RT (např. C:/Domat/text_parser/test.json).
Definice prototypu
- ID modelu - volně definovatelné, poznámka pro konkrétní typ zařízení.
- ID verze přístroje - volně definovatelné, poznámka pro konkrétní verzi zařízení.
- ID výrobce - volně definovatelné, poznámka pro jméno výrobce zařízení.
- Zámek pro linkový protokol - má být False.
- **Verze prototypu **- volitelný text, formát "Vx_y"
- Stav - poznámka pro fázi vývoje.
Informace o zařízení
- Model - volně definovatelné, poznámka pro název hardwaru.
- Verze - volně definovatelné, poznámka pro verzi hardwaru.
- Výrobce - volně definovatelné, poznámka pro název výrobce
- Cesta kategorie - cesta, kde se zobrazí prototyp zařízení v menu "Přidat zařízení z knihovny", používá se pro lepší orientaci ve stromu uživatelsky definovaných zařízení.
Editor zařízení
Po otevření editoru zařízení je zde možnost klasického přidání skupiny a datových bodů.
Postup pro přidání skupiny:
- Pravým kliknutím na pracovní plochu v editoru zařízení otevřeme kontextové menu
- Vybereme "Přidat skupinu"
- Vyplníme parametry skupiny
Vlastnosti skupiny
- Název - jméno skupiny.
- Interval čtení/zápis - jak často má skupina zakomunikovat. Pro trvalou komunikaci, tj. co nejrychleji za sebou, nechte 0 ms.
- Typ skupiny - volba mezi ReadOnly (pouze pro čtení) a WriteOnly (pouze pro zápis).
Parametry skupiny Text Parser
Typ skupiny
Regex
- Regex flags - podpora Ignore case, Culture invariant, Multiline, Singleline
XPath
JPath
Očekávaný Status Code (výchozí hodnota je 200)
- 100-199 - pro informační odpovědi
- 200-299 - pro úspěšné odpovědi
- 300-399 - pro přesměrovací zprávy
- 400-499 - pro odpovědi na chyby klienta
- 500-599 - pro odpovědi na chyby serveru
HTTP metoda
- POST - Metoda odešle entitu do určeného zdroje, což často způsobí změnu stavu nebo vedlejší účinky na serveru.
- GET - Metoda požaduje reprezentaci zadaného zdroje. Použití požadavků by mělo pouze načítat data a nemělo by obsahovat obsah požadavku.
- TRACE - Metoda provede test zpětné smyčky zpráv podél cesty k cílovému prostředku.
- PUT - Metoda nahradí všechny aktuální reprezentace cílového zdroje obsahem požadavku.
- OPTIONS - Metoda popisuje možnosti komunikace pro cílový zdroj.
- HEAD - Metoda požaduje odpověď shodnou s požadavkem, ale bez těla odpovědi.
- DELETE - Metoda odstraní zadaný prostředek.
- Custom - můžete specifikovat libovolnou metodu jako třeba PATCH, CONNECT atd.
Po vyběru typu skupiny se aktualizují parametry skupiny, kde je poté možné buď ručně zadat regulární výraz nebo otevřít Text Parser Preview.
Text Parser Preview
Do prázdného textového pole nakopírujeme obsah např. XML souboru, ze kterého poté vyčteme jednotlivé hodnoty pomocí regulárních výrazů, které lze zadat do vstupního pole "Formula". Pro vyčtení hodnot je potřeba buď kliknout na tlačítko "Občerstvit" nebo si pro automatické aktualizace výsledků zaškrtnout možnost "Auto". Pokud je regulární výraz validní, tak se po aktualizaci hodnoty zobrazí v pravé části. Zde se zobrazuje index, subindex a aktuální hodnota.
Podporované regulární výrazy:
Regex tabulka základních výrazů
Formule | Význam |
\d | jedna číslice |
\w | znaková písmena |
\s | znak mezery |
+ | jeden nebo více |
{3} | přesně třikrát |
{2,4} | dvě až čtyřikrát |
{3,} | třikrát nebo více |
* | nula nebo vícekrát |
? | jednou nebo žádný |
. | jakýkoli znak |
\. | tečka (speciální znak) |
\ | uvozovací speciální znak |
| | alternace/operátor NEBO |
( ... ) | zachycující skupina |
\1 | obsah skupiny1 |
\2 | obsah skupiny2 |
(?: ... ) | nezachycující skupina |
^ | začátek řetězce/řádku |
$ | konec řetězce/řádku |
Příklad Regex
JPath tabulka základních výrazů
Formule | Význam |
$ | kořenový objekt nebo pole |
.property | vybere zadanou vlastnost v nadřazeném objektu |
['property'] | vybere zadanou vlastnost v nadřazeném objektu (pokud název vlastnosti obsahuje speciální znaky) |
[n] | vybere n-tý prvek z pole. Indexy jsou založené na nule |
[index1,index2,...] | vybere prvky pole s uvedenými indexy |
..property | rekurzivní sestup: Rekurzivně vyhledá zadaný název vlastnosti a vrátí pole všech hodnot |
* | vybere všechny prvky v objektu nebo poli |
[start:end] | vybere prvky pole od počátečního indexu až do |
[:n] | vybere prvních n prvků pole |
[-n:] | vybere posledních n prvků pole |
[?(expression)] | vybere všechny prvky v objektu nebo poli, které splňují zadaný filtr |
[(expression)] | místo explicitních názvů vlastností nebo indexů lze použít výraz ve skriptu. Příklad: [(@.length-1)], který vybere poslední prvek v poli |
@ | používá se ve filtrovaných výrazech pro odkaz na aktuálně zpracovaný uzel |
Příklad JPath
XPath tabulka základních výrazů
Formule | Význam |
název_uzlu | Vybere všechny uzly s názvem „název_uzlu“ |
/ | Vybere od kořenového uzlu |
// | Vybere uzly v dokumentu od aktuálního uzlu, které odpovídají výběru, bez ohledu na jejich umístění |
. | Vybere aktuální uzel |
.. | Vybere nadřazený uzel aktuálního uzlu |
@ | Vybere atributy |
* | Odpovídá jakémukoli uzlu prvku |
@* | Odpovídá jakémukoli uzlu atributu |
node() | Odpovídá jakémukoli uzlu jakéhokoli typu |
Příklad XPath
V další části definujeme datové body, do nichž bude driver načítat hodnoty, vyčtených při komunikaci skupiny.
Vlastnosti datového bodu
- Název - jméno proměnné, pod ním bude proměnná identifikovaná v programu
- Skupina - vybereme skupinu, do níž proměnná přísluší.
- Typ skupiny - vyplní se automaticky po vybrání skupiny.
- Typ mapované kom. hodnoty - výběr mezi BuiltIn, Bit a Array.
- Typ ST - vybereme typ proměnné, která vznikne touto definicí.
- Transformace - Mezi načtením hodnoty a přiřazením do proměnné je možné hodnotu přepočítat - transformovat. Využívá se to např. v případě, že se přenáší analogová hodnota (teplota), pro větší rozlišení násobená 10 nebo 100 (formát tzv. HVAC Integer).
Autogen
- Povolit autogen - Povolením Autogenu (automatického generování) se při kompilaci automaticky vytvoří globální proměnné a namapují se na vstupní a výstupní proměnné. Teprve s globálními proměnnými je možné pracovat v programech a vkládat je do žebříčků FUPLA. Pokud není Autogen povolen, je nutné globální proměnné vytvářet a přiřazovat vstupním a výstupním proměnným manuálně. Doporučuje se nastavit Povolit Autogen = True.
Mapování
- IO => ST - mapování vstupní proměnné na globální proměnnou ("vstup - výstup na strukturovaný text či FUPLA").
- ST => IO - mapování globální proměnné na výstupní proměnnou ("strukturovaný text či FUPLA na vstup - výstup").
Parametry datových bodů zařízení Text Parser
Typ
Hodnota - hodnota stavu (vázané na ST type)
Value Mapping - návratová hodnotu z kolekce mapovaných stavů.
- V případě, že by uživatel vybral Value Mapping, tak ve vlastnostech dynamicky zobrazí “Kolekce mapovaných stavů”.
Value Length - délka textu
Content Length
- Webový dotaz - velikost http hlavičky popř. velikost staženého obsahu, pokud dokument neobsahuje hlavičku.
- Čtení se souboru - reálná velikost souboru v kB.
Status Code - návratový status kód webu (pouze pro webové dotazy).
Index
Subindex