AVR- PLC
Sztrikó János
elektrolista at gradev.hu
Tue Aug 7 11:40:00 CEST 2007
Szlifka Tibor wrote:
> Gondolom nem publikus a kód,
Még nem tudom, mindkét megoldásnak megvan az előnye.
> de ha van időd, esetleg elméletben röviden leírnád hogyan és miként
> működik, ill. mit tud?
Csinálok majd működési diagramokat, az egyébként is hasznos.
> Esetleg egy folyamatábra?
Igen, ez jobb elnevezés :-)
> Kellene valami alap ékes magyarul, ami alapján elindulhatok, a neten
> kevés az info és azt sem értem, mert angol.
Az omron.hu-n találhatsz magyar nyelvű leírásokat, pl. a CQM1 vagy a CJ
sorozatnál. Nekem nagyon bejön az ő szintaktikájuk, nagyjából azt követem.
> Addig eljutottam, hogy az egész ciklikusan hajtódik végre, jellemzően
> 10ms-onként.
Néha jól jön a fix ciklusidő, de ennél az egyszerűbb megoldásnál az a
jó, ha a ciklusban nincsen időtag, a végrehajtások várakozás nélkül
követik egymást. De ahogy gondolod.
> Egy -célszerűen vizuálisan is olvasható- fájlból kiszedem a kódot,
> jellemzően szépen fel lehet úgy dolgozni, mint ami értelmező demót
> írtak az ldmicro progihoz. Aktuális változókat, bitállapotokat
> elmenteni, az értelmező pedig minden körben szépen lefuttatja a
> dolgokat az előbbiek figyelembe vételével. Ezzel nincs is gond, amíg
> a rung soros, de ha becsatlakozik valami párhuzamosan is, ami nem
> tiszta logikai elem, hanem pl. egy számláló, és ezt is be kell vonni
> a dologba, ott már akadok.
Egy feltételbe befűzött számláló is tiszta logikai elem: vagy elérte a
beállított értéket (nullát/maximumot), vagy nem. Egyébként ezeket
leggyakrabban összehasonlítja az ember valamivel (CMP), így kerül be a
feltételbe (kisebb, nagyobb, egyenlő).
> Az sem fér el a fejemben, hogy pl. a bemeneti nyomógomb prellt hogy
> szedi ki, hiszen ez nem fér bele 10ms-ba.
Ez már (PLC) programozás, de a bemenetek fizikai kialakításával is
megoldhatod. Az értelmező írásakor ez nem kérdés, illetve nem feladat.
> A kommunikáció további fejgörcs lesz.
Az értelmező lefut -> temp i/o memória írása a fizikai kimenetekre -> ha
van adat a bemenetei pufferban, akkor feldolgozás, ha van adat a
kimenetei pufferban*, akkor kiküldés -> ciklus tovább. Ez egyfajta
megvalósítás, csinálhatod megszakításból is.
*: az értelmező végrehajtott egy soros írási parancsot, aminek a
kimenete egy átmeneti pufferba került.
Ez egy módszer, de ez is mehet megszakításból.
> Egyelőre egy jó ladder szerkesztő kellene, mert az ldmicro sajnos nem
> tud .int fájlba menteni minden funkciót, abban pont azok nem
> használhatóak, amikkel én sem boldogulok majd könnyen, de ha
> értelmezendő kód sincs, akkor megette a fene az egészet. Te ladder
> szerkesztéshez saját progit írsz?
Fog hiányozni, de egyelőre megelégszem egy IL-fordítóval, aminek a
bemeneti (szöveges) állományát bármivel lehet szerkeszteni. Az
értelmezhető akár ezt is ehetné direktben, minimális kiegészítés az
egész, de az jócskán lelassítaná a működést. Most egy egész (32bit) egy
utasítás + utána 4 x 32 bit a paraméter (utasítástól függően int, uint,
struct)(lehet, hogy ez sok, majd a végén kiderül), ezt eszi az
értelmező, a szöveg feldolgozásához kellene egy csomó strcmp, atoi,
stb., ami enné a processzoridőt.
Ha ezek működnek (de fogok örülni :-)), akkor persze írni kell egy jó
létraszerkesztőt, de ez már egy másik felvonás...
More information about the Elektro
mailing list