Beckhoff
Motion Control PTP
03.05.2013
1
Motion Control PTP
Agenda: Wat is Motion Control. TwinCAT Motion Controller. Stappenmotor in Open Loop Control Stappenmotor in Closed Loop Control ServoDrive AX5000 en Servomotoren. Motion aansturen vanuit PLC Link tusssen PLC en NC-as PLC Open function blocks
TwinCAT
03.05.2013
2
Motion Control PTP
Wat is het doel van Motion Control PTP? Point-to-Point Motion: Aansturen van bewegingen van motoren, onafhankelijk van elkaar.
Gearing: Electronisch koppelen van motoren.
Camming: Electronische nokkenas.
Flying Saw: Electronisch koppelen van motoren op een bepaalde positie.
TwinCAT
03.05.2013
3
Motion Control PTP
Architectuur TwinCAT systeem
Diagnose i.e. Scope ADS
SysMan ADS
PLC Control ADS
User HMI ADS
User HMI OPC
OCX/Dll
OPC
Usermode
TwinCAT System
Windows NT, 2000, XP ADS ADS ADS ADS I/O Server
PLC Server I/O
NC Server I/O I/O Mapping
other i.e. CAM I/O
Kernelmode
Realtime Server
ADS Router
Fieldbus Card Drivers 03.05.2013
4
Motion Control PTP
Een eenvoudig Motion profiel. Doel: Een object bewegen van punt A naar punt B Positie Snelheid
s=v.t
TwinCAT
03.05.2013
5
Motion Control PTP
Een Motion profiel met acc/dec. Doel: Een object bewegen van punt A naar punt B, met acceleratie / deceleratie.
v=a.t
s = ½ a . t²
TwinCAT
03.05.2013
6
Motion Control PTP
Een 3e orde Motion profiel. Doel: Een object bewegen van punt A naar punt B, met acceleratie / deceleratie en Jerk
Jerk: eerste afgeleide van de versnelling. (eenheid m/s³)
TwinCAT
03.05.2013
7
Motion Control PTP
Motion Control PTP in TwinCAT Motion Controller voor max 255 assen Open voor alle types assen: servo-motoren stappenmotoren frequentieregelaars aan-uit regeling (via 2 snelheden) hydraulische assen … Meerdere types encoder: digitale encoders, Sercos, SSI analoog: +/-10 V … Meerdere regelkringen: P, PI, PID
03.05.2013
8
Motion Control PTP
Stappenmotor Open Loop Control
TwinCAT
03.05.2013
9
Motion Control PTP
Aansluiten van een stappenmotor op een EL7041
EL 7041: Aansturing van een Stappenmotor (Max 50Vdc / 5A)
03.05.2013
10
Aansturing van een Stappenmotor EL7041: Stepper-motor klem voor 1 motor (Max 50Vdc / 5A )
Aansturing mogelijk vanuit PLC:
Enable signaal aktiveren Snelheid uitsturen als 16bits INT
03.05.2013
11
Aanmaken van een Motion Taak in TwinCAT Start de TwinCAT System Manager. Klik op NC-Configuration, en voeg via Rechtermuisknop een taak toe.
03.05.2013
12
Toevoegen van Assen aan de NC-taak Selecteer de NC-taak, en klik hierin op ‘Axis’ met de rechtermuisknop. Kies dan het commando ‘Append Axis’. Hiermee kan je het gewenste aantal assen toevoegen.
03.05.2013
13
Stappenmotor linken met Hardware Selecteer als As-type ‘Stepper Drive’. Vervolgens kan deze as gekoppeld worden aan een stappenmotorklem EL7031/EL7041.
03.05.2013
14
Aansturen Motor Via het tabblad Online kan de motor nu aangestuurd worden.
03.05.2013
15
Berekening Referentiesnelheid De referentiesnelheid is de snelheid waarmee de motor draait bij 100% aansturing. Dit is afhankelijk van de hardware, zowel elektrisch als mechanisch.
Voorbeeld: Stappenmotor De motor drijft een transportband aan. De diameter van het aandrijfwiel is 100mm. In de parameters van de stappenmotorklem vinden we hetvolgende terug:
In de Data Sheet van de motor vinden we hetvolgende terug: Resolution: 1,8° / 200 Full Steps Op de motor is een Gearbox gemonteerd (ratio 27/4) 03.05.2013
16
Parameters NC-as Algemene parameters • Snelheden • Limieten • Monitoring
03.05.2013
17
Dynamics NC-as Instellingen voor: • Versnelling • Deceleratie • Jerk
03.05.2013
18
Speed-torque curve Stappenmotor Speed-Torque curve Stappenmotor
Version 1.2
03.05.2013
19
Motion Control PTP
Stappenmotor Closed Loop Control
TwinCAT
03.05.2013
20
Berekening Scaling Factor Om een motor in Closed Loop Control aan te sturen, hebben we een feedback systeem nodig. Om een correcte terugmelding te krijgen van de positie, moet het signaal van het feedback systeem geschaleerd worden. De scaling Factor moet hiervoor berekend worden. Deze parameter is terug te vinden bij de Encoder Parameters
03.05.2013
21
Berekening Scaling Factor Voorbeeld: Encoder op stappenmotor.
De encoder op onze stappenmotor geeft 1024 A en B pulsen per omwenteling
03.05.2013
22
Motion Control: Servomotoren
03.05.2013
23
Setup AX5000 Servodrive Voeg voor iedere motor een NC-as toe van het type: Sercos Drive Link de NC-as naar de Servodrive.
03.05.2013
24
Setup AX5000 Servodrive Parameters van de drive kunnen ingesteld worden via de Drive Configuration Tool in de TwinCAT System Manager
03.05.2013
25
Setup AX5000 Servodrive Er zijn parameterfiles voor vele motoren beschikbaar. Sommige motoren kunnen automatisch gescand worden.
03.05.2013
26
Setup AX5000 Servodrive Er is een tool beschikbaar om automatisch de Scaling Factor en de Reference velocity te berekenen.
03.05.2013
27
Setup AX5000 Servodrive Stel de Kv-factor in op een correcte waarde. Kv te laag:
03.05.2013
28
Setup AX5000 Servodrive Stel de Kv-factor in op een correcte waarde. Kv in orde:
03.05.2013
29
Setup AX5000 Servodrive Stel de Kv-factor in op een correcte waarde. Kv te hoog:
03.05.2013
30
Motion vanuit de PLC Aansturen van NC-assen vanuit de PLC Gestandaardiseerde Funktion Blokken uit de PLC Open Motion Control Library
03.05.2013
31
Communicatie PLC - NC Communicatie tussen PLC en NC-as Iedere as beschikt over een Input en Output Struct, die kan gelinkt worden naar een PLC variabele,
03.05.2013
32
MC_Power De MC_Power geeft een Enable signaal aan de as Enable: Algemene software Enable voor de as. Enable Positive: Vrijgave aan de as om in positieve richting te mogen draaien. Enable Negative: Vrijgave aan de as om in negatieve richting te mogen draaien. Override: Snelheid-override in procent (0
03.05.2013
33
MC_Reset De MC_Reset reset de NC-as. Execute: De reset wordt uitgevoerd op een stijgende flank. Bij sommige As-types wordt tevens een Reset van de hardware (drive) uitgevoerd. In sommige gevallen is een extra hardware-reset noodzakelijk.
03.05.2013
34
MC_SetPosition Met deze FB kan de actuele positie van de as op een andere waarde geset worden. Execute: Het commande wordt uitgevoerd op een stijgende flank. Position: Waarde waarop de positie wordt geset. Mode: De nieuwe waarde wordt absolute of relatief geset.
03.05.2013
35
Status en Parameter FB’s Er zijneen aantal FB’s waarmee bepaalde statussen (vb Positie, Snelheid) kunnen uitgelezen worden. Daarnaast zijn er ook nog enkele FB’s waarmee het mogelijk is om een groot aantal parameters van een NC-as te lezen of te wijzigen.
03.05.2013
36
Homing procedure Assen zonder absoluut feedbacksysteem moeten 1. Start Homing procedure 2. Zoeken van home-sensor Richting en snelheid instelbaar 3. Home-sensor wordt gedetecteerd 4. Dalende flank van home-sensor zoeken 1. Richting en snelheid instelbaar 5. Zoeken van Sync-puls 6. Einde Homing
03.05.2013
37
MC_Home Funktieblok om een homing procedure te starten Execute: Startcommando op stijgende flank Position: Positie van de homing-sensor Homingmode: Default Direct SetCalibrationFlag ResetCalibrationFlag bCalibrationCam: Home-Sensor
03.05.2013
38
MC_MoveAbsolute Funktionblok om een absolute positionering uit te voeren. Execute: Startcommando op stijgende flank Position: Gewenste doelpositie Velocity: Snelheid waarmee naar de doelpositie bewogen moet worden. Acc/Dec/Jerk: optioneel, indien niet gebruikt wordt de waarde gebruikt zoals in de System Manager ingegeven. Buffermode: beschrijft de hoe er moet gereageerd worden indien meerdere commando’s achter elkaar gestart worden.
03.05.2013
39
Buffermode Buffermode beschrijft de overgang tussen meerdere opeenvolgende bewegingscommando’s:
03.05.2013
40
MC_MoveRelative Funktionblok om een relative positionering uit te voeren. Execute: Startcommando op stijgende flank Distance: Afstand waarover een verplaatsing uitgevoerd moet worden. Velocity: Snelheid waarmee naar de doelpositie bewogen moet worden. Acc/Dec/Jerk: optioneel, indien niet gebruikt wordt de waarde gebruikt zoals in de System Manager ingegeven. Buffermode: beschrijft de hoe er moet gereageerd worden indien meerdere commando’s achter elkaar gestart worden.
03.05.2013
41
MC_MoveVelocity Funktionblok om een as te starten op een bepaalde snelheid, Execute: Startcommando op stijgende flank Velocity: Snelheid waarmee de as moet bewegen. Acc/Dec/Jerk: optioneel, indien niet gebruikt wordt de waarde gebruikt zoals in de System Manager ingegeven. Buffermode: beschrijft de hoe er moet gereageerd worden indien meerdere commando’s achter elkaar gestart worden
03.05.2013
42
MC_MoveModulo Funktionblok om een relative positionering uit te voeren. Execute: Startcommando op stijgende flank Position: Gewenste doelpositie Velocity: Snelheid waarmee naar de doelpositie bewogen moet worden. Acc/Dec/Jerk: optioneel, indien niet gebruikt wordt de waarde gebruikt zoals in de System Manager ingegeven. Buffermode: beschrijft de hoe er moet gereageerd worden indien meerdere commando’s achter elkaar gestart worden.
03.05.2013
43
MC_MoveModulo MoveModulo is vergelijkbaar met een MoveAbsolute, maar met de parameter Direction extra, omdat het over een modulo-as handelt. Direction: Positief Negatief Kortste weg.
03.05.2013
44
MC_Stop / MC_Halt Met deze blokken wordt een Stop-commando gegeven. Iedere actieve beweging wordt hierdoor onderbroken. MC_Stop: De as kan niet opnieuw gestart worden voordat deze volledig tot stilstand is gekomen. MC_Halt: De as kan eventueel tijdens de deceleratie fase opnieuw gestart worden.
03.05.2013
45
MC_GearIn / GearOut Via deze blokken is het mogelijk om 2 assen te koppelen via een lineair Master-Slave koppeling. Via RatioNumerator en RationDenominator kan de gearratio ingesteld worden. GearIn wordt gestart via een stijgende flank op de execute van de MC_GearIn GearOut wordt gestart via een stijgende flank op de execute van de MC_GearOut
03.05.2013
46