Jste zde

Praxe – jak snadno vytvořit v PLC Milenium časovaný posuvný registr

Pro jednu z aplikací běžící na PLC Millenium jsem potřeboval časově posunout (zpozdit) posloupnost impulsů. Navrhl jsem proto následující jednoduchý posuvný registr složený z bloku časovače a RS klopného obvodu. Jeho popis je v tomto článku.

V jednom z programů pro řízení přenosu impulsů z průmyslového měřícího zařízení jsem potřeboval vytvořit časové zpoždění na vstup příchozích pulsů až o několik sekund. Tedy takový časovaný posuvný registr, který stylem FIFO (první dovnitř, první ven) přijme vstupní impuls a zpozdí jej o požadovaný čas. Pokud by mělo vždy jít jen jeden puls, nebyl by to vůbec žádný problém.

V mém případě však během onoho zpoždění několika sekund může přijít až 5 dalších pulsů, které se také musí zpozdit a přitom zachovat jejich pořadí a vzájemný časový odstup. A protože u základního PLC Millenium3 nelze přímo vložit posuvný registr, vytvořil jsem si jej kombinací funkčního bloku časovače (timer) a RS klopného obvodu, které dohromady tvoří jeden stavební prvek (buňku / „bit“) registru. Navíc běh (časování) tohoto posuvného registru není řízeno nějakým externím signálem, ale spouštěno přímo samotným příchozím pulsem, které zahájí odpočítávání jeho zpoždění a tedy je zachován časový odstup pulsů na výstupu z posuvného registru jako na jeho vstupu.

 

Příklady dvou zde popisovaných časových registrů složený z 6 buněk (bitů). Ten první jen čistě zpožduje pulsy přicházející na vstup I1 a vychází z výstupu O1 a ten druhý má navíc zpětnou vazbu, takže impulsy chodí stále dokola - pro zvětšení klikněte na obrázek.

Popis struktury a funkce posuvného registru

Jak již bylo zmíněno výše, registr tvoří sériově propojené buňky („bity“) realizované funkčním blokem časovače a RS klopného obvodu. Účel časovače je jasný. Generuje požadované zpoždění. K čemu tam však je ten klopný obvod? Důvod je následující: Každý časovač pracuje v režimu nastaveného zpoždění náběžné a sestupné hrany pulsu, který přijde na jeho vstup. Bohužel však v případě, že vstupní impuls skončí dříve než se vygeneruje náběžná hrana zpožděná nastaveným časem TA, přestane odpočítávání času TA a celý časovač se jako by resetuje do nulového stavu aniž by cokoliv udělal. Proto je nutné logickou 1 na vstupu časovače držet až do uplynutí doby TA, i když délka vstupního pulsu je kratší. To provádí právě zmíněný RS klopný obvod (RS KLO). Zde se na svorku označenou jako SET, která nahazuje výstup do log. 1, přivádí vstupní puls a na svorku RESET, která shazuje výstup do log. 0, je připojen výstup z časovače. Příchozí puls tak nahodí výstup RS KLO do jedničky a zahájí u časovače čítání nastaveného času TA.

 

Ukázka použitého režimu časovače (vlevo) a nastavení času TA a TB (vpravo) - pro zvětšení klikněte na příslušný obrázek.

Po jeho uplynutí se nahodí výstup časovače do log. 1 a tím se provede reset KLO do log. 0. Zároveň časovač čítá čas TB, tedy generuje délku pulsu. Po jeho uplynutí se výstup časovače opět shodí do log. 0, což znamená, že na vstup klopného obvodu může přijít další puls. Jakýkoliv příchozí puls během časování časovače se nevyužije (je ignorován), protože buď je KLO nahozen do log.1 a tedy další puls na SET to nemůže změnit, nebo je po dobu TB trvale nahozen vstup RESET. Protože je blok RS KLO nastaven do režimu upřednostňující vstup RESET (tzv. když je log. 1 na vstupu RESET, nastavu svorky SET nezáleží), je výstup KLO trvale držen v log. 0.

Pokud tedy během času TA + TB chceme zaregistrovat další příchozí puls, musíme mít pro něj další buňku. V praxi tedy sériové zapojení např. 5 buněk, kde celkový požadovaný čas generovaného zpoždění T = 5 x (TA + TB), může pojmout až 5 příchozích pulsů. Ty však musí mít vzájemný odstup větší než T/5, což je časovací konstanta každé buňky vzniklého posuvného registru.

Ideální je tak vytvořit co nejdelší posuvný registr složený s co možní největšího počtu buněk, kde celkové generované zpoždění je tedy dáno počtem buněk vynásobený časem TA + TB.

 

 

Nastavení RS klopného obvodu - pro zvětšení klikněte na obrázek

Parametry přeloženého programu - pro zvětšení klikněte na obrázek

Závěr

Pokud potřebujete realizovat časovaný posuvný registr v PLC Millenium může se vám tato struktura hodit. Samozřejmě posuvný registr lze vytvořit ji dalšími způsoby, ale konkrétně pro danou moji aplikaci mi toto přišlo jako nejjednodušší řešení.

Antonín Vojáček
vojacek@ hwg.cz

DOWNLOAD & Odkazy

Hodnocení článku: