Elektronik för resolver; LinuxCNC konvertering av flerop
Postat: 21 juni 2014, 17:18:12
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...