Podstawy programowania sterowników Simatic S7-1200 w języku SCL
Książka jest kompleksowym kursem programowania nowoczesnych sterowników PLC w języku
SCL.
Autor przygotował 20 ćwiczeń-przykładowych projektów, na podstawie których
pokazuje jak rozwiązywać w języku SCL typowe problemy, na jakie napotykają
programiści systemów automatyki.
Autor książki jest absolwentem wydziału Elektroniki i Telekomunikacji oraz
Elektrotechniki Politechniki Białostockiej. Na codzień zajmuje się tworzeniem
oprogramowania dla sterowników przemysłowych firmy Siemens oraz przygotowaniem
wizualizacji na panele HMI. Jest także autorem kilku artykułów w „Elektronice dla
Wszystkich". Od 2015 roku na stronie www.mistrzplc.pl prowadzi blog na temat
programowania sterowników S7-1200 w języku S7-SCL. W wolnym czasie motocyklista i fan
polskiej motoryzacji.
Przedmowa 12
Wstęp. 15
1. Pierwsze kroki. 17
1.1 Własne bezpieczeństwo.18
1.2 Wsparcie techniczne.19
1.3 Instalacja i konfiguracja pakietu TIA Portal V1320
1.3.1 Opis części składowych środowiska TIA Portal. 21
1.3.2 Dostępna pomoc w środowisku 27
1.3.3 Konfiguracja środowiska. 28
1.4 Menadżer licencji.28
1.5 Automatyczne aktualizacje.28
1.6 Pierwszy projekt.29
1.6.1 Dodanie sterownika 29
1.6.2 Konfiguracja sterownika 31
1.6.3 Tworzenie funkcji i bloków danych. 33
1.6.4 Konfiguracja komputera PC 41
1.6.5 Podłączenie elektryczne sterownika 41
1.6.6 Programowanie sterownika. 44
1.6.7 Zadania 48
1.7 Sterowniki firmy Siemens48
1.7.1 Charakterystyka ogólna 48
1.7.1.1 Zestaw startowy – wprowadzenie do S7-120050
1.7.1.2 Rozbudowa sterownika51
1.7.1.3 Cykl programu oraz tryby pracy sterownika.54
1.7.2 Budowa wewnętrzna. 56
1.7.2.1 Pamięć56
1.7.2.2 Przerwania58
1.7.2.3 Timery61
1.7.2.3.1 Przerwania cykliczne.61
1.7.2.3.2 Licznik.62
1.7.2.3.3 PWM63
1.7.2.3.4 PTO65
1.7.2.3.5 Generowanie sprzętowych opóźnień.65
1.7.2.3.6 Przerwanie o określonej porze dnia.66
1.7.2.4 Zegar czasu rzeczywistego68
1.7.2.5 Przetwornik ADC.69
1.7.2.6 Watchdog – kontrola nad cyklem programu71
1.7.2.7 Błędy diagnostyczne73
1.7.2.8 Komunikacja74
1.7.2.9 Zabezpieczenia.75
1.7.2.10 Karta pamięci.76
1.7.2.11 Bootloader – zdalne programowanie.78
2. Język S7-SCL dla sterowników PLC. 79
2.1 Podstawy.80
2.1.1 Komentarze. 80
2.1.2 Typy zmiennych 81
2.1.2.1 Konwersja typów.84
2.1.3 Deklarowanie zmiennych.85
2.1.4 Deklarowanie stałych. 91
2.1.4.1 Stałe w PLC tags91
2.1.4.2 Stałe w blokach91
2.1.5 Zakres widoczności zmiennych 92
2.1.6 Operatory 93
2.1.6.1 Arytmetyczne.93
2.1.6.1.1 Modulo MOD94
2.1.6.2 Logiczne.95
2.1.6.3 Binarne.97
2.1.7 Priorytety operatorów. 106
2.1.8 Instrukcje sterujące. 107
2.1.8.1 Instrukcja warunkowa IF, ELSE107
2.1.8.2 CASE.OF.109
2.1.8.3 Pętla WHILE.DO. 110
2.1.8.4 Pętla REPEAT.UNTIL. 110
2.1.8.5 Pętla FOR. 111
2.1.8.6 Instrukcja EXIT. 112
2.1.8.7 Instrukcja CONTINUE 113
2.1.8.8 Instrukcja RETURN. 113
2.1.8.9 Instrukcja GOTO. 113
2.1.9 Tablice. 114
2.1.9.1 Tablice wielowymiarowe. 115
2.1.10 Struktury 116
2.1.11 Typ wyliczeniowy. 118
2.2 Programowanie zaawansowane119
2.2.1 Wskaźniki – adresowanie pośrednie 119
2.2.2 Funkcje timerowe 123
2.2.2.1 TP (Generate pulse).123
2.2.2.2 TON (Generate on-delay)124
2.2.2.3 TOF (Generate off-delay)124
2.2.2.4 TONR (Time accumulator)125
2.2.2.5 Funkcje wspomagające126
2.2.3 Funkcje licznikowe. 127
2.2.3.1 CTU (Count up).127
2.2.3.2 CTD (Counter down).127
2.2.3.3 CTUD (Count up and down).128
2.2.4 Funkcje matematyczne. 129
2.2.5 Funkcje konwersji liczb zmiennoprzecinkowych. 133
2.2.6 Funkcje konwersji łańcuchów znaków. 134
2.2.7 Wykrywanie zboczy sygnałów. 138
2.2.8 Podstawy regulacji 139
2.2.9 Diagnostyka 141
2.2.9.1 Odczyt statusu diod LED.141
2.2.9.2 Funkcja GET_DIAG().143
2.2.9.3 Funkcja GET_ERROR()144
2.2.10 Dzienniki zdarzeń 146
2.2.11 Koncepcja programowania 146
2.2.12 Wskazówki organizacji kodu w projekcie.154
3. Zarządzanie projektem.159
3.1 Wersjonowanie plików w TIA Portal 160
3.1.1 Biblioteka funkcji w projekcie 160
3.1.2 Projekt wzorcowy 166
3.2 Zewnętrzny system wersjonowania. 169
3.2.1 Konfiguracja. 170
3.2.2 Praca z SVN. 174
3.3 Struktura plików SCL 178
3.3.1 Bloki funkcji. 178
3.3.2 Bloki danych 181
3.3.3 Struktury 182
3.4 Migracja projektów 183
3.5 Generowanie dokumentacji. 186
3.6 Archiwizacja projektu. 187
4. Przykładowe zadania projektowe189
4.1 Debugowanie programu. 190
4.1.1 Opis pasków narzędzi. 190
4.1.1.1 PLC tags.190
4.1.1.2 Bloki OB, FC, FB192
4.1.1.3 Blok danych DB.195
4.1.2 Lista powiązań danych. 196
4.1.3 Szczegóły o kodzie programu. 196
4.1.3.1 Struktura wywołań.196
4.1.3.2 Drzewo zależności.197
4.1.3.3 Lista przypisań.198
4.1.3.4 Zasoby200
4.1.4 Połączenie się online ze sterownikiem 200
4.1.5 Porównanie projektu offline z online 203
4.1.6 Podgląd stanu konfiguracji sprzętowej. 203
4.1.7 Podgląd wykonywanego programu 204
4.1.8 Tablice wymuszeń. 205
4.1.9 Tablice monitorujące. 207
4.1.10 Praca z blokami danych DB 209
4.1.10.1 Przechwytywanie wartości.209
4.1.10.2 Ponowna inicjalizacja209
4.1.10.3 Download bez reinicjalizacji 211
4.1.11 Analizator logiczny. 212
4.1.12 Praca z projektem podczas połączenia online ze sterownikiem. 215
4.2 Diagnostyka i konfiguracja sterownika w trybie online. 216
4.2.1 Narzędzia online 216
4.2.2 Zakładka Diagnostics w oknie inspektora 217
4.2.3 Bufor diagnostyczny. 218
4.2.4 Czas cyklu. 218
4.2.5 Pamięć. 220
4.2.6 Interfejs PROFINET. 220
4.2.6.1 Adresy220
4.2.6.2 Porty.221
4.2.7 Nadanie adresu IP 221
4.2.8 Ustawienie czasu i daty 222
4.2.9 Aktualizacja firmware’u 222
4.2.10 Nadanie nazwy. 224
4.2.11 Przywrócenie ustawień fabrycznych. 224
4.3 Wyszukiwanie urządzeń w sieci 225
4.4 Upload programu ze sterownika do projektu. 226
4.5 Download w trybie RUN. 230
4.6 Symulator sterownika 232
4.7 Przyspieszenie pracy programisty 237
4.7.1 AutoSaver. 237
4.7.2 Podział obszaru roboczego 238
4.7.3 Najważniejsze skróty klawiaturowe 238
4.8 Tworzenie szablonu projektu 243
4.9 Ćwiczenia podstawowe 248
4.9.1 Kontrola furtki – rozgrzewka 248
4.9.2 Sterowanie wiertarką – operator AND 252
4.9.3 Kontrola oświetlenia – operator OR 255
4.9.3.1 Zadania.258
4.9.4 Popychacz – przerzutnik SR. 258
4.9.4.1 Zadania.261
4.9.5 Kontrola taśmociągu. 263
4.9.5.1 Zadania.267
4.9.6 Kontrola miejsc na parkingu – liczniki. 267
4.9.6.1 Zadania.274
4.9.7 Kontrola wiertarki – timer TON. 274
4.9.7.1 Zadania.275
4.9.8 Sygnalizacja ostrzegawcza – generator sygnału zegarowego. 275
4.9.8.1 Zadania.280
4.9.9 Przepompownia wody – maszyna stanów 280
4.9.9.1 Zadania.289
4.10 Ćwiczenia średnio zaawansowane. 290
4.10.1 Rejestracja osób w sklepie – sprzętowe przerwania. 290
4.10.1.1 Zadania.299
4.10.2 Otwieranie furtki oraz bramy – przerwania Time of day oraz Time delay interrupt.
299
4.10.2.1 Zadania.306
4.10.3 Oszczędne pomieszczenie – przetwornik ADC oraz przerwanie diagnostyczne. 306
4.10.3.1 Zadania.318
4.10.4 Sygnalizacja informacyjna – PWM. 319
4.10.4.1 Zadania.324
4.10.5 Linia technologiczna – sprzętowe szybkie liczniki. 326
4.10.5.1 Singel counter329
4.10.5.2 Frequency.333
4.10.5.3 A/B counter335
4.10.5.4 Programowa obsługa enkodera340
4.10.5.5 Zadania.342
4.10.6 Kocioł centralnego ogrzewania – regulator PID. 342
4.10.6.1 Dobór typu regulatora do obiektu348
4.10.6.2 Regulator PID_Compact350
4.10.6.3 Programowy regulator PID361
4.10.6.4 Zadania.376
4.10.7 Zdalne sterowanie – modbus TCP. 376
4.10.7.1 MODBUS serwer w sterowniku PLC377
4.10.7.2 MODBUS klient na komputerze klasy PC379
4.10.7.3 Zadania.381
4.10.8 Zdalne sterowanie – funkcja TSEND_C() oraz TRCV_C(). 382
4.10.8.1 Konfiguracja funkcji w sterowniku PLC.382
4.10.8.2 Wykorzystanie aplikacji testowej połączenia na komputerze klasy PC393
4.10.8.3 Zadania.395
4.10.9 Raportowanie procesu – serwer FTP. 395
4.10.9.1 Funkcje komunikujące się z serwerem396
4.10.9.2 Zapis danych na serwer398
4.10.9.3 Odczyt danych z serwera.407
4.10.9.4 Zadania.410
4.10.10Akwizycja danych – programowy RS-232. 411
4.10.10.1Opis protokołu.414
4.10.10.2Implementacja stałych.415
4.10.10.3Implementacja odbioru417
4.10.10.4Implementacja wysyłania.422
4.10.10.5Odczyt danych identyfikacyjnych sterownika.425
4.10.10.6Zadania.431
4.10.11Prezentacja sterownika – rozbudowa o płytkę sygnałową 431
4.10.11.1Program Demo.433
4.10.11.2Zadania.434
4.11 Zadanie – linia transportowa 434
5. Wstęp do wizualizacji.437
5.1 Konfiguracja Web Servera. 438
5.2 Standardowe strony Web Servera. 440
5.2.1 Introduction 440
5.2.2 Start 442
5.2.3 Identification 443
5.2.4 Diagnostic Buffer 443
5.2.5 Module Information 443
5.2.6 Communication 446
5.2.7 Variable Status. 447
5.2.8 File Browser. 448
5.2.8.1 DataLogs448
5.2.8.2 Recipes.449
5.2.9 User pages 449
5.3 Strony użytkownika. 449
5.3.1 Szablon strony 450
5.3.1.1 Rodzaj języka.451
5.3.1.2 Znaczniki dokumentu.451
5.3.1.3 Dołączanie informacji451
5.3.1.4 Treść strony452
5.3.2 Hello World – pierwsza strona użytkownika 452
5.3.3 Uruchomienie strony użytkownika 453
5.3.4 Polecenia AWP 456
5.3.4.1 Strona Read456
5.3.4.2 Strona Write.458
5.3.4.3 Strona Enum.460
5.4 Diagnostyka sterownika – projekt 462
5.4.1 Program w sterowniku 463
5.4.1.1 Warstwa sprzętowa463
5.4.1.1.1 Moduł Digital IO.464
5.4.1.1.2 Moduł LED464
5.4.1.1.3 Moduł RDREC464
5.4.1.1.4 Moduł Runtime.465
5.4.1.1.5 Moduł Set IP466
5.4.1.1.6 Moduł Other.468
5.4.1.2 Warstwa wizualizacji.469
5.4.1.2.1 Moduł Digital IO.469
5.4.1.2.2 Warstwa Error470
5.4.1.2.3 Moduł IP471
5.4.1.2.4 Moduł LED472
5.4.1.2.5 Moduł PLC Identification472
5.4.1.2.6 Moduł Runtime.473
5.4.1.2.7 Moduł Stop PLC473
5.4.1.3 Warstwa błędów.473
5.4.1.3.1 Moduł GetError.473
5.4.1.3.2 Moduł OB479
5.4.1.3.3 Moduł SoftwareError.481
5.4.1.3.4 Moduł Diagnostic Buffer.484
5.4.1.3.5 Moduł Check Error484
5.4.1.3.6 Moduł Reset.485
5.4.1.4 Warstwa logiczna.487
5.4.1.4.1 Moduł Digital IO.487
5.4.1.4.2 Moduł PLC Identification488
5.4.1.4.3 Moduł IP490
5.4.1.4.4 Moduł LED497
5.4.1.4.5 Moduł Runtime.497
5.4.1.4.6 Moduł Stop PLC498
5.4.2 Konfiguracja i uruchomienie. 498
5.4.3 Strona www 499
5.4.3.1 Strona Login.499
5.4.3.2 Strona Info502
5.4.3.3 Strona Digital IO503
5.4.3.4 Strona Set IP503
5.4.3.5 Strona Error.503
5.4.4 Zadania 505
5.5 Projekt inteligentny dom 506
5.5.1 Schemat elektryczny. 507
5.5.2 Warstwa sprzętowa 510
5.5.2.1 Moduł DataLog510
5.5.2.2 Moduł Digital IO.515
5.5.2.3 Moduł HSC515
5.5.2.4 Moduł PLC Time516
5.5.2.5 Moduł PWM517
5.5.2.6 Moduł Recipe.517
5.5.3 Warstwa wizualizacji 519
5.5.3.1 Moduł Digital IO.519
5.5.3.2 Warstwa Error519
5.5.3.3 Moduł Light.519
5.5.3.4 Moduł PLC Time521
5.5.3.5 Moduł Temperature522
5.5.4 Warstwa błędów. 523
5.5.5 Warstwa logiczna. 523
5.5.5.1 Moduł ADC.523
5.5.5.2 Moduł DataLog525
5.5.5.3 Moduł Digital IO.531
5.5.5.4 Moduł Light Control531
5.5.5.4.1 Receptury.537
5.5.5.4.2 Sceny544
5.5.5.5 Moduł PLC Time548
5.5.6 Konfiguracja i uruchomienie. 550
5.5.7 Strona www. 551
5.5.7.1 Strona Login.551
5.5.7.2 Strona Info551
5.5.7.3 Strona Light551
5.5.7.4 Strona Time555
5.5.7.5 Strona Error.555
5.5.8 Zadania 555
5.6 Testy jednostkowe 556
5.6.1 Przykład praktyczny. 556
5.6.2 Zadania 559
5.7 Zadanie – sudoku 559
Bibliografia 561
564 stron, Format: 17.0x24.5cm, oprawa twarda