Fórum témák
» Több friss téma |
Szia!
Ez rendben van, de a változót nem én hozom létre, hanem benne van az encoder makrójában.
Csinálj saját változót az enkódernek ...
A 24 impulzus/fordulatú mindenképpen jobb, mint a 6 imp./ford.
Ehhez a gyári makrókat kell variálni, ettől jóval egyszerűbb a saját enkóder kezelés, lásd a mellékelt példát az előző oldalon.
Nem értem, ne haragudj.
Ez a változó benne van a makróban, nem tudom megváltoztatni. Elmondanád, mire gondoltál?
Ha a makróba beírod a visszatérési értékhez a változót akkor avval a változóval fog dolgozni ennél egyszerűbben nem lehet enkódert használni .. (a read counter opcióban )
A hozzászólás módosítva: Feb 11, 2018
Megnéztem, tényleg egyszerű. Akkor beruházok egy ilyen enkódderre, nem baj ha van itthon.
Ha belenézel a makróba., látni fogod, hogy miről beszélek. SET_ENCODER_COUNTER.
Nincs visszatérési érték. Amit megadsz értéket, ami BYTE, azaz nem lehet több 255-nél, azt beírja encoder értéknek. A hozzászólás módosítva: Feb 11, 2018
Ha elolvasnád amit írok....
Idézet: És az ott kapott változóval már bármilyen számítást végezhetsz . „(a read counter opcióban )” A hozzászólás módosítva: Feb 11, 2018
Ha nem ilyen rébuszokban írnál, talán értenénk is. Nehezen, de leesett mit is szeretnél tudtunkra adni, lásd melléklet.
Ha nem irtóznál a gyári makróktól akkor már előbb is leesett volna , de tökéletesen elég csak a read counter makrót használni a többi nem kell semmi értelme állítgatni . Ha a változónak beállítod a kezdőértékét 499 re akkor bekapcsolásnál onnan indul a kijelzés , ha számítást csinálsz elágazással akkor nem számol tovább a beállított értéknél ..
A hozzászólás módosítva: Feb 11, 2018
Így már értem. Köszi a kiegészítést.
Annyira még nem vágom, hogy egyből makrót szerkesszek. Köszi Neked is kaqkk! Idézet: Mivel vannak benne itt-ott hibák, hiányosságok, ezért eme írtózás. Az eredeti enkóder kezelő makróban nincs benne a "Set_Internal_Counter" parancs, én raktam bele azt is. Annó eszmbe sem jutott, hogy a byte változó kevés lesz. Innen indult a dolog: Bővebben: Link.„Ha nem irtóznál a gyári makróktól” Flowcode 5-ös verzót használunk.
Az 5 ös verzióban is ugyanez a helyzet , nincs szükség a makró beállítására , bőven elég a változóval dolgozni. Min érték : a változó kezdőértéke + egy elágazás számítással
Max érték :elágazás számítással a példában 499 és 689 közt számol a változó.. A hozzászólás módosítva: Feb 11, 2018
Ha a linkelt problémát megnézed, akkor nincs más lehetőség, mint egyéni parancs létrehozása a makróban vagy manuálisan kezelni az enkódert. Nem a kiolvasással van probléma, hanem a maximalizálással (ne menjen túl egy értéken). A gyári enkóder kezelő makróban van egy balső számláló, amihez nem lehet hozzáférni normál esetben. Ez számol a háttérben, tulajdonképpen ez csökken vagy növekszik a megszakítások függvényében.
Úgy látszik még mindig rébuszokban beszélek , vagy el sem olvasod amit írok . Kár tépnem a billentyűket
Idézet: „Az 5 ös verzióban is ugyanez a helyzet , nincs szükség a makró beállítására , bőven elég a változóval dolgozni.” A hozzászólás módosítva: Feb 11, 2018
Fordítva, te nem érted a problémát. Néztem azt amit linkeltél, ez éppen úgy működik, ami miatt kell az egyedi parancs.
Ha te programodban eltekered az enkódert 689-ig, minden működik normálisan. Tovább tekered, látszólag nem történik semmi, mert az érték maximalizálva van 689-ben. Tegyük fel, rátekersz még tíz fordulatot, x változó továbbra is 689-en áll. A probléma akkor jön elő, ha csökkenteni akarod x értékét. Tekered vissza, nem történik semmi. Tíz fordulatot vissza kell tekerned, mire elkezd csökkeni x változó értéke. Amíg a túltekerés meg nem szűnik, amit a hozzáférhetetlen belső számláló számlál, nem tudod az enkóderrel x értékét megváltoztatni, ugyanis a gyári enkóder makró a belső számláló értékét adja vissza. Ott, ahol a minimális érték is meg van adva, mint a programodban, a másik irányban is jelentkezik ez a gond. Ha nem hiszed, próbáld ki.
Elhiszem neked , de ha ilyen hibákat tudtok kreálni miért nem jelzitek a fejlesztőnek ? Egyébként ha a változó minden + mozdulatnál újból 689 lesz a visszafelé mozdításnál onnan számol vissza , te próbáld ki ...
A hozzászólás módosítva: Feb 11, 2018
Az 5-ös verziót a fiókba tették. A 6-ost is, a 7-est pedig már meg sem merem nézni. Volt, aki segített a tesztelésben, gyalázatos eredmény született, lásd itt: Bővebben: Link.
Lepróbáltam azt, mikor is a BYTE típust átállítottam INT-re. Tökéletesen működik. 99-ig számol, utána nem számol tovább, bármennyivel is túltekerem. Visszafelé meg szépen csökkenti, ahogy kell.
A probléma, ahonnan indultam Bakman jól leírta, túltekerésnél annyit kellet vissza is tekerni, mint amennyivel túltekertem. Ez nem volt jó számomra. Köszönöm Mindkettőtöknek a segítséget! A hozzászólás módosítva: Feb 11, 2018
Kipróbáltam és nem úgy működik, hanem úgy, ahogy leírtam.
Egy két napig nem leszek gépközelbe, ugyhogy csak elvi síkon kérdem hogy tudjon járni min a fejem!
Ha olyan PIC-et választok amibe 2 UART van akkor két RS232 kommunikációt kell kitenni? És a Flow mint a switch-nél a komponensmakróba úgy fogja kezelni hogy RS232(1) és RS232(2) ?? Pont egy ilyen miatt mint fentebb felmerült, hogy egy PIC-en lenne egy APC is meg egy NEXTION is!
Tehát hogy a Flowba a munkalapra kétszer teszem ki az RS232 hiszen kettő van belőle ( mint egy lednél) és akkor a Flow ugyan ugy megkülönbözteti!
De akkor ahogy írtad, megkülönbözteti! Így egyszerűbb irányba gondolkodhatok!
Nem kétszer használod fel ugyanazon makrót. Úgy néz ki mintha két LED-et, két nyomógombot, két PWM kimenetet stb. használnál. A program megkülönbözteti a két UART csatornát.
Srácok!
Kimenetek állapotát hogy tudom lekérdezni? Pontosabban azt szeretném, ha tudnám, hogy például az RC1 kimenet milyen állapotba van? 1 vagy 0... Feltételes vizsgálatba kellene használnom, de külön változót nem akarok még berakni pluszba. Ha máshogy nem megy, akkor megoldom azzal.
Valahol ki, illetve valahol be is kapcsolod a kimenetet, a műveletet pedig valami alapján végzed el. Annak a feltételnek a vizsgálata nem jó?
Az az igazság, hogy a kimenet állapotát szeretném viszontlátni a HMI kijelzőjén, Checkbox használatával. Ehhez kellene. Meg egy valtozot ezért nem használnak, de ha nincs más megoldás...
A 101 Ft-os kérdés.. A port mitől változik meg? Ha nem magától akkor mi a kérdés?
Akkor így kérdezem...
A main függvény előtt bekapcsolom az RC1 kimenetet. Semmi feltétel, csak így egyszerűen. Ezt hogy kérdezem le, hogy vizsgálom a main függvényében? Van rá lehetőség? Azon kívül, hogy bekapcsolásakor egy rc1=1, kikapcsoláskor rc=0 műveletet végzek. A hozzászólás módosítva: Feb 19, 2018
|
Bejelentkezés
Hirdetés |