Hirdetés

Új hozzászólás Aktív témák

  • Helló DP_Joci!

    Én ezt úgy csinálom, hogy amikor a hajtásnak forognia kell, akkor 100 ms-onként mintát veszek a számláló értékéből (pozícióból) és kivonom belőle az előzőleg vett minta értékét, majd veszem az eredmény abszolút értékét.
    Így megkapom az egy tized másodperc alatt megtett út nagyságát. Ha ez néhány másodpercen keresztül túl kicsi vagy túl nagy, akkor hibát jelez.
    Írtam erre egy blokkot.

    Azt kell jól kitalálni hogy milyen gyakoriságú legyen a mintavétel.
    Ha az encoder felbontása kicsi vagy az üzemszerű mozgás nagyon lassú is lehet, akkor a tized mp lehet hogy rövid. Illetve jól kell meghatározni a határértéket amin kívül hibajelzés keletkezik.

    Rosszul megválasztott értékekkel hamis hibajelzéseket ad, vagy a valós meghibásodást későn veszi észre.

    Ez észreveszi ha nem jönnek impulzusok az encoderről. Azt viszont nem feltétlenül, ha az encoder tengely és a hajtás kapcsolata elfordul egymáshoz képest (pl. eltörik az encoder kuplung, de egymáshoz ér még a két fele és hajt, de néha kihagy egy-egy kört).
    Ezzel ugyanis keletkezik működés közben egy pozíció offset, az meg géptől függően törést is okozhat.

    Lehet egy ellenőrző pontot (szenzort) tenni valahova a mozgás útjába ahol gyakran halad el. Amikor a szenzor érzékel, akkor meg kell nézni, hogy az encoder pozíció szerint is ott van-e. Ezt nyilván egy pozíció ablakkal kell vizsgálni. Ha az ablakon kívül érkezik a szenzorról impulzus, vagy az ablakon belül nem érkezik róla impulzus, akkor pozicionálási hiba van.

    Szia Szirty,
    Köszi a leírást.
    Most úgy oldottam meg a dolgot, hogy amikor mozgás van, akkor veszem a HSC aktuális értékét és az előző ciklus értékét. Ha ez a 2 érték egyenlő pl. 50ms ig, akkor azt mondom, hogy hiba van.

    A te megoldásodat használtam régen, de most győzött a lustaság. Majd ha lesz időm, akkor megírom ezt a dolgot Tia portálos verzióra is. :)

    üdv.
    J

Új hozzászólás Aktív témák