SIEMENS LOGO met lineaire Geleiding

Hallo iedereen,

Voor mijn eindwerk (bachelorproef) moet ik een siemens LOGO! programmeren.

Ik heb bij IGUS een lineaire geleiding aangekocht. ZLW-1660S. Hierop zit de NEMA 23XL stappenmotor met encrementele encoder. ook 1 inductieve limit switch is erbij om het eindpunt van de lineaire geleiding aan te duiden.
Hierbij werd ook een motordryver "IGUS DRYVE D1" aangekocht.

Ik werk met de nieuwste LOGO met V8.3 software en een TD-scherm.

Ik zou graag dit platform zelf kunnen instellen via het TD-schermpje.
bv wanneer ik door middel van de functieknoppen c1,c2,c3,c4 druk moet de aanslag bewegen en naar de correcte positie gaan. (tot op 1cm nauwkeurig)

Ik kan via de pc reeds verbinding maken met de LOGO, maar er gebeurt nog niets.

Weet iemand hoe ik de encoder kan uitlezen en laten verschijnen op het TD-scherm?

in bijlage enkele foto's

Op 3 mei 2021 13:50:46 schreef Spoiler3:
Hallo iedereen,

Voor mijn eindwerk (bachelorproef) moet ik een siemens LOGO! programmeren.

Uit interesse: wat voor opleiding volg je precies?

Ik kan via de pc reeds verbinding maken met de LOGO, maar er gebeurt nog niets.

Kun je dat nog wat specifieker formuleren? Wat werkt er precies niet? En wat werkt er al wel? Heb je zelf al een idee waar het probleem kan zitten? Kun je bijvoorbeeld al nagaan of de fout waarschijnlijk in de hardware of software (programmatuur of LOGO-instellingen) zit?

Weet iemand hoe ik de encoder kan uitlezen en laten verschijnen op het TD-scherm?

Omdat het een schoolvraag is, zal men hier geen kant-en-klaar schema en programma aanleveren. We kunnen wel meedenken in vragen als:

  • Ik heb het zo aangesloten (zie schema...), want in de manual stond... Doe ik dit goed, of ga ik ergens de mist in?
  • Ik heb deze vinkjes zo ingesteld in de LOGO.... is dat juist?
  • Wat doet deze instructie precies? In de manual staat.. maar ik begrijp niet precies wat er wordt bedoeld
  • Etc. etc.

Mijn suggestie is dus om met nog iets concretere vragen te komen.

Hoi,

Ik zit in mijn laatste jaar Proffesionele bachelor Elektromechanica.

Momenteel kan ik verbinding maken met de LOGO!, ik kan dus mijn programma uploaden en bij de online test werken mijn inputs (input bij het TD-scherm).

Ik krijg dus nog geen output, de motor doet niets en mijn encoder wordt ook nog niet uitgelezen.

Ik heb dus 3 concrete vragen
1)
mijn stappenmotor is aangesloten op X5.1 tem X5.4 zoals de manual.
de encoder is aangesloten op X6.1 tem X6.8

https://docs.rs-online.com/47e3/0900766b816cdf34.pdf

-> p9 en p19
dit ben ik zeker dat dit klopt.

Ik zou graag de motor aansturen met de LOGO, dus ik heb kabel geplaatst van X2.4 "jog left" op de motordriver naar Q1 op de logo.
X2.5 "jog right" op de motordriver naar Q2 op de logo.
op de logo heb je 2 poorten bij Q1 en Q2, 1draad telkens naar de 24V en de andere dus naar de driver.

Klopt mijn aansluiting van de draad?

2)
De aansluiting van mijn encoder op de motordriver klopt. Deze wil ik dus inlezen op de LOGO, ik vermoed dat ik 2 draden nodig heb: een op - en afteller? bv I1 Een I2

op welke X... poorten van mijn motordriver moet ik dit verbinden?

3)
Als programma op de logo wil ik graag een signaal binnenlezen van de encrementel encoder en weergeven op de display. Heeft hier iemand ervaring mee of tips waar ik meer info hierover kan vinden?

GJ_

Moderator

Om te beginnen moet je uitzoeken hoe een encoder werkt, want met dat programma gaat het sowieso niet werken.

Ten tweede moet je toch nog even de manual van de Logo doorspitten want je hebt de verkeerde ingangen gebruikt voor je encoder. Ik wil je wel verklappen dat je ingang 5 en 6 moet gebruiken, maar dan zou ik het handig vinden als je kunt uitvinden waarom juist die ingangen.

De encoder zelf heb ik enkel nog maar aangesloten aan de motor driver:
https://www.youtube.com/watch?v=BY6NTYRh2xQ

ik heb een A, B en een Z signaal. met het A en B signaal wil ik dus graag weten naar welke richting hij gaat en op - of afteld.

Ik vermoed dat ik het Z-signaal niet nodig heb?

Mag ik rechtstreeks een draad trekken van bv I5 naar X6.3 ?
I5 en I6 zijn de snelle ingangen.

GJ_

Moderator

Een A en een B signaal zijn blokgolven die 90 graden verschoven zijn. Afzonderlijk geven ze dus geen richting aan.
De Z heb je niet nodig inderdaad.

richting 1:
opgaande flank A als B hoog is

richting 2:
opgaande flank a als B laag is

Uiteraard kun je met bv 1024 pulsen per omwenteling 4096 delen per omwenteling maken.

Toeternietoe

Dubbelgeïsoleerd

Je hebt het nu gedeeltelijk geprogrammeerd dat je encoder pulsen geeft bij de ene draairichting, en een extra signaal geeft bij de andere draairichting.
Ik heb zo’n idee dat dit niet goed is.
Geef eens informatie over je encoder.

GJ_ geeft aan dat je de snelle ingangen van de LOGO moet gebruiken, maar let op, niet elke LOGO heeft snelle ingangen, en afhankelijk van de snelheid van pulsen heb je wel of geen snelle ingang nodig.
Oftewel hoe snel kunnen de pulsen van de encoder zijn?

En over de rest van je “programma” zullen we het nog maar niet hebben.

Daar waar een schakeling rookt, vloeit de meeste stroom (1e hoofdwet van Toeternietoe)

Die motorcontroller is bedoeld om de aandrijving in een closed loop te regelen. De encoder wordt aangesloten op die controller. In de basis hoef jij dus niks met die encoder op de LOGO.

Alleen, nu wil je dus de positie weergeven op de LOGO. Het 'kale' encoder-signaal in logo inlezen is waarschijnlijk niet de oplossing, omdat er waarschijnlijk homing in de controller gedaan moet worden. In de LOGO ben jij daardoor niet op de hoogte van het nulpunt. Tenzij je in de PLC eenzelfde homing uitvoert. Misschien nog wel een oplossing, maar heel fraai is het niet, om een encoder op 2 plekken in te lezen.

Ik zie eigenlijk 2 mogelijkheden:
1: Kijk eens in de manual, of je de actuele positie op enige wijze uit de controller in de logo kan krijgen. Misschien via analoog, CAN-bus of Modbus/TCP.
2. Je kunt vanuit de LOGO met een analoge uitgang naar de LOGO motorcontroller het positie setpoint aangeven. Het apparaat meldt vervolgens terug wanneer hij gearriveerd is. Je zou daarmee wel het setpoint op het schermpje kunnen weergeven. Dat is natuurlijk niet hetzelfde als de actuele positie. In hoeverre dit dus voldoet...?

op de logo heb je 2 poorten bij Q1 en Q2, 1draad telkens naar de 24V en de andere dus naar de driver.

Klopt mijn aansluiting van de draad?

De min van de logo en de driver zullen ook nog met elkaar verbonden moeten zijn (enig idee waarom?)

De logo die ik gebruik is de LOGO 6ED1052-1HBO8-OBA1 24VDC

de encoder die ik gebruik zat standaard op mijn NEMA23XL motor. Deze encoder heeft 8 aansluitingen.

Line Driver Encoder met 500 impulses
A wit
A/ bruin
B groen
B/ geel
0V grijs
N/ roze
N blauw
5V DC rood

Klopt de aansluiting die ik zou doen:
I5 naar X6.3 (A)
I6 naar X6.5 (B)

5v volt voeding encoder daar gaan de 24v logo ingangen niet op werken enk ik.

Aanvullende suggestie: ga eerst eens lekker spelen met die motorcontroller en laat die logo even links liggen.

Sluit die controller eens precies aan zoals de manual het voorschrijft.

Neem wat schakelaars en sluit die aan op de digitale ingangen van de controller, die je wil gaan gebruiken.

Kijk eens of je de aandrijving op die manier aan de gang krijgt. Spit die manual eens door, om te kijken op welke manieren je die controller aan kan sturen en welke signalen hij teruggeeft.

Ga, als je helemaal bekend bent met de werking van die controller, eens kijken hoe je de gewenste functionaliteit het beste kunt realiseren.

Toeternietoe

Dubbelgeïsoleerd

De snelle ingangen op de LOGO werken alleen op een voor/achterwaardteller en/of drempelwaardeschakelaar.
Aangezien je eerst met poorten je draairichting moet bepalen gaat het alleen werken als je van de normale ingangen gebruik maakt, de max frekwentie is 4 Hz, dus max 4 pulsen per sec.

De LOGO! 12/24 RCE heeft als definitie voor Di Hoog > 8,5 Volt en laag < 5V
De LOGO! 24V DC-versies Hoog > 12V en laag < 5 Volt

Met een encoder met 5V uitgang zul je een tussenstap moeten verzinnen om je nivo's te verhogen.

Daar waar een schakeling rookt, vloeit de meeste stroom (1e hoofdwet van Toeternietoe)
GJ_

Moderator

Op 3 mei 2021 17:30:23 schreef (nog) amateur: In de basis hoef jij dus niks met die encoder op de LOGO.

Nou ja, ik neem aan dat er ook nog een vorm van asbesturing bij moet komen. Heel hoogstaand zal dat niet worden met een Logo, maar een positie is toch wel het minste.

Klopt

Het doel is als volgt.
Ik heb men lineaire geleiding met stappenmotor en encoder. Deze zijn verbonden met de igus motordriver.
Deze motordriver wil ik verbinden met mijn logo.

1) inlezen positie en weergeven op logo TD
2) positie aanpassen op logo TD (dus motor besturen)

Bestaan er bepaalde functieblokken om het encodersignaal om te zetten naar een bruikbare waarde?
En moet ik nu slechts 2 draden van mijn encoder (driver) verbinden met de LOGO?

Toeternietoe

Dubbelgeïsoleerd

1: Bestaan er bepaalde functieblokken om het encodersignaal om te zetten naar een bruikbare waarde?
2: En moet ik nu slechts 2 draden van mijn encoder (driver) verbinden met de LOGO?

1: Ja. Je kunt een Op en Afteller gebruiken om je pulsjes van je encoder te tellen. Daarna kun je bv met een rekenblok de waarde omzetten van pulsen naar afstand (meter, milimeter....)
2: Nee Je zult minimaal 3 draden nodig hebben.
Ik las ergens hierboven dat je encoder 5 Volt pulen geeft. Kijk dan maar naar mijn vorige post.

Daar waar een schakeling rookt, vloeit de meeste stroom (1e hoofdwet van Toeternietoe)
GJ_

Moderator

Twee draden van de encoder, en een gemeenschappelijke min.

Er is geen encoder functie in een Logo. Er zit een risico in dat de Logo gewoon te traag is om de encoder positie bij te houden. Er zijn PLC's waar standaard teller/encoderingangen op zitten.

Op 3 mei 2021 20:08:49 schreef Toeternietoe:
1: Ja. Je kunt een Op en Afteller gebruiken om je pulsjes van je encoder te tellen.

Met een standaard encoder A en B signaal gaat dat niet natuurlijk.

Op 3 mei 2021 19:30:52 schreef GJ_:
[...]Nou ja, ik neem aan dat er ook nog een vorm van asbesturing bij moet komen. Heel hoogstaand zal dat niet worden met een Logo, maar een positie is toch wel het minste.

Even snel door die manual bladerend, is die controller bedoeld om in closed loop de positie te kunnen regelen. Dus zowel de motor als de encoder aansluiten op die controller. Met die logo tegen de controller 'zeggen' op welke positie je hem wil hebben (kan met een analoge signaal, maar wellicht ook met de CAN of Modbus/TCP) en die controller regelt de rest (mag ik hopen). Oja, na spanningsloosheid natuurlijk wel eerst een commando voor homing geven, zodat de controller gaat zoeken waar de aandrijving op dat moment is. Er zijn verschillende homing methodes, zie de manual.

Als je een servo-set (motor + drive) hebt, ga je toch ook niet met een encoder op de PLC zitten prutsen...

In de basis denk ik dat de opzet moet worden zoals in bijgaand plaatje. De GewenstePositie en ActuelePositie zijn getalwaarden. De rest van de signalen zijn digitale signalen.

De GewenstePositie kun je in elk geval met een analoog signaal van de LOGO naar de motorcontroller krijgen. De ActuelePositie heb ik nog niet bekeken. Zoals gezegd, spit de manual hiervoor eens door. Mogelijk kun je iets met CAN of Modbus/TCP.

Toeternietoe

Dubbelgeïsoleerd

@ (nog) amateur
Het is wel een schoolopdracht met in de opdracht een LOGO.
Met alle beperkingen van de LOGO. Als je de gewenste positie analoog door wilt geven, de LOGO heeft een resolutie van 1000, op 0 - 10 Volt 10 mV
Ik denk dat de TS beter een ander setje had kunnen aanschaffen.

Daar waar een schakeling rookt, vloeit de meeste stroom (1e hoofdwet van Toeternietoe)

Op 4 mei 2021 06:58:13 schreef Toeternietoe:
@ (nog) amateur
Het is wel een schoolopdracht met in de opdracht een LOGO.
Met alle beperkingen van de LOGO.

Dat durf ik te betwijfelen. Ik weet niet hoe het in BE werkt, maar in NL is een afstudeeropdracht nooit zo omkaderd. Doorgaans zoek je zelf een afstudeeropdracht in het bedrijfsleven. Zowel het bedrijf als de school heeft zijn eisen. Die kunnen soms conflicteren. Dan heeft de afstudeerder een mooie uitdaging.

Als TS moet concluderen dat de vereiste functionaliteit achteraf niet (goed) blijkt te realiseren met de gekozen hardware, dan is dat wellicht de moeite om te vermelden in het rapport. Of misschien krijgt hij zijn opdrachtgever wel mee, om een serieuzere PLC aan te schaffen. Een S7-1200 is zo duur niet en kan kennelijk dus héél wat meer dan die LOGO. Wat die LOGO precies voor beperkingen heeft weet ik niet. Nooit mee gewerkt. Voor maatwerk machinebouw geldt wat mij betreft: ver vandaan blijven, als je voor een paar tientjes extra een serieuze PLC koopt. Tenzij je écht niet meer hoeft te doen, dan een paar tijdrelais vervangen.

de LOGO heeft een resolutie van 1000, op 0 - 10 Volt 10 mV

Dat hoeft nog geen dooddoener te zijn. TS moet een nauwkeurigheid van 1cm halen. Een resolutie van 1000 zou dus genoeg zijn, voor een max track-lengte van 10m. Zo te zien op de foto, zal het erom hangen.

[Bericht gewijzigd door (nog) amateur op dinsdag 4 mei 2021 07:36:18 (11%)

GJ_

Moderator

Op 4 mei 2021 05:54:32 schreef (nog) amateur: Even snel door die manual bladerend, is die controller bedoeld om in closed loop de positie te kunnen regelen.

Daar hoef je niet voor door de manual te bladeren, dat is altijd zo met servosystemen. Closed loop wil niet zeggen dat er geen apart systeem is dat de bewegingen coördineert. Met één as is dat meestal niet nodig, maar met meerdere assen is er vrijwel altijd een asbesturing aanwezig. Bij moderne drives kan die zijn opgenomen in een van de drives.

Dat je er dan dus geen externe asbesturing (of PLC) boven hangt is echter een foute veronderstelling, dat hangt af van de bedoelingen. Deze drive kan inderdaad indexen dus via modbusTCP zou het theoretisch mogelijk moeten zijn om een gewenste positie in te geven. Maar succes daar mee: nog niemand heeft veel ervaring met de Logo en modbusTCP. Ik heb er al het een en ander mee gedaan en dat was weer ouderwets veel proberen en testen.

Ik ga er van uit, en de vraag van TS wijst daar ook op, dat TS een asbesturing wil maken zoals vroeger normaal was: één terugkoppeling naar de motorversterker en één naar de asbesturing. In dit geval is die terugkoppeling gecombineerd in één encoder, maar vroeger was het heel normaal als er op een servo twee zaten.

TS wil een resolutie van 1cm, wat voor de gemiddelde servo op deze afstand ENORME stappen zijn. Nauwkeurigheid is dus geen issue. Het enige waar het op hangt is of die Logo wel in staat is de encoder bij te houden. Dat hangt af van snelheid en resolutie.

Verder hangt het er van af wat voor encoder het is. Het omschreven type bestaat grofweg in twee soorten: TTL en HTL. Een TTL encoder kan niet op een Logo, een HTL wel.

Op 4 mei 2021 07:35:59 schreef GJ_:
[...]
Dat je er dan dus geen externe asbesturing (of PLC) boven hangt is echter een foute veronderstelling, dat hangt af van de bedoelingen.

Dat heb ik ook nooit willen beweren. Uiteraard zit er doorgaans een besturing boven voor de overige machinelogica. En vaak wil je in die logica ook wel iets met de actuele positie. Maar het positioneren op zich wordt toch echt door de drive gedaan. En het is gebruikelijk dat je besturing de actuele positie uit de drive leest. De daarvoor noodzakelijke technieken bestaan al langer dan ik. Ik heb zulke fratsen met twee encoders, of een splitsing van het encoder-signaal eigenlijk nog nooit gezien. Maar goed, ik ben natuurlijk niet van vroeger ;)

Maar succes daar mee: nog niemand heeft veel ervaring met de Logo en modbusTCP. Ik heb er al het een en ander mee gedaan en dat was weer ouderwets veel proberen en testen.

Omdat het lastig is kun je er met een boog omheen lopen en teruggrijpen op bekende oplossingen. Of je bijt jezelf erin vast en zoekt het één keer goed uit. Waarmee je je lijstje met bekende oplossingen steeds weer wat uitbreidt.

[Bericht gewijzigd door (nog) amateur op dinsdag 4 mei 2021 08:13:43 (21%)

GJ_

Moderator

Op 4 mei 2021 08:09:03 schreef (nog) amateur:Maar het positioneren op zich wordt toch echt door de drive gedaan.

En daar vergis je je echt in. Bij grotere systemen zorgt het bovenliggende systeem voor de positionering en is de drive slechts de uitvoerder.
Die gesplitste systemen waren vroeger noodzaak. De terugkoppeling naar de drive (toen heette dat meestal versterker) gebeurde meestal met een tacho. En encoder ging dan naar de asbesturing. Er draaien trouwens nog genoeg robots met dit soort systemen.
Bij moderne drives zit dit vaak gecombineerd in de drive, maar met complexere systemen voldoet dit niet.
De drive waar het hier om gaat kan dan wel leuk indexen, maar voor meer complexe bewegingen zal er ook een asbesturing boven moeten.

Stel bijvoorbeeld dat je twee van deze assen hebt en die moeten samenwerken om een cirkel te beschrijven? Of een robot met 6 assen? Dan heb je een gemeenschappelijke asbesturing nodig.

Bij de drive in dit verhaal zou dat alleen mogelijk zijn in een andere mode dan indexen, dus bijvoorbeeld het volgen van een externe pulstrein.

Die Logo is hoe dan ook een foute keuze, daar zijn we het over eens. Maar als de signalen niet te snel gaan kan TS bijgaand programma overnemen om het te testen.

encLogo.bmp

Op 4 mei 2021 08:16:53 schreef GJ_:
[...]samenwerken om een cirkel te beschrijven? Of een robot met 6 assen? Dan heb je een gemeenschappelijke asbesturing nodig.

Zo'n gemeenschappelijke as-besturing gaat doorgaans als 'motion controller' door het leven. In de meeste configuraties die ik heb gezien (bijvoorbeeld SEW Movi-C) zitten de encoders nog altijd op de individuele drives aangesloten.

De motion controller zet met zeer korte intervallen, de setpoint positie op de bus voor elke drive. De drive zorgt ervoor, dat de aandrijving continu (binnen acceptabele marges) op de setpoint positie blijft. Ramping wordt in de motion controller gedaan, want je kunt het setpoint niet plots in grote stappen veranderen; dan kunnen de drives het niet bijhouden.

De drives zullen altijd een beetje achterlopen op de setpoint positie. Maar doordat alle drives een beetje achterlopen, heb je toch een nauwkeurige synchronisatie.

GJ_

Moderator

Ik heb het toch over een asbesturing? Dat ís een motion controller. We gaan nu niet lopen kommaneuken over de naam en hoe het positiesignaal in de asbesturing terecht komt. Natuurlijk is dat tegenwoordig vaker met de bus of via een encoder simulatie vanuit de drive. De rest van je verhaal klopt ook niet voor de meest gebruikelijke configuraties.
Ik heb als je geïnteresseerd ben wel wat boeken voor je over servo's en as besturingen.

Ik stop deze discussie hier want het is off topic, TS schiet er helemaal niks mee op.

Op 4 mei 2021 08:54:00 schreef GJ_:
Ik heb het toch over een asbesturing? Dat ís een motion controller. We gaan nu niet lopen kommaneuken over de naam en hoe het positiesignaal in de asbesturing terecht komt. Natuurlijk is dat tegenwoordig vaker met de bus of via een encoder simulatie vanuit de drive.

Ik ben in de veronderstelling dat de asbesturing niets met het encodersignaal hoeft, omdat de asbesturing slechts een setpoint doorgeeft aan de drive. Zowel de versterker als positieregelaar zitten in de drive. De asbesturing hoeft de actuele positie daardoor niet te weten. Ook niet voor synchronisatie-toepassingen.

Ik stop deze discussie hier want het is off topic, TS schiet er helemaal niks mee op.

Ik had dezelfde gedachte. Stiekem misbruikte ik dit topic een beetje om mijn begrip van aandrijfsystemen nog eens te toetsen, omdat ik weet dat je er veel ervaring mee hebt. Mocht je nog iets aan mij kwijt willen, stuur gerust een mailtje! Ik ben altijd in om bij te leren.

Waar de TS wel wat mee opschiet, is jouw mooie zet in de goede richting, om die encoder in die logo (proberen) in te lezen.