Kontaktné údaje
- info@ipesoft.com
- +421 907 703 854
- Obchodná 9076/3D
010 08 Žilina
Slovensko
© Copyright IPESOFT 2023
Na rozdiel od iných proprietárnych komunikačných protokolov (napr. Simatic S7) je tento protokol zdokumentovaný a preto je jeho implementácia pomerne jednoduchá.
FINS protokol má dva varianty: Protokol FINS/UDP na komunikáciu používa UDP pakety, protokol FINS/TCP používa TCP spojenia.
Kedy ktorý použiť? Pokiaľ sa jedná o komunikáciu v jednoduchom sieťovom prostredí, odporúčame variant FINS/UDP. Ak je sieť komplikovaná - včítane firewallov, prekladu adries NAT a iných ‘chuťoviek’, ktoré lepšie pracujú s TCP spojeniami ako s UDP datagramami – odporúčame variant FINS/TCP (pokiaľ ho konkrétne PLC podporuje). Jeho nevýhodou je väčšie množstvo prenesených dát – každá výzva aj odpoveď je zabalená do 16-bajtovej obálky. Navyše pri nadväzovaní spojenia prebehne úvodný „handshaking“, počas ktorého si obe strany vymenia niekoľko komunikačných parametrov.
Pri implementácii protokolu FINS sme najskôr podporili základný variant FINS/UDP a neskôr sme doplnili FINS/TCP.
Štandardné číslo portu, na ktorom Omron PLC počúva, je pre oba varianty 9600.
Ak chceme použiť variant FINS/UDP, tak na strane D2000 musíme použiť linku kategórie TCP/IP-UDP a nastaviť rozhranie a číslo portu, z ktorého bude D2000 KOM proces posielať výzvy a na ktorom bude očakávať odpovede. Môže to byť takisto port 9600, ale aj ľubovolný iný.
V prípade variantu FINS/TCP sa použije linka kategórie TCP/IP-TCP. Keďže sme chceli zachovať kompatibilitu konfigurácie s UDP variantom, kde sa IP adresa PLC nachádza na stanici, konfiguračné parametre linky TCP/IP-TCP (IP adresa, port, číslo linky) sa pri komunikácii nepoužiju (možno ich nastaviť na ľubovolnú hodnotu).
Každému PLC zodpovedá v D2000 jeden objekt typu Stanica. V rámci konfigurácie nutné zadať IP adresu PLC a číslo portu.
Protokol Omron FINS podporuje nielen komunikáciu s priamo pripojeným PLC, ale aj routovanie do ďalších sietí, ktoré sú k PLC pripojené, a ktoré nemusia byť postavené na štandarde Ethernet. Je možné komunikovať s PLC v sieťach Ethernet, Host Link, ControllerLink, SYSMAC LINK, SYSMACWAY a Toolbus.
PLC pripojené do siete Ethernet, ktoré priamokomunikuje cez TCP spojenie alebo UDP pakety s D2000 KOM procesom, sa v takomto prípade nazýva gateway PLC. PLC, s ktorým chceme komunikovať, sa nazýva cieľové PLC.
Takže – ako takéto PLC môžeme adresovať? Navyše, keď adresa v každom type siete môže byť iná?
Protokol OmronFINS tieto problémy rieši zavedením 1-bajtových polí v hlavičke protokolu, ktoré udávajú adresu siete, uzla a jednotky – pre zdroj aj cieľ. Hodnota 0 znamená štandardne „tento uzol“ (prípadne táto jednotka). Každý gateway PLC obsahuje tabuľky s konfiguráciou jednotlivých sietí, aby vedel, kam má preposlať dotaz alebo odpoveď, ktoré nie sú určené pre neho. Na konfiguráciu týchto parametrov slúži v D2000 šesť parametrov protokolu (3 v skupine Source Parameters a 3 v skupine Destination Parameters).
Špeciálnu pozornosť treba venovať parametru Source Node. Hodnota 0 pochopiteľne nie je vhodná, keďže zdroj komunikácie je počítač s D2000 KOM procesom a nie lokálne PLC. Pri testovaní sme zistili, že funkčné sú hodnoty 3 a vyššie (zrejme to suviselo s existujúcimi uzlami na sieti). V niektorých prípadoch (v závislosti od nastavenia PLC) musí byť parameter Source Node nastavený na poslednú časť IP adresy počítača (napr. pre adresu 192.168.0.10 je to hodnota 10).
Pri variante FINS/TCP je naopak hodnota 0 odporúčaná (pokiaľ sa komunikuje priamo, bez použitia gateway PLC). Hodnota 0 znamená, že PLC pridelí hodnotu Source Node aj Destination Node počas úvodného „handshakingu“ pri nadväzovaní TCP spojenia (takže nakonfigurovaná hodnota parametra Destination Node sa nepoužije).
Protokol OmronFINS je klasický protokol typu požiadavka – odpoveď. Ponúka celú škálu príkazov. Je možné pomocou neho čítať a zapisovať pamäť, riadiť beh PLC, programovať ho, pristupovať k chybovým logom, pracovať so súbormi atď.
Pri čítaní a zápise premenných v D2000 sme si vystačili so základnými dvoma príkazmi– MEMORY AREA READ a MEMORY AREA WRITE. Tieto umožňujú čítanie súvislej časti pamäte. Existuje aj príkaz MULTIPLE MEMORY AREA READ, ktorý umožňuje čítanie viacerých buniek (v terminológii protokolu elementov) z rôznych adries toho istého typu pamäte. Túto adresáciu sme zatiaľ nepodporili. Na druhej strane, podporená je agregácia čítaní hodnôt viacerých meraných bodov jediným príkazom. Maximálnu veľkosť čítaných dát udáva parameter protokolu Data Size.
Dátový model protokolu Omron FINS je podobný ako pri protokole Modbus. Existujú viaceré typy pamäte (nielen „registre”a “cievky – coils” ako v Modbuse). Každý typ pamäte má 16-bitovú adresu bajtu a 1-bajtovú adresu bitu. Záleží od konkrétneho typu zariadenia, aká veľká je jeho adresovateľná oblasť.
Bunka nachádzajúca sa na konkrétnej adrese sa nazýva element. Niektoré typy pamäte môžu byť adresovateľné po bitoch aj po bajtoch. V D2000 je v súčasnosti podporená bajtová adresácia nasledovných typov pamätí:
Všetky uvedené typy majú 2-bajtové elementy (podobne ako registre v protokole Modbus).
Ako vyzerá adresa meraného bodu?
Obsahuje jednak typ pamäte, potom adresu elementu (napr. DM025). Adresu je možné zadať aj hexadecimálne s použitím znaku mriežka - ‘#’), napr. AR#1B. Voliteľne je možné zadať aj číslo bitu (0-15), pokiaľ je nutné adresovať konkrétny bit, napr. HR00200.0. A na koniec je možné zadať typ dát – spôsob, ako budú dáta interpretované:
Niekoľko príkladov adries meraných bodov:
V prípade 2-bajtových typov (WORD, SHORT) sú dáta interpretované ako big-endian (prvý prijatý bajt je významnejší), čo je definované protokolom Omron FINS. Ako ale interpretovať ne-natívne 4-bajtové typy, ktoré sú vyskladané z dvoch zasebou idúcich elementov?
Na špecifikáciu interpretácie slúži parameter protokolu stanice 4-byte Endian mode. V praxi sme sa stretli zatiaľ s 32-bitovým reálnymi číslami, ktoré mali menej významnú časť v prvom elemente a významnejšiu časť v druhom. Poradie bitov v rámci elementu bolo big-endian. Reálne číslo 1.234 s hexadecimálnou reprezentáciou 0x3f9df3b6 tj. bajty <3f><9d><f3><b6> by tak bolo poslané ako sekvencia bajtov <f3><b6><3f><9d>. Pri jeho interpretácii je teda najvyšší bajt na 3. mieste (<3f>), nižší na 4. mieste (<9d>) , ďalší na 1. mieste(<f3>) a posledný na 2. mieste (<b6>).
Tejto interpretácii zodpovedá default hodnota prametra 4-byte Endian mode, ktorá je Bb (3412) - big-endian, 2nd register significant. Číslo v hodnote parametra (3412) teda udáva poradie bajtov pri posielaní.
Protokol OmronFINS je ďalším prírastkom v rozsiahlom zozname protokolov natívne podporených komunikačným procesom aplikačného servera reálneho času D2000. Rozširuje tak komunikačné možnosti D2000 a otvára dvere jeho použitiu v ďalších aplikáciách.
Implementáciu tohto protokolu Omron FINS je možné ďalej rozširovať podľa požiadaviek praxe –napr. podporou ďalších potrebných príkazov (napr. podporou synchronizácie času stanice), podporou ďalších interpretácii hodnôt (práca s reťazcami) alebo podporou načítania viacerých elementov do cieľového stĺpca štruktúry s použitím jediného meraného bodu.
Protokol OmronFINS je už dostupný pre použitie v aplikáciách - nachádza sa v patchoch verzie 12.2.67 s dátumom 31.8.2020 a novších.
3.9.2020, Ing. Peter Humaj, www.ipesoft.com