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ść, 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"
- Driver został przetestowany na PAC Allen-Bradley CompactLogix serii PLC 5000 z firmware wersji 20. Ze starszymi wersjami firmware driver ten 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 na razie 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 typów 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:
Typ PLC |
0 = Control/Compact/..Logix - Komunikacja ze sterownikami PLC typu ControlLogix, CompactLogix lub innymi typami ..Logix.
1 = Micro850/870 firmware21- - Komunikacja ze sterownikami PLC typu Micro850 lub Micro870 z nieaktualnym oprogramowaniem sprzętowym 21.
To oprogramowanie sprzętowe nie pozwala na odbieranie wielu zmiennych jednocześnie (MultiRead) i dlatego każda zmienna musi być przesłana w osobnej wiadomości (SingleRead).
2 = Micro850/870 firmware22+ - Tak samo jak typ 1, ale z nowszym oprogramowaniem sprzętowym 22 i nowszym.
Umożliwia odczyt wielu zmiennych w jednej wiadomości ( MultiRead). |
Numer portu w sterowniku PLC | 1 (ustaw według dokumentacji).
Ten konfigurator nie jest przeznaczony dla PLC typu Micro850/870. |
Numer gniazda w sterowniku PLC | 0, numer pozycji w stojaku (ustaw według dokumentacji).
Ten konfigurator nie jest przeznaczony dla PLC typu Micro850/870. |
Priorytet tików | 5 (ustaw według dokumentacji) |
Ilość tików na timeout | 247 (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 albo 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
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 do odczytu 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 zapisze odczytane informacje tekstowe do pliku
"ABradleyVarCfg.txt".
W karcie "
Dane-odbiór" znajdujuą się zmienne:
InfoVars - Do tej zmiennej zostaną zapisane informacje tekstowe o dostępnych zmiennych w sterowniku PLC.