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