Przewodnik programisty
2
Zawartość
1 Uwagi wstępne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.1 Stosowane symbole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.2 Prawa autorskie i znaki towarowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.3 Open source information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2 Interfejs procesowy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2.1 Wysyłanie komend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2.2 Lista komend interfejsu procesowego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
2.2.1 Komenda a (aktywuj aplikację). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .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? (zwraca bieżącą konfigurację interfejsu procesowego) . . . . . . . . . . . . . . . . . . .8
2.2.5 Komenda E? (żądanie podania bieżącego stanu błędu) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
2.2.6 Komenda g (załącz / wyłącz bramkowane wyzwalanie softwarowe) . . . . . . . . . . . . . . . . . . . .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? (podaje ID bieżącej sesji) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.13 Komenda o (ustaw stan logiczny ID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
2.2.14 Komenda O? (podaj stan logiczny ID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
2.2.15 Komenda p (załącz / wyłącz wyjście interfejsu procesowego) . . . . . . . . . . . . . . . . . . . . . . .13
2.2.16 Komenda S? (żądanie podania bieżących statystyk dekodowania). . . . . . . . . . . . . . . . . . .13
2.2.17 Komenda t (wykonaj wyzwolenie asynchroniczne) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2.2.18 Komenda T? (wykonaj wyzwolenie synchroniczne) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2.2.19 Komenda v (ustaw bieżącą wersję protokołu) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2.2.20 Komenda V? (podaj bieżącą wersję protokołu) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
2.3 Kody błędów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
3 EtherNet/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
3.1 . Struktury danych dla podzespołów zużycia i wytwarzania . . . . . . . . . . . . . . . . . . . . . . . . . . . . .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 bitów przez 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 3.2.10 Odpowiedź na komendę niewykonaną19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .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 Pobierz 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 asynchroniczne wyjście interfejsu procesowego. . . . . . . . . . . . . . . . . . . . . . . . . . .21
3.3 Sekwencja sygnału dla wyzwalania synchronicznego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
3.4 Sekwencja sygnału przy błędzie wyzwolenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22