IFM O2D512 instrukcja

Typ
instrukcja

Niniejsza instrukcja jest również odpowiednia dla

Przewodnik programisty
Interfejs procesowy
Ethernet/IP
PROFINET
O2D5xx
80300147 / 00 11 / 2020
PL
Przewodnik programisty
2
Spis treści
1  Uwagi wstępne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.1 Stosowane symbole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.2 Prawa autorskie i znaki towarowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.3 Informacje na temat kodu open source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2 Interfejs procesowy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2.1  Wysyłanie komend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2.2  Objaśnienia komend interfejsu procesowego. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
2.2.1 Komenda a (aktywacja aplikacji) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
2.2.2  Komenda A? (zajętość na liście aplikacji). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
2.2.3  Komenda c (załaduj konfigurację wyjścia interfejsu procesowego) . . . . . . . . . . . . . . . . . . . . .8
2.2.4  Komenda C?  (odzyskaj bieżącą konfigurację interfejsu procesowego) . . . . . . . . . . . . . . . . .8
2.2.5  Komenda E? (żądanie podania bieżącego stanu błędu) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
2.2.6  Komenda g (bramkowane wyzwalanie softwarowe zał lub wył). . . . . . . . . . . . . . . . . . . . . . . .9
2.2.7  Komenda G? (żądanie informacji o urządzeniu) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
2.2.8  Komenda H? (podaj listę dostępnych komend) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
2.2.9  Komenda I? (pokaż ostatni zrobiony obraz). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
2.2.10  Komenda j (nadpisuje dane ciągu znaków) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.11  Komenda J? (czytaj ciąg znaków ze zdefiniowanego kontenera) . . . . . . . . . . . . . . . . . . . . 11
2.2.12  Komenda L? (zwraca ID bieżącej sesji) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.13 Komenda o (ustaw stan logiczny dla ID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
2.2.14 O? Komenda (podaj stan logiczny ID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
2.2.15  Komenda p (załącz / wyłącz wyjście interfejsu procesowego) . . . . . . . . . . . . . . . . . . . . . . .13
2.2.16  Komenda S? (podaj bieżące statystyki dekodowania) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
2.2.17 Komenda t (wykonaj wyzwolenie asynchroniczne) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2.2.18 T? Komenda (wykonaj wyzwolenie synchroniczne) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2.2.19  Komenda v (ustaw bieżącą wersję protokołu) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2.2.20  V? Komenda (podaj bieżącą wersję protokołu) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
2.3  Kody błędów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
3 EtherNet/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
3.1  Struktury danych do zużycia i tworzenia podzespołów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
3.2  Funkcjonalność aplikacji Ethernet/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
3.2.1  Zmiana stanu 0 -> 1 bitu komendy w podzespole zużycia. . . . . . . . . . . . . . . . . . . . . . . . . . .18
3.2.2 Wielokrotne zmiany stanu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
3.2.3 Reset stanu bitu komendy przez sterownik PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
3.2.4  Blokowanie wiadomości asynchronicznych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
3.2.5  Odłączenie klienta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
3.2.6  Ogólna odpowiedź na zastosowaną komendę. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
3.2.7  Odpowiedź na zastosowaną komendę - odpowiedź zawiera konkretne dane . . . . . . . . . . . .18
3.2.8  Odpowiedź na zastosowaną komendę z błędem w sekcji danych. . . . . . . . . . . . . . . . . . . . .19
3.2.9  Odpowiedź na zastosowaną komendę, która wywołuje błąd  . . . . . . . . . . . . . . . . . . . . . . . .19
3.2.10  Odpowiedź na komendę niewykonaną. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
3.2.11  Zerowanie bitu błędu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
3.2.12  Funkcjonalność bitu wiadomości asynchronicznej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
3.2.13  Bity dla identyfikatora wiadomości asynchronicznej. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
3.2.14  Licznik wiadomości. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
3.2.15  Pobierz ostatni błąd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
3.2.16  Pobierz ID połączenia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
3.2.17 Pobierz statystyki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
3.2.18  Domyślne ustawienie endianness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
3.2.19  Aktywuj aplikację . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
3.2.20  Pokaż listę aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
3.2.21  Pokaż stan IO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
3.2.22 Ustaw stan IO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
3.2.23 Wykonaj wyzwolenie synchroniczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
3.2.24  Aktywuj wyjście asynchroniczne interfejsu procesowego. . . . . . . . . . . . . . . . . . . . . . . . . . .21
3.3  Sekwencja sygnału dla wyzwalania synchronicznego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
3.4  Sekwencja sygnału przy błędzie wyzwolenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
3
Przewodnik programisty
PL
4 PROFINET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
4.1 Struktura komendy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
4.1.1  Dostępne sloty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
4.1.2  Weryfikacja wielkości wybranych slotów w ustawieniu połączenia . . . . . . . . . . . . . . . . . . . .23
4.1.3  Wielkość modułu dla slotu 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
4.1.4  Wielkość modułu dla slotów 3-12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
4.1.5  Wielkość modułu dla slotu 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
4.1.6 Obcinanie danych. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
4.1.7  Układ danych w slotach 2-12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
4.1.8 Definiowanie stanu procesu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
4.1.9  Układ danych w slocie 13  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
4.1.10  Układ danych słowa komendy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
4.1.11  Identyfikator dla wiadomości synchronicznych i asynchronicznych . . . . . . . . . . . . . . . . . . .25
4.2  Wymagania obsługi komend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
4.2.1  Ilość wspieranych połączeń PROFINET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
4.2.2  Inicjalizacja buforów wejściowych i wyjściowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
4.2.3 Wykonanie komendy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
4.2.4  Obsługa poszczególnych bitów komendy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
4.2.5  Wysyłanie wiadomości asynchronicznych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
4.2.6  Obsługa rozłączeń w trakcie wykonywania komendy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
4.2.7  Obsługa komend, które nie generują odpowiedzi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
4.2.8  Obsługa komend, które generują dane odpowiedzi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
4.2.9  Obsługa komend z niewłaściwą sekcją danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
4.2.10  Obsługa błędu komendy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
4.2.11  Obsługa komendy nie wspieranej. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
4.2.12  Zerowanie bitu błędu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
4.2.13  Kolejkowanie kodów błędu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
4.2.14  Funkcjonalność bitu wiadomości asynchronicznej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
4.2.15  Bity dla identyfikatora wiadomości asynchronicznej. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
4.2.16  Licznik wiadomości. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
4.3 Opis komendy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
4.3.1 Wykonaj bramkowane wyzwolenie programowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
4.3.2  Pobierz ostatni błąd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
4.3.3  Pobierz ID połączenia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
4.3.4 Get statistics Pobierz statystyki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
4.3.5  Aktywuj aplikację . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
4.3.6  Pokaż listę aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
4.3.7  Pokaż stan IO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
4.3.8 Ustaw stan IO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
4.3.9 Wykonaj wyzwolenie synchroniczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
4.3.10  Aktywuj asynchroniczne wyjście danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
4.3.11 Default endianess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
4.3.12  Pobierz następny segment danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
4.4 Komendy rozszerzone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
4.4.1  Użyj komendy rozszerzonej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
4.4.2 Segmentacja danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
4.4.3 Blokowanie / Odblokowanie segmentacji danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
4.4.4  Wysyłanie pierwszej sekwencji danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
4.4.5 Potwierdzenie odebrania segmentu danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
4.4.6 Identyfikator asynchronicznego identyfikatora segmentu danych . . . . . . . . . . . . . . . . . . . . .34
4.4.7 Segmentacja danych zablokowana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
4.4.8 Blokowanie dalszych danych asynchronicznych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
4.4.9  Błąd dla brakującej ramki dekodowanej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
4.4.10  Przerwanie wysyłania segmentu przez inną komendę. . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
4.4.11  Ustawianie zawartości kontenera dopasowanego ciągu . . . . . . . . . . . . . . . . . . . . . . . . . . .35
4.4.12  Pobieranie zawartości danego kontenera dopasowanego ciągu . . . . . . . . . . . . . . . . . . . . .35
Przewodnik programisty
4
1 Uwagi wstępne
Dane techniczne, zatwierdzenia, akcesoria i dalsze informacje: www.ifm.com.
1.1 Stosowane symbole
Instrukcje
>
Reakcja, wynik
[…]
Oznaczenie klawiszy, przycisków oraz wskaźników
Odsyłacz
Ważna uwaga 
Niestosowanie się do instrukcji obsługi może prowadzić do nieprawidłowego działania lub zakłóceń.
Informacje
Nota uzupełniająca
1.2 Prawa autorskie i znaki towarowe
© Wszystkie prawa zastrzeżone przez ifm electronic Sp. z o.o.. Żadna części niniejszej instrukcji nie 
może być kopiowana i stosowana bez zgody ifm electronic Sp. z o.o.
Wszystkie nazwy towarowe, zdjęcia, nazwy firm lub innych marek użyte na naszych stronach są 
własnością odpowiednich właścicieli praw.
1.3 Informacje na temat kodu open source
Produkt może zawierać oprogramowanie bezpłatne lub Open source pochodzące od różnych twórców
oprogramowania, które podlega następującym licencjom: Ogólna licencja publiczna wersja 1, wersja 2 i
wersja 3 (Ogólna licencja publiczna wersja 3 w połączeniu z wersją 3.1 GNU Compiler Collection Runtime
Library Exception), Mniejsza ogólna licencja publiczna wersja 2.1, Mniejsza ogólna licencja publiczna wersja 3,
firmy Berkeley Software Distribution („Ten produkt zawiera oprogramowanie stworzone przez University of
California, Berkeley i ich współpracowników”), Bezpłatna licencja akademicka wersja 2.1. Do składników
podlegających Ogólnej licencji publicznej w ich odpowiednich wersjach ma zastosowanie co następuje:
Ten program jest bezpłatny: pozwala na redystrybucję
i/lub dokonywanie zmian zgodnie z warunkami określonymi przez GNU General Public License
opublikowanymi przez Free Software Foundation. Jeżeli do oprogramowania stosuje się wersja 1: można
stosować wersję 1 lub dowolną wyższą (opcja do wyboru); jeżeli do oprogramowania stosuje się wersja 2,1
(lub  2: można stosować wersję 2 lub dowolną wyższą (opcja do wyboru); jeżeli do oprogramowania
stosuje się wersja 3: można stosować wersję 3 lub dowolną wyższą (opcja do wyboru. Do składników
oprogramowania podlegającym Ogólnej licencji publicznej lub Mniejszej ogólnej licencji publicznej w ich
odpowiednich wersjach stosują się poniższe zastrzeżenia: Oprogramowanie bezpłatne jest rozpowszechniane
w dobrej wierze, że będzie przydatne, lecz BEZ JAKIEJKOLWIEK GWARANCJI; nawet bez domniemanej 
gwarancji sprzedawalności lub przydatności do konkretnego zastosowania. Proszę zobaczyć GNU General
Public License and the GNU Lesser General Public License, żeby poznać szczegóły. 
Odpowiedzialność ifm electronic Sp. z o.o. za produkty ifm, w przypadku oprogramowania dedykowanego, 
pozostaje w mocy z pominięciem powyższych zastrzeżeń. Proszę zwrócić uwagę na to, że oprogramowanie 
wbudowane (firmware) w wielu przypadkach jest oprogramowaniem darmowym. Cena produktów ifm
(sprzętu) zawiera wtedy cenę firmware'u. Najnowsze informacje na temat umowy licencyjnej można znaleźć 
na www.ifm.com
Dla kodów binarnych, które podlegają licencjonowaniu zgodnie z dowolną wersją Ogólnej licencji publicznej
GNU General Public License (GPL) lub Mniejszej ogólnej licencji publ. GNU LGPL można pobrać kod 
źródłowy oprogramowania po przesłaniu pisemnego zapotrzebowania na adres [email protected] lub ifm
electronic Sp. z o.o.. ul. Węglowa 7, 40-105 Katowice.
Opłata wynosi 30€ za każde zapotrzebowanie. Proszę wpisać “source for product Y” w temacie 
bezpośredniego e-maila do [email protected]. Zapotrzebowanie powinno zawierać (i) nazwę
poprzedniego oprogramowania, (ii) nazwę i numer wersji produktu, (iii) nazwę firmy zgłaszającej
zapotrzebowanie, (iv) adres zwrotny. 
Niniejsza oferta dotyczy każdego, kto jest w posiadaniu tej informacji. Oferta jest ważna przez co najmniej 3 
lata (od daty otrzymania kodu podlegającego licencjonowaniu GPL/LGPL).
5
Przewodnik programisty
PL
2 Interfejs procesowy
Interfejs procesowy jest wykorzystywany w trakcie normalnej pracy do odbierania z urządzenia  danych 
(np. wartości procesowych , zdjęć itp. )
2.1 Wysyłanie komend
Aby wysyłać komendy przez interfejs procesowy należy stosować specjalny protokół jako ciągi znaków 
ASCII. Ten protokół jest zgodny z wersją 3 produktów O2V/O2D/O3D.
Struktura protokołu:
<Ticket><length>CR LF<Ticket><content>CR LF
Skrót Opis kod ASCII (dec) kod ASCII (hex)
CR Nowy wiersz 13 D
LF Nowa linia 10 A
< > Symbol zastępczy 
(np. <code> to symbol
zastępczy dla kodu)
[ ] Argument opcjonalny
(możliwy, ale nie 
wymagany)
Komenda Opis
<content>
zawartość
Jest to treść polecenia do urządzenia (np. wyzwól rejestrację).  
<ticket>
numer
komendy
To ciąg 4 znaków z zakresu 0-9. Po wysłaniu danego ciągu znaków do urządzenia, ono 
odpowiada takim samym ciągiem. 
Liczba w tym ciągu musi być > 0999. 
Trzeba wykorzystywać numery z zakresu 1000 - 9999.
<length>
długość
To ciąg znaków zaczynający się literą L, z kolejnymi 9-cioma znakami. Wskazuje on na 
długość danych, które nadejdą (<ticket><content>CR LF) w bajtach.
Numery komend dla wiadomości asynchronicznych:
Numer komendy Opis
0000 Wynik asynchroniczny
0001 Asynchroniczne komunikaty błędu / kody błędu
0010 Asynchroniczne powiadomienia / kody wiadomości
Format asynchronicznych powiadomień
Format asynchronicznych powiadomień jest kombinacją unikalnego identyfikatora wiadomości ID i ciągu 
w formacie JSON zawierającego szczegóły powiadomienia: <unique message ID>:<JSON content>
Przykład dla protokołu wersja 3:
<ticket=0010>L<length>CR LF<ticket=0010><unique message ID>:<JSON content>CR LF
Wynik:
0010L000000045\r\n0010000500000:{"ID": 1034160761,"Index":1,"Name": "Pos 1"}\r\n
Przewodnik programisty
6
Wyjaśnienie rezultatu:
Komenda Rezultat
<ticket=0010> 0010
L<length> L000000045
CR LF \r\n
<ticket=0010> 0010
<unique message ID> 000500000
<JSON content> {"ID": 1034160761,"Index":1,"Name": "Pos 1"}
CR LF \r\n
Identyfikatory ID wiadomości asynchronicznych
Identyfikator
ID wiadomości 
asynchronicznej
Opis Przykład Opis
000500000 Aplikacja została 
zmieniona
{"ID": 
1034160761,"Index":1,"Name": 
"Pos 1","valid":true}
000500001 Aplikacja jest
nieważna
{"ID": 
1034160761,"Index":1,"Name": 
"Pos 1","valid":false}
Jeżeli aplikacja istniała, ale 
jest nieważna, pola ID i Name 
są wypełniane zgodnie z 
danymi aplikacji. Jeżeli dla 
podanego indeksu nie ma
aplikacji, ID aplikacji będzie 
0, a Name będzie pustym 
ciągiem ""
000500002 koniec odbioru
obrazu
{} Ta wiadomość to sygnał dla 
odbiornika, że urządzenie 
zakończyło odbiór obrazu. 
Można ją wykorzystać do 
kaskadowania kolejnych
urządzeń z wyzwalaniem 
programowym.
7
Przewodnik programisty
PL
2.2 Objaśnienia komend interfejsu procesowego
Wszystkie odebrane wiadomości, wysłane przez urządzenie w wyniku następujących komend, będą 
wysyłane bez "start"/"stop" na początku lub końcu ciągu znaków.
2.2.1 Komenda a (aktywacja aplikacji)
Komenda a<application number>
Opis Aktywacja wybranej aplikacji
Typ Akcja
Odpowiedź *
!Aplikacja jest niedostępna
<application number> zawiera niewłaściwą 
wartość
Aktywowane jest zewnętrzne przełączanie 
aplikacji
Urządzenie jest w stanie niewłaściwym do 
wykonania komendy, np. w trybie konfiguracji
?Niewłaściwa długość komendy
Uwaga <numer aplikacji>
2 cyfry jako numer aplikacji w formacie
dziesiętnym
2.2.2 Komenda A? (zajętość na liście aplikacji)
Komenda A?
Opis Żądanie zajęcia na liście aplikacji
Typ Żądanie
Odpowiedź <amount><t><number active
application><t>
..
<number><t><number>
?Niewłaściwa długość komendy
!Niewłaściwy stan (np. nie ma aktywnej 
aplikacji)
Uwaga <amount>
ciąg znaków z 3 cyframi oznaczającymi 
ilość aplikacji zachowanych w 
urządzeniu w formacie dziesiętnym
<t>
tabulator (0x09)
<number active application>
2 cyfry oznaczające aktywne aplikacje
<number>
2 cyfry oznaczające numer aplikacji
Aktywne aplikacje są powtarzane z listą 
aplikacji
Przewodnik programisty
8
2.2.3 Komenda c (załaduj kongurację wyjścia interfejsu procesowego)
Komenda c<length><configuration>
Opis Ładuje konfigurację wyjściową 
interfejsu procesowego, dla trwania 
danej sesji
Typ Akcja
Odpowiedź *
!Błąd w trakcie konfiguracji
Niewłaściwa długość danych
?Niewłaściwa długość komendy
Uwaga <length>
9 cyfr jako wartość dziesiętna długości 
danych
<configuration>
dane konfiguracji
2.2.4 Komenda C? (odzyskaj bieżącą kongurację interfejsu procesowego)
Komenda C?
Opis Odzyskuje bieżącą konfigurację 
interfejsu procesowego
Typ Żądanie
Odpowiedź <length><configuration>
?Niewłaściwa długość komendy
Uwaga <length>
9 cyfr jako wartość dziesiętna długości 
danych
<configuration>
dane konfiguracji
2.2.5 Komenda E? (żądanie podania bieżącego stanu błędu)
Komenda E?
Opis Żadanie podania bieżącego stanu błędu
Typ Żądanie
Odpowiedź <code>
!Niewłaściwy stan (np. tryb konfiguracji)
?Niewłaściwa długość komendy
Uwaga <code>
Kod błędu z 8 cyframi w formacie 
dziesiętnym. Zawiera on zera 
poprzedzające.
9
Przewodnik programisty
PL
2.2.6 Komenda g (bramkowane wyzwalanie softwarowe zał lub wył)
Komenda g<state>
Opis Załącz / wyłącz bramkowane wyzwalanie 
softwarowe
Typ Żądanie
Odpowiedź *Sygnał wyzwalający będzie wykonany.
!Niewłaściwy argument, niewłaściwy stan, 
wyzwolenie już zostało wykonane.
?Coś innego poszło nie tak.
Uwaga <state> 1 cyfra
„0“: wyłącz bramkowane wyzwalanie
„1“: załącz bramkowane wyzwalanie
2.2.7 Komenda G? (żądanie informacji o urządzeniu)
Komenda G?
Opis Żądanie informacji o urządzeniu
Typ Żądanie
Odpowiedź <vendor><t><article number><t><name><t>
<location><t><description><t><ip>
<subnet mask><t><gateway><t><MAC><t>
<DHCP><t><port number>
Uwaga <vendor>
IFM ELECTRONIC
<t>
Tabulator (0x09)
<article number>
np. O2D500
<name>
UTF8 Unicode string
<location>
UTF8 Unicode string
<description>
UTF8 Unicode string
<ip>
Adres IP urządzenia w kodzie ASCII 
np. 192.168.0.96
<port number>
numer portu XML-RPC
<subnet mask>
subnet mask urządzenia w kodzie ASCII
np. 192.168.0.96
<gateway>
gateway urządzenia w kodzie ASCII
np. 192.168.0.96
<MAC>
MAC adress urządzenia w kodzie ASCII
np. AA:AA:AA:AA:AA:AA
<DHCP>
kod ASCII "0" dla wył. i "1" dla zał.
Przewodnik programisty
10
2.2.8 Komenda H? (podaj listę dostępnych komend)
Komenda H?
Opis Podaje listę dostępnych komend
Typ Żądanie
Odpowiedź a - aktywuj aplikację
A? - zajętość na liście aplikacji
c - załaduj konfigurację wyjścia interfejsu procesowego
C? - odzyskaj bieżącą konfigurację interfejsu procesowego
E? - żądanie podania bieżącego stanu błędu 
g - załącz / wyłącz bramkowane wyzwalanie softwarowe
G? - żądanie informacji o urządzeniu
H? - pokaż tą listę
I? - pokaż ostatni zrobiony obraz
j - nadpisuje dane ciągu znaków
J<ID>? - czytaj ciąg znaków ze zdefiniowanego kontenera
L? - odzyskuje ID połączenia
o - ustaw stan logiczny dla ID
O? - ustaw stan logiczny ID
p - załącz / wyłącz wyjście interfejsu procesowego
S? - podaj bieżące statystyki dekodowania
t - wykonaj wyzwolenie asynchroniczne
T? - wykonaj wyzwolenie synchroniczne
v - ustaw bieżącą wersję protokołu
V? - podaj bieżącą wersję protokołu
2.2.9 Komenda I? (pokaż ostatni zrobiony obraz)
Komenda I<image-ID>?
Opis Pokazuje ostatni zrobiony obraz
Typ Żądanie
Odpowiedź <length><image data>
! Brak ostatniego obrazu
Zły identyfikator ID
?Niewłaściwa długość komendy
Uwaga <image-ID>
2 cyfry dla typu obrazu
<length>
ciąg mający dokładnie 9 znaków odpowiadający 
liczbie dziesiętnej podającej wielkość danych 
obrazu w bajtach
<image data>
dane obrazu / dane wyniku. Dane są zaszyte we 
fragmencie obrazu
Ważne identyfikatory obrazu ID:
01 - wszystkie obrazy JPEG
02 - wszystkie obrazy
nieskompresowane
Po żądaniu obrazu komendą I?, przed zapamiętaniem nagłówek pliku JPEG musi być dostosowany: 
► Skasować całość informacji przed identyfikatorem startowym. 
> Identyfikator startowy dla obrazu JPG jest "FF D8" (hex) / "ÿØ" (ASCII). 
11
Przewodnik programisty
PL
2.2.10 Komenda j (nadpisuje dane ciągu znaków)
Komenda j<ID><length><data>
Opis Nadpisuje dane ciągu znaków
Typ Akcja
Odpowiedź *
!Niewłaściwy argument lub niewłaściwy stan 
(inny niż tryb pracy normalnej)
Nie istnieje ciąg o tym ID kontenera 
wejściowego
?Błąd składni 
Uwaga <ID> number from 00 to 09
<length>
9 cyfr jako wartość dziesiętna 
długości danych
<data> string of a maximum size of
256 Bytes
2.2.11 Komenda J? (czytaj ciąg znaków ze zdeniowanego kontenera)
Komenda J<input-container-ID>?
Opis Odczytuje bieżący zdefiniowany 
ciąg znaków ze zdefiniowanego 
kontenera wejściowego. Ciąg jest 
reprezentowany przez macierz bitową.
Typ Żądanie
Odpowiedź <length><data> Macierz bitowa skojarzona z identyfikatorem 
ID kontenera wejściowego. 
!Niewłaściwy argument
Nie istnieje ciąg z ID kontenera wejściowego
?Coś innego poszło nie tak
Uwaga <input-container-ID> liczba od 00 do
09
<length>
9 cyfr jako wartość dziesiętna 
długości danych
<data> zawartość macierzy bitowej
2.2.12 Komenda L? (zwraca ID bieżącej sesji)
Komenda L?
Opis Zwraca ID bieżącej sesji
Typ Żądanie
Odpowiedź <ID>
Uwaga <ID>
3 digits with leading "0"
Przewodnik programisty
12
2.2.13 Komenda o (ustaw stan logiczny dla ID)
Komenda o<IO-ID><IO-state>
Opis Ustawia stan logiczny dla ID
Typ Akcja
Odpowiedź *
!Niewłaściwy stan (np. tryb konfiguracji)
?Niewłaściwa długość komendy
Uwaga <IO-ID>
2 cyfry oznaczające wyjście binarne:
"01" dla IO1
"02" dla IO2
<IO-state>
1 cyfra oznaczająca stan logiczny:
"0" dla stanu niskiego
"1" dla stanu wysokiego 
2.2.14 O? Komenda (podaj stan logiczny ID)
Komenda O<IO-ID>?
Opis Podaje stan logiczny dla konkretnego ID
Typ Żądanie
Odpowiedź <IO-ID><IO-state>
!Niewłaściwy stan (np. tryb konfiguracji)
Zły identyfikator ID
?Niewłaściwa długość komendy
Uwaga <IO-ID>
2 cyfry oznaczające wyjście binarne:
"01" dla IO1
"02" dla IO2
<IO-state>
1 cyfra oznaczająca stan logiczny:
"0" dla stanu niskiego
"1" dla stanu wysokiego
Urządzenie dopuszcza ID 1 i ID 2
13
Przewodnik programisty
PL
2.2.15 Komenda p (załącz / wyłącz wyjście interfejsu procesowego)
Komenda p<state>
Opis Załącza / wyłącza wyjście interfejsu 
procesowego
Typ Akcja
Odpowiedź *
! <state> contains wrong value
?Niewłaściwa długość komendy
Uwaga <state> 1 digit
0: dezaktywuje wszystkie wyjścia 
asynchroniczne
1: aktywuje asynchroniczne wyjście wyniku 
przetwarzania
2: aktywuje asynchroniczne wyjście sygnału 
błędu
3: aktywuje asynchroniczne wyjście sygnału 
błędu i danych
4: Aktywuje asynchroniczne powiadomienia
5: aktywuje asynchroniczne powiadomienia i 
asynchroniczne wyniku
6: aktywuje asynchroniczne powiadomienia i 
asynchroniczne wyjście błedu
7: aktywuje wszystkie wyjścia
Po restarcie urządzenia 
skonfigurowana wewnętrznie wartość 
parametrów aplikacji jest podstawą 
danych wyjściowych.
Ta komenda może być wykonywana 
w dowolnym stanie urządzenia.
Kody błędów nie są domyślnie 
wysyłane przez urządzenie.
2.2.16 Komenda S? (podaj bieżące statystyki dekodowania)
Komenda S?
Opis Podaje bieżące statystyki dekodowania
Typ Żądanie
Odpowiedź <number of results><t><number of positive
decodings><t><number of false decodings>
! Brak aktywnej aplikacji
Uwaga <t>
tabulator (0x09)
<number of results>
Obrazy zebrane od momentu startu
aplikacji. Dziesięciocyfrowa liczba dziesiętna 
rozpoczynająca się od "0"
<number of positive decodings>
Ilość wykonanych cykli dekodowania 
prowadzących do dodatniego wyniku. 
Dziesięciocyfrowa liczba dziesiętna 
rozpoczynająca się od "0"
<number of false decodings>
Ilość wykonanych cykli dekodowania 
prowadzących do ujemnego wyniku. 
Dziesięciocyfrowa liczba dziesiętna 
rozpoczynająca się od "0"
Przewodnik programisty
14
2.2.17 Komenda t (wykonaj wyzwolenie asynchroniczne)
Komenda t
Opis Wykonuje wyzwolenie. Dane
wynikowe są wysyłane 
asynchronicznie
Typ Akcja
Odpowiedź *Wyzwolenie zostało wykonane, urządzenie zbiera 
dane obrazu i przetwarza wynik.
!Urządzenie jest zajęte w trakcie przetwarzania
Urządzenie jest w stanie niewłaściwym do 
wykonania komendy, np. w trybie konfiguracji
Urządzenie jest ustawione na inne źródło 
wyzwalania
Brak aktywnej aplikacji
2.2.18 T? Komenda (wykonaj wyzwolenie synchroniczne)
Komenda T?
Opis Wykonuje wyzwolenie Dane
wynikowe są wysyłane 
synchronicznie
Typ Żądanie
Odpowiedź Dane procesowe w
skonfigurowanym formacie
Wyzwolenie zostało wykonane, urządzenie zbiera 
dane obrazu, przetwarza wynik i wysyła dane 
procesowe.
!Urządzenie jest zajęte w trakcie przetwarzania
Urządzenie jest w stanie niewłaściwym do 
wykonania komendy, np. w trybie konfiguracji
Urządzenie jest ustawione na inne źródło 
wyzwalania
Brak aktywnej aplikacji
2.2.19 Komenda v (ustaw bieżącą wersję protokołu)
Komenda v<version>
Opis Ustawia bieżącą wersję protokołu. Ustawienia 
konfiguracji urządzenia zostają niezmienione
Typ Akcja
Odpowiedź *
!Niewłaściwa wersja
?Niewłaściwa długość 
komendy
Uwaga <wersja>
2 znakowy numer wersji protokołu
Tylko wersja 3 protokołu jest 
obsługiwana
Ustawiona fabrycznie wersja protokołu to „V3". 
15
Przewodnik programisty
PL
2.2.20 V? Komenda (podaj bieżącą wersję protokołu)
Komenda V?
Opis Podaje bieżącą wersję protokołu
Typ Żądanie
Odpowiedź <current version><empty><min
version><empty><max version>
Uwaga <current version>
2 cyfry oznaczające bieżącą ustawioną 
wersję
<empty>
znak spacji: 0x20
<min/max version>
2 cyfry oznaczające dostępną do ustawienia 
wersję min. i maks.
Przewodnik programisty
16
2.3 Kody błędów
Kody błędów nie są domyślnie wysyłane przez urządzenie. Komenda p może aktywować ich dostępność 
(→ 2.2.15).
Lista ID kodów błędu Opis
100000001 Maksymalna ilość połączeń została przekroczona 
100000002 Błąd wewnętrzny w trakcie odwołania magistrali D-Bus
100000003 Nieznany błąd wewnętrzny
100000004 Ogólnie niewłaściwy parametr
100000005 Niewłaściwa komenda
100001000 Konfiguracja aplikacji nie pozwala na wyzwolenie interfejsu procesowego
100001001 Tryb wideo nie pozwala na wyzwolenie interfejsu procesowego
100001002 Brak skonfigurowanej aplikacji
100001003 Niewłaściwy identyfikator ID obrazu w komendzie I?
100001004 Niewłaściwy numer pinu w komendzie o/O?
100001005 Niewłaściwa konfiguracja pinów w komendzie o/O? 
100001006 Wybrano niewłaściwy typ konwersji
100001007 Do chwili obecnej nie było wyzwolenia
100001008 Brakująca ramka dekodowana
100001009 Nie ma więcej segmentów
100001010 Bit 4 komendy nie został ustawiony na 0
110001001 Przekroczony czas bootowania
110001002 Fatalny błąd oprogramowania
110001003 Nieznany sprzęt
100001004 Niewłaściwy numer pinu w komendzie o/O?
100001005 Niewłaściwa konfiguracja pinów w komendzie o/O?
110001006 Nakładające się wyzwolenia
110001007 Zmieniona została konfiguracja sieci Ethernet. Gniazdo zostanie 
zamknięte.
110002000 Zwarcie na wyjściu Ready for Trigger
110002001 Zwarcie na wyjściu OUT1
110002002 Zwarcie na wyjściu OUT2
110002003 Odwrotne zasilanie
110003000 Przekroczenie napięcia Vled
110003001 Zbyt niskie napięcie Vled
110003002 Przekroczenie napięcia Vmod
110003003 Zbyt niskie napięcie Vmod
110003004 Przekroczenie napięcia płyty głównej
110003005 Zbyt niskie napięcie płyty głównej
110003006 Przekroczenie napięcia zasilania
110003007 Zbyt niskie napięcie zasilania
110003008 Alarm VFEMon
110003009 Alarm zasilania PMIC
110004000 Przekroczenie temperatury oświetlacza
120000001 Serwer NTP niedostępny
120000002 inny błąd NTP
17
Przewodnik programisty
PL
3 EtherNet/IP
3.1 Struktury danych do zużycia i tworzenia podzespołów
Podzespoły
Rodzaj Bajty Typ
100 8 Zużycie (z punktu widzenia urządzenia: bufor danych do odbierania z PLC)
101 450 Wytwarzanie (z punktu widzenia urządzenia: bufor danych do wysyłania do PLC)
Układ danych w podzespole zużycia
Bajty 0-1 2-7
Opis Słowo komendy Dane komendy
Układ danych w podzespole wytwarzania
Bajt 0-1 2-3 4-5 6-7 8-15 16-449
Opis
Słowo komendy 
do powielania
(mirroringu)
identyfikator
wiadomości 
synchronicznej /
asynchronicznej
.. Licznik
wiadomości
Zarezerwowane
Wymagane dane
wiadomości (np.
kod błędu)
Niewymagane
pola danych
Układ danych w słowie komendy
Bit 0 1-15
Opis Bit błędu
Ten bit nie ma znaczenia w podzespole zużycia.
Jest on wykorzystywany do sygnalizacji błędu 
jaki wystąpił do sterownika PLC
Bity komendy
Każdy bit reprezentuje konkretną 
komendę
Słowo komendy
Bit01234567891011 12 13 14 15
Opis
Bit błędu
N.a.
N.a.
N.a.
N.a.
N.a.
Pobierz ostatni błąd
Pobierz ID połączenia
Pobierz statystyki
Aktywuj aplikację
Pokaż listę aplikacji
Pokaż stan IO
Ustaw stan IO
Wykonaj wyzwolenie
synchroniczne
Aktywuj wyjście 
asynchroniczne
interfejsu procesowego
N.a.
Identyfikator wiadomości synchronicznej / asynchronicznej
Bit 0 1-15
Opis Bit wiadomości asynchronicznej Bity dla identyfikatora wiadomości asynchronicznej
Rozmiar danych do wysłania przekracza rozmiar sekcji podzespołu procesowego
Jeżeli rozmiar danych przekracza skonfigurowany rozmiar sekcji podzespołu procesowego, to dane są 
obcinane. Nie jest to traktowane jako błąd.
Przewodnik programisty
18
3.2 Funkcjonalność aplikacji Ethernet/IP
Rozdział opisuje inicjalizację buforów podzespołów.
W trakcie inicjalizacji wszystkie bufory są ustawiane na 
0.
3.2.1 Zmiana stanu 0 -> 1 bitu komendy w podzespole zużycia
Jeżeli stan jednego z bitów komendy zmienia się z 0 na 1, wykonywana jest odpowiednia komenda 
przekazująca informację wewnątrz sekcji danych komendy.
3.2.2 Wielokrotne zmiany stanu
Jeżeli występuje przejście wielu bitów z 0 na 1, to zdarzenie jest obsługiwane jako błąd.
3.2.3 Reset stanu bitu komendy przez sterownik PLC
Sterownik PLC musi wyzerować bit komendy 1 -> 0 zanim może znowu wykonać nową komendę. 
Urządzenie musi zresetować słowo komendy i powiększyć licznik wiadomości w podzespole wytwarzania. 
3.2.4 Blokowanie wiadomości asynchronicznych
Dopóki nie została zakończona procedura potwierdzenia handshake komendy, nie ma możliwości 
wysłania wiadomości asynchronicznej przez interface Ethernet/IP. 
3.2.5 Odłączenie klienta
Jeżeli klient został rozłączony przed zakończeniem procedury handshake, to ta procedura jest kasowana 
i wszystkie bufory resetowane.
3.2.6 Ogólna odpowiedź na zastosowaną komendę
Po zastosowaniu komendy dane w sekcji danych są ważne i wykonanie komendy nie wywołuje błędu. 
Podzespół wytwarzania jest wypełniany jak poniżej:
Error bit = 0
Bity komendy = mirror - powtórzenie komendy wewnątrz podzespołu zużycia
Bit wiadomości asynchronicznej = 0
Identyfikator wiadomości asynchronicznej = 0 
Licznik wiadomości wzrasta o 1
Dane wiadomości ustawione na 0x0 
3.2.7 Odpowiedź na zastosowaną komendę - odpowiedź zawiera konkretne dane
Po zastosowaniu komendy dane w sekcji danych są ważne i wykonanie komendy nie wywołuje błędu. 
Podzespół wytwarzania jest wypełniany jak poniżej:
Error bit = 0
Bity komendy = mirror - powtórzenie komendy wewnątrz podzespołu zużycia
Bit wiadomości asynchronicznej = 0
Identyfikator wiadomości asynchronicznej = 0
Licznik wiadomości wzrasta o 1
Dane wiadomości zostają ustawione zgodnie z definicją komendy
19
Przewodnik programisty
PL
3.2.8 Odpowiedź na zastosowaną komendę z błędem w sekcji danych
Jeżeli zawartość sekcji danych komendy nie pasuje do komendy, to wiadomość jest obsługiwana jako 
błąd. Podzespół wytwarzania zawiera następujące dane:
Error bit = 1
Bity komendy = mirror - powtórzenie komendy wewnątrz podzespołu zużycia
Bit wiadomości asynchronicznej = 0
Identyfikator wiadomości asynchronicznej = 0
Licznik wiadomości wzrasta o 1
W sekcji danych nie jest wysyłany kod błędu. Kod błędu można pobrać komendą "get last error". 
3.2.9 Odpowiedź na zastosowaną komendę, która wywołuje błąd
Jeżeli wykonanie komendy prowadzi do błędu, to podzespół wytwarzania zawiera następujące dane:
Error bit = 1
Bity komendy = mirror - powtórzenie komendy wewnątrz podzespołu zużycia
Bit wiadomości asynchronicznej = 0
Identyfikator wiadomości asynchronicznej = 0
Licznik wiadomości wzrasta o 1
W sekcji danych nie jest wysyłany kod błędu. Kod błędu można pobrać komendą "get last error".
3.2.10 Odpowiedź na komendę niewykonaną
Jeżeli jest odebrany bit komendy bez funkcjonalności, podlega on zmianie z 0 na 1, a wiadomość jest 
obsługiwana jako błąd. Podzespół wytwarzania zawiera następujące dane:
Error bit = 1
Bity komendy = mirror - powtórzenie komendy wewnątrz podzespołu zużycia
Bit wiadomości asynchronicznej = 0
Identyfikator wiadomości asynchronicznej = 0
Licznik wiadomości wzrasta o 1
W sekcji danych nie jest wysyłany kod błędu. Kod błędu można pobrać komendą "get last error".
3.2.11 Zerowanie bitu błędu
Bit błędu będzie wyzerowany, jeżeli
kod błędu wywołanego przez komendę jest odzyskiwany z klienta
a błąd systemowy znika.
3.2.12 Funkcjonalność bitu wiadomości asynchronicznej
Jeżeli wiadomość zawiera dane asynchroniczne (wyniki ramek, błędy systemowe, itd.), to bit wiadomości 
asynchronicznej musi być ustawiony na 1.
Przewodnik programisty
20
3.2.13 Bity dla identykatora wiadomości asynchronicznej
Jeżeli wiadomość zawiera dane asynchroniczne, to identyfikator reprezentuje typ wiadomości 
asynchronicznej.
Numer zgłoszenia dla asynchronicznych kodów błędu wynosi 0.
Numer zgłoszenia dla asynchronicznych kodów błędu wynosi 1.
3.2.14 Licznik wiadomości
Dla każdej wiadomości wysłanej przez podzespół wytwarzania rośnie licznik wiadomości. Licznik 
rozpoczyna działanie od wartości 0. Po osiągnięciu wartości maksymalnej, ponownie zaczyna od 0.
3.2.15 Pobierz ostatni błąd
Komenda jest wykorzystywana do resetowania bitu błędu.
3.2.16 Pobierz ID połączenia
Komenda zwraca identyfikator połączenia bieżącego połączenia Ethernet/IP. Zawartość obowiązkowej 
sekcji danych podzespołu wytwarzania:
Bajty 0-3: Identyfikator połączenia ID, liczba całkowita 32-bitowa bez znaku
3.2.17 Pobierz statystyki
Komenda zwraca bieżące statystyki. Zawartość obowiązkowej sekcji danych podzespołu wytwarzania:
Bajty 0-3: ilość sumaryczna odczytów od początku działania aplikacji
Bajty 4-7: wykonane odczyty
Bajty 8-11: błędne odczyty
Wszystkie wartości są w postaci liczb całkowitych 
32-bitowych bez znaku
3.2.18 Domyślne ustawienie endianness
Domyślne ustawienie endianness jest w formacie little-endian.
3.2.19 Aktywuj aplikację
Komenda aktywuje aplikację definiowaną przez bajty 6 i 7 sekcji danych Bajty 2-5 powinny być ustawione 
na 0. Jeżeli bajty 2-5 nie są ustawione na 0, to zostaje zgłoszony błąd.
Zawartość danych podzespołu procesowego jest ustawiana na 0.
3.2.20 Pokaż listę aplikacji
Komenda zwraca listę bieżącej konfiguracji. Zawartość obowiązkowej sekcji danych podzespołu 
wytwarzania:
Bajty 0-3: Całkowita ilość zapamiętanych aplikacji, liczba całkowita 32 bitowa bez znaku
Bajty 4-7: ilość aktywnych aplikacji,  liczba całkowita 32 bitowa bez znaku
Bajty 8-n: zawsze liczba całkowita 32 bitowa bez znaku
  • Page 1 1
  • Page 2 2
  • Page 3 3
  • Page 4 4
  • Page 5 5
  • Page 6 6
  • Page 7 7
  • Page 8 8
  • Page 9 9
  • Page 10 10
  • Page 11 11
  • Page 12 12
  • Page 13 13
  • Page 14 14
  • Page 15 15
  • Page 16 16
  • Page 17 17
  • Page 18 18
  • Page 19 19
  • Page 20 20
  • Page 21 21
  • Page 22 22
  • Page 23 23
  • Page 24 24
  • Page 25 25
  • Page 26 26
  • Page 27 27
  • Page 28 28
  • Page 29 29
  • Page 30 30
  • Page 31 31
  • Page 32 32
  • Page 33 33
  • Page 34 34
  • Page 35 35

IFM O2D512 instrukcja

Typ
instrukcja
Niniejsza instrukcja jest również odpowiednia dla