Vidíte historickú verziu tejto stránky. Pozrite si aktuálnu verziu.

Porovnať s aktuálnou verziou Zobraziť históriu stránky

« Predchádzajúce Verzia 6 Aktuálny »


Podporované typy a verzie zariadení  
Konfigurácia komunikačnej linky
Parametre protokolu linky
Konfigurácia komunikačnej stanice
Parametre protokolu stanice
Konfigurácia meraných bodov
Literatúra
Zmeny a úpravy
Revízie dokumentu


Podporované typy a verzie zariadení



Protokol Ethernet/IP je jeden z najrozšírenejších komunikačných protokolov v USA určený komunikáciu s PLC, motormi a inými zariadeniami procesnej úrovne. Protokol spravuje a vyvíja združenie ODVA, ktorého súčasťou sú firmy ako Rockwell, Honeywell alebo Schneider Electric.

Protokol Ethernet/IP je adaptáciou protokolu CIP (Common Industrial Protocol) na zbernicu Ethernet.

Implementácia v D2000 podporuje:

  • komunikáciu cez TCP/IP
  • explicitné správy (komunikácia typu request/response)
  • štandardnú adresáciu objektov (Class/Instance/Attribute)
  • symbolickú adresáciu objektov (proprietárna implementácia Rockwell)
  • optimalizáciu symbolickej adresácie objektov - tzv. Symbol Instance Addressing

Implementácia v D2000 nepodporuje:

  • komunikáciu cez UDP
  • implicitné správy (I/O messaging)

Komunikácia bola testovaná voči:

  • Allen-Bradley Micro820 
  • 1769 CompactLogix 5370 Controller (1769-L18ER/A)
  • ControlLogix EtherNet/IP bridge Module (1756-EN2TR/C) pripojenému na 1756-L85E ControlLogix 5580 Controller (1756-L85E/B)

Pozn: firmware Micro820 vo verzii 6 podporoval prácu so symbolickými adresami iba čiastočne. Fungovalo čítanie a zápis, ale nie browsovanie - neexistoval class Symbol Object [0x6b]. Verzia firmware 10.0.12 už podporovala aj browsovanie.
Pozn: CompactLogix 5370 podporoval prácu so symbolickými adresami, browsovanie ako aj optimalizáciu práce v symbolickom móde s použitím Symbol Instance ID.

Konfigurácia komunikačnej linky



Kategória komunikačnej linky: TCP/IP-TCP:

  • TCP Parametre - je nutné zadať parametre servera:
    • Host: meno servera vo formáte INET (meno alebo číselná adresa a.b.c.d). V prípade redundantných systémov je možné zadávať aj viacero mien/adries oddelených čiarkami
    • Port: číslo TCP portu (0 až 65535). Štandardný port Ethernet/IP protokolu je 44818
    • Číslo linky: nepoužité, zadajte 0

Pozn: ak sú na linke TCP/IP-TCP všetky stanice v stave StOFF, TCP spojenie bude zatvorené. Takto je možné riadiť TCP komunikáciu zo skriptu pomocou tell príkazu STSTAT.


Parametre protokolu linky



Dialóg konfigurácia linky - záložka Parametre protokolu.
Ovplyvňujú niektoré voliteľné parametre protokolu. Môžu byť zadané nasledovné parametre protokolu linky:


Tab. č. 1


Kľúčové slovoPlný názovPopisJednotkaNáhradná hodnota
RT
Read Wait TimeoutČakanie medzi jednotlivými čítaniami dát z komunikácie, pokiaľ neboli načítané žiadne dáta.sec.mss0.010

SD

Send DelayČakanie po poslaní jednej správy. Účelom je nepreťažiť zariadenie príliš veľkým počtom správ.
Pozn: pri testovanom zariadení Micro820 boli pozorované problémy pri poslaní cca 200 správ (browsovanie inštancií triedy File Object [0x37] s nulovým čakaním. Čakanie 1 ms problém vyriešilo.
sec.mss0.001

SE

Write Symbolic: Array Elements

Spôsob zápisu polí pri symbolickej adresácii (Rockwell). Podporené sú tri módy:

  • 0 .. Array Index + Item Count: zapísané sú všetky elementy definované pre konkrétny meraný bod (Array Index+1 resp. Item Count, podľa toho, čo je väčšie)
  • 0 .. Array Index: minimalistická varianta - zapísané sú položky 0 až Array Index
  • 0 .. Max Array Index: maximalistická varianta - zapísané sú položky 0 až Max Array Index, pričom Max Array Index je najväčší počet elementov zo všetkých meraných bodov s rovnakou symbolickou adresou (v rámci stanice)
-0 .. Array Index

OW

Optimized write of array elementOptimalizácia zápisu použitá, pokiaľ sa zapisuje iba jeden element poľa. Optimalizácia spočíva v tom, že sa zapisuje iba jeden konkrétny prvok a špecifikuje sa jeho index (v protokole udávaný ako Member ID).
Pozn: testované zariadenie Micro820 optimalizáciu podporovalo, testovací softvérový server nie.
-False

MP

Max Packet SizeMaximálna veľkosť Ethernet/IP správ (Unconnected Explicit message) - podľa normy 504 bajtov.
Pozn: v symbolickom móde (Rockwell) je možné pracovať aj s väčšími poliami s použitím proprietárnych služieb Read Tag Fragmented Service a Write Tag Fragmented Service.
Bytes504

RS

Response TimeoutTimeout na prijatie odpovede na výzvu. Pokiaľ nie je do tohto času prijatá odpoveď na výzvu, je to považované za chybu a TCP spojenie je zatvorené.sec.mss10.000

SO

Optimized Work with Symbolic NamesOptimalizácia práce v symbolickom móde (Rockwell) - tzv. Symbol Instance Addressing. Namiesto použitia symbolických mien sa pri čítaní pracuje s inštančnými identifikátormi (Symbol Instance ID). Symbolické meno sa na inštančný identifikátor prevedie rovnakou službou, ako sa používa pri browsovaní.
Pozn: Nie každé zariadenia alebo verzia firmware Rockwell podporuje túto optimalizáciu (testované Micro820 s firmware 10.0.12 ani 11.0.11 optimalizáciu nepodporovalo). V takomto prípade, pokiaľ vráti chybový kód Service not supported [0x08], optimalizácia bude vypnutá až do reštartu KOM procesu alebo do znovuuloženia konfigurácie príslušnej linky.
-False


Konfigurácia komunikačnej stanice



  • Komunikačný protokol: Ethernet/IP.
  • Adresa stanice sa nezadáva. Je podporovaných aj viacero staníc (napr. kvôli rôznym časovým parametrom stanice).

 Parametre protokolu stanice


Dialóg konfigurácia stanice - záložka Parametre protokolu.
Ovplyvňujú niektoré voliteľné parametre protokolu. Môžu byť zadané nasledovné parametre protokolu stanice:

Tab. č. 2

ParameterPopisJednotka / rozmerNáhradná hodnota

Route Path for Unconnected Send (hex)

Octet string reprezentujúci parameter Route_Path (typu padded EPATH, t.j. počet oktetov každého segmentu musí byť párny). Ak je tento parameter zadaný, protokolové správy (Get_Attribute_Single, Set_Attribute_Single, Read Tag [Fragmented] Service, Write Tag [Fragmented] Service) budú zabalené do správy Unconnected Send, ktorá slúži na routovanie.

Pri komunikácii so zariadeniami Micro820 a CompactLogix nebolo potrebné tento parameter meniť.

Pri komunikácii s ControlLogix cez ControlLogix EtherNet/IP bridge Module (1756-EN2TR/C) bolo nutné nastaviť parameter na hodnotu 01 00, čo podľa protokolovej dokumentácie znamená Port 1 (ktorý reprezentuje backplane), a slot 0 (osadený centrálnym procesorom).

Pri komunikácii s procesorom v slote 1 bolo treba nastaviť parameter na hodnotu 01 01, takže obecná syntax na prístup k slotu XX by bola 01 XX.

Komplikovanejšia konfigurácia skladajúca sa z 3 segmentov:

  • ide sa cez cez procesor v slot-e 0: 01 (Backplane) 00 (Slot 0)
  • ďalej sa ide cez port 2 na IP adresu 172.25.58.11: 12 (port 2 s príznakom Extended v 5. bite, ktorý znamená, že nasleduje 1 bajt s dĺžkou dát) 0C (dĺžka dát 12 bajtov) 31 37 32 2E 32 35 2E 35 38 2E 31 31 (ASCII kódy IP adresy 172.25.58.11).
    Pozn: Keby bol počet znakov v reťazci nepárny (napr. 13), tak by za dĺžkou (napr. 0D) nasledovala IP adresa (13 bajtov) a za ňou doplňujúci oktet 00, aby bol počet oktetov v segmente párny.
  • a nakoniec sa ide na procesor v slote 1: 01 (Backplane) 01 (Slot 1)

takže celý reťazec Route Path je: 01 00 12 0C 31 37 32 2E 32 35 2E 35 38 2E 31 31 01 01

octet string

Use Multiple Service Packet Service

Nastavenia parametra na hodnotu YES spôsobí, že protokolové správy (Get_Attribute_Single, Set_Attribute_Single, Read Tag [Fragmented] Service, Write Tag [Fragmented] Service) budú zabalené do správy Multiple Service Packet Service. V budúcnosti môže tento parameter slúžiť na zrýchlenie (zabalenie viacerých správ do jednej), v súčasnej implementácii je každá správa balená samostatne, preto odporúčame tento parameter nepoužívať.YES/NONO

Konfigurácia meraných bodov



Možné typy hodnôt bodov: Di, Ai, Ci, TxtI, TiR, TiA, Dout, Ao, Co, TxtO, ToR, ToA.

Adresácia meraného bodu môže byť štandardná alebo symbolická (Rockwell).


Štandardná adresácia - Addressing by Class / Instance / Attribute

Tento spôsob adresácie používa správy definované CIP štandardom:

    • Get_Attribute_Single [0x0E]
    • Set_Attribute_Single [0x10]

V rámci týchto správ sa adresuje číslom triedy (Class), inštancie v rámci triedy (Instance) a číslom atribútu konkrétnej inštancie (Attribute).

Class - výber triedy objektu. Class sa dá vybrať zo zoznamu alebo zadať numericky (16-bitové číslo bez znamienka). Okrem tried definovaných v štandarde CIP protokolu sú podporené aj niektoré proprietárne triedy firmy Rockwell.

Instance - zadanie čísla inštancie triedy (32-bitové číslo bez znamienka).

Classwide attribute - v prípade, že je zaškrtnutá táto voľba, sa nezadáva inštancia a namiesto atribútov konkrétnej inštancie je možné pracovať s atribútmi celej triedy (classwide attribute).

Alternative - podľa normy majú niektoré triedy alternatívy (napr. v závislosti od revízie triedy, od podtriedy a pod). Pokiaľ je táto voľba povolená, je nutné si vybrať konkrétnu alternatívu.

Attribute - atribút, ktorého hodnotu možno čítať alebo zapisovať. Atribút sa dá vybrať zo zoznamu alebo zadať numericky (32-bitové číslo bez znamienka). Zoznam atribútov závisí od nastavení parametrov Class, Classwide atribute a Alternative.

Tlačidlom Browse je možné otvoriť browse dialóg a načítať zoznam tried a inštancií v rámci triedy, pokiaľ je nadviazaná komunikácia so zariadením. Pri otvorení sa načíta z dôvodu rýchlosti iba zoznam tried (riadky s ikonkou zložky). Dvojité poklikanie na triedu načíta zoznam inštancií (pokiaľ bol počet inštancií zistený, t.j. nie je nula ani neznámy - "???"). Dvojité poklikanie na konkrétnu inštanciu (riadky s ikonkou tag) prekopíruje triedu a inštanciu do konfiguračného dialógu meraného bodu.
Pozn 1: počet skutočne načítaných inštancií triedy môže byť menší ako počet uvedený pri názve triedy.
Pozn 2: browsovanie sa pokúša vyčítať všetky inštancie 1 .. Max Instance, kde Max Instance je zistené pri načítaní zoznamu tried. Pokiaľ je ale Max Instance > 1000, skúša sa počas browsovania iba prvých 1000 inštancií. Načítanie všetkých inštancií môže trvať aj niekoľko desiatok sekúnd. Po jeho ukončení sa zmení ikonka zložky zo zatvorenej na otvorenú.
Pozn 3: vo verziách z 20.12.2018 a novších bolo implementované recyklovanie prehliadacieho dialógu. Pokiaľ je dialóg zavretý tlačidlom Cancel alebo po výbere inštancie, v skutočnosti je iba skrytý a je k dispozícii pre browsovanie iného meraného bodu v rámci tej istej stanice, takže sa zachováí stromová štruktúra prehliadaných objektov. Kliknutie na krížik vpravo hore spôsobí skutočné zavretie dialógu.

Tlačidlo Refresh slúži na znovunačítanie zoznamu zo zariadenia. KOM proces cachuje zoznam tried a inštancií, takže druhé a nasledovné otvorenie browse dialógu alebo vyčítanie zoznamu inštancií konkrétnej triedy je podstatne rýchlejšie ako prvé, pri ktorom dochádza k vyčítavaniu dát zo zariadenia.



Symbolická adresácia - Addressing by Symbolic Name


Tento spôsob adresácie je podporený pre Rockwell zariadenia. Využíva proprietárne Rockwell správy:

    • Read Tag Service [0x4C]
    • Write Tag Service [0x4D]
    • Read Tag Fragmented Service [0x52]
    • Write Tag Fragmented Service [0x53]

Pri browsovaní sa používa proprietárna Rockwell správa Get Instance Attribute List [0x55]. Niektoré zariadenia alebo verzie firmware nepodporujú túto správu alebo triedu Symbol Object [0x6b], ktorú správa používa.

Symbolic name - symbolické meno. Môže byť jednoduché (Test) alebo obsahovať adresáciu konkrétnej položky jednorozmerného poľa (Test[3]) alebo viacrozmerného (Test[1][2]), prípadne položky štruktúry (Test.MyItem1), prípadne položku z poľa štruktúr (Test[2].MyItem1).

Item count - počet položiek v prípade, že sa jedná o pole hodnôt. Tento počet môže byť menší alebo rovný skutočnému rozmeru poľa v zariadení. Ak sa nezadá, číta sa jeden element.

Fragmented read - príznak, že sa na čítanie má použiť správa Read Tag Fragmented Service, keďže celé pole sa nezmestí do správy s dĺžkou udanou parametrom Max Packet Size.
Pozn: pokiaľ čítanie správou Read Tag Service vráti chybový kód Partial transfer [0x06], pri následných čítaniach sa použije správa Read Tag Fragmented Service, ako keby bol príznak Fragmented read nastavený.

Tlačidlom Browse je možné otvoriť browse dialóg a načítať zoznam symbolických mien, pokiaľ je nadviazaná komunikácia so zariadením. Pre každé symbolické meno je načítaný aj typ atribútu. V prípade štruktúr alebo polí štruktúr je typ identifikovaný ako "STRUCTURE (---)". S takýmto komplexným typom v súčasnosti nevie D2000 pracovať - je nutné zadať ako symbolické meno adresu konkrétnej položky (napr. MyStruct.MyItem alebo MyArr[1].MyItem).
Zaškrtnutá voľba Auto slúži na nastavenie typu atribútu NONE/AUTO (autodetect). Ak je táto voľba vypnutá, typ atribútu sa prekopíruje do meraného  bodu spolu so symbolickým menom po dvojkliku na konkrétny riadok v zozname symbolických mien.
Tlačidlo Refresh slúži na znovunačítanie zoznamu zo zariadenia. KOM proces cachuje zoznam symbolických mien, takže druhé a nasledovné otvorenie browse dialógu je podstatne rýchlejšie ako prvé, pri ktorom dochádza k vyčítavaniu zo zariadenia.
Pozn: symbolické mená začínajúce podtrhnítkom sa týkajú systémových objektov Rockwell zariadenia, ostatné mená sú užívateľsky definované.





Attribute type - typ atribútu. V prípade štandardnej adresácie je nutné zadať konkrétny typ. V prípade symbolickej adresácie je možné ponechať typ atribútu NONE/AUTO (autodetect), keďže proprietárne Rockwell správy obsahujú hodnotu aj typ atribútu. Výnimkou je, pokiaľ je meraný bod určený iba na zápis - vtedy je typ atribútu nutné špecifikovať.

Pozn: nie všetky typy atribútov z ponúkaného zoznamu majú implementované čítanie/zápis. Podporené sú všetky numerické typy, časové typy, reťazce (SHORT_STRING, STRING, STRING2) a polia numerických a časových typov.

Array index - index elementu v poli, pokiaľ je atribút pole. V protokole Ethernet/IP sa indexuje od nuly, takže ak je Item count rovný 3, povolené sú indexy 0, 1 a 2.
Pozn: pokiaľ Array index + 1 > Item count, načíta sa Array index + 1 elementov namiesto Item count.

Bit (1..n) - v prípade typov atribútu bez znamienka (BOOL, USINT, UINT, UDINT, ULINT, DATE, TIME_OF_DAY, BYTE, WORD, DWORD, LWORD, ENGUNIT a polia týchto typov) je možné špecifikovať konkrétny bit (1 až 64 podľa počtu bitov konkrétneho typu).

Reading mode - spôsob čítania meraného bodu. Sú možné tri spôsoby čítania:

  • Active read - meraný bod generuje požiadavky na čítanie.
  • Passive read - meraný bod negeneruje požiadavky na čítanie, ale spracúva hodnoty načítané iným meraným bodom s rovnakou adresou Class/Instance/Attribute resp. Symbolic name. Tento mód má zmysel v prípade polí, keď jeden meraný bod je aktívny a ostatné sú pasívne, takže hodnoty všetkých (alebo vybraných) položiek poľa sa načítajú jedným dotazom.
    Pozn: protokol Ethernet/IP podporuje načítanie polí do štruktúry (záložka Cieľ), takže je možné načítať celé pole do stĺpca štruktúry s pomocou jedného meraného bodu.
  • Write only - meraný bod je určený iba na zápis.

Writing mode - spôsob zápisu meraného bodu. Tento parameter sa týka iba výstupných meraných bodov (Dout, Ao, Co, TxtO, ToR, ToA).

  • Normal - zápis do meraného bodu spôsobí poslanie zápisovej správy.
  • Delayed -zápis do meraného bodu bude odložený a realizuje sa až ako súčasť zápisu iného meraného bodu s rovnakou adresou Class/Instance/Attribute resp. Symbolic name. Tento mód má zmysel v prípade polí, keď je zapísaných niekoľko elementov poľa pomocou meraných bodov s odloženým zápisom a následne zápis do meraného bodu Normal vygeneruje požiadavku na zápis celého poľa.


Pozn 1: pokiaľ je potrebné vyčítavať celé pole MY_ARR (do cieľovej štruktúry alebo do viacerých meraných bodov), dá sa to jedným dotazom (ak pole nie je príliš veľké). Nastavte v konfigurácii prvého meraného bodu:

  • Symbolic name: MY_ARR
  • Item_count: počet vyčítavaných položiek poľa (napr. 10)
  • Array index: nezadaný alebo 0
  • Reading mode: nechajte na Active read

Do tohto meraného bodu sa načíta prvá položka poľa (s indexom 0). Ak chcete načítať pole do štruktúry, zadajte parameter Cieľový stĺpec v záložke Cieľ. Ak chcete načítať pole do ďalších meraných bodov, nakonfigurujte ich takto:

  • Symbolic name: MY_ARR
  • Item_count: nezadané
  • Array index: 1 až 9
  • Reading mode: zmeňte na Passive read

Pozn 2: pri práci s ControlLogix 5580 Controller vznikla potreba načítavať viacrozmerné polia. Pole MY_ARR malo rozmer [0..7][0..3][0..23]. Nastavenia na načítanie poľa (vždy 24 hodnôt naraz) v konfigurácii prvého meraného bodu:


  • Symbolic name: MY_ARR[1][2][0] (pre načítanie indexov [1][2][0..23])
  • Item_count: 24
  • Array index: nezadaný
  • Reading mode: Active read

Nastavenia pre merané body 1 až 23:

  • Symbolic name: MY_ARR[1][2][0] (t.j. rovnaké ako pre nultú položku poľa)
  • Item_count: nezadaný
  • Array index: 1 až 23
  • Reading mode: zmeňte na Passive read

V rámci Symbolic name bolo nutné zadať všetky tri indexy, t.j. nefungovala napr. špecifikácia MY_ARR[1][2]

Literatúra



THE CIP NETWORKS LIBRARY, Volume 1, Common Industrial Protocol (CIP™)

THE CIP NETWORKS LIBRARY, Volume 2, EtherNet/IP Adaptation of CIP

THE CIP NETWORKS LIBRARY, Volume 7, Integration of Modbus Devices into the CIP Architecture

Micro800 Programmable Controllers: Getting Started with CIP Client Messaging, Rockwell Automation

Logix 5000 Controllers Data Access (Programming Manual), Rockwell Automation

RSLogix 500 Getting Results Guide, Rockwell Automation

Blog

O protokole Ethernet/IP si môžete prečítať blogy:


Zmeny a úpravy



-


Revízie dokumentu



  • Ver. 1.0 - 28. november 2018 - Vytvorenie dokumentu.
  • Ver. 1.1 - 2. január 2019 - Vylepšenia v browsovaní, otestovanie voči 1769 CompactLogix 5370 Controller


Súvisiace stránky:

  • Žiadne štítky