Elektronik för resolver; LinuxCNC konvertering av flerop
Elektronik för resolver; LinuxCNC konvertering av flerop
Hej
Som jag nämnt i någon tidigare tråd så håller jag på att planera för hur jag ska konvertera min flerop.
Det är AC-servo med resolvrar. Efter en del läsning och mätning har jag nu kommit underfund med hur det är kopplat.
Styrsystemet genererar en sinus och en cosinus signal (4,5kHz 12v p-p). Denna signal går till drivarna men passerar rakt igenom och ut till resolvern. Ut ur resolvern kommer två feedback-signaler varav den ena är kopplad till drivern och den andra till styrsystemet. Feedback-signalerna är 1,2v p-p 4,5kHz. Fasförskjutningen mellan feedbacksignalen och en av exciteringssignalerna är proportionell mot resolverns rotor-position.
Denna beskrivning av kopplingssättet har jag hittat på nätet (helt allmänt, inte kopplad till min maskin egentligen):
Phase Analog Technique
In this method, the two stator windings are excited by signals that are in phase quadrature to each other.
This induces a voltage in the rotor winding with an amplitude and frequency that are fixed and a timephase that varies with shaft angle. This method is referred to as the “phase analog technique.” It has been the most widely used technique since it can easily be converted to produce a digital signal by measuring the change in phase shift with respect to the reference signal.
The accuracy of this type of angle transmission is determined by the accuracy to which the zero crossing intervals can be measured.
Nu till min fråga...
Hur ska jag koppla in detta när jag konverterar till LinuxCNC? Som interface har jag tänkt mig Mesa Electronics kort.
Eftersom jag vill använda befintliga drivrar så måste jag excitera resolvrarna (drivrarna måste veta rotorposition för "kommuteringen" av AC-motorerna)
Som jag funderat så har jag två alternativ:
Montera enkodrar för positionsåterkopplingen till LinuxCNC. Och montera ett helt separat kort som genererar exciteringssignalerna Sin+Cos (12vp-p 4,5kHz). Skulle det gå att använda ett sådant här till det?
http://www.ebay.com/itm/171322513178?ss ... 1497.l2649
I drivern finns en jumper som enligt "maintence manual" ska gå att bygla för att drivern ska generera exciteringssignal, men det har jag inte lyckats med.
Alternativ 2: Generera referenssignalerna och utvärdera resolvrarna i Mesa kortens FPGA. Dotterkortet som finns i Mesa systemet för resolvermätning är gjort för en exciteringssignal och mätning av amplitud på sin och cos signalerna.
Alltså måste jag göra en egen "firmware" till Mesa korten och troligen någon form av anpassningselektronik. "Drivrutinen" för LinuxCNC är open source så jag antar att det blir någon form att tillägg till den jag måste göra. Ingen aning hur svårt det är att få till och jag vet inte vilken precision man kan uppnå i mätningen. Någon som provat att programmera Mesa-korten?
Detta svaret fick jag från Mesa-supporten:
> Would it be possible to make a firmware for 7i49 or any other Mesa
> card for evaluation of resolvers this way?
> I.e. Generate a sin and cosine signal (12v 4.5kHz) and evaluate the
> phase shift of one feedback signal (1.2v 4.5kHz), then send this
> position to LinuxCNC.
Its probably possible but a fair amount of work. It might be easier to generate the sine/cosine signals, then use a couple of comparators to sense the reference waveform's and phase shifted waveforms zero crossings and measure the time between them with the FPGA.
Jag har tidigare klipp-och-klistra programmerat ett par enkla saker i mikrokontroller. Jag har programmerat en del C# och plc. Jag har gjort ett par enkla kretskort men inget analogt.
Det känns renare att mäta resolversignalerna med Mesa-systemet, men är antagligen enklare att hänga på nya enkodrar...
Som jag nämnt i någon tidigare tråd så håller jag på att planera för hur jag ska konvertera min flerop.
Det är AC-servo med resolvrar. Efter en del läsning och mätning har jag nu kommit underfund med hur det är kopplat.
Styrsystemet genererar en sinus och en cosinus signal (4,5kHz 12v p-p). Denna signal går till drivarna men passerar rakt igenom och ut till resolvern. Ut ur resolvern kommer två feedback-signaler varav den ena är kopplad till drivern och den andra till styrsystemet. Feedback-signalerna är 1,2v p-p 4,5kHz. Fasförskjutningen mellan feedbacksignalen och en av exciteringssignalerna är proportionell mot resolverns rotor-position.
Denna beskrivning av kopplingssättet har jag hittat på nätet (helt allmänt, inte kopplad till min maskin egentligen):
Phase Analog Technique
In this method, the two stator windings are excited by signals that are in phase quadrature to each other.
This induces a voltage in the rotor winding with an amplitude and frequency that are fixed and a timephase that varies with shaft angle. This method is referred to as the “phase analog technique.” It has been the most widely used technique since it can easily be converted to produce a digital signal by measuring the change in phase shift with respect to the reference signal.
The accuracy of this type of angle transmission is determined by the accuracy to which the zero crossing intervals can be measured.
Nu till min fråga...
Hur ska jag koppla in detta när jag konverterar till LinuxCNC? Som interface har jag tänkt mig Mesa Electronics kort.
Eftersom jag vill använda befintliga drivrar så måste jag excitera resolvrarna (drivrarna måste veta rotorposition för "kommuteringen" av AC-motorerna)
Som jag funderat så har jag två alternativ:
Montera enkodrar för positionsåterkopplingen till LinuxCNC. Och montera ett helt separat kort som genererar exciteringssignalerna Sin+Cos (12vp-p 4,5kHz). Skulle det gå att använda ett sådant här till det?
http://www.ebay.com/itm/171322513178?ss ... 1497.l2649
I drivern finns en jumper som enligt "maintence manual" ska gå att bygla för att drivern ska generera exciteringssignal, men det har jag inte lyckats med.
Alternativ 2: Generera referenssignalerna och utvärdera resolvrarna i Mesa kortens FPGA. Dotterkortet som finns i Mesa systemet för resolvermätning är gjort för en exciteringssignal och mätning av amplitud på sin och cos signalerna.
Alltså måste jag göra en egen "firmware" till Mesa korten och troligen någon form av anpassningselektronik. "Drivrutinen" för LinuxCNC är open source så jag antar att det blir någon form att tillägg till den jag måste göra. Ingen aning hur svårt det är att få till och jag vet inte vilken precision man kan uppnå i mätningen. Någon som provat att programmera Mesa-korten?
Detta svaret fick jag från Mesa-supporten:
> Would it be possible to make a firmware for 7i49 or any other Mesa
> card for evaluation of resolvers this way?
> I.e. Generate a sin and cosine signal (12v 4.5kHz) and evaluate the
> phase shift of one feedback signal (1.2v 4.5kHz), then send this
> position to LinuxCNC.
Its probably possible but a fair amount of work. It might be easier to generate the sine/cosine signals, then use a couple of comparators to sense the reference waveform's and phase shifted waveforms zero crossings and measure the time between them with the FPGA.
Jag har tidigare klipp-och-klistra programmerat ett par enkla saker i mikrokontroller. Jag har programmerat en del C# och plc. Jag har gjort ett par enkla kretskort men inget analogt.
Det känns renare att mäta resolversignalerna med Mesa-systemet, men är antagligen enklare att hänga på nya enkodrar...
Re: Elektronik för resolver; LinuxCNC konvertering av flerop
Låter som ganska komplext att få det hela att fungera bra med befintlig resolversignal och att programmera firmwares till mesa FPGAn skulle jag gissa är väldigt komplext?
Vad är det för drivare till motorerna du har idag? vore smidigt om du kunde få dem att fungera självständigt med den där bygeln och helst med +-10v styrning ifrån LinuxCNC.
Vad är det för drivare till motorerna du har idag? vore smidigt om du kunde få dem att fungera självständigt med den där bygeln och helst med +-10v styrning ifrån LinuxCNC.
Re: Elektronik för resolver; LinuxCNC konvertering av flerop
Drivarna är Mitsubishi TRS.
Jo jag har nog lite gett upp om att mäta resolversignalen med mesa-korten. Svårt att veta vilken precision det blir även om man skulle lyckas få fram ett mätvärde...
Därför är nuvarande idé att montera encodrar för återkopplingen till LinuxCnc och låta resolvrarna ge drivarna sin återkoppling. Då måste jag antingen få ordning på excitering i drivarna eller montera något externt som skapar exciteringssignalen.
Jag ser tre alternativ för skapande av exciteringssignalerna:
-Jag har frågat Mesa-supporten om de kan hjälpa mig med hur jag får Mesa-korten att generera en sin och en cos signal 12Vp-p 4.5kHz
-Testa en sådan här: aliexpress.com/../5MHz-Arbitrary-Waveform-Dual-Channel-DDS-Function-Signal-Generator-Sweep-2-4-LCD..
-Be en kompis rita en specialanpassad krets
Någon som jobbat med Mitsubishi cnc-drivsystem från slutet av 80-talet?
Jo jag har nog lite gett upp om att mäta resolversignalen med mesa-korten. Svårt att veta vilken precision det blir även om man skulle lyckas få fram ett mätvärde...
Därför är nuvarande idé att montera encodrar för återkopplingen till LinuxCnc och låta resolvrarna ge drivarna sin återkoppling. Då måste jag antingen få ordning på excitering i drivarna eller montera något externt som skapar exciteringssignalen.
Jag ser tre alternativ för skapande av exciteringssignalerna:
-Jag har frågat Mesa-supporten om de kan hjälpa mig med hur jag får Mesa-korten att generera en sin och en cos signal 12Vp-p 4.5kHz
-Testa en sådan här: aliexpress.com/../5MHz-Arbitrary-Waveform-Dual-Channel-DDS-Function-Signal-Generator-Sweep-2-4-LCD..
-Be en kompis rita en specialanpassad krets
Någon som jobbat med Mitsubishi cnc-drivsystem från slutet av 80-talet?
Senast redigerad av blueint 24 juni 2014, 22:47:36, redigerad totalt 1 gång.
Anledning: urltrim
Anledning: urltrim
Re: Elektronik för resolver; LinuxCNC konvertering av flerop
Nu har jag köpt 4st absolutenkoder (4096pulser / 4096 varv) för 25Eur/st +moms, Begagnade, ebay tyskland.
http://cgi.ebay.co.uk/ws/eBayISAPI.dll? ... SI:GB:1123
Dessutom har jag köpt en tvåkanalig funktionsgenerator som jag hoppas ska kunna excitera resolvrarna så att drivern blir nöjd:
http://www.aliexpress.com/snapshot/6133109192.html
Från Mesa Electronics har jag köpt:
7I80HD-16 Ethernet Anything I/O card
7I44 Eight Channel RS-422/485 interface/ RJ45 Breakout
7I48 6 channel Analog servo interface
3st 7I84 Isolated remote field I/O card
Hoppas jag för det att lira:)
Det här med I/O-kort på ethernet är helt nytt i Linuxcnc, man måste tydligen kompilera Linux-kärna med ett nytt realtidstillägg (xenomai) osv.
http://cgi.ebay.co.uk/ws/eBayISAPI.dll? ... SI:GB:1123
Dessutom har jag köpt en tvåkanalig funktionsgenerator som jag hoppas ska kunna excitera resolvrarna så att drivern blir nöjd:
http://www.aliexpress.com/snapshot/6133109192.html
Från Mesa Electronics har jag köpt:
7I80HD-16 Ethernet Anything I/O card
7I44 Eight Channel RS-422/485 interface/ RJ45 Breakout
7I48 6 channel Analog servo interface
3st 7I84 Isolated remote field I/O card
Hoppas jag för det att lira:)
Det här med I/O-kort på ethernet är helt nytt i Linuxcnc, man måste tydligen kompilera Linux-kärna med ett nytt realtidstillägg (xenomai) osv.
Re: Elektronik för resolver; LinuxCNC konvertering av flerop
Förresten, någon som har eller vet var jag kan köpa prisvärda M23-kontakter? 12-pin honor (tror jag)
Till enkodrarna.
Till enkodrarna.
Re: Elektronik för resolver; LinuxCNC konvertering av flerop
Hej
Har tyvärr inget tips på var du kan få tag i kontakter men är lite nyfiken på om du har fått 7I80HD att rulla problemfritt i LinuxCNC ?
Uppdatera gärna status.
Har tyvärr inget tips på var du kan få tag i kontakter men är lite nyfiken på om du har fått 7I80HD att rulla problemfritt i LinuxCNC ?
Uppdatera gärna status.
Re: Elektronik för resolver; LinuxCNC konvertering av flerop
Jo, 7i80 verkar fungera.
Jag har labbat på bänken bara, men jag har lyckats läsa in encodervärden (SSI absolutenkodrar) och jag har provat att sätta någon utgång osv. Enkodrarna är kopplade till 7i80 via 7i44 RS-422 kortet. Har även sett att mina 7i84 i/o kort som är kopplade till 7i80 via SmartSerial dyker upp i LinuxCNC.
Först kom jag "bara" upp i en uppdateringsfrekvens av c:a 500-1000Hz (Jämför det med en vanlig plc
) innan jag fick en massa "unexpected realtime delay error". Men efter en uppdatering av Hostmot2-eth drivrutinen som står för kommunikationen mellan linuxcnc och 7i80, samt att jag med brandväggsregler låste Ethernet-kortet till bara 7i80 kommunikation så klarde jag starta med 2500Hz. 1000-2000Hz verkar gå stabilt, men jag har som sagt egentligen inte testat några längre pass och med programkörning i linuxcnc.
Se även här för mer info: http://www.linuxcnc.org/index.php/engli ... -7i48-7i84
Nu finns Hostmot2-eth med i masterversionen av Linuxcnc.
Jag har labbat på bänken bara, men jag har lyckats läsa in encodervärden (SSI absolutenkodrar) och jag har provat att sätta någon utgång osv. Enkodrarna är kopplade till 7i80 via 7i44 RS-422 kortet. Har även sett att mina 7i84 i/o kort som är kopplade till 7i80 via SmartSerial dyker upp i LinuxCNC.
Först kom jag "bara" upp i en uppdateringsfrekvens av c:a 500-1000Hz (Jämför det med en vanlig plc

Se även här för mer info: http://www.linuxcnc.org/index.php/engli ... -7i48-7i84
Nu finns Hostmot2-eth med i masterversionen av Linuxcnc.
Re: Elektronik för resolver; LinuxCNC konvertering av flerop
Ahh trevlig läsning, verkar inte ha varit helt enkelt att få att fungera med SSI encoders + allt nytt med mesakort över ethernet
Tummen upp för friskt vågat
Uppdatera gärna med info om konverteringen av Leadwellen!

Tummen upp för friskt vågat

Uppdatera gärna med info om konverteringen av Leadwellen!