Centrum digitální optiky Pracovní balí£ek £. 2 - Digitální Ramanova spektroskopie a Ramanova optická aktivita
Software pro synchronní °ízení systém· pro p°esné polohování optických komponent
Interní i.£. RC201302
Rok vydání: 2013 Interní identika£ní £íslo: RC201302 Auto°i: Mgr. Radek elechovský, Ph.D., RNDr. Josef Kapitán, Ph.D. Vlastník: Univerzita Palackého v Olomouci, P°írodov¥decká fakulta
Spektrometr pro m¥°ení Ramanovy optické aktivity °e²ený v rámci projektu je komplexní za°ízení obsahující mnoºství prvk· pro polohování optických element·, p°i£emº jsou kladeny vysoké nároky na p°esnost a rychlost polohování jednotlivých komponent a jejich vzájemnou synchronnost. Zvlá²tní nároky jsou také kladeny na jejich dlouhodobou opakovatelnou p°esnost, robustnost k jejich vzájemnému elektromagnetickému ru²ení, kompaktní rozm¥ry apod. V rámci °e²ení projektu byly navrºeny a testovány systémy pro polohování samostatných optických komponent a pro synchronní °ízení vázaných komponent v sestav¥. Pro ú£ely °ízení polohovacích komponent a testování jejich vlastností byl v prost°edí C++ vyvinut p°edkládaný program.
1 Hardwarové vybavení Aktuální verze systému není vázána na ºádné konkrétní optické experimentální uspo°ádání, hardware a °ídící software slouºí k ov¥°ení schopnosti synchronního °ízení dvou krokových motor· a testování jejich parametr· a limit. Pro synchronní rotaci motor· s denovaným vzájemným posuvem byl vyvinut komplexní systém vyuºívající dva krokové motory Precistep RDM66200 s optickými závorami. Schema zapojení je uvedeno v p°íloze 1. Motory jsou °ízeny drivery Technosoft IDS640-8EI, p°i£emº jejich interní oscilátory jsou sp°aºeny p°es CAN sb¥rnici. Pomocí této funkce lze motory synchronn¥ °ídít v otev°ené smy£ce. Jeden z driver· je p°ímo p°ipojen k po£íta£i p°es rozhraní RS232, druhý driver je °ízen zprost°edkovan¥ p°es první driver prost°ednictvím CAN sb¥rnice. Pro nastavení a kontrolu polohy kaºdého z motor· jsou k motor·m p°ichyceny jednoduché sníma£e polohy realizované optickými závorami a idnexovacím mechanickým prvkem. Signály z optických závor jsou p°ivedeny jednak na vstupy driveru a jednak na vstupy programovatelného procesoru. Jedno£ip v obvodu slouºí k nezávislému monitorování chování obou motor· a jejich p°ípadnému ovládání p°es digitální vstupy driveru. Procesor je p°ipojen p°es USB k po£íta£i, komunikace probíhá na virtuálním COM portu. Jedno£ip je napájen z USB po£íta£e a kv·li elektromagnetickému ru²ení je kompletn¥ galvanicky izolovaný od driver· pomocí opto£len· a opticky izolovaných digitálních vstup· driver·.
2 Funkcionalita systému Motory jsou °ízeny v otev°ené smy£ce pomocí PWM (pulse width modulation) signál· generovaných drivery. Motor má 200 krok· na jednu oto£ku, p°i£emº drivery umoº¬ují pomocí PWM °ízení rozd¥lit jeden krok na 256 mikrokrok·. Ovládání jednotlivých motor· je zaji²t¥no pomocí knihovny TLM LIB, p°i£emº samotná komunikace mezi drivery a po£íta£em probíhá p°es RS232 rozhraní. Skute£nou polohu kaºdého motoru od polohy nastavené lze kontrolovat pomocí optické brány, jejíº pulsy jsou p°ivedeny jednak na vstup driveru a jednak na vstup programovatelného procesoru. Signál od optické závory p°ivád¥ný do driveru slouºí k nastavení nulové polohy motoru (tzv. homing) a k periodické kontrole p°esnosti polohování jednou za oto£ku. Signál od optické závory p°ivád¥ný do programovatelného jedno£ipu slouºí k p°esnému m¥°ení periody kaºdého z motor· a k m¥°ení jejich vzájemného fázového posunutí. asové údaje m¥°ené mikroprocesorem jsou p°ená²eny p°es USB (virtuální seriový port) do po£íta£e, který slouºí jednak k monitorování stability otá£ek motor· a jednak lze na jejich základ¥ kompenzovat vzájemnou fázi motor· (panel Feedback).
3 Popis programu Dané zapojení spolu s vyvinutou aplikací v prost°edí C++ umoºnilo testování systému v r·zných konguracích. Uºivatelské rozhraní programu ukazuje obrázek 1. V¥t²ina funkcí programu je dublována pro samostatné nezávislé °ízení jednotlivých motor·, synchronní °ízení je zaji²t¥no panely Feedback, M-S synchronized triggered mode a Slave mode.
3.1 Funkce pro samostatné °ízení motor· Tla£ítko Init v panelu Initialization slouºí k inicializaci komunikace s drivery na pat°i£ném seriovém portu a nastaví obecné parametry systému. Je-li zatrºeno polí£ko sync, jsou interní oscilátory jednotlivých
Obrázek 1: Uºivatelské rozhraní pro synchronní °ízení motor· driver· sp°aºeny p°es CAN sb¥rnici. P°íkazy pro nezávislé °ízení jednotlivých motor· jsou dublovány v panelech AXIS 1 a AXIS 2. Panel Mode of operation umoº¬uje zvolit typ pohybu pro celou aplikaci. Pomocí panelu Add microsteps lze oto£it motorem v·£i aktuální poloze o daný po£et mikrokrok· s daným zrychlením, zpomalením, p°ípadn¥ zrychlením druhého °ádu pro typ pohybu s-curve. Panel Manual control umoº¬uje rozto£it motor na konstantní otá£ky nebo pootá£et motorem manuáln¥ (motor se za£ne otá£et stisknutím tla£ítka cw, ccw a zastaví se s jeho uvoln¥ním). Panel Cycle testing slouºí pro cyklické dlouhodobé testování systému a panel Homing pro nastavení motoru do nulové polohy a ov¥°ení p°esnosti polohování. Panel Absolute actual position ukazuje aktuální absolutní polohu motoru a to v mikrokrocích a v celých otá£kách a úhlových stupních. V panelu HW control lze nastavit °ídící proud motor· a v p°ípad¥ pot°eby resetovat daný driver z poruchového módu (nap°. krátkodobé nebo dlouhodobé p°etíºení, p°ekro£ení teploty motory, apod.).
3.2 Funkce pro synchronní °ízení motor· Synchronn¥ ovládat motor je moºné dv¥ma módy, které se nastavují pomocí dvou panel·. Panel Slave mode vyuºívá funkcí knihovny TML LIB, které umoº¬ují p°imknout pohyb jednoho motoru k druhému s daným pom¥rem. Jakmile je slave mód aktivován, druhý motor (AXIS 2) kopíruje v²echny pohyby prvního motoru v daném pom¥ru. Z vývojového hlediska je tato metoda velmi elegantní, °ízení driver· probíhá automaticky na úrovni rmwaru driver·, komunikace mezi drivery je zaji²t¥na p°es CAN sb¥rnici. Z hlediska aplikace tohoto módu pro ú£ely p°esného synchronního polohování optických prvk· tento systém °ízení selhává. Druhý motor se opoº¤uje za prvním motorem, £ímº pádem dochází ke zm¥nám vzájemné fáze motor·. Druhý zp·sob synchronizovaného °ízení motor· je tzv. spou²t¥cí mód (panel Feedback spolu s panelem M-S synchronized triggered mode), který navíc nabízí dv¥ moºnosti, jak synchronizace dosáhnout. První princip °ízení (mód wait for trigger) je zaloºen na tom, ºe druhý motor je spou²t¥n p°esn¥ v okamºiku, kdy je první motor v dané, p°esn¥ denované poloze, p°i£emº zrychlení druhého motoru je spo£ítáno tak, aby po dosaºení konstantních otá£ek druhého motoru byly oba motory v poºadované pozici a to£ily se poºadovanou rychlostí. Aby tato metoda fungovala, musí nutn¥ být druhý motor p°ed spu²t¥ním tohoto módu v dob°e denované pozici, jeº se dá nastavit pomocí p°íkaz· v Homing panelu. Druhý zp·sob synchronizovaného °ízení spo£ívá v tom, ºe motory jsou ihned rozto£eny na poºadovanou rychlost bez
ohledu na jejich fázi a v pr·b¥hu konstantních otá£ek je jeden z motor· °ízen¥ p°ibrzd¥n/urychlen tak, aby se jejich vzájemný fázový posuv dostal na poºadovanou hodnotu. Frekvence a fáze motor· je p°esn¥ m¥°ena pomocí jedno£ipu a zasílána p°es virtuální COM port do po£íta£e, který spo£ítá parametry "brzdného" pohybu a zadá je k vykonání driveru. Celý systém funguje velmi dob°e. Po jednorázové kompenzaci sice rozdíl skute£né fáze od poºadované není nulový, ale spu²t¥ním více kompenza£ních cykl· jde iterativn¥ k nule. Samostatný panel Feedback slouºí jednak k vý²e popsané metod¥ kompenzace vzájemné fáze motor· tak°íkajíc "za b¥hu" motor·, jednak slouºí k monitorování p°esnosti rychlostí jednotlivých motor· a jejich vzájemné fázi. Pomocí tla£ítka Open se inicializuje komunikace s jedno£ipem m¥°ícím jednotlivé £asové zna£ky. Na jejich základ¥ se po stla£ení tla£ítka Compesate now spo£ítá prol pohybu a zadá se k vykování driveru. Tla£ítko Log to file slouºí ke kontinuálnímu sb¥ru dat do souboru na disku pro následné vyhodnocení stability systému.
3.3 Poznámka k programu v jedno£ipu Program pro jedno£ip je psán v AVR-GCC v prost°edí AVR Studio 4.19, procesor je taktován externím krystalem s frekvencí 11059200 Hz. M¥°ení frekvencí motor· a jejich vzájemného fázového zpoºd¥ní je realizováno 16-bitovým £asova£em, p°i£emº zdroj pro £asova£ je odvozen od systémových hodin d¥li£kou 1x. P°esné m¥°ení £asových údaj· je zaji²t¥no pomocí vstupního zachycovacího registru £asova£e (INPUT CAPTURE REGISTER) a podp·rné funkce p°eru²ení. Tímto zp·sobem lze m¥°it doby trvání s rozli²ením jednoho taktu procesoru, tj. v na²em p°ípad¥ s p°esností cca 900ns. Komunikace s po£íta£em probíhá p°es standardní UART s p°enosovou rychlostí 115200bps, k po£íta£i fyzicky p°ipojený p°es FTDI p°evodník k USB rozhraní.
4 P°íloha 1 - schema zapojení systému