ON-LINE ZMNA PROGRAMU



Podobné dokumenty
Knihovna GalaxyLib TXV druhé vydání srpen 2012 změny vyhrazeny

Knihovna SolarMonitorLib

Knihovna DataBoxLib TXV první vydání prosinec 2010 změny vyhrazeny

PÍRUKA A NÁVODY PRO ÚELY: - RUTINNÍ PRÁCE S DATY

!"!# TECOREG. Tento dokument lze poskytnout firmám v $%&'(%)*+, nebo se vypne a zapne napájení systému Tecoreg. KEYREG.

Aplikační profily v PLC Tecomat

Knihovna WebGraphLib

Správa obsahu ízené dokumentace v aplikaci SPM Vema

IMPORT DAT Z TABULEK MICROSOFT EXCEL

Zbytky zákaznického materiálu

Knihovna DMX512lib Komunikace protokolem DMX512. TXV prvé vydání srpen 2010 změny vyhrazeny

Knihovna EpsnetLib TXV první vydání září 2012 změny vyhrazeny

Knihovna JablotronLib TXV druhé vydání květen 2014 změny vyhrazeny

Cykly Intermezzo. FOR cyklus

DUM. Databáze - úvod

Knihovna ParadoxLib TXV druhé vydání březen 2013 změny vyhrazeny

Knihovna XmlLib TXV první vydání prosinec 2010 změny vyhrazeny

Knihovna XBMCLib TXV druhé vydání květen 2014 změny vyhrazeny

P ehled nep ítomnosti

Knihovna XmlLib TXV druhé vydání říjen 2012 změny vyhrazeny

První kroky s METEL IEC IDE

Každý datový objekt Pythonu má minimáln ti vlastnosti. Identitu, datový typ a hodnotu.

Knihovna LightsLib TXV první vydání prosinec 2011 změny vyhrazeny

IP kamera. Uživatelský manuál

Ing. Jaroslav Halva. UDS Fakturace

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

TopoL sbr bod pro AAT

Prezentaní program PowerPoint

KUSOVNÍK Zásady vyplování

Uživatelský manuál aplikace. Dental MAXweb

Knihovna XmlLibEx TXV druhé vydání prosinec 2013 změny vyhrazeny

Úvodní studie (pokraov

PRÁCE S GRAFICKÝMI VÝSTUPY SESTAV

Průvodní zpráva k projektu

Promnné. [citováno z

Pedání smny. Popis systémového protokolování. Autor: Ing. Jaroslav Halva V Plzni Strana 1/6

Návod ke cvičení předmětu BPGA ControlLogix

Instalace multiimportu

VYTVÁENÍ VÝBROVÝCH DOTAZ

Roenka absolvent. Nápovdu k ostatním modulm naleznete v "Pehledu nápovd pro Apollo".

Univerzální ovlada LP20 DÁLKOVÝ OVLADA S MOŽNOSTÍ UENÍ SE OD PVODNÍCH OVLADA

ZAČÍNÁME V PROSTŘEDÍ MOSAIC

Automaty. Modelování chování systému pomocí automatu. Automat vyjádený grafem. Prostedek k programování složitjších, víceúlohových aplikací

Ladící pípravek DisplayKit

Lokality a uživatelé

1 Píklady popisu typických konstrukcí

ZAČÍNÁME V PROSTŘEDÍ MOSAIC

QAW910. Prostorová jednotka. Building Technologies HVAC Products

Knihovna LG_HVAC_Lib

NÁVOD K OBSLUZE NEZÁVISLÉHO NAFTOVÉHO TOPENÍ S RUNÍM OVLÁDÁNÍM III

1. BEZPE NOSTNÍ ZÁSADY STRU NÝ POPIS SYSTÉMU ZÁKLADNÍ VLASTNOSTI VYSV TLENÍ POJM NÁZVY A FUNKCE JEDNOTLIVÝCH DÍL..

Aditivní barevný model RGB pidává na erné stínítko svtla 3 barev a tak skládá veškeré barvy. Pi použití všech svtel souasn tak vytvoí bílou.

POPIS TESTOVACÍHO PROSTEDÍ 1 ZÁLOŽKA PARSER

Knihovna TecoRouteLib

Datový typ POLE. Jednorozmrné pole - vektor

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

A. TBOS SYSTEM. 1. Popis systému TBOS. 3. Vlastnosti: TBOS verze UNIK verze UNIK. (stará verze) (stará verze) cívka 9V. 2. Doplky.

Nový InfoFIT. Manuál k systému Alfresco DMS. Obsah. Úvod. Pihlášení do systému pes webové rozhraní

Diagnostika u voz s 2-místnými diagnostickými kódy

1. Signatura datového typu

Bezpe nostní moduly SIRIUS 3SK1. Siemens Zm ny a práva vyhrazeny.

Gymnázium. Kromíž. Zpracování textu. Word 1 SIPVZ-modul-P0

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Prostorové teplotní idlo

CM-TCS.11, CM-TCS.12, TM-TCS.13 CM-TCS.21, CM-TCS.22, TM-TCS.23. Návod k obsluze a montáži. Teplotní monitorovací relé ady CM

Párování. Nápovdu k ostatním modulm naleznete v "Pehledu nápovd pro Apollo".

Nastavení synchronizace asu s internetovými servery. MS Windows XP

Dokumentaní píruka k aplikaci. Visor: Focení vzork. VisorCam. Verze 1.0

Stručný postup k použití programu PL7 Junior (programování TSX Micro)

Nástroj PanelMaker a PanelSIM

CENTRÁLNÍ REGULAČNÍ SYSTÉM PŘÍRUČKA UŽIVATELE

1 Seznámení s prostředím MOSAIC

DANDO S.R.O č.t X-BAR. Elektromechanická závora. Návod k inštalácii a obsluhe

Komunikace modulu s procesorem SPI protokol

Pídavný modul rozvaha lze vyvolat z hlavní nabídky po stisku tlaítka Výkazy / pídavné moduly.

1 VERZE DOKUMENTU VERZE SOFTWARE ZÁKLADNÍ POPIS ZÁKLADNÍ P EHLED HYDRAULICKÝCH SCHÉMAT HYDRAULICKÁ SCHÉMATA...

MIDAM Simulátor Verze 1.5

Knihovna ServoLib Řízení servopohonu bez zpětné vazby. TXV první vydání březen 2009 změny vyhrazeny

Knihovna ConvertLib TXV první vydání září 2013 změny vyhrazeny

íslo jednací: /14 íslo žádosti: Dvod vydání Vyjádení : Stavební ízení

IM151-8 PN/DP CPU 6ES7151-8AB00-0AB0

Postup efektování jednotlivých part

Základní pojmy klasického sudoku hlavolamu. Techniky odkrývání bunk. Technika Naked Single. Technika Hidden Single

Dodatek dokumentace KEO-Moderní kancelá verze 7.40

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

ATEUS - APS MINI HELIOS SET

Bezdrátový zásuvkový adaptér, stmíva

Návod k použití. O 2 TV Nahrávání

8 Makra Příklad 4 Excel 2007

Knihovna pro GSM TXV šesté vydání Prosinec 2010 změny vyhrazeny

Knihovna CoolMasterLib

Ing. Michal Martin. Spojení PLC CLICK s NA-9289

UNIMA-KS vf wobbler. Návod na obsluhu vysokofrekven ního wobbleru k PC. UNIMA-KS vf wobbler. 1MHz-1GHz

MOVIDRIVE M!ni" pro pohony Dodatek k návodu k obsluze. 1 Podporované typy p#ístroj$ 2 Montáž volitelné, dopl%kové desky

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Obsah Úvod...2 Slovníek pojm Popis instalace...3 Nároky na hardware a software...3 Instalace a spouštní...3 Vstupní soubory

DOPRAVNÍ INŽENÝRSTVÍ

POPIS A NÁVOD K OBSLUZE

Transkript:

ON-LINE ZMNA PROGRAMU

ON-LINE ZMNA PROGRAMU 2. vydání - bezen 2008 OBSAH 1. ÚVOD...3 1.1. Základní princip innosti...3 1.2. Možnosti on-line zmn...3 1.3. Zapnutí podpory on-line zmn v prostedí Mosaic...4 1.4. Signalizace podpory on-line zmn v prostedí Mosaic...5 2. ON-LINE ZMNY V ST PROGRAMU...6 2.1. Zahájení programování PLC se zapnutými on-line zmnami...6 2.2. Zmny v kódu programu...5 2.3. Zmny v promnných programu...10 2.4. Zmny lokálních promnných na promnné globální...14 2.5. Rizika pi on-line zmnách v jazyce ST...17 2.5.1. Pejmenování promnné...17 3. ON-LINE ZMNY V *.MOS PROGRAMU...18 3.1. On-line zmny programu v assembleru...18 3.2. Zmny v kódu programu...20 3.3. Zmny v promnných programu...22 3.4. Rizika pi on-line zmnách v assembleru...25 3.4.1. Direktiva #def...25 3.4.2. Pístup na absolutní adresy promnných...25 3.4.3. asovae, ítae, posuvné registry...26 4. SEZNAM CHYB PI ON-LINE ZMN...26 2 TXV 003 42.01

1. Úvod On-line zmna programu je vlastnost centrální jednotky PLC Tecomat, která umožuje provádt úpravy uživatelského programu bez zastavení ízení technologie, tj. bez nutnosti odstavit ízenou technologii pi úpravách PLC programu. Tato vlastnost dává programátorovi systému Tecomat možnost provádt úpravy zmny PLC programu takzvan za chodu. Odpovdnost za správnost provádných úprav je samozejm na programátorovi systému. Centrální jednotka PLC ve spolupráci s programovacím prostedím Mosaic zajišuje bezpené provedení zmn v jednom okamžiku tak, aby plynulost ízení nebyla ohrožena. On-line zmnu programu je možno provádt v sytému TC700 s centrálními jednotkami CP-7001 a CP-7002 od verze SW v4.1. Podpora on-line zmny programu je integrována v programovacím prostedí Mosaic od verze v1.5.10. Chování pi on-line zmn si lze také vyzkoušet se simulátorem PLC v prostedí Mosaic. 1.1 Základní princip innosti Pro vysvtlení základní principu použijeme následující píklad. Pedpokládejme, že PLC Tecomat ídí technologii, jejíž odstavení znamená znanou ekonomickou ztrátu nap. vypalovací pec a programátor má za úkol upravit PLC program. V této chvíli je vcelku lhostejné, zda se bude jednat o opravu chybného algoritmu ízení nebo pidání nové funkce nap. pro vypalování dalšího sortimentu výrobk. Program pro PLC je prost teba upravit a ízení pece se nesmí ani na okamžik zastavit. On-line zmna programu nabízí ešení této situace. Programátor provede píslušné úpravy PLC programu a centrální jednotka PLC zajistí pepnutí ze starého na nový program tak, že n-tý cyklus výpotu je kompletn proveden podle pvodního programu a následující cyklus se provede podle nového programu. Centrální jednotka zárove zajistí potebné innosti spojené se zmnami promnných tak, aby plynulost ízení nebyla narušena. 1.2 Možnosti on-line zmn V rámci on-line zmny mže programátor PLC systému Tecomat upravovat následující ásti programu: kód programu, tzn. libovolné úpravy všech ástí programu (funkcí, funkních blok, program) vetn vkládání nových POU resp. jejich vypouštní úpravy rozhraní POU, tj. zmny vstupních a výstupních promnných POU vetn jejich pidávání a vypouštní úpravy promnných, tj. vkládání a vypouštní všech typ promnných (lokálních i globálních) resp. zmna promnných jako nap. zmna rozmru pole úpravy datových typ, nap. zmny ve strukturách, pidávání nových datových typ a vypouštní nepoužitých datových typ úpravy velikosti remanentní zóny Následující úpravy nelze v rámci on-line zmn programu provádt: 3 TXV 003 42.01

zmny hw konfigurace systému, nap. pidávání IO modul nebo zmna typu IO modulu zmny nastavení IO modul zmny v nastavení komunikaních parametr pro sériové kanály zmny v síti PLC 1.3 Zapnutí podpory on-line zmn v prostedí Mosaic On-line zmny programu lze zapnout následujícím postupem: zvolit v menu Projekt Manažer projektu (CTRL+ALT+F11) ve stromu projektu vybrat uzel Prostedí Ovládání PLC vybrat položku Povolit on-line zmny Postup zapnutí podpory on-line zmn ukazují následující obrázky. 4 TXV 003 42.01

Pokud centrální jednotka PLC nepodporuje on-line zmny, položka povolující on-line zmny bude šedivá a zaškrtávací box nepjde vybrat. Pokud jsou on-line zmny zapnuty, je také automaticky zapnutá volba Potvrzovat požadavek pi volb HALT, což znamená že pechod PLC do režimu HALT je nutno potvrdit ve zvláštním dialogu a nelze tedy zastavit ízení pouze stiknutím ikony HALT nebo klávesovou zkratkou CTRL+F2. Dále nelze potlait dotaz na typ restartu poté, co se poprvé nahraje nový program do PLC. Dialog s dotazem na typ restartu je zobrazen vždy když se poprvé nahrává nový program do PLC (tj. v PLC ješt není žádný program, proti kterému by bylo možno vyhodnotit zmny). 1.4 Signalizace podpory on-line zmn v prostedí Mosaic Zapnutá podpora on-line zmn je v prostedí Mosaic signalizovaná v lišt Menu ikonou se symbolem kvtiny. Pokud je ikona barevná, podpora on-line zmn je zapnutá. Je-li ikona kvtiny šedivá, on-line zmny jsou vypnuté a každá zmna v programu povede na zastavení ízení pi nahrávání nového programu do PLC. 5 TXV 003 42.01

On-line zmny lze také zapnout resp. vypnout z menu, které se objeví po stisknutí levého tlaítka myši nad ikonou on-line zmn nebo nad ikonou se symbolem pipojeného PLC jak ukazuje následující obrázek. Stejn jako v pedchozím postupu, lze on-line zmnu zapnout pouze v pípad, že centrální jednotka PLC tyto zmny podporuje. V opaném pípad je volba neaktivní (šedivá) a nelze ji vybrat. 2. On-line zmny programu v jazyce ST V této kapitole se budeme vnovat on-line zmnám v programu, který je napsán v jazyce ST. 2.1 Zahájení programování PLC se zapnutými on-line zmnami Poté co zapneme podporu on-line zmn programu, je samozejm poteba napsat první verzi programu, úspšn tento program peložit (nap. F9) a nahrát jej do centrální jednotky PLC (nap. CTRL+F9). Ped nahráváním programu do PLC zkontroluje prostedí Mosaic zda v PLC existuje njaká pedchozí verze nahrávaného programu. Pokud neexistuje (nap. jedná se o úpln nový program a novou centrální jednotku), pak se program nahraje do PLC standardním postupem. To znamená, že se centrální jednotka nastaví do režimu HALT, výstupy PLC se zablokují, nahraje se program do PLC a centrální jednotka pejde do režimu RUN se zadaným typem restartu. Poté je centrální jednotka PLC ve spolupráci s programovacím prostedím Mosaic pipravena akceptovat zmny v programu bez zastavení ízení. Pro další výklad zvolíme následující píklad. Pedpokládejme, že program v PLC zapíná a vypíná chlazení podle údaje o teplot centrální jednotky. Promnná temp_cp7002 udává teplotu ve stupních Celsia (systémový registr S36). Výstup cool je zapnutý pokud teplota pekroí 50 stup. VAR_GLOBAL temp_cp7002 AT %S36 : SINT; // CPU temperature cool AT %Y0.0 : BOOL; // cooling 6 TXV 003 42.01

PROGRAM Prog1 CASE temp_cp7002 OF 0..50 : cool := false; 51..127 : cool := true; END_CASE; END_PROGRAM CONFIGURATION ExampleOnLineChange RESOURCE CPM TASK FreeWheeling(Number := 0); PROGRAM main WITH FreeWheeling : Prog1 (); END_RESOURCE END_CONFIGURATION Peložíme program (F9) a vyšleme jej do centrální jednotky (CTRL+F9). Pedtím, než se kód programu zane vysílat, objeví se dialog s informacemi o on-line zmnách. Pokud zvolíme Vyslat kód programu bude vyslán standardním zpsobem, protože se jedná o nový program. To znamená, že centrální jednotka pejde do režimu HALT (kde jsou typicky zablokované výstupy), nahraje se nový program, provede se restart a poté centrální jednotka pejde do režimu RUN. Pokud zvolíme Zrušit kód programu se nevyšle a centrální jednotka zstane beze zmny s pvodním programem a v pvodním režimu. Volba Podrobnosti umožuje zobrazit doplkové informace. 7 TXV 003 42.01

Volby Vyslat a Zrušit mají stejný význam, jako v pedchozím dialogu. Volba Souhrn provede návrat k pedchozímu dialogu. Volba Uložit uloží veškeré informace o on-line zmn do textového souboru. Záložka Zprávy obsahuje souhrnnou informaci o on-line zmn. Záložky Smazané, Nové a Zmnné nesou informace o zmnách promnných a našem pípad jsou prázdné, protože zahajujeme on-line zmnu (nahráváme nový program). Vyšleme tedy nový kód do PLC volbou Vyslat. Poté se zobrazí dialog s volbou restartu. Po volb restartu pejde centrální jednotka do režimu RUN. Od této chvíle je možné upravovat program bez zastavení ízení (tedy on-line). 2.2 Zmny v kódu programu Pedpokládejme, že pedcházející program je poteba doplnit o ovládání topení. Pokud bude teplota mená centrální jednotkou meší než 0 stup Celsia, zapneme výstup pro ovládání topení. První vc, kterou si musíme uvdomit, je stav oken editoru v prostedí Mosaic. Po nahrání nového programu a pechodu do režimu RUN jsou všechna okna editoru ve stavu 8 TXV 003 42.01

DEBUG, což znamená, že není možno editovat text. Tento stav signalizuje ikona v levém dolním rohu editorového okna. Pepnutí do stavu EDIT lze provést klinutím levého tlaítka myši na této ikon nebo horkou klávesou ALT+F6. Stav EDIT je signalizován ikonou. Nyní mžeme upravit program. Pidáme definici pro výstup topení heat a do programu doplníme jeho ovládání. Doplnné ásti mají svtle tyrkysový podklad. VAR_GLOBAL temp_cp7002 AT %S36 : SINT; // CPU temperature cool AT %Y0.0 : BOOL; // cooling heat AT %Y0.1 : BOOL; // heating PROGRAM Prog1 CASE temp_cp7002 OF 0..50 : heat := false; cool := false; 51..127 : heat := false; cool := true; ELSE heat := true; cool := false; END_CASE; END_PROGRAM Dále je postup standardní: peložit upravený program a vyslat kód do PLC. A protože máme zapnuté on-line zmny a v centrální jednotce existuje pedchozí verze našeho programu, tak nový program bude akceptován centrální jednotkou bez zastavení ízení. Ped vysláním programu do PLC se opt zobrazí dialog s informacemi o provedených on-line zmnách. Tentokrát bude vypadat následovn. Dialog nás informuje o tom, že zmny byly provedeny pouze v kódu programu. Tuto skutenost lze ovit v podrobnostech. 9 TXV 003 42.01

2.3 Zmny v promnných programu Pro ukázku této vlastnosti doplníme program z pedchozího odstavce o promnnou, která bude evidovat poet pípad, kdy byla teplota centrální jednotky mimo meze <0,50>. Do lokálních promnných programu tedy pibyde promnná pro poet chybových stav errcounter typu USINT. Další pidaná promnná se jmenuje tmp, je instancí funkního bloku R_TRIG a slouží pro vyhodnocení zmny signál heat a cool. Doplnné ásti mají opt svtle tyrkysový podklad. VAR_GLOBAL temp_cp7002 AT %S36 : SINT; // CPU temperature cool AT %Y0.0 : BOOL; // cooling heat AT %Y0.1 : BOOL; // heating PROGRAM Prog1 VAR errcounter : USINT; tmp : R_TRIG; CASE temp_cp7002 OF 0..50 : heat := false; cool := false; 51..127 : heat := false; cool := true; ELSE heat := true; cool := false; END_CASE; tmp( CLK := heat OR cool); IF tmp.q THEN errcounter := errcounter + 1; END_IF; END_PROGRAM Ped vysláním peloženého kódu se zobrazí dialog se souhrnem provedených zmn. 10 TXV 003 42.01

Z tohoto dialogu je vidt, že tato zmna pidala do programu celkem 4 nové promnné a jedna promnná z pvodního programu byla vypuštna. To mže na první pohled vypadat nelogicky, nebo jsme žádnou promnnou z programu nevypouštli a pidávali jsme pouze dv nové promnné errcounter a tmp. Vysvtlení najdeme v podrobnostech. Pokud POU Program nemá deklarovanou žádnou lokální promnnou, zakládá peklada v prostedí Mosaic automaticky alespo jednu prázdnou promnnou s názvem DUMMY. V okamžiku, kdy do programu pidáme alespo jednu vlastní promnnou, promnná DUMMY ztrácí smysl a peklada ji vypustí. To vysvtluje záhadu vypuštné promnné. Nesoulad v potu nových promnných nám také objasní okno podrobnosti. 11 TXV 003 42.01

Z tohoto okna je vidt, že promnné errcounter opravdu odpovídá jedna nová promnná zatímco pod promnnou tmp se ve skutenosti skrývají promnné ti, nebo jde o instanci funkního bloku typu R_TRIG. Každá instance tohoto funkního bloku pak bude obsahovat promnné CLK, Q a M typu BOOL. Dále je v tomto okn uvedeno, jakou inicializaní hodnotou byly nové promnné po svém založení naplnny. Obecn platí, že nové promnné jsou naplnny inicializaní hodnotou, kterou uvede programátor v deklaraci promnné. Pokud není inicializace v deklaraci promnné uvedena, pak se promnná naplní implicitní inicializaní hodnotou pro píslušný datový typ. Nyní si pedstavme následující situaci. Promnná errcounter je typu USINT a maximální hodnota této promnné mže být 255. Dejme tomu, že je to píliš málo pro tento pípad. Zmníme tedy datový typ promnné errcounter z typu USINT na typ UDINT. Pro lepší orientaci je v tomto textu zmnný ádek vyznaen fialov. Zbytek programu se nezmnil. VAR_GLOBAL temp_cp7002 AT %S36 : SINT; // CPU temperature cool AT %Y0.0 : BOOL; // cooling heat AT %Y0.1 : BOOL; // heating PROGRAM Prog1 VAR errcounter : UDINT; tmp : R_TRIG; CASE temp_cp7002 OF 0..50 : heat := false; cool := false; 51..127 : heat := false; cool := true; ELSE heat := true; cool := false; END_CASE; tmp( CLK := heat OR cool); IF tmp.q THEN errcounter := errcounter + 1; END_IF; END_PROGRAM 12 TXV 003 42.01

Dále pedpokládejme, že ped provedením zmny má promnná errcounter nenulovou hodnotu. Úkolem on-line zmny je samozejm zachovat všechny aktuální hodnoty promnných v programu a to jak v pípadech zmny datového typu promnné, tak v pípad zmny umístní promnné v pamti PLC. Oba pípady pi této zmn nastaly. Promnná errcounter zmnila datový typ a promnná tmp zmnila umístní v pamti. Celkovou informaci podává opt dialog souhrn zmn. Žádné promnné nepibyly ani neubyly, le u všech tyech došlo ke zmnám. V podrobnostech jsou popsány zmny datového typu, zmny umístní promnných v pamti se nevypisují. Popsané zmny zaídí centrální jednotka PLC ve spolupráci s prostedím Mosaic automaticky po vyslání kódu programu z Mosaicu do PLC. Promnné si prost ponechají hodnoty nezávisle na tom, jestli se mnil jejich datový typ nebo umístní v pamti. Stejným zpsobem, jako jsme postupovali u zmn lokálních promnných (VAR... ), mžeme postupovat i promnných globálních (VAR_GLOBAL... resp. VAR_GLOBAL RETAIN... ). Lze tedy pidávat promnné, ubírat promnné a mnit datový typ promnných 13 TXV 003 42.01

2.4 Zmny lokálních promnných na promnné globální Píkladem tohoto typu zmny mže být požadavek na zmnu lokální promnné err- Counter z našeho píkladu na promnnou globální nap. z dvodu zálohování hodnoty této promnné pi výpadku napájení. Zdá se, že bude stait pouze zmna pvodní deklarace lokální promnné PROGRAM Prog1 VAR errcounter : UDINT; ; // local variable tmp : R_TRIG; na novou deklaraci promnné globální VAR_GLOBAL RETAIN errcounter : UDINT; // global variable PROGRAM Prog1 VAR tmp : R_TRIG; V tomto pípad zdání bohužel klame. Varováním budiž souhrnný dialog o provedených zmnách. Zde vidíme, že akoliv jsme nemnili poet promnných ani jejich pojmenování bude jedna promnná z programu smazaná (vypuštná) a jedna nová promnná pibude. Dvod pro toto chování bude opt zejmý z podrobných informací o on-line zmnách. 14 TXV 003 42.01

Lokální promnná errcounter a globální promnná errcounter se ve skutenosti nejmenují stejn. Plné jméno jakékoliv lokální promnné se totiž skládá ze jména instance a jména promnné. V našem pípad se tedy lokální promnná errcounter ve skutenosti jmenuje main.errcounter, kde main je jméno instance programu. A protože se jména neshodují, zachází se s nimi pi on-line zmn jako se dvmi rznými promnnými. Takže lokální promnná errcounter bude vynechaná a zavede se nová globální promnná. Dsledkem toho bude ztráta hodnoty errcounter, protože nov zavedená globální promnná bude nainicializovaná hodnotou 0. Jak tedy postupovat pi zmn lokální promnné na promnnou globální.tuto situaci je nutné ešit ve dvou krocích. V prvním kroku pouze pidáme novou globální promnnou retainerrcounter. Z lokální promnné errcounter udláme promnnou výstupní a její hodnotu piadíme do nov založené globální promnné. Upravený program bude vypadat následovn. 15 TXV 003 42.01

VAR_GLOBAL temp_cp7002 AT %S36 : SINT; // CPU temperature cool AT %Y0.0 : BOOL; // cooling heat AT %Y0.1 : BOOL; // heating VAR_GLOBAL RETAIN retainerrcounter : UDINT; PROGRAM Prog1 VAR tmp : R_TRIG; VAR_OUTPUT errcounter : UDINT; CASE temp_cp7002 OF 0..50 : heat := false; cool := false; 51..127 : heat := false; cool := true; ELSE heat := true; cool := false; END_CASE; tmp( CLK := heat OR cool); IF tmp.q THEN errcounter := errcounter + 1; END_IF; END_PROGRAM CONFIGURATION ExampleOnLineChange RESOURCE CPM TASK FreeWheeling(Number := 0); PROGRAM main WITH FreeWheeling : Prog1 (errcounter => retainerrcounter); END_RESOURCE END_CONFIGURATION Provedeme-li on-line zmnu, výstupní promnná errcounter si podrží hodnotu pvodní lokální promnné errcounter, protože jak už víme, jejich skutená jména jsou stejná a sice main.errcounter. Hodnota výstupní promnné promnné errcounter se v každém cyklu kopíruje do nové globální promnné retainerrcounter. Druhým krokem je vynechání výstupní promnné errcounter a zmna programu, kde musíme zpracování výstupní promnné errcounter nahradit zpracováním globální promnné retainerrcounter. Vynechat musíme také piazení výstupní promnné errcounter, protože ta už neexistuje. Program bude vypadat následovn. VAR_GLOBAL temp_cp7002 AT %S36 : SINT; // CPU temperature cool AT %Y0.0 : BOOL; // cooling heat AT %Y0.1 : BOOL; // heating VAR_GLOBAL RETAIN retainerrcounter : UDINT; PROGRAM Prog1 VAR 16 TXV 003 42.01

tmp : R_TRIG; CASE temp_cp7002 OF 0..50 : heat := false; cool := false; 51..127 : heat := false; cool := true; ELSE heat := true; cool := false; END_CASE; tmp( CLK := heat OR cool); IF tmp.q THEN retainerrcounter := retainerrcounter + 1; END_IF; END_PROGRAM CONFIGURATION ExampleOnLineChange RESOURCE CPM TASK FreeWheeling(Number := 0); PROGRAM main WITH FreeWheeling : Prog1 (); END_RESOURCE END_CONFIGURATION Odmnou za tento složitjší postup je korektn provedená on-line zmna programu. 2.5 Rizika pi on-line zmnách v jazyce ST 2.5.1 Pejmenování promnné Pi práci s promnnými je teba mít na pamti, že peklada rozeznává on-line zmny promnných podle jmen promnných a jejich datových typ. To platí i pro opravu jména promnné. Peklada neposuzuje gramatickou správnost jména promnné, pouze porovnává shodnost jmen promnných mezi starým a novým programem. VAR_GLOBAL temp_cp7002 : SINT; // CPU temperature 17 TXV 003 42.01

3. On-line zmny *.mos programu On-line zmny je možné používat i pro programy, které jsou napsány v tradiních instrukcích pro PLC Tecomat. Tmto zmnám je vnovaná následující kapitola. 3.1 On-line zmny programu v assembleru Pro další výklad zvolíme stejný píklad jako pro popis zmn v jazyce ST. Pedpokládejme, že program v PLC zapíná a vypíná chlazení podle údaje o teplot centrální jednotky. Promnná temp_cp7002 udává teplotu ve stupních Celsia (systémový registr S36). Výstup cool je zapnutý pokud teplota pekroí 50 stup. Program bude vypadat následovn. #def temp_cp7002 %S36 ; CPU temperature #def cool %Y0.0 ; cooling ; P 0 LD temp_cp7002 EXTB GTS -1 LD temp_cp7002 EXTB LTS 51 OR NEG RES cool ; LD temp_cp7002 EXTB GTS 50 SET cool E 0 Zapneme on-line zmny, peložíme program (F9) a vyšleme jej do centrální jednotky (CTRL+F9). Pedtím, než se kód programu zane vysílat, objeví se dialog s informacemi o on-line zmnách. 18 TXV 003 42.01

Pokud zvolíme Vyslat kód programu bude vyslán standardním zpsobem, protože se jedná o nový program. To znamená, že centrální jednotka pejde do režimu HALT (kde jsou typicky zablokované výstupy), nahraje se nový program, provede se restart a poté centrální jednotka pejde do režimu RUN. Pokud zvolíme Zrušit kód programu se nevyšle a centrální jednotka zstane beze zmny s pvodním programem a v pvodním režimu. Volba Podrobnosti umožuje zobrazit doplkové informace. Volby Vyslat a Zrušit mají stejný význam, jako v pedchozím dialogu. Volba Souhrn provede návrat k pedchozímu dialogu. Volba Uložit uloží veškeré informace o on-line zmn do textového souboru. Záložka Zprávy obsahuje souhrnnou informaci o on-line zmn. Záložky Smazané, Nové a Zmnné nesou informace o zmnách promnných a našem pípad jsou prázdné, protože zahajujeme on-line zmnu (nahráváme nový program). Vyšleme tedy nový kód do PLC volbou Vyslat. Poté se zobrazí dialog s volbou restartu. Po volb restartu pejde centrální jednotka do režimu RUN. Od této chvíle je možné upravovat program bez zastavení ízení (tedy on-line). 19 TXV 003 42.01

3.2 Zmny v kódu programu Pedpokládejme, že pedcházející program je poteba doplnit o ovládání topení. Pokud bude teplota mená centrální jednotkou meší než 0 stup Celsia, zapneme výstup pro ovládání topení. První vc, kterou si musíme uvdomit, je stav oken editoru v prostedí Mosaic. Po nahrání nového programu a pechodu do režimu RUN jsou všechna okna editoru ve stavu DEBUG, což znamená, že není možno editovat text. Tento stav signalizuje ikona v levém dolním rohu editorového okna. Pepnutí do stavu EDIT lze provést klinutím levého tlaítka myši na této ikon nebo horkou klávesou ALT+F6. Stav EDIT je signalizován ikonou. Nyní mžeme upravit program. Pidáme definici pro výstup topení heat a do programu doplníme jeho ovládání. Doplnné ásti mají svtle tyrkysový podklad. #def temp_cp7002 %S36 ; CPU temperature #def cool %Y0.0 ; cooling #def heat %Y0.1 ; heating ; P 0 LD temp_cp7002 EXTB GTS -1 LD temp_cp7002 EXTB LTS 51 OR NEG RES cool RES heat ; LD temp_cp7002 EXTB GTS 50 SET cool RES heat ; LD temp_cp7002 EXTB LTS 0 RES cool SET heat E 0 Dále je postup standardní: peložit upravený program a vyslat kód do PLC. A protože máme zapnuté on-line zmny a v centrální jednotce existuje pedchozí verze našeho programu, tak nový program bude akceptován centrální jednotkou bez zastavení ízení. Ped vysláním programu do PLC se opt zobrazí dialog s informacemi o provedených on-line zmnách. Tentokrát bude vypadat následovn. 20 TXV 003 42.01

Dialog nás informuje o tom, že zmny byly provedeny pouze v kódu programu. Tuto skutenost lze ovit v podrobnostech. 21 TXV 003 42.01

3.3 Zmny v promnných programu Pro ukázku této vlastnosti doplníme program z pedchozího odstavce o promnnou, která bude evidovat poet pípad, kdy byla teplota centrální jednotky mimo meze <0,50>. V programu tedy pibyde nová promnná pro poet chybových stav errcounter typu USINT. Další pidaná promnná se jmenuje tmp a je to pomocná promnná pro instrukci LET, která slouží pro vyhodnocení zmny signál heat a cool. Doplnné ásti mají opt svtle tyrkysový podklad. #def temp_cp7002 %S36 ; CPU temperature #def cool %Y0.0 ; cooling #def heat %Y0.1 ; heating ; #reg USINT errcounter #reg BOOL tmp ; P 0 LD temp_cp7002 EXTB GTS -1 LD temp_cp7002 EXTB LTS 51 OR NEG RES cool RES heat ; LD temp_cp7002 EXTB GTS 50 SET cool RES heat ; LD temp_cp7002 EXTB LTS 0 RES cool SET heat ; LD heat OR cool LET tmp AND 1 LD errcounter ADD WR errcounter E 0 Ped vysláním peloženého kódu se zobrazí dialog se souhrnem provedených zmn. 22 TXV 003 42.01

Z tohoto dialogu je vidt, že tato zmna pidala do programu celkem 2 nové promnné. To jsou naše promnné errcounter a tmp. Pesvdit se mžeme v podrobnostech. V tomto okn je uvedeno, jaké promnné byly nov založeny a jakou inicializaní hodnotou byly nové promnné po svém založení naplnny. Promnné založené pomocí direktivy #reg mají inicializaní hodnotu 0. Nyní si pedstavme následující situaci. Promnná errcounter je typu USINT a maximální hodnota této promnné mže být 255. Dejme tomu, že je to píliš málo pro tento pípad. Zmníme tedy datový typ promnné errcounter z typu USINT (promnná velikosti jeden byte, bez znaménka) na typ UDINT (promnná velikosti tyi byty, bez znaménka). Pro lepší orientaci je v tomto textu zmnný ádek vyznaen fialov. Zbytek programu se nezmnil. #def temp_cp7002 %S36 ; CPU temperature #def cool %Y0.0 ; cooling #def heat %Y0.1 ; heating ; #reg UDINT errcounter #reg BOOL tmp ; P 0 23 TXV 003 42.01

LD... temp_cp7002 Dále pedpokládejme, že ped provedením zmny má promnná errcounter nenulovou hodnotu. Úkolem on-line zmny je samozejm zachovat všechny aktuální hodnoty promnných v programu a to jak v pípadech zmny datového typu promnné, tak v pípad zmny umístní promnné v pamti PLC. Oba pípady pi této zmn nastaly. Promnná errcounter zmnila datový typ a promnná tmp zmnila umístní v pamti. Celkovou informaci podává opt dialog souhrn zmn. Žádné promnné nepibyly ani neubyly, le u všech došlo ke zmnám. V podrobnostech jsou popsány zmny datového typu, zmny umístní promnných v pamti se nevypisují, pouze je evidován jejich poet. Popsané zmny zaídí centrální jednotka PLC ve spolupráci s prostedím Mosaic automaticky po vyslání kódu programu z Mosaicu do PLC. Promnné si prost ponechají hodnoty nezávisle na tom, jestli se mnil jejich datový typ nebo umístní v pamti. 24 TXV 003 42.01

3.4 Rizika pi on-line zmnách v assembleru 3.4.1 Direktiva #def Peklada neví nic o direktivách #def v programu. Tuto direktivu chápe peklada jako makro pro textovou náhradu. Co to znamená pro on-line zmny v praxi ukáže následující píklad. #def SQ7 %X0.0 ; switch P 0 E 0 LD SQ7 Ve výše uvedeném píkladu peklada nahradí pi pekladu programu všechny výskyty slova SQ7 etzcem %X0.0. Nic dalšího se nestane. To v praxi znamená, že zmna direktivy #def není nijak evidovaná pi on-line zmn. Za kontinuitu obsahu promnných, které jsou definovány pomocí direktivity #def tedy odpovídá programátor. 3.4.2 Pístup na absolutní adresy promnných Pístup na absolutní adresy promnných v uživatelském programu rovnž není evidován v on-line zmnách. ; old program P 0 LD E 0 %R100 ; error_counter Zmníme-li výše uvedený program pi on-line zmn, zmní se pouze kód programu. ; new program P 0 LD E 0 %R200 ; error_counter Promnné %R100 a %R200 nejsou pi on-line zmn nijak ovlivnny, což znamená, že nový program mže (a pravdpodobn také bude) pokraovat ve výpotu s jinou hodnotou error_counter než program ped provedením zmny. Pokud potebujeme z njakého dvodu pistoupit k promnné na konkrétní adrese v pamti (nap. z dvody vazby na vizualizaní program) a chceme si zachovat výhody online zmn, mžeme použít následující postup. ; old program #reg byte 100,error_counter ; == %R100 P 0 25 TXV 003 42.01

E 0 LD error_counter On-line zmna programu Zmníme-li výše uvedený program pi on-line zmn, promnná error_counter si zachová pvodní hodnotu i po on-line zmn programu. ; new program #reg byte 200,error_counter ; == %R200 P 0 LD error_counter E 0 Promnná tedy musí být deklarovaná pomocí direktivy #reg. 3.4.3 asovae, ítae, posuvné registry V instrukním souboru systém Tecomat jsou instrukce pro asovae, ítae a posuvné registry, které pro svoji funkci používají vnitní pomocnou promnnou. Ta je použita jako pam nábžných hran ítaných vstup apod. a není viditelná z uživatelského programu. Pro správnou funkci je však nezbytná. Vnitní pomocnou promnnou používají následující instrukce: asovae TON, TOF, RTO, IMP ítae CTU, CTD, CNT posuvné registry SFL, SFR Pokud mají tyto instrukce fungovat správn pi on-line zmn, musí být jejich operand vyjáden v programu symbolickým jménem promnné. V tomto pípad prostedí Mosaic ve spolupráci s centrální jednotkou PLC zajistí zachování hodnoty promnné vetn vnitní pomocné promnné. 4. Seznam chyb pi on-line zmn 70 xx xxxx chyby hlášené centrální jednotkou pi on-line zmn (ízení technologie pokrauje s pvodním programem) 70 05 0000 chybná délka mapy nového uživatelského programu 70 06 0000 chybný zabezpeovací znak (CRC) mapy nového uživatelského programu 70 07 0000 chybný zabezpeovací znak (CRC) celého nového programu 70 09 0000 nový program je peložen pro jinou adu centrálních jednotek 70 24 0000 chybí seznam on-line zmn 70 25 0000 seznam on-line zmn má chybné CRC 26 TXV 003 42.01

70 31 rr pp v definici I/Omodulu chybí inicializaní tabulka 70 43 rr pp v definici I/Omodulu pekroeno max. íslo rámu kde rr... íslo rámu a pp... pozice I/O modulu v rámu 27 TXV 003 42.01