CNC for TRD2D
-
-
1
Simple CNC for visual inspection
- a simple, cheap and readily affordable CNC-like device for aligning anode to cathode wires during TRD2D assembly
Speaker: Mr Andrei Naziru (ELI_NP)Dragi colegi,
Vă transmit atașat un bilanț pe care l-am făcut cu privire la materialele necesare pentru construcția dispozitivului CNC.
Aș dori să menționez că elementele marcate cu verde deja le avem, la care se adaugă tot în posesia noastră si profilele de aluminiu din care să construim rama CNC-ului (+ elementele de conexiune aferente). De asemenea, eu am ales aici niște ghidaje foarte scumpe, acestea au un rol important (alături de tija filetată) în precizia mașinii și repetabilitatea mișcării. Putem alege ceva mai ieftin (sub 200 de lei), va funcționa suficient de bine dar dacă avem buget aș merge pe ce este indicat în tabel. Am calculat că vom obține o rezoluție de mișcare de 0,0025 mm. Nu am determinat erorile ce apar la repetiția mișcării dar mă aștept să fie cu mult sub limita sesizabilă pentru aplicația noastră (sub 50 de micrometri). Voi reveni cu o cifră.
Am decis să renunț la schița de principiu și să pregătesc un proiect ceva mai detaliat. Cred că vineri va fi gata.
Numai bine,
Andrei
-
2
General CNC
- an investigation on the possibilities to construct a CNC device for construction, QA and tests of the TRD2D detectors
Speaker: Claudiu Schiaua (IFIN-HH/DFH)Buna ziua, Avand in vedere oferta de 17000+ eur primita, am petrecut cateva zile documentandu-ma in legatura cu masina de masurat tensiunea in fire si distanta dintre ele. Cu o exceptie (nu foarte importanta), am identificat toate componentele si am gasit toata documentatia necesara. Lucrarea de diploma din 2005 are toate schemele. Bineinteles, daca vom putea inlocui HDD-ul, putem folosi masina pt. nevoile imediate asa cum este. Totusi, e util sa avem o varianta pt. cazul in care nu vom reusi asta, sau pt. viitor. Ceea ce avem nevoie (in cazul masinii mari de teste e aceeasi situatie) si le-am cerut, in timp, diversilor colaboratori (EastElectric, parca, erau cei cu masina mare ) sau potentiali colaboratori (cei de la AFT, cu oferta de 17000 eur) a fost o interfata programatica pt. miscarea masinii, pe care sa o putem integra usor in lanturile noastre de achizitie. Mai ales pt. masina mare, ideea e ca avem nevoie sa putem programa diverse configuratii (nespecificate) in care sa folosim aceste masini impreuna cu un sistem DAQ. Desi am consumat timp explicand ce vrem si (in cazul masinii mari) am si platit sume considerabile, nu am obtinut o solutie satisfacatoare. Pentru aceasta problema exista multe solutii simple, putin costisitoare si, mai ales pt. masina de masurat fire, relativ usor de implementat. Sunt bazate pe solutii open-source derivate din proiectul LinuxCNC ( http://linuxcnc.org/ ), cum ar fi grbl ( https://github.com/gnea/grbl ) si derivatul grblHAL ( https://github.com/grblHAL/ ) si altele. Acestea ofera (open-source) firmware de control CNC pt. diverse platforme. Cel mai practic pare a fi grblHAL, un software pt. unele microcontrollere ( https://github.com/grblHAL/Controllers ) care face urmatorul lucru: citeste comenzi de la un port serial (de cele mai multe ori e via USB), le interpreteaza si le implementeaza in masina concreta (trimite comenzi la motoare). Protocolul (grbl) este documentat, https://github.com/gnea/grbl/wiki/Grbl-v1.1-Interface . Pentru partea de DAQ trebuie gasite solutii specifice. Concret, pentru masina de masurat fire, o solutie ar putea fi urmatoarea: 1) Cumparam 1 controller mentionat la https://github.com/grblHAL/Controllers si accesoriile necesare (sursa de alimentare, driver motor, alte componente necesare). Cele de la https://bigtree-tech.com/ au preturi mici si sunt foarte modulare. Au avantajul ca sunt specificate chip-urile folosite, inclusiv pt. driver- ele motoarelor. O solutie mai inchegata (pare a fi singura care are si carcasa) e cea de la OpenBuilds, BlackBox X32, https://openbuildspartstore.com/BlackBox-Motion-Control-System-X32 , care include driver-e pt 4 motoare pas-cu-pas precum si diverse intefete de control, in particular una de 24V pe care o putem folosi pt. comanda valvei de gaz. Pare a fi si cea mai scumpa varianta, pretul pe site e 240 USD, dar mai trebuie adaugat transportul, vama (e livrat din USA). Am vazut o oferta pe un site din Polonia la ~400 EUR, e posibil sa fie taxe, dar e posibil sa fie doar lacomie. Ne mai trebuie o sursa de 24V, gasim local. In total, 500 EUR ar trebui sa fie acoperitor. 2) Motorul pas-cu-pas ( modelul e PK268-E2.0A , https://catalog.orientalmotor.com/item/all-categories-legacy-products/tegories-pk-series-2-phase-stepping-motors-legacy-/pk268-e2-0a ) e obsoleted, dar merita sa-l refolosim pt. a evita sa-l demontam, sa montam altul, eventual sa facem alt cuplaj mecanic. Il legam la driver- ul de la 1). De asemenea, microswitch-urile (F4T7Y1, https://www.tme.eu/Document/20bb77e49d81de5c3f176a568b08744d/f4.PDF ) le legam la controller (asigura auto-limitarea miscarii). Sunt 4 instalate, e posibil ca doar 2 sa fie necesare. Nu trebuie dezinstalate, dar trebuie modificate conexiunile de la "normal inchis" la "normal deschis". 3) Legam controller-ul de la 1) la un calculator printr-un port USB (sau serial). Pt. BlackBox X32 e un port USB cu un chip FTDI care are driver in linux-urile relativ recente (7-8 ani parca), nu e nimic de instalat, eventual o configuratie de hotplug, am mai facut asta pt. adaptoarele de programare de la Xilinx si Microsemi. Calculatorul poate fi chiar Microzed (descris mai jos), sau poate fi altul (de exemplu un NUC). Ne putem imagina chiar varianta in care calculatorul e o masina virtuala in datacenter legata la controller printr-un redirector de port serial. 4) Pt. partea de DAQ vom folosi un microzed ( https://www.avnet.com/wps/portal/us/products/avnet-boards/avnet-board-families/microzed/ ) cu o cartela fan-out BKO-CC ( https://www.avnet.com/opasdata/d120001/medias/docus/58/AES-MBCC-BRK-G-MBCC_BKO_UG_1_1.pdf ) pe care le avem deja de la vechiul DAQ TRD (cel cu Zynq-uri). 5) Pe o cartela de prototip (eventual partea existenta pe BKO-CC) instalam cateva chip-uri pt. adaptarea de nivel (5V<->3.3V) si, eventual, 0-5V -> 1Vpp diferential. Exista astfel de chip-uri, pretul e nesemnificativ. 6) Conectam senzorul de pozitie POSIMAG PMIS3-50-2.5-50KHZ-TTL-Z0-2MS ( https://www.asm-sensor.com/asm/pdf/pro/pm_kat_en.pdf ) la Microzed. Sunt cateva semnale digitale de 5V. 7) Conectam senzorul optic HBCS1100 ( https://www.alldatasheet.com/datasheet-pdf/pdf/64613/HP/HBCS-1100.html ) la Microzed. Cartela montata pe instalatie foloseste un operational LF351N si are 2 semireglabili. Scopul e sa duca plaja 0-5V (de la senzor) la -10 - +10 V cat vrea cartela existenta. E posibil sa putem regla parametrii operationalului astfel incat sa-l putem conecta direct la Microzed, astfel incat sa nu avem nevoie de buffer si sa nu fie nevoie sa demontam cartela cu LF351N de pe instalatie. Totusi, LF351N foloseste si tensiune negativa si ar fi singurul, asa ca poate merita schimbata cartela. In plus, un driver diferential are mai putin zgomot. Senzorul optic HBCS1100 are un LED si o fotodioda care au si optica pt. a asigura o zona de sensibilitate foarte ingusta. Senzorul nu se mai fabrica si nu am gasit unul care sa aiba o zona de sensibilitate suficient de ingusta pt. a nu amesteca firele in cazul testului de tensiune. Mai cautam. 8) Valva de gaz ( n-am identificat-o cu precizie, marcajul e 647265, dar spune ca e de 24V, 2.88W ), o putem conecta sau la Microzed (cu un adaptor pt. 24V si curentul cerut, poate chiar 555-ul existent sau punem unul pe cartela cu celellate adaptoare) sau la controller-ul de miscare (daca are un astfel de port; BlackBox X32 are). In cazul in care il legam la controller s-ar putea sa nu putem controla cu precizie durata de deschidere (in cele 2 lucraii de diploma se vorbeste de 12 ms, parca). Dar n-ar trebui sa conteze, ne intereseaza frecventa, nu amplitudinea oscilatiei. 9) Dezvoltam firmware-ul pt. partea de FPGA din Microzed. E unul simplu, nu sunt probleme. Trebuie sa citeasca ADC-ul si semnalele de la senzorul de pozitie. 10) Producem linux-ul cu driver-e pt. firmware-ul de la 9. N-am mai facut asta, dar nu sunt probleme, Microzed e documentat pe larg, https://www.avnet.com/wps/portal/us/products/avnet-boards/support/faq/microzed-chronicles/ 11) Pe calculatorul de operare (NUC, Microzed, etc.) dezvoltam software-ul specific (eventual in python). Acesta face urmatoarele: trimite comenzi (G-Code) via grbl catre controller-ul de miscare si citeste (din Microzed, eventual prin retea) datele de la DAQ. Acestea contin o insiruire de cuvinte continand o eticheta de timp (initializarea timpului e arbitrara), citirea din ADC si din senzorul de pozitie (in principiu, ne putem dispensa de senzorul de pozitie si sa estimam pozitia din viteza de miscare, cum a facut in lucrarea a 2- a, dar e de dorit sa avem si datele de pozitie ). Sunt posibile variatii ale modului de operare a DAQ, vedem ce e util. 12) Pt. masurarea distantelor intre fire este trimisa o comanda de miscare cu viteza constanta pe o anume distanta (cate fire sunt). ADC- ul va da un semnal periodic, perioada e legata de distanta dintre fire. O variatie in citirea ADC-ului indica prezenta unui fir. Corelatia cu citirea senzorului de pozitie (sau estimarea pozitiei din viteza) indica pozitia. Daca folosim senzorul de pozitie, se poate detecta daca motorul pas-cu-pas a pierdut pasi sau nu (presupunand ca senzorul de pozitie nu pierde). 13) Pt. masurarea tensiunii in fir, avand pozitiile firelor de la 12), este programata o secventa de miscare in pasi egali cu distanta dintre fire si, pt. fiecare pas, este comandata o deschidere scurta a valvei, care va produce vibratia in firul respectiv. Citirea ADC-ului (cu pozitie fixa) va produce un semnal periodic in timp, perioada fiind legata de tensiunea in fir. 14) Din datele acumulate facem graficele dorite, probabil offline. Nu prea vad cum putem externaliza punctele 11-14, va trebui sa le facem noi in orice caz. Sunt multe rafinamente posibile. Mi-e greu sa cred ca masina actuala (cu LabView) face o prelucrare sofisticata, probabil doar transformate Fourier. De aici, probabil, si unele rezultate confuze, mai ales in cazul in care firele nu sunt la distante tocmai egale. In cazul altor aplicatii (de exemplu testul uniformitatii detectorilor cu masina mare), DAQ-ul e altul si punctele 7-14 sunt diferite. O masina unidimensionala cum e cea de testat fire poate sa nu fie suficienta. Sunt 2 informatii legate de masina de testat fire pe care nu le-am identificat in cele 2 lucrari de diploma: periodicitatea spatiala a senzorului de pozitie (periodicitatea magnetizarii din fasia lipita pe masina) si corespondenta dintre pasul de 1.8 grade a motorului pas-cu pas si miscarea pe X (asta tine de pasul axului cu bile). In principiu ar trebui sa fie in lucrarea din 2005, dar e in germana si nu le-am identificat. In cel mai rau caz, le masuram in fazele initiale. Ar fi foarte util daca am avea ceva de acest tip si pt. masina mare de test. Din pacate, nu e imediat evident daca motoarele folosite pot fi integrate usor in grblHAL. Mai exact, probabil ca pot dar necesita ceva dezvoltare in grblHAL. Nu sunt motoare pas-cu-pas, sunt servomotoare de curent alternativ, mai puternice si, in principiu, mai precise (ar trebui sa aiba feedback de pozitie, deci pozitia ar trebui sa poata fi stabilita cu mare precizie, nu ar trebui sa fie "pasi pierduti"). Driver-ele lor sunt controlabile prin protocoale gen EtherCAT, fac parte dintr-o solutie industriala completa, inclusiv pt. software. Din cate tin minte, software-ul e cu licenta, multi bani si nu se integraza decat cu el insusi (ca majoritatea software-ului comercial). E posibil sa aiba si controale mai simple si sa poate fi integrate intr-un sistem de genul grblHAL. Aici mai trebuie sa ma documentez. Am identificat componentele dar trebuie sa vad mai in detaliu ce pot face. Problema de integrare intr-un mediu cu software comercial este foarte vizibila in acest caz. La aceasta masina a fost adaugata o scala magnetica absoluta (masoara absolut pozitia pe X) Balluff BML041H, care are inclusiv senzori analogici. Cu acest instrument un DAQ simplu poate masura pozitia pe X fara calibrari si cu precizie de ~ 1 um. Dar, din cate mi- am dat seama (poate ma insel), nu este, in fapt, integrat in masina, are doar un display (Balluff BAE004K) unde este afisata pozitia. Revenind la masina de masurat fire, putem rezolva problema cu ceva gen 500-600 eur si ceva munca, in special pt. dezvoltarea software-ului specific (care, oricum, nu prea poate fi externalizat). Partea legata strict de miscare e relativ simpla pt. ca putem folosi (cu costuri foarte mici) software "open-source" gen grblHAL. Partea de "software specific" poate fi relativ simpla (cum, probabil e cazul in versiunea curenta cu LabView), dar s-ar putea sa constatam ca avem nevoie de mai mult. Pt. senzorul optic HBCS1100 nu am gasit o alternativa, dar s-ar putea sa gasesc. Cele 2 constante de calibrare trebuie identificate. Mai exista o varianta, mai conforabila din anumite puncte de vedere si cu mai multe potentiale aplicatii, dar mai scumpa: OpenBuilds ( https://openbuilds.com/ ) ofera si kit-uri de masini CNC, care includ motoare, frame, controller etc.. In particular e unul configurabil ( https://openbuildspartstore.com/lead-cnc-machine-1515-60-x-60/ ), cu varianta "fully loaded" ( https://openbuildspartstore.com/lead-cnc-machine-1515-fully-loaded/ ) la ~2860 USD . E o masina cu 4 motoare (2 pe Y) cu zona de lucru de ~ 1.17m (X) x 1.25m (Y) x 9cm (Z), antrenare cu suruburi (nu cu curea). Versiunea "full" include si o freza ( https://openbuildspartstore.com/router11/ ) cu care, cred, putem produce cu usurinta pcb-ul de ecranare de la TRD (cel cu decupaje pt. flat cables). Nu stiu cat costa producerea celor 40 de bucati, dar s-ar putea ca parte din costurile unei astfel de masini pt. atelier sa se recupereze doar din aceste panouri. Sigur, trebuie adaugat costul transportului, vama, etc., dar totusi, pare a fi o masina utila. In laboratorul de teste o astfel de masina ar rezolva problemele (dar acolo inca mai speram sa putem folosi masina existenta). In laborator ar putea inlocui masina de testat fire (ar mai fi util un senzor de pozitie; in functie de calitate de la cateva zeci la cateva sute de eur). In plus, ne putem imagina ca, in viitor, putem adauga cateva componente pt. a produce o masina care intinde (si sudeaza) fire (fir cu fir, din mosor). Ar avea precizia necesara. Toate bune, Claudiu
-
1