Ezekat a modulakt azért fejlesztették ki, hogy kibővítsék a ki- és bemeneti lehetőségeket és növeljék a funkciók számát az RS485 vonal PCI mozgásvezérlő kártyához való csatlakoztatásával.
8-csatornás relés kimenti (output) modul
A relés kimenetű modul 8 db NO-NC relés kimenetet ad egy 3 polusú csatlakozó terminálon minden egyes csatornához.
8-csatornás digitális bementi (input) modul
A digitális input modul nyolc optikailag leválasztott digitális bemeneti pin-t ad.
8-csatornás ADC és 4-csatornás DAC modul
Az ADC és DAC modul négy digitálisból analóggá átalakító (D/A) kimenetet és nyolc analógból digitálissá átalakító (A/D) bemenetet ad. Ez a modul is optikailag el van választva a PCI kártyától.
Teach Pendant modul
A teach pendant modul 8 digitális bemeneti csatornát biztosít nyomógombok számára, 6 ADC bemenő csatornát joystick vagy potenciométerek számára és 1 encoder bemenetet kézi beállító kerék számára.
Minden egyes a buszhoz csatlakozott csomópontot (node) a PCI kártya autómatikusan felismer. A LinuxCNC indításakor a driver automatikusan exportál minden pint és paramétert az összes elérhető modulról.
Ha egy modul nem válaszol rendszeresen, akkor a PCI kártya lekapcsolja azt a modult.
Ha egy kimenettel rendelkező modul nem kap rendszeresen adatot megfelelő CRC-vel, akkor a modul átkapcsol hiba állapotba (a zöld LED villogni kezd), és minden kimenet hiba állapotra állít.
Minden egyes modul elektronikusan leválasztott, ezért megkülönböztetünk busz felőli (bus powered side) és környezet felőli (field powered side) táplálású villamos oldalt.
A moduloknak soros topológia szerint kell kapcsolódniuk a busra, a végén lezáró ellenállásokkal. A PCI kártya az első a topológiában és a végén az utolsó modul van.
Minden csomópontnak 4 bites egyedi kódolású címe van, ami a piros DIP kapcsolóval állítható.
A zöld LED a modul állapotait jelzi:
Villog, amikor a modul már be van kapcsolva, de még nincs azonosítva, vagy amikor a modul lekapcsol (hiba miatt).
Nem világít (OFF) az azonosítás alatt (computer be van kapcsolva, de a LinuxCNC még nem indult el)
Világít (ON), amikor folyamatosan kommunikál.
Power:
Bus feszültség:
Maximális bus energia felhasználás:
Környezeti feszültség:
Maximális környezeti energia felhasználás (minden relé bekapcsolva):
Szigetelés:
Optikai leválasztás áthúzási feszültsége:
Relé karakterisztikák:
Maximális kapcsoló áram:
Maximális kapcsoló AC feszültség:
Maximális kapcsoló DC feszültség:
Dielektromos áthúzási feszültség:
Ha hiba történik a buson, a modul hiba állapotra vált (a zöld LED villog). Minden kimeneti relét lekapcsol.
Minden pin és paraméter az alábbi függvénnyel frissíthető:
gm.<nr. of card>.rs485
A CPU túlterhelését megelőzendően javasolt a szervó körhöz vagy nagyobb periódusidejű ciklushoz hozzáadni.
Minden RS485 modul pin és paraméter neve a következő képpen kezdődik:
gm.<nr. of card>.rs485.<modul ID> ,ahol <modul ID> 00-tól 15-ig lehetséges.
Pin:
.relay-<0-7>(bit, Out)--A relé kimeneti pin
Paraméter:
.invert-relay-<0-7>(bit, R/W)--A negatív logikájú kimeneti relé pin
Például:
gm.0.rs485.0.relay-0– A csomópont első reléjére.
gm.0– Az első PCI mozgató kártyát jelenti (PCI kártya név=0)
.rs485.0– Csomópont kiválasztása a 0 címmel az R
.relay-0– Az első relé kiválasztása
Power :
Bus feszültség:
Bus energia felhasználás:
Szigetelés:
Optikai leválasztás áthúzási feszültsége:
Bemeneti karakterisztikák:
Legnagyobb megengedhető értékek:
Maximális bemenő feszültség:
Minimális bemenő feszültség:
Maximális bemenő áram
Logikai szintek
Minimális magas bemeneti jelszint feszültsége:
Maximális alacsony bemeneti jelszint feszültsége:
További információkért olvasd el a Toshiba TLP281 optocsatolókról szóló adatlapját.
Minden pin-t és paramétert az alábbi módon frissíthetünk:
gm.<nr. of card>.rs485
A CPU túlterhelését megelőzendően javasolt a szervó körhöz vagy nagyobb periódusidejű ciklushoz hozzáadni.
Minden RS485 modul pin és paraméter neve a következő képpen kezdődik:
gm.<nr. of card>.rs485.<modul ID> ,ahol <modul ID> 00-tól 15-ig lehetséges.
Pin:
.in-<0-7>(bit, Out)--Bemenet
.in-not-<0-7>(bit, Out)--Negált bemenet
Például:
gm.0.rs485.0.relay-0– A csomópont első bemenete
gm.0– Az első PCI mozgató kártyát jelenti (PCI kártya név=0)
.rs485.0– Az RS485 buszon kiválasztott csomópont 0 címmel.
.in-0– Az első digitális input kiválasztása
Power :
Bus feszültség:
Bus energia felhasználás:
Környezeti feszültség:
Maximális környezeti energia felhasználás:
Szigetelés:
Optikai leválasztás áthúzási feszültsége:
AD converter :
Bemenő feszültség tartománya:
Bemenő ellenállás:
Bemenő kapacitás:
DA converter :
Kimenő feszültség tartománya:
Maximális kimenő áram:
Minden pint és parmétert az itt látható módon frissíthetünk:
gm.<nr. of card>.rs485
A CPU túlterhelését megelőzendően javasolt a szervó körhöz vagy nagyobb periódusidejű ciklushoz hozzáadni.
Minden RS485 modul pin és paraméter neve a következő képpen kezdődik:
gm.<nr. of card>.rs485.<modul ID> ,ahol <modul ID> 00-tól 15-ig lehetséges.
Pin:
.adc-<0-7>(float, Out) |
-- ADC bemenet értéke Voltban. |
.dac-enable-<0-3>(bit. IN) |
-- Engedélyezett DAC kimenet. Amikor a DAC enable értéke hamis, akkor a kimenet 0.0 V. |
.dac-<0-3>(float, In |
--DAC kimenet értéke Voltban |
Paraméter:
.adc-scale-<0-7> |
(float, R/W) |
--A bemeneti feszültséget beszorozzuk a skála léptékével, mielőtt megjelenne az ADC kimeneti pin-jén |
|
.adc-offset-<0-7> |
(float, R/W) |
--Az offset-et kivonjuk a hardver bemeneti feszültségéből, miután a skála szorzást elvégeztük |
|
.dac-offset-<0-3> |
(float, R/W) |
--Hardverfrissítés (update-elés) előtt hozzáadjuk az offset-et |
|
.dac-high-limit-<0-3> |
(float, R/W) |
--Maximális hardware kimeneti feszültség Voltban. |
|
.dac-low-limit-<0-3> |
(float, R/W) |
--Minimális hardware kimeneti feszültség Voltban. |
Például:
gm.0.rs485.0.adc-0 – A csomópont első analóg csatornája.
gm.0– Az első PCI mozgató kártyát jelenti (PCI kártya név=0)
.rs485.0– A 0 címzésű csomópont kiválasztása az RS485 buszon.
.adc-0– Az első analóg bemenet kiválasztása a modulon.
Power:
Bus feszültség:
Bus energia felhasználás:
Maximális terhelés 5 V-os kimenetnél:
AD converter:
Bemeneti feszültség skála:
Bemeneti szivárgási áram:
Analóg bemenet ellenállása:
Bemenő pin karakterisztikák (Digitális és encoder bemenetek):
Ezek általános célra felhasználható, előre meg nem határozott I/O portok. Minden feszültségi szint a PC földhöz van viszonyítva.
Abszolut Minimális bemeneti feszültség:
Abszolut Maximális bemeneti feszültség:
Maximális alacsony szintű bemeti feszültség:
Minimális magas szintű bementi feszültség:
Bemenő szivárgási áram:
Minden pin-t és paramétert az itt látható módon frissíthetünk:
gm.<nr. of card>.rs485
A CPU túlterhelését megelőzendően javasolt a szervó körhöz vagy nagyobb periódusidejű ciklushoz hozzáadni.
Minden RS485 modul pin és paraméter neve a következő képpen kezdődik:
gm.<nr. of card>.rs485.<modul ID> ,ahol <modul ID> 00-tól 15-ig lehetséges.
Pinek:
.adc-<0-7> |
-- ADC bemenet értéke Voltban. |
.dac-enable-<0-3> |
--DAC kimenet elérhető. Amikor a DAC enable értéke hamis, akkor a kimenet 0.0 V. |
.dac-<0-3> |
--DAC kimenet értéke Voltban |
Paraméter:
.adc-scale-<0-7> |
(float, R/W) |
--A bemeneti feszültséget beszorozzuk a skála léptékével, mielőtt megjelenne az ADC kimeneti pin-én |
|
.adc-offset-<0-7> |
(float, R/W) |
--Az offset-et kivonjuk a hardver bemeneti feszültségéből, miután a skála szorzást elvégeztük. |
|
.dac-offset-<0-3> |
(float, R/W) |
--Hardver frissítés/update-elés előtt hozzáadjuk az offset-et |
|
.dac-high-limit-<0-3> |
(float, R/W) |
--Maximális hardware kimeneti feszültség Voltban. |
|
.dac-low-limit-<0-3> |
(float, R/W) |
--Minimális hardware kimeneti feszültség Voltban. |
Például:
gm.0.rs485.0.adc-0 – A csomópont első anaóg csatornájának kiválasztása.
gm.0– Az első PCI mozgató kártyát jelenti (PCI kártya név=0)
.rs485.0– A 0 címzésű csomópont kiválasztása az RS485 buszon.
.adc-0– Az első analóg bemenet kiválasztása a modulon.
Minden modul hossza:
Relés kimenetű modul:
Bemeneti modul:
ADC & DAC modul:
Digitális szervohajtások (BMEGEMIMM25)
Házi feladat kiírás
A feladat során válasszanak egy ipari szerszámgépet (pl.: CNC gép, CNC eszterga, ipari robot). Készítsenek rövid irodalomkutatást a választott géppel kapcsolatban (használati útmutató, gépkönyv, stb.). Készítsék el a választott gép vezérlésének blokkvázlatát (vészleállító kör, teljesítmény táp, szenzorok, aktuátorok, központi vezérlés stb.) és a blokkvázlat rövid működési leírását. A feladat beadható, amennyiben nem tartalmaz a működést befolyásoló elvi hibát.Egy feladatot 2 vagy 3 hallgató dolgozhat ki. A létszám a feladat nehézségének függvénye. 3 fő esetén a végberendezésen kívül minimum egy kiegészítést tartalmazzon a gép (pl.: szerszámtár, hűtőkör, automata ajtó, stb.).
(Ettől eltérő egyéni feladat esetén egyeztessen az oktatóval.)
Aláírás: 7. oktatási hét konzultáció, Beadási határidő: 14. oktatási hét konzultáció
A feladatot átvette:
Olvasható név |
Neptun kód |
Aláírás |
|
1. |
|||
2. |
|||
3. |
Választott feladat:
Gép típusa (pl.: SCARA robotkar) |
Gyártó (pl.: SEIKO) |
Típusszám (pl.: D-TRAN TT 4000 SC) |
Szabadságfokok száma (pl.: 4) |
Végberendezés (pl.: megfogó) |
Feladatleírás (csak egyéni feladat esetén):
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
A feladatot (oktató tölti ki)
Kiadta: Név: ………………………………..... Dátum: .……………………...
Aláírta: Név: ………………………………..... Dátum: ………………………
Elfogadta: Név: ……………………………… Dátum: ………………………
Osztályzat: …………..
Baranyai Zsolt GLQGOA
Simó Andor Szabolcs E38HQK
Egy szabadon választott ipari robot, cnc berendezés vezérlésének megismerése. A vezérlés átgondolása és áttervezése, majd megjelenítése blokkdiagramon. Konkrét elemek kiválasztása és a megvalósítás huzaláozásszintű dokumentálása.
Az általunk választott berendezés tulajdonképpen a „robotika állatorvosi lova”. A robot 6 szabadságfokú, 6 darab rotációs csuklóval rendelkezik, ahol az utolsó 3 speciálisan kézcsukló. A csuklókat egyenáramú motorok aktuálják. A pozíciót inkrementális enkóderek mérik csuklónként, melyek indexjellel is rendelkeznek. Az abszolút érték inicializálását abszolút pozíciót mérő potencióméterekkel végzi.
A robot végberendezéseként egy univerzális megfogó manipulátort választottunk, melyet open és close logikai értékekkel lehet aktuálni. A robot brake funckiójáról sem feledkeztünk meg, mely aktív alacsony logikájával bármilyen zavar esetén fékezi a robotot. Ezt az E-Stop kör kialakításánál is figyelembe vettük.
A berendezés eredeti összeállításából megtartottuk az aktuátorokat, a szenzorokat, a teljesítményerősítőket tengelyenként. Továbbá az analóg szervot, ami miatt a PC által adott referenciajelünk nyomaték kell, hogy legyen.
A kommunikációt a robot által használt TTL határozza meg a robot oldalon. A vezérlés oldalon a modulok adta komminukációs lehetőségekkel éltünk.
Elképzelésünk szerint a robot közvetlen közelébe egy vezérlőszekrénybe helyeznénk el az összes elemet, beleértve a PC-t is. Emiatt egyetlen közös földelést (GND) alkalmazunk.
Az általunk felépített vezérlés elemeit és a felépített blokkdiagramot lásd a mellékletben. A break és túlmelegedés fault eseményeket, illetve azok bekötését külön kirészleteztük egy sematikus kapcsolási rajzon.
A PUMA 560 alap eredeti szabályozási köre a 20-23. ábrán látható, melyből a bekeretezett részt tartottuk meg.
|
20-23. ábra A PUMA 560 eredeti vezérlése a megtartott rész bekeretezésével |
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.56.815Letöltve: 2013. november 2. Nuno Moreira et al [1996]: First Steps Towards an Open Control Architecture for a PUMA 560 |
Blokkdiagram a vezérlésről
Breakout és DAC modulok bekötése kirészletezve
Táblázat a robot és vezérlés oldali összekötésekről
Az enkóder breakout és DAC modul bekötései egy tengelyre részletezve. A pontos bekötés a mellékelt táblázatban található.
Breakout és DAC modulok bekötése kirészletezve
Robot csatlakozók |
||||||
J5 |
|
Bekötés helye |
|
|||
Pin |
Név |
Modul |
Pin |
Név |
Megjegyzés |
|
1 |
POT_J1 |
|
RS485 ADC/DAC |
10 |
ADC-0 |
|
2 |
POT_J2 |
|
RS485 ADC/DAC |
11 |
ADC-1 |
|
3 |
POT_J3 |
|
RS485 ADC/DAC |
12 |
ADC-2 |
|
4 |
POT_J4 |
|
RS485 ADC/DAC |
13 |
ADC-3 |
|
5 |
POT_J5 |
|
RS485 ADC/DAC |
14 |
ADC-4 |
|
6 |
POT_J6 |
|
RS485 ADC/DAC |
15 |
ADC-5 |
|
7 |
POT_J7 |
|
|
NC |
|
|
8 |
POT_J8 |
|
|
NC |
|
|
9 |
ADGND |
|
|
GND |
GND |
|
10 |
AD+5V |
|
|
Field 5V |
Field 5V |
|
11 |
NC |
|
|
NC |
|
|
12 |
NC |
|
|
NC |
|
|
13 |
+12V |
|
RS485 ADC/DAC |
4 |
+12V |
|
14 |
+12V |
|
RS485 ADC/DAC |
4 |
+12V |
|
15 |
DAGND |
|
|
GND |
|
|
16 |
DAGND |
|
|
GND |
|
|
17 |
-12V |
|
RS485 ADC/DAC |
3 |
-12V |
|
18 |
-12V |
|
RS485 ADC/DAC |
3 |
-12V |
|
19 |
DAC+J1 |
|
UART/DAC 0 |
2 |
Analog out |
|
20 |
DAC-J1 |
|
|
GND |
GND |
|
21 |
DAC+J2 |
|
UART/DAC 1 |
2 |
Analog out |
|
22 |
DAC-J2 |
|
|
GND |
GND |
|
23 |
DAC+J3 |
|
UART/DAC 2 |
2 |
Analog out |
|
24 |
DAC-J3 |
|
|
GND |
GND |
|
25 |
DAC+J4 |
|
UART/DAC 3 |
2 |
Analog out |
|
26 |
DAC-J4 |
|
|
GND |
GND |
|
27 |
DAC+J5 |
|
UART/DAC 4 |
2 |
Analog out |
|
28 |
DAC-J5 |
|
|
GND |
GND |
|
29 |
DAC+J6 |
|
UART/DAC 5 |
2 |
Analog out |
|
30 |
DAC-J6 |
|
|
GND |
GND |
|
31 |
DAC+J7 |
|
|
GND |
GND |
|
32 |
DAC-J7 |
|
|
GND |
GND |
|
33 |
DAC+J8 |
|
|
GND |
GND |
|
34 |
DAC-J8 |
|
|
GND |
GND |
|
|
|
|
|
|
|
|
J6 |
|
|
|
|
|
|
1 |
ENCA1 |
|
Breakout 0 |
9 |
Encoder A+ |
|
2 |
ENCB1 |
|
Breakout 0 |
7 |
Encoder B+ |
|
3 |
ENCI1 |
|
Breakout 0 |
6 |
Encoder I+ |
|
4 |
ENCA2 |
|
Breakout 1 |
9 |
Encoder A+ |
|
5 |
ENCB2 |
|
Breakout 1 |
7 |
Encoder B+ |
|
6 |
ENCI2 |
|
Breakout 1 |
6 |
Encoder I+ |
|
7 |
ENCA3 |
|
Breakout 2 |
9 |
Encoder A+ |
|
8 |
ENCB3 |
|
Breakout 2 |
7 |
Encoder B+ |
|
9 |
ENCI3 |
|
Breakout 2 |
6 |
Encoder I+ |
|
10 |
ENCA4 |
|
Breakout 3 |
9 |
Encoder A+ |
|
11 |
ENCB4 |
|
Breakout 3 |
7 |
Encoder B+ |
|
12 |
ENCI4 |
|
Breakout 3 |
6 |
Encoder I+ |
|
13 |
ENCA5 |
|
Breakout 4 |
9 |
Encoder A+ |
|
14 |
ENCB5 |
|
Breakout 4 |
7 |
Encoder B+ |
|
15 |
ENCI5 |
|
Breakout 4 |
6 |
Encoder I+ |
|
16 |
ENCA6 |
|
Breakout 5 |
9 |
Encoder A+ |
|
17 |
ENCB6 |
|
Breakout 5 |
7 |
Encoder B+ |
|
18 |
ENCI6 |
|
Breakout 5 |
6 |
Encoder I+ |
|
19 |
GND |
|
|
GND |
GND |
|
20 |
GND |
|
|
GND |
GND |
|
21 |
Vcc |
|
|
Field 5V |
Field 5V |
|
22 |
Vcc |
|
|
Field 5V |
Field 5V |
|
23 |
NC |
|
|
NC |
NC |
|
24 |
NC |
|
|
NC |
NC |
|
25 |
NC |
|
|
NC |
NC |
|
26 |
/STOP |
|
|
NC |
NC |
Van helyette saját E-Stop gombunk |
27 |
THERM1 |
|
UART/DAC 0 |
10 |
Fault Anode |
1kOhm ellenállson keresztül |
28 |
THERM2 |
|
UART/DAC 1 |
10 |
Fault Anode |
1kOhm ellenállson keresztül |
29 |
THERM3 |
|
UART/DAC 2 |
10 |
Fault Anode |
1kOhm ellenállson keresztül |
30 |
THERM4 |
|
UART/DAC 3 |
10 |
Fault Anode |
1kOhm ellenállson keresztül |
31 |
THERM5 |
|
UART/DAC 4 |
10 |
Fault Anode |
1kOhm ellenállson keresztül |
32 |
THERM6 |
|
UART/DAC 5 |
10 |
Fault Anode |
1kOhm ellenállson keresztül |
33 |
NC |
|
|
NC |
NC |
|
34 |
NC |
|
|
NC |
NC |
|
35 |
/BRAKE |
|
E-Stop Relé |
2 |
E-Stop Relé |
NO |
36 |
HANDO |
|
RS-485 Relay |
1 |
0-NO |
|
37 |
HANDC |
|
RS-485 Relay |
4 |
1-NO |
|
38 |
UTIL4 |
|
|
NC |
NC |
|
39 |
UTIL5 |
|
|
NC |
NC |
|
40 |
UTIL6 |
|
|
NC |
NC |
|
Pin |
Signal |
Backplane |
Pin |
Signal |
Backplane |
|
# |
Name |
Location |
# |
Name |
Location |
|
1 |
POT_J1 |
J56A-F1 |
18 |
-12V |
TB5-4 |
|
2 |
POT_J2 |
J56A-N1 |
19 |
DAC+J1 |
J103-11 |
|
3 |
POT_J3 |
J56A-V1 |
20 |
DAC-J1 |
J103-12 |
|
4 |
POT_J4 |
J56B-F1 |
21 |
DAC+J2 |
J103-13 |
|
5 |
POT_J5 |
J56B-N1 |
22 |
DAC-J2 |
J103-14 |
|
6 |
POT_J6 |
J56B-V1 |
23 |
DAC+J3 |
J103-15 |
|
7 |
POT_J7 |
J56B-H2 |
24 |
DAC-J3 |
J103-16 |
|
8 |
POT_J8 |
J56A-R2 |
25 |
DAC+J4 |
J103-17 |
|
9 |
ADGND |
J56A-E2 |
26 |
DAC-J4 |
J103-18 |
|
10 |
AD+5V |
J56A-F2 |
27 |
DAC+J5 |
J103-19 |
|
11 |
NC |
28 |
DAC-J5 |
J103-20 |
||
12 |
NC |
29 |
DAC+J6 |
J103-21 |
||
13 |
+12V |
TB5-3 |
30 |
DAC-J6 |
J103-22 |
|
14 |
+12V |
TB5-3 |
31 |
DAC+J7 |
J103-23 |
|
15 |
DAGND |
TB5-2 |
32 |
DAC-J7 |
J103-24 |
|
16 |
DAGND |
TB5-2 |
33 |
DAC+J8 |
J103-25 |
|
17 |
-12V |
TB5-4 |
34 |
DAC-J8 |
J103-26 |
|
1 |
ENCA1 |
J56A-A1 |
21 |
Vcc |
TB5-1 |
|
2 |
ENCB1 |
J56A-C1 |
22 |
Vcc |
TB5-1 |
|
3 |
ENCI1 |
J56A-E1 |
23 |
NC |
||
4 |
ENCA2 |
J56A-H1 |
24 |
NC |
||
5 |
ENCB2 |
J56A-K1 |
25 |
NC |
||
6 |
ENCI2 |
J56A-M1 |
26 |
/STOP |
J69-12c |
|
7 |
ENCA3 |
J56A-P1 |
27 |
THERM1 |
J56A-B1 |
|
8 |
ENCB3 |
J56A-S1 |
28 |
THERM2 |
J56A-J1 |
|
9 |
ENCI3 |
J56A-U1 |
29 |
THERM3 |
J56A-R1 |
|
10 |
ENCA4 |
J56B-A1 |
30 |
THERM4 |
J56B-B1 |
|
11 |
ENCB4 |
J56B-C1 |
31 |
THERM5 |
J56B-J1 |
|
12 |
ENCI4 |
J56B-E1 |
32 |
THERM6 |
J56B-R1 |
|
13 |
ENCA5 |
J56B-H1 |
33 |
NC |
||
14 |
ENCB5 |
J56B-K1 |
34 |
NC |
||
15 |
ENCI5 |
J56B-M1 |
35 |
UTIL1 |
J103-5 |
/BRAKE |
16 |
ENCA6 |
J56B-P1 |
36 |
UTIL2 |
J44A-M2 |
HANDO |
17 |
ENCB6 |
J56B-S1 |
37 |
UTIL3 |
J44A-L2 |
HANDC |
18 |
ENCI6 |
J56B-U1 |
38 |
UTIL4 |
SPARE1 |
|
19 |
GND |
TB5-2 |
39 |
UTIL5 |
SPARE2 |
|
20 |
GND |
TB5-2 |
40 |
UTIL6 |
SPARE3 |