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.

Kromě toho je zde mnoho inovací, které vám usnadňují programování a umožňují výkonný a paměťově úsporný kód.
 
U programů, které jsou převedeny pro řídicí jednotky S7-1200/1500, doporučujeme nepřevádět je jedna ku jedné, ale ověřit si nové možnosti a pokud je to možné, využít je. Námaha navíc není často velká a získáte programový kód, který je např:
 
  • 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

Některé pojmy se změnily, aby umožnily snadnější manipulaci s TIA portal.
 
Obrázek 2-1: Nové 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

Tabulka 2-1: 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.

Tabulka 2-2: Programovací jazyky
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

  1. Struktury jsou umístěny samostatně, a proto je lze kopírovat jako blok.
  2. 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

Tabulka 2-3: Přístup k datům řadiče S7-1500
  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ů.

Tabulka 2-4: Nastavení optimalizovaného přístupu k bloku
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/)

Tabulka 2-5: Rozdíly: Optimalizovaný a neoptimalizovaný datový blok
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.

Tabulka 2-6: Typy přístupu
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