Upload
dinhquynh
View
228
Download
5
Embed Size (px)
Citation preview
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
1
Naslov: Naručilac:
Period realizacije: Verifikovano od:
U upotrebi od: Korisnik TR:
Način korišćenja TR:
Tip tehničkog rešenja: Autori:
Univerzalni robotizovani rendgenski sistem Digraf-C JR Digital X-ray d.o.o. Niš 2006-2007. Jugorendgen AD Niš, direktor 2006. Visaris AD Beograd Redovna upotreba na Institutu za radiologiju i onkologiju u Beogradu M81 Novi Proizvod... Goran S. Đorđević1, Milan Rašić1, Saša Anđelković1, Ivan Velićković1, Nenad Vukić1, Nebojša Mitrović1, Milutin Petronijević1, Svemir Popić2 1 Elektronski Fakultet U Nišu 2 Institut Mihajlo Pupin, Beograd
Univerzalni Robotizovani Rendgenski Sistem Digraf-C
Osnovni podaci o tehničkom rešenju
Predloženo rešenje se koristi na sledeći način:
Digraf-C je najsavremeniji integrisani radiografski sistem danas. Prvi proizvedeni primerak
instaliran je na Institutu za onkologiju i radiologiju u Beogradu, posredstvom firme (sistem-integrator)
Visaris AD. Sistem je i dalje u upotrebi, od jeseni 2005. godine. Drugi instalirani primerak je na
Institutu za reumatologiju u Beogradu. http://www.visaris.com/index.asp?j=en&item=117
Oblast na koju se tehničko rešenje odnosi je:
Automatsko upravljanje, robotika, proizvodnja rengden aparata.
Problem koji se tehničkim rešenjem rešava:
Sistem Digraf-C poseduje dve ruke-pozicionera sa po 5 stepeni slobode i pacijent sto sa tri ose
kretanja. Sve zajedno, integrisano je u cilju pozicioniranja izvora i prijemnika zračenja oko pacijenta
postavljenog na stolu. Praktično, moguće je obaviti sve tehnike snimanja u savremenoj radiologiji. U
trenutku projektovanja sistema Digraf-C jedini proizvođač koji je koristio jedan prijemnik, kao i kod
Digraf-C, bio je Siemens, na sistemu Aristo. Naša verzija sličnog sistema imala je funkcionalne
sličnosti u kretanju i načinu upotrebe ali bitno drugačiji sistem upravljanja i planiranja kretanja uz
izbegavanje kolizija.
Stanje rešenosti tog problema u svetu:
U trenutku gradnje Digraf-C, samo je Siemens imao sličan sistem, Aristo. Cena Siemens-ovog
sistema bila je petostruko viša, oko 1.000.000 EUR. Ubrzo potom, 2007. Godine, pojavilo se još
nekoliko proizvođača sa sistemima sličnih performansi, ali i dalje sa znatno višom cenom od Digraf-C.
Danas su to sistemi koji se ubrzano instaliraju u bolnicama širom sveta upravo zbog svoje
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
2
fleksibilnosti i univerzalnosti. U ovom trenutku, daljim usavršavanjem, Visaris AD Beograd preuzeo
je proizvodnju Digraf-C od firme Jugorendgen AD Niš.
Suština tehničkog rešenja:
Projektovan je kompletno nov, robotizovani rendgenski stativ. Projektovana je upravljačka
jedinica na bazi PC kontrolera i procesora kretanja firme Galil MC. Razvijen je softver na niskom i
visokom nivou. Razvijen je univerzalni planer kretanja sa ugrađenim algoritmom izbegavanja kolizije.
Sistem je praktično realizovan, instaliran u Institutu za radiologiju u Beogradu i dalje je u upotrebi,
već više od 4 godine.
Karakteristike predloženog tehničkog rešenja su sledeće:
Digraf-C je robotizovani radiografski sistem. Preciznost pozicioniranja u prostoru je 0.5cm.
Može se koristiti u automatskom radu, uz pozicioniranja i sinhronizovana kretanja svih osa kretanja,
ali i u poluatomatskom i manuelnom radu. Kretanje stola ograničava na koliziju kretanja dve robotske
ruke. Sistem bezbednosti projektovan je tako da vrši nadzor nad svim komponentama sistema, od
izvora za napajanje do svih senzora. Prestanak rada i oporavak od havarije posebno je programiran i
odvija se u skladu sa svim standardima funkcionalne bezbednosti u medicini.
Opis tehničkog rešenja
Kratak opis
Digraf-C je najsavremeniji integrisani radiografski sistem danas. Prvi proizvedeni primerak
instaliran je na Institutu za onkologiju i radiologiju u Beogradu. Projektovan je kompletno nov,
robotizovani rendgenski stativ. Projektovana je upravljačka jedinica na bazi PC kontrolera i procesora
kretanja firme Galil MC. Razvijen je softver na niskom i visokom nivou. Razvijen je univerzalni
planer kretanja sa ugrađenim algoritmom izbegavanja kolizije.
Namena Digraf-C
Digraf-C je savremeni univerzalni uređaj za digitalnu radiografiju koja obuhvata praktično sve
potrebne radiografske tehnike sa jednim digitalnim detektorom zračenja. Predmet ovog tehničkog
rešenja je robotizacija u sveobuhvatnom smislu ove reči (projektovanje, pogon, izrada upravljačkog
softvera, algoritmi planiranja, izbegavanje kolizije i izrada prototipa i proizvodne dokumentacije).
Digraf-C je potpuno programabilni automatski robotski pozicioner flet panela i izvora zračenja.
Upravljački sistem dozvoljava proizvoljno korišćenje motorizovanog, plivajućeg, stola za pacijenta pri
čemu se zahtevane komande pozicioniranja radiografske opreme oko pacijenta samostalno
prilagođavaju zatečenoj poziciji pacijenta, bez opasnosti od sudara sa pacijentom ili drugom opremom.
Neke osnovne karakteristike su:
- Sve rutinske tehnike snimanja omogućene su automatski, polu-automatski ili ručno.
- Moguća je instalacija čak i u relativno malim prostorijama.
- Veliki broj prethodno uprogramiranih tehnika snimanja moguće je kombinovati sa novim
zahtevima kao i kasnije memorisanje novih tehnika i pozicija.
- Automatski planer kretanja, potrebno je zadati samo novu poziciju.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
3
Tehničke karakteristike uređaja.
Digraf-C se sastoji od dve robotske ruke svaka sa po 5 s.s, pacijent stola sa motorizovanim
liftom i plivajućom tablom, kontrolera, sistemskog softvera, upravljačkog softvera i korisničkog
interfejsa.
Pogonski-senzorski sistem sastoji se od DC motora Maxon RE40, inkrementalnih enkodera,
senzora pozicije i graničnih prekidača, elektromagnetnih spojnica i elektromagnetnih kočnica na
pogonskim osovinama.
Upravljački sistem sagrađen je oko Galil procesora kretanja i odgovarajućih drajverskih sistema.
Programiranje kretanja sistema je ostvareno sistemskim komandama u okruženju Galil
kontrolera kombinovano sa C naredbama razvijenim u standardnom C kompajleru. Time su
obezbeđene osnovne funkcije kretanja:
- inicijalizacija sistema,
- pozicioniranje u tačku,
- praćenje pravolinijske trajektorije u 3D prostoru,
- praćenje trajektorije sa via tačkom,
- prelazak iz tehnike u tehniku snimanja,
- izbegavanje prepreka na podu, zidovima i usled pozicioniranja pacijent-stola.
Uređaj na osnovu zadatog anatonskog preseka automaski pozicionira rengensku aparaturu u
poziciju za snimanje. Izbor anatomskog preseka kao i odgovarajuće vrednosti parametara rentgenskog
snimaka treba da budu ponuđena kao podrazumevana opcija korisniku. Korisnik može, ali ne mora, da
prihvati ova podrazumevana – preporučena podeševanja.
Slika. Digraf-C instaliran na Institutu za Radiologiju i Onkologiju KC Srbije u Beograd
u saradnji sa JR-Digital X-Ray, Niš, i Visaris AD, Beograd
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
4
Detalji tehničkog rešenja izloženi u ovom izveštaju
Neke najvažnije celine sistema prikazane su u narednim delovima tehničkog rešenja:
- Rastavna kutija
- Dozvola kretanja
- Veza sa mikroprekidačima
- Napajanje
Rastavna kutija.
Slika _. Električna šema rastavne kutije.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
5
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
6
Dozvola kretanja
Relejna pločica preklapanja dozvole kretanja i premošćenja graničnih prekidača sa indikacijom
Slika_. Glavno kolo za dozvolu i prekid kretanja
Napajanje
Slika_. Principska šema napajanja
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
7
Slika_. Šema veze BREAK BOX-ova za plafostat IRZ, ver. 1.4s
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
8
Slika_. Šema veze BREAK BOX-ova za plafostat DRZ, ver. 1.4
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
9
Slika_. Povzivanje štampanog kola kontrole blende
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
10
Slika _. Povezivanje komponenata pacijent-stola
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
11
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
12
Arhitektura softvera visokog nivoa
Uvod Sledede razmatranje pruža uvid u namenu i opseg Dokumenata “Arhitektura softvera visokog nivoa”.
Cilj dokumenta
Ovaj dokument pruža detaljni arhitekturni pregled upravljačkog softvera visokog nivoa robotizovanog
rentgenskog uređaja <DIGRAF C – JRDigital, Niš> kroz prezentaciju različitih aspekata sistema. Uređaj
je namenjen Institutu za onkologiju Kliničkog centra u Beogradu. Namera je da se sprovede prikaz
značajnih arhitekturnih odluka koje su donete u toku projektovanja i izrade sistema.
Opseg dokumenta
U dokumentu je predstavljena arhitektura Upravljačkog softvera visokog nivoa. Osnova namena
predstavljene softverske komponente je da na osnovu matematičkog modela ponašanja mehaničkog
podsistema, izvrši konverziju korisničkog zahteva u sinhronizovano, motorima aktuisano, kreatanje
mehaničkog podsistema i da pri tom spreči pojavu potencijalno hazardnih situacija.
“Reliability Critical” upravljačke rutine realizovane su kao softver niskog nivoa i nisu predmet ovog
dokumenta.
User Interface (UI) aplikacija je zadužena za prihvatanje korisničkih zahteva i prosleđivanje istih
upravljačkoj aplikaciji. Diskusija o ovoj komponenti sistema je van opsega ovog dokumenta.
Definicije korišćenih termina
Definicije termina korišdemih pri izradi ovog dokumenta dostupne su u dokumentu “Definicije
korišdenih termina, Verzija 1.3”
Zahtevi U fazi projektovanja i izrade upravljačkog softvera za robotizovani rentgenski uređaj DIGRAF C
poštovani su slededi zahtevi:
1. Bezbednost – uređaj mora da ima implementirane mehanizme koji obebeđuju bezbedan rad i u situaciji kada se u radnom prostoru uređaja nalaze ljudi. Svako potencijno hazardno ponašanje sistema, bilo da je posledica neisparvnosti neke komponenti sistema ili da posledica buga u softveru mora biti razrešeno na način koji ne ugrožava život i zdravlje ljudi i integritet sistema. Upravljački softver mora da podržava ove mehanizme.
2. Nezavisnost od aplikacija koje implementiraju korisnički interface – ovo podrazumeva da upravljački softver mora da bude implementiran tako da se dalja softverska nadogradnja sistema učini nezavisom od platforme. Druga interpretacija ovog zahteva svodi se na zaštitu upravljačkog softvera od nestabilnog ponašanja aplikacija koje implementiraju korisnički interface.
3. Dijagnostika – upravljački softver mora da beleži svoj rad tako da je moguda detaljna rekonstrukcija ponašanja sistema. Upravljački softver mora da implementira procedure samotestiranja i da sama donosi odluke o nastavku rada za slučajeve kada procedura samotestiranja prijavljuje neku neregularnost.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
13
Realizacija Zahtevi predstavljeni u prethodnoj sekciji ovog dokumenta doveli su do slededih odluka vezanih za
arhitekturu upravljačkog softvera.
Upravljačka aplikacija implemnetirana kroz nekoliko sukcesivnih nivoa. Svaki nivo ima za zadatak da
prihvati zahtev prethodnog nivoa, da proveri konzistenciju zahteva i sopstvenog stanja i da, u koliko
je ovaj test pozitivan izvrši prosleđivanje zahteva dublje u hijerarhiju, ili u koliko nije, da zaustavi
zahtev i prijavi grešku. Takođe, svaki sloj je zadužen za kreiranje susednog sloja koji je dublje u
hijerarhiji. Osnovna arhitektura prikazana je na Slici1.
User Interface
DM
C A
PI
Con
trol A
pplicatio
nC
lient A
pplicatio
n
Process Boundary
DMC Routine Calls
Controller Interrupts
CO
MClient DLL
DMC Command
Language
Routines
Windows Service Framework
CommunicationLayer
System State
Manager
Motion
Planer
Erro
r Ha
nd
ling
an
d L
og
gin
g
Slika1. Šematski prikaz izabrane arhitekure aplikacije
Upravljački softver je podeljen u 3 komponente:
1. Upravljački softver niskog nivoa – Ova komponenta dostupna je u obliku DMC rutina koja se učitavaju direktno u lokalnu memoriju kontrolerskih kartica u fazi inicijalizacije sistema. Mehanički podsistem je dostupan višim nivoima upravljačkog softvera kroz abstrakciju osnovnih funkcionalnosti koje su implementirane na ovom nivou. Ove rutine su pisane na komndnom jeziku kontrolerske kartice i implementiraju za bezbednost najkritičnije funkcionalnosti sistema.
2. Upravljački softver visokog nivoa – Ova komponenta je implementirana kao Windows Service Application. Kroz COM(Component Object Model) interface koji pruža dostupne mogude je povezivanje ove aplikacije sa aplikacijam koje implementiraju korisnički interface. Ova apliakcija impenentira sledede slojeve:
a. Service Framework i COM interface
Implementira - mehaizme za komunikaciju sa Service Manager-om (Start,
Pause Resume, Stop i ShutDown).
- COM interface za povezivanje sa UI aplikacijama
Izuzeci Obrađuje izuzetke vezanje za COM RPC komunikaciju
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
14
b. Komunikacionioni sloj
Implementira - mehaizme za komunikaciju DMC kontolerskim karticama (
prosleđivanje komandi karticama i hvatanje kontrolerskih
interapta).
- Inicijalizuje kontrolere na osnovu podataka koje čita iz
konfiguracione datoteke.
- vrši konverziju iz enkoderskih impulsa u metre/radiane i
obrnuto.
Izuzeci Obrađuje izuzetke koji se mogu pojaviti u fazi komunikacije
sa DMC kontrolerom.
c. Menadžer stanja
Implementira - Izbor moda rada (Automatsko ili Poluautomatsko vođenje)
- Sekvenciranje korisničkih zahteva i obrada DMC interapta.
Izuzeci Obrađuje izuzetke vezane za neregularne korisničke zahteve
(npr. Operater izdaje novu komandu pre završetka
prethodne)
d. Planer kretanja
Implementira - konverziju komande u sigurnu (bez kolizija) putanju
mehainčkog podsistema na osnovu poznavanja tenutne
pozicije sistema i željenog krajnjeg položaja. Poseduje
informaciju o fizičkoj konfiguraciji sistema.
Izuzeci Obrađuje izuzetke vezane za neregularne parametre kretanja
(npr. prevelika – nemoguda vrednost za SID)
3. Klijentski DLL – Kako bi se olakšala impementacija komunikacije između upravljačke aplikacije i aplikacija koje implemantiraju funkcionalnosti korisničkog interfejsa detalji COM komunikacije implementirani su u okviru klijentskog DLLa.
Use-Case View Detaljni pregled slučajeva korišdenja nalazi se u slededeim dokumentima:
1. Specifikacija slučajeva korišdenja:Aktivnosti Operatera, Verzija 1.3
2. Specifikacija slučajeva korišdenja: Aktivnosti Instalatera i Servisera, Verzija 1.3
Dijagrami za opis scenarija bide prezentovani
Logical View U sekciji 3 ovig dokumenta data je globalna perspektiva na željenu topologiju softvera. Shodno tom
razmatranju dizajn je podeljen u četiri logičke celine. Slika 2 pokazuje koje su celine u pitanju i kako
su međusobno povezane.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
15
ConsoleDummy DigrafDIGRAFClient DIGRAFServer
Slika2. Logička raspodela dizajna
Digraf package impementira dubelje slojeve u hijerarhji, DIGRAFServer implemnetira Windows
service framework i COM RPC komunikaciju, DIGRAFClient implementira kijentski DLL koji se
ugrađuje u UI aplikaciju, u ovom slučaju test aplikaciju ConsoleDummy.
Predstavljena logička organizacija dizajna je u procesu kodiranja preslikana na organizaciju VC6.0
workspacea. Svaki od paketa na prethodnoj slici predstavljen je nezavisnim Project-om. U cilju
jasnijeg izlaganja termin “Package” na ovom nivou organizacije bide u daljem tekstu zamenjen sa
“Project”. Predpostavljen prevod engleskog termina “Project” koji de biti korišden u daljem tekstu je
“projekat”.
DIGRAF projekat
Dijagram na slici 3 predstavlja organzaciju DIGRAF projekta. Ova logička podela preslikana je u fazi
realizacije na Logičke Foldere u okviru projekta. Prokekat je kreiran pomodu VC6.0 Wizarda kao DLL
projekat sa MFC podrškom. Prikazana organizacija je u skladu sa željenom organizacijom koja je
predstavljena u sekciji 3 ovog dokumenta.
Tech generatorsState managers
Framework and
interfaces
Linear algebraMotion planer
CFG file reader
global
Error handling
and logging
global
Comunication
layer
Slika 3. Logička raspodela dizajna za DIGRAF.dll
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
16
Naziv Packagea Obajšnjenje
Framework and
interfaces
Ovaj package sadrži klase koje implementiraju DLL framework i DLL
interface
Communication
Layer
Ovaj package sadrži klase koje implementiraju komunikacioni sloj i klase
za komunikaciju sa DMC (Digital Motion Controller).
State Managers Ovaj package sadrži klase koje impementiraju ponašanje sistema za
različite modove rada.
Motion planer Sadrži klase koje modeluju ponašanje mehaničkog podsistema kao i
implementaciju algoritma za planiranje kretanja.
Tech Genarators Ovaj package sadrži klase koje, na osnovu korisničkog zahteva i prametara
radnog prostora, generišu ulazne podatke za planer kretanja.
Linear Algebra Sadrži klase za Matrice, vektore i algebru Axis Aligned Bounding Boxova
CFG File Reader Klase za porveru konzistencije, čitanje i interpertaciju konfiguracionih
parametara.
Error Handling
and Logging
Klase za prihvatanje, obradu i zapisivanje greašaka.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
17
CTechREADY(from Tech generat...
CTechTableTop(from Tech generat...
CTechTableSide(from Tech generat... CTechTableSlope
(from Tech generat...CTechStand
(from Tech generat...
CTechBeside(from Tech generat...
eLinkType(from Linear algebra)
<<enum>>
eMode(from State managers)
<<enum>>
CErrorChain(from Error handling and logging)
eQ(from State managers)
<<enum>>
CSemiAuto(from State manag...
sTechAttributes(from Tech generators)
<<struct>>
sDH(from Linear algebra)
<<struct>>
CMotionRecord(from Motion planer)
CPlanerArgs(from Motion planer)
CTable(from Motion pla...
eAxis(from Linear algebra)
<<enum>>
CTechnic(from Tech generat...
CMatrix4(from Linear algebra)
CPlafostat(from Motion pla...
CManual(from State manag...
CStringTokenizerDirect(from CFG file reader)
CIniReader(from CFG file reader)
CEventLogger(from Error handling and logging)
<<singleton>>
eEntityType(from Motion planer)
<<enum>>CDMCException
(from CDMCWin)
CDMCWinRegistry(from Comunication layer)
MOTIONTHREAD(from Comunication layer)
<<typedef>>
CWinApp(from Application Architecture)
CDMCWin(from Comunication layer)
CSSManager(from State manag...
CCommLayer(from Comunication la...
CDigrafApp(from Framework and interfa...
CAutomatic(from State manag...
CVector4(from Linear algebra)
CEntity(from Motion pla...
CAABBox(from Linear algebra)
CMotionPlaner(from Motion pla...
Slika 4. Pregled svih klasa projekta DIGRAF
Motion Planer
Dijagrami klasa sa Slike 5. prikazuju statičke aspekte realizacije Motion Planer sloja.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
18
Slika 5. Klase packagea Motion Planer i njihove međusoble veze.
Sledi kratko objašnjenje funkcije klasa u dizajnu.
Klasa Objašnjenje
CEntity Bazna klasa iz koje su izvedene klase koje opisuju osnovne elemente
mehaničkog podsistema – plafostat i plivajudi sto. Klasa sadrži niz AABBa
koji se koriste u fazi detekcije kolizije – m_arrAABBs i podršku za
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
19
klasterizaciju AABBa za ubrzanje algoritma za detekciju kolizije. Klasa
poseduje dva čisto virtuelna metoda:
1. void Move(const float* arrQ) – ovaj metod prihvata
vektor unutrašnih koordinata (za plafostat ovaj vektor je dužine 5, za
plivajudi sto dužina vektora je 3) i na osnovu ovog vektora izračunavaju
veličine i pozicije AABBova koji se dalje koriste u postupku detekcije
kolizije.
2. void Fkine(CVector4& vCross, CVector4&
vFocus, const float* arrQ) – ovaj metod prihvata vektor
unutršnjih koordinata i izračunava poziciju kritičnih tačaka elementa u
spoljašnjim koordinatama. Kritične tačke koriste se u procesu
izračunavanja SIDa.
CPlafostat Ova klasa implementira programski model plafostata.
CTable Ova klasa implementira programski model plivajudeg stola.
CMotionRecord Ova klasa implemantira osnovnu strukturu kojom se opisuje stanje
mehaničkog podsistema. U osnovi ovo je stack čiji su elementi vektori
prolaznih tačaka plafostata izraženi u unutrašnjim koordinatama. U daljem
tekstu MR.
CPlanerArgs Memanto klasa koja čuva stanje klase CMotionPlaner. Sadrži tri instance
klase CMotionRecord:
m_recStart – sadrži sigurni put od trenutne pozicije palfostata do
READY pozicije
m_recDest – sadrži siguran put od READY pozicije do željene odredišne
pozicije. Ovaj MR se puni pre početka planiranja kretanja pozivom
odgovarajudih metoda Generatora Tehnika.
m_recPath – sadrži optimalnu sekvencu prolaznih tačaka koja se dobija
kao proizvod procesa palniranja kretanja
CMotionPlaner Glavna klasa planera kreatanja. Klasa implemantira inteface ka višem sloju
(menadžeru stanja) i modeluje ponašanje mehaničkog podsistema. Na
osnovu ovog modela i MRa iz klase CPlanerArgs metodi ove klase generišu
sekvence pokreta koje omogudavaju prelazak mehaničkog podsistema iz
trenutne u željenju poziciju bez kolizije.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
20
Generatori Tehnika Slika 6 prikazuje organizaciju klasa koje implemantiraju generatore tehnika. Upotrebljena je Strategy
topologija kako bi se olakšalo dodavanje novih klasa tehnika.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
21
Slika 6. Generatori tehnika
Sledi objašnjenje uloge klasa u dizajnu.
Naziv Objašnjenje
CTechnic Ovo je bazna klasa za sve klase za generisanje tehnika. Njena uloga je dvostruka.
Najpre, ova klasa definiše interface generatora tehnika. Njznačajniji metodi
ovog interfacea su.
BOOL GetIRZDest(), BOOL GetDRZDest() – ovi metodi pune
DESTINATION MR prolaznim tačkam za određenju tehniku.
void GetTechAttributes() – vrada atribute tehnike (dodatne
informacije o ponašanju mehaničkog podsistema u slučaju da se ovaj nalazi
datoj tehnici).
void GetIRZLimits(), void GetDRZLimits() – daje granice
inkrementalnog kretanja plafostata za izabranu tehniku.
Druga funkcija ove klase je da kreira i čuva kreirane instance svake od tehnika
instaliranih na sistemu. Statički atrubut sm_TechPool je niz pokazivača na
instance klasa tehnika. Metod CTechnic* GetTechFromID(UINT nTechID) na
osnovu identifikatora tehnike vrada pokazivač na instancu klase koja predstavlja
željenu tehniku.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
22
Ova klase je deklarisana kao prijateljska za sve klase izvedene iz nje. Razlog je to
što klase tehnika imaju protected ctor.
CTech* Klase tehnika
Menadžer Stanja Slika 7 predstavlja organizaciju menadžera stanja. State pattern je korišćen pri realizaciji.
-$sm_ssPool[NUM_MODES]
CAutomatic
<<control>>
CManual
<<control>>
CSemiAuto
<<control>>
CSSManager
<<control>>
-$sm_pCurrMode
State pattern
Slika 7. System State manager implementiran kao GOF Pattern State
Korisnik zahteva
promenu moda rada
Da li tenutni mod rada
dozvoljava promenu?
[ ne ]
Trenutni handler moda prirprema
stanje sistema za tranziciju
[ da ]
Menja se
handler moda
Novi Handler priprema
svoje stanje
CSSManger::SetMode(
NewModeID)
sm_pCurrMode->
IsModeChangable()
sm_pCurrMode->
LeaveCurrentSession()
sm_pCurrMode =
sm_ssPool[NewModeID]
sm_pCurrMode->
PrepareForNewSession()
Slika 8. Aktivnosti pri tranziciji moda
Sledi objašnjenje uloge klasa u dizajnu.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
23
Klasa Objašnjenje
CSSManager Bazna klasa za sve klase koje opisuju ponašanje sistema u odrđenom modu
rada.
Klasa defiiniše interface za komunikaciju sa komunikacionim slojem.
Deklarisane su tri kategorije metoda:
1. Metodi koji prihvataju zahteve korisnika,
2. Metodi koji obrađuju DMC User Interrupte i
3. Metodi za tanziciju moda rada
Klasa impemetira mehanizme za instanciranjei kreiranje objekata Handlera
moda i zamenu moda rada. Sekvenca aktivnosti vezane za zamenu moda
rada prikazane su na slici 8.
Klase Handlera moda koje su izvedene iz ove klase imaju deklarisanu ovu
klasu kao prijateljsku.
CAutomatic Handler za Automatski režima rada
CSemiAuto Handler za Poluautomatski režima rada
CManual Handler za ručni mod rada (nije impementiran za ovu verziju uređaja)
Error Logging and Handling Slika 9 ilustruje koncept primene patterna Chain-Of-Responsibility u svrhu dobijanja informavije o
grešci koja se pojavila u sistemu sa slojevitom strukturom. Slika 10. prikauje scenario dobijanja
informacije o grešci u koliko je do pojave greške došlo u najdubljem sloju strukture.
CErrorChain
#m_pFollower
Chain of
responsibility
pattern
CDigrafApp(from Framework and interfaces)
<<boundary>>
CCommLayer(from Comunication layer)
<<boundary>>
+m_pCommLayer
CSSManager(from State managers)
<<control>>
#$sm_pComm
CMotionPlaner(from Motion planer)
<<entity>>
#$sm_pPlaner
CEventLogger
<<singleton>>
#$m_pInstance
Used during event
and error logging
Slika 9. Error Handling and Logging kao GOF Chain-Of-Responsibility
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
24
int CErrorChain::GetLastError()
{
if(m_nErrorCode != ERR_NONE)
return m_nErrorCode;
if(m_pFollower == NULL)
return ERR_NONE;
return m_pFollower->GetLastError();
}
: Operater : CDigrafApp : CCommLayer : CSSManager : CMotionPlaner
GetLastError()
GetLastError()
GetLastError()
GetLastError()
Slika 10. Propagacija zahteva za dobijanje informacije o grešci
Sledi objašnjenje uloge klasa.
Naziv Objašnjenje
CErrorChain Bazna klasa iz koje su izvedene klase svih slojeva. Lanac se formira u fazi kreiranja,
inicijalizacijom atributa m_pFollower.
Neregularan rad je svrstan u dve kategorije:
1.Error – kod greške se upisuje u m_nErrorCode i upisuje u event log.
2.Warning –kod greške se upisuje u m_nErrorCode ali se ne upisuje u event log.
Kod koji opisuje tip neregularnosti mogude je dobiti pozivom metoda UINT
GetLastError().
CEventLogger Klasa inplementirana kao singleton kako bi bila dostupna kroz ceo dizajn.
Enkapsulira Win32 API pozive za upis greške u Event Log i u privatnu log datoteku.
Ini Reader Slika 11 prikazuje organizaciju klasa za proveru konzistencije, čitanje i interpretiranje konfiguracionih
datoteka.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
25
Slika 11. Ini Reader
Sledi opis namene klasa
Naziv Namena
CStringTokenizerDirect Ova klasa impeentira funkcionalnosti za tokenizaciju stringa
CIniReader Sistem čuva konfiguracione parametre u datoteci DIGRAFConfig.cfg.
Ovo je ASCII datoteka koja ima strukturu Windows INI datoteke.
Pored osnovnog filea čuvaju se još dve backup kopije iste daoteke.
Pri inicijalizaciji sistema kreira se instanca ove klase koja najpre vrši
proveru konzistencije, a potom čita zahtevane parametre.
Komunikacioni sloj
Neke karakteristične veze između klasa koje implementiraju komunikacioni sloj prikazane su
na slici 12.
Encapsulates
DMC API
CDMCWinCCommLayer
<<boundary>>
#m_IRZController
#m_DRZController
Slika 12. Komunikacioni sloj i klasa koja enkapsulira DMC API
Sledi objašnjenje namene klasa.
Naziv Namena
CDMCWin Klasa koja enkapsulira DMC API. U slučaju neregularnog rada baca
CDMCWinException.
CCommLayer Klasa koja implementira komunikacioni sloj sa Slike 1. Metodi ove klase
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
26
mogu se svrstati u dve grupe:
1.Metodi za prihvatanje korisničkih zahteva
2.Metodi za komunikaciju sa DMC kontrolerima.
Sva konverzija enkoderskih impulsa u jedinice SI sistema obavlja se skopu
metoda za komunikaciju sa DMC kontrolerima.
Projekat DIGRAFServer i DIGRAFClient
U okviru ovih projekata impemetiran je osnovni framework za COM RPC cross-process komunikaciju
kao i neophodne funkcionalnosti za instalaciju i menadžmet Windows service aplikacije. Kako
impementacija ovih funkcionalnosti ne sadrži neke specifičnosti koje treba objasniti, neće niti dalje
diskusije na ovu temu.
Implementation View Slededi dijagram prikazuje komponente sistema i njihove međusobne zavisnosti.
DigrafMessages
<<Resource DLL>>
Digraf
<<DLL>>
DIGRAFC
lient
<<DLL>>
DIGRAFS
erver
<<EXE>>
DIGRAFSer
ver.idl
<<MIDL>>
IDIGRAF
ConsoleD
ummy
<<EXE>>
DIGRAFConfig
.cfg
DMC_IRZ.
dmcDMC_DRZ
.dmc Collimator
<<DLL>>
Slika 13. Moduli i njihove zavisnosti
Pregled modula
Naziv komponente Namena
DIGRAFServer.exe Telo upravljačke service aplikacije. Impementira Windows Service
Framework i COM interface IDIGRF.
Digraf.dll Implementira komunikacioni sloj, menadžer stanja i planer kreatanja.
U cilju lakšeg debagiranja, ove funkcionalnosti su odvojene od
DIGRAFServer servis aplikacije.
Collimator.dll Impelmentira RS232 komunikaciju sa upravljačkim hardverom blende.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
27
DIGRAFClient.dll Klijentski dll koji impemntira COM komunikaciju sa strane UI
aplikacije.
DMC_DRZ.dmc
DMC_IRZ.dmc
Datoteke sa DMC rutinama (upravljački softver niskog nivoa).
DIGRAFConfig.cfg
DIGRAFConfig.cf2*
DIGRAFConfig.cf1*
Kofiguraciona datoteka i njene back-up kopije(*). Ovo je ASCII
dataoteka organizovana kao Windows INI file i sadrži paramatre
sistema koji se učitavaju pri inicijalizaciji.
DIGRAFMessages.dll Resource DLL koji sadrži poruke koje se upisuju u event log.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
28
DETALJAN ARHITEKTURNI PLAN
SOFTVERA NA NISKOM NIVOU
Organizacija softvera na donjem nivou
Sofver na donjem nivou organizovan je kao multitreding aplikacija, pri čemu se neki tredovi izvršavaju
neprekidno, dok se neki startuju prema potrebi, i automatski zaustavljaju kada njihovo izvršavanje
više nije potrebno.
Aplikacije za IRZ i DRZ se razlikuju po vrednostima parametara, i po tome sto neke procedure ne
postoje u kontroleru za IRZ, dok prostoje u kontroleru za DRZ (upravljanje stola, zabravljivanje i
odbravljivanje, hardverski inkrementalni tasteri).
Broj treda 0. 1. 2. 3. 4. 5. 6. 7.
Kontroler IRZ,DRZ IRZ,DRZ IRZ,DRZ DRZ DRZ DRZ IRZ,DRZ
Naziv
labele
#SWINIT
#SETLIM
#SETGAIN
#HOMING
#MOVE
#TBLCTRL
#LOCK
#UNLOCK
(#WENMOV)
(#ININT)
(#PARINIT)
#TIMERS #INC #HWTAST #LIFT #TBLPOS
(#TBLCTRL) #ABORT
Tredovi koji se stalno izvšavaju
Tredovi koji se izvšavaju po potrebi
#SWINIT Inicijalizacija softwera i hardvera iz gornjeg softvera
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
29
#SETLIM Postavljanje softverskih granica kretanja na maksimalne fizičke vrednosti
#SETGAIN Postavljanje parametara PID regulatora
#HOMING Procedura mehaničke inicijalizacije
#MOVE Kretanje plafostata
#TBLCTRL Pomeranje lifta pacijent stola na zadatu visinu
#TIMERS Tajmeri za merenje vremena za različite tajm-aute
#INC Inkrementalno kretanje plafostata
#HWTAST Očitavanje hardverskih tastera za inkrementalno kretanja
#LIFT Stejt mašina za kontrolu kretanja pacijent stola preko papučica
#TBLPOS Očitavanje visine i položaja pacijent stola
#ABORT Prekidanje započete operacije pre njenog normalnog završetka
#WENMOV Čekanje na taster dozvole kretanja
#ININIT Reakcija na otpuštanje tastera dozvole kretanja
#PARINIT Inicijalizacija parametara sistema
Interapt tabela
Ova tabela sadrži interapt kodove pomodu kojih softver na donjem nivou javlja PC aplikaciji da je neki
posao završen ili se neki događaj desio.
R.br. UI Code Naziv Opis
1. 0 0xF0 Pedal Pressed pritisnuta pedala pacijent stola
2. 1 0xF1 Pedal Released time-out u operacijama sa pacijent-stolom
3. 2 0xF2 Motion Complete završeno kretanje
4. 3 0xF3 Homing Complete završena mehanička inicijalizacija
5. 4 0xF4 Abort Complete završena procedura prekida kretanja
6. 5 0xF5 HW Button Down pritisnut taster za inkrementalno kretanje na dole na detektoru
7. 6 0xF6 HW Button Up pritisnut taster za inkrementalno kretanje na gore na detektoru
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
30
8. 7 0xF7 HW Button Released otpušteni tasteri za inkrementalno kretanje na detektoru
9. 8 0xF8 Table Removed Završeno pozicioniranje stola na zadatu visinu
10. 9 0xF9 Unlock Complete Završeno odbravljivanje detektora
Osenčene vrednosti se trenutno ne koriste.
Parametri sistema
Parametri sistema su promeljive čije vrednosti utiču na način ponašanja sistema. S obzirom da se
ocekuje da za konkretne plafostate postoje konkretne brojke, koje mogu da odstupaju od teorijski
predviđenih vrednosti, vrednosti promeljivih su zapravo parametri koje de PC softver pročitati iz
konfiguracionog fajla i proslediti softveru na niskom nivou.
Ovi parametri su definisani i postoje i u kodu koji se izvršava na DMC-1850 kontroleru, da bi
izvršavanje programa moglo da bude nezavisno od gornjeg nivoa softvera. Kada se donji softver
pokrede bez PC aplikacije, parametri se definišu pozivom #PARINIT labele.
R.br. Naziv Vrednost Opis
1.
1. HOFFA Home OFFset
Ofset nulte pozicije date ose u odnosu na položaj home prekidača mereno na osovini enkodera motora
2. HOFFB
3. HOFFC
4. HOFFD
5. HOFFE
2.
1. AOFFA Auxilary OFFset
Ofset nulte pozicije date ose u odnosu na položaj home prekidača mereno na osovini pomodnog enkodera
2. AOFFB
3. AOFFC
4. AOFFD
5. AOFFE
3.
1. FLIMA ForwardLIMit
Softverska granica kretanja za osu pri kretanju u pozitivnu stranu. Softverska granica definiše se neposredno ispred limit prekidača.
2. FLIMB
3. FLIMC
4. FLIMD
5. FLIME
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
31
4.
1. RLIMA ReverseLIMit
Softverska granica kretanja za osu pri kretanju u negativnu stranu. Softverska granica definiše se neposredno ispred limit prekidača.
2. RLIMB
3. RLIMC
4. RLIMD
5. RLIME
5.
1. READYA READY position
Pozicija u koju plafostat treba da dodje nakon završene mehaničke inicijalizacije
2. READYB
3. READYC
4. READYD
5. READYE
6.
1. VLA Velocity during Limit search
Brzina kojom se osa krede ka negativnom limit prekidaču u toku procedure mehaničke inicijalizacije
2. VLB
3. VLC
4. VLD
5. VLE
7.
1. VHA Velocity during Home search
Brzina kojom se osa krede od negativnog limit prekidača ka home prekidaču u toku procedure mehaničke inicijalizacije
2. VHB
3. VHC
4. VHD
5. VHE
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
32
R.br. Naziv Vrednost Opis
8.
1. VIA Velocity during Index search
Brzina kojom se osa krede tražedi indeksni impuls na enkoderu u toku procedure mehaničke inicijalizacije
2. VIB
3. VIC
4. VID
5. VIE
9.
1. ACMA ACceleration during Mechanical initialisation
Ubrzanje kojim se osa ubrzava u toku procedure mehaničke inicijalizacije.
2. ACMB
3. ACMC
4. ACMD
5. ACME
10.
1. DCMA DeCceleration during Mechanical initialisation
Usporenje kojim se osa zaustavlja u toku procedure mehaničke inicijalizacije. Velika vrednost treba da izazive "trenutno" zaustavljanje
2. DCMB
3. DCMC
4. DCMD
5. DCME
11.
1. VCA Velocity during inCremental motion
Brzine kojima se kredu ose u inkrementalnom režimu rada. 2. VCB
3. VCC
4. VCD
5. VCE
12.
1. ACIA ACceleration during Incremental motion
2. ACIB
3. ACIC
4. ACID
5. ACIE
13. 1. DCIA DeCceleration during Incremental motion
2. DCIB
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
33
3. DCIC
4. DCID
5. DCIE
14.
1. PTO_LFT
Time-out vrednost za kretanje lifta.
Vrednost se zadaje kao n*100ms. Ako nakon istega ovog vremena nema daljih pritisaka na pedale pacijent stola, plafostati automatski zauzimaju odgovarajudi položaj.
2. PTO_INC
Time-out vrednost za inkrementalno kretanje.
Vrednost se zadaje kao n*100ms. Ako nakon istega ovog vremena ne dođe do potvrde da je inkrementalni taster i dalje pritisnut, kretanje se zaustavlja.
3. PTO_BRK
Time-out za kočenje kod inkrementalnog kretanje. Vrednost se zadaje kao n*100ms. Ako nakon istega ovog vremena nema ponovnog pritiska tastera za kretanje iste ose, kočnice te ose se blokiraju
15.
1. VRFA Veloctity ReFerence
Nominalna brzina kretanja po osama 2. VRFB
3. VRFC
4. VRFD
5. VRFE
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
34
R.br. Naziv Vrednost Opis
16.
1. ARFA Acceleration ReFerence
Nomialna ubrzanja i usporenja po osama 2. ARFB
3. ARFC
4. ARFD
5. ARFE
17.
1. PGAINA Pojačanje proporcionalnog dejstva PID regulatora
2. PGAINB
3. PGAINC
4. PGAIND
5. PGAINE
18.
1. DGAINA Pojačanje diferencijalnog dejstva PID regulatora
2. DGAINB
3. DGAINC
4. DGAIND
5. DGAINE
19.
1. IGAINA Pojačanje integralnog dejstva PID regulatora
2. IGAINB
3. IGAINC
4. IGAIND
5. IGAINE
20.
1. ILIMA Ograničenje upravljačkog signala integralnog dejstva
2. ILIMB
3. ILIMC
4. ILIMD
5. ILIME
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
35
Opis procedura softvera na donjem nivou
#SWINIT –inicijalizacija kartice, hardvera i softvera
Tred:
Izvršava se kao tred 0.
Ulazne promenljive:
Nema posebnih ulaznih promeljivih. Pretpostavlja se da su parametri inicijalizovani pre pokretanja
ove procedure.
Izlazne promeljive:
Nema posebnih ulaznih promeljivih.
Interapt
Ne generiše interapt.
Opis
Ova procedura služi za inicijalizaciju. Poziva je PC softver nakon definisanja parametara. Unutar ove
procedure zaustavljaju se svi tredovi (ako su pokrenuti), resetuju digitalni izlazi, inicijalizuju se
promeljive i flegovi potrebni za rad sistema i startuje se procedura homovanja.
#SETLIM –postavljanje softverskih granica kretanja
Tred:
Izvršava se kao tred 0.
Ulazne promenljive:
Nema posebnih ulaznih promeljivih. Pretpostavlja se da su parametri FLIM i RLIM za ose
inicijalizovani pre pokretanja ove procedure.
Izlazne promeljive:
Nema posebnih ulaznih promeljivih.
Interapt
Ne generiše interapt.
Opis
Ova procedura postavlja softverske granice definisane parametrima FLIM i RLIM za svaku osu. Ove
granice predstavljaju fizičke granice radnog prostora za globalno kretanje. U zavisnosti od izabrane
tehnike, PC softvrer postavlja softverske granice specifične za tu tehniku. Povratak na softverske
granice za globalno kretanje izvodi se pozivom ove procedure.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
36
#SETGAIN –postavljanje parametara regulatora
Tred:
Izvršava se kao tred 0.
Ulazne promenljive:
Nema posebnih ulaznih promeljivih. Pretpostavlja se da su parametri PGAIN, DGAIN, IGAIN i ILIMN
za ose inicijalizovani pre pokretanja ove procedure.
Izlazne promeljive:
Nema posebnih ulaznih promeljivih.
Interapt
Ne generiše interapt.
Opis
Ova procedura podešava parametre PID regulatora za svaku od osa, i ograničava integralno dejstvo.
#HOMING – mehanička inicijalizacija plafostata
Tred:
Izvršava se kao tred 0.
Ulazne promenljive:
Nema posebnih ulaznih promeljivih. Pretpostavlja se da je pre pokretanja homing procedure izvšena
inicijalizacija svih parametarskih promeljivih.
Izlazne promeljive:
Nema posebnih izlaznih promeljivih.
Interapt
Generiše user interapt broj 3, u gornjem softveru 0xF3.
Opis
Ova procedura služi za mehaničku inicijalizaciju plafostata. Mehanička inicijalizacija izvodi se tako što
svaka osa kretanja krede u negativnu stranu ka graničnom prekidaču. Kada sve ose dođu do granice,
kretanje krede u pozitivnu stranu manjom brzinom do ivice home prekidača. Tada se definiše nulta
pozicija za sistem, a zatim se sistem odvodi u ready poziciju. Na početku homing procedure, prvi
pritisak na taster dozvole kretanja otpušta kočnice i spojnice translatornih osa sistema, tako da je
mogude ručno pomeranje plafostata. Slededi pritisak na taster dozvole kretanja pokrede sistem.
Ako se u toku kretanja otpusti taster dozovole kretanja, pre nego što ose dođu do limit prekidača,
takođe je mogude ručno pomeranje plafostata. Nakon što ose pronađu limit prekidače, ručno
pomeranje nije mogude.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
37
#MOVE – pomeranje plafostata u željenu poziciju
Tred:
Izvršava se kao tred 0.
Ulazne promenljive:
REFA,REFB,REFC,REFD,REFE, referentne vrednosti u koje želimo da dođe plafostat. Referentne vrednosti zadaju se kao apsolutne pozicije u enkoderskim impulsima
VRFA,VRFB,VRFC,VRFD,VRFE, referentne brzine krstarenja za svaku osu. Zadaju se u enkoderskim impulsima u sekundi
ARFA,ARFB,ARFC,ARFD,ARFE, referentna ubrzanja i usporenja za svaku osu. Zadaju se u enkoderskim impulsima u sekundi na kvadrat.
MVFIRST, fleg koji označava prvo kretanje u nizu, i kao takvo zahteva detekciju predje ivice na
tasteru dozvole kretanja. MVFIRST=1 znači da je potrebno najpre otpustiti taster, a zatim ga pritisnuti da bi kretanje započelo. MVFIRST=0 znači da segment kretanja nije prvi u nizu, pa je dovoljno da je taster pritisnut da bi se kretanje nastavilo.
MVLAST, fleg koji označava poslednje kretanje u nizu, i kao takvo zahteva aktiviranje kočnica. MVLAST=1 znači da de kočnice biti aktivirane na kraju kretanja. MVLAST=0 znači da segment kretanja nije poslednji u nizu, pa kočnice nede biti aktivirane.
MVFREE, fleg koji označava slobodno kretanje koje ne zavisi od tastera dozvole kretanja.
Izlazne promeljive:
Nema posebnih izlaznih promeljivih.
Interapt
Generiše user interapt broj 2, u gornjem softveru 0xF2.
Opis
Ova procedura služi za pomerajne plafostata u željenu poziciju.
#LOCK – zabravljivanje četvrte ose detektora
Tred:
Izvršava se kao tred 0.
Ulazne promenljive:
Nema posebnih ulaznih promenljivih.
Izlazne promeljive:
Nema izlaznih promenljivih
Interapt
Ne generiše interapt.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
38
Opis
Zabravljuje četvrtu osu detektora pri položaju od 90, što je naročito korisno kod tehnike snimanja
pluda.
#UNLOCK – odbravljivanje četvrte ose detektora
Tred:
Izvršava se kao tred 0.
Ulazne promenljive:
Nema posebnih ulaznih promenljivih.
Izlazne promeljive:
Nema izlaznih promenljivih
Interapt
Generiše user interapt 9, u gornjem softveru 0xF9.
Opis
Odbravljuje četvrtu osu detektora, ako je prethodno bila zabravljena.
#TIMERS – tajmeri za merenje vremena
Tred:
Izvršava se kao tred 1.
Ulazne promenljive:
Nema posebnih ulaznih promenljivih.
Izlazne promeljive:
Nema izlaznih promenljivih
Interapt
Ne generiše interapt.
Opis
Ovaj tred se pokrede automatski i odbrojava vreme u ritmu od 100ms. Gornji softver nema direktnu
komunikaciju sa ovim tredom.
#INC – inkrementalno kretanje plafostata
Tred:
Izvršava se kao tred 2.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
39
Ulazne promenljive:
INCMOVE, promenljiva koja inkrementalno pokrede neku od osa plafostata
~h, promenljiva koja određuje koja osa treba da se pokrene
Izlazne promenljive:
Nema posebnih izlaznih promeljivih.
Interapt
Ne izaziva korisnički interapt.
Opis
Ova procedura vrši inkrementalno pomeranje jedne ose plafostata u željenom smeru. Gornji softver
definiše koja osa (~h=0,1,2,3 ili 4) i u koju stranu treba da krene (INCMOVE=+2 za pozitivnu ili
INCMOVE=-2 za negativnu stranu). Otpuštanje tastera za inkrementalno kretanje treba da resetuje
INCMOVE promenljivu na vrednost nula (INCMOVE=0) čime se kretanje zaustavlja. Dva tajmerska
mehanizma su vezana za ovu proceduru. Prvi, koji je aktivan nakon što kretanje počne, predstavlja
intreval u kojem treba da stigne potvrda da je kretanje i dalje aktivno. Ako u zadatom intervalu ova
potvrda ne stigne, kretanje se zaustavlja. Drugi mehanizam vezan je za kočenje ose koja se
inkrementalno kretala. Nakon što je kretanje prestalo, kočnice se nede aktivirati odmah, ved posle
određenog vremenskog perioda, tako da inkrementalno pomeranje iste ose ide bez nepotrebnog
uključivanja i isključivanja kočnica.
#HWTAST – hardverski tasteri za inkrementalno kretanje plafostata
Tred:
Izvršava se kao tred 3.
Ulazne promenljive:
Nema posebnih ulaznih promenljivih.
Izlazne promenljive:
Nema posebnih izlaznih promeljivih.
Interapt
Izaziva tri korisnička interapta:
user interapt broj 5, u gornjem softveru 0xF5, ako je pritisnut taster za kretanje na dole
user interapt broj 6, u gornjem softveru 0xF6, ako je pritisnut taster za kretanje na gore
user interapt broj 7, u gornjem softveru 0xF7, ako su otpuštena oba tastera
Opis
Stejt mašina koja prati stanja hardverskih tastera za inkrementalno kretanje smeštenih na detektoru.
U zavisnosti od stanja stejt mašine i pritisnutih i/ili otpuštenih tastera generiše se odgovarajudi
inrerapt i obaveštava gornji softver. U stejt mašinu je ugrađen i debaunsing tastera.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
40
#LIFT –kontrola pedala i regulacija visine pacijent stola
Tred:
Izvršava se kao tred 4.
Ulazne promenljive:
LIFTEN, dozvola rada lifta pacijent stola
TLIMUP, softverska granica kretanja lifta na gore
TLIMDN, softverska granica kretanja lifta na dole
Izlazne promenljive:
Nema posebnih izlaznih promeljivih.
Interapt
Ne generiše interapt.
Opis
Stejt mašina koja prati stanja pedala za podizajne i spuštanje stola. U zavisnosti od dozvole rada,
LIFTEN, pritisci na pedale se obradjuju ili ne. Kretanje lifta na gore i dole ograničeno je softverskim
granicama TLIMUP i TLIMDN. Ukidanje dozvole rada LIFTEN=0, prekida kretanje stola. Gornji
softver postavlja granice kretanja u zavisnosti od tehnike i stanja uređaja i daje dozvolu kretanja, a
takođe i ukida dozvolu kretanja kada je to potrebno.
#TBLCTRL –postavljanje stola na zadatu visinu
Tred:
Izvršava se kao tred 0 kad se poziva iz PC softvera, a kao tred 5 kad se poziva iz homing procedure.
Ulazne promenljive:
REFU, referetni napon koji odgovara zadatoj visini stola
Izlazne promenljive:
Nema posebnih izlaznih promeljivih.
Interapt
Generiše user interapt 8, u gornjem softveru 0xF8.
Opis
Procedura koja postavlja sto na zadatu visinu.
#TBLPOS –određivanje pozicije stola
Tred:
Izvršava se kao tred 5.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
41
Ulazne promenljive:
Nema posebnih ulaznih promenljivih.
Izlazne promenljive:
POT1, napon na potenciometru za merenje visine stola
POT2, napon na potenciometru za merenje visine stola
POT3, napon na potenciometru za merenje lateralnog plivanja stola
POT4, napon na potenciometru za merenje podužnog plivanja stola
Interapt
Ne generiše user interapt.
Opis
Procedura koja meri napon na potenciometrima koji određuju poziciju stola. Visina stola određena je
zbirom napona POT1 i POT2 , lateralno plivanje naponom POT3, a podužno plivanje naponom
POT4. Gornji softver poziva ovu proceduru kada želi da sazna poziciju stola. Potrebno je da se nakon
poziva procedure sačeka izvesno vreme pre čitanja rezultata merenja.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
42
#ABORT – prekid započete akcije
Tred:
Izvršava se kao tred 7.
Ulazne promenljive:
Nema ulaznih promeljivih
Izlazne promeljive:
Nema izlaznih promenljivih
Interapt
Generiše user interapt broj 4, u gornjem softveru 0xF4.
Opis
Ova procedura služi za prekid započete akcije, kretanja plafostata ili kretanja stola, pre normalnog
završetka akcije. Ako nikakva akcija nije započeta, abort de odmah javiti da je posao završen. Homing
proceduru nije mogude prekinuti.
#WENMOV – čekanje na pritisak tastera za dozvolu kretanja
Tred:
Izvršava se kao tred 0.
Ulazne promenljive:
MVFREE, fleg koji modifikuje ponašanje, ne čeka se pritisak tastera dozvole kretanja
MVFIRST, fleg koji modifikuje ponašanje, definiše čekanje na prednju ivicu tastera dozvole kretanja
HMFIRST, fleg koji modifikuje ponašanje, ne inicijalizuje interapt proceduru za otpuštanje tastera dozvole kretanja.
Izlazne promeljive:
Nema izlaznih promenljivih
Interapt
Ne generiše interapt.
Opis
Ova procedura se ne poziva iz gornjeg softvera, ved iz jedne od procedura #HOMING, #MOVE ili
#TBLCTRL, tako da kretanje počinje tek nakon pritiska na taster dozvole kretanja, a otpuštanje
tastera dozvole kretanja treba da kretanje zaustavi.
Fleg MVFIRST modifikuje način čekanja na pritisak tastera. Ako je MVFIRST=1 , što je
podrazumevana vrednost, onda je kretanje prvo u nizu, i čeka se prednja ivica, odnosno, najpre
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
43
otpuštanje a zatim pritisak na taster. Ako je MVFIRST=0 , ona segment kretanja nije prvi u nizu, pa
je dovoljno samo da je taster pritsnut, odnosno ne zahteva se njegovo prethodno otpuštanje.
Fleg HMFIRST služi da u toku HOMING procedure prvi pritisak na taster dozvole kretanja otpusti
kočnice i spojnice, a da pri tome ne inicira interapt koji hvata otpuštanje tastera dozvole kretanja.
Slededi pritisak na taster dozvole kretanja zapravo startuje homing proceduru.
#ININT – interapt reakcija na otpuštanje tastera dozvole kretanja
Tred:
Izvršava se kao tred 0.
Ulazne promenljive:
Nema posebnih ulaznih promenljivih.
Izlazne promeljive:
Nema izlaznih promenljivih
Interapt
Ne generiše interapt.
Opis
Ova procedura se ne poziva iz gornjeg softvera, ved iz jedne od procedura #HOMING, #MOVE ili
#TBLCTRL, ako se u toku kretanja otpusti taster dozvole kretanja. U zavisnosti od toga koja je akcija u
toku, deside se različite stvari. Ako je kretanje stola u toku, #TBLCTRL aktivan, onda de se sto prosto
zaustaviti. Ako je #MOVE u toku, onda de se kretanje zaustaviti i kočnice zakočiti, dok de u slučaju
#HOMING procedure kretanje biti zaustavljeno, a kočnice de ostati otkočene ako granični prekidač
nije pronađen, odnosno bide zakočene ako je granični prekidač pronađen.
#PARINIT – inicijalizacija parametara sistema
Tred:
Izvršava se kao tred 0.
Ulazne promenljive:
Nema posebnih ulaznih promenljivih.
Izlazne promeljive:
Definiše i inicjalizuje sve parametre sistema.
Interapt
Ne generiše interapt.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
44
Opis
Ova procedura se ne poziva iz gornjeg softvera, ved prilikom ručnog startovanja softvera na donjem
nivou, kada je potrebno definisati sve parametre koje bi inače definisao PC softver.
Dodatak 1: Algoritmi i stejt mašine IRZ
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
45
-Inicijalizacija promenljivih
Ne
Da
Poĉetak
Kraj
TDK pritisnut,prvi pritisak
#WENMOV
-Zabranjujemo interapte -Otpuštamo spojnice translatornim osama-Koĉimo rotacione ose
Sistem je moguće ruĉno razmrdati
Ne
Ne
Ne
Da
Da
Da
Da
Da
TDK pritisnut,drugi pritisak
-Sve ose došle do svog graniĉnog prekidaĉa
-Sve ose došle do svog HOME prekidaĉa
#WENMOV
-Iskljuĉujemo sw granice sistema-Inicijalizujemo ubrzanja i jaka koĉenja
- one ose koje nisu nasvoje graniPokre emo šle
ć
ĉne prekidaĉe
- zujemo traInicijali ţenje HOME prekidaĉa i strtujemo kretanje
Definišemo koordinatni poĉetak
-Odlazimo u READY poziciju
#MOVE
-Po šetku pokreta zako
šeno
zavr ĉimo sistem-Iskljuĉujemoi upravljanje rotacionim osama-Javljamo user interapt gornjem sw da je kretanje zavr UI3
#HOMING-IRZPROCEDURA MEHANI KE INICIJALIZACIJEĈ
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
46
-Zadajemo nove reference sistemu
Ne
Ne
Ne
Ne
Ne
Ne
Da
Da
Da
Da
Abort procedura pokrenuta
Abort procedura pokrenuta
Trezadnja u planiranom pokretu
nutna sekvenca kretanja nije
-Startujemo kretanje trnaslatornih osa
-Startujemo kretanje rotacionh osa ako za to ima potrebe
Kretanje zavrseno
-Iskljuĉujemo upravljanje rotacionim osama i koĉimo ih
-Gasimo upravljanje rotacionim osama
-Zabranjujemo interapte tastera-Resetujemo promenljive
-Proces homovanja u toku ili kretanje abortirano
-šeno
Javljamo user interapt gornjem sw da je kretanje zavr
#MOVABT
#MNOBRK
MVABORT=1
ABORT =1
MVLAST<>1
HOMING=1 | ABORT=1
TDK pritisnut
#WENMOV
UI2
#MOVE-IRZ
-Iskljuĉujemo time-outza koĉnice INC kretanja
-Oĉitavamo trenutnu poziciju rotacionih osa
Kraj
#MVEND
Poĉetak
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
47
#WENMOV-IRZ PROCEDURA ĈEKANJA NA PRITISAK TASTERA ZA DOZVOLU KRETANJA
Ne
Ne
Ne
Ne
Ne
Ne
Da
Da
Da
Kraj
-Sekvenca nije prva u pokretu, ne ekamo otpuštanje tasteraĉ
MVFIRST<>1
-Pokrenuta ABORT procedura
-Pokrenuta ABORT procedura
ABORT=1
ABORT=1
-Jedan od dva ili oba TDK pritisnuta
-TDK nije pritisnut
IN1=0 | IN2=0
IN1=1 & IN2=1
Da
Da
#TAS12CL
#TAS12OP
-U HOMING-u ĉekamo da TDK bude pritisnut prvi put
HMFIRST=1
Da
-TDK pritisnut, ispitujemo koji i dozvoljavamo da interapt procedura reaguje na taj taster
#WEBRCL
-Otkoĉimo sistem i ukljuĉimo spojnice
#WENABT
-Zabranjujemo interapte i MVABORT=1
#WENEND
-Košeno
ĉimo rotacione ose ako je njihovo kretanje zavr
Poĉetak
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
48
Ne
Ne
Ne
Da
Da
Poĉetak
Povratak u glavnu proceduru sadozvoljenim trippoints
MOVE procedura u toku
-Pamtimo trenutne brzine sistema-Zaustavljamo plafostate
MOVING<>0
-HOMING je u toku:-Sve ose došle do svojih graniĉnih prekidaĉa
LIMFOUND=1
-Ot štamo spojnice samo onim translatornim osama koje nisu došle do svojih grani
pu
ĉnih prekidaĉa
-Na taj na in omoguĉ ćeno ruĉno razmrdavanje sistema u HOMING-u
-Koţavaju prethodno
stanje
ĉnice translatornih osa ne koĉe a rotacionih osa zadr
#MOVEGO
#HOMEGO
-ţavaju trenutno
stanje ko
Ĉekamo 1sec i koĉimo translatorne ose dok rotacione zadr
ĉnica
Da
TDK pritisnut
#WENMOV
-Inicijalištanja tastera
zujemo sistemu brzine koje su bile aktuelne pre otpu
RI1
#ININT-IRZ INTERAPT PROCEDURA-REAKCIJA NA OTPUŠTANJE TASTERA
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
49
#INCPoĉetak
Nije stigla komanda za inkrementalno kretanja ?
- Inicijalizacija promenljivih i resetovanje tajmera
Smer kretanja?
INCMOVE<>2
Brzina je pozitivna
VINC=VCA
@ABS[INCMOVE]<>2
~h=0
Da
Ne
Koja osa treba da se kreće?
~h=?
Poz. Neg.
Grani?
ĉni prek.nije pritisnut
_LFA=1
Grani?
ĉni prek.nije pritisnut
_LRA=1
Da Da
Brzina je negativna
VINC= - VCA
Pripremi ubrzanje i usporenje, pripremi paljenje i gašenje
spojnica i koĉnica
Nema kretanja
INCMOVE=0
Nema kretanja
INCMOVE=0
NeNe
~h=1 ~h=2 ~h=3 ~h=4
#OSA_B #OSA_C #OSA_D #OSA_E
#AMINUS
#AMNOLS#APNOLS
#GO_AINC
Ukljuĉi i iskljuĉi koĉnice (i spojnice)
Startuj tajmer za kretanjePostavi brzinu, ubrzanje i usporenje
Pokreni osu
#GO
Stigla je potvrda da se kretanje nastavlja
@ABS[INCMOVE]=2
Resetuj tajmer za kretanjeINCMOVE=1
Da
Ne
Kretanje ne treba zaustaviti?
INCMOVE<>0
Ne
Da
#INCLP2
Zaustavi kretanje i ugasi servo za rot. oseStartuj tajmer za koĉnice
#INCLP3
Nije stigla nova komanda za kretanje, i nije došlo vreme da se koĉi
( = )&(BREAK=0)INCMOVE 0
Ne
Da
Zaustavi ĉnicetajmer za ko
Istekao je tajm-out za koĉnice?
BREAK=1
Ne
Da
Zakoĉi sve koĉnice
(Isklju )ĉi sve spojnice
Kraj
#WTTAS
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
50
#TIMERSPoĉetak
#TIMERS
Tajmer inkrementalnog kretanja startovan?
TE_INC=1
Da
Ne
Vreme jos nije iscurelo?
TO_INC>0
Da
Ne
Kraj
Vreme je iscurelo?TO_INC>0
Da
Ne
Smanji boja vremenaĉ
TO_INC=TO_INC-1
Zaustavi tajmer i pokreni zaustavljanje inkrementalnog kretanja
T _INCE = 0
INCMOVE= 0
Tajmer startovan?za kocnice
TE_BRK=1
Da
Ne
Vreme jos nije iscurelo?
TO_ >0BRK
Da
Ne
Vreme je iscurelo?
TO_ >0BRK
Da
Ne
Smanji boja vremenaĉ
TO_BRK=TO_BRK-1
Zaustavi tajmer i pokreni koĉenje sistema
T _E BRK= 0
BREAK= 0
Saĉekaj 100 ms
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
51
Ne
Ne
Da
Da
Da
-Proces homovanja u toku
HOMING 0<>
Poĉetak
Kraj
#ABORT - IRZ PREKIDANJE KRETANJA NA ZAHTEV ŠEG SWVI
-Tred za kretanje plafostata
MOVING=0
ABORT=1
-Zaustavljamo plafostat
-Proces nije abortovan
ABORTED=0
#ABLOOP
#ABREND
Ne
-Resetujemo promenljive
-Javljamo gornjem sw user interaptUI4
Dodatak 2: Algoritmi i stejtmašine DRZ
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
52
- zujemo traInicijali ţenje HOME prekidaĉa i strtujemo kretanje
#HOMING-DRZPROCEDURA MEHANI KE INICIJALIZACIJEĈ
Ne -Sve ose došle do svog HOME prekidaĉa
Definišemo koordinatni poĉetak
-Odlazimo u READY poziciju
#MOVE
-Po šetku pokreta zako
šeno
zavr ĉimo sistem-Iskljuĉujemoi upravljanje rotacionim osama-Javljamo user interapt gornjem sw da je kretanje zavr
-Inicijalizacija promenljivih
Ne
Da
Poĉetak
TDK pritisnut,prvi pritisak
#WENMOV
-Zabranjujemo interapte -Otpuštamo spojnice translatornim osama-Koĉimo rotacione ose
Sistem je moguće ruĉno razmrdati
Ne
Ne
Ne
Ne
Da
TDK pritisnut,drugi pritisak
-Sve ose došle do svog graniĉnog prekidaĉa
-Osa D došla do svoje granice i sto završio kretanje
-Osa došla do svoje granice E
#WENMOV
-Iskljuĉujemo sw granice sistema-Inicijalizujemo ubrzanja i jaka koĉenja
- one ose koje nisu na svoje grani
Pokre emo translatorne šle
ć
ĉne prekidaĉe
-Odbravljujemo ĉetvrtu osu
SB 11, SB 12
-Osa odbravljena, ne ĉini pokret potreban za sigurno odbravljivanje
IN[9]=1
Da
Ne
-Pokrećemo osu D relativno 100 impulsa kako bi sigurno odbravili tu osu
#HUNLK
-Pokre šla do svoje granice-Automatski pozicioniramo sto na 600mm
ćemo osu D ako nije do
XQ #TBLCTRL,5
Da
Da
-Pok šla do svoje granice
rećemo osu E ako nije do
Da
Da
Kraj
Da
UI3
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
53
-Zadajemo nove reference sistemu
Ne
Ne
Ne
Ne
Ne
Ne
Da
Da
Da
Da
Abort procedura pokrenuta
Abort procedura pokrenuta
Trezadnja u planiranom pokretu
nutna sekvenca kretanja nije
-Startujemo kretanje trnaslatornih osa
-Startujemo kretanje rotacionh osa ako za to ima potrebe
Kretanje zavrseno
-Iskljuĉujemo upravljanje rotacionim osama i koĉimo ih
-Gasimo upravljanje rotacionim osama
-Zabranjujemo interapte tastera-Resetujemo promenljive
-Proces homovanja u toku ili kretanje abortirano
-šeno
Javljamo user interapt gornjem sw da je kretanje zavr
#MOVABT
#MNOBRK
MVABORT=1
ABORT =1
MVLAST<>1
HOMING=1 | ABORT=1
TDK pritisnut
#WENMOV
UI2
#MOVE-DRZ
-Iskljuĉujemo time-outza koĉnice INC kretanja
-Oĉitavamo trenutnu poziciju rotacionih osa
Kraj
#MVEND
Poĉetak
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
54
#WENMOV-DRZ PROCEDURA ĈEKANJA NA PRITISAK TASTERA ZA DOZVOLU KRETANJA
Da
-Jedan od dva ili oba TDK pritisnutaDa
Da
#TAS12CL
#TAS12OP
Da
Da
#WEBRCL
-Otkoĉimo sistem i ukljuĉimo spojnice
Ne
Ne
Ne
Ne
Ne
Ne
Da
Da
-Sekvenca nije prva u pokretu, ne ekamo otpuštanje tasteraĉ
MVFIRST<>1
-Pokrenuta ABORT procedura
-Pokrenuta ABORT procedura
ABORT=1
ABORT=1
-TDK nije pritisnut
IN1=0 | IN2=0
IN1=1 & IN2=1
-U HOMING-u ĉekamo da TDK bude pritisnut prvi put
HMFIRST=1
-TDK pritisnut, ispitujemo koji i dozvoljavamo da interapt procedura reaguje na taj taster
#WENABT
-Zabranjujemo interapte
Poĉetak
-Automatsko pošeno
zicioniranje stola u toku i homovanje zavr
TMOVE=1 & HOMING=0
Ne
-MOVE u toku, MVABORT=1-TBLCTRL u toku, TBABORT=1
-Po icioniranje stola šenaz zavr
TMOVE=0
Da
Ne
-Pokrećemo sto u odgovarajućem smeru,
-Pokrećemo sto u odgovarajućem smeru,
SB 9 | SB 10
SB 9 | SB 10
-Košile svoje kretanje
ĉimo rotacione ose ako su zavr
#WENTBL
Kraj
#WDEBRK
#WENEND
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
55
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
56
Ne
Da
Poĉetak
Pozicioniranje stola u tokui homovanje sistema završeno
Pozicioniranje stola u tokui homovanje sistema završeno
T E=1 & HOMING=0MOV
T E=1 & HOMING=0MOV
#ININT-DRZ INTERAPT PROCEDURA-REAKCIJA NA PRITISAKILI OTPUŠTANJE TASTERA
-Pamtimo trenutne brzine sistema-Zaustavljamo plafostate
Ne
Da MOVE procedura u toku
MOVING<>0
-Zaustavljamo sto kada se nalazimo u proceduri homovanja
-Zaustavljamo sto
CB 9, CB 10
CB 9, CB 10
Ne
Da-HOMING je u toku:-Sve ose došle do svojih graniĉnih prekidaĉa
LIMFOUND=1
-Ot štamo spojnice samo onim translatornim osama koje nisu došle do svojih grani
pu
ĉnih prekidaĉa
-Na taj na in omoguĉ ćeno ruĉno razmrdavanje sistema u HOMING-u
-Koţavaju prethodno
stanje
ĉnice translatornih osa ne koĉe a rotacionih osa zadr
#HOMEGO
#MOVEGO
#TBLSTOP
-ţavaju trenutno
stanje ko
Ĉekamo 1sec i koĉimo translatorne ose dok rotacione zadr
ĉnica
Ne
Da
TDK pritisnut
#WENMOV
Da
Ne
-Inicijalištanja tastera
zujemo sistemu brzine koje su bile aktuelne pre otpu
-Ukljuĉujemo integratore rotacionim osama
#INTEND
Povratak u glavnu proceduru sadozvoljenim trippoints RI1
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
57
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
58
#INCPoĉetak
Nije stigla komanda za inkrementalno kretanja ?
- Inicijalizacija promenljivih i resetovanje tajmera
Smer kretanja?
INCMOVE<>2
Brzina je pozitivna
VINC=VCA
@ABS[INCMOVE]<>2
~h=0
Da
Ne
Koja osa treba da se kreće?
~h=?
Poz. Neg.
Grani?
ĉni prek.nije pritisnut
_LFA=1
Grani?
ĉni prek.nije pritisnut
_LRA=1
Da Da
Brzina je negativna
VINC= - VCA
Pripremi ubrzanje i usporenje, pripremi paljenje i gašenje
spojnica i koĉnica
Nema kretanja
INCMOVE=0
Nema kretanja
INCMOVE=0
NeNe
~h=1 ~h=2 ~h=3 ~h=4
#OSA_B #OSA_C #OSA_D #OSA_E
#AMINUS
#AMNOLS#APNOLS
#GO_AINC
Ukljuĉi i iskljuĉi koĉnice (i spojnice)
Startuj tajmer za kretanjePostavi brzinu, ubrzanje i usporenje
Pokreni osu
#GO
Stigla je potvrda da se kretanje nastavlja
@ABS[INCMOVE]=2
Resetuj tajmer za kretanjeINCMOVE=1
Da
Ne
Kretanje ne treba zaustaviti?
INCMOVE<>0
Ne
Da
#INCLP2
Zaustavi kretanje i ugasi servo za rot. oseStartuj tajmer za koĉnice
#INCLP3
Nije stigla nova komanda za kretanje, i nije došlo vreme da se koĉi
( = )&(BREAK=0)INCMOVE 0
Ne
Da
Zaustavi ĉnicetajmer za ko
Istekao je tajm-out za koĉnice?
BREAK=1
Ne
Da
Zakoĉi sve koĉnice
(Isklju )ĉi sve spojnice
Kraj
#WTTAS
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
59
#TIMERS Poĉetak
#TIMERS
Tajmer inkrementalnog kretanja startovan?
TE_INC=1
Da
Ne
Vreme jos nije iscurelo?
TO_INC>0
Da
Ne
Kraj
Vreme je iscurelo?TO_INC>0
Da
Ne
Smanji boja vremenaĉ
TO_INC=TO_INC-1
Zaustavi tajmer i pokreni zaustavljanje inkrementalnog kretanja
T _INCE = 0
INCMOVE= 0
Tajmer startovan?za kocnice
TE_BRK=1
Da
Ne
Vreme jos nije iscurelo?
TO_ >0BRK
Da
Ne
Vreme je iscurelo?
TO_ >0BRK
Da
Ne
Smanji boja vremenaĉ
TO_BRK=TO_BRK-1
Zaustavi tajmer i pokreni koĉenje sistema
T _E BRK= 0
BREAK= 0
Saĉekaj 100 ms
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
60
Ne
Ne
Da
Da
Da
-Proces homovanja u toku
HOMING 0<>
Poĉetak
Kraj
#ABORT - DRZ PREKIDANJE KRETANJA NA ZAHTEV ŠEG SWVI
-Tred šavaju
za kretanje plafostata i tred za sto se ne izvr
MOVING=0 & TMOVE=0
ABORT=1-Zaustavljamo sto, ako se kreće-Zaustavljamo plafostate
-Procesi nisu abortovani
ABORTED=0
#ABLOOP
#ABREND
Ne
-Resetujemo promenljive
-Javljamo gornjem sw user interaptUI4
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
61
#HWTAST Poĉetak
Stanje stejt mašine ?
#HWTLOOP
- Inicijalizacija stejt mašine HDIST 0=
Taster za taster za pritsnut
dole otpuštenili gore
(@IN[5]=1)|(@IN[4]=0)
Da
Ne
Pauza za debouncing
Taster za taster za pritsnut
dole otpuštenili gore
(@IN[5]=1)|(@IN[4]=0)
Da
Ne
Javi da je taster za dole pritisnut duţe vreme i
promeni stanje
UI 5; HDIST=1
Taster za taster za pritsnut
gore otpuštenili dole
(@IN[4]=1)|(@IN[5]=0)
Da
Ne
Pauza za debouncing
Taster za taster za pritsnut
gore otpuštenili dole
(@IN[4]=1)|(@IN[5]=0)
Da
Ne
Javi da je taster za pritisnut du
doreţe vreme i
promeni stanje
UI 6; HDIST=2
HDIST=?
#HWT_0
#HWTUT
Taster za dole otpušten
@IN[5]=1
Da
Ne
Javi da je taster i
otpuštenpromeni stanje
UI ; HDIST=7 0
HDIST=1
#HWT_1
HDIST=0
Taster za gore otpušten
@IN[ ]=14
Da
Ne
Javi da je taster i
otpuštenpromeni stanje
UI ; HDIST=7 0
#HWT_2
HDIST=2
Resetuj stejt mašinu
HDIST=0
ostale vrednosti
#HWTEND
Kraj
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
62
STA
NJE
0
STA
NJE
1
STA
NJE
3S
TA
NJE
2
PO
ST
OJI
DO
ZV
OL
A Z
A K
RE
TA
NJE
ST
OL
A
PR
ELA
ZIM
O U
STA
NJE
1
NE
PO
ST
OJI D
OZ
VO
LA
ZA
KR
ETA
NJE
ST
OL
A
ZA
US
TA
VL
JA
MO
ST
O,
PR
EL
AZ
IMO
U S
TA
NJE
0
PA
PU
ŢE
OD
20
0m
s I
T
RE
NU
TN
A V
ISIN
A S
TO
LA
IZ
NA
D D
ON
JE
GR
AN
ICE
ĈIC
A Z
A D
OL
E P
RIT
ISN
UTA
D
U
PA
PU
GO
RE
ŢE
OD
20
0m
s I
TR
EN
UT
NA
VIS
INA
ST
OL
A IS
PO
D G
OR
NJE
GR
AN
ICE
ĈIC
A Z
A P
RIT
ISN
UTA
D
U
PA
PU
OT
PU
ŠT
EN
A
DO
NJE
GR
AN
ICE
ĈIC
A Z
A D
OLE
ILI T
RE
NU
TN
A V
ISIN
A S
TO
LA
IS
PO
D PA
PU
OT
PU
ŠT
EN
AN
AD
GO
RN
JE
GR
AN
ICE
ĈIC
A Z
A G
OR
EIL
I T
RE
NU
TN
A V
ISIN
A S
TO
LA
IZ
PO
KR
EŢ
EI
PR
ELA
ZIM
O U
STA
NJE
2Ć
EM
O S
TO
NA
NI
PO
KR
EŠ
EI
PR
EL
AZ
IMO
U S
TA
NJE
2Ć
EM
O S
TO
NA
VI
NE
PO
ST
OJI D
OZ
VO
LA
ZA
KR
ETA
NJE
ST
OL
AN
E P
OS
TO
JI
DO
ZV
OLA
ZA
KR
ETA
NJE
ST
OLA
ZA
US
TA
VL
JA
MO
ST
O I
P
RE
LA
ZIM
O U
STA
NJE
0Z
AU
STA
VLJA
MO
ST
O I
P
RE
LA
ZIM
O U
STA
NJE
0
LIF
TE
N=
1
LIF
TE
N=
0
LIF
TE
N=
0L
IFT
EN
=0
LIF
TS
T=
1
LIF
TS
T=
0
LIF
TS
T=
0LIF
TS
T=
0
IN[6
]=0 &
NA
PO
N<
TL
IMD
N
IN[8
]=0
& N
AP
ON
>T
LIM
UP
IN[6
]= |
NA
PO
N>
TL
IMD
N1
IN[8
]= |
NA
PO
N<
TL
IMU
P1
SB
10
SB
9
LIF
TS
T=
2
LIF
TS
T=
2
LIF
TS
T=
1
LIF
TS
T=
1
ZA
US
TA
VL
JA
MO
ST
O
I P
RE
LA
ZIM
O U
STA
NJE
1
ZA
US
TA
VL
JA
MO
ST
O
I P
RE
LA
ZIM
O U
STA
NJE
1
CB
10
CB
9
#L
IFT
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
63
#L
IFT
Poĉeta
k
Sta
nje
ste
jt m
ašin
e ?
#L1
- In
icija
lizacija
ste
jt m
ašin
eLIF
TS
T0
=
Do
bije
na
dozvola
rad
a?
LIF
TE
N=
1 Da
Ne
Pro
me
ni sta
nje
LIF
TS
T=
1
LIF
TS
T=
?
#0
LS
T
LIF
T1
ST
=
#LS
T1
LIF
TS
T=
0
Pap
uic
a
otp
ušte
n
ĉn
ije
a i
gra
nic
a n
ije p
rob
ijen
a
(6
0)
@IN
[]=
&
(NA
PO
N<
(TLIM
DN
-OF
FD
N))
Da
Ne
Za
usta
vi spu
sto
la
i
šta
nje
p
rom
en
i sta
nje
CB
10;
LIF
TS
T=
1
#LS
T2
LIF
TS
T=
2osta
le
vre
dno
sti
#H
WT
EN
D
Kra
j
Nije
pritisnu
ta p
ap
udo
leĉic
a
za
@IN
[6]<
>0
Da
Ne
Pa
uza
za
deb
oun
cin
g
Nije
pritisnu
ta p
ap
udo
leĉic
aza
@IN
[]<
>0
6
Da
Ne
Odre
di tr
en
utn
u v
isin
u
sto
la
#T
BL
PO
S
Vis
ina m
anja
m
inim
aln
eod
?
Da
NA
PO
N>
=(T
LIM
DN
-OF
FD
N)
Ne
Sta
rtuje
mo
spu
šta
nje
i m
enja
mo
sta
nje
CB
9; S
B10
; L
IFT
ST
=2
#T
BLU
PN
ije p
ritisn
uta
pap
ug
ore
ĉic
a
za
@IN
[8]<
>0
Da
Ne
Pau
za
za d
ebo
un
cin
g
Nije
pri
tisn
uta
pap
ug
ore
ĉic
aza
@IN
[8]<
>0
Da
Ne
Od
red
i tr
enu
tnu v
isin
u
sto
la
#T
BLP
OS
Vis
ina
veća
od
ma
ksim
aln
e?D
a
NA
PO
N<
=(T
LIM
UP
+O
FF
UP
)
Ne
Sta
rtu
jem
o p
odiz
anja
i m
enja
mo s
tan
je
CB
10
; S
B 9
; L
IFT
ST
=3
Odre
di tr
en
utn
u v
isin
u
sto
la
#T
BL
PO
S
Pa
pu
ica
otp
ušte
n
ĉn
ije
a i
gra
nic
a n
ije p
robije
na
(0
)@
IN[8
]= &
(N
AP
ON
>(T
LIM
UP
+O
FF
UP
))
Da
Ne
Za
usta
vi
sto
la
i
po
diz
anje
pro
men
i sta
nje
CB
9;
LIF
TS
T=
1
Od
red
i tr
enu
tnu
vis
inu
sto
la
#T
BLP
OS
Ukin
uta
do
zvola
rad
a?
LIF
TE
N=
0
Da
Ne
Ukin
uta
dozvo
la r
ada
?
LIF
TE
N=
0
Da
Ne
Ukin
uta
dozvo
la r
ada
?
LIF
TE
N=
0
Da
Ne
LIF
TS
T=
3
#LS
T3
Zau
sta
vi kre
tanje
sto
la
i re
se
tuj ste
jt m
ašin
u
CB
9;
; L
IFT
ST
=0
CB
10
#LIF
TR
ES
#LS
TE
ND
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
64
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
65
#TBLCTRL
NeDa
Poĉetak
Trenutna visina od zadateveća
NAPON<REFU
- Kretanje na gore, TDIR=1
-Korigujemo referencu za poboljšanje taĉnosti
#DIRDN
- Kretanje na doleTDIR=0
-Korigujemo referencu za poboljšanje taĉnosti
Homing u toku?nije
HOMING<>1
- Starujemo kretanje lifta na dole SB 10 - Starujemo kretanje lifta na gore SB 9
Ne
Da Da
Homing u toku?nije
HOMING<>1
Ne
Da
#TWENM
Ĉekamo taster dozovle kretanja
#WENMOV
#T_LOOP
-Pozivamo proceduru za merenje visine stola
Kretanje na gore treba zaustaviti?
(TDIR=1)&(NAPON<REFU)
Ne
Da
-Definišemo ofsete za poboljšanje taĉnosti-Iskljuĉujemo oba relea za kretanje lifta
-Pozivamo proceduru za merenje visine stola - Postavljamo fleg za kretanje stola TMOV=1
#TBLPOS
#TBLPOS
-Zaustavljamo kretanje i resetujemo fleg
CB 9; TMOVE=0
Kretanje na dole treba zaustaviti?
(TDIR= )&(NAPON0 >REFU)Ne
Da
-Zaustavljamo kretanje i resetujemo fleg
CB 10; TMOVE=0
Kretanje nije zaustavljeno i nema aborta( )&(TMOVE=1 TBABORT=0)
NeDa
U toku je homing ili je bio abort(HOMING<>0)|(ABORT=1)
Ne
User interapt UI 8
Homing u toku?nije
HOMING<>1
Ne
Reset. flega TMOVE=0
Homing nije u tokuHOMING<>1
Ne
Zabrani interapte
Bio je abortTBABORT=1
Da
ABORTED=1
Da
Ne
Kraj
#TBLCEN
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
66
STANJE 0
STANJE 2STANJE 1
TASTER ZA DOLE P
RITISNUT, A
TASTER ZA
GORE OTPU
DU
ŠTEN ŢE O
D 200ms
JAVLJAMO DA JE TASTER ZA D
OLE
PRITISNUT
UI 5
TASTER ZA G
ORE PR
ITISNUT, A TASTER
ZA
DO
LE OTPU
DU
ŠTEN
ŢE OD 200m
s
JAVLJAMO
DA JE TASTER
ZA GO
RE
PRITISN
UT
UI 6
TA
ST
ER
ZA
DO
LE
OT
PU
ŠT
EN
JAV
LJA
MO
DA
JE
TA
ST
ER
OT
PU
ŠT
EN
UI 7
TA
ST
ER
ZA
GO
RE
OT
PU
ŠT
EN
JA
VLJA
MO
DA
JE
TA
ST
ER
OT
PU
ŠT
EN
UI 7
#HWTAST
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
67
#HWTAST Poĉetak
Stanje stejt mašine ?
#HWTLOOP
- Inicijalizacija stejt mašine HDIST 0=
Taster za taster za pritsnut
dole otpuštenili gore
(@IN[5]=1)|(@IN[4]=0)
Da
Ne
Pauza za debouncing
Taster za taster za pritsnut
dole otpuštenili gore
(@IN[5]=1)|(@IN[4]=0)
Da
Ne
Javi da je taster za dole pritisnut duţe vreme i
promeni stanje
UI 5; HDIST=1
Taster za taster za pritsnut
gore otpuštenili dole
(@IN[4]=1)|(@IN[5]=0)
Da
Ne
Pauza za debouncing
Taster za taster za pritsnut
gore otpuštenili dole
(@IN[4]=1)|(@IN[5]=0)
Da
Ne
Javi da je taster za pritisnut du
doreţe vreme i
promeni stanje
UI 6; HDIST=2
HDIST=?
#HWT_0
#HWTUT
Taster za dole otpušten
@IN[5]=1
Da
Ne
Javi da je taster i
otpuštenpromeni stanje
UI ; HDIST=7 0
HDIST=1
#HWT_1
HDIST=0
Taster za gore otpušten
@IN[ ]=14
Da
Ne
Javi da je taster i
otpuštenpromeni stanje
UI ; HDIST=7 0
#HWT_2
HDIST=2
Resetuj stejt mašinu
HDIST=0
ostale vrednosti
#HWTEND
Kraj
Dodatak 3: Digitalni ulazi i izlazi kartice IRZ
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
68
Opis digitalnih izlaza kartice IRZ
R.br. Set Reset Opis
1. 0x0001 0xfffe Spojnica ose A
2. 0x0002 0xfffd Rotaciona kočnica ose A
3. 0x0004 0xfffb Spojnica ose B
4. 0x0008 0xfff7 Rotaciona kočnica ose B
5. 0x0010 0xffef Spojnica ose C
6. 0x0020 0xffdf Rotaciona kočnica ose C
7. 0x0040 0xffbf Spojnica ose D
8. 0x0080 0xff7f Kočnica ose D
9. 0x0100 0xfeff Rele napajanja R5
10. 0x0200 0xfdff
11. 0x0400 0xfbff
12. 0x0800 0xf7ff
13. 0x1000 0xefff Translatorna kočnica ose B
14. 0x2000 0xdfff Translatorna kočnica ose A
15. 0x4000 0xbfff Spojnica ose E
16. 0x8000 0x7fff Rotaciona kočnica ose E
Opis digitalnih ulaza kartice IRZ
R.br. Opis
1. Taster dozvole kretanja 1, TDK1
2. Taster dozvole kretanja 2, TDK2
3. Taster otpuštanja kočnica
4. Inkrementalni taster TSYNC
5. Inkrementalni taster TIA-
6. Inkrementalni taster TIA+
7.
8. Inkrementalni taster TIB-
9. Inkrementalni taster TIB+
10. Inkrementalni taster TIC-
11. Inkrementalni taster TIC+
12. Inkrementalni taster TID-
13. Inkrementalni taster TID+
14. Inkrementalni taster TIE-
15.
16. Inkrementalni taster TIE+
Dodatak 4: Digitalni ulazi i izlazi kartice IRZ
Opis digitalnih izlaza kartice DRZ
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
69
R.br. Set Reset Opis
1. 0x0001 0xfffe Spojnica ose A
2. 0x0002 0xfffd Rotaciona kočnica ose A
3. 0x0004 0xfffb Spojnica ose B
4. 0x0008 0xfff7 Rotaciona kočnica ose B
5. 0x0010 0xffef Spojnica ose C
6. 0x0020 0xffdf Rotaciona kočnica ose C
7. 0x0040 0xffbf Spojnica ose D
8. 0x0080 0xff7f Kočnica ose D
9. 0x0100 0xfeff Rele za pokretanje stola na gore
10. 0x0200 0xfdff Rele za pokretanje stola na dole
11. 0x0400 0xfbff Rele za zabravljivanje ose D
12. 0x0800 0xf7ff Rele za odbravljivanje ose D
13. 0x1000 0xefff Translatorna kočnica ose B
14. 0x2000 0xdfff Translatorna kočnica ose A
15. 0x4000 0xbfff Spojnica ose E
16. 0x8000 0x7fff Rotaciona kočnica ose E
Opis digitalnih ulaza kartice IRZ
R.br. Opis
1. Taster dozvole kretanja 1, TDK1
2. Taster dozvole kretanja 2, TDK2
3. Taster otpuštanja kočnica
4. Inkrementalni taster DRZ na dole
5. Inkrementalni taster DRZ na gore
6. Taster kretanja pacijent stola na dole, TPSd
7.
8. Taster kretanja pacijent stola na gore, TPSu
9. Taster dojave zabravljivanja
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
70
Parametri Digraf-C
1. Parametri planera kretanja U ovom dokumentu su opisani parametri koji definisu ponasanje rentgen uredjaja u
kinematickom smislu. Poglavlje 1.1 sadrzi detaljan opis parametara koji opisuju pacijent-sto i
njegovo kretanje u radnom prostoru. Poglavlje 1.2 sadrzi parametre koji odredjuju bounding box-
ove izvora i detektora rentgenskog zracenja (IRZ i DRZ), kao i prikaz dh parametara cetvrtog i
petog linka plafostata IRZ i DRZ-a koji odredjuju duzine linkova i njihov medjusobni polozaj.
Poglavlje 1.3 sadrzi detaljan opis parametara koji definisu tehnike snimanja (TableTop, TableSide,
TableSlope, Stand, Beside). I na kraju poglavlje 1.4 sadrzi ostale parametre koji sluze za
dimenzionisanje boundig box-ova plafostata kao i parametra za podesavanje safety pozicija.
1.1 Parametri stola
Lift_
dim
s(1
)
Lift_dims(2)
Lift_dims(3)
Ta
ble
_dim
s(1
)
Table_dims(2)
Table_dims(3)
{Xt,yt,zt} = lift_pos
{Xt,yt,zt} = lift_pos
Table_lift_offset(2)
a)
b)
sl.1 Parametri stola: a) pogled odozgo b) pogled sa strane
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
71
Lift_pos odnosno pozicija lifta > tacka {xt, yt, zt}, odredjuje se u odnosu na referentni
koordinatni sistem koji se nalazi na stolu. Koordinatni pocetak referentnog koordinatnog sistema se
nalazi na povrsini stola po sredini lifta (po obe dimenzije lifta> x i y).
Dimenzije lifta i ploce stola opisane su vektorima lift_dims, table_dims i to na sledeci nacin:
Lift_dims = [length width height];
table_dims = [length width height];
Ploca stola moze da pliva po x i y osi. Plivanje po y osi definise parametar table_lift_offset(2) i to tako
da je njegova vrednost jednaka nuli kada se sto nalazi u poziciji kada se njegova ivica poklapa sa
ivicom lifta blizoj ready poziciji DRZ-a, a raste kako se udaljava od ivice lifta.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
72
1.2 Parametir bounding box-ova IRZ-a i DRZ-a
Irz_dims(1)
Irz_dims(2)
Irz_dims(3)
Drz_dims(1
Drz_dims(2
Drz_dims(3
Dims = (length, width, height+, height-)
Irz_dims(4)
sl.2 Dimenzije bounding box-ova IRZ-a (na slici gore) i DRZ-a (na slici dole)
Na sl.2 su prikazani parametri koji opisuju bounding box-ove IRZ-a i DRZ-a. Treba primetiti da
vektor IRZ-a koji sadrzi ove parametre ima jedan clan vise u odnosu na vektor drz. Ovaj clan opisuje
bounding box koji je opisan oko motora pete ose IRZ-a.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
73
DH parametri
Irz_a4
irz_d5
drz_d5
Irz_focus
Irz_cross
drz_focus
Drz_cross
sl.3 Prikaz DH parametara cetvrtog i petog linka
IRZ-a i DRZ-a.
sl.4 Prikaz fizickih pozicija tacaka cross i focus
IRZ-a odnosno DRZ-a.
Na slikama sl3. i sl.4 su prikazani dh parametri koji opisuju cetvrti i peti link plafostata, kao i
tacaka na osnovu kojih je vrseno planiranje kretanja (irz_focus, irz_cross, drz_focus, drz_cross).
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
74
1.3 Parametri tehnika snimanja
sl.5 Parametri tehnike TableTop (pogled sa strane)
Tehnika snimanja na stolu TableTop. Ploca detektora(crveno) se nalazi ispod povrsine stola
na rastojanju Delta table drz duz z ose. Centar ploce detektora (drz_cross) se nalazi na rastojanju od
tacke {xt, yt, zt} na rastojanju Dist from xt duz x ose. IRZ se nalazi iznad DRZ na rastojanju SID koje je
mereno od gornje povrsine ploce DRZ do povrsine IRZ.
Dist from xt
x
yz
sl.6 Parametri tehnike TableSide (pogled sa strane - sagitalni)
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
75
Dist y from table
Dist z from table
x
y
z
sl. 7 Parametri tehnike TableSide (pogled sa strane - frontalni)
Tehnika snimanja na stolu TableSide. Ploca detektora(crveno) se nalazi pored ploce stola na
rastojanju Dist y from table duz y ose. Centar ploce detektora (drz_cross) nalazi se na rastojanju Dist
z from table duz z ose iznad gornje povrsine ploce stola. Takodje se drz_cross nalazi na rastojanju od
tacke {xt, yt, zt} na rastojanju Dist from xt duz x ose. IRZ se nalazi na suprotnoj strani stola u odnosu
na DRZ na rastojanju SID koje je mereno drz_cross do irz_cross.
Tube slope
Dist from xt
x
yz
sl. 8 Parametri tehnike Stand (pogled sa strane – sagitalni)
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
76
Dist from yt
Drz
he
igh
t
x
y
z
sl. 9 Parametri tehnike Stand (pogled sa strane - frontalni)
Tehnika snimanja pored stola Stand. Ploca detektora(crveno) se nalazi pored stola tako da je
drz_cross na rastojanju Dist from yt od tacke yt koja definise poziciju lifta duz y ose. Pozicija duz x ose
detektora odredjena je tako da se drz_cross nalazi na rastojanju dist from xt u odnosu na poziciju
tacke xt (lift_pos(1)), takodje se drz_cross nalazi na rastojanju drz_height u odnosu na tacku
zt(lift_pos(3)). Polozaj IRZ je odredjen rastojanjem SID u odnosu na detektor, kao i uglom koji
zaklapaju povrsine DRZ-a odnosno IRZ-a.
Dist from xt
Tube slope
Height from table
x
yz
sl.10 Parametri tehnike TableSlope (pogled sa strane - sagitalni)
Tehnika snimanja na stolu TableSlope. Ploca detektora(crveno) se nalazi iznad stola tako da
je drz_cross na rastojanju Height_from_table u odnosu na gornju povrsinu stola. Pozicija duz x ose
detektora odredjena je tako da se drz_cross nalazi na rastojanju dist from xt u odnosu na poziciju
tacke xt (lift_pos(1)). Polozaj IRZ je odredjen rastojanjem SID u odnosu na detektor, kao i uglom koji
zaklapaju povrsine DRZ-a odnosno IRZ-a.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
77
x
y
z
sl.11 Parametri tehnike Beside (pogled sa strane - frontalni)
Tehnika snimanja pored stola Beside. Ploca detektora(crveno) se nalazi pored stola tako da
presek osa treceg i cetvrtog linka nalazi na rastojanju dist from table od tacke (yt+lift_dims(2)).
Pozicija duz x ose detektora odredjena je tako da se drz_cross nalazi na rastojanju dist from xt u
odnosu na poziciju tacke xt (lift_pos(1)), takodje se drz_cross nalazi na rastojanju drz_height u
odnosu na tacku zt(lift_pos(3)). Polozaj IRZ je odredjen rastojanjem SID u odnosu na detektor.
1.4 Ostali parametri bitni za planiranje kretanja plafostata.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
78
Interbase_dist
Scope_dist_y
sl.12 Ostali parametri koji definisu medjusoban polozaj plafostata u prostoru
Na sl. 12 su prikazani ostali parametri koji definisu medjusoban polozaj plafostata. Rastojanje izmedju
baza plafostata InterBase_dist , udaljenost ose teleskopa od baze plafostata Scope_dist_y, polovina
sirine bounding box-a teleskopa Scope_thick.
Takodje je uveden i parametar safe_dist koji iskljucivo sluzi za podesavanje safety pozicija za svaku
tehniku.
NAPOMENA :
Na slikama u dokumentu nisu prikazani parametri koji odredjuju polozaj prostorije u radnom
prostoru. Prostorija je opisana jednim bounding box-om koji je odredjen pozicijom jedne tacke pos1 i
dimenzijama prostorije dims1. Pozicija tacke pos1 se odredjuje u odnosu na referentni koordinatni
sistem na stolu.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
79
Specifikacija slučajeva korišćenja:
Aktivnosti operatera.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
80
Use Case Diagram: Aktivnosti operatera
Ukljujcenje uredjaja
Iskljucenje uredjaja
Izbor moda rada
Pozicioniranje plivajuceg stola
Inicijalizacija
Rucno vodjenje
Pozicioniranje u poloţaj za
odredjenu tehniku
Inkrementalno pozicioniranje
rentgenske aparature
Prekid rada iz sigurnosnih razloga
<<extend>>
Otklanjanje plafostata
Automatsko pozicioniranje
rentgenske aparature
<<include>> <<include>>
<<extend>>
<<include>>
Poluautomatsko pozicioniranje
rentgenske aparature
<<include>><<include>>
<<include>>
<<extend>>
<<include>>
Prekid izvrsenja komande
<<include>>
<<include>>
Operater
Podesavanje otvora blende
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
81
Slučaj upotrebe: Uključenje uređaja
Kratak Opis
Operater dovodi sistem u operativno stanje.
Preduslovi
Sistem se nalazi u stanju “Isključen.
Oktretanjem glavnog prekidača na razvodnoj tabli u položaj “1” uređaju je dovedeno mrežno napajanje.
Tok događaja
Osnovni tok događaja
Pritiskom na “wake-up” taster na tastaturi korisnik startuje host računar. Service Manager host
računara u procesu podizanja operativnog sistema startuje upravljačku aplikaciju kao Windows
Service.
Nakon uspešno završene login procedure, izvršenjem sadržaja Registry ključa
HKLM\Software\Microsoft\Windows\CurrentVersion\Run operativni sistem pokreće UI
aplikaciju
UI aplikacija uspostavlja COM konekciju sa upravljačkom aplikacijom <Izuzetak 1.3.2.1>.
Upravljačka aplikacija pokreće proceduru samotestiranja sistema. Proverava se komunikacija
između hardverskih i softverskih komponenti sistema kao i njihova ispravnost <Izuzetak
1.3.2.2>.
Sistem beleži stanje u LOG datoteku i sistemski Event Log i prelazi u stanje “Neinicijalizovan”.
Izuzeci
< UI aplikacija ne može da uspostavi konekciju sa upravljačkom aplikacijom >
U procesu startovanja UI aplikacija nije uspela da uspostavi međupocesnu komunikaciju sa
upravljačkom aplikacijom. Ovo stanje ukazuje korisniku da uređaj nije u mogudnosti da nastavi sa
radom.Tada Operater preduzima sledede aktivnosti:
Operater poziva tehničku službu (Servisera1).
< Detektovana neispravnost u procesu samotestiranja> Procedura samotestiranja je utvrdila da neka od komponenti sistema ne funkcioniše na propisani
način. Ovo stanje ukazije korisniku da dalji rad nije mogud. Tada Operater preduzima sledede
aktivnosti:
Operater poziva tehničku službu (Servisera).
Posebni zahtevi
Nema posebnih zahteva.
Postuslovi
Uređaj se nalazi u stanju “Neinicijalizovan”. Podrazumevani mod rada je “Automatsko vođenje”.
1 Pogledati “Use Case specifikacija: Aktivnosti Servisera”
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
82
Slučaj upotrebe: Isključenje uređaja
Kratak Opis
Operater isključuje uređaj.
Preduslovi
Uređaj se nalazi u bilo kom stanju.
Tok događaja
Osnovni tok događaja
Operater na pritiskom na “wake-up” taster na tastaturi ili pozivom odgovarajude opcije UI aplikacije inicra proces gašenja uređaja.
Service Manager prosleđuje zahtev upravljačkoj aplikaciji i zahtev se beleži u sistemski Event Log i LOG datoteku.
Uređaj prelazi u stanje “Isključen”.
Izuzeci
Nema izuzetaka.
Posebni zahtevi
Nema posebnih zahteva.
Postuslovi
Uređaj se nalazi u stanju “Isključen”.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
83
Slučaj upotrebe: Inicijalizacija
Kratak Opis
Nakon uključenja sistem traži mehaničke granice kretanja za svaku osu.
Preduslovi
Uređaj je uključen i nalazi se u bilo kom stanju.
Tok događaja
Osnovni tok događaja
Operater pozivom odgovarajude opcije UI aplikacije pokrede proceduru mehaničke inicijalizacije <Izuzetak 3.3.2.1>.
Upravljačka aplikacija prihvata zahtev i beleži ga u LOG datoteku.
Operater pritiskom na taster dozvole kreatanja oslobađa kočnice i spojnice translatornih osa tako da se oba plafostata mogu ručno pomerati.
Operater ručno dovodi plafostate u poziciju za koju procenjuje da u procesu mehaničke inicijalizacije (hominga) ne može dodi do kolizije između palfostata i okoine ili plafostata međusobno.
Operater ponovnim pritiskom na taster dozvole kreatanja pokrede proceduru mehaničke inicijalizacije.
U slučaju da postoji opasnost od kolizjije, puštanjem tastera dozvole kretanja plafostati prekidaju kretanje i otpuštaju se kočnice i spojnice translatornih osa. Operater ima priliku da ručnim vođenjem razreši potencijano opasnu situaciju.
Nakon procedure mehaničke inicijalizacije plafostati zauzimaju READY2 poziciju.
Uređaj prelazi u stanje “Ready”. Napomena: U svakoj o pomenutih faza u koliko uređaj pokaže nepredviđeno ili
potencijalno opasno ponašanje, Operater isljučuje uređaj <Izuzetak 3.3.2.2>.
Izuzeci
< Odbija se korisnički zahtev za inicijalizaciju uređaja> Usled greške u funkcionisanju neke od komponenti sistema zahtev za inicijalizaciju može biti odbijen.
U tom slučaju Operater može preduzeti sledede akcije:
Operater može da reinicijalizuje uređaj isključenjem i ponovnim uključenjem (videti slučajeve korišdenja 2. i 3.).
U koliko prethodna akcija ne reši problem, Operater poziva tehničku službu (Servisera).
< Prekid rada zbog nepredviđnog ponašanja sistema> Operater prekida rad uređaja3.
Posebni zahtevi
Nema posebnih zahteva.
Postuslovi
2 Pozicije koje plafostati mogu zauzeti objašnjene su u dodatku B.
3 Pogledati UC ”Prekid rada iz sigurnosnih razloga”, Sekcija 5
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
84
Uređaj se nalazi u stanju “Spreman”. Uređaj zadržava prethodno uspostavljeni mod rada.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
85
Slučaj upotrebe: Izbor moda rada
Kratak Opis
Na zahtev Operatera uređaj prelazi u mod “Automatskog vođenja” ili “Poluautomatskog vođenja”.
Preduslovi
Uređaj se nalazi u odgovarajudem stanju:
za slučaj prelaska iz moda Automatskog u mod Poluautomatskog vođenja sistem mora biti u stanju “Spreman za rad”, “Neinicijalizovan” , “Prekinuto izvršenje komande” ili “Plafostat otklonjen”.
za slučaj prelaska iz moda Poluautomatskog u mod Automatskog vođenja sistem mora biti u stanju “Spreman za rad”, “Neinicijalizovan” ili “Prekinuto izvršenje komande” .
Tok događa
Osnovni tok događaja
Operter pozivom odgovarajude opcije UI aplikacije prosleđuje zahtev upravljačkoj aplikaciji za promenu moda rada <Izuzetak 4.3.2.1>.
Upravljačka aplikacija beleži zahtev operatera u LOG datoteku.
Sistem prelazi u zahtevani mod rada.
Izuzeci
< Odbija se korisnički zahtev za promenu moda rada> U koliko se zahteva promena moda rada u stanju u koje nije navedeno u sekciji 4.2 ovog dokumenta,
sistem odbija zahtev operatera. Dužnost Operatera je da vodi računa o trentnom stanu sistema.
Operater dobija informaciju o nemogudnosti realizacije zahteva kao i o uzroku takvog ponašanja
sistema.
Posebni zahtevi
Nema posebnih zahteva.
Postuslovi
Za slučaj prelaska iz moda “Automatsko vođenje” u mod “Poluautomatsko vođenje”:
mod rada je “Poluautomatsko vođenje” ,
stanje uređaja ostaje nepromenjeno,
spojnice na plafostatu koji nosi IRZ se isključuju. Za slučaj prelaska iz moda “Poluautomatsko vođenje” u mod “Automatsko vođenje”:
mod rada je “Automatsko vođenje”,
stanje uređaja je “Neinicijalizovan”,
spojnice na plafostatu koji nosi IRZ se uključuju
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
86
Slučaj upotrebe: Prekid rada iz sigurnosnih razloga
Kratak Opis
Operater odlučuje da prekine proces kretanja uređaja, jer je uočio da ponašanje uređaja odstupa od
uobičajenog i da može ugroziti sigurnost pacijenta, uređaja ili samog operatera. I drugi, spoljni faktori
mogu uticati na odluku operatera da prekine rad uređaja iz sigurnosnih razloga.
Preduslovi
Uređaj se nalazi u bilo kom stanju.
Tok događaja
Osnovni tok događaja
Operater prepoznaje neregularno ponašanja uređaja i inicira hitno prekidanje kretanja plafostata i pritiskom na jedan od sigurnosnih prekidača inicira prekidanje kretanja iz sigurnosnih razloga.
Aktiviranje sigurnosnog prekidača prekida napajanje celog sistema. Kao posledica toga, prekida se napajanje motora, spojnica i kočnica. <Posebni Zahtev 5.4.1>
Host računar koji preko UPS i dalje ostaje operativan, detektuje prekid rada iz sigurnosnih raloga, i taj zahtev beleži u LOG datoteku. Host računar počinje proceduru gašenja i prelazi u stanje “Isključen”.
Izuzeci
Nema izuzetaka.
Posebni zahtevi
< Realizacija sigurnosne procedure >
U cilju povedane bezbednosti u toku izvršenja procedure prekida rada usled narušene sigurnosti
komanda mora biti elektromehanički realizovana. Pritiskom na neki od sigurnosnih prekidača prekida
se napajanje releja koji napaja uređaj.
Postuslovi
Uređaj je u stanju “Isključen”.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
87
Slučaj upotrebe: Automatsko pozicioniranje rentgenske aparature4
Kratak Opis
Automatsko (DC motorima aktuisano) pozicioniranje plafostata u položaj za snimanje.
Preduslovi
Uređaj u modu “Automatsko vođenje”.
Uređaj u stanju “Spreman", “Prekinuto izvršenje komande” ili “Plafostat otklonjen”.
Tok događaja
Osnovni tok događaja
Na osnovu zahteva operatera uređaj zauzima položaj specifičan za željenu tehniku snimanja5 <Izuzetak 6.3.2.1>.
Operater pozicionira pacijenta u položaj za snimanje.
Operater koristedi opciju za inkrementalno pozicioniranje rentgenske aparature6 i opciju pozicioniranja plivajudeg7 stola bira zonu snimanja.
Koristedi opciju za inkrementalno podešavanje otvora blende, Operater bira oblast koja de biti izložena zračenju.
Operater vrši akviziciju snimka.
Operter otklanja plafostate. Napomena: U svakoj o pomenutih faza u koliko uređaj pokaže nepredviđeno ili
potencijalno opasno ponašanje Operater isljučuje uređaj <Izuzetak 6.3.2.2>.
Izuzeci
< Prekid izvršenja zadate komade > Operter prekida izvršenje izdate komade za pozicioniranje8.
< Prekid rada zbog nepredviđnog ponašanja sistema> Operater prekida rad uređaja9.
Posebni zahtevi
Postuslovi
Uređaj ostaje u stanju “Spreman”.
4 Osnovni scenario prikazan je na Activity diagramu u Dodatku A.
5 Pogledati UC “Pozicioniranje plafostata u položaj za određenu tehniku”, Sekcija 8
6 Pogledati UC “Inkremantalno pozicioniranje rentgenske aparature”, Sekcija 12
7 Pogledati UC “Ručno pozicioniranje plivajućeg stola”, Sekcija 10
8 Pogledati UC “Prekid izvršenja komade”, Sekcija 9
9 Pogledati UC ”Prekid rada iz sigurnosnih razloga”, Sekcija 5
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
88
Slučaj upotrebe: Poluautomatsko pozicioniranje rentgenske aparature10
Kratak Opis
Operater automatski pozicionira DRZ u poyiciju za snimanje, a zatim ručno pozicionira IRZ u željeni
položaj za snimanje.
Preduslovi
Uređaj u modu “Poluautomatsko vođenje”
Uređaj u stanju “Spreman", “Prekinuto izvršenje komande” ili “Plafostat otklonjen”.
Tok događaja
Osnovni tok događaja
Na osnovu zahteva operatera uređaj zauzima položaj specifičan za željenu tehniku snimanja11 <Izuzetak 7.3.2.1>.
Operater pozicionira pacijenta u položaj za snimanje.
Operater koristedi opciju za inkrementalno pozicioniranje rentgenske aparature12 i opciju pozicioniranja plivajudeg13 stola bira zonu snimanja.
Koristedi opciju za inkrementalno podešavanje otvora blende, Operater bira oblast koja de biti izložena zračenju.
Operater vrši akviziciju snimka.
Operter otklanja plafostate. Napomena: U svakoj o pomenutih faza u koliko uređaj pokaže nepredviđeno ili
potencijalno opasno ponašanje Operater isljučuje uređaj <Izuzetak 7.3.2.2>.
Izuzeci
< Prekid izvršenja zadate komade > Operter prekida izvršenje izdate komade za pozicioniranje14.
< Prekid rada zbog nepredviđnog ponašanja sistema> Operater prekida rad uređaja15.
Posebni zahtevi
Nema posebnih zahteva
Postuslovi
Uređaj ostaje u stanju “Spreman”.
10
Osnovni scenario prikazan je na Activity diagramu u Dodatku A. 11
Pogledati UC “Pozicioniranje plafostata u položaj za određenu tehniku”, Sekcija 8 12
Pogledati UC “Inkremantalno pozicioniranje rentgenske aparature”, Sekcija 12 13
Pogledati UC “Ručno pozicioniranje plivajućeg stola”, Sekcija 10 14
Pogledati UC “Prekid izvršenja komade”, Sekcija 9 15
Pogledati UC ”Prekid rada iz sigurnosnih razloga”, Sekcija 5
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
89
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
90
Slučaj upotrebe: Pozicioniranje plafostata u položaj za određenu tehniku
Kratak Opis
Operater zahteva pozicioniranje Izvora Rentgenskog Zračenja (IRZ) i Detektora Rentgenskog Zračenja
(DRZ) na osnovu izabranog anatomskog preseka.
Preduslovi
Uređaj u stanju “Spreman", “Prekinuto izvršenje komande” ili “Plafostat otklonjen”.
Tok događaja
Osnovni tok događaja
Operater bira anatomski presek i SID rastojanje pozivom odgovarajude opcije UI aplikacije.
UI aplikacija konvertuje izabrani anatomski presek u komandu, i prosleđuje je upravljačkoj aplikaciji zajedno sa željenim SID rastojanjem < Izuzetak 6.3.2.1 >. Upravljačka aplikacija upisuje zahtev u LOG datoteku.
Upravljačka aplikacija proračunava manevar koji izbegava koliziju na osnovu prethodno podešene vrednosti SIDa, trenutne pozicije plivajudeg stola, trenutne pozicije plafostata i dobijene komande < Izuzetak 6.3.2.2 >. Sistem prelazi u stanje “Inicirana Komanda” .
Pritiskom tastera za dozvolu kretanja vrši se mehanička realaizacija planiranog manevra. Otpuštanjem tastera dozvole kreatanja plafostati prekidaju kretanje. Kreatanje se može nastaviti ponovnim pitiskom na taster dozvole kreatanja.
U slučaju da je mod rada “Automatsko vođenje” IRZ i DRZ zauzimaju zahtevane pozicije. U slučaju moda “Poluautomatsko vođenje” DRZ zauzima zahtevanu poziciju, IRZ se ne pomera. Sistem prelazi u stanje “Speman”.
U koliko izvršena komanda to dozvoljava, Operater može da izvrši ručno fino pozicioniranje plivajudeg stola.
Izuzeci
< Sistem odbija zahtev Operatera zbog stanja u kome se nalazi > U koliko se sistem nalazi u stanju u kome nije dozvoljeno iniciranje komande, zahtev za pozicioniranje
plafostata de biti odbijen. Operater ima odgovornost da vodi računa o trenutnom stanju uređaja.
Operater dobija informaciju o nemogudnosti realizacije zahteva kao i o uzroku takvog ponašanja
sistema.
< Sistem odbija zahtev Operatera zbog loših parametara > U koliko manevar nije mogude isplanirati sa prosleđenim parametrima, Zahtev za pozicioniranje
plafostata de biti odbijen. Operater dobija informaciju o nemogudnosti realizacije zahteva kao i o
uzroku takvog ponašanja sistema.
Posebni zahtevi
Parametri manevra u slučaju poluautomatskog vođenja
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
91
Kako u sliučaju poluautomatskog vođenja plafostat koji nosi Izvor Rentgenskog Zračenja nije aktuisan
i odgovornost je Operatera da ga ručno postavi u poziciju u kojoj je moguda realizacija izdate
komande. U suprotnom sistem de javiti <Izuzetak 6.3.2.2>
Postuslovi
Uređaj ostaje u stanju “Spreman”.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
92
Slučaj upotrebe: Prekid izvršenja izdate komande
Kratak Opis
Nakon iniciranja komade Operater prekida izvršenje čime prevodi sistem stanje “Spreman” pre
završetka planiranog manevra.
Preduslovi
Uređaj u stanju “Inicirana komanda”.
Tok događaja
Operater zahteva prekid izvršenja komande pozivom odgovarajude opcije UI aplikacije. Zahtev se prosleđuje Upravljačkoj aplikaciji i beleži u LOG datoteku.
Upravljačka aplikacija prekida kretanje.
Upravljačka aplikacija rekonstruiše validno stanje softverskih komponenti.
Sistem prelazi u stanje “Prekinuto izvršenje komande”
Posebni zahtevi
Nema posebnih zahteva.
Post uslovi
Uređaj se nalazi u stanju “Prekinuto izvršenje komande”.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
93
Slučaj upotrebe: Ručno pozicioniranje plivajućeg stola
Kratak Opis
Operater vrši ručno pozicioniranje pacijenta na plivajudem stolu u poziciju za snimanje
Preduslovi
Zadata tehnika snimanja dozvoljava pomeranje stola.
Tok događaja
Osnovni tok događaja
Operater deblokira kočnice plivajudeg stola pritiskom na odgovarajudu pedalu i ručno vrši pozicioniranje stola u horizontalnoj ravni tako da deo tela koji je potrebno snimiti dovodi u poziciju za snimanje.
Nakon završenog pozicioniranja Operater blokira kočnice plivajudeg stola puštajnem pritisnute pedale.
Posebni zahtevi
Nema posebnih zahteva.
Postuslovi
Nema posebnih postuslova.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
94
Slučaj upotrebe: Otklanjanje plafostata
Kratak Opis
Operater postavlja plafostate u READY pozicju.
Preduslovi
Sistem u stanju “Spreman” ili “Plafostat otklonjen”
Tok događaja
Osnovni tok događaja
Operater inicira otklanjanje odgovarajudeg plafostata pozivom opcije UI aplikacije <Izuzetak 9.3.2.1>. Upravljačka aplikacija upisuje zahtev u LOG datoteku.
Upravljačka aplikacija proračunava manevar koji izbegava koliziju. Sistem prelazi u stanje “Inicirana Komanda” .
Pritiskom tastera za dozvolu kretanja vrši se mehanička realaizacija planiranog manevra. Otpuštanjem tastera dozvole kreatanja plafostati prekidaju kretanje. Kreatanje se može nastaviti ponovnim pitiskom na taster dozvole kreatanja.
Odgovarajudi plafostat se nalazi u poziciji READY. Sistem prelazi u stanje “Plafostat otklonjen”.
Izuzeci
< Zahteva se otklanjanje ved otklonjenog plafostata > Bez obzira na zahtev Operatera sistem ne započinje nikakvo kreatanje. Operater se obaveštava o
uzroku takvog ponašanja sistema.
Posebni zahtevi
Nema posebnih zahteva.
Postuslovi
Uređaj u stanju “Plafostat otklonjen”.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
95
Slučaj upotrebe: Inkrementalno pozicioniranje rendgenske aparature
Kratak Opis
Operater vrši Inkrementalno (fino) pozicioniranje IRZa i/ili DRZa.
Preduslovi
Uređaj u stanju “Spreman".
Tok događaja
Osnovni tok događaja
Operter zadaje da li de se pri inkreamantalnom kreatanju kretati oba plafostat istovremeno ili de biti dozvoljeno nezavisno kreatanje.
Pozivom opcije “SyncLock” UI aplikacije zahteva se od sistema da pri inkreamantalnom radu, kreatanje jednog plafostata bude pradeno kreatnjem drugog. Ovo odgovara stanju SyncLock TRUE.
Pozivom opcije “SyncUnlock” UI aplikacije zahteva se od sistema da pri inkreamantalnom radu, kreatanje jednog plafostata nezavisno od kreatanja drugog plafostata. Ovo odgovara stanju SyncLock FALSE.
Operater koristedi tastere za Inkremantalno podešavanje (“+” i “–“ za svaku osu kretanja) dostupne kroz UI aplikaciju ili koristedi hardverske tastere na detektoru zahteva fino pozicioniranje plafostata.
UI aplikacija prosleđuje zahtev upravljačkoj aplikaciji koja proverava da li je dozvoljeno inkrementalno kretanje za datu osu <Izuzetak 10.3.2.1> i beleži zahtev u LOG datoteku.
U modu “Automatsko vođenje” važi sledede ponašanje:
U koliko je SyncLock postavljen na TRUE, oba plafostata započinju kretanje duž zadate ose. U koliko je SyncLock postavljen na FALSE krede se samo onaj plafostat sa koga je inicirano inkrementalno kreatanje <Izuzetak 10.3.2.2>.
U modu “Poluautomatsko vođenje” važi sledede ponašanje:
Bez obzira na SyncLock krede se samo plafostat koji nosi DRZ.
Nakon otpuštanja tastera prestaje kreatanje i sistem se vreade u stanje “Spreman”.
Izuzeci
< Inkreamantalno kretranje duž zahtevane ose je zabranjeno > Bez obzira na zahtev Operatera sistem se ne krede.
< Osa je dosegla dozvoljene granice inkrementalnog kretanja > Bez obzira na zahtev Operatera sistem se ne krede.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
96
Posebni zahtevi
Svakoj tehnici dodeljeni su atributi koji govore o tome da li je inkreamatalno kreatanje duž zadate ose
dozvoljeno za odgovarajudi plafostat i slučaju da je dozvoljeno, koji je dozvoljeni opseg
inkreamantalnog kreatanja .
Postuslovi
Uređaj u stanju “Spreman”.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
97
Slučaj upotrebe: Ručno vođenje plafostata koji nosi IRZ
Kratak Opis
Operater ručno postavlja IRZ plafostat u željenu poziciju.
Preduslovi
Uređaj u modu "Poluautomatsko vođenje”. Zahtevano stanje sistema: “Spreman”.
Tok događaja
Osnovni tok događaja
Operater pozivom odgovarajude opcije (pritiskom na taster za otpuštanje kočnica) UI aplikacije zahteva otpuštanje kočnica za odgovarajudu osu ili grupu osa.
Operater pomera plafosta u željenu poziciju.
Puštanjem tastera kočnice se ponovo aktiviraju i drže plafostat u željenoj poziciji.
Izuzeci
< Zahteva se otpuštanje kočnica u nedozvoljenom stanju ili nedozvoljenom modu >
Bez obzira na zahtev Operatera zahtev se ignoriše.
Posebni zahtevi
Nema posebnih zahteva.
Postuslovi
Uređaj u stanju “Spreman”.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
98
Slučaj upotrebe: Podešavanje otvora blende
Kratak Opis
Operater bira veličinu otvora blende koji de biti korišden pri snimanju pacijenta.
Preduslovi
Zahtevano stanje sistema: “Spreman”.
Tok događaja
Osnovni tok događaja
Operater pozivom odgovarajude opcije UI aplikacije zadaje format rentgenskog snimka.
UI aplikacija prevodi informaciju o formatu snimka u apsolutne pozicije olovnih ploča koje određujuju otvor blende. Tako dobijena informacija prosleđuje se uptavljačkoj aplikaciji.
Upravljačka aplikacija realizuje zahtev Operatera.
Operater uključuje svetlo blende i lasersku metu.
Operater fino podešava otvor blende.
Izuzeci
Nema izuzetaka.
Posebni zahtevi
Nema posebnih zahteva.
Postuslovi
Uređaj u stanju “Spreman”. Podešen odgovarajući format snimka.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
99
Dodatak A: Osnovni scenario
Dostupno samo u rezimu
poluautomatskog
vodjenja
Zadavanje
komande
Inkrementalno
pozicioniranje
Fino podesavanje
otvora blendePozicioniranje
plivajuceg stola
Rucno pozicioniranje
plafostata
Da li je Operater
zadovoljan izborom?
Prekid komande
[ Ne ]
Akvizicija
snimka
[ Da ]
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
100
Dodatak B: Tehnike snimanja
Tehnika TABLE TOP.
Tehnika TABLE SIDE.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
101
Tehnika STAND.
Laboratorija za robotiku, EF Niš 12.1.2006 TR_DigrafC/2006
102
Tehnika TABLE_SLOPE.