ServoController

Heb ook is een vaste spanning getekend, 24v. Scheelt ongeveer de helft van de componenten.

Knutselen :)

Deze laatste zullen niet werken, de led zal maken dat de arduinoingang geen GND zal zien door de Vf van de led, een heel slecht idee.

LDmicro user.

ah kak inderdaad, floating nu^^ 10k weerstandje parallel aan de led met resistor?

Dat wordt dan een typische studentenschakeling...de stroom verhogen om een ontwerpfout te verdoezelen.
Maak het u 'makkelijk' en bekijk de geposte schema's eens, die zijn al aan de praktijk getoetst.
Maar vooral eens bekijken en trachten te begrijpen waarom ze het zo doen.

LDmicro user.

Het circuit werkt nu toch hetzelfde als voorgaande voorbeelden? Exclusief de led dan wel, die heb ik toegevoegd. Begrepen we elkaar correct betreffende de 10k weerstand? In onderstaand geval is r8(10k) de pull down resistor van de output (0,33mA) en daarnaast nog een led met resistor (10ma)

ik zie niet in hoe ik een pull down circuit zou moeten kunnen waarbij er ook een led in serie met de opto output staat zonder spanningsval op mijn ouput

Dan de encoder, eigenlijk het enigste wat ik echt nodig heb. Aan de arduino komt een Oled display-tje te hangen zodat uit te lezen is waar de servo zich bevind.

De arduino DUE heeft een SAM3X chip van microchip (http://www.microchip.com/wwwproducts/en/atsam3x8c). De chip heeft een quadature encoder interface aan boord (te lezen op pagina 871 van de manual).

De drive is een ServoStar 600 van kollmorgen. In de handleiding van de drive is te lezen dat deze een TTL encoder uitgang heeft en hoe aan te sluiten.

https://www.kollmorgen.com/en-gb/products/drives/servo/serviced-drives…

in de bijlage mijn schema.

Als jij tevreden bent over uw optocouplerschema is het voor mij ook prima, het zal werken maar dat is al een hele bocht om nu opeens met een vaste spanning te willen werken, maargoed geen probleem voor mij.

Je vragen over die arduino zal iemand anders moeten beantwoorden want die dingen zitten voorlopig nog ongeopend verpakt in de kast en heb er totaal geen ervaring mee, enkel gekocht voor ingeval dat ik er één dringend nodig heb.

LDmicro user.

Dank u MGP voor alle antwoorden, waardeer de hulp.

Ook voor lambiek en GJ natuurlijk!

Lambiek

Special Member

Op 5 april 2018 23:38:24 schreef Janse:
Dan de encoder, eigenlijk het enigste wat ik echt nodig heb. Aan de arduino komt een Oled display-tje te hangen zodat uit te lezen is waar de servo zich bevind.

Volgens het schema dat je toont gebruik je alleen het A en B signaal, maar heb je de index ook niet nodig?

De drive is een ServoStar 600 van kollmorgen. In de handleiding van de drive is te lezen dat deze een TTL encoder uitgang heeft en hoe aan te sluiten.

Nu raak ik het spoor een beetje bijster, je wilt zelf een servo controller maken, maar hier heb je het over een bestaande servo driver. Dus wat is nu eigenlijk de bedoeling?

Als je haar maar goed zit, GROETEN LAMBIEK.

Index denk ik niet nodig te hebben, maar ga hem er wel bij maken. Had hem alleen niet mee geknipt in de afbeelding.

De titel is niet heel handig gekozen, misschien dat besturing een betere naam is. Het betreft het aansturen van een Servodrive..

De servo zelf blijft closed-loop. Belangrijkste is dat ik de positie uit kan lezen en analoog de snelheid kan aansturen (+-10v analoge input op de s600 drive).

Lambiek

Special Member

Op 6 april 2018 13:47:22 schreef Janse:
Index denk ik niet nodig te hebben, maar ga hem er wel bij maken. Had hem alleen niet mee geknipt in de afbeelding.

Oké, duidelijk.

De titel is niet heel handig gekozen, misschien dat besturing een betere naam is. Het betreft het aansturen van een Servodrive..

Aha, nu op de vierde blz. wordt het één en ander duidelijk. Vandaar dat je ook reacties kreeg dat het project misschien iets te hoog gegrepen was. :)

De servo zelf blijft closed-loop. Belangrijkste is dat ik de positie uit kan lezen en analoog de snelheid kan aansturen (+-10v analoge input op de s600 drive).

Dus in plaats van de driver met een PLC aan te sturen, wil je het nu met een controller doen.

Als dat een analoog signaal moet zijn, moet je een PWM signaal omzetten naar analoog. Daar zou ik me dus eerst op concentreren, die ingangen zijn minder belangrijk.

Heb net even gekeken, maar die driver heeft alleen een A en B signaal nodig van de encoder.

Op deze manier kun je een PWM signaal omzetten naar een analoog signaal.
https://www.uploadarchief.net:443/files/download/resized/pwm%20naar%20analoog%2010vdc.jpg

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 6 april 2018 14:11:39 schreef Lambiek:
Dus in plaats van de driver met een PLC aan te sturen, wil je het nu met een controller doen.

dus servocontroller was zo gek nog niet haha. Eigenlijk dus meer een servodrive-controller haha.

De DUE heeft een DAC aanboord, dus dacht die te gebruiken. Wat ik nu heb is analog out (DUE) - INA128 - SSM2142. Zal vanavond kijken of ik een schema kan posten.

Lambiek

Special Member

Op 6 april 2018 15:26:04 schreef Janse:
De DUE heeft een DAC aanboord, dus dacht die te gebruiken.

Ik ken die Arduino's niet zo, maar als de DUE een analoge uitgang heeft zal de spanning niet veel hoger zijn dan 3.3 of 5VDC lijkt mij. Dus als je naar de 10V wil, heb je nog een opamp nodig voor de nodige versterking.

Of kun je extern een spanning aanbieden van bijv. 10V en die uitsturen?

Als je haar maar goed zit, GROETEN LAMBIEK.
GJ_

Moderator

Die servostar heeft ook een gesimuleerde encoder output die je kunt gebruiken. Ik neem niet aan dat je de motor encoder wil aftakken.

Lambiek

Special Member

Op 6 april 2018 17:26:21 schreef GJ_:
Ik neem niet aan dat je de motor encoder wil aftakken.

Ik vrees eigenlijk van wel GJ.

Als je haar maar goed zit, GROETEN LAMBIEK.
GJ_

Moderator

Ongebruikelijk en onhandig. De gesimuleerde uitgang kun je ook aanpassen naar je eigen units, bijvoorbeeld 100 encoderdelen per mm of zo.

Ohwjee nee nee, natuurlijk de gesimuleerde uitgang. Blz 65, 8.13 encoder emulations. Op de printplaat een DB9 connector, net als op de Servostar. Zo kan ik met een standaard seriele kabel de encoder aansluiten.

Arduino DUE geeft 0-3.3V output, idee was inderdaad een amplifier (de INA128 die ik eerder noemde) gevolgd door een gebalanceerde lijn driver (SSM2142) zodat ik een gebalanceerde output krijg. zie schema hieronder.

De input van de servostar is geisoleerd, dus zou ook zonder gebalanceerde driver kunnen werken, maar vind wel dat ik hem gebalanceerd moet maken, net als de analoge ingang van de servodrive is.

Lambiek

Special Member

Is je versterking niet veel te hoog?

Als je haar maar goed zit, GROETEN LAMBIEK.
GJ_

Moderator

Op 6 april 2018 20:37:22 schreef Janse: Zo kan ik met een standaard seriele kabel de encoder aansluiten.

Dat is een slecht idee. Wel even een paarsgewijs getwiste kabel nemen. A en /A in een paar en B en /B in een paar.

Lambiek

Special Member

@ GJ,

Ben jij dat wel eens tegen gekomen dat je plus en min 10V nodig hebt als input?, ik ben eigenlijk alleen maar drivers tegengekomen met een 0 tot 10V input.

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 7 april 2018 12:23:30 schreef Lambiek:
Is je versterking niet veel te hoog?

Inderdaad, foutje. Versterking is nog toen ik werkte zonder line driver, de 16,7k zou 25k moeten zijn.

Op 7 april 2018 12:29:56 schreef GJ_:
[...]Dat is een slecht idee. Wel even een paarsgewijs getwiste kabel nemen. A en /A in een paar en B en /B in een paar.

hmm inderdaad.. Zijn die kabels uberhaubt helemaal niet getwist eigenlijk?
Dan zelf toch maar maken. DB9 stekker laat ik staan, vind ik wel prettiger dan bijv. schroefterminals.

Op 7 april 2018 12:43:54 schreef Lambiek:
@ GJ,

Ben jij dat wel eens tegen gekomen dat je plus en min 10V nodig hebt als input?, ik ben eigenlijk alleen maar drivers tegengekomen met een 0 tot 10V input.

In de bijlage zie je de input van de servostar. In de afbeelding zie je bij aan de controller zijde +-10v ref. to CNC Ground. ik dacht dat kollmorgen hierin geen uitzondering is

Lambiek

Special Member

Ik ben het nog niet tegen gekomen, was altijd gewoon 0 tot 10V. Maar ik werk ook meer met frequentie regelaars een stappenmotor systemen. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Ben ik weer, even geen tijd kunnen besteden aan mn projectje helaas. Ben tevreden over de encoder input, de analoge output en de digitale input. Wil alleen nog een analoge ingang toevoegen, niet meer dan een potmeter eigenlijk om de snelheid in te kunnen stellen.

Nu wil ik de potmeter wel los van het bord hebben, niet direct erop gesoldeerd. Hierdoor krijg ik alleen weer wel last van EMI etc, dus kan eigenlijk niet direct de input van de arduino gebruiken. Hoeft niet galvanisch gescheiden te zijn, voeding en GND mag van de arduino afkomen.

Was opzoek naar een oplossing om een analoog signaal betrouwbaar binnen te krijgen. Kan iemand mij misschien vertellen wat logische oplossingen zijn hiervoor?

Dag Allemaal,

Het is even geleden, leek me tijd dat ik jullie een update-je geef over het project. Druk gehad, maar er is zeker wat om te laten zien:

https://www.youtube.com/watch?v=dHoVXgjp5fU

Intussen is er dus een prototype. Tellen doet hij goed, en dit is het belangrijkste. Als ik via de servodrive op en neer laat pendelen via de servodrive zelf (paar sec links en weer rechts) komt hij iedere keer binnen een marge van 20pulsen naukeurig op dezelfde positie terecht, na een half uur nog steeds dezelfde count (terug naar puls 0) en dat alles met een puls snelheid van een half MegaHertz.

Natuurlijk is dit nog steeds op het bureau en niet op de freesbank waar hij op moet komen, maar verwacht geen problemen hier vanwege de keuze om het circuit met balanced line drivers / receivers gemaakt is, zou storingsloos moeten zijn.

De analoge in (potmeter) en output (naar servodrive) is ook prima gelukt, alhoewel dit in de volgende versie iets anders gaat worden.

Momenteel ga ik een wijziging maken in de aansturing. De aansturing wil ik maken niet met een Due, maar met een STM32F103C8T6. Deze zijn wel soldeerbaar en zo kan ik eenvoudig meerdere servo assen op 1 print krijgen. Testboardjes met de STM32F103C8T6 zijn onderweg, kijken of ik ook hier de encoder goed op binnen kan krijgen.

Heb nog wel 1 ding waar ik mee aan het stoeien ben, dat is juist gebruik van PE. Basis misschien, maar voor mij nog een TE onbekend terein helaas. Laatst heb ik mijn 5v voeding ic opgeblazen en vermoed dat dit er toch mee te maken heeft. Wel had ik mijn varistor nog niet op de print gesoldeerd, kwam later binnen. Pe gebruik ik eigenlijk enkel om overspanning af te voeren, zo zit er bij de analoge inputs BAT54S op de input en op de digitale SM712. Kan iemand mij vertellen of wijzen naar leesvoer hoe PE juist te engineeren in industriele applicaties?