Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmABradleyCIP - Driver do komunikacji ze sterownikami PLC Allen Bradley protokołem EtherNetIP/CIP

Niniejszy driver służy do komunikacji ze sterownikami PLC Allen Bradley od firmy Rockwell Automation protokołem 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ą w większości orientowane na wsparcie rejestrów, wejść i wyjść, itd., protokoł 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) protokoł 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ć protokołem CIP (np. PLC MicroLogix) i dla nich jest przeznaczony driver komunikacyjny PmABradleyDF1.

 
Protokół EtherNetIP/CIP jest wspierany przez sterowniki Allen Bradley od firmy Rockwell Automation z serii:
- ControlLogix
- CompactLogix
- SoftLogix
- DriveLogix
- GuardLogix
 
Przed zastosowaniem tego drivera w aplikacji PROMOTIC należy zaznajomić się z rozdziałem: Komunikacja przy pomocy driverów PROMOTIC.
 
Podstawowe właściwości drivera:
- Zastosowanie tego drivera wymaga zakup licencji PmABradley. Z wersją freeeware PmFree lub przy opracowywaniu aplikacji (z licencją deweloperską w celach testowania) element ten zawsze funkcjonuje.
- Komunikacja przebiega dla Ethernetu (aplikacja PROMOTIC jest klientem).
- Aplikacja PROMOTIC jest z punktu widzenia tej komunikacji MASTER (tzn. 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 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: prezentowany jako 1 bit. W aplikacji PROMOTIC jest reprezentowany przez typ danych: Boolean.
- SINT: w sterowniku: 8-bitowa liczba całkowita ze znakiem (signed integer). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Integer.
- INT: w sterowniku: 16-bitowa liczba całkowita ze znakiem (signed integer). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Integer.
- DINT: w sterowniku: 32-bitowa liczba całkowita ze znakiem (signed integer). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Long.
- LINT: w sterowniku: 64-bitowa liczba całkowita ze znakiem (signed integer). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Double.
- REAL: w sterowniku: 32-bitowa liczba rzeczywista (float). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Single.
- DWORD: w sterowniku: 32-bitowa tablica bitów (zazwyczaj obszar bazowy dla zmiennych typu BOOL). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Long.
- $STRING: w sterowniku: 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. tagy) są deklarowane już podczas programowania sterownika. Deklaracją jest rozumiane określenie ich typu danych, wymiaru tablic i zdefiniowanie pozycji struktury, nazwanie zmiennej i ewentualnie nazwanie struktury. Projektant wytwarzający aplikację w systemie PROMOTIC w kolei pracuje z tymi właśnie nazwami. Nazwy zmiennych są w tym protokole często 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 protokoł CIP.
 

Zalecone wartości parametrów obiektu PmaComm:

Zalecane wartości dla pozycji Parametry Ethernet-klient:
Numer portu TCP/UDP44818
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:
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 (albo 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.

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 identyfikatorem tekstowym pozycji, który służy do adresacji parametru 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ć przy pomocy okna, 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 ("Wczytanie nazw wszystkich dostępnych zmiennych ze sterownika PLC") - patrz dalej.

 
Pomiędzy nazwą struktury i pozycja struktury jest jako separator stosowana kropka (.). Indeksy tablic (indeksowane od 0) są zamknięte 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 łańcucha: 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":
Niniejszy 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ść:
 
- Wczytanie nazw wszystkich dostępnych zmiennych ze sterownika PLC:

W celu poprawnego ustawienia konfiguratora "ItemID" w zmiennych dla obiektu PmaCommGroup jest konieczne znajomość nazw zmiennych zdefiniowanych przez użytkownika, pozycji struktur czy wymiarów tablic w sterowniku PLC. Taką informację można odczytać ze sterownika PLC i to właśnie wykonuje ta wiadomość:

Wiadomość odczyta informacje i zapisze je do pliku 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 wybierać 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 protokołem EtherNetIP/CIP (dla ControlLogix, CompactLogix, ...)". Jeżeli w tej konfiguracji wstępnej zaznaczysz konfigurator "Wytwórz PmaCommMsg dla wczytania zmiennych ze sterownika PLC", wtedy zostanie wytworzony poprawnei ustawiony obiekt PmaCommMsg razem z panelem, w któreym 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:
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 danych typu Wczytanie 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ł poprawnie transfer danych typu Wczytanie nazw wszystkich dostępnych zmiennych ze sterownika PLC.
Pm8.02.03: Usunięty błąd: Wiadomość typu Wczytanie 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.Tavičská 845/21 703 00 Ostrava-Vítkovice