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