1. Programowalne sterowniki i panele operatorskie stosowane w automatyce 11
1.1. Ogólne zasady budowy i działania sterowników 12
1.2. Podstawowe parametry sterowników S7-1200 i S7-1500 15
1.3. Ogólne dane o panelach operatorskich 18
1.4. Charakterystyka paneli operatorskich SIMATIC HMI 20
1.5. Procedura projektowania nowego ekranu 22
1.5.1. Wybór obiektów na ekranie 25
1.5.2. Fizyczne przyciski funkcyjne 26
1.5.3. Zdarzenia 27
1.5.4. Animacje obiektów 30
1.5.5. Właściwości dodatkowe 31
2. Podstawy działania sterownika 33
2.1. Architektura sterowników SIMATIC S7 38
2.1.1. Model jednostki centralnej 39
2.1.2. System wykonawczy i typy bloków organizacyjnych 39
2.1.3. Priorytetowość 41
2.1.4. Model pamięci 41
2.1.5. Architektura blokowa – strukturyzacja oprogramowania 43
2.2. Typy bloków 48
2.3. Przechowywanie danych, obszary pamięci i adresowanie 52
2.4. Typy danych 58
2.5. Środowisko programistyczne sterownika 62
2.6. Uruchamianie sterownika 64
2.7. Symulator pracy sterownika 67
2.8. Języki programowania w środowisku STEP7 69
2.9. Typy adresowania 71
2.10. Definiowanie zmiennych globalnych i lokalnych oraz stałych 72
3. Język tekstu strukturalnego 75
3.1. Podstawowe elementy języka tekstu strukturalnego 76
3.2. Wyrażenia języka tekstu strukturalnego 77
3.3. Operatory języka tekstu strukturalnego 79
3.4. Konwersja typu zmiennych 79
3.5. Instrukcje w języku tekstu strukturalnego 80
3.6. Wywołanie funkcji i bloków funkcji w języku SCL 92
4. Instrukcje podstawowe i przykłady ich zastosowań 95
4.1. Podstawowe wyrażenia logiczne (Bit logic operations) 97
4.2. Biblioteka zegarów (Timer operations) 100
4.2.1. Generator impulsu TP o określonym czasie trwania 103
4.2.2. Zegar opóźnienia załączenia TON o określony czas 104
4.2.3. Opóźnienie wyłączenia TOF o określony czas 105
4.2.4. Opóźnienie załączenia TONR po zsumowanym czasie 107
4.2.5. Przykłady wykorzystania zegarów 108
4.3. Biblioteka liczników (Counter operations) 109
4.3.1. Licznik zliczający w górę CTU 110
4.3.2. Licznik zliczający w dół CTD 111
4.3.3. Licznik zliczający w górę i w dół CTUD 112
4.3.4. Przykłady zastosowań liczników 114
4.4. Instrukcje funkcji matematycznych (Math functions) 116
4.4.1. Deklaracja tablic i wpisywanie do nich danych 117
4.4.2. Działania na macierzach 120
4.5. Instrukcje przenoszenia bloku danych (Move operations) 123
4.5.1. Instrukcje przenoszenia obszarów danych MOVE_BLK i UMOVE_BLK 123
4.5.2. Instrukcje wypełniania tablic FILL_BLK i UFILL_BLK 125
4.5.3. Instrukcja alokacji bajtów w danych SWAP 126
4.5.4. Tablicowe bloki danych (Array data blocks) 127
4.6. Adresowanie pośrednie (Move operations) 128
4.6.1. Indeksowanie pośrednie tablic 128
4.6.2. Instrukcje z biblioteki Move operations do adresowania pośredniego 129
4.7. Operacje konwersji danych (Conversion operations) 131
4.7.1. Konwersja typu danych CONVERT 132
4.7.2. Zaokrąglanie liczby zmiennoprzecinkowej ROUND 132
4.7.3 Zaokrąglanie liczby zmiennoprzecinkowej w górę CEIL 133
4.7.4. Zaokrąglanie liczby zmiennoprzecinkowej w dół FLOOR 133
4.7.5. Zaokrąglanie przez obcięcie TRUNC 134
4.7.6. Skalowanie SCALE_X 134
4.7.7. Normalizacja NORM_X 135
4.7.8. Przykład normalizacji i skalowania toru zadawania impulsów do silnika skokowego 136
4.7.9. Konwersja wskaźnika VARIANT na wskaźnik
DB_ANY VARIANT_TO_DB_ANY 136
4.7.10. Konwersja wskaźnika DB_ANY na wskaźnik
VARIANT DB_ANY_TO_VARIANT 138
4.8. Operacje logiczne na słowach (Word logic operations) 138
4.8.1. Ustawianie w słowie bitu na stan wysoki DECO 138
4.8.2. Odczytanie adresu w słowie najmniej znaczącego bitu o wysokim stanie ENCO 139
4.8.3. Kopiowanie jednego z dwóch wejść na wyjście SELECT 140
4.8.4. Kopiowanie jednego z wielu parametrów wejściowych na wyjście MUX 140
4.8.5. Kopiowanie wartości wejścia na wybrane wyjście DEMUX 141
4.9. Operacje przesuwania i rotacji danych (Shift and Rotate) 141
4.10. Instrukcje dodatkowe (Additional instructions) 142
4.10.1. Realizacja sekwensera DRUM 143
4.10.2. Dyskretny alarm na czas trwania stanu DCAT 144
4.10.3. Alarm sterowany czasem trwania stanu MCAT 145
4.10.3. Porównanie wektora z maską IMC 146
4.10.4. Porównanie macierzy bitów z macierzą maski SMC 147
4.10.5. Kompensator całkująco-różniczkujący LEAD_LAG 147
4.10.6. Konwersja słowa na ciąg bitów dla wyświetlacza siedmiosegmentowego SEG 148
4.10.7. Dopełnienie do dziesięciu 7-cyfrowej liczby w kodzie BCD BCDCPL 149
4.10.8. Określanie liczby ustawionych bitów w słowie BITSUM 149
4.11. Konfiguracja analogowego toru pomiarowego 149
5. Instrukcje rozszerzone i przykłady ich zastosowań 159
5.1. Instrukcje operujące na czasie i kalendarzu (Date and time-of-day) 160
5.1.1. Konwersja jednostek czasu T_CONV 163
5.1.2. Suma arytmetyczna jednostek czasu T_ADD 164
5.1.3. Różnica arytmetyczna jednostek czasu T_SUB 164
5.1.4. Różnica czasu między zmiennymi czasu T_DIFF 165
5.1.5. Scalanie zmiennych czasu T_COMBINE 165
5.1.6. Ustawienie daty i czasu zegara w CPU – WR_SYS_T 166
5.1.7. Odczytanie daty i czasu zegara w CPU – RD_SYS_T 166
5.1.8. Odczytanie czasu lokalnego – RD_LOC_T 167
5.1.9. Ustawienia czasu lokalnego – WR_LOC_T 167
5.1.10. Ustawienie strefy czasowej i czasu letniego, obliczenie czasu lokalnego – SET_TIMEZONE 167
5.1.11. Synchronizacja zegaru slave – SNC_RTCB 169
5.1.12. Odczyt czasu systemowego – TIME_TCK 169
5.1.13. Pomiar czasu pracy – RTM 169
5.2. Instrukcje operujące na znakach i łańcuchach znaków String + Char 170
5.2.1. Konwersja znaków i łańcuchów znaków S_CONV 170
5.2.2. Konwersja łańcucha znaków na tablicę zmiennych – Strg_TO_Chars 172
5.2.3. Konwersja tablicy zmiennych na łańcuch znaków – Chars_TO_Strg 172
5.2.4. Konwersja łańcucha znaków na ciąg liczb szesnastkowych – ATH 173
5.2.5. Konwersja ciągu liczb szesnastkowych na łańcuch znaków – HTA 173
5.2.6. Długość łańcucha znaków – LEN 174
5.2.7. Połączenie łańcuchów – CONCAT 174
5.2.8. Odczytanie znaków z lewej strony łańcucha – LEFT 174
5.2.9. Odczytanie znaków z prawej strony łańcucha – RIGHT 175
5.2.10. Odczytanie znaków ze środka łańcucha – MID 175
5.2.11. Usunięcie elementów z łańcucha – DELETE 175
5.2.12. Wstawienie znaków do łańcucha – INSERT 176
5.2.13. Zastąpienie elementów w łańcuchu REPLACE 176
5.2.14. Wyszukanie elementów w ciągu FIND 177
5.3. Odświeżanie i synchronizacja obrazu procesu (Process image) 177
5.4. Instrukcje obsługi rozproszonych wejść/wyjść (Distributed I/O) 178
5.5. Oszczędzanie energii (PROFIenergy) 183
5.6. Zapisywanie i transfer rejestrów danych (Module parameter assignment) 187
5.7. Instrukcje obsługi przerwań (Interrupts) 188
5.7.1. Przerwania sprzętowe – instrukcje ATTACH i DETACH 189
5.7.2. Przerwania cykliczne – instrukcje SET_CINT, QRY_CINT 193
5.7.3. Opóźnione przerwania – Time-delay interrupt 196
5.7.5. Przerwania zdarzeń błędów asynchronicznych – instrukcje DIS_IRT,
EN_IRT, DIS_AIRT i EN_AIRT 200
5.8. Alarmy (Alarming) 202
5.9. Instrukcje diagnostyczne (Diagnostics) 204
5.9.1. Instrukcja odczytu statusu diod LED w sterowniku – LED 204
5.9.2. Instrukcja odczytu statusu urządzeń wejścia/wyjścia – DeviceStates 207
5.9.3. Instrukcja odczytu statusu modułów wejścia/wyjścia – ModuleStates 208
5.9.4. Instrukcja odczytu bufora diagnostycznego – GET_DIAG i GEN_DIAG 209
5.10. Instrukcja generowania receptur i dziennika danych 211
5.11. Instrukcje sterowania danymi (Data block control) 215
5.12. Instrukcje konwertowania adresowania (Addressing) 216
5.13. Instrukcja generowania impulsów (Pulse) 218
6. Instrukcje technologiczne 223
6.1. Układ regulacji i rola elementu wykonawczego 224
6.2. Osie, napędy i enkodery 227
6.3. Sterowanie silnikiem skokowym 236
6.4. Zestaw instrukcji do sterowania ruchem (Motion Control) 250
6.5. Instrukcja sterowania szybkim licznikiem i wyjście impulsowe 267
6.5.1. Instrukcja szybkiego licznika CTRL_HSC w sterowniku S7-1200 267
6.5.2. Konfiguracja wyjścia PTO/PWM w sterowniku S7-1200 270
6.5.3. Moduły technologiczne i instrukcja High_Speed_Counters
w sterowniku S7-1500 272
6.6. Konfiguracja osi w zakładce Technological Objects dla S7-1200 281
6.7. Konfiguracja osi w zakładce Technological Objects dla S7-1500 290
6.8. Instrukcja regulatora PID_Compact w sterownikach S7-1500 299
6.8.1. Konfiguracja regulatora PID_Compact 305
6.8.1.1. Parametry podstawowe 305
6.8.1.2. Ustawienia zaawansowane 307
6.8.2. Uruchomienie regulatora PID_Compact 310
6.8.2.1. Samodostrajanie parametrów podczas uruchamiania regulatora 310
6.8.2.2. Samodostrajanie parametrów regulatora w czasie pracy 311
6.8.2.3. Wizualizacja sygnałów 311
6.9. Wykorzystanie analizatora przebiegów sygnału wejściowego i wyjściowego do badania obiektu wirtualnego 312
6.10. Sterowanie obiektem wirtualnym z wykorzystaniem regulatora
PID_Compact 317
6.10.1. Model obiektu wirtualnego 317
6.10.2. Zastosowanie regulatora PID_Compact do sterowania wirtualnym obiektem 321
6.11. Sterowanie obiektem wirtualnym z wykorzystaniem własnego regulatora PID z algorytmem prędkościowym 324
6.11.1. Dobór nastaw regulatora PID z algorytmem prędkościowym metodą Chiena–Hronesa–Reswicka 326
6.11.2. Dobór nastaw regulatora PID z algorytmem prędkościowym metodą Zieglera–Nicholsa 329
6.11.3. Dobór nastaw regulatora PID z algorytmem prędkościowym metodą Cohen–Coona 331
7. Instrukcje komunikacyjne 335
7.1. Synchronizacja czasowa pomiędzy urządzeniami w sieci 338
7.2. Komunikacja między dwoma sterownikami S7-1200 348
7.2.1. Założenia programowe 350
7.2.2. Opis programu 351
7.2.2.1. Program sterownika aktywnego PLC_1 (CPU 1214C) 352
7.2.2.2. Program sterownika pasywnego PLC_2 (CPU 1212C) 362
7.2.2.3. Program panelu operatorskiego HMI_1 (KTP 400 Basic) 368
7.3. Zdalna komunikacja ze sterownikiem za pomocą routera eWON 371
7.3.1. Typy routerów eWON 371
7.3.2. Tworzenie połączenia ze sterownikiem 372
7.4. Komunikacja przy użyciu WEB Servera 384
7.4.1. Aktywacja WEB Servera w TIA Portal 384
7.4.2. Standardowe strony WEB 385
7.4.3. Projektowanie strony użytkownika 392
7.4.3.1. Procedura tworzenia stron użytkownika 394
7.4.3.2. Podstawowe informacje o HTML 395
7.4.3.3. Podstawowe informacje o CSS 396
7.4.3.4. Polecenia AWP 399
7.4.3.5. Konfiguracja stron użytkownika 403
7.4.4. Przykładowa strona użytkownika 406
7.5. Komunikacja PLC ze smartfonem pracującym pod systemem Android 412
7.5.1. Struktura aplikacji 413
7.5.2. Ekrany 413
7.5.3. Połączenie ze sterownikiem 421
7.6. Implementacja sterowania głosowego w sterowniku PLC 422
7.6.1. Moduł EasyVR i interfejs 423
7.6.2. Programowanie modułu EasyVR 425
7.6.3. Interfejs RS-232 426
7.6.4. Opis magistrali interfejsu 427
7.6.5. Komunikacja Point-to-Point 429
7.6.5.1. Konfiguracja portów modułu komunikacyjnego RS-232 430
7.6.5.2. Konfiguracja parametrów nadawczych 433
7.6.5.3. Konfiguracja parametrów odbiorczych 435
7.6.5.4. Instrukcje komunikacyjne Send_P2P i Receive_P2P 440
7.6.5.5. Instrukcje pomocnicze 441
7.6.5.6. STATUS i kody błędów 442
7.6.6. Analiza sygnałów podczas komunikacji z EasyVR 444
7.6.6.1. Analiza poprawnie wykonanej transmisji z rozpoznaniem głosu 445
7.6.6.2. Analiza niepoprawnych transmisji rozpoznania głosu 445
7.6.7. Program do komunikacji sterownika PLC z modułem EasyVR 446
7.6.8. Program sterowania głosowego modułem dla sterownika PLC 447
Podsumowanie 451
Dodatki 453
Dodatek A. Typy danych obsługiwane przez S7-1200/1500 454
Dodatek B. Wykaz programów zamieszczonych na serwerze Wydawnictwa BTC 458
Spis literatury 459
Indeks 462