• Like
Phoenix Contact, themadag "Gestructureerd Programmeren - IEC 61131-3 garandeert een enorme boost aan uw efficiency"

Phoenix Contact, themadag "Gestructureerd Programmeren - IEC 61131-3 garandeert een enorme boost aan uw efficiency"

  • 273 views
Uploaded on

Themadag Gestructureerd Programmeren - IEC 61131-3 garandeert een enorme boost aan uw efficiency …

Themadag Gestructureerd Programmeren - IEC 61131-3 garandeert een enorme boost aan uw efficiency

Het programmeervak in Nederland staat op een hoogniveau. Toch is een extra kwaliteitsimpuls mogelijk door te programmeren volgens de IEC 61131-3. Het juist hanteren van deze norm biedt zowel voor de programmeur als opdrachtgever meer efficiency en kwaliteit.
Wie overstapt op IEC 61131-3 boekt op termijn belangrijke winst. IEC 61131-3 standaardiseert alles wat met programmeertalen te maken heeft. Software kan men hierdoor op een gestructureerde wijze opbouwen. Modificaties en uitbreidingen kunnen zo sneller uitgevoerd worden.
Op de themadag krijgt u praktijkgerichte informatie van gespecialiseerde technici. Niet alleen van Phoenix Contact maar ook van Bert van der Linden, schrijver van een boek over gestructureerd programmeren volgens IEC 61131-3 en werkzaam bij de firma ATS. Hij maakt u bewust van de gevaren van ‘vrij programmeren’ én van de voordelen van IEC 61131-3. Ook is er aandacht voor de programmeersoftware van Phoenix Contact die voldoet aan de norm.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
273
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
8
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ThemadagGestructureerdProgrammerenvoorjaar 2013
  • 2. Welkom bij PHOENIX CONTACTBert van der LindenHarm GeurinkThemadag GestructureerdProgrammerenIEC 61131-3 garandeert een enormeboost aan uw efficiency2ProgrammaThemadag ‘Gestructureerd Programmeren’Harm GeurinkBert van der Linden1/52
  • 3. 39.00 Introductie Harm Geurink9.15 Standaarden Harm Geurink10.00 IEC 61131, deel I Bert van der Linden10.30 Koffie11.00 IEC 61131, deel II Bert van der Linden12.30 Lunch13.30 Gestructureerd programmeren I Bert van der Linden14.30 Koffie15.00 Gestructureerd programmeren II Bert van der Linden15.45 Afsluiting Harm Geurink16.00 EindeProgrammaThemadag ‘Gestructureerd Programmeren’Logistiek- enKwaliteitsmanagementFinancieel-, Automatiserings-en Personeelsmanagement245 werknemersin de BeneluxOpgericht in 1978Omzet:€ 110 mln. (in 2012)B NLNLCito Benelux groepHoldingNL2/52
  • 4. PHOENIX CONTACT hoofdvestigingBlombergBad PyrmontPHOENIX CONTACT ElectronicsBad PyrmontBlomberg3/52
  • 5. WereldwijdMedewerkers / omzet1,59 bn €Germany30%International70%Sales Share’10’07’01 ’02 ’03 ’04 ’05 ’0612.80010,0005,0006,000Employeesworldwide7,0009,000’08600700Sales inmillion EUR8009001,000’09 ’118,00011,00012,00013,00014,00015,0001,1001,2001,3001,400500’124/52
  • 6. BedrijfsstructuurCLIPLINEIndustriële aansluittechniek Aansluitklemmen Coderingsmateriaal Montagemateriaal Gereedschap5/52
  • 7. PLUSCONAansluittechniek en bekabeling voor veldapparaten Ronde connectoren Sensor-/actorbekabeling Dataconnectoren Apparaatconnectoren Zware industriëleconnectorenCOMBICONApparatenaansluittechniek en elektronicabehuizingen COMBICON control COMBICON power COMBICON compact COMBICON IO COMBICON housing6/52
  • 8. INTERFACESignaalconverters en voedingen Serial Power Analog DigitalAUTOMATIONComponenten en systemen Network technology Control technology Operating and monitoring Software I/O systems Drives7/52
  • 9. TRABTECHPower & Signal Quality Netvoeding M&R-techniek Informatietechniek Zend- en ontvang-installatiesBranchesChemie Energie Olie- en gas TelecommunicatieAutomobielWater Machinebouw Electronica UtiliteitInfratechniek8/52
  • 10. 179.00 Introductie Harm Geurink9.15 Standaarden Harm Geurink10.00 IEC 61131, deel I Bert van der Linden10.30 Koffie11.00 IEC 61131, deel II Bert van der Linden12.30 Lunch13.30 Gestructureerd programmeren I Bert van der Linden14.30 Koffie15.00 Gestructureerd programmeren II Bert van der Linden15.45 Afsluiting Harm Geurink16.00 EindeProgrammaThemadag ‘Gestructureerd Programmeren’Themadag Gestructureerd ProgrammerenIEC 61131-3 garandeert een enorme boost aan uw efficiencyStandaard“Een standaard (of norm) is een procedure of een maatwaarvan een groep mensen met elkaar heeft afgesprokendat ze hem zullen gebruiken”Efficiency?Het juist hanteren van een norm is bepalend voor de mate van dete behalen efficiency en kwaliteit.9/52
  • 11. Themadag Gestructureerd ProgrammerenToepassing van open standaarden in de industriële automatisering‘80‘60‘50IEC 61158SNMPFTP XMLLLDP http…TCP/IPIEC 61131…‘00‘90‘80Themadag Gestructureerd ProgrammerenToepassing van open standaarden in de industriële automatisering10/52
  • 12. IndustriëleAutomatisering‘Kantoor’AutomatiseringITIAThemadag Gestructureerd ProgrammerenToepassing van open standaarden in de industriële automatiseringIndustriëleAutomatisering‘Kantoor’AutomatiseringThemadag Gestructureerd ProgrammerenToepassing van open standaarden in de industriële automatisering11/52
  • 13. Integratie van IT in de industriële automatiseringIT Powered AutomationThemadag Gestructureerd ProgrammerenIEC 61131-3 garandeert een enorme boost aan uw efficiency12/52
  • 14. 1) Netwerk configureren2) Applicatie programmeren3) Variabelen koppelen met de IOThemadag Gestructureerd ProgrammerenSoftware: Programmeren ‚in 3 stappen een project‘Themadag Gestructureerd ProgrammerenSoftware: 1) Netwerk configureren13/52
  • 15.  Ladder (LD) Function Block Diagram (FBD) Instruction List (IL) Structured Text (ST) Sequential Function Chart (SFC)Themadag Gestructureerd ProgrammerenSoftware: 2) Applicatie programmerenThemadag Gestructureerd ProgrammerenSoftware: 3) Variabelen koppelen met de IO14/52
  • 16.  Cross Compiling Cross Reference list Watch Windows Logic Analyser Excellent DiagnoseLDFBDILSTThemadag Gestructureerd ProgrammerenSoftware: Programmeren volgens IEC 61131-3309.00 Introductie Harm Geurink9.15 Standaarden Harm Geurink10.00 IEC 61131, deel I Bert van der Linden10.30 Koffie11.00 IEC 61131, deel II Bert van der Linden12.30 Lunch13.30 Gestructureerd programmeren I Bert van der Linden14.30 Koffie15.00 Gestructureerd programmeren II Bert van der Linden15.45 Afsluiting Harm Geurink16.00 EindeProgrammaThemadag ‘Gestructureerd Programmeren’15/52
  • 17.  www.plcopen.org Boek „besturings- en PLC-techniek“ISBN 978-90-425-1648-9Themadag Gestructureerd ProgrammerenInformatie www.ats-global.com www.phoenixcontact.nlThemadag Gestructureerd ProgrammerenInformatie16/52
  • 18.  www.phoenixcontact.nl rubiek SeminarsThemadagen / SeminarsInformatieWelkom bij PHOENIX CONTACTBert van der LindenHarm Geurink“IEC 61131-3 garandeert eenenorme boost aan uw efficiency”17/52
  • 19. Welcome to PHOENIX CONTACTThemadagGestructureerdprogrammerenINTRODUCTIE THEMADAG2 | Introductie Themadag | Bert van der Linden | ATS | (2008-2013)18/52
  • 20. Mikado en gestructureerd programmeren3 | Introductie Themadag | Bert van der Linden | ATS | (2008-2013)Doelstellingen en voorkennisDoelstelling:• Inzicht geven in gestructureerd programmeren in ‘brede’ zinwaarmee de kwaliteit van een applicatie is te verbeteren metbehulp van de IEC61131-3.Voorkennis:• (Enige) ervaring met het programmeren van industriële(technische) processen.4 | Introductie Themadag | Bert van der Linden | ATS | (2008-2013)19/52
  • 21. Invalshoeken/ uitgangspunten• Niet alleen structuren ten gevolge van gestructureerdprogrammeren in formele zin maar ook andere mogelijkestructuren met de IEC 61131-3.• Er komen geen dialecten aan de orde laten, maar eennauwkeurige beschrijving volgens de IEC61131-3, anders eenvermelding.• Er is geen algoritme/procedure die altijd tot een goed resultaatzal leiden. Het is dus een heuristische taak.• Er zijn richtlijnen die richting geven aan een goede oplossing.• Een voorbeeldapplicatie speelt een centrale rol om demogelijkheden in de praktijk te tonen.5 | Introductie Themadag | Bert van der Linden | ATS | (2008-2013)Inhouden• Inleiding gestructureerd programmeren• Gestructureerd programmeren (Enge zin)• IEC61131 en kwaliteit• PLCopen• Gestructureerd programmeren : Ontwerpfase• Gestructureerd programmeren : Coderingsfase6 | Introductie Themadag | Bert van der Linden | ATS | (2008-2013)20/52
  • 22. INLEIDING GESTRUCTUREERDPROGRAMMEREN7 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013)Criteria:• Het programma moet correct en robuust werken. JA/NEE?• Lage productiekosten. JA/NEE?• Goede prestaties. JA/NEE?• Portabiliteit. JA/NEE?• Lage onderhoudskosten. JA/NEE?• Hoge mate van betrouwbaarheid. JA/NEE?• Tijdige aflevering. JA/NEE?8 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013)21/52
  • 23. Programma bakken cake (1/4)Omschrijving:Deze cake bestaat uit een gelijke verhouding van vierbasisingrediënten. Als smaakversterker kan je er heel fijn gerasptecitroenschillen of een schutje bruine rum aan toevoegen. Ookzonder smaakversterker krijg je een lekkere cake, maar hiergebruik ik toch vanillesuiker.Ingrediënten:• 150 gram boter, 150 gram suiker en• 150 gram bloem, 3 eieren (150 gram), 1 zakje vanillesuiker9 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013)Programma bakken cake (2/4)Werkwijze 1: Klop de zachte boter en suiker op tot alles egaal wit is. Blijf kloppen en voeg er één voor één de eieren aan toe. Doe er ook al roerend het zakje vanillesuiker bij. Zeef de bloem. Klop het deeg verder op terwijl je de gezeefde bloem toevoegt. Vet de zijden van de cakevorm in met boter. Doe er bloem in, en schud die er terug uit. (Op die manier blijft er bloem aan de vorm hangen en zal de cakezeker niet blijven plakken). Doe het deeg in de cakevorm en plaats die 36 minuten in een aan 180°C voorverwarmde oven (reken 1 uurbaktijd per kilogram deeg).10 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013)22/52
  • 24. Programma bakken cake (3/4)Werkwijze 2:• Klop de zachte boter en suiker op tot alles egaal wit is.• Blijf kloppen en voeg er één voor één de eieren aan toe.• Doe er ook al roerend het zakje vanillesuiker bij.• Zeef de bloem.• Klop het deeg verder op terwijl je de gezeefde bloem toevoegt.• Vet een cakevorm in met boter• Invetten onderzijde• Invetten linkerzijde• Ga naar punt 7• Invetten achterzijde• Invetten rechterzijde• Invetten voorzijde• Ga naar punt 8.• Doe er bloem in, en schud die er terug uit. (Op die manier blijft er bloem aan de vorm hangen en zal de cakezeker niet blijven plakken). Ga naar 6d.• Doe het deeg in de cakevorm en plaats die 36 minuten in een aan 180°C voorverwarmde oven (reken 1 uurbaktijd per kilogram deeg).11 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013)Programma bakken cake (4/4)12 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013)23/52
  • 25. Programmeren en programma• Programmeren is het ontwerpen, schrijven (coderen) en testenvan een programma.• Een programma is een lijst van instructie (een reeks opdrachten),gecodeerd in een voor de PLC verwerkbare (uitvoerbare) vorm,om een bepaald resultaat te bereiken.• De PLC executeert het programma.• Het programma is een specificatie.• Een programmeertaal is een formeel communicatiemiddel tussende programmeur en de computer.13 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013)Structureren en structuur• Structureren is synoniem voor organiseren en ordenen.• Structuur is synoniem voor organisatie, samenstelling, vorm enopbouw.• Structuur betekent een functionele indeling.14 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013)24/52
  • 26. Samenvatting• Gestructureerd programmeren heeft te maken met samengesteldgeheel. Een programma dat bestaat uit modulen.• Gestructureerd programmeren zegt iets over de vorm (structuur)van het programma en niet over de functionaliteit.15 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013)GESTRUCTUREERDPROGRAMMEREN16 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013)25/52
  • 27. Gestructureerd programmeren : Essentie• Een gestructureerd programma is in essentie een programmadat gemakkelijk te begrijpen is en maakt daarbij gebruik vanabstractie.• Eén van de oplossingen, voor gestructureerd programmeren, ishet gedisciplineerd toepassen van besturingsconstructies ombesturingsabstractie te bereiken door het vermijden van hetGOTO-statement.17 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013)Gestructureerd programmeren : Herkomst• Gestructureerd programmeren is bedacht door E.W. Dijkstrae.a.• Het bestaat uit drie besturingsconstructies:• opeenvolgingen;• keuzes;• herhalingen.18 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013)26/52
  • 28. Gestructureerd programmeren : Doel (1/2)• Het doel van gestructureerd programmeren is het verkrijgenvan een begrijpelijk programma.• Door gestructureerd te programmeren is het programma beterte onderhouden.• Het voorkomen van Goto-statements. Let op: Het is eenmiddel en geen doel op zich.19 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013)Gestructureerd programmeren : Doel (2/2)20 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013)27/52
  • 29. Gestructureerd programmeren : Acceptatie• Gestructureerd programmeren is een manier om de kwaliteitvan programma’s te verbeteren.• Er zijn ook diagrammen ontwikkeld in overeenstemming met dedenkwijze van gestructureerd programmeren(ProgrammaStructuurDiagrammen).• Het betreft alleen maar besturingsabstractie en geen anderevormen van abstractie.• Het is alleen geschikt voor datatransformaties en minder voorde besturing van een proces.21 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013)Gestructureerd programmeren : Acceptatie22 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013)28/52
  • 30. Gestructureerd programmeren: Kwaliteit• Gestructureerd programmeren draagt dus bij aan de kwaliteit vaneen programma.• Het draagt bij aan:• Reliability;• Maintainbility;• Adaptablility.Zijn er nog maar technieken die bijdragen aan de kwaliteit van dehet programma? Gestructureerd programmeren in ‘brede’ zin.Structuren toepassen die de kwaliteit verbeteren van eenprogramma.23 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013)Gestructureerd programmeren: Methode• Functionele decompositie:• Gericht op functies of acties die een programma moet uitvoeren.• Begint met een abstracte functie en daarna steeds meer detail.• Iedere fase van decompositie een abstracte machine.• Data-flow diagrammen• Gestructureerd systeemontwerp (Page-Jones).• Gestructureerde analyse (Yourdon of Hatley&Pirbhai of Wieringa).24 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013)29/52
  • 31. IEC 61131 EN KWALITEIT25 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)IEC 61131 : Onderdelen• 1 General overview, definitions IS• 2 Hardware IS• 3 Programming Languages IS• 4 User Guidelines IS• 5 Messaging Service Specification IS• 7 Fuzzy Logic IS• 8 Technical ReportIS = International Standard26 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)30/52
  • 32. IEC 61131- 3: Introductie (1/2)• De IEC 61131-3 is een standaard op het gebied vanprogrammeertalen voor ‘moderne’ PLC-systemen.• Vijf programmertalen:• Instruction List IL• Structured Text ST• Ladder Diagram LD• Function Block Diagram FBD• Sequential Function Chart SFC27 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)IEC 61131-3 : Introductie (2/2)28 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)31/52
  • 33. IEC 61131-3 : Instruction listToepassing: Eenvoudige rekenkundige bewerkingen.29 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)IEC 61131-3 : Structured TextToepassing: Complexe rekenkundige bewerkingen entoestandsmachines.30 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)32/52
  • 34. IEC 61131-3 : LadderdiagramToepassing: Eenvoudige logische vergelijkingen.31 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)IEC 61131-3 : Function block diagramToepassing: Logische vergelijkingen maar ookeenvoudige berekeningen.32 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)33/52
  • 35. IEC 61131-3 : Sequentiel function chartToepassing: Sequentiële processen.33 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)IEC 61131-3 : SoftwaremodelGlobal and direct variablesAccess pathExecutioncontrol pathVariableaccess pathFBTaskProgram ProgramFB FBTaskProgramTaskProgramFB FBTaskResource ResourceConfigurationCommunication FunctionFunction BlockVariable34 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)34/52
  • 36. IEC 61131: KwaliteitDe belangrijkste ontwikkelingen in de norm ter verbetering van dekwaliteit zijn:• Encapsulation en hiding;• Explicit representation of state;• Mapping to the application domain;• Mapping of design to implementation;• Structured programming;• Software reuse.35 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)Encapsulation and hiding (1/2)• Encapsulation is het inpakken van functioneel gerelateerde dataen/of procedures in een enkelvoudige software-entiteit.• Information hiding is verbergen van data en procedures voor degebruiker door een externe interface en gespecificeerdefunctionaliteit. Ontwerpbeslissingen zijn verborgen, dus deinterne structuren van data en procedures.36 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)35/52
  • 37. Encapsulation and hiding (2/2)37 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)Explicit representation of state• Door het toepassen van stappen ontstaat er een explicieterepresentatie van een toestand. Dus de toestand hoeft niet teworden afgeleid van interne variabelen; zoals input oftoestandsvariabelen.• SFC realiseert ook structuur in een programma, in de vorm vanstappen, transities en acties.• SFC verbetert ook de reactie en verwerkingscapaciteit omdat dePLC alleen de instructies (een deel van het algortime) uitvoertvan de actieve stap.• Andere optie is het bouwen van een toestandsmachine met LD,FBD of ST.38 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)36/52
  • 38. Software reuse (1/3) :• Het programmeermodel ondersteunt de mogelijkheid vanhergebruik van code.• De gebruiker kan deze software-elementen ontwikkelen doormiddel van een ‘Bottom-up’ implementatieproces (implementerendoor functionele compositie).• Natuurlijk ondersteunt de IEC 61131 ook de ‘Top-down” ontwerp-proces (ontwerp door functionele decompositie).39 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)Software reuse (2/3) :40 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)37/52
  • 39. Software reuse (3/3) : X-model41 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)PLCOPEN42 | PLCopen | Bert van der Linden | ATS | (2008-2013)38/52
  • 40. MissieWe want to be the leading associationresolving topics related tocontrol programmingto support the use ofinternational standards in this field.43 | PLCopen | Bert van der Linden | ATS | (2008-2013)Organisatie (1/2)• TC1: Standaard• TC2: Functies• TC3: Certificering• TC4: Communicatie• TC5: Veilige software• PC1: Promotie algemeen• PC2: Algemeen trainingsprogramma• PC3: Promotie Noord-Amerika• PC4: Promotie Japan44 | PLCopen | Bert van der Linden | ATS | (2008-2013)39/52
  • 41. Organisatie (2/2)BOM, MD & General MeetingTC1 TC3TC4TC5PC2PC3TC2 PC4PC145 | PLCopen | Bert van der Linden | ATS | (2008-2013)Compliancy niveau’s (1/3)• Zonder testen bestaat er geen ‘compliancy’.• De IEC 61131-3 geeft basisregels voor ‘compliancy’.• Certificering is een herkenbaar keurmerk voor gebruikerswaarmee ze ‘echte’ IEC 61131-3 programmeeromgevingenkunnen herkennen.• De ‘compliancy’ niveau’s zijn:• base;• reuseability;• conformity.46 | PLCopen | Bert van der Linden | ATS | (2008-2013)40/52
  • 42. Compliancy niveau’s (2/3)47 | PLCopen | Bert van der Linden | ATS | (2008-2013)Compliancy niveau’s (3/3)48 | PLCopen | Bert van der Linden | ATS | (2008-2013)41/52
  • 43. Certified IEC 61131-3 environmentsProduct name Base Level CL & RL Company CountryCodesys IL & ST 3S Smart Software Solutions GermanyConcept IL, ST, FBD CL & RL for ST Schneider Automation GermanyISaGRAF IL ICS Triplex FranceMELSEC MEDOC plus IL Mitsubishi Electric Europe GermanyMULTIPROG wt IL & ST KW-Software GermanyNAiS Control FPWIN Pro IL CL & RL for ST Panasonic Electric Works GermanyKemro.iecedit IL & ST KEBA AustriaRSLogix 5000 V.13 RL for ST Rockwell Automation USAS7-SCL ST RL for ST Siemens GermanySimotion Eng. Sytem Scout-standardST Siemens GermanySELECONTROL CAP 1131 IL Selectron SwitzerlandSisteam Servicer (IEC 1131-3) ST Ingeteam SpainS7-GRAPH SFC Siemens GermanyMelsoft GX IEC Developer IL, ST Mitsubishi Germany49 | PLCopen | Bert van der Linden | ATS | (2008-2013)AdresgegevensPost address:PLCopenP.O. Box: 30094200 EA GorinchemThe NetherlandsTel: +31 (0)183 660261Fax: +31 (0)183 664821www.plcopen.orgemail: evdwal@plcopen.orgVisiting address:PLCopenMolenstraat 344201 CX GorinchemThe NetherlandsTel: +31 (0)183 660261Fax: +31 (0)183 66482150 | PLCopen | Bert van der Linden | ATS | (2008-2013)42/52
  • 44. GESTRUCTUREERDPROGRAMMEREN : ONTWERP51 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013)Modulair programmeren : Inleiding• In principe is het mogelijk om één groot programma te maken,in veel gevallen wel complex.• Programma opdelen in meerdere delen.• Doelstellingen:• Mogelijkheid tot verandering.• Onafhankelijke ontwikkeling.• Begrijpelijkheid.• Richtlijnen voor modulariteit: Koppeling en cohesie.• ‘Information hiding’ is de basistechniek.52 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013)43/52
  • 45. Modulair programmeren : Koppeling encohesie (1/2)• Koppeling is de interactie tussen de modulen.• Cohesie is de interactie in een module.• Koppeling en cohesie zijn tegenpolen. Een sterke cohesierealiseert een zwakke koppeling en andersom.53 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013)Modulair programmeren : Koppeling encohesie (2/2)Sterke koppeling / Zwakke cohesie Zwakke koppeling / Sterke cohesie54 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013)44/52
  • 46. Modulair programmeren: Koppeling• Veranderen van de code van een andere module.• Springen naar, of aanroepen van, een punt andersdan het begin.• Toegang verkrijgen binnen een andere module.• Gemeenschappelijke of globale data.• Procedure-aanroep met een ‘switch’ als parameter.• Procedure-aanroep met ‘zuivere’ dataparameters.• Een seriële datastroom van de ene module naar deandere doorgeven.ZwakSterk55 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013)Modulair programmeren : Cohesie• Toevallige cohesie• Logische cohesie• Tijdelijke cohesie• Communicatieve cohesie• Sequentiële cohesie• Functionele cohesieSterkZwak56 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013)45/52
  • 47. Sequentiel function chart : Gemma (1/3)• Sequentiel function chart (SFC) biedt veel structuur bij hetbeschrijven van een normaal programma.• Volgende toestanden moeilijk te beschrijven:• Noodstop• Handbediening• Biedt geen mogelijkheden voor het scheiden van ‘modes’.• Oplossing: Gemma, een grafische gids voor bestudering vanbedrijfstoestanden.57 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013)Sequentiel function chart : Gemma (2/3)58 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013)46/52
  • 48. Sequentiel function chart : Gemma (3/3)• Een software-element die de Gemma uitvoert is een coördinator.• Let op: Er moet wel natuurlijk ook coördinatie zijn tussen decoördinatoren.• Twee mogelijkheden:• Horizontale coördinatie.• Verticale coördinatie.59 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013)GESTRUCTUREERDPROGRAMMEREN : CODEREN60 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013)47/52
  • 49. InleidingTijdens het coderen zijn er ook nog andere mogelijkheden omstructuren aan te brengen:• Declareren van een variabele.• Benoemen van een variabele.• Toevoegen commentaar.61 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013)Declareren van een variabele (1/3)VariabeleScope Life time Binding time• Lokaal• Globaal• Routine• Programma• Oneindig• Codeer fase• Compilatie fase• Initialisatie fase• Executie fase62 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013)48/52
  • 50. Declareren van een variabele (2/3)• Basisregels bij het declareren van een variabele:• Begin altijd met een zo klein mogelijk ‘scope’.• Creëer een ‘late’ binding.• Een kleine scope verkomt globale data.• ‘Late binding’ creëert flexibiliteit.63 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013)Declareren van een variabele (3/3)• VAR_TEMP• VAR• VAR_GLOBAL• VAR_EXTERNAL• RETAIN• NON_RETAIN• CONSTANT• AT64 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013)49/52
  • 51. Benoemen van een variabele• Breng bij het benoemen van een variabele structuur aan in denaam, door gebruik te maken van een naamconventie.• Voorbeeld:• gpblnStartMotor• gprlnTemperatuurVat_MAX• inblnAanvraagMateriaalScope Life timeOmschrijving _ KenmerkParameter• MAX• SET• HH• LL65 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013)DatatypeCommentaar (1/2)Commentaar is te classificeren in vijf groepen:• Herhaling van de code.• Uitleg van de code.• Markeerpunt in de code.• Samenvatting van de code.• Intentie van de code.66 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013)50/52
  • 52. Commentaar (2/2)********************************************************************************************** Name: {Naam van de routine} ** Purpose: {Doel van de routine} ** Algorithm: {Omschrijving van het algoritme} ** ** Inputs: {Input data} ** Outputs: {Output data} ** ** Interface assumptions: {Aannames van de toestand van de ontvangen ** variabelen} ** Modification history: ** ** ** **********************************************************************************************67 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013)Conclusie• De IEC 61131-3 biedt voor ‘echt’ gestructureerd programmerende taal Structured Text (ST).• Maak gebruik van een gestructureerde ontwerp methodiek alsfunctionele decompositie, data-flow of een andere techniek.• Om een betere kwaliteit te krijgen heeft de IEC 6113-3‘professionele’ principes geïmplementeerd:• Sequentiel function chart;• Program Organisation Units;• Mogelijkheid tot ‘Top down’ en ‘Bottom up’ ontwerp-methoden.68 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013)51/52
  • 53. Literatuurlijst• D. Bell: Software engineering, Academic Service, 1986• B. Meyer: Object Oriented software construction, 1988• Bonfatti: IEC 1131-3 Programming Methodology, CJ International, 1997• S. McConnell : Code Complete, Microsoft Press, 1993• Programmble Controllers Part 3, Programming Languages, IEC 61131-3,IECGeneva, 1993.• G. Cloutier : Gemma, the complementary tool of the grafcet, 1997• A.J. van der Linden : Besturings- en PLC-techniek 6/7MK, 200069 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013)52/52