You are on page 1of 2

Příklad TIA

PŘÍKLAD TIA PORTÁL


Následující příklad vyhotov v prostředí TIA verze 14 nebo vyšší. Pro otestování použij
simulátor a vytvoř časové průběhy signálů, ze kterých bude zřejmá správná funkcionalita. Kód řádně
okomentuj.

FUNKČNÍ BLOK PRO ŘÍZENÍ VENTILU


Navrhni a naprogramuj funkční blok pro ovládání proporcionálního hydraulického ventilu.
Obdobný ventil se využívá pro ovládání: hydraulických válců, hydromotorů a čerpadel s
proměnlivým geometrickým objemem.
Ventil je ovládán pomocí dvou proporcionálních solenoidů (PosDir a NegDir). Výstupem na
jednotlivé solenoidy je proud v mA. Každá cívka má vlastní proudové limity (minimální proud a
maximální proud.) Minimální proud odpovídá Standstill hodnotě (ventil je uzavřen, nulový průtok
kapaliny skrze ventil). Maximální proud odpovídá maximálnímu otevření ventilu (maximální průtok
kapaliny v daném směru).
V jeden okamžik může být aktivní pouze jedna cívka (PosDir nebo NegDir). Jelikož reálný
systém musí pracovat se setrvačností, je potřeba implementovat DeadTime pro reverzaci.
DeadTime je časová konstanta, která se aktivuje vždy při změně směru PosDir <-> NegDir. Po tuto
dobu je na oba solenoidy posílán minimální proud.
Vstupem pro ovládání solenoidů je hodnota Command nabývající hodnot od -1000 .. 0 ..
1000. Hodnota – 1000 značí maximální proud na solenoid NegDir adekvátně hodnota 1000 odpovídá
maximálnímu proudu na PosDir. Hodnota 0 odpovídá minimálním proudům na obou solenoidech.
Hodnota Command není proud, ale hodnota otevření v procentech x 10.
Pro větší plynulost ovládání je potřeba do FB implementovat rampovací funkci. Každý
solenoid má dvě rampy: akcelerační a decelerační. Strmost rampy je definována časem pro
přestavení ventilu z MIN na MAX. Akcelerace a decelerace můžou být rozdílné (čas přestavení
z minima na maximum může být odlišný od přestavení z maxima na minimum).
Posledními vstupy do FB jsou povolení pohybu pro daný směr (EnaPosDir, EnaNegDir), které
musí být TRUE. Dojde-li ke ztrátě povolení během pohybu, hodnota na výstupu se dále
neinkrementuje. V tomto případě FB umožní pouze snížení aktuální hodnoty na daný výstup
snížením Commandu (FB nedekrementuje automaticky).

1
Příklad TIA

Vstupy:

EnaPosDir // Povolení pohybu v daném směru


EnaNegDir // Povolení pohybu v daném směru
Command // Příkaz -1000 .. 0 .. 1000 [procenta * 10]

Výstupy:

OutPosDir // Výstup v daném směru [mA]


OutNegDir // Výstup v daném směru [mA]

Konfigurační parametry:

CurPosDirMin // Minimální proud na solenoid v daném směru [mA]


CurPosDirMax // Maximální proud na solenoid v daném směru [mA]
CurNegDirMin // Minimální proud na solenoid v daném směru [mA]
CurNegDirMax // Maximální proud na solenoid v daném směru [mA]
RampPosDirUp // Čas změny z min. na max. otevření v daném směru [ms]
RampPosDirDown // Čas změny z max. na min. otevření v daném směru [ms]
RampNegDirUp // Čas změny z min. na max. otevření v daném směru [ms]
RampNegDirDown // Čas změny z max. na min. otevření v daném směru [ms]
DeadTime // Kompenzace setrvačnosti při reverzaci [ms]

Status:

Standstill // Oba výstupy jsou na minimu


Accel // Jeden z výstupů zrychluje
Decel // Jeden z výstupů zpomaluje
OutPosDirProc // Výstup v daném směru [%]
OutNegDirProc // Výstup v daném směru [%]
bBussy // TRUE je-li FB aktivní (změna na výstupu)
bDone // TRUE je-li výstupní hodnota je rovna žádané
bError // Chyba
nErrorId // Kód chyby

You might also like