View/Open

Transcription

View/Open
I
Voorwoord
De evolutie binnen de automatiseringswereld staat niet stil. Oudere technologie wordt vervangen
door nieuwere technologie. Deze levert vaak betere prestaties zoals hogere snelheden,
vereenvoudigde opstellingen en een grotere standaardisering. Dit eindwerk heeft me de kans
gegeven om binnen een bedrijf de aanwezige technologie in een handleiding te verwerken en
deze te vergelijken met een vernieuwende technologie die later toegepast kan worden.
Om dit project tot een goed einde te brengen werd kennis toegepast die de voorbije jaren
vergaard werd. Maar binnen mijn opleiding werd de nadruk gelegd op het zelfstandig zoeken en
oplossen van problemen. Dit eindwerk was een ideale gelegenheid voor mij om deze vaardigheid
ten toon te spreiden.
Uiteraard heb ik dit project niet op mijn eentje afgewerkt, maar kreeg ik begeleiding van mijn
promotoren. Ik wil dan ook mijn interne promotor dhr. Kobe Nachtergaele en mijn externe
promotor dhr. Bart De Geyter bedanken voor hun inzet en nauwgezette opvolging van mijn
eindwerk. Zij hebben mij de kans gegeven om dit project in optimale omstandigheden aan te
vatten en te voltooien.
Vervolgens wil ik ook het bedrijf Unilin Flooring bedanken dat mij de kans gegeven heeft om dit
eindwerk uit te voeren. Dankzij het actieve opleidingsbeleid van dit bedrijf kunnen studenten
zoals ikzelf al de nodige ervaring opdoen vooraleer in het bedrijfsleven te stappen.
Ten slotte wil ik ook mijn ouders, zussen en vriendin bedanken voor hun interesse in mijn
eindwerk en de morele steun tijdens het voorbije jaar.
II
Inhoudstabel
Voorwoord ...................................................................................................................................... II
Inhoudstabel ................................................................................................................................... III
Abstract ........................................................................................................................................... V
Figurenlijst .................................................................................................................................... VI
Tabellenlijst ................................................................................................................................... XI
1. Inleiding ................................................................................................................................... 1
1.1.
Bedrijf: Unilin .................................................................................................................. 1
1.2.
Opbouw platen ................................................................................................................. 3
1.3.
Op – en afwikkelaar ......................................................................................................... 5
1.4.
Specifieke taken binnen deze masterproef ....................................................................... 6
2. Achtergrond sinamics/technology/simotion ............................................................................. 8
2.1.
Hardware .......................................................................................................................... 8
2.2.
Software (scout, simatic) .................................................................................................. 9
2.3.
Voordelen/nadelen ......................................................................................................... 13
3. Communicatie binnen opstelling ............................................................................................ 14
3.1.
Profibus DP .................................................................................................................... 14
3.2.
Drive-CLiQ .................................................................................................................... 18
4. Handleiding Sinamics ............................................................................................................ 18
5. Handleiding Technology ........................................................................................................ 19
5.1.
Aanmaken nieuw project ................................................................................................ 19
5.2.
Toevoegen en configureren drive en infeed ................................................................... 19
5.3.
Instellen van de assen: .................................................................................................... 20
5.4.
Aansturing via Control panel ......................................................................................... 32
5.5.
Selftuning ....................................................................................................................... 36
5.6.
Aansturing via programma (STL) .................................................................................. 40
5.6.1.
Basisblokken .......................................................................................................... 40
5.6.2.
Camming ................................................................................................................ 48
5.6.3.
Gearing ................................................................................................................... 54
5.6.4.
Probes ..................................................................................................................... 55
6. Handleiding Simotion ............................................................................................................ 58
6.1.
Aanmaken nieuw project ................................................................................................ 59
6.2.
Toevoegen en configureren drive en infeed ................................................................... 65
6.3.
Instellen van de assen ..................................................................................................... 66
6.4.
SelfTuning ...................................................................................................................... 67
6.5.
Programmeertalen .......................................................................................................... 68
6.5.1.
Algemeen ............................................................................................................... 68
6.5.1.1.
Execution system............................................................................................ 68
6.5.1.2.
Variabelen ...................................................................................................... 70
6.5.1.3.
Monitoring ...................................................................................................... 71
6.5.1.4.
Scoop .............................................................................................................. 74
6.5.2.
LAD – Ladder logic ............................................................................................... 76
6.5.2.1.
Programma aanmaken .................................................................................... 76
6.5.2.2.
Functieblok uit Command Library toevoegen ............................................... 78
III
6.5.2.3.
Functieblokken aanmaken .............................................................................. 83
6.5.3.
ST – Structured Text .............................................................................................. 84
6.5.3.1.
Programma aanmaken .................................................................................... 84
6.5.3.2.
Functieblok uit Command Library toevoegen ............................................... 86
6.5.3.3.
Functieblok aanmaken.................................................................................... 87
6.5.4.
MCC – Motion Control Chart ................................................................................ 88
6.5.4.1.
Programma, functie, functieblok aanmaken ................................................... 88
6.5.4.2.
Basis commando’s en structuren .................................................................... 88
6.5.4.3.
Task commands ............................................................................................ 101
6.5.4.4.
Single axis commands .................................................................................. 103
6.5.4.5.
Multi axis commands ................................................................................... 112
6.6.
Safety ............................................................................................................................ 118
7. Oefenprogramma .................................................................................................................. 121
8. Besluit................................................................................................................................... 127
9. Literatuurlijst ........................................................................................................................ 128
IV
Abstract
Some years ago Siemens created a new type of motion control, called Simotion. Unilin flooring
has a winder application which is controlled by a Sinamics CU 320 module combinated with a
317T-PLC. It is possible that Simotion in the future will be used to control this application.
Therefore Unilin wanted to know the advantages and disadvantages of Simotion, more
specifically of a Simotion D435 module. This module combines motion control with technology
functions and a PLC all in one module. In this mastertest the Simotion system wil be compared
with the system with the 317T-PLC. The result of this mastertest are two manuals about the
317T-PLC and the Simotion D435 module, so the employees of Unilin can use these manuals for
education.
The main difference between the two systems is the way of programming. When a 317T-PLC is
used, the program wil have to be programmed in the Siemens specific language of STL. With
Simotion, there is a choice between four languages that all satisfy the IEC 61131-3 standard. Two
of them are LAD/FBD and ST. These are well-known languages. A third language is Motion
Control Chart (MCC). This is a grafical language that focuses on sequential programming.
Structures and commands can be inserted very simply. Although this language is easy to handle,
it is necessary that there is a certain knowledge about it. Some rules have to be kept in mind and
because of the great number of possibility’s MCC can be complex in the beginning. Therefore
this language has been included in the manuals that are the result of this mastertest. Drive Control
Chart (DCC) is an optional language that has not been included in the manual.
V
Figurenlijst
1.1 Laminaat vloer............................................................................................................................ 3
1.2 Opbouw van een plank (afgebeeld zonder klikgroef) ................................................................ 4
1.3 Opbouw van een plank (afbeelding met V-groef) ...................................................................... 4
1.4 Schematische voorstelling afwikkelaar ...................................................................................... 5
1.5 Opstelling ................................................................................................................................... 6
2.1 Programmaverwerking Step7 ..................................................................................................... 9
2.2 STL ............................................................................................................................................. 9
2.3 Programmaverwerking Scout ................................................................................................... 10
2.4 Uitvoering: Serieel tov parallel ................................................................................................ 10
2.5 FBD .......................................................................................................................................... 11
2.6 ST ............................................................................................................................................. 11
2.7 Motion Control Chart ............................................................................................................... 12
2.8 Drive Control Chart .................................................................................................................. 12
3.1 Profibus DP kabel..................................................................................................................... 14
3.2 Snelheden bij RS 485 ............................................................................................................... 15
3.3 Drive-CLiQ .............................................................................................................................. 18
5.1 Opstelling ................................................................................................................................. 19
5.2 Axis: configuration ................................................................................................................... 20
5.3 Axis type .................................................................................................................................. 20
5.4 Modulo ..................................................................................................................................... 21
5.5 Drive assignment ...................................................................................................................... 22
5.6 Encoder assignment.................................................................................................................. 22
5.7 Encoder data ............................................................................................................................. 23
5.8 Configure displayed dataset ..................................................................................................... 23
5.9 Configuration ........................................................................................................................... 24
5.10 Axis: Mechanic ...................................................................................................................... 24
5.11 Axis: Default .......................................................................................................................... 25
5.12 Axis: Position and velocity .................................................................................................... 25
5.13 Axis: Dynamic response......................................................................................................... 26
5.14 Axis: Fixed endstop ................................................................................................................ 26
5.15 Axis: Closed-loop control ...................................................................................................... 27
5.16 Axis: Homing bij een motor met incrementele encoder ........................................................ 28
5.17 Monitoring: Positioning and standstill ................................................................................... 29
5.18 Monitoring: Following error .................................................................................................. 30
5.19 Monitoring: Standstill signal .................................................................................................. 30
5.20 Velocity error ......................................................................................................................... 31
5.21 Control panel .......................................................................................................................... 32
5.22 Device in incorrect state ......................................................................................................... 32
5.23 Operation Mode...................................................................................................................... 32
5.24 Enable Peripheral Outputs ...................................................................................................... 33
5.25 Waarschuwing ........................................................................................................................ 33
5.26 Control panel: Set / Remove enables ..................................................................................... 34
5.27 Switch axis enable .................................................................................................................. 34
VI
5.28 Control panel .......................................................................................................................... 34
5.29 Positioning axis ...................................................................................................................... 35
5.30 Speed controller...................................................................................................................... 36
5.31 Axis: Closed-loop control ...................................................................................................... 37
5.32 Axis: Closed-loop control ...................................................................................................... 37
5.33 Trace ....................................................................................................................................... 37
5.34 Self tuning .............................................................................................................................. 38
5.35 Settings overnemen ................................................................................................................ 38
5.36 Create DB’s ............................................................................................................................ 40
5.37 Aanmaken Technology objects .............................................................................................. 41
5.38 Library .................................................................................................................................... 41
5.39 Library: versie ........................................................................................................................ 42
5.40 Blocks ..................................................................................................................................... 42
5.41 FB oproepen ........................................................................................................................... 42
5.42 DB genereren.......................................................................................................................... 43
5.43 Functieblok ............................................................................................................................. 43
5.44 DB’s ....................................................................................................................................... 43
5.45 Opslaan DB-nummer in temp ................................................................................................ 43
5.46 MC_Power ............................................................................................................................. 44
5.47 MC_Reset ............................................................................................................................... 44
5.48 MC_Stop ................................................................................................................................ 45
5.49 MC_Halt ................................................................................................................................. 45
5.50 MC_Home .............................................................................................................................. 45
5.51 MC_MoveRelative ................................................................................................................. 46
5.52 MC_MoveVelocity................................................................................................................. 46
5.53 MC_ReadSysPar .................................................................................................................... 47
5.54 Insert cam ............................................................................................................................... 48
5.55 Insert Cam .............................................................................................................................. 48
5.56 Cam ........................................................................................................................................ 49
5.57 Download cam........................................................................................................................ 49
5.58 Technology ............................................................................................................................. 49
5.59 Create DB ............................................................................................................................... 50
5.60 DB3 ........................................................................................................................................ 50
5.61 MC_CamIn ............................................................................................................................. 50
5.62 Oproepen van DB-nummer .................................................................................................... 51
5.63 Insert Cam .............................................................................................................................. 51
5.64 Wizard .................................................................................................................................... 51
5.65 Type of Motion Transition ..................................................................................................... 52
5.66 Dwell to dwell ........................................................................................................................ 52
5.67 Dwell to dwell (symmetric).................................................................................................... 52
5.68 Boundary conditions (Dwell to dwell) ................................................................................... 53
5.69 Cam ........................................................................................................................................ 53
5.70 Verder uitgewerkte cams ........................................................................................................ 53
5.71 MC_GearIn............................................................................................................................. 54
5.72 Sync. Length / Desync. Length .............................................................................................. 55
5.73 Insert Measuring Input ........................................................................................................... 55
VII
5.74 Probe....................................................................................................................................... 56
5.75 Databouwstenen ..................................................................................................................... 56
5.76 Toewijzen probe ..................................................................................................................... 56
5.77 Inputs/Outputs ........................................................................................................................ 56
5.78 MC_MeasureInput ................................................................................................................. 57
5.79 Mode....................................................................................................................................... 57
6.1 Opstelling ................................................................................................................................. 58
6.2 Create new device .................................................................................................................... 59
6.3 Create new device .................................................................................................................... 59
6.4 Interface selection .................................................................................................................... 60
6.5 Hardware configuration............................................................................................................ 60
6.6 Add master system ................................................................................................................... 61
6.7 ET200S invoegen ..................................................................................................................... 61
6.8 Properties .................................................................................................................................. 62
6.9 NetPro....................................................................................................................................... 63
6.10 DP 1 ........................................................................................................................................ 63
6.11 Netpro: andere weergave ........................................................................................................ 64
6.12 Active ..................................................................................................................................... 64
6.13 Insert axis ............................................................................................................................... 66
6.14 Configure displayed data set .................................................................................................. 66
6.15 Instellen assen ........................................................................................................................ 66
6.16 Execution system.................................................................................................................... 68
6.17 BackgroundTask..................................................................................................................... 68
6.18 Program Assignment .............................................................................................................. 69
6.19 Task Configuration ................................................................................................................. 69
6.20 Global Variables en Inputs/Outputs ....................................................................................... 70
6.21 Immediate control .................................................................................................................. 70
6.22 Message .................................................................................................................................. 71
6.23 Monitoring .............................................................................................................................. 72
6.24 Programma Error1 .................................................................................................................. 73
6.25 TimeFaultBackgroundTask .................................................................................................... 73
6.26 Single Step.............................................................................................................................. 73
6.27 Trace ....................................................................................................................................... 74
6.28 Actual speed ........................................................................................................................... 74
6.29 Actual position ....................................................................................................................... 75
6.30 Insert LAD/FBD unit ............................................................................................................. 76
6.31 Insert LAD/FBD program ...................................................................................................... 76
6.32 nieuw network ........................................................................................................................ 77
6.33 Set/Reset ................................................................................................................................. 77
6.34 Insert element ......................................................................................................................... 77
6.35 Command library.................................................................................................................... 78
6.36 Command library.................................................................................................................... 78
6.37 _alm_control........................................................................................................................... 79
6.38 _alm_control........................................................................................................................... 79
6.39 Variable Declaration .............................................................................................................. 79
6.40 Periferieadres .......................................................................................................................... 80
VIII
6.41 pi_infeed en pq_infeed ........................................................................................................... 80
6.42 _alm_control........................................................................................................................... 80
6.43 _mc_stop ................................................................................................................................ 81
6.44 _mc_power ............................................................................................................................. 81
6.45 _mc_stop en _mc_reset .......................................................................................................... 82
6.46 _mc_movevelocity ................................................................................................................. 82
6.47 _Insert_Function_block .......................................................................................................... 83
6.48 Inputs/Outputs ........................................................................................................................ 83
6.49 empty box ............................................................................................................................... 83
6.50 Functieblok ............................................................................................................................. 83
6.51 Insert ST program................................................................................................................... 84
6.52 code ........................................................................................................................................ 84
6.53 Inputs/Outputs ........................................................................................................................ 85
6.54 Declareren van IO .................................................................................................................. 85
6.55 Declareren van Global Device Variables ............................................................................... 85
6.56 Usepackage cam ..................................................................................................................... 86
6.57 Invoegen FB ........................................................................................................................... 86
6.58 Functieblok aanmaken............................................................................................................ 87
6.59 Nieuw netwerk ....................................................................................................................... 88
6.60 Set/Reset ................................................................................................................................. 88
6.61 Variable Assignment .............................................................................................................. 89
6.62 Synchronised start .................................................................................................................. 89
6.63 Change Operating Mode ........................................................................................................ 90
6.64 If-voorwaarde ......................................................................................................................... 90
6.65 While ...................................................................................................................................... 91
6.66 For .......................................................................................................................................... 91
6.67 Until ........................................................................................................................................ 92
6.68 Case ........................................................................................................................................ 92
6.69 Selection ................................................................................................................................. 92
6.70 Go To...................................................................................................................................... 93
6.71 Exit ......................................................................................................................................... 93
6.72 Return ..................................................................................................................................... 94
6.73 ST Zoom ................................................................................................................................. 94
6.74 Connectie ................................................................................................................................ 95
6.75 Oproepen subroutine .............................................................................................................. 96
6.76 Verwijzing module ................................................................................................................. 96
6.77 Module ................................................................................................................................... 97
6.78 System Function Call ............................................................................................................. 97
6.79 System Function Call ............................................................................................................. 98
6.80 Instance................................................................................................................................... 98
6.81 oproepen functie blok ............................................................................................................. 98
6.82 Wait time ................................................................................................................................ 99
6.83 Parameters Wait time ............................................................................................................. 99
6.84 Wait for axis ......................................................................................................................... 100
6.85 Wait for signal ...................................................................................................................... 100
6.86 Start MotionTask ................................................................................................................. 101
IX
6.87 Interrupt task ........................................................................................................................ 101
6.88 Continue task ........................................................................................................................ 102
6.89 Reset task.............................................................................................................................. 102
6.90 Task state .............................................................................................................................. 103
6.91 Switch axis enable ................................................................................................................ 103
6.92 Home axis ............................................................................................................................. 104
6.93 Position axis ......................................................................................................................... 104
6.94 Delay program execution ..................................................................................................... 105
6.95 Transition behaviour ............................................................................................................ 105
6.96 Blending: traag - snel ........................................................................................................... 106
6.97 Blending: snel - traag ........................................................................................................... 106
6.98 Substitute: traag - snel .......................................................................................................... 107
6.99 Substitute: snel - traaag ........................................................................................................ 107
6.100 Attach: traag - snel ............................................................................................................. 108
6.101 Attach: snel - traag ............................................................................................................. 108
6.102 Attach – delete pending command: traag - snel - traag ...................................................... 109
6.103 Attach – delete pending command: traag – traag - snel ..................................................... 109
6.104 Superimpose: traag - snel ................................................................................................... 110
6.105 Superimpose: snel - traag ................................................................................................... 110
6.106 Stop axis ............................................................................................................................. 111
6.107 Speed specification ............................................................................................................. 111
6.108 Start ais position-controlked............................................................................................... 111
6.109 Continue motion ................................................................................................................. 111
6.110 Set axis parameter .............................................................................................................. 112
6.111 Synchronisation reference .................................................................................................. 113
6.112 Scoop: Time synchronisation: Absoluut ............................................................................ 113
6.113 Scoop: Time synchronisation: Relatief .............................................................................. 114
6.114 Scoop: Time synchronisation: Absoluut: Offset ................................................................ 114
6.115 Scoop: Lead axis: Absoluut: 1000° .................................................................................... 115
6.116 Scoop: Lead axis: Relatief: 1000° ...................................................................................... 115
6.117 Cam on ............................................................................................................................... 116
6.118 toevoegen cam .................................................................................................................... 116
6.119 Cam synchronisation .......................................................................................................... 117
6.120 Safety Integrated ................................................................................................................ 118
6.121 STO/SBC/SS1 via terminal ................................................................................................ 118
6.122 Safety Integrated ................................................................................................................ 119
6.123 Inputs/Outputs .................................................................................................................... 119
6.124 Digital Input ....................................................................................................................... 120
6.125 Safety function ................................................................................................................... 120
7.1 Structuur programma.............................................................................................................. 121
7.2 mcc_progX ............................................................................................................................. 122
7.3 Hoofdmenu ............................................................................................................................. 122
7.4 Motiontasks ............................................................................................................................ 123
7.5 mcc_prog1 en motiontask_1 .................................................................................................. 123
7.6 Koppelen ................................................................................................................................ 124
7.7 motiontask_2 .......................................................................................................................... 124
X
7.8 Type inkoppeling.................................................................................................................... 125
7.9 Motiontask_3 .......................................................................................................................... 125
7.10 in-/uitkoppeling .................................................................................................................... 125
Tabellenlijst
Tabel 1: Standard telegrams and Process Data .............................................................................. 16
Tabel 2: Manufacturing-specific telegrams and Process Data ....................................................... 17
Tabel 3: Manufacturing-specific/free telegrams and Process Data ................................................ 17
XI
1. Inleiding
1.1. Bedrijf: Unilin
In 1960 werd door enkele families uit de Zuid-West-Vlaamse regio in Ooigem een bedrijf
opgericht dat vlasspaanplaten produceerde. Als gevolg van het basisproduct vlas (=lin) krijgt het
de naam Unilin.
Gedurende de jaren was er een sterke groei van het bedrijf wat samen met het beperkte aanbod
van vlas ervoor zorgde dat het bedrijf ook hout begon te gebruiken als basisgrondstof in het
productieproces. Dit was dus het begin van de houtspaanplaten.
In 1973 volgde er een uitbreiding van het bedrijf. onder de naam ‘Unilin Benelux’. Hierbij werd
de productie gestart van isolerende dakelementen.
In 1988 kwam daar nog een uitbreiding bij in Nederland, ‘Unilin Mulipré’ genaamd, welke
prefab dakelementen produceerde.
In 1989 werd de producent ‘Fibrolin’ overgenomen. Dit was een producent van gemelamineerde
spaanplaten. Uit deze overname volgde de productie van laminaatvloeren onder het merk QuickStep®. In 1992 veranderde de naam Fibrolin dan in ‘Unilin Decors’.
In 1997 bracht Quick-Step® een revolutionair lijmloos geïntegreerd kliksysteem op de markt,
‘Uniclic’ genaamd. Dit systeem is knap omdat het door wentelen en schuiven geplaatst kan
worden. Het Uniclic-systeem heeft al vele awards gewonnen en is wereldwijd gepatenteerd.
In 1998 werd het bedrijf Tivapan overgenomen, wat zorgde voor een verdere uitbouw van de
gemelamineerde spaanplaten en voor een nieuwe productieactiviteit: de afwerking van
meubeldelen. Vanaf 1998-1999 stond Unilin in voor de eigen productie van MDF-platen
(Medium Density Fibreboards) welke gebruikt worden voor de gemelamineerde spaanplaten en
HDF (High Density Fibreboards) die als basis dienen voor de Quick-Step® laminaatvloeren.
Omwille van het groeipotentieel op de Amerikaanse markt werd in 2001 een vestiging van
Columbia Flooring (Thomasville) overgenomen. Deze staat in voor de productie en verdeling van
Quick-Step® laminaatvloeren binnen Noord-Amerika.
In 2003 kreeg de afdeling laminaatvloeren een nieuwe naam: Unilin Flooring. Voor deze afdeling
werd in Wielsbeke een volautomatisch opslagcenter met een capaciteit van 22.554 europaletten
opgetrokken. Eind 2003 nam Unilin een HDF-productie-unit over in Mount Gilead (VS)
waardoor Unilin op Amerikaanse bodem het enige bedrijf werd dat het volledige productieproces
van laminaat controleerde.
1
In 2005 gebeurden nog enkele overnames. Zo nam Unilin Decor ‘Hizodecor’ over en versterkte
Unilin Systems zijn marktpositie in West-Europa door de overname van Opstalan in Nederland.
Verder werd er dat jaar nog een nieuwe productievestiging gebouwd in Thomasville. Dit
hoogtechnologisch uitgerust bedrijf heeft een productiecapaciteit van 30 miljoen m²/jaar
In oktober 2005 werd de groep Unilin overgenomen door Mohawk Industries Inc.
In 2007 was er nog de integratie van een nieuwe productielijn voor samengesteld parket voor de
afdeling Unilin Flooring met 3 vestigingen in de VS en 2 in Maleisië.
In de zomer 2008 vond in Unilin Flooring te Wielsbeke een grote ombouw plaats om platen tot
2m te kunnen produceren. Deze ombouw is intussen afgerond.
2
1.2. Opbouw platen
In de afdeling Unilin flooring worden de planken gemaakt voor de gekende ‘parket’vloeren met
kliksysteem.
1.1 Laminaat vloer
Een plank bestaat uit 4 lagen en is als volgt opgebouwd.
De onderste laag is een beschermlaag om beschadiging van de bovenliggende HDF-laag tegen te
gaan, welke zou kunnen optreden bij transport van de planken, of het plaatsen ervan.
De 2de laag is de hierboven vernoemde HDF-laag ofwel High Density Fibreboard. Dit is de
dikste laag en de eigenlijke plank. Deze moet voor de mechanische sterkte van de plank zorgen.
Deze planken worden niet geproduceerd binnen Unilin flooring, maar komen binnen in grote
paletten die dan verzaagd worden in planken.
De 3de laag is de toplaag. Deze laag bepaalt het uiterlijk van de Quick-Step vloer. Dit is een
papieren laag die op de planken geperst wordt. Niet alleen wordt de laag er op geperst, maar om
de indruk te geven van een echte plankenvloer, worden zelfs de nerven van de houttekening op
deze laag ingeperst. Deze laag biedt uiteraard geen stevigheid en is zeker niet bestand tegen
krassen en andere mogelijke beschadigingen. Daarom komt er nog een 4de laag bovenop, nl. de
decorlaag. Deze laag is de bovenste laag en moet het uiterlijk van de vloer waarborgen. Deze laag
is bestand tegen krassen en zelfs tegen uitdovende sigarettenpeuken.
3
1.2 Opbouw van een plank (afgebeeld zonder klikgroef)
Nadat alle lagen er zijn, moet er langs de zijkanten van de plank nog een specifieke groef
uitgefreesd worden. Hierdoor kunnen de planken eenvoudig in elkaar geklikt worden. Dit is het
welbekende Uniclic-systeem. Dit systeem is in de figuren niet weergegeven.
Bij sommige vloeren zullen de planken mooi op elkaar aansluiten, waardoor de vloer een mooie
gladde indruk krijgt, maar bij andere vloeren is het dan weer de bedoeling dat er gleuven
zichtbaar zijn, en dan wordt er in de planken bijvoorbeeld nog een V-groef gefreesd.
1.3 Opbouw van een plank (afbeelding met V-groef)
Het gevolg van dit proces is dat er een deel van de beschermlaag weg is en er decorlaag en HDFplaat blootgesteld worden aan de buitenlucht en aan vloeistoffen. In die gleuven is er dus een
verlies aan bescherming en dit moet opgelost worden door na het frezen langs de zijkanten een
nieuwe beschermlaag aan te brengen. Dit gebeurt door een klein bandje (8mm) met een
dergelijke beschermlaag op te warmen en tegen de zijkant van de plank te drukken. Door de
opwarming van de kunststof zal deze zich aan de plank hechten. Om dit te kunnen uitvoeren moet
het bandje aan een juiste snelheid met de plank meelopen. Het bandje zelf komt van een bobijn
die afgewikkeld wordt. Om de snelheid van dit bandje te regelen moet er dus een goede regeling
voorzien worden voor de op- en afwikkelaar.
4
1.3. Op – en afwikkelaar
1.4 Schematische voorstelling afwikkelaar
1. Dit is de bobijn waarop het bandje met de beschermlaag gewikkeld is. Deze bobijn wordt
op draaisnelheid gebracht door een servomotor. Deze servomotor wordt door een
drive(dereeler) aangestuurd die de draaisnelheid regelt op basis van de wenssnelheid van
het bandje en de diameter van de bobijn. (open-loopregeling). De diameter van de bobijn
wordt berekend op basis van de lengte van het afgewikkelde bandje. De snelheidsregeling
is dus een open-loopregeling. Verder is er ook nog een closed-loopregeling die er voor
zorgt dat de danser (2) in het midden blijft.
2. Deze dancerarm dient voor de regeling van de trekkracht in het bandje tussen de bobijn en
het punt waar contact met de plank wordt gemaakt.
3. Dit is het onderdeel waar het bandje verwarmd wordt en tegen de plank geduwd wordt.
Deze module bestaat uit infraroodlampen voor de opwarming van het bandje, uit een band
die het bandje begeleidt en tegen de plank aanduwt. Verder wordt het bandje afgekoeld
door er lucht op te blazen.
4. Dit is een rol aangedreven door een asynchrone motor met een magnetische koppeling.
Deze rol verzorgt de trekkracht tussen het punt waar het bandje de plank verlaat en de
rollen.
5. Het lege bandje wordt niet meer opgerold, maar met behulp van zuigkracht naar een
versnipperaar gebracht die het lint in stukjes knipt.
5
1.4. Specifieke taken binnen deze masterproef
De regeling van deze opstelling gebeurt op dit moment met behulp van Sinamics modules en met
een Technology-PLC als bovenliggende laag. Met deze Technology-PLC kunnen de motoren
aangestuurd worden met behulp van specifieke Technology-blokken. Een eerste taak voor dit
eindwerk is het maken van een beknopte en praktische handleiding van dit systeem om binnen
het bedrijf te kunnen gebruiken om werknemers op te leiden. Een handleiding van het gedeelte
Sinamics is al ter beschikking gesteld als resultaat van het eindwerk: ‘Sinamics Servo systeem’
van Deprey Olivier en Depoorter Davy. Deze handleiding dient dus ook als basis voor de studie
rond Technology en Simotion.
Binnen Siemens is er een tegenhanger van dit systeem, ‘Simotion’ genaamd. Dit systeem biedt
specifieke voordelen naar op- en afwikkelaars toe. Er is binnen Unilin Flooring Wielsbeke nog
geen kennis omtrent deze technologie. Het is dus de bedoeling om de voordelen van dit systeem
ten opzichte van het huidige systeem te onderzoeken. Opnieuw moet hier dan een beknopte
handleiding van gemaakt worden als output voor het bedrijf.
Een ander onderdeel van het eindwerk van Olivier en Davy was het uitwerken van een
testopstelling met daarop de benodigde modules en motoren om de werking en het gebruik te
kunnen uittesten van de projecten rond Technology en Simotion. De testopstelling zal samen met
de handleidingen na het uitvoeren van dit eindwerk ook door de werknemers te Unilin gebruikt
worden om zichzelf wegwijs te maken met de verschillende systemen.
1.5 Opstelling
6
Uiteindelijk is het de bedoeling om een effectieve implementatie uit te voeren op een
testopstelling van de afwikkelaar met de Simotion module. Deze opstelling van de afwikkelaar
zal uiteraard niet dezelfde mogelijkheden bieden als een echte afwikkelaar, maar moet later als
leidraad dienen voor de implementatie op de echte wikkelaar. Indien er voldoende tijd is wordt
deze laatste stap ook voltooid binnen dit eindwerk.
7
2. Achtergrond sinamics/technology/simotion
2.1. Hardware
Sinamics S120
Dit is een modulair systeem met zowel servocontrole als vectorcontrole. Door de scheiding
tussen de vermogenmodules en de controllermodules kan het systeem gemakkelijk uitgebreid
worden. Door de eenvoudige bekabeling met behulp van Drive-CLiQ is dit een
gebruiksvriendelijk systeem. Als gevolg van de verschillende controleprincipes kan dit systeem
vele types motoren besturen zoals servomotoren, inductiemotoren, lineaire motoren en
torquemotoren. Eenzelfde systeem kan dus gebruikt worden voor vele machineapplicaties.
S7-300 Technology CPU’s
Met behulp van deze module is extra hard- en software niet nodig door de implementatie van
Technology en motion functions in de standaard PLC. Verder zijn er high-speed digitale
inputs/outputs aanwezig en zijn er 2 PROFIBUS DP aansluitingen aanwezig, waarvan één als
isochrone bus kan worden geconfigureerd. Doordat gebruik gemaakt wordt van Step7 om te
programmeren kan er opnieuw gebruik gemaakt worden van bestaande Step7-programma’s en
moeten deze niet herschreven worden. De PLC die in deze opstelling gebruikt wordt is het type
317T.
Simotion D435 module
De Simotion D435 module is een uiterst compacte module welke motion control combineert met
een geïntegreerde PLC-functie volgens IEC 61131-3. Er kan gebruik gemaakt worden van
PROFIBUS als veldbus naar de omliggende modules (zoals het ET200S eiland of HMItoepassingen), maar er zijn ook 2 ethernetaansluitingen voorzien. Het configureren gebeurt net
zoals bij de Sinamics modules in de scout. Het programmeren gebeurt nu niet meer in Step 7
maar wel in de scout, dus door de controller die mee geïntegreerd zit in de Simotion module. De
PLC die in de Simotion module aanwezig is, is vergelijkbaar met een 318T-PLC en is dus nog
een stuk krachtiger dan de 317T-PLC die apart bij de opstelling zit.
8
2.2. Software (scout, simatic)
Step7
Indien gebruik gemaakt wordt van een Technology-PLC als
bovenliggende controller bij een applicatie, dan moet er
geprogrammeerd worden in Step7. Het schrijven gebeurt in STL.
Het uitvoeren van een programma gebeurt als volgt. Op het
moment dat de PLC in run gaat, zal er een initialisering gebeuren
via bv OB100. Na de initialisering zal de Process Image Inputtable
geupdate worden. Deze is verbonden met de digitale
ingangsmodules. Vervolgens zal het programma uitgevoerd
worden met behulp van organisatiebouwsteen OB1. In deze OB
zullen de verschillende functies en functieblokken opgeroepen
worden. Vervolgens zal de Process Image Outputtable geupdate
worden, welke verbonden is met de digitale outputmodules. De
laatste 3 stappen worden herhaald (cyclische werking).
STL
De programmeertaal in Step7 is STL. Dit is een taal eigen aan
Siemens en is niet gestandaardiseerd volgens de IEC 61131-3-norm.
2.1 Programmaverwerking Step7
2.2 STL
9
Simotion scout
In Simotion scout gebeuren de configuratie en instellingen van de drives en de assen. Deze
processen worden via een wizard gestuurd, waardoor deze erg gebruiksvriendelijk zijn. Ook
kunnen in de scout met behulp van een control panel de assen aangestuurd worden bij wijze van
test. In het geval dat er gewerkt wordt met een Simotion module, zal de programmatie ook
doorgaan in de scout. In tegenstelling tot Step7 kunnen de
programma’s hier geschreven worden met behulp van 4
programmeertalen die allemaal gebaseerd zijn op de IEC 611313-norm zijnde, LAD/FBD, ST, MCC en DCC. De verwerking
van de code verloopt vrij identiek aan deze van Step7. Zo zal er
bij het opstarten een starttask opgeroepen worden, waarin
eenmalig een programma uitgevoerd wordt. Vervolgens start de
backgroundtask. Dit is een cyclische task vergelijkbaar met OB1
in Step7. Net zoals bij OB1 functies en functieblokken
opgeroepen worden, zullen vanuit de backgroundtask andere
niet-cyclische tasks opgeroepen worden. Dit zijn bv motiontasks.
Tot daar verloopt alles gelijkaardig aan Step7. Maar er is echter
wel een verschil in de uitvoering van opgeroepen codeblokken.
Stel dat bij Step7 2 functies opgeroepen zijn, dan zal eerst de
eerste functie uitgevoerd worden en nadat die code doorlopen is
ook de tweede functie. Bij Simotion scout daarentegen kunnen
meerdere motiontasks parallel werken. Een task die dus
opgeroepen wordt tijdens de werking van een andere task, kan
net zo goed doorlopen worden.
2.3 Programmaverwerking Scout
2.4 Uitvoering: Serieel tov parallel
10
LAD/FBD
Ladder en Function Block Diagram zijn bekende grafische programmeertalen die in de meeste
PLC’s standaard gebruikt worden als programmeertaal.
FBD is een schema bestaande uit functies en functieblokken waar ingangs- en uitgangsvariabelen
aan gekoppeld zijn. De uitgang van een blok kan uiteraard ook gekoppeld zijn aan de ingang van
een andere blok.
LAD is een programmeertaal die erg populair is bij het programmeren in PLC’s. LAD is eigenlijk
een groep van erg gelijkaardige talen. Een programma geschreven in LAD van één producent kan
verschillen van dat van een andere producent. De IEC 61131-3 standaard heeft hierbij wel al veel
verbeteringen aangebracht.
2.5 FBD
ST
Structured Text is een bekende textuele programmeertaal. Het grootste voordeel van ST is de
hoge flexibiliteit die geboden wordt.
2.6 ST
11
MCC
Specifiek voor Simotion is nu ook een andere grafische taal ontwikkeld, zijnde Motion Control
Chart (MCC). Dit is een taal die het programmeren een stuk overzichtelijker maakt. Het
programma heeft een flowchart vorm, waardoor deze taal zich specifiek leent tot sequentiële
bewegingen. Er is een heel ruim assortiment aan symbolen beschikbaar die nodig zijn om rap en
efficiënt een project te kunnen automatiseren.
2.7 Motion Control Chart
DCC
DCC staat voor Drive Control Charts. Het is een grafische programmeertaal, ontwikkeld door
Siemens, die in 2007 op de Hannover Messe werd voorgesteld. Een voordeel van DCC is het feit
dat het mogelijk is om drives aan te sturen zonder dat er nood is aan een bovenliggende
controller. Het is een ideale taal om eenvoudige taken mee uit te voeren. DCC bevat een eigen
bibliotheek waarin naast de standaardfuncties ook complexe functies aanwezig zijn zoals
rekenkundige functies.
2.8 Drive Control Chart
12
2.3. Voordelen/nadelen
Een eerste belangrijk voordeel van Simotion is het feit dat de verbinding tussen de Simotion
controller en de Sinamics drives geschiedt via een intern subnet, een interne PROFIBUS DP
verbinding. Het voordeel van deze interne verbinding is dat er niet meer moet worden
meegegeven naar welk toestel de informatie verzonden moet worden. Het gevolg hiervan is dat
de protocoloverhead beperkter wordt, waardoor de boodschappencyclus een stuk korter is. Ook
moet de master (CU320) niet meer pollen naar de slaves, waardoor opnieuw de communicatie
sneller verloopt.
Ook de bekabeling tussen de verschillende Sinamics modules verloopt eenvoudig. Zo zal er
gebruik gemaakt worden van een universele Drive-CLiQ interface. Deze kabel herkent zelf de
motoren en encoders die hiermee verbonden zijn en geeft de kenplaatgegevens door bij het
configureren. Hierdoor moet dit niet handmatig, kunnen met dezelfde kabel verbonden worden.
In tegenstelling tot de opstelling waarbij gebruik gemaakt werd van de Technology CPU kan bij
de Simotion opstelling alles geprogrammeerd en geconfigureerd worden in één en hetzelfde
programma. In plaats van te programmeren in de Simatic manager (Step7) en te configureren in
Simotion scout gebeurt met Simotion nu alles in Simotion scout.
Een ander voordeel is het feit dat de Simotion module heel compact is waardoor veel minder
plaats nodig is in de stuurkasten en door de combinatie van motion control en de geïntegreerde
PLC-functie kan met deze module de volledige machinebesturing gerealiseerd worden.
Het feit dat alles in 1 module geïntegreerd en verweven zit, heeft zo zijn voordelen, maar ook zijn
nadelen. Doordat alles overal aangepast kan worden en er zoveel mogelijkheden zijn bij het
aanpassen van instellingen, wordt het systeem wel redelijk complex. Het werken met een
Simotion module wordt niet van dag op dag geleerd. Er moet wat oefening aan vooraf gaan.
Eenmaal het werken met deze module in de vingers zit, is het mogelijk om rap en efficiënt een
applicatie aan te sturen.
13
3. Communicatie binnen opstelling
3.1. Profibus DP
De communicatie tussen het ET200S-eiland, de Technology PLC en de Simotion module
verloopt over Profibus. Dit is in Europa het meest gebruikte open veldbussysteem en
gestandaardiseerd in de EN50170. Toestellen die aan deze norm voldoen, kunnen zonder extra
hardware aan elkaar gekoppeld worden. Het is een digitaal datacommunicatiesysteem dat toelaat
om met relatief veel componenten een 2-aderige kabel te delen, waardoor er flink bespaard wordt
in de bekabeling en installatiekosten. Dit levert ook andere voordelen op zoals een vermindering
van de voorraadcomponenten, eenvoudiger tekeningen, een kortere testtijd en een eenvoudiger
onderhoud. Dit bussysteem laat toe dat de meest verschillende type toestellen met elkaar kunnen
communiceren doordat het gebaseerd is op het ISO 7-lagenmodel en op het internationale
Machine Automation Protocol.
Binnen dit eindwerk wordt gebruik gemaakt van Profibus DP (Decentral Periphery) welke een
tijds-geoptimaliseerde versie is van Profibus. Minder protocol overhead wordt gebruikt waardoor
de cyclustijden gereduceerd kunnen worden. Het is dus een zeer snel systeem. Profibus DP
definieert overigens enkel laag 1 en 2 van het OSI-model wat opnieuw snelle en efficiënte
dataoverdracht verzekert. Dit systeem wordt het meest toegepast in de productieautomatisering,
waar snelheid en plug-and-play centraal staan. Om aan de specifieke eisen van de gebruikers te
voldoen, wordt het OSI-model uitgebreid met een gebruikerslaag en profielen. Deze profielen
zijn vaak ontworpen, specifiek voor een bepaald applicatiegebied.
3.1 Profibus DP kabel
14
Laag 1: Fysische laag
Een belangrijke transmissietechniek bij Profibus DP is RS 485. Hierbij wordt gebruik gemaakt
van het differentieelprincipe. Een ‘1’ komt overeen met een positieve spanning op de ene lijn ten
opzichte van de andere lijn. Op het einde van de bus zijn actieve afsluitweerstanden aanwezig
welke de reflecties moeten tegengaan. Op één segment van een Profibuskabel kunnen 32
busdeelnemers aangesloten worden. Stel dat er meer deelnemers aangesloten moeten worden, dan
moet er gebruik gemaakt worden van een repeater, waardoor tot 126 stations aangesloten kunnen
worden. Het is mogelijk voor de gebruiker om (voor de kabel: hier plaatsen) een snelheid in te
stellen voor de kabel die ligt tussen 9,6 kbit/s tot en met 12 Mbit/s.
3.2 Snelheden bij RS 485
Ook glasvezel kan gebruikt worden als transmissiemedium voor Profibus DP, maar dit eerder in
geval van het overbruggen van grote afstanden of als er gewerkt wordt in een omgeving met
grote elektromagnetische storingen. De mogelijkheid bestaat om van RS485 naar glasvezel over
te gaan en omgekeerd.
Laag 2: Datalinklaag
De 2de laag in het OSI model is verantwoordelijk voor de toegangscontrole tot de bus. In de
onderste helft van de datalinklaag ( de medium access control layer ) wordt het recht van zenden
bepaald. De methode hiervoor is de Hybrid Access Method. Dit is een combinatie van token
passing en de master-slave methode. De communicatie tussen master en slave gebeurt met een
pollingsmethode waarbij de master naar de verschillende slaves een master-request stuurt. De
slave waarvoor deze request bestemd is, zal dan antwoorden met een bevestiging. De request en
de bevestiging vormen dan samen de boodschappencyclus. Indien er meerdere masters aanwezig
zijn, wordt een logische token ring gevormd met deze masters waarbij elke master een bepaalde
werkingstijd verkrijgt om aan master-slave communicatie te doen met zijn slaves. Profibus DP
zal wel voornamelijk ingezet worden in een single-master configuratie omdat in dit geval de
kortste reactietijden te realiseren zijn.
15
Profielen
Om data over te brengen zijn er bij Profibus verschillende standaardprofielen voorzien. Deze zijn
terug te vinden op Tabel 1. De eerste 6 zijn de belangrijkste profielen. Elk profiel heeft zijn eigen
mogelijkheden. Zo zal elk profiel een stuurwoord (STW) hebben en een statuswoord (ZSW). De
meeste telegrams zullen zelfs een 2de stuur- en statuswoord hebben om extra info te kunnen
overdragen. In deze woorden bevinden zich o.a. de enables die hoog moeten staan om de as te
kunnen laten draaien. In het 2de statuswoord bevindt zich o.a. een bit ‘Parking axis’ die, indien hij
hoog staat, kan verhinderen dat een as kan draaien. Behalve status- en stuurwoorden hebben de
meeste telegrammen ook een wenssnelheid (NSOLL) en een werkelijke snelheid (NIST).
Sommige telegrammen zijn voorzien van één of meerdere woorden voor encoderdata. Indien bij
de assen telegram 5 of 6 genomen worden in plaats van 3 of 4. In dit geval is er plaats voorzien in
de telegrammen voor een versterkingsfactor (KPC) en een positiedeviatie (XERR). De werking
van DSC staat uitgelegd onder paragraaf 5.3 venster: Drive assignment (P 22)
Tabel 1: Standard telegrams and Process Data
Er zijn ook telegrammen die niet gestandaardiseerd zijn. Deze telegrammen zijn specifiek van
Siemens en hebben een nummer boven de 100 (Tabel 2). De telegrammen 102 tot 106 zijn
eigenlijk dezelfde telegrammen als telegram 2 tot 6, maar zijn aangevuld met extra data, meer
bepaald een koppelreductie (MOMRED en MELDW). Deze koppelreductie wordt gebruikt in
situaties waarbij een bepaalde as maar een bepaald koppel mag leveren, zoals bijvoorbeeld bij
een dancerarm die een laag maximaal koppel heeft om de spanning op bv. een lint op peil te
houden.
16
Tabel 2: Manufacturing-specific telegrams and Process Data
Verder zijn er ook nog telegrammen om een infeed aan te sturen zoals telegram 370. Dit telegram
bevat alleen een stuur- en statuswoord (E_STW en E_ZWS). De E staat daarbij voor Einfeed. De
telegrammen voor de control unit (390, 391, 392) kunnen gebruikt worden om de digitale
ingangen en uitgangen van de CU rechtstreeks aan te spreken.
Tabel 3: Manufacturing-specific/free telegrams and Process Data
17
3.2. Drive-CLiQ
De communicatie tussen de verschillende Sinamics modules en de Simotion module loopt via
Drive-CLiQ. Dit is een real time seriële interface, gebaseerd op de 100Mbs ethernet technologie,
die zorgt voor een directe verbinding tussen de motoren en de drives. Een sterke eigenschap van
deze aansluiting is de herkenning van motoren of ‘Elektronic Name Plating’ genaamd. De
kenplaat van een Drive-CLiQ motor wordt direct herkend en doorgegeven bij de configuratie.
Hierdoor is het niet meer nodig van de kenplaatgegevens van de motor handmatig in te geven en
wordt er dus bespaard. Ook vermindert hierdoor de kans op fouten tijdens de configuratie. Ook
de motorencoder wordt herkend en toegevoegd aan de configuratie. De voeding van de encoders
is geïntegreerd in de kabel. Eén type kabel volstaat dus voor de verbinding van alle driveverbindingen (drive-drive, drive-motor, drive-encoder).
Om Drive-CLiQ te gebruiken kan dus gebruik gemaakt worden van Drive-CLiQ producten zoals
motoren en encoders, maar de mogelijkheid bestaat ook om adaptors te gebruiken voor nietDrive-CLiQ componenten zodat deze toch aan het Sinamics systeem gekoppeld kunnen worden.
3.3 Drive-CLiQ
4. Handleiding Sinamics
Zie eindwerk ‘Sinamics Servo systeem’ van Deprey Olivier & Depoorter Davy
18
5. Handleiding Technology
5.1 Opstelling
5.1. Aanmaken nieuw project
Zie handleiding Sinamics Servo-systeem van Deprey Olivier en Depoorter Davy
5.2. Toevoegen en configureren drive en infeed
Voor de configuratie van drives en infeed wordt verwezen naar de handleiding Sinamics Servosysteem van Deprey Olivier en Depoorter Davy waar de stappen bij het configureren beschreven
staan.
19
5.3. Instellen van de assen:
Nadat de drives en de infeed op Sinamics niveau geconfigureerd zijn, bestaat de mogelijkheid om
de assen te testen met behulp van het control panel. Hiermee kan een as aan een bepaalde
snelheid lopen. Het control panel is terug te vinden onder:
Technology/Sinamics_S120_CU320/Drives/Drive…/Commisioning/Control Panel
Om met het control panel een positiesturing uit te voeren of om de assen met behulp van een
programma aan te sturen moeten nu ook de assen geconfigureerd worden. Het invoegen van een
as is te vinden in de treeview onder: Technology/Axes/Insert Axis. Benoem vervolgens de as en
geef aan waarvoor deze gebruikt zal worden. Dit kan zijn voor snelheidssturing, positiesturing of
synchrone sturing (koppelen van 2 assen). Indien synchronous operation aangevinkt wordt, zal
het mogelijk zijn om deze as als slave te laten fungeren. Deze as kan dan gekoppeld worden als
slave aan de andere assen in geval van camming of gearing.
5.2 Axis: configuration
Klik op OK. Vervolgens verschijnt een venster van waaruit de eigenlijke configuratie start. Bij
het verdergaan moet in het daaropvolgende venster het type as aangegeven worden.
5.3 Axis type
20
In deze opstelling is er sprake van een rotatieve elektrische motor. Een virtuele as wordt vaak
gebruikt voor het geval meerdere assen gelijk moeten lopen en er geen servomotor aanwezig is
om als master te dienen. In het daaropvolgende venster worden de eenheden van de grootheden
van de as weergegeven. Ga verder.
In het venster ‘Modulo’ kan de modulo aangegeven worden. Hierbij wordt gespecifieerd tot
hoever de encoder blijft tellen zonder terug op 0 te vallen. Standaard staat dit ingesteld op 360°.
Praktisch betekent dit dat bij absolute positionering niet verder kan gegaan worden dan 360°. Een
toepassing is bvb een transportband waarbij de modulo dan lineair ingesteld wordt op de lengte
van de transportband.
5.4 Modulo
Vervolgens moet een drive aangewezen worden. Bovenaan dit venster kan de drive unit gekozen
worden. Ook moet geklikt worden op ‘Align SINAMICS devices’. Gevolg hiervan is dat de IOadressen van de module toegekend worden. Dit is identiek aan de actie ‘transfer to hardware
config’ te vinden in het scherm configuration onder SINAMICS_S120_CU320 in de treeview.
Het messageframe werd eerder al gekozen, maar kan hier aangepast worden. Onder de keuze
voor het messageframe kan er aangeduid worden of er gebruik gemaakt wordt van Dynamic
Servo Control (DSC) of niet. Bij een motor zonder DSC zal de snelheidslus in de drive en de
positielus in de controller geregeld worden. Het gevolg hiervan is dat beide lussen met een
verschillende klok werken. Door DSC toe te passen zal de positieregelaar naar de drive
gekopieerd worden. Door nu met eenzelfde klok te werken (betere respontietijd) kan er een
hogere versterkingsfactor gebruikt worden waardoor de dynamica van de opstelling er op vooruit
gaat. Als een externe encoder gebruikt wordt is het niet mogelijk DSC toe te passen omdat de
aansluiting van deze encoder opnieuw op een andere klok werkt dan de regelaars, wat het effect
van DSC dus tegenwerkt.
21
5.5 Drive assignment
Vervolgens moet nog op ‘Data transfer from the drive’ geklikt worden. Dit moet omdat de
parameters die gewijzigd werden nadat de eerste keer online gegaan werd nog niet opgeslagen
zijn. De eerste keer dat er online gegaan wordt zal dit automatisch door de Drive-CliQ gebeuren.
Ook bij het veranderen van een motor moet dit gebeuren.
In het volgende venster moet de encoder aangewezen worden. Hierbij moet aangegeven worden
waar de encoder geplaatst is. De sinamics_S120_CU320 is de interne encoder van de servomotor.
Opnieuw kan het messageframe hier aangepast worden. Verder kan een keuze gemaakt worden
tussen een ‘incrementele encoder’, een ‘absolute encoder’ en een ‘absolute encoder, cyclic
absolute’. Vervolgens moet in dit geval ook aangeduid worden dat er gebruik gemaakt wordt van
een Endat encoder. Als laatste moet ook nu weer op ‘Data transfer from the drive’ geklikt
worden.
5.6 Encoder assignment
22
In het daaropvolgende venster zijn gegevens vermeld in verband met de encoder. Deze zijn
standaard ingevuld. De ‘Encoder pulses per revolution’ (2048 11 bits) zijn het aantal pulsen
per toer. Deze encoder kan 4096 toeren draaien. Dit is gelijk aan 12 bit data. Samen levert dit dus
23 bits aan informatie op wat opgegeven staat in ‘Data width of absolute value without fine
resolution’. De ‘Fine resolution’ is een vermenigvuldigingsfactor (zie help) en de ‘Fine
resolution of absolute value in Gn_XIST2’ is een waarde die per omwenteling opgeteld wordt bij
de encoder.
5.7 Encoder data
Vervolgens wordt nog een overzicht getoond van de huidige eigenschappen van de as, drive en
encoder. De voorgaande gegevens kunnen in later stadium nog gewijzigd worden door in de
configuratie van de as op ‘configure displayed dataset’ te klikken.
5.8 Configure displayed dataset
23
Nu kunnen nog allerlei instellingen gedaan worden. Deze zijn terug te vinden in de treeview in de
tak van de aangemaakte as.
Axis/Configuration
Dit is een weergave van de huidige ingestelde gegevens van de as, drive en encoder.
5.9 Configuration
Axis/Mechanics
Met de 2 vinkjes links bovenaan kan de richting van de as bepaald worden door deze beide aan of
uit te zetten.
Bij ‘mounting of encoder’ kan aangeduid worden waar de encoder zich bevindt. Dit is
aangegeven in het rood ( in dit geval aan de motorzijde )
5.10 Axis: Mechanic
24
Axis/Default
In dit tabblad kunnen parameters zoals jerk, acceleration en snelheid ingesteld worden. Ook kan
het profiel gekozen worden van het verloop. Op figuur 5.11 is een trapezoïdaal verloop te zien,
maar met ‘smooth acceleration characteristic’ kan een glijdende overgang bekomen worden.
5.11 Axis: Default
Axis/Limits
Tabblad: Position and velocity
Hier worden de positiegrenzen vastgelegd. Er bestaan softwarematige grenzen en
hardwarematige grenzen. De grenzen moeten zo vastgelegd worden dat de softwarematige
grenzen enger zijn dan de hardwarematige grenzen, dit voor de veiligheid van de opstelling. In
het omgekeerde geval zou een as bv niet verder kunnen lopen, terwijl het programma dit toch eist
en dan loopt het fout.
5.12 Axis: Position and velocity
25
Tabblad: Dynamic response
In dit tabblad worden de versnelling en jerk ( impuls ) vastgelegd. Wat het vastleggen van de
limits betreft, gelden hier dezelfde regels als bij het tabblad: ‘Position and velocity’
5.13 Axis: Dynamic response
Tabblad: Fixed endstop
In dit tabblad kan gekozen worden of de as die op zijn einde gelopen is stopgezet moet worden
op basis van een volgfout in koppel, kracht of geen van beide.
5.14 Axis: Fixed endstop
26
Axis/Closed-loop control
In deze tabbladen kunnen de regelaars manueel ingesteld worden of met behulp van een
selftuning. Het manueel regelen van de regelaars is nattevingerwerk en berust vooral op ervaring.
Indien er weinig ervaring omtrent regeltechniek aanwezig is, wordt een selftuning aangeraden.
Selftuning wordt uitgelegd in paragraaf 5.5
5.15 Axis: Closed-loop control
27
Axis/Homing
Het homen van een as is het vastleggen van een nulreferentie. Een motor met incrementele
encoder zal in tegenstelling tot een motor met absolute encoder bij het wegvallen van de spanning
zijn positie verliezen. In sommige situatie is het belangrijk dat deze positie geweten is en dan
moet er gehomed worden. Er zijn verschillende manieren om te homen. Zo kan er actief gehomed
worden en dan zal de motor tot een bepaalde grens gaan en dan in tegengestelde richting zoeken
naar het referentiepunt. Er is ook een passieve homing mogelijk waarbij de as zijn homepunt vast
legt op moment dat het bv een bepaalde sensor passeert. Dat punt wordt dan het referentiepunt.
De verschillende snelheden doorheen deze procedures kunnen hier vastgelegd worden. Op
onderstaande figuur is ook nog op te merken dat de mogelijkheid bestaat om een homing
verplicht te maken (‘Homing required’). Deze optie wordt soms gebruikt in situaties waarbij een
as die niet gehomed is voor een onveilige situatie kan zorgen. In deze gevallen kan dit aangevinkt
worden en dan kan de as nooit draaien vooraleer een homing doorgevoerd is.
5.16 Axis: Homing bij een motor met incrementele encoder
28
Axis/monitoring
Tabblad: Positioning and Standstill
Hier worden de grenzen bepaald bij het positioneren van de as.
‘Positioning window’ is het positieverschil tussen de trajectgenerator en de motorpositie op het
moment dat de trajectgenerator zijn doelpositie bereikt.
‘Positioning time’ is het maximum tijdsverschil tussen het bereiken van de doelpositie van de
trajectgenerator en het bereiken van de doelpositie van de motor.
‘Standstill window’ is het maximum positieverschil tussen de trajectgenerator en de motor bij
stilstand.
‘Tolerance time (when leaving standstill window)’ is de maximum tijdsspanne in s waarbij een as
toch buiten het standstill window mag gaan.
‘Minimum dwell time’ is het minimum tijdsinterval in s dat na het binnentreden van het
positioning window moet optreden zonder dat het signaal opnieuw het positioning window
verlaat. Als het minimum tijdsinterval voorbij is, dan is dit een teken dat de motionopdracht
voldaan is en zal er een Motion_done signaal gegeven worden naar de desbetreffende
functieblok.
5.17 Monitoring: Positioning and standstill
29
Tabblad: Following error
In dit tabblad kan de maximum volgfout ingesteld worden bij bepaalde snelheden. Bij ‘Maximum
perm. following error’ wordt de uiterste volgfout opgegeven. Onder een bepaalde snelheid is er
een ‘Constant following error’. Vanaf een bepaalde snelheid ‘Minimum velocity for dynamic
following error monitoring’ neemt de fout proportioneel toe met de snelheid.
5.18 Monitoring: Following error
Tabblad: Standstill signal
De positieverandering bij stilstand kon eerder al aangepast worden bij het tabblad ‘Positioning
and standstill’. In dit tabblad kunnen snelheidscriteria opgegeven worden voor standstill situaties.
Zo kan het venster aangeduid worden bij ‘Velocity threshold standstill signal’ waarbinnen de
snelheid moet gaan en kan bij ‘signal output delay time’ de tijd opgegeven worden die moet
optreden tussen het binnenkomen van de snelheid in het gedefinieerde venster en de tijd dat de as
stil staat.
5.19 Monitoring: Standstill signal
30
Tabblad Velocity error
5.20 Velocity error
Hier kan aangevinkt worden of er een monitoring moet komen van de snelheidsfout of niet.
Save and compile het project
ga online en ‘load project to target system’
. Zorg er voor
dat er geen fouten meer zijn en dat het connectiesymbooltje in de treeview volledig groen is. De
servomotoren kunnen bij wijze van test aangestuurd worden met behulp van het control panel
(prargraaf 5.4). In paragraaf 0 zal verklaard worden hoe dit via een programma gedaan kan
worden.
31
5.4. Aansturing via Control panel
Klik op “Assume control priority”
5.21 Control panel
Dan wordt een foutmelding verkregen waarin gezegd wordt dat ofwel de CPU niet in stop is of
de I/O-outputs enabled moeten worden. Klik op cancel.
5.22 Device in incorrect state
Het controleren of de CPU in stop is kan gedaan worden door naar de operating mode te gaan.
Dit kan gedaan worden door op de CPU (CPU 317T-2DP) te gaan staan en Ctrl I te typen. De
operating mode wordt weergegeven. Indien de CPU niet in stop staat, kan dit hier aangepast
worden.
5.23 Operation Mode
32
Indien de CPU al in stop staat, dan moeten de periferie outputs via een ‘Variable Table’ (VAT)
op enable gezet worden in de Simatic manager..
Ga hiervoor naar de Variable Table en zet deze online. Via ‘Variable’ / ‘Enable peripheral
Outputs’
5.24 Enable Peripheral Outputs
5.25 Waarschuwing
Klik op ‘Yes’
Ga naar het control panel en klik opnieuw op “Assume control priority” en klik op “Accept”
33
Vervolgens moet op de knop ‘Set/Remove enables’ geklikt worden. Het daaropvolgende kader
mag bevestigd worden.
5.26 Control panel: Set / Remove enables
5.27 Switch axis enable
Met het control panel kunnen nu bepaalde basisopdrachten vervuld worden.
5.28 Control panel
34
Met knop 1 “Speed-controlled traversing of the axis” zal de as aan een bepaalde snelheid
beginnen lopen en stoppen wanneer op de rode stopknop geklikt wordt.
Met knop 2 “Position-controlled traversing of the axis” zal de as aan een bepaalde snelheid
beginnen lopen en stoppen wanneer op de rode knop gedrukt wordt. Het verschil tussen speedcontrolled en position-controlled ligt in het feit dat bij de mode position-controlled de as de
vooropgestelde positie zal willen behouden. Dit komt neer op een correctie van de as in het geval
dat de as tegengehouden wordt.
Met knop 3 “Relative/Absolute positioning” kan er aan basispositionering gedaan worden. De in
te vullen parameters spreken voor zich.
De parameters voor de basispositionering kunnen nu ingevuld worden zoals te zien op figuur
5.29. De positie kan ingevuld worden, het type positionering ( relatief of absoluut ) en de
snelheid bij het positioneren. In het tabblad ‘Dynamic response’ kunnen dan parameters zoals
versnelling en jerk aangepast worden. Als alle parameters ingevuld zijn kan de positionering
gestart worden met behulp van de groene startknop.
5.29 Positioning axis
Knop 4 dient om een homing uit te voeren. Met actief homing kan gekozen worden aan welke
snelheid de homing uitgevoerd dient te worden.
De knop naast de start/stopknoppen is de Jogknop. Hiermee kan de motor joggen aan een
bepaalde snelheid zolang als de knop ingedrukt is.
35
5.5. Selftuning
Om een optimale regeling te bekomen van de assen zal een tuning van de regelaars nodig zijn.
Dit kan handmatig gebeuren, maar het vergt veel ervaring om dit naar behoren uit te voeren. Een
andere manier is om een selftuning uit te voeren waarbij de regelaars zichzelf ‘testen’ volgens
een bepaalde procedure en zo de ideale parameters voor de regelaar proberen te bekomen. De
regelaars die getuned zullen worden zijn de positie- en de snelheidsregelaar. Een selftuning van
de positieregelaar is wel enkel mogelijk in het geval dat de motor gebruik maakt van Dynamic
Servo Control (zie instellen van een as).
Eerste moet altijd de snelheidsregelaar getuned worden. Deze regelaar is terug te vinden onder:
D435/Sinamics_Integrated/Drives/Drive…/Open-loop/close-loop control/Speed controller.
5.30 Speed controller
De snelheidsregelaar is een PI-regelaar, dus de parameters die aangepast zullen worden zijn een
versterking en een integratieconstante. Deze parameters zijn hier Pgain en Reset time
(integratortijd). Het uitvoeren van de selftuning gebeurt via ‘Closed loop control’ bij de
desbetreffende as in het Technology gedeelte. Op dit blad is de positieregelaar te zien. De
versterkingswaarde van deze regelaar staat standaard op 10.0. Deze zal na een tuning van de
positieregelaar gewijzigd worden.
36
5.31 Axis: Closed-loop control
Ga vervolgens online en via de knop ‘Controller setting…’ zal het blad ‘trace’ verkregen worden.
(figuur 5.33). Mogelijks is dit niet het geval en wordt een rode tekst weergegeven:
5.32 Axis: Closed-loop control
In dit geval is het best om het blad trace af te sluiten en opnieuw open te doen. Indien dit niet
helpt kan het helpen van ook het closed-loop control blad af te sluiten en opnieuw te starten. Een
andere mogelijkheid is van offline te gaan en opnieuw online te gaan. Van zodra het correcte
scherm bekomen wordt, moeten de juiste drive en de juiste controller geselecteerd worden. Kies
als eerste voor de speedcontroller.
5.33 Trace
37
Klik dan op de knop “Assume Control Priority” en vervolgens op “Accept”. Zet dan de drive aan
met de groene startknop. Klik daarna op de knop ‘Perform all steps’ welke aangegeven staat op
figuur 5.34.
5.34 Self tuning
Er verschijnt een waarschuwing: ‘Automatic controller setting’ die bevestigd mag worden. Na
deze waarschuwing zullen 2 stappen voltooid worden waarna opnieuw een gelijkaardige
waarschuwing verschijnt die bevestigd mag worden.
Als de 4 stappen voltooid zijn, zijn de berekende waarden af te lezen. Deze verschillen met de
huidige waarden en moeten nu nog opgeslagen worden. Klik daarvoor onderaan het scherm op de
knop ‘Accept’. Er verschijnen dan instructies.
5.35 Settings overnemen
Klik op “Yes”. Nu gaan de huidige waarden in de tabel vervangen worden door de berekende
waarden, maar ze zijn nog niet opgeslagen.
38
Voer de opgegeven instructies uit.
1. Klik op “drive off” ( rode knop)
2. Klik op “Give up control priority”
3. Copy RAM to ROM…
Het is belangrijk dat stap 3 en 4 uitgevoerd worden via ‘sinamics_S120_CU320’ of in het
geval van Simotion via ‘Sinamics_Integrated’.
4. Load to PG…
5. Klik nu op “save”
Ga nu naar de speedcontroller. Daar staan nu de online waarden die berekend werden tijdens de
tuning. Indien nu offline gegaan wordt, moeten dezelfde waarden blijven staan. Indien niet, dan is
de procedure om de nieuwe parameters op te slaan niet goed uitgevoerd.
Indien de as beschikt over Dynamic Servo Control (DSC), dan kan ook de positieregelaar
getuned worden. Dit is een identieke werkwijze, maar er worden maar 2 stappen uitgevoerd
tijdens de tuning. De versterkingswaarde die daar standaard staat (10.0) zal nu gewijzigd worden.
Bij de procedure voor het opslaan moet er een extra stap uitgevoerd worden.
1. Klik op “drive off” ( rode knop)
2. Klik op “Give up control priority”
3. Copy current data to RAM…
Stap 3,4 en 5 moeten hier gebeuren via ‘Technology’ of via ‘D435’.
4. Copy RAM to ROM…
5. Load to PG…
6. Klik nu op “save”
Controleer na deze procedure opnieuw offline of de berekende versterkingswaarde opgeslagen is.
De versterking zou sterk moeten gestegen zijn.
39
5.6. Aansturing via programma (STL)
Het control panel is een goede manier om een geconfigureerde as te testen. In deze paragraaf zal
uitgelegd worden hoe een programma gecreëerd kan worden en hoe de belangrijkste Technology
blokken gebruikt moeten worden.
5.6.1. Basisblokken
Ga naar de Simatic manager.
De technology blokken, binnen het programma gebruikt, moeten opgeroepen worden. Open de
map ‘Technology’ in de treeview onder S7 program.
Dubbelklik nu op ‘Technology Objects’. Bij het configureren van bv een as of een encoder zal er
onderaan de pagina een DB verschijnen. Deze moet in de ‘block folder’ gebracht worden. Dit
gebeurt door op de knop ‘create’ te klikken. De Db’s onderaan zullen naar boven verhuizen. Bij
elke wijziging in de hardwareconfiguratie worden best alle blokken gedelete en dan opnieuw
gecreate.
5.36 Create DB’s
Nu kunnen de functieblokken voor het bedienen van de motor opgehaald worden uit de library’s.
Klik hiervoor op ‘Technology objects’ ‘Open’
40
5.37 Aanmaken Technology objects
Klik dan op OK.
Vervolgens moet de bibliotheek geopend worden. Dit gaat via File/Open. Ga vervolgens naar het
tweede tabblad ‘Library’ en dubbelklik op ‘S7-Tech’.
5.38 Library
Er wordt een melding gegeven die bevestigd mag worden. Vervolgens moet een juiste versie
gekozen worden welke hier S7-Tech V3_0 is. Dubbelklik hierop.
41
5.39 Library: versie
Bij ‘Blocks’ staan de functieblokken weergegeven waaruit geselecteerd kan worden welke nodig
zijn voor het programma. Deze moeten nu bijgevoegd worden aan het programma door deze te
kopiëren in de lijst met de blocks (programma).
5.40 Blocks
Een aantal van deze blokken zullen nu verklaard worden. Om ze op te roepen, kan een aparte
functieblok aangemaakt worden waarin de benodigde functieblok opgeroepen wordt. Dit kan
gedaan worden door in de treeview links bij ‘FB blocks’ te dubbelklikken op de te gebruiken
functieblok. Er zal verschijnen: ‘Call FB …,’ en dit zal in het rood staan. Er is namelijk nog geen
DB aangemaakt voor deze blok. Geef na de komma dus een DB op, bij voorkeur met hetzelfde
nummer.
5.41 FB oproepen
42
De melding wordt gemaakt dat die DB nog niet aangemaakt is en er wordt gevraagd of deze
gegenereerd mag worden. Bevestig.
5.42 DB genereren
Als resultaat wordt een lijst van parameters gedefinieerd waaraan nu nog variabelen worden
gehangen.
5.43 Functieblok
MC_Power : bekrachtiging van de motor
Axis: Nummer van de technology DB.
Dit nummer is terug te vinden in de lijst van de blokken. Stel dat As_1 aangestuurd moet
worden, dan zal dit het nummer DB1 zijn.
5.44 DB’s
Praktisch zal hiervoor een symbolische naam gegeven worden. Dit wordt als volgt
gedaan. Neem een kopie van FC400 uit de library van S7-tech en roep deze op in de
functieblok van het programma. Aan DBref wordt de DB van de as ingegeven, wat in dit
geval DB1 is. Aan RET_VAL moet er nu een Temp-variabele gehangen worden waarmee
het nummer van de DB ontvangen zal worden. Dit levert onderstaand resultaat op (figuur
5.45 met symbolische benaming)
5.45 Opslaan DB-nummer in temp
#DB_Axis1 kan dan aan de eerste parameter (Axis) van de blok gehangen worden.
43
Enable(Bool):
Mode(Integer):
True: Bekrachtiging aan
0: Gebruik van default waarden (scout: ingestelde axis-waarden)
1: Enable de as voor snelheidsregeling
2: ‘Following mode with enabled axis’: De snelheidsregelaar is actief de
positieregelaar is inactief.
3: ‘Following mode with disabled axis’: Zowel de snelheidsregelaar als de
positieregelaar zijn inactief. Met deze mode kan geen motioncommando
uitgevoerd worden en kan niet dynamisch geremd worden.
4: Simulatiemode: Dit is het uitvoeren van geprogrammeerde motions
zonder de as werkelijk te laten draaien.
5: Enable de as voor positieregeling: Enkel voor assen ingesteld op
postitionering en synchronous operation.
StopMode(Integer): De waarde bepaalt wat de manier van stoppen is.
QOutputValue (Real): Deze waarde wordt gebruikt bij hydraulische applicaties.
FOutputValue:
Nog niet geïmplementeerd
Status(Bool):
True: Functieblok is goed uitgevoerd
Busy(Bool):
True: Functieblok in uitvoering.
Error(Bool):
True: Er heeft zich een fout voorgedaan.
ErrorID(Word):
Code van de fout. Hiermee kan snel de fout bepaald worden in de help
5.46 MC_Power
MC_Reset: Leegmaken van errors of herinitialiseren
5.47 MC_Reset
Execute(Bool):
Restart(Bool):
Indien 1: Uitvoering restart
False: Leegmaken errors
True: Herinitialisering ( dit kan enkele 100 ms duren )
CommandAborted(Bool): True: Wijst op een onderbreking van de opdracht
44
MC_Stop: Het stoppen van de motor
5.48 MC_Stop
Doneflag:
False: Functieblok is bezig
True: Functieblok is uitgevoerd
Execute: Moet op 0 staan om de motor te kunnen starten.
MC_Halt: Onderbreekt opdracht maar zet hem na onderbreking voort.
5.49 MC_Halt
Execute: Onderbreekt de werking van de motor
MC_Home: Bepaalt de homepositie
5.50 MC_Home
Position(real):
Mode(Int):
Homepositie
5: past de homepositie aan die in Simotion Scout opgegeven werd.
45
MC_MoveRelative: afleggen van gedefinieerde afstand
5.51 MC_MoveRelative
Distance(Real):
Acceleration(Real):
Deceleration(Real):
Jerk(Real):
Af te leggen afstand
Versnelling
Vertraging
Impuls
MC_MoveVelocity: Snelheidssturing
5.52 MC_MoveVelocity
PositionControl(Bool):
Direction(Int):
Current(Bool):
InVelocity(bool):
True: positiemode
False: Snelheidsmode
0: Default draairichting
1: Positieve draairichting
2: Niet toegelaten
3: Negatieve draairichting
4: Laatst gebruikte rotatie
True: Behoud van huidige snelheid en draairichting (gebruikt bij
het beëindigen van een synchrone operatie)
True: Wijst op het behouden van de snelheid.
46
MC_ReadSysPar: Uitlezen van parameterwaarden
5.53 MC_ReadSysPar
ParameterNumber(Int)
Value (Real)
VlaueDInt (Dint)
ValueDWord1 (DWoord)
ValueDWord2 (DWoord)
Value bool (Bool)
: De uit te lezen Technology-parameter.
: De waarde in geval van het type Real
: De waarde in geval van het type DInt
: De waarde in geval van het type DWoord en het de lengte heeft
van 1 DWoord.
: De waarde in geval van het type DWoord en het de lengte heeft
van 2 DWoorden
: De waarde in geval van het type Bool
47
5.6.2. Camming
Camming komt neer op het simuleren van een nok. Om te beginnen moet er dus een nok
aangemaakt worden. Dit kan via Insert Cam in de treeview.
5.54 Insert cam
Vervolgens moet het type cam gekozen worden. Met interpolation point tabel kan vlug een
eenvoudige cam aangemaakt worden.
5.55 Insert Cam
48
Ga online.
Bij het tabblad ‘geometry’ kunnen een aantal punten ingegeven worden. In figuur 5.56 bv zal de
slave een hoek van 150° afleggen terwijl de master 90° aflegt en als de master van hoek 90° naar
360° beweegt, zal de slave stil blijven staan.
5.56 Cam
Vervolgens moet de cam gedownload worden via de knop bovenaan het scherm
Eenmaal de cam aangemaakt is, kunnen wijzigingen gedownload worden via de knop, aangeduid
in figuur 5.56. Als alles goed verloopt, wordt onderstaand bericht weergegeven. (figuur 5.57)
5.57 Download cam
Save and compile en voer daarna ‘transfer to hardware configuration’ uit.
Vervolgens moet de databouwsteen van de cam toegevoegd worden bij de technology objects. Ga
hiervoor in de simatic manager naar ‘Technology’ (figuur 5.58). Dubbelklik op ‘Technology
Objects’.
5.58 Technology
Create de DB
49
5.59 Create DB
In de lijst met blokken in de simatic manager is de DB van de cam nu toegevoegd.
5.60 DB3
Roep nu de functieblok MC_CamIn op.
5.61 MC_CamIn
50
Master(Int):
Slave(Int):
CamTable(Int):
De leidende as
De volgende as
Het nummer van de cam die gevolgd moet worden.
5.62 Oproepen van DB-nummer
Mode (Int):
0: Default waarden van het synchronisatie-object
1: Synchronisatie volgens settings van inputparameters.
2: Idem Mode 1, maar met extra synchronisatiesettings (zie help) zoals bvb
een omgekeerde draairichting
Indien de leidende as nu draait en de power van de volgende as ligt aan, dan zou deze as moeten
voortbewegen volgens de aangemaakte cam.
Mogelijkheden bij het aanmaken van een cam.
Maak opnieuw een cam aan, maar ga nu voor het type Polynomials.
5.63 Insert Cam
Vervolgens kan via de VDI Wizard op eenvoudige wijze een vloeiende cam gemaakt worden.
5.64 Wizard
51
Onderstaand scherm wordt verkregen.
5.65 Type of Motion Transition
Dan kan gekozen worden tussen een symmetrische of asymmetrische curve.
5.66 Dwell to dwell
Vervolgens zijn er een aantal opties omtrent de overgangen. Zo kan er gekozen worden voor een
gelijkmatige overgang ( Straight line ) of verschillende types van vloeiende curves.
5.67 Dwell to dwell (symmetric)
52
In het daaropvolgende scherm moeten begin- en eindpunten ingegeven worden. Klik op
volgende.
5.68 Boundary conditions (Dwell to dwell)
Nu is een vloeiende cam gecreëerd.
5.69 Cam
Uiteraard kunnen nu meerdere van deze overgangen aan elkaar gekoppeld worden. ( fig 5.70 )
5.70 Verder uitgewerkte cams
53
5.6.3. Gearing
Gearing is het inkoppelen van een as op een andere as. Dit kan absoluut verlopen of relatief. In
het geval van een relatieve koppeling zal bij het inschakelen de motor de afstand die hij achterop
loopt door het aanlopen goedmaken. Bij absolute koppeling zal de motor de master inhalen tot op
de absolute positie van de master.
De functieblok om dit uit te voeren is MC_GearIn.
5.71 MC_GearIn
Belangrijkste parameters:
Master(Int):
Slave(Int):
Absolute(Bool):
Het nummer van de as waaraan gekoppeld moet worden.
Het nummer van de as die gekoppeld moet worden.
true: Absolute koppeling
False: Relatieve koppeling
Normaal gezien zal er nu een fout optreden op het moment dat het inkoppelen gestart is. Dit is te
verklaren door het feit dat de synchronisation length en dersynchronisation length op 0 zijn
ingesteld. Dit is het hoekverschil dat tijdens het synchroniseren aanwezig mag zijn tussen de
master en de slave. Deze staat standaard op 0 ingesteld waardoor er uiteraard een fout optreedt.
Deze kan aangepast worden in de treeview onder :
Technology/Axes/Axis…/Axis…Synchronous_operation / Default.
Onder het tabblad Dynamic response staan deze 2 waarden. Schrijf hier offline een grotere
waarde in, ‘Save and compile’ en download.
54
5.72 Sync. Length / Desync. Length
Om terug te ontkoppelen moet gebruik gemaakt worden van de blok MC_GearOut. Deze werkt
op identieke wijze.
5.6.4. Probes
Met behulp van probes kan de positie van een as uitgelezen worden. Om dit te doen zijn opnieuw
enkele instellingen nodig. Om te beginnen moet er een probe aangemaakt worden (figuur 5.73)
5.73 Insert Measuring Input
Klik op ‘ok’ en de probe is aangemaakt.
55
5.74 Probe
Net zoals bij een nieuwe Cam moet de DB van deze Probe gecreate worden. De DB is dan terug
te vinden in de lijst met blokken in Simatic manager.
5.75 Databouwstenen
Nu moet de probe nog toegewezen worden aan de juiste output van de drive en encoder waarvoor
je de probe wil gebruiken. Dit gebeurt in de Expert list van de overeenkomstige drive bij
parameter p488. Als DI9 true is, dan wordt de waarde van encoder 1 geleverd.
5.76 Toewijzen probe
Zoals op figuur 5.77 te zien, is deze output niet visueel te zien in het input en outputregister van
de CU320
5.77 Inputs/Outputs
56
In Simatic manager moeten nu onderstaande gegevens gebruikt worden. De functieblok van de
probe moet opgeroepen worden.
5.78 MC_MeasureInput
Execute (bool):
MeasuringValue1(Real):
MeasuringValue2(Real):
true: de gegevens zijn beschikbaar voor de probe.
False: De gegevens zijn niet beschikbaar voor de probe.
Resultaat van meting
Resultaat van meting
Nu moet een puls gestuurd worden naar de probe dat er gemeten mag worden. Wanneer er
gemeten wordt, zal afhangen van de waarde van de mode (figuur 5.79)
5.79 Mode
De waarde van een meting blijft aanwezig. Als er een nieuwe meting uitgevoerd wordt, dan moet
een reset-signaal gegeven worden. Dit gebeurt door de mode op waarde 5 te zetten, ‘execute’
eerst hoog en dan laag te zetten en vervolgens op een andere mode de meting terug te beginnen.
57
6. Handleiding Simotion
6.1 Opstelling
58
6.1. Aanmaken nieuw project
Maak een project aan via Create new device
6.2 Create new device
Onderstaand kader verschijnt. Hier moet een CPU-type gekozen worden. Bij de opgegeven
opstelling is dit: D435 V4.1
Ook moet opgegeven welke variant van SINAMICS gebruikt wordt.
Hier wordt SINAMICS S120 Integrated V2.5 in D435 gebruikt.
6.3 Create new device
Klik op “OK”
Vervolgens moet de correcte interface geselecteerd worden. Voor deze opstelling betreft het
PROFIBUS DP2/MPI (X136)
Bij ‘interface parameterizations in the PG/PC’ moet ‘Profibus’ aangevinkt worden.
59
6.4 Interface selection
Klik op “OK”
Het volgende resultaat wordt bekomen.
Hardwareconfiguratie
6.5 Hardware configuration
Dit is de hardware configuration. Daarin is de interne profibuskabel weergegeven met daaraan
verbonden het Sinamics-gedeelte van de opstelling. De netwerkeigenschappen van deze interne
Profibuskabel kunnen niet gewijzigd worden. Indien er modules zoals eilanden in de opstelling
aanwezig zijn, dan moeten deze ingevoegd worden via een tweede master system. Dit gebeurt
zoals weergegeven op de figuur hieronder
60
6.6 Add master system
Dan wordt het ET200S eiland toegevoegd.
Dit eiland kan teruggevonden worden in de treeview onder de tak Profibus DP.
Selecteer:
IM151-1 Standard
6ES7 151-1AA04 0AB0
6.7 ET200S invoegen
Na het verslepen van de module moet er nog een adres ingesteld worden en een
transmissiesnelheid en profile. (fig 6.8)
61
6.8 Properties
Vervolgens moeten in het eiland nog de correcte modules gebruikt worden. Deze modules zijn
terug te vinden in de tak van de IM-module.
In de testopstelling betreft het de volgende modules:
Powermodule: 1
PM-E DC24V
6ES7 138-4CA01-0AA0
Inputmodule: 2
4DI DC24V ST
6ES7 131-4BD01-0AA0
Outputmodule: 2
4DO DC24V/0,5A ST
6ES7 132-4BD02-0AA0 (of 6ES7 132-4BD01-0AA0)
Als alle modules toegevoegd zijn
Save and compile
en download
Opm: Na het downloaden zal er gevraagd worden of de module gestart mag worden. Klik hier
“No” omdat er geen programma aanwezig is en dit toch niet zou lukken.
62
Netpro
Als de volledige opbouw van het netwerk gerealiseerd is, dan kan deze ook bekeken worden via
NetPro. In het kader in stippellijn is de interne opbouw van de eigenlijke Simotion module te
zien. Zo is te zien dat SINAMICS_Integrated verbonden is via een intern Profibus-netwerk
(Profibus_Integrated) met de poort DP_Integrated. De verbinding lijkt via poort DP1 te gaan,
maar dit is niet het geval. De lijn loopt achter de Simotion D module. Dit is fysisch te controleren
op de opstelling of door te dubbelklikken op DP1 (fig 6.10). Er zal dan een kader verkregen
worden waarop te zien is dat er geen netwerk aanwezig is op deze poort.
Vanuit de poort DP/MPI is er verbinding met het eiland (IM151-1) en met de PC via PG/PC.
6.9 NetPro
6.10 DP 1
63
Door in de witruimte op de rechtermuisknop te klikken is het mogelijk om een herschikking te
doen (Rearrange). Door nu alle kaders onder de Profibuskabel te verslepen, wordt een duidelijke
structuur bekomen.
6.11 Netpro: andere weergave
Opm: Om online te kunnen gaan met Sinamics_integrated moet de Profibus verbinding komende
van de router (PG/PC) geelgekleurd zijn. Dit is het teken dat deze actief is. Indien niet (zoals in
figuur 6.11 ), dan moet deze actief gemaakt worden door te dubbelklikken op het blokje PG/PC
en ‘Active’ aan te vinken.
6.12 Active
Indien een programma archived is via Simotion Scout en later terug retrieved wordt, dan zal de
PG/PC automatisch terug op non-actief staan. Indien het project via de Simatic manager archived
wordt, dan zal alles mee opgeslagen worden inclusief de status van de PG/PC-interface.
64
6.2. Toevoegen en configureren drive en infeed
Voor de configuratie van drives en infeed wordt verwezen naar de handleiding Sinamics Servosysteem van Deprey Olivier en Depoorter Davy ( Paragraaf 5.2.4 ) waar de stappen bij het
configureren beschreven staan. Voor de keuze van een profiel wordt verwezen naar paragraaf 3.1.
De wizard voor de configuratie van de infeed en de
eerste drive is te vinden in de treeview :
D435 / Sinamics_Integrated / Configure drive unit
Het toevoegen van extra drives kan gedaan worden via:
D435/ Sinamics Integrated/ Drives / Insert drive
OPM: In deze testopstelling zijn twee van de drie
motoren voorzien van een Drive-CLiQ aansluiting.
Tijdens de configuratie kan deze optie aangevinkt
worden, wat het configureren een stuk eenvoudiger
maakt en minder kans op fouten biedt.
Na
deze
configuratie
moeten
via
Sinamics_Integrated/Configuratie
de
adressen
toegewezen worden aan de verschillende profielen. Doe
dit via de knop: ‘Transfer to Hardwareconfig’. De rode
uitroeptekentjes moeten nu veranderen naar blauwe
vinkjes. Het is mogelijk dat er een 2de maal op deze
knop geklikt moet worden om dit resultaat te bekomen.
Ga naar de ‘Hardware Config’, klik op ‘Save and
compile’ en voer daarna een download uit. Om de
infeed in werking te kunnen stellen moet nu nog een aansturing gebeuren van de ‘line contactor’.
De werkwijze hieromtrent is terug te vinden in de handleiding Sinamics Servo-systeem van
Deprey Olivier en Depoorter Davy ( Paragraaf 5.2.4.8 ).
Nu bestaat de mogelijkheid om de servomotoren aan te sturen met behulp van het control panel.
Dit is enkel een eenvoudige snelheidssturing. Om een positiesturing te kunnen uitvoeren moeten
eerst de assen aangemaakt worden (volgende paragraaf)
65
6.3. Instellen van de assen
Het aanmaken van de Axes gebeurt via : D435/Axes/Insert Axis
6.13 Insert axis
Herconfigureren bestaande axis: D435/Axis…/Configuration Configure Displayed data set…
6.14 Configure displayed data set
Het instellen van de assen gebeurt verder op gelijkaardige wijze als bij Technology (zie paragraaf
5.3). Na de configuratie moeten de volgende stappen ondernomen worden.
1. Save and compile
2. Ga online
3. Control Panel
4. Load project to target system
6.15 Instellen assen
66
Nu kunnen de assen aangestuurd worden (positieregeling) met behulp van het control panel wat
te vinden is bij pijl 5. Hierbij wordt wel gevraagd van de CPU in STOPU mode te zetten. Nu
moet de projectdata die zich in het RAM geheugen van het Simotion systeem bevindt
opgeslagen worden in de geheugenkaart (ROM) zodat de projectdata na het onderbreken van de
spanning nog bewaard blijft. Dit gebeurt als volgt:
1. Ga naar: Project Connect with target system
2. Selecteer de simotion module rechtermuisknop Target device Copy RAM to
ROM
3. Klik “Yes” op de getoonde waarschuwing
6.4. SelfTuning
De mogelijkheid bestaat om de as te tunen. Dit kan handmatig gebeuren of automatisch
(selftuning). Dit is terug te vinden via Axes Axis…
Closed-loop control.
Voor de verdere uitvoering van deze procedure wordt verwezen naar paragraaf 5.5
67
6.5. Programmeertalen
6.5.1. Algemeen
6.5.1.1. Execution system
Na het schrijven, opslaan en compileren van een programma moet het programma nog
toegewezen worden aan een uitvoeringswijze zoals een backgroundtask (cyclisch), motiontask of
een tijds- of eventgerelateerde task. Dit gebeurt als volgt:
6.16 Execution system
Er zijn verschillende opties om een programma uit te voeren. In dit voorbeeld werd voor een
cyclische werking gekozen met de BackgroundTask. Vanuit de BackgroundTask kan dan een
motiontask opgeroepen worden waar de effecieve sturing plaatsvindt.
6.17 BackgroundTask
Alle programma’s die gecompileerd zijn, staan in de linkertabel. Door op de pijltjes te klikken
kan gekozen welk programma cyclisch uitgevoerd moet worden.
68
6.18 Program Assignment
Bij de Task configuration (fig.6.19 Task Configuration) kunnen parameters ingesteld worden
voor de task. Zo kan een datalimiet en een watchdog time ingesteld worden. Ook kan in geval
van een error als gevolg van een time-out of een programmafout gekozen worden wat de reactie
van de CPU moet zijn. Ofwel gaat deze in stop, ofwel kan (zoals op de figuur te zien) een
TimeFaultBackgroundTask opgeroepen worden, specifiek voor dergelijke situaties.
6.19 Task Configuration
Na de toewijzing moet er connectie gemaakt worden met de target device.
Vervolgens moet
het programma gedownload worden naar de target device.
. Indien er enkel aan de code van
het programma een wijziging doorgevoerd is, is het niet nodig van het volledige project te
downloaden en mag dus “Load CPU/drive to target system” aangeklikt worden.
69
6.5.1.2. Variabelen
Er zijn verschillende plaatsen waar variabelen en dergelijke gedeclareerd kunnen worden. Dit kan
globaal gebeuren zodat deze doorheen het ganse project aanspreekbaar zijn. Het declareren
gebeurt offline. Deze variabelen zijn terug te vinden in de treeview: D435/Global Variables en
D435/I/O.
6.20 Global Variables en Inputs/Outputs
Het is ook mogelijk om bij deze variabelen en bij de uitgangen tijdens het runnen van het
programma de waarde te veranderen. Bij het online gaan komt er een extra kolom bij ‘control
value’. In deze kolom kan een waarde ingevuld worden. Om de variabele effectief deze waarde te
laten overnemen, moet het vinkje naast de waarde aangevinkt worden. Op het moment dat op de
knop “Immediate control” geklikt wordt, zal de waarde overgenomen worden. Op de figuur is te
zien dat maar twee van de vier variabelen aanpasbaar zijn. Dit komt omdat de andere twee
parameters inputs zijn (zie ook fig 6.20)
6.21 Immediate control
Bij het programmeren is boven de code ook een inputveld weergegeven waar variabelen en
dergelijke gedeclareerd kunnen worden. Deze variabelen zijn lokaal aangemaakt en worden dus
alleen herkend binnen deze codeblok. Aangeraden wordt van dit enkel te gebruiken indien nodig,
meer bepaald bij het creëren van een instance of bij de input- of outputvariabelen van een functie
of functieblok. De gewone variabelen, inputs en outputs worden best gedeclareerd bij de globale
variabelen.
70
6.5.1.3. Monitoring
Het online volgen van de code gebeurt in de 3 talen op een identieke manier. Voor elke taal is er
een werkbalk voorzien waar een symbool op staat ‘program monitoring’
LAD
ST
MCC
Mogelijks wordt volgende opmerking getoond.
6.22 Message
Er is toestemming nodig om dit te kunnen uitvoeren. Doe het volgende:
Selecteer de groep (Vb MCCUnit) en ga via de rechtermuisknop naar ‘properties’.
Ga vervolgens naar het tabblad ‘Compiler’ en zet een vinkje bij ‘Permit program status’
Voer daarna een ‘download’ uit. Nu is het mogelijk om de status van het programma te tonen.
71
LAD
Tijdens het monitoren zullen de paden nu een kleur hebben naargelang de status. Een groene
kleur zal wijzen op een ‘true’ en de rode kleur wijst op een ‘false’. De blauwe kleur zal dan weer
wijzen op een onbekende waarde. Dit komt dan voor bij parameters die niet gekoppeld zijn en bij
netwerken die niet actief zijn. Monitoring kan maar op één netwerk tegelijkertijd toegepast
worden.
6.23 Monitoring
ST
Bij structured text zal er bij het monitoren een 2de scherm naast de code verschijnen waarop dan
de waarde van de variabelen te zien is.
Opm: Indien de programma status open staat en er wordt geklikt buiten de coderegels
‘PROGRAM’ en ‘END_PROGRAM’, dan zal de programma status verdwijnen. Deze kan enkel
terug opgeroepen worden door de cursor terug binnen deze 2 regels te zetten en op de ‘program
status’ knop te klikken.
MCC
MCC is een grafische taal en heeft als doel van een duidelijk structuur op poten te zetten. Bij het
monitoren zal dan ook aangeduid worden waar in het programma iets gebeurt door middel van
een commando dat geel oplicht. Bij een programma in de backgroundtask zal op het moment dat
er niets gebeurt het vakje ‘End’ geel zijn. Als er op een knop geduwd wordt, dan zal de IFconditie waar deze misschien aan verbonden is kortstondig geel worden. In een motiontask zal bij
het uitvoeren van een motiontask of een wait-commando de betreffende vakken geel kleuren.
In het geval van MCC is het ook mogelijk om het programma stap voor stap uit te voeren via de
knop ‘single step’. Met de knop ‘next step’ kan dan stap voor stap het programma doorlopen
worden.
Indien deze knop gebruikt wordt in de backgroundtask, zal de CPU
in stop gaan, dit omdat de watchdog time overschreden wordt. Om dit probleem te verhelpen
moet volgende werkwijze toegepast worden.
Maak een leeg programma aan (Vb Error1) en ga naar D435/Execution system.
72
6.24 Programma Error1
Ga naar Backgroundtask, tabblad Task configuration en verander daar Error reaction on timeout
naar TimeFaultBackgroundTask. Op die manier zal bij een overschrijden van de watchdog time
de CPU niet in stop gezet worden, maar gebeurt er een omleiding naar die specifieke task. Deze
TimeFaultBackgroundTask is ook aanwezig in de lijst. Nu moet aan deze task het lege
programma toegewezen worden. Op deze manier kan bij een fout dus een programma
opgeroepen worden met een bepaalde taak om te voorkomen dat de CPU zomaar in stop gaat.
6.25 TimeFaultBackgroundTask
De stap in het lichtblauw is telkens de stap waar
gewacht wordt.
6.26 Single Step
73
6.5.1.4. Scoop
Om bepaalde functies en commando’s beter te begrijpen kan er gebruik gemaakt worden van een
scoop. Hierbij kunnen vele parameters van de motoren, drives of encoders uitgelezen worden. De
scoop kan op volgende wijze ingesteld worden. Via de knop rechts bovenaan het scherm wordt
onderstaand scherm verkregen.
6.27 Trace
Op dit blad moeten de instellingen gedaan worden om een juist scoopbeeld te krijgen. Zo kan de
duurtijd van de meting opgegeven worden. Dit moet een veelvoud zijn van 3. In het inputveld
kunnen de te meten parameters opgegeven worden. Deze kunnen gezocht worden via de drie
puntjes. Omdat er enorm veel parameters kunnen uitgelezen worden, wordt voor twee belangrijke
parameters, zijnde snelheid en positie, de locatie getoond. De actuele snelheid van een as is te
vinden onder. TO/Axis/Actordata/actualspeed
6.28 Actual speed
De positie van de as is dan weer terug te vinden onder TO/Axis/Servodata/Actualposition
74
6.29 Actual position
Op het tijdsdiagram worden de parameters weergegeven. Indien meerdere parameters tegelijk
werden opgemeten, dan kunnen de juiste assen weergegeven worden door rechtsboven op de
juiste parameter te klikken. Indien bepaalde metingen vergeleken moeten worden, is het
belangrijk dat de assen van de beide metingen correct en gelijk ingesteld zijn. Standaard gebeurt
er een autoscaling en zijn de assen dus niet gelijk. Om deze toch gelijk in te stellen moet met de
rechtermuisknop op een as geklikt worden en kunnen via ‘Scaling’ de assen handmatig ingesteld
worden.
75
6.5.2. LAD – Ladder logic
6.5.2.1. Programma aanmaken
Voeg een LAD/FBD unit in via de treeview: D435/PROGRAMS/Insert LAD/FBD unit
6.30 Insert LAD/FBD unit
In het verkregen scherm moet nu een titel gegeven worden. Klik op “OK”
Vervolgens moet nog een programma, functie of functieblok ingevoegd worden.
Kies ‘Program’
6.31 Insert LAD/FBD program
76
Nu wordt een leeg blad geopend waarin een netwerk moet worden ingevoegd. Doe dit via de
rechtermuisknop in het lege blad. Onderstaand resultaat wordt verkregen. Het weergegeven
symbool is een logische instructie die een 1of 0 interpreteert.
6.32 nieuw network
Met een klik tussen de haakjes worden de mogelijkheden getoond voor het type instructie. Zo kan
de variabele ( in te vullen tussen de haakjes ) geset of gereset worden. Ook kan er een verwijzing
gebeuren naar een label op een positief of negatief signaal. Met ‘RET’ kan worden
teruggesprongen naar een vorige logische operatie.
6.33 Set/Reset
Blokken en logische functies kunnen op meerdere wijzen ingevoegd worden in het netwerk.
Dit kan via de menubalk: LAD/FBD program/Insert element/Coils
6.34 Insert element
77
Maar een andere mogelijkheid is de ‘Command Library’. Deze is te vinden naast het tabblad van
de treeview ( fig 6.35 )
6.35 Command library
6.36 Command library
Onder het punt ‘LAD elements’ kunnen dezelfde elementen teruggevonden worden als in de
menubalk. Om de ‘LAD elements’ en de ‘FBD elements’ te kunnen zien in de Command
Library, is het belangrijk dat het werkblad in LAD of FBD actief is.
Via de knop ABC kan ook alfabetisch gezocht worden naar de juiste blokken of commando’s.
6.5.2.2. Functieblok uit Command Library toevoegen
De bedoeling is nu om met behulp van LAD-code assen aan te sturen. Eerst en vooral moet dan
de infeed aangeschakeld worden. Hiervoor is in de Comand Library een speciale blok voorzien
die ingevoegd moet worden: ALM_control.
Deze functieblok is terug te vinden onder Drives/Sinamics/_alm_control[FB]
78
6.37 _alm_control
Voeg deze FB in door te dubbelklikken of door deze te verslepen naar de juiste positie.
Resultaat:
6.38 _alm_control
Nu moet een functieblok gemaakt worden van dit type. Geef hiervoor een naam in bij de
vraagtekens. Deze naam mag niet ‘Infeed’ zijn. Dit is een predefined keyword
6.39 Variable Declaration
79
Klik op “OK”. Bovenaan is nu te zien bij de parameters dat er een nieuwe variabele is
aangemaakt. Om de infeed te kunnen activeren moet aangegeven worden welke infeed er
gebruikt wordt in het geval meerdere infeeds aanwezig zijn. Dit wordt gedaan op basis van het
periferieadres van de infeed. Dit is terug te vinden in de treeview onder
SINAMICS_integrated/configuration.
6.40 Periferieadres
Maak nu 2 variabelen aan via D435/I/O
6.41 pi_infeed en pq_infeed
Omdat we hier schrijven en lezen uit het periferiegeheugen, bestaat de mogelijkheid om in geval
van het optreden van een fout ofwel de CPU in stop te laten gaan (standaard mogelijkheid), ofwel
om de laatste waarde te behouden die eerder gebruikt werd of om een vervangende waarde
(Substitute value) in de plaats te nemen van de ‘slechte’ waarde.
Deze variabelen moeten nu als volgt aan de blok bevestigd worden.
6.42 _alm_control
De infeed zal nu opgestart worden als de ingang ‘enable’ hoog is. Bij de outputs kunnen nu nog
variabelen bevestigd worden om een error-signaal door te geven en om het type error te
controleren. De uitgangen ‘passcount’ en ‘srb’ in de handleiding niet gespecificeerd.
80
Door te dubbelklikken op de functieblok kunnen de inputs en outputs ingevuld worden met
behulp van een parameterlijst. Hierdoor wordt zeker een correcte variabele gekoppeld aan de
input/output.
6.43 _mc_stop
Nu de infeed geactiveerd is moet ook de as geactiveerd worden.
Dit gebeurt met de functieblok ‘_MC_power’. Deze kunnen we
vinden in de library onder PLCopen/Single axis. Hier zijn dezelfde
motion-blokken terug te vinden als deze gebruikt bij de
Technology-PLC.
6.44 _mc_power
Een volgende voorwaarde om een motion-actie te kunnen
uitvoeren is het laag zijn van _mc_stop en _mc_reset
81
6.45 _mc_stop en _mc_reset
Nu kan een motion-taak uitgevoerd worden zoals het voortbewegen aan een constante snelheid
met _mc_moveVelocity
6.46 _mc_movevelocity
* Voor uitleg omtrent de eigenschappen van deze blokken wordt verwezen naar het onderdeel
‘Technology’ paragraaf 5.6.1
82
6.5.2.3. Functieblokken aanmaken
Om een functieblok te creëeren moet bij het maken van een source file gekozen worden voor
function block.
6.47 _Insert_Function_block
Bij het schrijven van het programma kunnen nu variabelen gedeclareerd worden als input of
output variabelen.
6.48 Inputs/Outputs
Klik op ‘Save and compile’
We kunnen deze functieblok nu oproepen in een andere source file. Dit kan als
volgt gerealiseerd worden. Open een source file. Voeg een ‘empty box’ in via
menu, LAD/FBD program. Via de vraagtekens kan de gemaakte functieblok
gekozen worden
6.49 empty box
Druk op Enter. Dit is het resultaat.
Geef nu een naam aan de functieblok. Nu kunnen de juiste variabelen gekoppeld worden.
6.50 Functieblok
83
6.5.3. ST – Structured Text
6.5.3.1. Programma aanmaken
Programma’s kunnen als volgt ingevoegd worden:
D435/PROGRAMS/Insert ST program.
6.51 Insert ST program
Nu kan de code geschreven worden. Een voorbeeld is hieronder weergegeven. Bij dit programma
wordt er gecommuniceerd met het ET200S-eiland. Hier zijn dus nog geen motion control acties
in verwerkt.
6.52 code
84
Het declareren van inputs en outputs gebeurt via de treeview.
6.53 Inputs/Outputs
Om het adres van een input en output in te stellen moet het adres (bvb I0.1) voorafgegaan worden
door het %-teken. Het is ook belangrijk te weten dat het niet toegelaten is van een knop bv de
naam ‘start’ te geven. Dit is namelijk een predefined keyword. Hou hier rekening mee.
6.54 Declareren van IO
6.55 Declareren van Global Device Variables
Om effectief nieuwe variabelen te kunnen aanmaken is het belangrijk dat het project niet online
is. De variabelen kunnen ook lokaal in het interface-gedeelte aangemaakt worden, terwijl in het
gedeelte implementation de code geplaatst wordt ( fig 6.52 )
Vervolgens moet het programma geaccepteerd en gecompileerd worden. Dit kan met de
omcirkelde knop ( figuur rechts ) . Deze is terug te vinden links onder de treeview indien het
scherm met de programmacode actief is.
Als het programma geschreven en
gecompileerd is, moet
het nog toegewezen worden aan een task ( zie paragraaf 6.5.1.1)
85
6.5.3.2. Functieblok uit Command Library toevoegen
Om functieblokken uit de Command Library te kunnen gebruiken, moet bovenaan in het
‘Interface’ gedeelte komen: ‘UsePackage cam;’.
Ook moet er een variabele gemaakt worden van het type functieblok die gebruikt zal worden.
Vb: power1 : _mc_power;
6.56 Usepackage cam
Vervolgens kan de benodigde functieblok (bvb _mc_power) gesleept worden uit de Command
library en in het gedeelte ‘Implementation’ geplaatst worden. Nu moet enkel nog de naam van de
functieblok ‘_mc_power’ vervangen worden door de instance die eerder aangemaakt werd van
het type functieblok ‘_mc_power’. De functieblok kan nu gebruikt worden.
6.57 Invoegen FB
Vooraleer met motion control blokken gewerkt kan worden, moet uiteraard eerst de infeed
aangeschakeld worden. De locatie en het gebruik van deze functieblok werden eerder uitgelegd in
het hoofdstuk betreffende LAD (6.5.2.2) .
86
6.5.3.3. Functieblok aanmaken
Wanneer de ST source file aangemaakt is, moet in het gedeelte ‘implementatie’ een functieblok
gecreëerd worden. Hoe dit moet gedaan worden is hieronder weergegeven aan de hand van een
eenvoudig programmaatje.
Eerst wordt de FB gedefinieerd, waarna de variabelen gedeclareerd worden. Onder de variabelen
kan dan de code geschreven worden.
6.58 Functieblok aanmaken
Nog in het gedeelte ‘implementatie’ kan dan een programma gemaakt worden waarin de
functieblok één of meerdere keren opgeroepen kan worden. De FB kan vanuit de treeview in de
source file gesleept worden waarna de variabelen op de juiste manier toegekend moeten worden.
87
6.5.4. MCC – Motion Control Chart
6.5.4.1. Programma, functie, functieblok aanmaken
Voeg een MCC Unit in via D435 / PROGRAMS / Insert MCC Unit.
Voeg vervolgens een Motion Control Chart in. Kies ‘Program’, ‘function’ of ‘function block’.
Het onderstaande netwerk zal verkregen worden. Elk netwerk begint met ‘Start’ en eindigt met
‘End’ en hiertussen zullen de commando’s, tasks en dergelijke geplaatst worden.
6.59 Nieuw netwerk
Na het programmeren van de code moet deze opgeslagen en gecompileerd worden.
Indien er een programma aangemaakt is, moet het toegewezen worden aan een taak via
‘execution system’. (paragraaf 6.5.1.1). Bij een functie of functieblok is dit niet mogelijk. Deze
moeten opgeroepen worden in een programma. Laad ten slotte het project naar de CPU: ‘load
project to target system’
.
6.5.4.2. Basis commando’s en structuren
Set/Reset
Dit is het hoog of laag zetten van een output. De IO kunnen
gekozen worden uit een lijst uit de input/output.
6.60 Set/Reset
88
Variable Assignment
Met dit commando kunnen één of meerdere variabelen aangepast
worden inclusief niet-booleans zoals integers. Ook is het
mogelijk van rekenkundige bewerkingen uit te voeren op deze manier. Uit de command library
kunnen complexe berekeningen zoals Sin/Cos en dergelijke opgehaald worden.
6.61 Variable Assignment
Synchronized start
Dit commando heeft als doel meerdere assen tegelijk
(synchroon) te laten starten. Standaard staan er 2 takken
ingesteld, maar met behulp van de rechtermuisknop kunnen takken toegevoegd worden.
6.62 Synchronised start
Bij het compileren zal er een fout verschijnen waarbij er gevraagd wordt om een
UserInterruptTask toe te voegen. Dit is dezelfde werkwijze zoals in paragraaf 6.5.1.3 maar
ditmaal mag een leeg programma gezet worden in de UserInterruptTask
89
Change operating mode
Met dit commando kan er voor gekozen worden om in bepaalde
situaties de CPU stop te zetten of enkel het programma.
6.63 Change Operating Mode
IF-structuur
Om een commando uit te voeren op basis van een voorwaarde
kan een IF-structuur gebruikt worden. Door te dubbelklikken kan
de voorwaarde ingegeven worden en deze kan in drie programmeertalen ingegeven worden zoals
te zien is op onderstaande figuur. Een commando kan dan ingevoegd worden door de juiste tak te
selecteren.
6.64 If-voorwaarde
90
While
Er wordt gewacht met doorgaan tot de opgegeven voorwaarde
voldaan is. De loop zal hierbij continue herhaald zolang de
voorwaarde voldaan is. Hier zal de loop doorlopen worden tot de
teller de waarde 400 heeft bereikt vooraleer door te gaan met het programma.
6.65 While
For
Er wordt een start- en eindwaarde van de variabele gevraagd en
ook met welke waarde deze verhoogd moet worden tijdens
tijdens elke cyclus (increment).
6.66 For
91
Until
Deze lus wordt minimaal één keer uitgevoerd. Deze wordt dan
verder herhaald zolang de conditie false is. In dit geval zal de
teller niet op 5 gezet worden zolang merker 1 niet hoog wordt. In de cyclussen dat de voorwaarde
false is kunnen andere acties uitgevoerd worden.
6.67 Until
Case
Afhankelijk van de waarde zal het programma verder gezet
worden via één van de takken. Als de waarde 0 is, zal deze de
eerste tak volgen enz…
6.68 Case
Bij het klikken op ‘OK’ zal een scherm verschijnen waarbij vermeld staat dat er nog waarden
gegeven moeten worden aan de takken. Klik op ‘OK’. De waarde van de tak kan nu ingegeven
worden bij de vraagtekens. Een extra tak kan ingevoegd worden via de rechtermuisknop (Insert
branch)
Selection
Hiermee kan een label aangemaakt worden
6.69 Selection
92
Go To
Er kan gesprongen worden naar een aangemaakt label elders in
het programma.
6.70 Go To
Exit
Met dit commando kan uit een lus gesprongen worden (Vb uit
een For-lus of While-lus). In tegenstelling tot bij het commando
‘Return’ zal het programma verder uitgevoerd worden tot aan ‘End’.
6.71 Exit
93
Return
Het oproepen van dit commando zorgt er voor dat een
programma, functie of functieblok stopt zonder dat de rest van
het programma uitgevoerd wordt. Er wordt ook teruggekeerd naar een hoger niveau. Dus stel dat
er een verwijzing is naar een functieblok vanuit een programma, dan zal er onmiddellijk
teruggegaan worden naar het oorspronkelijke programma.
6.72 Return
Voorbeeld: MCC_6 wordt als subroutine aangesproken. Een teller zal beginnen tellen. Indien er
op een knop geduwd wordt voor het tellen voorbij is, dan zal de subroutine direct onderbroken
worden en zal de lamp niet branden.
ST Zoom
Met behulp van dit commando kan code in ST toegevoegd
worden in MCC, wat handig kan zijn om bijvoorbeeld een rising
trigger te gebruiken.
6.73 ST Zoom
94
Subroutine call
Een subroutine is een apart stukje code ( functie of functieblok )
waarvan het resultaat gebruikt kan worden in het
hoofdprogramma. Het maakt het programma overzichtelijker,
maar vooral kan een subroutine meermaals gebruikt worden en moet de code dus maar eenmalig
aangemaakt worden. ( fig 6.72)
Om een goede compilatie te verkrijgen moeten een aantal zaken in acht genomen worden. Zo
moeten de variabelen/parameters en inputs/outputs van de subroutines globaal aangemaakt
worden. ( Treeview: D435/I/O en Global device variables )
Verder is het ook van belang dat in de treeview (binnen dezelfde MCCUnit) de subroutine boven
het programma staat dat die subroutine oproept. Indien de subroutine eerst aangemaakt is, zal dit
automatisch verkregen zijn. In het andere geval is het mogelijk om met de charts te verschuiven.
Dit kan door met de rechtmuisknop op de te verschuiven chart te gaan staan en up of down te
gebruiken. Aangeraden wordt van alle subroutines in de bovenste unit te verzamelen. Indien bij
het aanmaken van de MCC Units de naam niet gewijzigd is, dan is dit MCCUnit_1.
TIP: Indien meerdere Units aangemaakt zijn en er is achteraf een unit verwijderd, kan het zijn dat
er een connectie gemaakt is tussen de verschillende units en dat deze niet verwijderd is. In dit
geval zal er bij het compileren vermeld worden dat de vermiste MCC_unit niet teruggevonden
wordt. Dit kan verholpen worden door te dubbelklikken op de Unit waar de problemen zich
voordoen en bij Implementation (Tabblad connections) de gepaste connectie te wissen. Zie figuur
6.74
6.74 Connectie
Als aan de voorwaarden voldaan is, dan kan de subroutine opgeroepen worden in het programma.
Indien een FB opgeroepen zal worden zoals in figuur 6.75, dan moet eerst nog een instance
aangemaakt worden bij de lokale variabelen. Bij het oproepen zelf moet het type subroutine
opgegeven worden, de subroutine zelf en de instance die gebruikt zal worden. Onderaan worden
dan de inputs en outputs weergegeven. Bij value kunnen dan effectieve inputs/ouputs gekoppeld
worden (gedeclareerd voor het gehele project).
95
6.75 Oproepen subroutine
Module
Een module is gelijkaardig aan een subroutine met dit verschil
dat in dit geval het aparte stukje code niet in een aparte Motion
Control Chart geschreven is, maar er een verwijzing gebeurt naar een leeg blad. Het is dus niet zo
dat dezelfde code meermaals gebruikt kan worden. Deze functie maakt het programma
overzichtelijker.
6.76 Verwijzing module
96
Indien dubbel geklikt wordt op het blokje ‘MODUL’ zal er gesprongen worden naar de module
waar de code geschreven is. Dit is het resultaat.
6.77 Module
Tussen deze twee cirkels kan code geplaatst worden. Door één van de cirkels te dubbelklikken
wordt er opnieuw teruggekeerd naar het programma.
System Function Call
Met behulp van deze blok kan een systeemblok opgeroepen
worden. Hiermee kunnen de blokken aangeroepen worden die
eerder in de handleiding van Technology verklaard werden ( Paragraaf 5.6.1 ). Deze blokken zijn
terug te vinden in de command library net zoals deze bij ST en LAD gebruikt werden. Deze
kunnen als volgt ingegeven worden.
Om een functieblok in te voegen moet een System Function Call geplaatst worden tussen ‘Start’
en ‘end’. Hierbij is het belangrijk dat eerst de tak geselecteerd wordt waar het commando
geplaatst moet worden. Deze is terug te vinden bij de basiscommando’s via de symbolen (door op
het symbool te klikken) of via menu/MCC chart/Insert/Basic commands/System function call
6.78 System Function Call
97
Vervolgens wordt de blok ingevoegd.
6.79 System Function Call
Nu moet aangegeven worden welke functieblok gebruikt zal worden. Eerst moet er een instance
gemaakt worden bij de variabelen. Stel dat er nu nood is aan een blok om de infeed in te
schakelen, moet de function block ‘_alm_control’ gebruikt worden (terug te vinden in de
Command Library). Maak nu eerst een instance (vb infeed1) met als datatype ‘_alm_control’.
6.80 Instance
Nu moet System function call geactiveerd worden. Het linkse scherm ( fig 6.81 ) wordt getoond.
Door bij ‘System function’ de naam van de functieblok in te geven zullen de input en output
parameters te voorschijn komen en kan bij ‘instance’ de juiste instance gekozen worden.
6.81 oproepen functie blok
Koppel nu de juiste parameters aan de juiste inputs en outputs. Door op het witte vlak te klikken
komt er een keuzelijst te voorschijn van alle variabelen en I/O symbols.
Klik op ‘OK’
De uitleg omtrent deze blokken is terug te vinden in paragraaf 5.6.1
98
Wait commando’s
Er zijn vier commando’s voorzien waarbij er gewacht kan worden op een signaal of een
voorwaarde of waarbij gewoon een bepaalde tijd gewacht kan worden. Deze commando’s kunnen
niet gebruikt worden in een cyclische task zoals de BackgroundTask. Deze moeten in een
MotionTask geprogrammeerd worden. (Motiontasks: Paragraaf 6.5.4.3 ) De illustraties bij deze
commando’s zijn dan ook programma’s die toegewezen zijn aan een MotionTask die op zijn
beurt opgeroepen wordt in een BackgroundTask.
Wait time
Met deze functie wordt het programma een vooropgestelde tijd
in halt gezet.
6.82 Wait time
In het tabblad ‘Parameter’ moet de tijd opgegeven worden. Dit kan in ms of in d_h_m_s_ms
6.83 Parameters Wait time
Opm: De Wait-commando’s kunnen normaal gezien enkel gebruikt worden in een
MotionTask, maar in het geval van ‘Wait time’ is het toch mogelijk deze te gebruiken in
de BackgroundTask. In normale omstandigheden valt de CPU uit indien één van deze
commando’s cyclisch gebruikt wordt, maar de fout die hierbij optreedt kan omgeleid
worden naar de BackgroundFaultTask. In deze Task moet dan een leeg programma
opgeroepen worden. Op deze manier kan een wait time commando toch gebruikt worden
in de background. De werkwijze om dit te realiseren is identiek aan deze om single step te
kunnen toelaten in de backgroundtask. ( Paragraaf 6.5.1.3 )
99
Wait for axis
Met dit commando is het mogelijk om het programma te
onderbreken en te wachten tot een voorwaarde voldaan is die te
maken heeft met een andere as. Er zijn vele opties mogelijk.
6.84 Wait for axis
Er kan gekeken worden naar de status van de as. Belangrijke opties hierbij zijn dat het
programma verder loopt op het moment dat de as stilstaat (axis stands still) of op het moment dat
de beweging uitgevoerd is (motion completed). Ook een versnelling of een vertraging kan als
trigger dienen, net zoals een homing of het moment dat de as aan een constante snelheid
voortbeweegt. Bij ‘comparison value’ kan een snelheid of positie als trigger genomen worden.
Wait for signal
Met behulp van dit commando wordt de verdere uitvoering van
de motion task gepauzeerd tot aan een bepaalde voorwaarde
voldaan wordt. Deze voorwaarde is een signaal en dus een boolean. De mogelijkheid bestaat om
dit als trigger te gebruiken indien op een flank gewacht wordt.
6.85 Wait for signal
100
Wait for condition
Dit is gelijkaardig met het vorige commando met dit verschil dat
voor de wachtvoorwaarde hier gebruik kan worden gemaakt van variabelen die geen booleans
zijn. ( Vb tellers…)
6.5.4.3. Task commands
Start task
Met deze task kan gesprongen worden naar een motion task
vanuit een background task of een motion task. Een motion task
kan zichzelf ook zonder problemen oproepen en op die manier een bepaalde task dus eigenlijk
cyclisch laten uitvoeren. Het oproepen vanuit de background task gebeurt met een puls. Als een
2de puls gegeven wordt tijdens het uitvoeren van de task zal de motion task opnieuw beginnen.
6.86 Start MotionTask
Interrupt task
De interrupt task onderbreekt een motion task. Een beweging die
al begonnen is, zal niet gestopt worden, maar wordt eerst verder
uitgevoerd. Het gebruik van een puls is niet noodzakelijk.
6.87 Interrupt task
101
Continue task
Een task die door een interrupt onderbroken is, zal met dit
commando weer verdergezet worden vertrekkende van de positie
waar deze gestopt is. Voor dit commando mag geen puls gebruikt worden.
6.88 Continue task
Reset task
Een ‘reset task’ zal een programma stoppen. In tegenstelling tot
een interrupt kan de task nadien niet verder uitgevoerd kunnen
worden. Een begonnen taak wordt wel verder afgewerkt.
Opm: Een ‘reset task’ en ‘start task’ mogen niet uitgevoerd worden in dezelfde cyclus. Het is in
dit geval beter om enkel een ‘start task’ uit te voeren. Het gebruik van een puls is niet
noodzakelijk.
6.89 Reset task
102
Task state
Met het commando ‘Task state’ kan de status van een bepaalde
motion task uitgelezen worden. Er moet enkel een globale
variabele van het type dubbelwoord aangemaakt worden en bij Return value ingegeven worden.
Het is uiteraard van belang dat dit commando continue doorlopen wordt in de backgroundtask.
6.90 Task state
Dit zijn de statussen die uitgelezen werden bij het uitvoeren van een test
2 De motion task is niet opgeroepen.
4 De motion task is opgeroepen.
20 Bij een overgang van commando.
36 De motion task is in uitvoering en kreeg een interrupt commando.
34 De motion task is niet in uitvoering en kreeg een interrupt commando.
6.5.4.4. Single axis commands
Switch Axis enable/disable
Met deze commando’s worden de enables van de assen
hoog/laag gezet, waardoor deze bekrachtigd/onbekrachtigd zijn.
Via traversing mode kan gekozen worden waarvoor de as geactiveerd/gedeactiveerd moet zijn.
6.91 Switch axis enable
103
Homing Axis
Via homing axis kan een homing uitgevoerd worden. Er is keuze
tussen een passieve en een actieve homing. De homing appoach
velocity is de snelheid waarmee de as zijn referentiepunt zal zoeken.
6.92 Home axis
Positioning axis
Dit is een basis positioneringscommando. In het eerste tabblad
kunnen de parameters ingegeven worden zoals de afstand die
moet afgelegd worden en de maximum snelheid. Ook de draairichting en het type positionering
kan ingesteld worden. Dit zijn online waarden. De offline waarden zijn de waarden die gebruikt
worden indien ‘default’ ingesteld is. Op het tabblad ‘Dynamics’ kunnen de versnelling en de jerk
ingesteld worden.
6.93 Position axis
Bij vele commando’s zullen aan de onderkant van het venster de volgende comboboxen staan. De
onderste combobox ‘Delay program execution’ bepaalt wanneer het programma verdergezet
wordt. Op het moment dat het programma de positionering aanvat kan het programma blijven
104
wachten en pas naar de volgende stap gaan in de chart op een aangeduid moment. Dit kan direct
zijn, maar dit kan ook na de versnelling zijn of op het moment dat de vertraging begint. Dit kan
als vervanging dienen voor een ‘Wait for axis’ signaal. Het al dan niet verdergaan van het
programma kan via monitoring gemakkelijk waargenomen worden. Indien 1 van deze
mogelijkheden niet voldoende is, wordt toch beter een ‘Wait for axis’ commando gebruikt.
6.94 Delay program execution
Een volgende instelmogelijkheid is de overgang tussen twee commando’s voor eenzelfde as.
Indien een positioneercommando gestart wordt en een vorig commando is nog in uitvoering bij
dezelfde as, dan moet bepaald worden wat hiermee moet gedaan worden, wat de overgang moet
zijn. Hiervoor zijn vijf mogelijkheden. Om een duidelijk beeld te geven van deze mogelijkheden
worden deze begrippen met scoopbeelden geïllustreerd. Per overgang zijn er twee beelden. Het
eerste beeld is als eerste een traag commando en als tweede onmiddellijk een snel commando. Bij
de 2de grafiek is het omgekeerd. De commando’s zijn identiek op de snelheid na uiteraard.
6.95 Transition behaviour
Elk commando voert een positionering uit van 3600°. Het trage commando heeft hierbij een
maximum snelheid van 120 rpm (720°/s) en het snelle commando 300 rpm (1800°/s). Ook de
versnellingen zijn verschillend. Bij het trage commando is de acceleratie 200°/s² en de deceleratie
500°/s². Bij het snelle commando is dit voor zowel acceleratie als deceleratie 5000°/s².
105
Blending: Met blending zal er een overgang plaatsvinden tussen de twee
commando’s op het moment dat het ene commando begint te vertragen. De twee positioneringen
worden wel volledig uitgevoerd. Op de scoopbeelden is te zien dat een positie van 7200° bereikt
is.
6.96 Blending: traag - snel
6.97 Blending: snel - traag
106
Substitute: Bij een ‘substitute’- overgang zal een 2de commando het 1ste commando
stopzetten en direct overgaan naar het tweede commando. De eerste positionering zal dus niet
volledig afgewerkt worden. Dit is vooral op het 2de scoopbeeld af te lezen. De as eindigt op een
positie van 5600°. Indien een snel commando vervangen wordt door een traag, zal de as
vertragen met de deceleratie van het 2de commando zoals op figuur 2.
6.98 Substitute: traag - snel
6.99 Substitute: snel - traaag
107
Attach: Bij een ‘attach’- commando worden de commando’s in een buffer geplaatst
en worden deze gekoppeld aan het vorige commando op het moment dat dit uitgevoerd is. De
positionering van de verschillende commando’s wordt uiteraard correct uitgevoerd.
6.100 Attach: traag - snel
6.101 Attach: snel - traag
108
Attach – delete pending command: Deze overgang zal net zoals bij ‘Attach’ een
volgend commando starten op het moment dat het vorige commando afgelopen is. Het verschil
met ‘Attach’ is het feit dat een commando dat aan het wachten is in de buffer gewist wordt door
een derde commando. Op scoopbeeld 1 is het resultaat te zien van drie commando’s: traag – snel
–traag. Het snelle commando is niet uitgevoerd. Op scoopbeeld 2 is de volgorde veranderd naar
traag – traag – snel
6.102 Attach – delete pending command: traag - snel - traag
6.103 Attach – delete pending command: traag – traag - snel
109
Superimpose: Met de ‘superimpose’- overgang zullen verschillende commando’s
gewoon op elkaar geplakt worden. Zo is af te lezen op scoopbeeld 1 dat de maximum snelheid
420°/s geweest is. Dit is de som van de maximum snelheid van de trage en de snelle as. Op beeld
2 is dan weer duidelijk te zien hoe na positie 1 het trage commando gesuperponeerd is op de piek
van het snelle commando. Punt 1 is het moment dat het 2de positioneringcommando geactiveerd
werd. Punt 2 is het einde van het snelle commando. De twee opeenvolgende commando’s mogen
niet allebei ingesteld zijn als superimpose.
6.104 Superimpose: traag - snel
6.105 Superimpose: snel - traag
110
Stop axis
Een beweging kan gestopt worden aan de hand van de ‘Stop
axis’ - commando.
6.106 Stop axis
Speed specification
Dit is een commando waarbij een snelheid opgelegd wordt aan
de motor. Deze snelheid wordt geregeld met de
snelheidsregelaar. Het is dan ook zo dat indien er een positiefout optreedt, deze niet
gecompenseerd zal worden en de fout dus zal blijven bestaan.
6.107 Speed specification
Start axis position-controlled
Dit commando is gelijkaardig aan het vorige commando, met dit
verschil dat een positieverschil hier wel weggewerkt zal worden.
6.108 Start ais position-controlked
Continue motion
Een beweging die gestopt is, kan met behulp van dit commando
afgewerkt worden.
6.109 Continue motion
111
Set axis parameter
Om bewegingen te kunnen uitvoeren zijn parameters nodig zoals
de snelheid, de versnelling en dergelijke. Deze kunnen
ingegeven worden in dit ‘commando’. Door het vinkje van een parameter aan te duiden kan een
waarde opgegeven worden binnen bepaalde grenzen. Bij de bewegingscommando’s moet dan bij
transition behaviour ‘default’ opgegeven staan. Dit is in principe enkel nodig de eerste keer
voordat een motor aangesproken wordt omdat standaard 0 opgegeven staat als parameter. Nadien
zullen de parameters ingevuld zijn en gebruikt worden bij een volgend commando zolang ze niet
overschreven worden door een andere blok ‘Set axis parameter’.
Een andere eenvoudigere manier om de dynamische waarden in te geven is eenvoudigweg door
deze bij de commando’s zelf in te geven.
6.110 Set axis parameter
6.5.4.5. Multi axis commands
Gearing
Om in te koppelen kan gebruik gemaakt worden van het Gearing
on commando. Er zijn twee manieren om in te koppelen. Een
eerste manier is het relatief inkoppelen. Hierbij zal de motor inkoppelen en eenmaal aangepast
aan de snelheid de as aan dezelfde snelheid volgen. Het nadeel hiervan is dat op het moment dat
de as inkoppelt de andere as alweer wat verder is. Het positieverschil tussen de twee wordt niet
gecompenseerd. De andere manier om te gearen is het absoluut inkoppelen. Hierbij wordt het
positieverschil wel gecompenseerd. De motor zal eerst wat sneller draaien om de achterstand in te
halen en zal dan de as volgen. Relatieve koppeling is dus als het ware een snelheidsgebaseerde
koppeling en absolute koppeling een positiegebaseerde koppeling. De keuze voor absolute
koppeling of relatieve koppeling kan gemaakt worden in het tabblad ‘parameter’ van de ‘gearing
112
on’- blok bij de combobox ‘Reference point’. Absoluut gearen komt overeen met ‘Gearing takes
place relative to axis zero’. Relatief gearen komt overeen met ‘gearing takes place relative to
start position’.
Naast de keuze van absoluut of relatief gearen bestaat nog een referentiekeuze. Er kan gekozen
worden tussen de tijd en de leidende as als referentie.
Time synchronisation: Bij time synchronisation zal de koppelende as ervoor zorgen dat hij zich
op dezelfde positie bevindt als de leidende as op het moment dat deze bvb klaar is met de
positionering. Om aan time synchronisation te doen moet in het tabblad ‘Synchronisation’ als
referentie ‘Time’ gekozen worden in de combobox ‘Synchronisation reference’
6.111 Synchronisation reference
Hierdoor komt nu een extra tabblad bij (Dynamics) waarin de maximale dynamische waarden
ingevuld kunnen worden. Er is een combobox voorzien, maar de mogelijkheid bestaat om
effectief getallen in te vullen. Om time synchronisation beter te begrijpen zijn met de scoop de
snelheden en posities van de twee assen tijdens het gearen opgenomen. (figuur 6.112)
6.112 Scoop: Time synchronisation: Absoluut
113
Op deze figuur is te zien hoe as 2 begint aan te lopen op het moment dat as 1 klaar is met de
versnelling. Dit is een gevolg van de instelling bij de positionering van as 1. Net voordat de twee
assen op dezelfde positie komen, wordt de snelheid verminderd en draaien de assen op gelijke
snelheid. De synchronisatie is voltooid. De dynamische parameters voor deze actie kunnen
ingesteld worden op het extra tabblad dat te voorschijn komt bij het selecteren van time
synchronisation. Om te weten wanneer de synchronisatie voltooid is, is een aparte berekening
noodzakelijk. Op figuur 6.113 is een scoopbeeld te zien van een situatie waarbij een relatieve
koppeling gemaakt werd. Er is dus inderdaad een positieverschil te zien.
6.113 Scoop: Time synchronisation: Relatief
Het is ook mogelijk om bewust een offset toe te voegen om een positieverschil te creëren. De
slave zal iets langer op maximale snelheid draaien. Zo is er op onderstaande figuur een
positieverschil af te lezen van 1000°.
6.114 Scoop: Time synchronisation: Absoluut: Offset
114
Leading axis: Indien de leidende as als referentie genomen wordt, dan zal de koppelende as de
inhaalbeweging willen uitvoeren binnen een bepaald positieverschil van de leidende as. Hier
werd als synchronisation length (tabblad synchronisation) een verschil van 1000° ingesteld. Op
figuur 6.115 start de absolute koppeling op het moment dat de master op positie 1250° is. De
koppelende slave moet nu gesynchroniseerd worden voordat de master op een positie van 2250°
is. Hierbij moet het positieverschil dan nog gecompenseerd worden.
6.115 Scoop: Lead axis: Absoluut: 1000°
Bij de relatieve koppeling wordt enkel het snelheidsverschil overbrugd en blijft het
positieverschil aanwezig.
6.116 Scoop: Lead axis: Relatief: 1000°
Het ‘gearing out’- commando verloopt identiek aan het ‘gearing on’- commando en wordt niet
verder besproken.
115
Camming
Met Simotion scout is het mogelijk om nokken te simuleren door
elektronische nokken aan te maken. Het creëren van de
verschillende mogelijke nokken werd eerder besproken in paragraaf 5.6.2 en zal in dit hoofdstuk
dus niet opnieuw behandeld worden.
Om een cam te activeren kan gebruik worden gemaakt van het ‘Cam on’-commando. In dit
commando moet meegegeven worden welke cam gebruikt wordt en welke assen de slave en de
master zullen zijn.
6.117 Cam on
Op het moment dat op OK geklikt wordt, zal de cam toegevoegd worden in de treeview bij
‘synchronous operation’ van de slave.
6.118 toevoegen cam
116
Om zeker te zijn dat de slave de master zal volgen, moet een goede instelling gemaakt worden.
Zo staat bij position reference ingesteld dat de synchronisatie voltooid moet zijn voor een
bepaalde synchronisatiepositie van de master. Deze positie staat standaard op 0 ingesteld. De
master moet dus zeker in de buurt komen van dit punt vooraleer de synchronisatie kan beginnen.
Controleer dus of dit het geval is. Indien niet kan de waarde van de synchronisatiepositie
aangepast worden of moet de as bv gehomed worden. De parameters die in figuur 6.119
aanwezig zijn, zijn de default-waarden. Deze kunnen aangepast worden in het 2de tabblad
‘synchronisation’ van het ‘cam on’-commando. Een andere mogelijkheid is van de assen in te
stellen op ‘Modulo’ waardoor per zoveel toeren de as opnieuw op 0 komt. Hierdoor zal de as
regelmatig passeren aan de ingestelde synchronisatiepositie en kan het synchroniseren beginnen.
6.119 Cam synchronisation
117
6.6. Safety
Indien een veiligheidsvoorziening aangebracht is, kan de safety ingesteld worden via de treeview:
D435/Sinamics_Integrated/Drives/Drive/Functions/Safety Integrated
6.120 Safety Integrated
Nu kunnen de settings gewijzigd worden op voorwaarde dat de drive ‘disabled’ is. Klik hiervoor
op ‘Change Settings’
Er zal gevraagd worden om een paswoord in te vullen. Hier is dit ‘0’.
Bij Control selection moet vervolgens voor ‘STO/SBC/SS1 via terminal’ gekozen worden.
6.121 STO/SBC/SS1 via terminal
118
Onderstaand scherm wordt verkregen. (fig 6.122)
6.122 Safety Integrated
De magnetische deurschakelaar is gekoppeld met de Control Unit en met de drives. De koppeling
met de motormodule is voorgesteld door de onderste ingang, links op de figuur. Deze kan niet
gewijzigd worden. De bovenste ingang is de koppeling met de Control Unit. Hierbij moet nog
verwezen worden naar de input waar de deurschakelaar op aangesloten is. Deze is terug te vinden
door te gaan kijken bij de Inputs/Outputs (onder CU_I_003). Daarop is te zien dat in dit geval de
deurschakelaar aangesloten is op digitale ingang 4.
6.123 Inputs/Outputs
Door nu terug in het safetygedeelte op het blauwe icoontje te drukken (fig6.124) en te kijken bij
‘Further interconnections’, kan nu onder ‘CU_I_003’ de juiste input gekozen worden.
119
6.124 Digital Input
Indien nu beide signalen onderbroken worden door het deurcontact te openen, zal de motor veilig
in stop gaan. Nu moet ingesteld worden wat het tijdsverschil moet zijn tussen het onderbreken
van beide signalen om dit te kunnen uitvoeren. Dit kan gedaan worden via de grote knop in het
midden van het scherm (fig 6.122) . Vervolgens wordt onderstaand scherm verkregen. De tijd is
in onderstaand geval ingeschakeld op 500 ms. Indien maar één signaal wegvalt, zal de CPU in
fout gaan en moet dit opgelost worden door deze te rebooten.
6.125 Safety function
120
7. Oefenprogramma
In bijlage is een programma opgenomen waarmee de werknemers van Unilin met Simotion
kunnen oefenen. Het programma (in MCC geschreven) is gekoppeld met een touch panel.
Hierdoor kunnen de motoren eenvoudig bediend worden, terwijl het programma gemonitord kan
worden en de positioneerbewegingen gevolgd kunnen worden met behulp van de trace functie. In
het komende hoofdstuk zal de structuur van het geschreven programma uit de doeken gedaan
worden samen met de bijbehorende mogelijkheden.
Het oefenprogramma is dus geschreven in Motion Control Chart. Hiervoor werden 4 MCC_Units
aangemaakt. De eerste unit is een unit waarbij in de chart mcc_infeed, de infeed geschakeld
wordt. Verder zijn ook 3 blokken aanwezig van de vorm _mc_reset om eventuele fouten in de
drie drives weg te werken.
De 3 daaropvolgende Units zijn de 3 “thema’s” waarrond geprogrammeerd is. Elke unit zal één
chart (mcc_ProgramX) bevatten die cyclisch opgeroepen wordt en één of meerdere charts met de
naam mcc_chartX die in een motiontask geplaatst worden. In de backgroundtask worden dus vier
charts toegewezen: mcc_infeed, mcc_prog1, mcc_prog2 en mcc_prog3.
Mcc_infeed
Motiontask_1
Mcc_Prog1
Motiontask_6
Motiontask_2
Mcc_Prog2
Motiontask_3
Motiontask_6
Motiontask_4
Mcc_Prog3
Motiontask_5
Motiontask_6
7.1 Structuur programma
Binnen elke chart_progX zal een enable aanwezig zijn die kan verhinderen dat de geschreven
code uitgevoerd wordt. Er zijn dus 3 enables aanwezig, waarvan er telkens maar 1 actief kan zijn.
Hierdoor is het mogelijk om met dezelfde variabelen in verschillende units te werken (dit is
121
vooral voordelig naar startsignalen toe). Elke mcc_progX is onderverdeeld in drie modules. Een
module voor de enable-comando’s van de assen, een module voor het oproepen van de
motiontasks en een module voor de disable-commando’s van de assen.
7.2 mcc_progX
In de middelste module worden dus de motiontasks opgeroepen. Deze bevatten telkens een
mcc_chart uit dezelfde unit. Zoals eerder gezegd zijn er dus drie thema’s verdeeld in drie units.
Deze zullen nu kort besproken worden.
7.3 Hoofdmenu
122
Motiontask commando’s
7.4 Motiontasks
Dit zijn de commando’s waarbij een motiontask gestart, onderbroken, verdergezet of gereset
wordt. Deze vier commando’s verwijzen telkens naar dezelfde motiontask. In deze motiontask
worden drie positiecommando’s na elkaar uitgevoerd, waardoor met monitoring duidelijk de
effecten van de eerder vernoemde commando’s bekeken kunnen worden.
7.5 mcc_prog1 en motiontask_1
123
Gearing
In dit deel van het programma kunnen vier mogelijke manieren van inkoppelen getest worden
zijnde de combinaties van relatief/absoluut en Lead axis synchronisation/Time synchronisation.
7.6 Koppelen
In de middelste module van mcc_prog2 kan motiontask_2 gestart worden. In deze motiontask
zullen eerst en vooral de beide motoren naar positie 0 lopen. Vervolgens wordt er 2 seconden
gewacht alvorens as 1 een positioneerbeweging uitvoert.
7.7 motiontask_2
Gedurende deze positionering kan de inkoppeling van as 2 gestart worden. Hiervoor wordt dan
naar motiontask_3 gesprongen waar op basis van de gemaakte keuzes het type inkoppeling
gekozen wordt.
124
7.8 Type inkoppeling
Elk type (fig. 7.10) zit vervat in een module (fig. 7.9) en is op dezelfde manier opgebouwd. De
variabele ‘gearen’ zal bepalen of er ingekoppeld of uitgekoppeld zal worden.
7.9 Motiontask_3
7.10 in-/uitkoppeling
125
Transitions
In dit derde deel van het programma kunnen de overgangen tussen de verschillende motietaken
uitgeprobeerd worden. Met behulp van de functie ‘Trace’ kunnen dezelfde testen gedaan worden
zoals in paragraaf 6.5.4.4. Vanuit de backgroundtask kunnen nu 2 motiontasks opgeroepen
worden: motiontask_4 en motiontask_5. Deze tasks bevatten allebei een case-structuur waaruit
een bepaald type van overgang gekozen kan worden. In elke tak van de structuur zit een
positioneercommando met een andere overgang.
Het verschil tussen de beide motiontasks zit hem in het gebruik van verschillende variabelen die
toegekend zijn aan de positioneertaak. De positie en de dynamische gegevens kunnen dus
verschillend ingesteld worden via de touchpanel, waardoor de overgangen duidelijk
waargenomen kunnen worden.
De variabele die het type overgang bepaalt is ‘transitionID_hulp1’ en ‘transitionID_hulp2’. Deze
werden vastgelegd in de bovenstaande If-structuren. Omwille van praktisch gebruik bij het
touchpanel, werden de waarden 1, 2, 4, 8 en 16 meegegeven met een variabele, maar in de casestructuur moet een 0, 1, 2, 3 en 4 gebruikt worden voor de takken. Via de If-structuren gebeurt de
omzetting. Uiteraard kunnen de positioneercommando’s nu rechtstreeks in de If-structuren
geplaatst worden, maar dit werd niet aangepast om voorgaand probleem te kunnen illustreren.
126
8. Besluit
Na het uitvoeren van dit eindwerk blijkt inderdaad dat het gebruik van een Simotion module vele
voordelen heeft ten opzichte van een combinatie Sinamics-Technology. Zo bevinden drives,
controller, infeed en bovenliggende PLC zich in één geheel, verbonden via een uiterst
gemakkelijke interface, Drive-CLiQ. Deze geeft bij de configuratie de kenplaatgegevens van de
motor, van de encoder en van andere Drive-CLiQ modules door waardoor het configureren
rapper en correcter gebeurt. Een bovenliggende PLC bevindt zich nu samen met de controller in
één module. De opstellingen worden hierdoor een stuk compacter en ook het programmeren en
configureren gebeuren in eenzelfde programma.
Een andere grote vooruitgang is het gebruik van programmeertalen die voldoen aan de IEC
61131-3 standaard in plaats van STL. De bekende talen (ST en LAD/FBD) kunnen bijgevolg
gemakkelijk gecombineerd worden met de nieuwe programmeertalen die Siemens speciaal voor
motion-opdrachten gecreëerd heeft. Eén van die talen is Motion Control Chart (MCC). Deze taal
is specifiek voor sequentiële taken ontwikkeld en zorgt voor een vlotte programmering. Er zijn
heel veel mogelijkheden bij Simotion op het gebied van parameters en dergelijke, wat een
voordeel is, maar dit vereist dan wel dat de vele parameters correct ingesteld moeten zijn opdat er
geen fouten optreden. Ook moet bewust omgegaan worden met de plaatsing van blokken en de
structuur bij het programmeren. Vaak is de aanwezige ‘Help’ onvoldoende. Het is dus een
complex systeem, maar indien de programmeertalen en de programmeerwijzen goed gekend zijn,
kan vlot een programma gecreëerd worden. Het is dan ook niet verwonderlijk dat er tijdens het
tweede semester, waarbij de Simotion module aan bod kwam, vaak veel tijd verloren werd aan
bepaalde hardnekkige problemen. Uiteindelijk zijn de beide handleidingen toch op tijd afgewerkt.
Met het schrijven van deze handleidingen zouden de werknemers van Unilin nu een voorsprong
moeten hebben, doordat bepaalde problemen voor hen opgelost zijn.
De Simotion D435 module lijkt dus een sterke nieuwe stap in de motion control. De belangrijkste
reden waarom deze nog niet doorgebroken is, ligt aan de complexiteit van het systeem.
127
9. Literatuurlijst
Cursus
Capoen H., Overzicht van de belangrijkste industriële netwerken
Eindwerk
Deprey O. & Depoorter D., Sinamics Servo systeem
Handleidingen
Simotion D435 documentation CD
Sinamics S120 documentation CD
Websites
Unilin, Unilin…Doorheen de tijd. 07/12/08. http://www.unilin.com/Default.aspx
Siemens, automation systems. 12/03/09.
http://www.automation.siemens.com/_en/portal/html/products/products_automation.htm
Procentec, Wat is profibus?. 13/04/09. http://www.procentec.com/wat-is-pb/index.html
Siemens Automation & Drives, Drive Control Chart provides for graphical programming.
13/04/09. http://www.machinebuilding.net/p/p0529.htm
128