Promotic

PmABradleyCIP - Driver do komunikacji ze sterownikami PLC Allen Bradley poprzez protokół EtherNetIP/CIP

Driver ten służy do komunikacji ze sterownikami PLC Allen Bradley od firmy Rockwell Automation poprzez protokół EtherNetIP/CIP. Patrz również Komunikacja ze sterownikami PLC Allen Bradley od firmy Rockwell Automation.

Protokół CIP (Common Industrial Protocol) jest protokołem sieciowym, który umożliwia transmisję wartości obiektów danych. W odróżnieniu od pozostałych protokołów, które są zazwyczaj orientowane na wsparcie rejestrów, wejść i wyjść, itd., protokół CIP orientuje się na wsparcie pracy z obiektami danych. Przez pojęcie obiekt danych są rozumiane wytworzone przez użytkownika zmienne tablice, struktury, itd., które opisują technologię i której instancja znajduje się w pamięci sterownika PLC.
Protokół CIP może być zaimplementowany w różnych warstwach fizycznych (Ethernet, CAN/DeviceNet, FieldBus/ControlNet). Protokół EtherNet/IP implementuje (kapsułkuje) protokół CIP dla Ethernet. Driver PmABradleyCIP realizuje implementację protokołu CIP do protokołu EtherNet/IP.
Sterowniki PLC założone na obszarach danych (DataFile, na przykład typu Input, Output, Integer ...) nie potrafią komunikować poprzez protokół CIP (np. PLC MicroLogix) i dla nich jest przeznaczony driver komunikacyjny PmABradleyDF1.

Protokół EtherNetIP/CIP jest wspierany przez sterowniki PLC Allen Bradley od firmy Rockwell Automation z serii:
- ControlLogix
- CompactLogix
- SoftLogix
- DriveLogix
- GuardLogix
- Micro850, Micro870


Przed zastosowaniem tego drivera w aplikacji PROMOTIC należy obejżeć "PROMOTIC wideo kurs 4 - Drivery komunikacyjne".

Podstawowe właściwości drivera:
- Zastosowanie tego drivera wymaga zakup licencji PmABradley. Podczas wytwarzania aplikacji w trybie freeware PmFree lub z licencją deweloperską oraz podczas jej testowania w runtime element ten jest zawsze funkcjonalny.
- Komunikacja jest dla Ethernetu (aplikacja PROMOTIC jest klientem).
- Aplikacja PROMOTIC jest z punktu widzenia tej komunikacji Master (to znaczy, że wywołuje transmisję danych).
- Driver jest wbudowany do systemu PROMOTIC przy pomocy obiektu PmaComm.
Driver wspiera wykorzystanie obiektu PmaCommGroup (do odczytu i zapisu zmiennych w sterowniku PLC). Obiekt PmaCommMsg jest stosowany tylko do specjalnej pomocniczej wiadomości, która stwierdzi nazwy zmiennych, które można odczytywać ze sterownika PLC (patrz dalej).
Dla łatwego dodania tego drivera do aplikacji jest dogodne zastosować: Konfiguracje wstępne w grupie "Allen Bradley - sterownik PLC"
- Driver został przetestowany na PAC Allen-Bradley CompactLogix serii PLC 5000 z firmware wersji 20. Ze starszymi wersjami firmware ten driver prawdopodobnie nie będzie funkcjonować.
- Podczas programowania PLC są stosowane dwa typy zmiennych:
- Zmienne globalne (Controller Tags)
- Zmienne dla danego programu w sterowniku PLC (Program Tags)

Ten driver komunikacyjny narazie potrafi pracować tylko z Controller Tags.


Driver wspiera następujące typy danych:
- BOOL: W sterowniku PLC: prezentowany jako 1 bit.
W aplikacji PROMOTIC jest reprezentowany przez typ danych Boolean.
- SINT: W sterowniku PLC: 8-bitowa liczba całkowita ze znakiem (signed integer).
W aplikacji PROMOTIC jest reprezentowany przez typ danych Integer.
- INT: W sterowniku PLC: 16-bitowa liczba całkowita ze znakiem (signed integer).
W aplikacji PROMOTIC jest reprezentowany przez typ danych Integer.
- DINT: W sterowniku PLC: 32-bitowa liczba całkowita ze znakiem (signed integer).
W aplikacji PROMOTIC jest reprezentowany przez typ danych Long.
- LINT: W sterowniku PLC: 64-bitowa liczba całkowita ze znakiem (signed integer).
W aplikacji PROMOTIC jest reprezentowany przez typ danych Double.
- REAL: W sterowniku PLC: 32-bitowa liczba rzeczywista (float).
W aplikacji PROMOTIC jest reprezentowany przez typ danych Single.
- DWORD: W sterowniku PLC: 32-bitowa tablica bitów (zazwyczaj obszar bazowy dla zmiennych typu BOOL).
W aplikacji PROMOTIC jest reprezentowany przez typ danych Long.
- $STRING: W sterowniku PLC: struktura zawierająca długość (typ DINT) i tablicę znaków (typ SINT). Przedstawia tekst.
W aplikacji PROMOTIC jest reprezentowany przez typ danych String.


Zmienne (tzw. tagi) są deklarowane już podczas programowania sterownika PLC. Deklaracją jest rozumiane określenie ich typu danych, wymiaru tablic i zdefiniowanie pozycji struktury, nazwanie zmiennej i ewentualnie nazwanie struktury. Projektant aplikacji PROMOTIC w kolei pracuje z tymi właśnie nazwami. Nazwy zmiennych są w tym protokole zazwyczaj oznaczane jako symbole, deklaracje struktur danych jako szbalony (templates). Szablony mogą być deklarowane albo przez użytkownika, lub mogą zostać przejęte z bibliotek narzędziowych do programowania sterowników wspierających protokół CIP.

Zalecone wartości parametrów obiektu PmaComm:

Zalecane wartości dla pozycji Parametry Ethernet-klient:
Numer zdalnego portu TCP/UDP44818
 
Patrz: Wikipedia: Lista numerów portów TCP i UDP używanych przez protokoły do uruchamiania aplikacji sieciowych.
Typ transmisji EthernetTCP
Podłączyć dopiero przy pierwszej transmisjiNIE zaznaczać (obowiązkowe)
Zamknij połączenie po każdej transmisjiNIE zaznaczać (obowiązkowe). Po każdym nawiązaniu połączenia jest konieczne przenieść kilka wiadomości inicjalizacyjnych i gdyby połączenie było często zamykane to szybkość transmisji została by znacząco obniżona.
Opis i zalecane wartości dla pozycji Parametry protokołu:
Typ PLC
0 = Control/Compact/..Logix - Komunikacja ze sterownikami PLC typu ControlLogix, CompactLogix lub innymi typami ..Logix.
1 = Micro850/870 - Komunikacja ze sterownikami PLC typu Micro850 lub Micro870.
Numer portu w sterowniku PLC1 (ustaw według dokumentacji)
Numer gniazda w sterowniku PLC0, numer pozycji w stojaku (ustaw według dokumentacji)
Priorytet tików5 (ustaw według dokumentacji)
Ilość tików na timeout247 (ustaw według dokumentacji)

Opis komunikacji przy pomocy obiektu PmaCommGroup

Zmiennych w obiekcie PmaCommGroup (lub jeszcze lepiej zmiennych w obiekcie PmaData z rozszerzeniem danych ExtComm) może być dowolna ilości, mogą być dowolnego typu danych i w dowolnej kolejności. Driver sam w zoptymalizowany sposób odczyta dane z urządzenia przy pomocy wewnętrznie wytworzonych wiadomości komunikacyjnych.
Uwaga: Jeżeli przekazywane są zmienne z wartością typu String, wtedy driver nie rozpozna ile najwyżej takich wartości może przekazać w jednej wiadomości. Wtedy jest konieczne ograniczenie ilości zmiennych w jednym obiekcie PmaCommGroup.
 
Odczytywane są wszystkie zmienne (jeżeli konfigurator "Odświeżanie danych zezwolone" jest zaznaczony). Przy zapisie do zmiennej do urządzenia jest odesłana tylko zapisywana zmienna (jeżeli konfigurator "Automatycznie przesyłaj przy zapisie do pozycji" jest zaznaczony).

Opis konfiguratora "ItemId":
ItemId jest identyfikator tekstowy pozycji, który służy do adresacji pozycji w urządzeniu. Z konfiguratora ItemId driver stwierdzi, w jaki sposób ma zostać wartość pozycji wczytana lub wysłana.
Tekst można wpisać ręcznie, lub ułożyć w oknie, które zostanie otwarte przy pomocy przycisku wprawo od konfiguratora.
Do wprowadzenia można zastosować Makro wyrażenie (wartość jest obliczana po uruchomieniu aplikacji).
Wprowadzać ItemId przy pomocy przycisku po prawej od konfiguratora można tylko jeżeli jest wytworzony plik z informacjami o zmiennych w sterowniku PLC. Plik ten można wytworzyć przy pomocy wiadomości PmaCommMsg ("Odczyt nazw wszystkich dostępnych zmiennych ze sterownika PLC") - patrz dalej.

Pomiędzy nazwą struktury i pozycją struktury jest jako separator stosowana kropka (.).
Indeks tablicy (indeksowane od 0) znajduje się w nawiasach kwadratowych ([ ]).
Nie są dozwolone żadne dodatkowe spacje.
Przykłady formy identyfikatora:
1) W sterowniku PLC jest pozycja elementarna (np. typu INT) o nazwie "Temperatura". Jeżeli chcemy odczytywać/zapisywać taką pozycję, wtedy ItemId będzie mieć następującą formę:
Temperatura
2) W sterowniku PLC jest struktura o nazwie "station" a w niej znajduje się tablica o nazwie "data". Jeżeli chcemy odczytywać/zapisywać 23. pozycję tej tablicy, wtedy ItemId będzie mieć następującą formę:
station.data[23]
3) W sterowniku PLC jest struktura "heating", w niej znajduje się tablica "Kociol". Każda pozycja z tej tablicy jest strukturą zawierającą pozycję "Temperatura". Chcemy odczytywać/zapisywać do 0. (tzn. pierwszej pozycji) pozycji tablicy:
heating.Kociol[0].Temperatura
4) W sterowniku PLC jest 3-wymiarowa tablica o nazwie "warehouse" i chcemy odczytywać/zapisywać wartość o współrzędnych [12,11,5]:
warehouse[12][11][5]
5) Odczyt i zapis tekstu: W sterowniku PLC jest struktura na przykład o nazwie "label", która zawiera pozycję typu DINT (długość tekstu) i tablicę znaków typu SINT.
Taka struktura może przedstawiać tekst i jeżeli taki tekst chcemy odczytywać/zapisywać, wtedy ItemId musi mieć formę:
label,type=STRING


Opis konfiguratora "PmaCommGroup > Parametry > Parametry specjalne":
Ten konfigurator nie jest stosowany przez dany driver.

Opis komunikacji przy pomocy obiektu PmaCommMsg

Obiekt PmaCommMsg można zastosować do specjalnych komunikacji, których nie można wykonać przy pomocy obiektu PmaCommGroup.
W przypadku tego drivera komunikacyjnego jest zaimplementowana tylko jedna specjalna wiadomość:

- Odczyt nazw wszystkich dostępnych zmiennych ze sterownika PLC:
W celu poprawnego ustawienia konfiguratora "ItemId" w zmiennych obiektu PmaCommGroup jest konieczne znajomość nazw zmiennych zdefiniowanych przez użytkownika, pozycji struktur lub wymiarów tablic w sterowniku PLC. Taką informację można odczytać ze sterownika PLC i to właśnie wykonuje wiadomość ta:
Wiadomość odczyta informacje i zapisze je do łańcucha tekstowego w karcie "Dane-odbiór". Jeżeli tekst ten zostanie zapisany do pliku (standardowo o nazwie "ABradleyVarCfg.txt"), wtedy w konfiguratorze ItemId można zastosować przycisk po prawej, który odczyta określony plik i wyświetli go w formie struktury drzewiastej, z której można wybrać konkretne pozycje danych.
W celu poprawnego wytworzenia i ustawienia obiektu PmaCommMsg jest dogodne zastosować konfigurację wstępną: Konfiguracja wstępna "PmABradleyCIP - Zestaw komunikacji z danymi i panelem poprzez protokół EtherNetIP/CIP (dla ControlLogix, CompactLogix, ...)". Jeżeli w tej konfiguracji wstępnej zaznaczysz konfigurator "Wytwórz PmaCommMsg dla wczytania zmiennych ze sterownika PLC", wtedy jest wytworzony poprawnei ustawiony obiekt PmaCommMsg razem z panelem, w którym można wiadomość uruchomić i odczytać w ten sposób informacje ze sterownika PLC. W zdarzeniu onEndOfTransfer tego obiektu znajduje się skrypt, który odczytane informacje tekstowe zapisze do pliku "ABradleyVarCfg.txt".

W karcie "Dane-wysłanie" nie ma żadnej zmiennej.
W karcie "Dane-odbiór" znajdujuą się zmienne:
InfoVars - Do tej zmiennej zostaną zapisane informacje tekstowe o dostępnych zmiennych w sterowniku PLC.

Historia:
Pm9.00.26: Uogólnienie do komunikacji ze sterownikami PLC typu Micro850. W parametrach protokołu istnieje nowy konfigurator "Typ PLC".
Pm9.00.25: Usunięty błąd: Jeżeli w nazwie elementu struktury był tylko 1 znak wtedy nie zadziałałą transmisja dla tego elementu.
Pm9.00.21: Usunięty błąd: Nie działał odbiór wartości typu $STRING jeżeli była w formie struktury.
Pm8.03.10: Usunięty błąd: Nie można było odczytać tablicę dwurozmiarową.
Pm8.03.02: Usunięty błąd: Czasami nie działała transmisja wiadomości typu Odczyt nazw wszystkich dostępnych zmiennych ze sterownika PLC.
Pm8.02.16: Usunięty błąd:
- Nie było możliwe podłączenie dwu aplikacji PROMOTIC do jednego sterownika PLC.
- Nie działała poprawnie transmisja wiadomości typu Odczyt nazw wszystkich dostępnych zmiennych ze sterownika PLC.
Pm8.02.03: Usunięty błąd: Wiadomość typu Odczyt nazw wszystkich dostępnych zmiennych ze sterownika PLC w niektórych przypadkach wytworzyła błędną listę nazw.
Pm8.02.00: Wytworzono
© MICROSYS, spol. s r.o.