ServoController

Dag Allemaal,

Ik ben een shield aan het maken voor op de arduino DUE om een industriele AC servo drive aan te sturen (speed control) en tevens kan deze het encoder signaal van de servo uitlezen (ambitie: max 4096 bit/rev, 8000rmp). Het ontwerp hiervoor is ver klaar, echter zou ik graag twee digitale ingangen toevoegen en vroeg me af of er hier mensen zijn die me hiermee kunnen helpen.

Uitgangspunten:

  • 2 ingangsignalen
  • Ingangsspanning van de signalen schakelen zowel bij 5v als 24v, afhankelijk van Vin
  • Ingangsspanning van de signalen schakelen bij ongeveer 2/3 van Vin
  • Geisoleerd van de rest van het board, zowel Vin als GND. Hierdoor kunnen er ook andere boards op de inputs aangesloten worden zonder ground loops etc.
  • Vout naar Due = 3.3V
  • Eind ontwerp van het board moet enigszins te gebruiken in een "industriele omgeving", hij staat tenslotte naast een servo drive.. En misschien nog wel wat verder weg van de drive. En beperkt hufterproof (ESD, overvoltage (ong 30v ofzo), reverse voltage, gebalanceerde data lijnen, etc.)
  • Reeds al aanwezige power circuits op de rest van de print: 5v, 3.3v, +-15v.


    • Ik heb wel een aantal ideen, maar vind het nogal ingewikkeld worden, dus ik vroeg me af of er hier mensen mee kunnen brainstormen :)

      Functionele conceptschets:
GJ_

Moderator

Wat moet het nut zijn? Daar heb je toch al duizendenéén PLC's voor? Vanaf 80 euro heb je al een modulaire PLC met alle toeters en bellen. Hoe ga jij dit aantrekkelijker maken?

elmowww

Golden Member

Ik snap niet waarom je de digitale ingang-thresholds mee zou willen laten schalen met Vin.

Dat zie ik nooit gebeuren, en ik denk ook niet dat het heel nuttig is. Waarom leg je niet vast een threshold op ~2V? Dan werkt het bij signalen van 3v3, 5v, 12v en 24v. Daarnaast lijkt me dat ook meer dan veilig genoeg, een 2V stoorsignaal is best flink.

Toevallig zit je dan ook net bij het voltage waar een led begint te branden, en laten er nou net toevallig optocouplers bestaan. Stroombegrenzing er tussen knutselen (constante stroombron voor je led) en je hebt je ingang.

PA0EJE - www.eje-electronics.nl - e.jongerius[aapje]eje-electronics.nl - EJE Electronics - Elektronica/firmware ontwikkeling
GJ_

Moderator

Wat inderdaad veel belangrijker is is een goed instelbare ingangsvertraging van bv "zo snel mogelijk" tot 20ms.

mel

Golden Member

Ik vind het idee om een industrieel geval, wat degelijk is, en goed, aan te sturen door een hobbyding zo als een Arduino,gewoon griezelig.
Net wat GJ_ zegt, gewoon een PLC erbij nemen, dat gaat gewoon jaren goed.

u=ir betekent niet :U bent ingenieur..

Op 14 maart 2018 00:12:49 schreef Janse:
...Het ontwerp hiervoor is ver klaar,

Ik vraag mij toch af hoe ver je al zit als je al die vragen hebt.
Dat is geen concept tekening maar een krabbel.

Wat praktische zaken,

-Een arduino klaarmaken voor industrieel gebruik vereist toch wat feeling.
- 4096bit/rev is dat een absolute of een quadrature encoder? deze laatste zou een klein drama zijn als je die moet inlezen aan 8000rpm.
- En dan nog alles maken met optocouplers...

Mijn ervaring zegt dat je er niet zult geraken want het is een heel heel moeilijke opgave en geen zeker geen schakeling voor iemand met zoveel vragen.

LDmicro user.
GJ_

Moderator

Veel PLC's beginnen hun leven als een hobbyding :-)We noemen dat een prototype.
Hier zie ik alleen niet hoe het ooit aantrekkelijker gaat worden dan een PLC omdat het hart bestaat uit een erg duur koopdeel: die arduino. En die gaat dus ook nog eens dicteren hoe de behuizing er uit moet gaan zien. En nog een boel andere ongemakken. Daar staat alleen het gemak van de voor TS bekendheid met de Arduino tegenover. Dat vind ik mager gemotiveerd, voor zover ik nu kan beoordelen.

Maar misschien heeft TS wel een hobby, en bestaat die uit het dresseren van zijn servomotor met een Arduino, en dan heb ik niks gezegd.

Op 14 maart 2018 08:51:03 schreef MGP: 4096bit/rev is dat een absolute of een quadrature encoder?

Ga uit van incrementeel, servo's met absoluut encoder bestaan natuurlijk wel maar die zijn dun gezaaid. Encoders met 4096 ppr zijn veel voorkomend. Met deze toerentallen zijn het wel altijd TTL encoders. Om de een of andere reden halen de HTL encoders slecht hogere frequenties.

Ja ik heb er een paar kleine gezien met een absolute encoder op een formaatzaag, het was een vraag aan de TS omdat ik eens zou zien of hij weet waarmee hij bezig is.

Om een idee te hebben heeft hij een op/afteller nodig die een redelijke snelheid nodig heeft.
8000rpm = 133 tr/s a 4096imp/rev x 2(flanken) en x 3 overhead dan moet hij zeker 3Mhz halen en dat 2 keren (up/down) en dan nog verwerken in zijn software.

Je ziet maar dat het zeker niet makkelijk zal zijn zonder speciale plc ingangen zoals je aangeeft.

LDmicro user.

Waarom een arduino en hoe dicht hij bij industrieel ontwerp daar zou ik liever later op in gaan, om te voorkomen dat we verschillende gesprekken door elkaar gaan krijgen. Het betreft ook ambities.

Op 14 maart 2018 08:51:39 schreef GJ_:

Maar misschien heeft TS wel een hobby, en bestaat die uit het dresseren van zijn servomotor met een Arduino, en dan heb ik niks gezegd.

Laten we het voorlopig hier op houden :D

Op 14 maart 2018 08:32:33 schreef elmowww:
Ik snap niet waarom je de digitale ingang-thresholds mee zou willen laten schalen met Vin.

Dat zie ik nooit gebeuren, en ik denk ook niet dat het heel nuttig is. Waarom leg je niet vast een threshold op ~2V? Dan werkt het bij signalen van 3v3, 5v, 12v en 24v. Daarnaast lijkt me dat ook meer dan veilig genoeg, een 2V stoorsignaal is best flink.

Toevallig zit je dan ook net bij het voltage waar een led begint te branden, en laten er nou net toevallig optocouplers bestaan. Stroombegrenzing er tussen knutselen (constante stroombron voor je led) en je hebt je ingang.

Vind een goed punt. Weet nog niet goed welke richting ik moet kiezen. De reden was dat ik zowel TTL al HTL zou kunnen schakelen met daarbij toch ongeveer het juiste schakelpunt. Daarnaast kan ik natuurlijk meer opvangen, maar inderdaad, 2volt is al wat.

Was al aan het kijken naar een stroombegrenzer met een JFET, maar dit is nieuw voor mij.

Lambiek

Special Member

En hoe zwaar gaat die servo worden? Dus aan hoeveel Watt moeten we dan denken?

Die ingang kun je via een optocoupler doen, met de juiste voorschakelweerstand haal je de spanning 5VDC tot 24VDC wel.

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 14 maart 2018 08:32:33 schreef elmowww:
Ik snap niet waarom je de digitale ingang-thresholds mee zou willen laten schalen met Vin.

Dat zie ik nooit gebeuren, en ik denk ook niet dat het heel nuttig is.

Schakelgrenzen afhankelijk van de voedingsspanning is volstrekt normaal bij CMOS, en er zijn genoeg moderne logica IC's (zoals configurable gates e.d.) waarbij dat nog steeds zo is. Ik ben met je eens dat het niet gebruikelijk is bij PLC's e.d., maar de meeste daarvan zijn ook 40 jaar oude technologie.

Het is niet bepaald moeilijk, met een comparator bijvoorbeeld.

Zo'n quadrature encoder inlezen is triviaal, als je een microcontroller gebruikt die daar een specifieke periferal voor heeft, of timers met mogelijkheden om dat te kunnen doen. Encoders inlezen is software is m.i. altijd een slecht idee, afgezien van encoders voor gebruiker interfaces, want die maken hooguit een tiental pulsen per seconde.

Als je gewoon een optocoupler met vaste schakelniveau's wilt gebruiken, kun je dat ook doen met een weerstand, zener naar ground, nog een weerstand, en dan de LED van de optocoupler. De zener beperkt de maximale spanning over de LED en tweede weerstand, en daarmee de stroom door de LED. Daarbij krijg je de beveiliging tegen verkeerde polariteit er gratis bij. Nadeel is wel dat de eerste weerstand en zenerdiode vrij fors moeten zijn om de warmte te kunnen afvoeren. Het helpt natuurlijk als je een optocoupler gebruikt met een hoge current transfer ratio, of een logische optocoupler, waarmee je de stroom door de LED laag kunt houden en dus de weerstanden groter maakt, maar dan wordt het wel weer gevoeliger voor storing.

[Bericht gewijzigd door SparkyGSX op woensdag 14 maart 2018 12:02:00 (27%)

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Op 14 maart 2018 00:12:49 schreef Janse:
[*] Ingangsspanning van de signalen schakelen zowel bij 5v als 24v, afhankelijk van Vin

Je eis van geisoleerde input en 5-24V ingangsspanning betekent dat je RUIM 10x aan led-stroom variatie gaat krijgen.

Je eis van 8000 RPM en 4000 counts/rev maakt dat je zo'n 0.5M counts per sec wil aankunnen. Da's niet langzaam!

Ik dacht eerst voor die stroom-variatie: een factor vijf. Maar dat is te optimistich: Je wilt dat ie bij ongeveer 3V al gaat, met de slechtste variant van de optocoupler. Vervolgens staat er nog maar 1.8V over de weerstand. Geef je hem dan een echte 24V gaat de spanning dus maal 11 over de weerstand, dus ook 11x hogere stroom!

Zeker als je een "hulpvoeding" aan de geisoleerde kant kan hebben, dan kan je dit toch makkelijk bewerkstelligen. Een tor die 10mA led-stroom moet leveren heeft 0.1mA aan de bassis nodig. Met 3V ingangsspanning is dat 2.5V over de weerstand. 25k aan weerstand dus. Daar loopt dan rond de 1mA bij 24V. Kan ie hebben.

Of je een opto kan vinden die het fijn vind om 10x meer stroom te krijgen dan minimaal nodig is om te schakelen... Ik weet het niet.

Ik ben het niet eens met eerdere suggesties dat 2V marge op de voedingsspanning voldoende is. Bij 24V is het acceptabel als de voeding 10% inzakt (al dan niet tijdelijk, mogelijk niet bij jou, maar wel bij de signaalgever...) Dan heb je maar 21.6V over en dat is onder je nominale threshold van 22V.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Even ter verduidelijking, de digitale ingang is niet voor de encoder, maar voor general purpose. De reden om voor een due te kiezen is voornamelijk voor de quaduture encoder input, deze heeft de sam3x standaard aan boord. over dit circuit kunnen we het later hebben :)

Op 14 maart 2018 12:11:40 schreef rew: Ik ben het niet eens met eerdere suggesties dat 2V marge op de voedingsspanning voldoende is. Bij 24V is het acceptabel als de voeding 10% inzakt (al dan niet tijdelijk, mogelijk niet bij jou, maar wel bij de signaalgever...) Dan heb je maar 21.6V over en dat is onder je nominale threshold van 22V.

Laten we het dan maar goed doen en inderdaad boven de normale threshold te blijven. Ik kwam voor de weerstand uit op ongeveer 3W, wat ik liever niet heb op mijn bordje..

Op 14 maart 2018 12:11:40 schreef rew:
[...]Je eis van geisoleerde input en 5-24V ingangsspanning betekent dat je RUIM 10x aan led-stroom variatie gaat krijgen.

Je eis van 8000 RPM en 4000 counts/rev maakt dat je zo'n 0.5M counts per sec wil aankunnen. Da's niet langzaam!

Ik dacht eerst voor die stroom-variatie: een factor vijf. Maar dat is te optimistich: Je wilt dat ie bij ongeveer 3V al gaat, met de slechtste variant van de optocoupler. Vervolgens staat er nog maar 1.8V over de weerstand. Geef je hem dan een echte 24V gaat de spanning dus maal 11 over de weerstand, dus ook 11x hogere stroom!

Zeker als je een "hulpvoeding" aan de geisoleerde kant kan hebben, dan kan je dit toch makkelijk bewerkstelligen. Een tor die 10mA led-stroom moet leveren heeft 0.1mA aan de bassis nodig. Met 3V ingangsspanning is dat 2.5V over de weerstand. 25k aan weerstand dus. Daar loopt dan rond de 1mA bij 24V. Kan ie hebben.

Of je een opto kan vinden die het fijn vind om 10x meer stroom te krijgen dan minimaal nodig is om te schakelen... Ik weet het niet.

Ik ben het niet eens met eerdere suggesties dat 2V marge op de voedingsspanning voldoende is. Bij 24V is het acceptabel als de voeding 10% inzakt (al dan niet tijdelijk, mogelijk niet bij jou, maar wel bij de signaalgever...) Dan heb je maar 21.6V over en dat is onder je nominale threshold van 22V.

Volgens de datasheets kan ik wel een opto gevonden krijgen die dit nét aankan, maar ze waarschuwen wel voor veroudering. Niet mijn voorkeur, maar nog niet afgeschoten.

Mijn eerste idee is inderdaad met een comparitor, de lm311 bijvoorbeeld. Probleem wat ik ook met de opto heb blijft, bij de output wil je ook een vast spanning die naar een isolation ic gaat, of dit nu een level switcher/opto of een digital isolator, ect is. In de datasheet geven ze aan dat de input en output gescheiden kunnen worden, maar dit is niet geisoleerd wel? Dan zou ik op de output van de lm311 (collector) 3.3v kunnen zetten van mijn board (met weerstand natuurlijk) en ben ik klaar.

Lambiek

Special Member

Wat wil je nu over de ingangen van je optocoupler binnen halen, gewoon een paar extra ingangen of wil je de signalen van je encoder daarover binnen halen?

Als het je encoder signalen zijn, mag je wel een heel snelle optocoupler hebben. Zelf lees ik mijn encoder direct in op een poort-pin, wel via een buffer en ontstoring.

Als je haar maar goed zit, GROETEN LAMBIEK.

Met een constant-current-source voor een optocoupler heb je een heel groot spanningsbereik.
Maar in uw geval adviseer ik ook een plc met snelle tellerkaart of ingangen.

Extra ingangen. Encoder komt via receiver binnen (max485).

Betreft dus een circuit voor een extra ingang, momenteel heeft de vraag in dit topic verder niks met de encoder input te maken.

[Bericht gewijzigd door Janse op woensdag 14 maart 2018 14:38:05 (12%)

Ik ben vergeten in mijn eerdere post te vermelden:

Ik zou het 5V/24V probleem oplossen door een zwik 5V en een zwik 24V ingangen aan te bieden. Kwa "ruimte" moet je kiezen tussen bijvoorbeeld: "6 ingangen, 3 5V, 3 24V" en dan 6 optos gebruiken en 6 pinnetjes, of je doet 3 optos en 3 input pinnetjes, maar aan de buitenkant maak je verschillende inputs voor de verschillende verschillende spanningen. De op 5V uitgerekende weerstand gaat dan naar "de alleen 5V" input, en een andere weerstand naar de 24V input.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

@rew
Je kunt ook 2 weerstanden op elke opto zetten, 1 voor 5V en 1 voor 24V en dan kiezen welke je gebruikt.

Op 14 maart 2018 14:33:39 schreef Janse:
Extra ingangen. Encoder komt via receiver binnen (max485).

Betreft dus een circuit voor een extra ingang, momenteel heeft de vraag in dit topic verder niks met de encoder input te maken.

Mijn reactie is wat onduidelijk, het eerste deel gaat over de extra ingangen, met bv een lm334 voor een optocoupler kun je van 3V tot 40V op die ingang zetten en de led van de optocoupler krijgt steeds dezelfde stroom.
De tweede regel van die reactie gaat over de vraag over de encoder en telleringang.

GJ_

Moderator

Op 14 maart 2018 09:15:23 schreef MGP:...4096imp/rev x 2(flanken)...

x4 zelfs: 4096 ppr geeft altijd 16384 delen per omwenteling.

Lambiek

Special Member

Je ingang zou je op deze manier kunnen doen, zie schema.
Weerstanden uit de E96 reeks.

Als je haar maar goed zit, GROETEN LAMBIEK.

Voor PLC ingangen is er een IEC norm wat precies de ingangen aan impedantie moeten "zien" en waar de spannings-thresholds liggen.

Er zijn zelfs 3-type ingangen: Type-1/-2/-3 Deze zijn in "IEC 61131-2" vastgelegd.

De ingangs-stroom is zo vastgelegd dat er ook 2-draads sensors zoals benaderings-schakelaars aangesloten kunnen worden.

Om deze ingangen te maken is toch wel iets meer nodig als een weerstandje! Het schema van Lambiek komt heel dicht in de buurt (waardes zijn wat te hoog).
Er zijn ook speciale IC's met deze conditionering erin.

Zie dit interessante artikel van Beckhoff waar er het nodige over staat: https://download.beckhoff.com/download/document/Application_Notes/DK92…

Conditionerings IC van bijvoorbeeld Silabs + worse case berekeningen(Maar TI heeft ook van die dingen): https://www.silabs.com/documents/public/application-notes/AN970.pdf

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Lambiek

Special Member

Om deze ingangen te maken is toch wel iets meer nodig als een weerstandje! Het schema van Lambiek komt heel dicht in de buurt (waardes zijn wat te hoog). Er zijn ook speciale IC's met deze conditionering erin.

Ja maar een Arduino is geen PLC, en dat gaat het nooit worden ook.

En als ik de TS was zou ik dit als een leerproject zien, en niet in een industriële omgeving gaan gebruiken. Want daar is zo'n Arduino totaal niet geschikt voor, die dingen zijn veel te gevoelig.

Als je haar maar goed zit, GROETEN LAMBIEK.
GJ_

Moderator

Mijn opmerking over een instelbare ingangsvertraging was daarom ook een niet te negeren opmerking.
En inderdaad: om van een arduino een PLC te maken heb je veel geld nodig. Daar koop je een poepsjieke kant en klare voor. Je kunt geen product ontwikkelen op basis van één duur koopdeel.

Nog een nadeel voor industrieel gebruik: een machine moet toch wel een jaar of 20 meekunnen, en die arduino kun je over 5 jaar niet meer kopen.

Op 14 maart 2018 17:55:42 schreef deKees:
@rew
Je kunt ook 2 weerstanden op elke opto zetten, 1 voor 5V en 1 voor 24V en dan kiezen welke je gebruikt.

Jep. Dat zeg ik!

Of als je de buitenkant van het apparaat niet wilt "clutteren" met eerdere aansluitingen waarbij het gebruik van de 5V input waar de 24V gebruikt moest worden "fout" gaat.... Je kan een jumper maken die juiste weerstand inschakelt.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/