Ethernet/IP Protokol
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
optimalizáciu čítania viacerých hodnôt pomocou správ Multiple Service Packet Service
prácu so štruktúrami (UDT)
prácu s nespojovanými správami (Unconnected Messages)
prácu so spojovanými správami (Connected Messages) s použitím správ Forward Open / Large Forward Open
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)
SLC 5/05 1747-L553/C Ethernet Processor (v režime zapuzdrených PCCC správ)
MicroLogix 1100 (v režime zapuzdrených PCCC správ)
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 (alebo v simulácii), 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é slovo | Plný názov | Popis | Jednotka | Náhradná hodnota |
|---|---|---|---|---|
RT | Read Wait Timeout | Čakanie medzi jednotlivými čítaniami dát z komunikácie, pokiaľ neboli načítané žiadne dáta. | sec.mss | 0.010 |
BS | Batch Size | Počet správ po odoslaní ktorých sa čaká Send Delay. | - | 1...1000 |
SD | Send Delay | Čakanie po poslaní jednej dávky správ obsahujúcej Batch Size správ. Účelom je nepreťažiť zariadenie príliš veľkým počtom správ. | sec.mss | 0.001 |
MPR | Max Pending Requests | Maximálny počet nepotvrdených správ. Ak počet nepotvrdených správ dosiahne hodnotu parametra, čaká sa pred vyslaním ďalšej správy. Hodnota 1 znamená, že sa čaká na potvrdenie každej správy (nemôže tak dôjsť k preťaženiu PLC v dôsledku intenzívnej komunikácie). |
| 1..100 |
SE | Write Symbolic: Array Elements | Spôsob zápisu polí pri symbolickej adresácii (Rockwell). Podporené sú tri módy:
| - | 0 .. Array Index |
OW | Optimized write of array element | Optimalizá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). | - | False |
MP | Max Packet Size | Maximálna veľkosť Ethernet/IP správ (Unconnected Explicit message) - podľa normy 504 bajtov. | Bytes | 504 |
RS | Response Timeout | Timeout 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.mss | 10.000 |
SO | Optimized Work with Symbolic Names | Optimalizá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í. | - | False |
TND | Tcp No Delay | Nastavenie "Tcp No Delay"=True parametra spôsobí nastavenie nízkoúrovňového parametra socketov TCP_NODELAY, čím sa vypne prednastavené spájanie paketov. | - | 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
Parameter | Popis | Jednotka / rozmer | Ná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, MicroLogix 1100 a CompactLogix nebolo potrebné tento parameter nastavovať. 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:
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 (v syntaxi Rockwell OPC servera je to "1,[0,2,172.25.58.11, 1], 1") | octet string |
|
Use Multiple Service Packet Service | Nastavenia parametra na hodnotu YES spôsobí, že protokolové správy Read Tag Service budú zabalené do správy Multiple Service Packet Service. Tento parameter slúži na zrýchlenie (zabalenie viacerých správ do jednej), pričom veľkosť jednej správy (Unconnected Explicit message) neprekročí hodnotu Max Packet Size. | YES/NO | NO |
Optimize Structure Read | Optimalizované čítanie štruktúr je možné použiť na to, aby sa načítala celá štruktúra z PLC naraz namiesto čítania jednotlivých členov. Každá štruktúra má definovanú šablónu v PLC (UDT- user data template) . Optimalizované čítanie vyžaduje zistenie štruktúry (zoznam jednotlivých členov, ich typov a offsetov v rámci štruktúry). V konfigurácii meraných bodov je nutné vytvoriť jeden bod s adresou štruktúry (napr. Struct1) s Reading mode = Active read (tento bod bude stále neplatný, ale bude slúžiť na generovanie požiadaviek na čítanie) a ostatné merané body s adresami členov štruktúry (napr. Struct1.MyValA, Struct1.MyValB) s Reading mode = Passive read. Pozn: Je na aplikačnom programátorovi, aby v prípade veľkých štruktúr obsahujúcich podštruktúry nakonfiguroval buď meraný bod na čítanie celej štruktúry (napr. Struct2) alebo viaceré merané body na čítanie podštruktúr (napr. Struct2.SubA a Struct2.SubB) - a zistil, čo je v konkrétnom prípade optimálne z hľadiska rýchlosti a záťaže PLC. Pozn: Ak štruktúra obsahuje vnútorné dátové štruktúry (napr. členy typu TIMER, COUNTER, CONTROL, MESSAGE, MOTION), ku ktorým nie je povolený symbolický prístup, čítanie celej štruktúry zlyhá (chyba "Privilege violation [x0F]", s "Additional status" nastaveným na "Reserved by CIP"). | YES/NO | NO |
Read Extra Template Bytes | Pokiaľ bolo aktívne Optimalizované čítanie štruktúr, v konkrétnych prípadoch sa stalo, že veľká definícia šablóny neprišla celá, ale meno posledného člena bolo skrátené (napr. chýbali 2 znaky a ukončujúca 0). Stalo sa tak, keď sa definícia správy nezmestila do jedného paketu, ale bola väčšia (napr. mala mať 861 alebo 2225 bajtov). Nastavenie tohto parametra na hodnotu 2 alebo 3 (a vyžiadanie si o príslušný počet bajtov viac) vyriešilo problém. Parametre problematických zariadení:
| 0-23 | 0 |
--- Connected Transport Parameters --- | |||
Use Connected Transport | Parameter zapína použitie spojovaného CIP transportu. Namiesto Unconnected Send sa vytvorí spojenie (správou Forward Open/Large Forward Open) a následne sa správy posielajú cez vytvorené spojenie. | YES/NO | NO |
CIP Connections | Počet paralelných logických CIP spojení. Väčší počet umožňuje rýchlejšiu obsluhu správ, na druhej strane PLC podporujú obmedzený počet CIP spojení. Na jednom CIP spojení môže byť v jednom momente obsluhovaná iba jedna správa. | 1-16 | 4 |
CIP Connection Serial Number | Parameter udáva ID prvého logického CIP spojenia. Ak je CIP Connections>1, tak sa použije nakonfigurované a následné (napr. 10, 11, 12). ID logických CIP spojení musia byť unikátne, t.j. ak je niekoľko staníc (na jednej/viacerých linkách), ktoré komunikujú s tým istým PLC pri použití spojovaného CIP transportu (Use Connected Transport=YES), je nutné nakonfigurovať neopakujúce sa ID. | 0-65535 | 1 |
Connection Path (hex) | Parameter Connection Path správy Forward Open/Large Forward Open. Prednastavená hodnota znamená:
| octet string | 01 00 20 02 24 01 |
Vendor ID | Parameter Vendor ID správy Forward Open/Large Forward Open udáva ID výrobcu (identifikácia D2000 KOM procesu). | 0 - 65535 | 0x1234 |
Tick Time | Parameter Tick Time správy Forward Open/Large Forward Open udáva veľkosť časového intervalu použitého pre výpočet timeoutu správy Forward Open. Viď parameter Timeout Ticks. | ms | 128 |
Timeout Ticks | Parameter Timeout Ticks udáva počet časových intervalov (s veľkosťou Tick Time) použitých pre výpočet timeoutu správy Forward Open/Large Forward Open. Timeout sa vypočíta ako Tick Time * Timeout Ticks. | - | 1-255 |
O->T RPI | Parameter O->T RPI správy Forward Open/Large Forward Open udáva veľkosť Originator -> Target Requested Packet Interval v mikrosekundách. | μs | 2000000 |
T->O RPI | Parameter T->O RPI správy Forward Open/Large Forward Open udáva veľkosť Target -> Originator Requested Packet Interval v mikrosekundách. | μs | 2000000 |
Connection Timeout Multiplier | Parameter Connection Timeout Multiplier správy Forward Open/Large Forward Open. Udáva multiplikátor, ktorým sa násobia parametre O->T RPI a T->O RPI na zistenie timeoutu CIP spojenia v smere O->T resp. T→O. | x2 - x512 | x16 |
Large Forward Open | Parameter umožňuje namiesto správy Forward Open použiť na vytvorenie spojovaného CIP transportu správu Large Forward Open. V tejto je možné špecifikovať aj väčšiu veľkosť Connection Size ako 504 bajtov, takže správy môžu byť väčšie. Viď poznámku pri parametri Max Packet Size, ktorý špecifikuje Connection Size pre Forward Open/Large Forward Open. | YES/NO | NO |
--- PCCC Parameters --- | |||
PCCC Max Data Length | Nastavenie parametra na nenulovú hodnotu spôsobí, že použitie PCCC protokolu zapuzdreného v Ethernet/IP protokole. Týmto spôsobom je možné komunikovať so staršími SLC 5/05 a PLC5E. Zároveň sa symbolická adresa meraného bodu začne interpretovať ako adresa vo formáte SLC-500 - viď protokol Allen-Bradley CSP/PCCC (napr. N:3 alebo $T4:0/ACC). | 0-240 bytes | 0 |
PCCC Command Set | Výber PCCC príkazov použitých na komunikáciu so staršími SLC 5/05 a PLC5E, pokiaľ je parameter PCCC Max Data Length nastavený na nenulovú hodnotu. Na výber sú tieto možnosti:
* - pri použití týchto príkazov je podporovaný iba zápis pre typ súborov Status (S), Binary (B), Integer (N), Float (F) a aj pre tieto typy je podporený iba zápis celých elementov, nie bitov. Nie je podporovaný zápis pre typy súborov Timer (T) a Counter (C). | - |
|
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.
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.