PLC Simatic S7-1200, programování TIA Portal Step7 V13.
Potřebujeme realizovat takovou funkci, která převede sedm bitů na bajt, přičemž jako vstupní bity může být použit jakýkoliv bitový signál, tedy vstupy, výstupy, merkry, datové bloky a vše namíchané. Pro jeden ucelený vstupní byte by funkce neměla smysl. Zdá se to jednoduché, ale my si tento příklad ukážeme s použitím dočasné (temporary) proměnné ve funkčním bloku FC11.
Nejprve deklarujeme u FC11 vstupy funkce, jednotlivé bity, pak výstupní bajt a na závěr pomocný byte jako Temp. O ten tady půjde.
Tady je celý vtip. Potřebujeme v PLC programu funkce FC11 jednotlivé vstupní bity zapsat do dočasného bajtu, ale jako jednotlivé bity, i když je TEMP_byte deklarován jako byte. Právě k tomu slouží syntaxe s procentem. Tedy %X7 znamená, že se nastaví jen poslední bit v bajtu. Pak je již jednoduché dočasný bajt zapsat do výstupního.
Platí to ovšem i pro ostatní typy vhodných proměnných, není to omezeno jen na temporary oblast.
Asi takto, je vidět že opravdu některé vstupní bity jsou vstupy, něco merkry a některé jsou nastaveny "natvrdo" na L nebo H. Výsledek si přepočítejte sami.
Paměťový merker klidně v online režimu přes pravé tlačítko myši nastavíme na L respektive H, podle potřeby.
Při využití dočasného bajtu ve funkčním bloku, můžeme pak tento klidně použít vícekrát v PLC programu a nepotřebujeme žádný další paměťovou oblast pro uložení dočasných dat, jako merker, datový blok a podobně. A o to jde.
Klikněte na obrázek pro zvětšení
Vytvořili jsme i krátké video, abyste viděli jak to fachčí.
https://www.youtube.com/watch?v=f37D2mr0xlI&feature=youtube
Závěr:
No, pro zkušené programátory je tohle jasná věc, ale méně zkušení uživatelé budou asi překvapeni. Jestli máte také zajímavou jednoduchou funkci pro PLC Simatic S7-1200/1500 chcete se o ni podělit, klidně nám ji pošlete, vyzkoušíme a zveřejníme. Mimochodem, zkuste si vzpomenout, jak se to dělalo ve Step7 verze 5.x.
Jaroslav Blažek
Doplňující odkazy k článku:
TIA Portal pro Simatic S7-1200/1500, více tady.