USB/serieel naar step/dir interface

Ik ben een race simulator aan het maken waarbij ik een stukje elektronica nodig heb als interface tussen de software Simtools en Delta B2 servo regelaars.

Hiervoor heb ik al een Teensy 3.2 waarvan de software grotendeels al klaar is. De aansluitmogelijkheden, gemak van programmeren en prijs waren redenen waarom ik hiervoor had gekozen. Het was in eerste instantie de bedoeling om servoregelaars te gebruiken die ook een 3.3v interface hebben, maar uiteindelijk bleken die regelaars te onbetrouwbaar voor mijn toepassing. Daarom heb ik hier inmiddels Delta B2 regelaars liggen, maar nu komt het probleem. De B2's hebben een 24v interface en de eindschakelaars van de lineaire actuators hebben een bereik van 10-28v DC.

Het is de bedoeling om de seriële commando's van de software op de PC om te zetten in step/dir commando's voor de servoregelaars. Zoals ik al noemde, is deze software grotendeels klaar.

De Teensy 3.2 is natuurlijk bedoeld voor prototyping en eigenlijk niet voor "industrieel" gebruik. Het belangrijkste voor mij is een betrouwbare interface. In principe zit ik dus niet vast aan de Teensy. Al zou het wel mooi zijn om de reeds geschreven software te kunnen blijven gebruiken.

Ik zoek dus een manier om de 3.3v <--> 24v signalen om te zetten OF een alternatief voor de Teensy. Een PLC met USB of seriele interface en snelle I/O voor step/dir mag ook. Of eventueel ethernet interface, al weet ik niet zeker of Simtools de data op de juiste manier kan sturen zoals een PLC het verwacht. De prijs is natuurlijk ook belangrijk. Een PLC van €3000 zou misschien een hele betrouwbare oplossing zijn, maar een beetje te duur...

Zie de foto voor de gegevens van de eindschakelaars.

Ik ben geboren op m'n verjaardag, en jij?
Shiptronic

Overleden

Je kan hier eens kijken, werkt met een arduino : http://realdash.net/index.php

Wie de vraag stelt, zal met het antwoord moeten leren leven.

Op 17 juni 2019 17:34:29 schreef Firehunter:
.... en Delta B2 servo regelaars.

Als google op Delta B2 kom ik uit bij Damen CNC.

Die zeggen dat je ze aan kunt sturen met USBCNC of compatibel.
USBCNC is het oudere spul van Eding.
https://www.damencnc.com/nl/cnc-besturingen/edingcnc-aka-usbcnc
Of: http://www.edingcnc.com/index.php

Ze lijken nu voorkeur te hebben voor Ethernet, maar als je USB wilt hebben ze vast nog wel wat.

Volgens mij zoek je een 24V levelshifter. Dat als zoekterm levert aardige schema's op. B.v. die met de optocoupler.

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

Special Member

Op 17 juni 2019 17:34:29 schreef Firehunter:
Het is de bedoeling om de seriële commando's van de software op de PC om te zetten in step/dir commando's voor de servoregelaars. Zoals ik al noemde, is deze software grotendeels klaar.

Vaak wordt daar X-sim voor gebruikt, maar je kunt zelf ook iets maken natuurlijk. Met bijv. een Arduino, daar is genoeg over te vinden op het net.

https://www.google.nl/url?sa=t&rct=j&q=&esrc=s&source=…

https://www.google.nl/url?sa=t&rct=j&q=&esrc=s&source=…

De Teensy 3.2 is natuurlijk bedoeld voor prototyping en eigenlijk niet voor "industrieel" gebruik. Het belangrijkste voor mij is een betrouwbare interface. In principe zit ik dus niet vast aan de Teensy. Al zou het wel mooi zijn om de reeds geschreven software te kunnen blijven gebruiken.

Je moet een interface maken die jou coördinaten uit je computer omzet naar puls richting, in principe maakt het niet uit of je daar nu een Teensy voor gebruikt of een Arduino of andere controller.

Ik zoek dus een manier om de 3.3v <--> 24v signalen om te zetten OF een alternatief voor de Teensy.

Zoals je het hier schrijft zou je verwachten dat je alleen een levelshifter nodig hebt, maar ik denk dat je echt een interface nodig hebt die het signaal uit je computer omzet naar puls richting.

Wat gebruik je voor programma?

Op 17 juni 2019 21:37:40 schreef Spog2:
Die zeggen dat je ze aan kunt sturen met USBCNC of compatibel.
USBCNC is het oudere spul van Eding.

Daar heeft de TS niets aan, dat printje zet de coördinaten uit een tekening om in G-code. Dat is voor CNC doeleinden.

Ze lijken nu voorkeur te hebben voor Ethernet, maar als je USB wilt hebben ze vast nog wel wat.

Het wordt beide geproduceerd, zowel USB als Ethernet. USB gaat tot een meter of zes betrouwbaar en met Ethernet kun je een hele hal door. Is goed spul trouwens voor CNC.

Als je haar maar goed zit, GROETEN LAMBIEK.

@Shiptronic: ziet er leuk uit, maar heeft niks te maken met wat ik zoek.

@Spog2: Zoals Lambiek ook noemt, is dit voor CNC besturing. Niet voor realtime simulatie software.

@rew: Ik zoek inderdaad een level shifter. 3.3v->24v voor de step/dir besturing. En 24v->3.3v voor de eindschakelaars. Ik heb echter meerdere mogelijkheden voorbij zien komen zoals spanningsdelers, transistors en optocouplers. Maar ik weet dus niet wat voor mijn toepassing het beste is.

@Lambiek: Zoals ik in mijn eerste bericht noemde, heb ik de Teensy al als interface tussen de software en step/dir signalen. De software Simtools stuurt via een USB/seriele verbinding commando's naar de Teensy welke daarmee worden omgezet in step/dir signalen. Het probleem is dat de Teensy op 3.3v werkt, terwijl de B2 regelaars en de eindschakelaars met 24v signalen werken.

Dus twee mogelijkheden:
- Levelshifters tussen Teensy en servoregelaars en eindschakelaars.
- Alternatief voor de Teensy die wel op 24v werkt. Iets meer industrieel/PLC-achtig.

Maar ik weet dus niet welke variant levelshifter ik moet gebruiken en ook weet ik niet welke eventuele 24v-alternatieven zijn voor de Teensy.

Ik ben geboren op m'n verjaardag, en jij?
Lambiek

Special Member

Op 18 juni 2019 14:25:07 schreef Firehunter:
@Lambiek: Zoals ik in mijn eerste bericht noemde, heb ik de Teensy al als interface tussen de software en step/dir signalen. De software Simtools stuurt via een USB/seriele verbinding commando's naar de Teensy welke daarmee worden omgezet in step/dir signalen.

Dat heb je dus voor elkaar, dan had je dus beter alleen de vraag kunnen stellen die hier onder staat.

Het probleem is dat de Teensy op 3.3v werkt, terwijl de B2 regelaars en de eindschakelaars met 24v signalen werken.

Ik weet niet met hoeveel KHz je de drivers aanstuurt?, maar je zou iets via optocouplers kunnen maken.

Dus twee mogelijkheden:
- Levelshifters tussen Teensy en servoregelaars en eindschakelaars.
- Alternatief voor de Teensy die wel op 24v werkt. Iets meer industrieel/PLC-achtig.

Wat denk je dat zoiets gaat kosten en in principe heb je het al werkend, dus ik zou dan voor levelshifters gaan.

Er zijn hele snelle optocouplers te koop.
Je zou naar deze kunnen kijken de SFH610 of deze de HCNR200.

Als je haar maar goed zit, GROETEN LAMBIEK.
GJ_

Moderator

als het snel moet is 5V gebruikelijk op servodrives voor step/dir of (gesimuleerde) encodersignalen.. Dat moet voor deze drives ook zo zijn.

Sorry, ik dacht dat ik het duidelijk had verwoord in mijn eerste bericht.

De step frequentie is 50khz. 10μs aan en 10μs uit is een volledige stap.

Link naar de handleiding van de B2 regelaars:
http://www.deltaww.com/filecenter/Products/download/06/060201/Manual/D…

Op pagina 64 (sectie 3.3.3) staan de mogelijke schema's voor de step/dir signalen. Als het goed begrijp zouden gewone transistors als BC547 ook kunnen. Maar een optocoupler is veiliger toch? Of maakt dat in dit geval geen verschil omdat er (volgens het schema) ook al optocouplers in de regelaar zelf zitten?

In figuur C4-1 staat een schema voor een 5v schakeling. Maar wat betekend dat driehoekje met rondje? Is dat een geinverteerd signaal? Is dat dan +5v en GND, of +5v en -5v?

EDIT:
Ik zie net op pagina 115 dit staan:

Ik ben geboren op m'n verjaardag, en jij?

Ik heb de schema's in de datasheets nog een paar keer goed bekeken en heb het vermoeden dat ik een te moeilijke oplossing zoek.

Als ik uit ga van figuur C3-1 van de B2 datasheet zou ik een (3.3V) uitgang van de Teensy met een 2.7k weerstand aan de base van een BC547 kunnen aansluiten, de collector aan /SIGN of /PULSE en emitters aan COM-. Klopt dit en is 2.7k de juiste waarde?

Zo ja, dan is het step/dir probleem opgelost.
Nog wel een andere vraag. Is het op deze manier, met een 24V signaal minder storingsgevoelig dan een 3.3V signaal rechtstreeks naar de regelaars?

Dan nog de eindschakelaars. Dit zijn zogenaamde solid state sensors met ingebouwde transistor. Ik kan ze aansluiten op de 24V die beschikbaar is vanuit de servoregelars. De spanningsval van de DSME-020 is 2,7V. Dit signaal moet een optocoupler schakelen. Het bleek dat ik nog een paar KB827 had liggen, dus die wil ik gaan gebruiken. Spanningsval daarvan is 1,4V en stroom 20mA.

24V - 2,7V - 1,4V = 19,9V
Maximaal 20mA dus 19,9V / 0,02A = 995ohm oftewel 1k weerstand

Dan zou het op deze manier verbonden worden:
24V -> 1k weerstand > anode-optocoupler-kathode > bruine draad-eindschakelaar-blauwe draad > GND

Klopt dit?

Ik ben geboren op m'n verjaardag, en jij?

Op 19 juni 2019 19:34:38 schreef Firehunter:
Als ik uit ga van figuur C3-1 van de B2 datasheet zou ik een (3.3V) uitgang van de Teensy met een 2.7k weerstand aan de base van een BC547 kunnen aansluiten, de collector aan /SIGN of /PULSE en emitters aan COM-. Klopt dit en is 2.7k de juiste waarde?

Dat is dan de "open collector" oplossing, onderste regel uit het tabelletje p115.

Staat er in die buurt nog een schematje: Er moet ERGENS een pullup naar 24V zijn. Het kan heel goed dat die in het ding zit, maar dan staat het schematje wat je beschreven hebt letterlijk in de handleiding.

Voor die weerstand is een heel ruime range aan weerstanden die zou werken. De BC547 heeft een versterking van 100x (als je het opzoekt iets van tussen 200 en 400, maar ik heb geen zin om dat nu op te zoeken, 100 is veilig). d'r staat iets over 25mA, dus je hebt 25mA/100 = 0.25mA nodig bij de ingang. Je hebt daar 3.3V - 0.6V = 2.7V aan spanningsval over een weerstand, dus kom je op een weerstand van maximaal 2.7V / 0.25mA = 10.8k.

Je microcontroller output kan maximaal 20mA leveren, dus 2.7V / 20mA de weerstand moet minimaal 135 Ohm zijn. Dat zijn de grenzen. Het is zuiniger om een grotere waarde te kiezen, dus kies 2k2, 2k7, 4k7 of 10k.

Op 19 juni 2019 19:34:38 schreef Firehunter:
Klopt dit?

Het is wel hoe ik het ook interpreteer. Dus ik zeg: Ja dat klopt.

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

De Teensy 3.2 mag maximaal 10mA per uitgang leveren, maar ik begrijp je uitleg.

Staat er in die buurt nog een schematje: Er moet ERGENS een pullup naar 24V zijn. Het kan heel goed dat die in het ding zit, maar dan staat het schematje wat je beschreven hebt letterlijk in de handleiding.

Op pagina 64 van de handleiding staat in figuur C3-1 het open-collector schema waarbij VDD (24V) verbonden is met PULL_HI, dus dat is ingebouwd.

Ik ga het proberen en laat nog weten of het gelukt is.

Even voor de zekerheid. Met de open-collector versie moet ik toch ook de GND van de Teensy en de COM- van de servoregelaar met elkaar verbinden? Bij COM- staat "VDD(24V) power ground". Er zijn ook GND aansluitingen, maar daarbij staat "Analog input signal ground".

Ik ben geboren op m'n verjaardag, en jij?