2 Inovace S7-1200/S7-1500 (část 1)
!!! nedokončený článek v rozpracovaném stavu !!!
2.1 Úvod
Programování řídicích jednotek SIMATIC od S7-300/400 po S71500 zůstalo obecně stejné. Zůstávají známé programovací jazyky jako LAD, FBD, STL, SCL nebo graf a bloky, jako organizační bloky (OB), funkční bloky (FB), funkce (FC) nebo datové bloky (DB). Vytvořené programy S7-300/400 lze snadno implementovat na S7-1500 a existující programy LAD, FBD a SCL lze snadno implementovat na řídicích jednotkách S7-1200.
- optimální z hlediska paměti a doby běhu pro nové procesory,
- srozumitelnější,
- snadnější na údržbu.
Poznámka: Informace o přechodu z S7-300/S7-400 na S7-1500 naleznete v následující položce: https://support.industry.siemens.com/cs/ww/en/view/109478811 |
2.2 Pojmy (termíny)
Obecné pojmy v TIA portal
Pojmy pro tagy a parametry
Při práci s tagy, funkcemi a funkčními bloky se řada termínů opakovaně používá různě nebo dokonce nesprávně. Následující obrázek tyto pojmy objasňuje.
Obrázek 2-2: Pojmy pro tagy a parametry
Termín (pojem) |
Popis | |
1. | Tagy | Tagy jsou označeny jménem/identifikátorem a používají adresu v paměti řadiče. Tagy jsou vždy definovány s určitým datovým typem (Bool, Integer atd.): - PLC tagy - Jednotlivé tagy v datových blocích - Kompletní datové bloky |
2. | Hodnoty tagů | Hodnoty tagů jsou hodnoty uložené v tagu (například 15 jako hodnota celočíselného tagu). |
3. | Aktualní parametry | Aktuální parametry jsou tagy propojené na rozhraních instrukcí, funkcí a funkčních bloků. |
4. | Formální parametry (parametr přenosu, parametr bloku) |
Formální parametry jsou parametry rozhraní instrukcí, funkcí a funkčních bloků (Input, Output, InOut a Ret_Val). |
Poznámka: Další informace naleznete v následujících záznamech: Jaké položky jsou k dispozici na internetu pro přechod na STEP 7 (TIA Portal) a WinCC (TIA Portal)? https://support.industry.siemens.com/cs/ww/en/view/56314851 Jaké systémové požadavky musí být splněny pro migraci projektu STEP 7 V5.x do STEP 7 Professional (TIA Portal)? https://support.industry.siemens.com/cs/ww/en/view/62100731 Migrace PLC na S7-1500 pomocí STEP 7 (TIA Portal) https://support.industry.siemens.com/cs/ww/en/view/67858106 Jak lze efektivně a výkonně programovat v prostředí STEP 7 (TIA Portal) pro S71200/S7-1500? https://support.industry.siemens.com/cs/ww/en/view/67582299 Proč není možné u S7-1500 v STEP 7 (TIA Portal) kombinovat předávání registrů a explicitní přenos parametrů? V tomto příspěvku je mimo jiné popsána migrace STL programů na S7-1500. https://support.industry.siemens.com/cs/ww/en/view/67655405 |
2.3 Programovací jazyky
Pro programování uživatelského programu jsou k dispozici různé programovací jazyky. Každý jazyk má své výhody, které lze flexibilně používat v závislosti na aplikaci. Každý blok v uživatelském programu tak může být vytvořen v libovolném programovacím jazyce.
Programovací jazyk | S7-1200 | S7-1500 |
Žebříkový diagram Ladder diagram (LAD) |
Ano | Ano |
Funkční blokové schéma Function block diagram (FBD) |
Ano | Ano |
Strukturovaný řídicí jazyk Structured Control Language (SCL) |
Ano | Ano |
Graph | Ne | Ano |
Statement list (STL) | Ne | Ano |
Poznámka: Další informace naleznete v následujících záznamech: SIMATIC S7-1200 / S7-1500 Srovnávací seznam pro programovací jazyky na základě mezinárodní mnemotechniky https://support.industry.siemens.com/cs/ww/en/view/86630375 Na co byste si měli dát pozor při migraci programu S7-SCL v prostředí STEP 7 (TIA Portal)? https://support.industry.siemens.com/cs/ww/en/view/59784005 Které instrukce nemůžete použít v programu SCL v STEP 7 (TIA Portal)? https://support.industry.siemens.com/cs/ww/en/view/58002709 Jak definujete konstanty v programu S7-SCL v prostředí STEP 7 (TIA Portal)? https://support.industry.siemens.com/cs/ww/en/view/52258437 |
2.4 Optimalizovaný strojový kód
TIA Portal a S7-1200/1500 umožňují optimalizovaný běh v každém programovacím jazyce. Všechny jazyky se kompilují přímo do strojového kódu stejným způsobem.
Výhody
- Všechny programovací jazyky mají stejnou úroveň výkonu (pro stejné typy přístupu).
- Žádné snížení výkonu dodatečnou kompilací s mezikrokem prostřednictvím STL
Vlastnosti
Na následujícím obrázku je zobrazen rozdíl v kompilaci S7-programů ve strojovém kódu.
Obrázek 2-3: Vytváření strojového kódu pomocí S7-300/400/WinAC a S7-1200/1500
- U řídicích jednotek S7-300/400/WinAC se programy LAD a FBD nejprve zkompilují v jazyce STL a teprve poté se vytvoří strojový kód.
- U řídicích jednotek S7-1200/1500 se všechny programovací jazyky kompilují přímo do strojového kódu.
2.5 Vytváření bloků
Všechny bloky, jako jsou OB, FB a FC, lze programovat přímo v požadovaném programovacím jazyce. Pro programování SCL proto není třeba vytvářet žádný zdrojový kód. Stačí pouze vybrat blok a SCL jako programovací jazyk. Blok pak můžete programovat přímo.
Obrázek 2-4
2.6 Optimalizované bloky
Řídicí jednotky S7-1200/1500 mají optimalizované ukládání dat. V optimalizovaných blocích jsou všechny tagy automaticky seřazeny podle typu dat. Toto třídění zajišťuje, že mezery v datech mezi tagy jsou omezeny na minimum a že tagy jsou uloženy s optimalizovaným přístupem pro procesor.
Neoptimalizované bloky jsou k dispozici pouze z důvodu kompatibility v řídicích jednotkách S7-1200/1500.
Výhody
- Přístup probíhá vždy co nejrychleji, protože ukládání dat je optimalizováno systémem a je nezávislé na deklaraci.
- Nehrozí nebezpečí nekonzistence v důsledku chybného, absolutního přístupu, protože přístup je obecně symbolický.
- Změny deklarace nevedou k chybám v přístupu, protože například přístup k HMI je symbolický.
- Jednotlivé tagy lze specificky definovat jako retenční.
- V datovém bloku instance není nutné žádné nastavení. Vše je nastaveno v přiřazeném FB (například retentivita).
- Rezervy pro ukládání v datovém bloku umožňují změny bez ztráty aktuálních hodnot (viz kapitola 3.2.8 Stahování bez reinicializace).
2.6.1 S7-1200: Struktura optimalizovaných bloků
Obrázek 2-5
Vlastnosti
- Nevytvářejí se žádné datové mezery, protože větší tagy jsou umístěny na začátku bloku a menší na konci.
- U optimalizovaných bloků existuje pouze symbolický přístup.
2.6.2 S7-1500: Struktura optimalizovaných bloků
Obrázek 2-6
Obrázek 2-7
- Struktury jsou umístěny samostatně, a proto je lze kopírovat jako blok.
- Retenční data jsou umístěna v samostatné oblasti, a proto je lze kopírovat jako blok. V případě ztráty napětí jsou tato data uložena interně v procesoru. Funkce "MRES" resetuje tato data na počáteční hodnoty umístěné v paměti zatížení.
Vlastnosti
- Nevytvářejí se žádné datové mezery, protože větší tagy jsou umístěny na začátku bloku a menší na konci.
- Rychlejší přístup díky procesorově optimalizovanému ukládání (všechny tagy jsou uloženy tak, aby je procesor S7-1500 mohl přímo číst nebo zapisovat pouze jedním strojovým příkazem).
- Booleovské tagy jsou pro rychlejší přístup uloženy jako bajty. Řídicí jednotka tak nemusí přístup maskovat.
- Optimalizované bloky mají paměťovou rezervu pro načítání za chodu (viz kapitola 3.2.8 Stahování bez reinicializace).
- Pro optimalizované bloky existuje pouze symbolický přístup.
2.6.3 Ukládání dat optimalizované pro procesor S7-1500
Z důvodů kompatibility s prvními řídicími jednotkami SIMATIC byl v řídicích jednotkách S7-300/400 přijat princip ukládání dat "Big Endian".
Na základě změněné architektury procesoru přistupuje nová generace řadičů S7-1500 vždy ke 4 bajtům (32 bitů) v pořadí "Little-Endian". Na straně systému tak vznikají následující vlastnosti.
Obrázek 2-8
Standardní blok | Optimalizovaný blok | |
1. | V případě nepříznivého offsetu vyžaduje řídicí jednotka 2x16bitový přístup pro čtení 4bytové hodnoty (například hodnoty REAL). Kromě toho je třeba bajty otočit. |
Řadič ukládá značky přístupově optimalizované. Přístup je 32bitový (REAL). Otáčení bajtů není nutné. |
2. | Celý bajt je přečten a zamaskován pro každý bitový přístup. Celý bajt je blokován pro jakýkoli jiný přístup. |
Každému bitu je přiřazen bajt. Řadič nemusí při přístupu k bajtu maskovat. |
3. | Maximální velikost bloku je 64 kB. | Maximální velikost bloku může být až 16 MB. |
Doporučení
- Obecně používejte pouze optimalizované bloky.
- Nevyžadujete absolutní adresování a vždy můžete adresovat pomocí symbolických dat (souvisejících s objekty). Nepřímé adresování je možné i se symbolickými daty (viz kapitola 3.6.2 Datový typ ARRAY a nepřímý přístup k poli).
- Zpracování optimalizovaných bloků v řadiči je výrazně rychlejší než u standardních bloků.
- Vyhněte se kopírování/přiřazování dat mezi optimalizovanými a neoptimalizovanými bloky. Potřebná konverze dat mezi zdrojovým a cílovým formátem vyžaduje vysokou dobu zpracování.
Příklad: Nastavení přístupu k optimalizovaným blokům
Ve výchozím nastavení je optimalizovaný přístup k blokům povolen pro všechny nově vytvořené bloky pro S7-1200/1500. Přístup k blokům lze nastavit pro OB, FB a globální DB. Pro instance DB se nastavení odvíjí od příslušného FB.
Přístup k blokům se automaticky neresetuje, pokud je blok migrován z řídicí jednotky S7-300/400 na S7-1200/1500. Přístup k bloku můžete později změnit na "Optimalizovaný přístup k bloku". Po změně přístupu k bloku musíte program překompilovat. Pokud změníte FB na "Optimalizovaný blokový přístup", automaticky se aktualizují přiřazené datové bloky instance.
Při nastavování optimalizovaného přístupu k bloku postupujte podle pokynů.
Krok | Instrukce |
1. | Klikněte na tlačítko "Maximizes/minimizes the Overview” (Maximalizuje/minimalizuje přehled) ve stromu projektu. |
2. | Přejděte do části "Programové bloky". |
3. | Zde se zobrazí všechny bloky programu a informace o tom, zda jsou optimalizované, nebo ne. V tomto přehledu lze pohodlně změnit stav "Optimalizovaný přístup k blokům". OBRÁZEK Poznámka: Datové bloky instancí (zde "Function_block_1_DB") dědí status "optimized" od přidruženého FB. Proto lze nastavení "optimized" měnit pouze na FB. Po kompilaci projektu přebírá DB stav závislý na přidruženém FB. |
Zobrazení optimalizovaných a neoptimalizovaných bloků na portálu TIA
Na následujících dvou obrázcích jsou vidět rozdíly mezi optimalizovanou a neoptimalizovanou instancí DB.
U globální DB jsou rozdíly stejné.
Obrázek 2-9: optimalizovaný datový blok (bez offsetu /odsazení/)
Obrázek 2-10: neoptimalizovaný blok dat (s offsetem /odsazením/)
Optimalizovaný datový blok | Neoptimalizovaný datový blok |
Optimalizované datové bloky jsou adresovány symbolicky. Proto se nezobrazuje žádný "offset". | U neoptimalizovaných bloků se "offset" zobrazuje a lze jej použít pro adresování. |
V optimalizovaném bloku můžete každý tag deklarovat samostatně pomocí "Retain". | V neoptimalizovaných blocích lze pomocí "Retain" deklarovat pouze všechny nebo žádný tag. |
Retenční schopnost tagů globální DB je definována přímo v globální DB. Ve výchozím nastavení je přednastaveno "non-retain".
Retenci tagů instance definujte ve funkčním bloku (nikoli v DB instance). Toto nastavení je tedy platné pro všechny instance tohoto FB.
Typy přístupu pro optimalizované a neoptimalizované datové bloky
V následující tabulce jsou zobrazeny všechny typy přístupu k blokům.
Typ přístupu | Optimalizovaný blok | Neoptimalizovaný blok |
Symbolický | Ano | Ano |
Indexovaný (pole) | Ano | Ano |
Přístup k plátkům (Slice access) |
Ano | Ano |
AT instrukce | Ne (Alternativně: slice access) |
Ano |
Přímý absolutní | Ne (Alternativně: ARRAY with INDEX) |
Ano |
Nepřímý absolutní (ukazatel) | Ne (Alternativně: VARIANT/ARRAY with INDEX) |
Ano |
Načtení bez reinicializace | Ano | Ne |
Poznámka: Další informace naleznete v následujících záznamech: Jaké typy přístupů jsou k dispozici ve STEP 7 (TIA Portal) pro přístup k datovým hodnotám v blocích a na co byste si měli dát pozor při rozdílech mezi jednotlivými typy? https://support.industry.siemens.com/cs/ww/en/view/67655611 Na jaké vlastnosti byste si měli dát pozor ve STEP 7 (TIA Portal) u instrukcí "READ_DBL" a "WRIT_DBL" při použití DB s optimalizovaným přístupem? https://support.industry.siemens.com/cs/ww/en/view/51434747 |