| 
  
  
    
      
      
      
         Seznam sekcí: - OPC UA
 
      - Činnost ovladače
 
      - Parametry ovladače
 
      - Konfigurace ovladače
 
       
        OPC UA
          
          
            OPC UA je univerzálním standardem pro komunikaci a
            sdílení dat mezi různými zařízeními od různých výrobců. Standard
            byl navržen jako multiplatformní nástupce klasického OPC.
            Není již tedy závislý na COM technologií společnosti Microsoft.
            OPC UA obsahuje i další rozšíření jako např. generování a
            zpracovávání událostí, přístup k historický k datům, vzdálené
            spouštění funkcí apod. Standard definující OPC UA vytvořilo OPC
            Foundation viz: https://www.opcfoundation.org. 
            
            Komunikace OPC UA může pracovat prostřednictvím dvou
              protokolů: 
            Server může podporovat jeden nebo oba protokoly. Specifikace
            protokolu je součástí URL (adresy) serveru: 
            opc.tcp://ua_server.mii.cz
http://ua_server.mii.cz
 
            Klient OPC UA pro Control Web podporuje obě možnosti
            komunikace. 
            Adresní prostor OPC UA Serveru
              
              
                Adresní prostor OPC UA serverů je hierarchický. Skládá se z
                uzlů (nodes) a vazeb mezi nimi (reference).
                Každá reference spojuje dva uzly. Existuje několik typů
                referencí. Například reference typu Organizes se
                používá k vytvoření hierarchické struktury adresního prostoru
                serveru. Adresní prostor si můžeme představit jako strom, kde
                vazba mezi uzly je tvořená referencemi. 
                Existuje několik typů uzlů: 
                | Objekt | Popis | 
|---|
 | Proměnná (Variable) | Pro nás nejdůležitější typ uzlu. Tento uzel obsahuje
                  data, která můžeme číst nebo zapisovat. Data musí odpovídat
                  typu. Typ proměnné definuje reference HasTypeDefinition.
                    |  | Objekt (Object) | Uzel tohoto typu slouží k vytváření hierarchické
                  struktury. Neobsahuje hodnotu.  |  | Metoda (Method) | Metoda, kterou může klient
                  volat.  |  | Pohled (View) | Pohledy umožňují zobrazit část adresního
                  prostoru.  |  | Datový typ (DataType) | Definice datového typu.  |  | Typ proměnné (VariableType) | Definice typu proměnné.  |  | Typ objektu (ObjectType) | Definice typu objektu.  |  | Typ reference (ReferenceType) | Definice typu reference.  |  
  
                Identifikátor uzlu
                  
                  
                    Každý uzel má jednoznačný identifikátor (NodeId).
                    Identifikátor je možné použít k přímému přístupu k uzlu,
                    bez ohledu na jeho umístění v adresním prostoru serveru.
                    Je například možné číst nebo zapisovat jeho hodnotu,
                    případně další atributy. Toho využívá ovladač OPC UA
                    klient pro Control Web. Identifikátory uzlů jsou
                    definicí v parametrickém souboru propojeny na čísla
                    kanálů. Čtením nebo zápisem kanálu vyvoláme čtení nebo
                    zápis hodnoty uzlu v OPC serveru. 
                    Identifikátor uzlu se skládá ze tří části: 
                    
                      - Index jmenného prostoru (name space
                      index)
 
                      Adresní prostor serveru bývá zpravidla rozdělen
                      na jmenné prostory. Identifikátor (třetí část
                      identifikátoru uzlu) je jedinečný pouze ve svém adresním
                      prostoru.   
                      - Typ identifikátoru (identifier
                      type)
 
                      Určuje typ následující poslední položky
                      (identifikátoru). Možné hodnoty jsou: 
                          
                          číslo (v zápisu označeno písmenem n)  
                          řetězec (v zápisu označeno písmenem
                          s)  
                          GUID (v zápisu označeno písmenem g)  
                          OPAQUE pole bajtů (v zápisu označeno písmenem
                          b)  
                          
                      - Identifikátor
 
                      Jednoznačný identifikátor v rámci daného jmenného
                      prostoru.  
                     
                    Formát zápisu identifikátoru je následující: 
                    ns=<name space index>; n|s|g|b = <id> 
                    příklad identifikátoru: 
                    ns=5;s=Sinusoid3 
                    index jmenného prostoru se v zápisu nemusí uvádět,
                    potom se předpokládá, že je to 0. Například: 
                    i=1234 
                  
                
              
            
            Datové typy
              
              
                Datové typu mohou být základní (built-in) a strukturované
                definované v adresním prostoru serveru. Strukturované typy se
                definují jako struktura z jiných typů. Ovladač OPC UA klient
                pro Control Web dokáže číst hodnoty uzlů, jejichž typ je
                základní (build-in). V následující tabulce je seznam všech
                základních typů definovaných v OPC UA, které podporuje
                ovladač: 
                | Objekt | Popis | 
|---|
 | Boolean | Logická hodnota, může být v aplikaci spojená s
                  kanálem typu boolean nebo s libovolným
                  numerickým kanálem.  |  | Byte | Hodnota z rozsahu 0..255. V aplikaci může být spojená
                  s libovolným numerickým kanálem.  |  | Double, Float | Desetinná čísla. V aplikaci může být spojená s
                  libovolným numerickým kanálem.  |  | Int16, Int32, Int64 | Celá čísla se znaménkem. V aplikaci může být spojená
                  s libovolným numerickým kanálem.  |  | SByte | Hodnota z rozsahu -128..127. V aplikaci může být
                  spojená s libovolným numerickým kanálem.  |  | String | Řetězec, v aplikaci může být spojen s kanálem typu
                  string.  |  | UInt16, Uint32, UInt64 | Celá čísla bez znaménka. V aplikaci může být spojená
                  s libovolným numerickým kanálem.  |  | ExpandedNodeId, NodeId,
                  QualifiedName | Popis uzlu. V aplikaci může být spojen s kanálem typu
                  string.  |  | LocalizedText | Řetězec, který může obsahovat informaci o jazyku. V
                  aplikaci může být spojen s kanálem typu string.
                  Jazyk je vložen na začátek řetězce a oddělen dvojtečkou.
                  Příklad zápisu: cz:Text Text Pokud
                  není jazyk uveden, bude na začátku textu jenom
                  dvojtečka: :abc abc abc  |  | ExtensionObject | ExtensionObject je možné pouze číst. Do
                  Control Web je převeden jako pole kanálů
                  typu shortcard.  |  
  
                Následující datové typy ovladač v aktuální verzi
                nepodporuje: 
                | ByteString |  |  | DataValue |  |  | DateTime |  |  | DiagnosticInfo |  |  | Guid |  |  | StatusCode |  |  | Variant |  |  | XmlElement |   
              
            
            Zabezpečení
              
              
                Ve specifikaci OPC UA je kladen velký důraz na
                  bezpečnost. Dle specifikace OPC UA jsou tři možnosti
                  zabezpečení komunikačního kanálu: 
                  
                  Žádné zabezpečení (none) - Nejsou vyžadovány
                  certifikáty, komunikační kanál není zabezpečený.  
                  Podepsané - Mezi klientem a serverem je vytvořen
                  komunikační kanál. Jednotlivé zprávy jsou podepisované
                  certifikáty serveru nebo klienta.  
                  Podepsané a kryptované - Mezi klientem a serverem je
                  vytvořen komunikační kanál. Jednotlivé zprávy jsou
                  podepisované certifikáty serveru nebo klienta a kryptované.
                  Tato varianta je nejbezpečnější a doporučená.  
                 
                Pokud je to vyžadováno, má každá strana komunikace svůj
                certifikát, který ji jednoznačně identifikuje. Při navazování
                komunikace je vytvořen šifrovaný komunikační kanál. Klient i
                server mohou povolit komunikaci s jakýmkoliv protějškem
                (jakýkoliv certifikát považují z důvěryhodný) nebo je nutné
                buď používat certifikáty vydané důvěryhodnou certifikační
                autoritou nebo v konfiguraci serveru a klienta certifikát
                druhé strany označit a důvěryhodný. 
                Postup může být například následující: Ovladač OPC UA
                klient pro Control Web vytváří svůj bezpečnostní
                certifikát automaticky při prvním spuštění na daném počítači.
                Při prvním pokusu o připojení získá klient (ovladač)
                certifikát serveru. Protože nenajde certifikát ve svém seznamu
                důvěryhodných certifikátů, uloží získaný certifikát do svého
                seznamu nedůvěryhodných certifikátů a se serverem se odmítne
                spojit. Uživatel nyní musí spustit konfiguraci zabezpečení a
                certifikát označit za důvěryhodný. Ovladač tento certifikát
                přesune do svého seznamu důvěryhodných certifikátů a při
                následujícím pokusu o spojení server neodmítne. Obdobně může
                být nutné označit certifikát klienta v konfiguraci
                serveru. 
                Pro konfiguraci certifikátů je součástí instalace ovladače
                správce certifikátů. Správce certifikátů je možné spustit z
                konfigurátoru ovladače. Podrobněji v kapitole konfigurace certifikátů Konfigurace certifikátů. 
              
            
            Subscription - odběr informací o změnách
              
              
                V klasickém OPC i v novém OPC UA je jako doporučený způsob
                komunikace uváděna notifikace o změně hodnoty klienta ze
                serveru. Klient si určuje, které změny a jak často pro něj má
                server sledovat. 
                Při tomto způsobu komunikace klient zvolí uzly, jejichž
                hodnoty ho zajímají. K nim vytvoří odpovídající sledované
                položky (monitored items). U každé nastavíme
                požadovanou periodu vzorkování (sampling interval).
                Monitorovaná položka je vlastně identifikátor uzlu rozšířený o
                periodu. Monitorovaná položka sleduje změny hodnoty (s danou
                periodou) a záznam o změně ukládá do fronty. 
                Pro určitou skupinu takto vytvořených položek vytvoří
                klient odběr (subscription). Odběru nastavíme
                periodu odesílání změn (publishing interval).
                Perioda odesílání změn může být delší než perioda vzorkování.
                Potom může být při jednom odeslání změn posláno několik změn
                stejného uzlu. U každé změny je zaznamenána časová značka
                (time stamp). 
                
                Ovladač OPC UA klient pro Control Web tento způsob
                komunikace podporuje (v parametrickém souboru se skupina uzlů
                v subscription vytvoří v sekci monitored_items). 
              
            
            Profily
              
              
                OPC UA specifikace je velmi rozsáhlá, ale naštěstí nemusí
                každý server ani klient podporovat všechny vlastnosti. Aby
                existoval přehled, které vlastnosti daný server podporuje,
                vznikly takzvané profily. Každý profil definuje seznam
                vlastností, které server může implementovat. Existuje seznam
                profilů pro klienty, pro servery, seznam komunikačních profilů
                (transport profiles) a bezpečnostních profilů
                (security profiles). Aktuální přehled všech
                profilů je možné najít na webu OPC Foundation. 
              
            
          
        
        Činnost ovladače
          
          
            Ovladač se při spuštění aplikace připojí k OPC UA serveru.
            Podle definice v parametrickém souboru je každý kanál
            (identifikovaný svým číslem) spojený s určitým uzlem (node)
            v adresním prostoru serveru. 
            Komunikace hodnot může probíhat dle požadavků aplikace, čtením
            nebo zápisem některého kanálu. Čtení kanálu vyvolá čtení hodnoty
            ze serveru. Zápis do kanálu vyvolá odeslání hodnoty do
            serveru. 
            Další možnost je definovat u některých kanálů periodu s níž
            bude server informovat klienta - tedy ovladač o změně hodnoty.
            Ovladač změnu promítne do kanálu a vyvolá odpovídající událostní
            procedury v datových sekcích aplikace. 
            Pokud dojde při běhu aplikace k rozpadu spojení se serverem,
            nebo pokud se nepodaří navázat spojení při startu aplikace,
            pokouší se ovladač spojení obnovit. 
          
        
        Parametry ovladače
          
          
            Veškeré parametry ovladače se nastavují v parametrickém
            souboru. Celý soubor parametrů je rozdělen do několika sekcí.
            Název sekce je uveden v hranatých závorkách. V sekci jsou uvedeny
            za jménem a znakem = jednotlivé parametry. Na jednom řádku může
            být definován jeden parametr. 
            
            Základní nastavení ovladače obsahuje sekce server.
            Kanály se definují v sekcích monitored_items a items.
            V sekci monitored_items jsou definované kanály u
            nichž bude požadováno zasílání notifikací o změně hodnoty ze
            serveru. V sekci items jsou definovány kanály, které
            mohou být komunikovány pouze dle požadavků aplikace. Sekcí monitored_items
            a items může být v parametrickém souboru libovolný
            počet. 
            Parametry pro základní nastavení ovladače — sekce [server]
              
              
                V této sekci se nastavují společné parametry komunikace s
                OPC serverem. 
                [server]  
  URL = <server url>
  security = yes | no
  ignore_connect_error = yes | no
  write_array_index_range = yes | no
  keep_alive_interval = <number> 
                | URL | Adresa serveru  |  | security | Parametr určuje jestli se klient připojuje k serveru,
                  který používá zabezpečení komunikace (identifikační
                  certifikát a kryptovaný komunikační kanál). Pokud je
                  parametr security nastavený na hodnotu no,
                  připojí se klient pouze k serveru, který umožňuje
                  nezabezpečený komunikační kanál. Pokud je nastaven na
                  hodnotu yes připojí se pouze k serveru, který
                  zabezpečený komunikační kanál podporuje.  |  | ignore_connect_error | Pokud je parametr nastaven na hodnotu yes (ignorovat
                  chybu připojení) je možné aplikaci spustit i v případě, kdy
                  není možné navázat spojení se serverem. V případě že je
                  parametr nastaven na hodnotu no nebo není v
                  parametrickém souboru uveden a server není k dispozici,
                  aplikace nebude spuštěna.  |  | write_array_index_range | Některé OPC UA servery neumí zapisovat jenom část
                  pole, ale vždy vyžadují zapsat pole celé (OPC UA specifikace
                  toto chování umožňuje). Pokud nastavíme parametru na hodnotu
                  no, bude ovladač vždy zapisovat celá
                  pole. write_array_index_range = no  |  | keep_alive_interval | Parametr definuje periodu kontroly spojení se
                  serverem a periodu obnovy přerušeného spojení. Parametr je v
                  ms.  |   
                Příklad parametrů v sekci [server]: 
                [server]
  URL = opc.tcp://opcua.mii.cz:53530/OPCUA/SimulationServer
  security = no
  ignore_connect_error = yes 
              
            
            Konfigurace kanálů ovladače — sekce
              [monitored_items]a[items]
              
              
                V těchto sekcích se definuje spojení kanálů s konkrétními
                uzly v adresním prostoru serveru. Na jenom řádku se definuje
                jeden kanál, pokud je uzel skalární nebo rozsah kanálů pokud
                je uzel pole. Pokud je uzel vícerozměrné pole je v ovladači
                převedeno na odpovídající jednorozměrné pole. Na jednom řádku
                se vždy definuje odkaz na jeden uzel. Pokud je uzel skalár
                může být spojen pouze s jedním číslem kanálu. 
                Následuje způsob zápisu parametrů a jejich možné
                hodnoty: 
                [items]
  <From>, <Type>, <Direction> = <NodeId>
  <From>..<To>, <Type>, <Direction> = <NodeId> 
                | From | číslo prvního kanálu.  |  | To | číslo posledního kanálu.  |  | Type | typ kanálu v Control Webu. Možné hodnoty odpovídají datovým typům v
                      Control Webu a jsou následující: | boolean |  |  | shortint |  |  | shortcard |  |  | integer |  |  | cardinal |  |  | longint |  |  | longcard |  |  | shortreal |  |  | real |  |  | string |  
  |  | Direction | Směr kanálu. Možné hodnoty jsou: | input | vstupní kanál  |  | output | výstupní kanál  |  | bidirect | bidirectional | obousměrný kanál  |  
  |  | NodeId | Identifikátor uzlu, tak jak byl popsán v kapitole
                  Identifikátor uzlu.  |   
                V sekcích monitored_items je nutné definovat
                periodu zaznamenávání změn hodnot uzlu (sampling_interval)
                a periodu odesílání změněných hodnot klientovi (publishing_interval).
                Parametr sampling_interval muže být různý pro
                jednotlivé kanály, proto je možné ho v sekci opakovat. Hodnota
                parametru je použitá pro všechny následující uzly. Parametr
                publishing_interval je společný pro celou sekci a
                muže být v sekci definovaný pouze jednou a to vždy před
                definicí kanálů. 
                Příklad parametrů: 
                [server]
  URL = opc.tcp://opcua.mii.cz:53530/OPCUA/SimulationServer
  security = no
  ignore_connect_error = yes
  
[monitored_items]
  publishing_interval = 2000 
  sampling_interval = 1000
  102, real,input = ns=3;s=ByteAnalogItem
  103, real, input = ns=5;s=Sinusoid1
  sampling_interval = 2000
  104, real, input = ns=5;s=Square1 
  105, real, input = ns=5;s=Triangle1
[items]
  106, real, input = ns=5;s=Triangle1
  300..304, real, bidirect = ns=3;s=ByteArray
[monitored_items]
  publishing_interval = 5000 
  sampling_interval = 5000
  200..204, real, bidirect = ns=3;s=ByteArray 
              
            
          
        
        Konfigurace ovladače
          
          
            Pro pohodlnou konfiguraci ovladače (vytvoření parametrického
            souboru) je k dispozici konfigurační nástroj. Konfiguraci ovladače
            je možné spustit z datového editoru vývojové verze
            systému Control Web. 
            
            Konfigurátor se připojí k zadanému OPC UA serveru. Zobrazí jeho
            adresní prostor a umožní vkládání identifikátorů uzlů do
            parametrického souboru. 
            
            V levé části okna konfigurátoru je v přehledném stromu zobrazen
            parametrický soubor. Pokud vybereme některou položku stromu můžeme
            v tabulce pod stromem nastavovat její parametry. Pokud vybereme
            první položku stromu "OPC UA Server" můžeme nastavovat základní
            parametry připojení (v parametrickém souboru je to sekce
            [server]). U každého parametru je zobrazena nápověda. 
            V pravé části konfigurátoru je zobrazen strom adresního
            prostoru připojeného serveru. Pokud je vybrána některá položka,
            konfigurátor pod stromem zobrazí její parametry. Pokud je vybrán
            uzel typu proměnná je možné ho tlačítkem "Vložit do PARu" přidat
            do parametrického souboru (strom vlevo). 
            Konfigurace certifikátů
              
              
                V konfigurátoru ovladače je také možné konfigurovat
                certifikáty. Konfiguraci certifikátů spustíme tlačítkem
                 . Konfigurace
                certifikátů se spustí v samostatném procesu a vyžaduje
                oprávnění administrátora. 
                
                Konfigurátor zobrazí seznam všech certifikátů klienta (tedy
                certifikáty všech serverů s nimiž ovladač komunikoval i svůj
                vlastní certifikát). 
                Tlačítkem Důvěřovat je možné odmítnutý
                certifikát označit za důvěryhodný. 
              
            
          
        
      
    
  
 |