A feladat-ciklusidő az egyik gyakorlati érték, amit a mérnökök használhatnak annak megértésére, hogy a vezérlő alkalmazás hogyan viselkedik futási idő alatt. Ha egy feladat a vártnál tovább tart, az befolyásolhatja a folyamatos időzítést, a szinkronizálást, a hibaelhárítást és a rendszer stabilitását.

A CODESYS egy fejlesztési környezet, amelyben vezérlő alkalmazások programozhatók az IEC 61131-3 szabványnak megfelelően. Az automatizálási és vezérlési rendszerekben használják, ahol a feladatokat megbízhatóan kell futtatni meghatározott időzítési feltételek keretein belül.

A CODESYS projektekben a tényleges feladati ciklusidő monitorozása segíti a mérnököket a teljesítmény optimalizálásában, a szűk keresztmetszetek azonosításában és olyan időzítési viselkedés felismerésében, amely befolyásolhatja a gép általános működését. Ez különösen fontos, amikor vezérlési feladatok, kommunikációs feladatok vagy mozgással kapcsolatos funkciók egy adott időzítési ablakon belül kell hogy maradjanak.

Ez az oktatóanyag két módot mutat be az aktuális feladati ciklusidő CODESYS-ben történő mérésére:

  • A beépített TIME() függvény használata
  • A CmpIecTask könyvtár használata

Mindkét módszer hasznos lehet. A megfelelő választás attól függ, hogy milyen pontosságra van szüksége, és milyen mélyen szeretné elemezni a feladatok viselkedését.

A feladat ciklusideje azt írja le, hogy egy adott feladat vagy művelet mennyi ideig tart egy vezérlőrendszerben. Egy vezérlő alkalmazásban ez az érték segít megérteni, hogy a kód az elvárt időzítési tartományon belül fut-e.

A feladat ciklusidejének monitorozása több mérnöki feladatot is támogathat:

  • Annak ellenőrzése, hogy egy feladat a beállított ciklusidőn belül marad-e
  • A futási időt növelő kódrészek azonosítása
  • Váratlan időzítési eltérések észlelése
  • A hibaelhárítás támogatása az üzembe helyezés során
  • A folyamat szinkronizálásának javítása
  • A vezérlő viselkedésének stabilizálásának segítése

Egy stabil feladatciklus-idő nem old meg minden vezérlési problémát, de hasznos kiindulópontot ad a mérnökök számára. Ha a tényleges ciklusidő hosszabb a vártnál, vagy erősen ingadozik, akkor szükség lehet az alkalmazás részletesebb elemzésére.

A CODESYS-ben egy feladat határozza meg, hogy mikor és hogyan kerül sor egy program vagy funkció kivitelére. A feladat ciklusideje az a időtartam, amely szükséges a kivitel befejezéséhez.

Például egy ciklikus feladat beállítható úgy, hogy néhány milliszekundumonként fusson. Ha a feladatban lévő kód túl sokáig fut, a vezérlő nem biztos, hogy befejezi a feladatot a várt időablakon belül. Ez érintheti a teljesítményt, a folyamat szinkronizálását vagy a mozgás viselkedését.

A feladat ciklusidejének mérése kihívást jelenthet, mivel a tényleges értéket számos tényező befolyásolhatja:

  • Rendszerterhelés
  • Hálózati késleltetés
  • Hardverteljesítmény
  • Feladatkonfiguráció
  • Szoftverarchitektúra
  • Kommunikációs viselkedés
  • A feladatban található kód mennyisége és szerkezete

Ezért fontos az intézkedési módszer. Egy egyszerű időzítési módszer elegendő lehet alapvető ellenőrzésekhez. Pontosabb módszerre lehet szükség, ha mikrosekundumos időzítésre vagy feladatspecifikus információkra van igény.

Egy egyszerű módszer az eltelt idő mérésére CODESYS-ben a beépített TIME() függvény használata.

Az alapvető logika egyszerű:
1. Rögzítse a kezdési időt a kódrészlet futtatása előtt
2. Hajtsa végre a mérni kívánt kódot
3. Rögzítse a befejezési időt a kódrészlet lefutása után
4. Vond le a kezdési időt a befejezési időből
5. Használja az eredményt mért eltelt időként

A példában két FOR ciklust használnak egy időigényes feladat szimulálására. A TIME() függvény rögzíti az időt a ciklusszakasz előtt és után, és az értékek közötti különbség adja a feladat becsült futási idejét.

Ez a módszer hasznos lehet, ha gyorsan szeretné megtudni, mennyi ideig tart egy kódrészlet.

A példában megfigyelt feladatciklus időtartama általában 6 és 8 milliszekundum között van. Egy nyomkövetést lehet hozzáadni, hogy figyelemmel kísérje az idővel mért változót. A példában a ciklusidő időnként 10 milliszekundumra ugrik fel.

A különbség számít. Ha egy soft motion feladat 4 milliszekundumnál kisebb ciklusidővel van konfigurálva, a megadott ciklusidő túllépése kivételeket okozhat. Ez különösen fontossá teszi a feladatidőzítést olyan alkalmazások esetén, amelyek szigorú mozgás- vagy szinkronizálási követelményeket támasztanak.

A TIME() függvény hasznos, mert egyszerű. Kevés kódot igényel, könnyen érthető, és gyorsan hozzáadható egy meglévő projekthez.

Jó választás lehet, amikor:

  • Gyors időzítési ellenőrzésre van szüksége
  • Ezredmásodperces felbontás elegendő
  • Egy adott kódszakaszt szeretne intézkedés alá venni
  • Az alkalmazásnak nincs szüksége nagy pontosságú időzítési adatokra

A TIME() függvénynek azonban szintén vannak korlátai. Ezredmásodperces felbontású értékeket biztosít. Ez azonban nem lehet elég pontos azokhoz az alkalmazásokhoz, amelyek mikro-másodperces szintű elemzést igényelnek.

Ez a módszer szintén kézikönyv szerinti időkövetést igényel. Meg kell határozni, hogy az intézkedés honnan indul, hol ér véget, és hogyan számítják ki az eltelt időt. Ez egyszerű ellenőrzésekhez elfogadható, de kevésbé kényelmes, ha feladatra vonatkozó futási információkra van szükség egy nagyobb program esetén.

Pontosabb feladatciklusidő-intézkedéshez általában a CmpIecTask könyvtár jobb választás.

A CmpIecTask könyvtár a CODESYS-szel együtt érkezik. Ez a könyvtár funkciókat biztosít az IEC Task Manager információinak eléréséhez.

Miután a könyvtár hozzáadódik egy CODESYS projekthez, az inicializáláshoz csak néhány kódsorra van szükség. Az inicializálás után a program hozzáférhet egy struktúrához, amely részletes feladatinformációkat tartalmaz, beleértve az aktuális feladatciklus-időt és az átlagos ciklusidőt.

Ez a megközelítés specifikusabb a feladat szempontjából, mint a kód egy-egy részének előtti és utáni idő kézi mérésével. Ahelyett, hogy saját időzítési logikát hozna létre, használja a könyvtár által biztosított feladatinformációkat.

Az eredeti példában ugyanaz a szimulált munkaterhelés kerül felhasználásra, így az intézkedés módszerei összehasonlíthatók. A különbség az, hogy a CmpIecTask könyvtár közvetlenebben kezeli a feladat ciklusidő-információit.

A CmpIecTask könyvtár számos előnyt kínál, ha pontosabb feladatütemezésre van szükség.

Először is, rugalmasan beépíthető a program különböző részeibe. Ez megkönnyíti a feladat információinak elérését anélkül, hogy manuálisan kellene elhelyezni a kezdő- és befejezési időpont-méréseket minden egyes kódrészlet köré.

Másodszor, a könyvtár kezeli a feladatciklus-idő információinak rögzítését és kiszámítását. Ez csökkenti a manuális munkát és mérsékeltebbé teszi a kockázatot a mérési logikában fellépő hibák tekintetében.

Harmadszor, a könyvtár mikroszekundumos felbontással biztosít értékeket. Ez pontosabb, mint a TIME() függvénnyel nyert értékek, és fontos lehet szigorúbb időzítési követelményekkel rendelkező alkalmazásokhoz.

A fő hátrány az, hogy a könyvtárt hozzá kell adni a CODESYS projekthez. Azonban sok alkalmazás esetében ez kis kompromisszum az általa nyújtott extra pontossághoz és feladat-specifikus információkhoz képest.

Mindkét módszer segíthet megérteni a feladat időzítését, de nem minden helyzetre egyformán alkalmasak.

Használja a TIME() függvényt, ha egyszerű, gyors ellenőrzésre van szükség, és a milliszekundumos szintű pontosság elegendő. Könnyen megvalósítható, és hasznos alapvető időzítési összehasonlításokhoz.

Használja a CmpIecTask könyvtárat, ha pontosabb feladatinformációkra van szüksége, el akarja kerülni a kézi időzítési logikát, vagy mikroszekundumos szintű pontosságra van szüksége teljesítmény-elemzéshez.

Mozgási feladatokhoz, szinkronizációs feladatokhoz vagy szigorúbb időzítési követelményekkel rendelkező vezérlő alkalmazásokhoz általában a CmpIecTask könyvtár a jobb választás.

CODESYS feladat időzítése különösen fontos, amikor a vezérlő teljesítményét, mozgási viselkedését vagy gép szinkronizációját kell értékelni üzembe helyezés vagy hibaelhárítás során.

A Festo szoftver környezetben a CODESYS része lehet egy szélesebb mérnöki és vezérlési munkafolyamatnak. A Festo AX Controls támogatja a determinisztikus valós idejű vezérlést IEC 61131-3 szabvány szerinti programozásban, beleértve a CODESYS-t is, valamint támogatja a magas szintű nyelveket, mint például a C/C++, C# és Python.

A Festo Automation Suite támogatja az üzembe helyezést, a programozást és a diagnózist. Át tudja vinni az AX Controls eszközöket, például a CEPE-t, a topológiából a CODESYS programozási környezetbe további konfigurációs lépések nélkül, így a felhasználók közvetlenül folytathatják a gépszekvenciát.

Használja ezt az útmutatót egy gyakorlati CODESYS módszerként a feladat időzítésének ellenőrzésére. Ezután folytassa a Festo szoftverrel, licenceléssel, vagy a következő mérnöki lépéshez illeszkedő tanulási forrással.

  • A feladat ciklusideje azt mutatja meg, hogy egy adott feladat vagy művelet mennyi időt vesz igénybe egy vezérlőrendszerben.
  • A feladatciklus idő felügyelete segíti a mérnököket a teljesítmény optimalizálásában, a szűk keresztmetszetek felismerésében és a rendszer stabilitásának javításában
  • A TIME() függvény könnyen használható és gyorsan bevezethető, ugyanakkor ezredmásodperces felbontást biztosít
  • A CmpIecTask könyvtár feladat-specifikus információkat és mikroszekundumos felbontást biztosít
  • Használja a TIME() függvényt egyszerű ellenőrzésekhez, és a CmpIecTask könyvtárat pontosabb ciklusidő-elemzéshez
  • Precíz mozgásvezérlés vagy szinkronizálási feladatok esetében gyakran nagyobb figyelmet kell fordítani a tényleges feladatidőzítésre
  • A Festo szoftver és támasz erőforrásai segíthetik a felhasználókat a CODESYS hibaelhárítástól az üzembe helyezésen, licencelésen és peremvezérlés megvalósításon át