• Blaja
  • Archiv
  • Uložení a zálohování dat na MMC card v PLC Simatic S7

Uložení a zálohování dat na MMC card v PLC Simatic S7

  • úterý, 30 březen 2010 04:00

Logo automaty Uložení a  zálohování dat na MMC card v PLC Simatic S7.

Vyzkoušíme jak uložit data (čísla v datových blocích) na MMC kartu v PLC, aby se nikdy neztratila. Kopie celého datového bloku se dá totiž přes PLC funkci vytvořit na MMC kartě. Z té už jej žádnými běžnými postupy nedostanete a data máte stále k dispozici.

Na ukládání a hlavně zachování dat na MMC nebo-li Micro Memory Card, je obecně hodně dotazů na fóru, takže ukázka jak na to.


Nejprve je vhodné si připomenout, jak je paměť v PLC Simatic rozdělena. Tohle je poměrně nejsrozumitelnější ukázka rozdělení paměťového prostoru v PLC.

Pokud ale neprovedete nějaké úkony popsané dále a není nějaká odchylka v PLC programu, nedá se o data přijít, v PLC budou vždy k dispozici. Takže kdo nic neřeší a nemá s tím problém, tak pro něj budou následující řádky jen zajímavé. Taky jsem ale nevěděl úplně přesně jak zálohování funguje, takže stálo za to to zkusit.

MMC card PLC Simatic S7 


Pro náš pokus si v PLC s MMC (konkrétně CPU313) vytvoříme jeden datový blok DB31 pro pět proměnných, na kterém si nejprve ukážeme některé typické situace ztráty dat, a poté možnost jejich zálohování.

MMC card PLC Simatic S7 


Deset bytes a 5x integer s definovanou inicializační hodnotou podle pořadí, to je náš DB31. 

MMC card PLC Simatic S7 


Většinou jsou po opětovném zapnutí v DB mnohokrát jiná čísla jen proto, že si je při startu nebo někde v programu přepisujeme. Takže my si do DB31 vložíme nová data přes VAT tabulku a příkaz "Modify value". Inicializační čísla 1-5 byla v DB po prvním překopírování do PLC.

Nyní po jakémkoliv zapnutí a vypnutí PLC, nebo přepsání HW konfigurace, budou stále v DB čísla 11 - 15, tedy naše uložená data. Tohle pro většinu aplikací stačí a pokud neprovedeme nějaký "Clear reset", nebo překopírování celého datového bloku, tak vše bude OK. Typický příklad je, že čísla v DB slouží jako parametry pro nějakou funkci (PID regulátor) a nastaví se například z OP panelu.

MMC card PLC Simatic S7 


Jestliže ale překopírujeme do PLC i náš datový blok, nebo třeba celý program, máme po datech. Máme-li v DB konečné nastavení, je vhodné jej překopírovat z PLC do PC, abychom jej měli s aktuálními daty.

Pokud se potom potřebujeme vrátit zpět k inicializačním hodnotám, musíme datový blok znovu inicializovat, a teprve poté jej přenést znovu do PLC.

MMC card PLC Simatic S7 


Stejný případ ztráty dat nastane, jestliže provedeme přes Step7 v menu "PLC" -> "Diagnostic/Setting" -> "Clear/Reset". Takže pozor na to.

MMC card PLC Simatic S7 


Formátování MMC karty. Někde jsem se dokonce dočetl, že je vhodné provádět vždy před přepsáním programu atp.

Takže ne, jen uvedené situace a jejich signalizace vyžadují reset MMC. Tohle je taky věc mnohdy nejasná a s rozporuplnými názory.

MMC card PLC Simatic S7 

 


Teď se dostanem k záloze dat. Pomocí systémové funkce SFC82 vytvoříme na MMC datový blok s daty, které potřebujeme zachovat. Je nutno ale respektovat několik pravidel.

Celá funkce i následujíci funkce (SFC83,84) přistupují k datům na MMC kartě, což chvíli trvá, a nelze ji tedy vyvolávat v programu cyklicky, ale jen jednou. K tomu slouží M30.0 který se nastaví pouze v jednom cyklu na "H" a následně se vykoná funkce SFC82.

Datový blok se vygeneruje pod číslem v MW34, tedy jako DB32.

LOW_LIMIT určuje nejnižší číslo DB který se bude generovat po opětovném vyvolání funkce a UP_LIMIT nejvyšší číslo DB. To znamená, že je datový blok vygeneruje jen jednou a pokud už existuje vygeneruje se další v nastaveném rozsahu. Jestliže jsou čísla v limitech stejná, po opětovném spuštění funkce se už nic nestane, neboť jeden DB již je vygenerován. My si dvojnásobným spuštěním SFC82 vygenerujeme dva datové bloky, DB33 a DB34. Limitní hodnoty jsou v hexa, takže 20h=32.

COUT a ATTRIB jsou popsány detailně v helpu, pro pochopení funkce nejsou důležité.

SRCBLK klasický zápis zdroje dat, které se "vrhnou" do generovaného datového bloku. Tedy náš DB31 a první dvě proměnné.

Jediná možnost jak se nyní vygenerovaného datového bloku zbavit, je přepojit se on-line do CPU a normálně jej smazat.

 

 

MMC card PLC Simatic S7 

 

Funkci SFC82 jsme spustili dvakrát pro vygenerování dvou datových bloků. Tohle je ukázka z on-line obsahu CPU, vidíme nové DB32 a DB33. Jen tady je můžeme, pokud potřebujeme, vymazat. Stává se to, když se spleteme a spustíme SFC82 v nevhodný okamžik. 

MMC card PLC Simatic S7 

 

Pro zápis a čtení platí, že je nutné používat systémové funkce SFC83 (čtení) a SFC84 (zápis). Opět se volají jen jednou, stejně jako SFC82. Protože mám jen jedno "tlačítko" pro čtení/zápis (M30.2), tak pomocí M30.4 přepínáme jakou funkci budem volat.

MMC card PLC Simatic S7 

 

Po jednom vyvolání funkce SFC83 se překopírují do DB31 čtyři bytes z DB33.

Zápis do DB se provádí obdobným způsobem.

 

Data z těchto DB, DB32 a DB33 už nevymažete z PLC žádným běžným způsobem. Takže pokud potřebujete uchovat recepty nebo podobné věci, je tohle jedna z cest. Jen je nutno si řádně rozmyslet a naprogramovat přesný postup volání funkcí v PLC programu.

 

 

 

 

 

MMC card PLC Simatic S7 

 

Jaroslav Blažek


Doplňující odkazy k článku: 

Částečný popis ukládání dat na MMC kartu, příklad: http://support.automation.siemens.com/WW/view/en/15261720

Něco o kódu chyby při volání SFC82: http://support.automation.siemens.com/WW/view/en/16626212

Recepty a MMC karta, příklad: http://support.automation.siemens.com/WW/view/en/15261408

 

Pro psaní komentářů se přihlašte

Kontakt

email : blaja @blaja.cz
email reklama: info @blaja.cz
email adresy bez mezery 
před zavináčem

Jaroslav Blažek
Štěpánská 1888
755 01 Vsetín
+420 608 180 209