Čas cyklu úkolu je jednou z praktických hodnot, které mohou inženýři využít k pochopení chování aplikace řízení během běhu programu. Pokud úkol trvá déle, než se očekává, může to ovlivnit časování procesu, synchronizaci, odstraňování problémů a stabilitu systému.
CODESYS je vývojové prostředí pro programování řídicích aplikací dle normy IEC 61131-3. Používá se v automatizačních a řídicích systémech, kde úlohy musí spolehlivě běžet v definovaných časových podmínkách.
V projektech CODESYS může sledování skutečné času cyklu úkolu pomoci inženýrům optimalizovat výkon, identifikovat úzká místa a odhalit časové chování, které může ovlivnit sekvenci stroje. To je obzvláště důležité, když úlohy řízení, komunikační úlohy nebo funkce související s pohybem musí zůstat v konkrétním časovém okně.
Tento tutoriál ukazuje dva způsoby měření skutečného času cyklu úkolu v CODESYS:
Obě metody mohou být užitečné. Správná volba závisí na přesnosti, kterou potřebujete, a na hloubce analýzy chování úkolu.
Čas cyklu úkolu popisuje, jak dlouho trvá konkrétní úkol nebo operace v řídicím systému. V aplikaci řízení tento údaj pomáhá zjistit, zda kód běží v očekávaném časovém rozmezí.
Sledování času cyklu úkolu může podpořit několik technických úkolů:
Stabilní čas cyklu úkolu nevyřeší každou potíž s řízením, ale poskytne inženýrům užitečný výchozí bod. Pokud je skutečný čas cyklu delší, než se očekávalo, nebo se výrazně liší, aplikace může vyžadovat podrobnější analýzu.
V CODESYS úkol definuje, kdy a jak je program nebo funkce vykonávána. Čas cyklu úkolu je čas potřebný k dokončení tohoto vykonání.
Například cyklický úkol může být nakonfigurován k provádění každých několik milisekund. Pokud kód uvnitř úkolu trvá příliš dlouho, řízení nemusí úkol dokončit v očekávaném časovém oknu. To může ovlivnit výkon, synchronizaci procesů nebo chování pohybu.
Měření času cyklu úkolu může být obtížné, protože skutečná hodnota může být ovlivněna několika faktory:
Proto je důležitá metoda měření. Jednoduchá metoda měření času může být dostačující pro základní kontroly. Přesnější metoda může být potřebná, když je požadováno měření času na úrovni mikrosekund nebo specifické informace o úkolu.
Jedním ze způsobů, jak měřit uplynulý čas v CODESYS, je použití vestavěné funkce TIME().
Základní logika je jednoduchá:
1. Zaznamenejte počáteční čas před spuštěním části kódu
2. Proveďte kód, který chcete měřit
3. Zaznamenejte koncový čas po spuštění části kódu
4. Odečtěte počáteční čas od koncového času
5. Použijte výsledek jako změřený uplynulý čas
V příkladu jsou použity dva cykly FOR ke simulaci časově náročného úkolu. Funkce TIME() zachycuje čas před a po sekci cyklu a rozdíl mezi těmito hodnotami poskytuje odhadovanou dobu trvání úkolu.
Tato metoda může být užitečná, pokud potřebujete rychlý indikátor toho, jak dlouho trvá určitá část kódu.
Příklad ukazuje naměřený čas cyklu úkolu, který se obvykle pohybuje od 6 do 8 milisekund. Ke sledování měřené proměnné v průběhu času může být přidána stopa. V příkladu čas cyklu občas skočí na 10 milisekund.
Na této odchylce záleží. Pokud je softwarový pohybový úkol nastaven s časem cyklu 4 milisekundy nebo méně, překročení tohoto nastaveného času cyklu může způsobit výjimky. To činí načasování úkolu obzvláště důležitým pro aplikace s vysokými požadavky na pohyb nebo synchronizaci.
Funkce TIME() je užitečná, protože je jednoduchá. Vyžaduje málo kódu, snadno se chápe a lze ji rychle přidat do stávajícího projektu.
Může být dobrou volbou, když:
Funkce TIME() má však také své limity. Poskytuje hodnoty s přesností na úrovni milisekund. To nemusí být dostatečně přesné pro aplikace vyžadující analýzu na úrovni mikrosekund.
Tato metoda také vyžaduje ruční sledování času. Musíte určit, kde měření začíná, kde končí a jak se vypočítává uplynulý čas. To je přijatelné pro jednoduché kontroly, ale může být méně pohodlné, když potřebujete specifické informace o době běhu úkolu v rámci většího programu.
Pro přesnější měření cyklického času úkolu bývá knihovna CmpIecTask obvykle lepší volbou.
Knihovna CmpIecTask je součástí CODESYS. Tato knihovna poskytuje funkce pro přístup k informacím z IEC Task Manageru.
Jakmile je knihovna přidána do projektu CODESYS, inicializace vyžaduje pouze malé množství kódu. Po inicializaci může program přistupovat ke struktuře s podrobnými informacemi o úkolech, včetně hodnot, jako je aktuální čas cyklu úkolu a průměrný čas cyklu.
Tento přístup je více specifický pro úkoly než ruční měření času před a po části kódu. Místo vytváření vlastní logiky časování využíváte informace o úlohách poskytované přes knihovnu.
V původním příkladu je použito stejné simulované pracovní zatížení, aby bylo možné porovnat metody měření. Rozdíl spočívá v tom, že knihovna CmpIecTask zpracovává informace o čase cyklu úkolu přímočařeji.
Knihovna CmpIecTask nabízí několik výhod, když potřebujete přesnější časování úloh.
Za prvé, může být flexibilně vestavěna do různých částí programu. To usnadňuje přístup k informacím o úlohách bez ručního umísťování měření začátku a konce času kolem každé části kódu.
Za druhé, knihovna spravuje záznam a výpočet informací o času cyklu úkolů. To snižuje manuální úsilí a snižuje riziko chyb v logice měření.
Třetím bodem je, že knihovna poskytuje hodnoty s rozlišením na mikrosekundy. To je přesnější než hodnoty získané funkcí TIME() a může být důležité pro aplikace s vyššími požadavky na časování.
Hlavní nevýhodou je, že knihovnu je nutné přidat do projektu CODESYS. Pro mnoho aplikací je to však malá daň ve srovnání s dodatečnou přesností a informacemi specifickými pro úkol, které poskytuje.
Obě metody vám mohou pomoci porozumět časování úkolů, ale nejsou stejně vhodné pro každou situaci.
Použijte funkci TIME(), když potřebujete jednoduchou, rychlou kontrolu a rozlišení na úrovni milisekund vám stačí. Je snadno implementovatelná a užitečná pro základní porovnání časování.
Použijte knihovnu CmpIecTask, pokud potřebujete přesnější informace o úlohách, chcete se vyhnout manuální logice časování nebo potřebujete rozlišení na úrovni mikrosekund pro analýzu výkonu.
Pro pohybové úlohy, synchronizační úlohy nebo aplikace řízení s přísnějšími požadavky na časování je knihovna CmpIecTask obvykle lepší volbou.
Načasování úkolu v CODESYS je obzvláště důležité, pokud je nutné vyhodnotit výkon řízení, pohybové chování nebo synchronizaci stroje při uvedení do provozu nebo řešení problémů.
V rámci softwarového prostředí Festo může být CODESYS součástí širšího inženýrského a řídicího pracovního postupu. Festo AX Controls podporuje deterministické řízení v reálném čase ve standardním programování podle IEC 61131-3, včetně CODESYS, a také podporuje vyšší programovací jazyky, jako jsou C/C++, C# a Python.
Festo Automation Suite vydání uvedení do provozu, programování a diagnostika. Umožňuje přenos zařízení AX Controls, jako je CEPE, z topologie do prostředí pro programování CODESYS bez dalších kroků konfigurace, takže uživatelé mohou přímo pokračovat v sekvenci stroje.
Použijte tento návod jako praktickou metodu CODESYS pro kontrolu časování úkolů. Poté pokračujte s Festo softwarem, licenčními možnostmi nebo vzdělávacími materiály, které odpovídají vašemu dalšímu kroku v oblasti strojírenství.