[elektro] (C) programozási kérdés

hg12345 hg12345 at freemail.hu
Sun Nov 20 12:55:22 CET 2011



Andras Huszti <kyrk at villamvadasz.hu> írta:
>Hello!>
>
> Van erre valami értelmes szabály ami ezt kikerüli?>
Van. Ugy kell felepiteni a programot, hogy kulonallo modulokbol alljon>
es a modulok a komplex funkciokat fugvenyek formajaban retsek el.>
Tovabba adatokat csak fugvenyhivasokkal szabad atadni. A moduloknak>
"maguktol" kell mukodniuk. Pl a GUI modul megkapja valami infot>
fuggvenyhivason keresztul, ezt elmenti valami belso valtozoba. Majd ha a>
sajat fociklusa felhivodik elintezi a kiirast. Igy a hivo fel nincs>
blokkolva csak addig amig elmentodik az adat, nem kell megvarnia a>
koltseges GUI frissitest.>


Na pont itt van a problémám. A programok különálló modulokként írom, de az egész rendszer teljesen összefügg. Nincs GUI rendszerben. 
Nem tudom hogyan szedjem szét, hogy az összfüggések megmaradjanak. Majdnem minden adat öröklödéssel keletkezik, ami a létezését/hozzáférését ill az tipusát is megváltoztathatja. (normál C).
Az adatok egy közös  felületen (program) érhetőek el, de ez a felület minden modullal kapcsolatbabn áll többszörös áttéten keresztűl.

pl. a bemeneti modulban megváltoztatom az analóg bemenet tipusát, akkor ez az összes többi modulra kihat. Esetleg 5-6 áttét után egy kimeneti modulban megjelenik, bekapcsolja vagy a modull állíthatóságát 
változtatja.....
 

>
A moduloknak altalaban a kovetkezo interfeszeket erdemes letrehozni:>
- configuracio: ide kell rakni a forditasidobeli konfigokat, pl defineok>
- work: ide kell rakni az init es do fuggvenyeket. Ez elobbit egyszer>
kell hivni, az utobbit foprogrambol ciklikusan>
- interrupt: ide kell rakni az interruptokat. Foleg 1ms, illetve egyeb.>
- user funkciok: ide jonnek azok a funkciok amit a tobbi modul hasznalni>
fog.>
>
A fenti rendszerrel elerheto, hogy minden modul csak a user funkciokat>
includolja, a tobbire nincs szuksege. Es persze csak azokat amikre>
szuksege van. Kialakul egy fa struktura, hogy mely modul melytol fugg.>
Ha mindenki mindenkitol fugg, akkor rosszul van megtervezve a modulok>
kozott a feladatok kiosztasa.>

Értem. már elözöleg írtam, 

Van egy univerzális szabályozó, ezek belül nem sokban különböznek egy PLC-től, csak annyi a különbség, hogy amit egy PLC-ben a programozó felépít (programoz) az itt a léhetséges minél nagyobb variációk megtartása mellett beállíthatóvá teszik, nem kell programozni csak konfigurálni. 

Van egy jelentős méretű konfigurációs tábla, nem egy PC-s registry, de pl 20000 kapcsoló állítás és ennek lehetséges variációi.  Kiemelném a "lehetséges"-t. Ami nem lehetséges azokat a beállításokat a felhasználó elöl rejteni kell, mert meghaladja az befogadási akaratot. (Mindenki azt várja egy készüléktől, elözetes képesítés nélkül tudja a folyamatot kezelni!, legtöbbször nem a készülékkal van a probléma hanem a folyamattal...:-)

Nincs olyan adat ami ellenörzés nélkül bármely modulhoz jutna. Mind a készülék szembontjából az első modulból befolyásolható az adat és a többi modul, program viselkedés ugyan így a készülék szempontjából az utolsó modul beállítása is átszervezhető a teljes készülék viselkedést.

Ez megoldható, ez se lesz az első. A felépített rendszer viszonylag jól kézbentartható. 

De a közös felület adat kezelés, akaratomon ellenére (ettől féltem amikor C-ben kezdtem programozni) 
az összes többi modullal összefügg, igy azok includjainak egy részét tartalmazza.

------

Láttam már library graf ábrákat, ha ilyet kéne rajzolnom, akkor egy nagy-nagy pokháló lenne, mert a dolgok nem csak a kezdetektől függőnek....


>
Koszonom>
>
----------------------------------------->
          elektro[-flame|-etc]>




More information about the Elektro mailing list