Please upload your talks before meeting starts

CNC for TRD2D

Europe/Bucharest
    • 12:00 12:20
      Simple CNC for visual inspection 20m
      • 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

    • 12:20 12:40
      General CNC 20m
      • 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