Themadag
Gestructureerd
Programmeren
Najaar 2015
Welcome to PHOENIX CONTACT
Themadag
Gestructureerd
programmeren
INTRODUCTIE THEMADAG
2 | Introductie Themadag | Bert van d...
Doelstellingen en voorkennis
Doelstelling:
• Inzicht geven in gestructureerd programmeren in ‘brede’ zin
waarmee de kwalit...
Inhouden
• Inleiding gestructureerd programmeren
• Gestructureerd programmeren (Enge zin)
• IEC61131 en kwaliteit
• PLCope...
Criteria:
• Het programma moet correct en robuust werken. JA/NEE?
• Lage productiekosten. JA/NEE?
• Goede prestaties. JA/N...
Kwaliteitsmodel : McCall
9 | Gestructureerd programmeren| Bert van der Linden (ATS) (2008-2013)
Programma bakken cake (1/4...
Programma bakken cake (2/4)
Werkwijze 1:
 Klop de zachte boter en suiker op tot alles egaal wit is.
 Blijf kloppen en vo...
Programma bakken cake (4/4)
13 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013)
Programme...
Samenvatting
• Gestructureerd programmeren heeft te maken met samengesteld
geheel. Een programma dat bestaat uit modulen.
...
Gestructureerd programmeren : Essentie
• Een gestructureerd programma is in essentie een programma
dat gemakkelijk te begr...
Gestructureerd programmeren : Doel (1/2)
• Het doel van gestructureerd programmeren is het verkrijgen
van een begrijpelijk...
Mikado en gestructureerd programmeren
21 | Introductie Themadag | Bert van der Linden | ATS | (2008-2013)
Structureren en ...
Gestructureerd programmeren : Acceptatie
• Gestructureerd programmeren is een manier om de kwaliteit
van programma’s te ve...
Gestructureerd programmeren: Kwaliteit
• Gestructureerd programmeren draagt dus bij aan de kwaliteit van
een programma.
• ...
IEC 61131 EN KWALITEIT
27 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)
IEC 61131 : Onderdelen
• 1 Ge...
IEC 61131- 3: Introductie (1/2)
• De IEC 61131-3 is een standaard op het gebied van
programmeertalen voor ‘moderne’ PLC-sy...
IEC 61131-3 : Instruction list
Toepassing: Eenvoudige rekenkundige bewerkingen.
31 | IEC 61131 en kwaliteit | Bert van der...
IEC 61131-3 : Ladderdiagram
Toepassing: Eenvoudige logische vergelijkingen.
33 | IEC 61131 en kwaliteit | Bert van der Lin...
IEC 61131-3 : Sequentiel function chart
Toepassing: Sequentiële processen.
35 | IEC 61131 en kwaliteit | Bert van der Lind...
IEC 61131: Kwaliteit
De belangrijkste ontwikkelingen in de norm ter verbetering van de
kwaliteit zijn:
• Encapsulation en ...
Encapsulation and hiding (2/2)
39 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)
Explicit representati...
Software reuse (1/3) :
• Het programmeermodel ondersteunt de mogelijkheid van
hergebruik van code.
• De gebruiker kan deze...
Software reuse (3/3) : X-model
43 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013)
PLCOPEN
44 | PLCopen ...
Missie
We want to be the leading association
resolving topics related to
control programming
to support the use of
interna...
Organisatie (2/2)
BOM, MD & General Meeting
TC1 TC
3
TC
4
TC
5
PC
2
PC
3
TC2 PC4PC
1
47 | PLCopen | Bert van der Linden | ...
Compliancy niveau’s (2/3)
49 | PLCopen | Bert van der Linden | ATS | (2008-2013)
Compliancy niveau’s (3/3)
50 | PLCopen | ...
Certified IEC 61131-3 environments
Product name Base Level CL & RL Company Country
Codesys IL & ST 3S Smart Software Solut...
GESTRUCTUREERD
PROGRAMMEREN : ONTWERP
53 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013)
...
Modulair programmeren : Koppeling en
cohesie (1/2)
• Koppeling is de interactie tussen de modulen.
• Cohesie is de interac...
Modulair programmeren: Koppeling
• Veranderen van de code van een andere module.
• Springen naar, of aanroepen van, een pu...
Sequentiel function chart : Gemma (1/3)
• Sequentiel function chart (SFC) biedt veel structuur bij het
beschrijven van een...
Sequentiel function chart : Gemma (3/3)
• Een software-element die de Gemma uitvoert is een coördinator.
• Let op: Er moet...
Inleiding
Tijdens het coderen zijn er ook nog andere mogelijkheden om
structuren aan te brengen:
• Declareren van een vari...
Declareren van een variabele (2/3)
• Basisregels bij het declareren van een variabele:
• Begin altijd met een zo klein mog...
Benoemen van een variabele
• Breng bij het benoemen van een variabele structuur aan in de
naam, door gebruik te maken van ...
Commentaar (2/2)
*********************************************************************************************
* Name: {Na...
Literatuurlijst
• D. Bell: Software engineering, Academic Service, 1986
• B. Meyer: Object Oriented software construction,...
Upcoming SlideShare
Loading in …5
×

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

938 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
938
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Themadag Gestructureerd Programmeren Najaar 2015
  2. 2. Welcome to PHOENIX CONTACT Themadag Gestructureerd programmeren INTRODUCTIE THEMADAG 2 | Introductie Themadag | Bert van der Linden | ATS | (2008-2013) 1/36
  3. 3. Doelstellingen en voorkennis Doelstelling: • Inzicht geven in gestructureerd programmeren in ‘brede’ zin waarmee de kwaliteit van een applicatie is te verbeteren met behulp van de IEC61131-3. Voorkennis: • (Enige) ervaring met het programmeren van industriële (technische) processen. 3 | Introductie Themadag | Bert van der Linden | ATS | (2008-2013) Invalshoeken/ uitgangspunten • Niet alleen structuren ten gevolge van gestructureerd programmeren in formele zin maar ook andere mogelijke structuren met de IEC 61131-3. • Er komen geen dialecten aan de orde laten, maar een nauwkeurige beschrijving volgens de IEC61131-3, anders een vermelding. • Er is geen algoritme/procedure die altijd tot een goed resultaat zal leiden. Het is dus een heuristische taak. • Er zijn richtlijnen die richting geven aan een goede oplossing. • Een voorbeeldapplicatie speelt een centrale rol om de mogelijkheden in de praktijk te tonen. 4 | Introductie Themadag | Bert van der Linden | ATS | (2008-2013) 2/36
  4. 4. Inhouden • Inleiding gestructureerd programmeren • Gestructureerd programmeren (Enge zin) • IEC61131 en kwaliteit • PLCopen • Gestructureerd programmeren : Ontwerpfase • Gestructureerd programmeren : Coderingsfase 5 | Introductie Themadag | Bert van der Linden | ATS | (2008-2013) INLEIDING GESTRUCTUREERD PROGRAMMEREN 6 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013) 3/36
  5. 5. 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? 7 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013) Kwaliteitsmodel: McCall 8 | Gestructureerd programmeren| Bert van der Linden (ATS) (2008-2013) 4/36
  6. 6. Kwaliteitsmodel : McCall 9 | Gestructureerd programmeren| Bert van der Linden (ATS) (2008-2013) Programma bakken cake (1/4) Omschrijving: Deze cake bestaat uit een gelijke verhouding van vier basisingrediënten. Als smaakversterker kan je er heel fijn geraspte citroenschillen of een schutje bruine rum aan toevoegen. Ook zonder smaakversterker krijg je een lekkere cake, maar hier gebruik ik toch vanillesuiker. Ingrediënten: • 150 gram boter, 150 gram suiker en • 150 gram bloem, 3 eieren (150 gram), 1 zakje vanillesuiker 10 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013) 5/36
  7. 7. 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 cake zeker niet blijven plakken).  Doe het deeg in de cakevorm en plaats die 36 minuten in een aan 180°C voorverwarmde oven (reken 1 uur baktijd per kilogram deeg). 11 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013) 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 cake zeker 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 uur baktijd per kilogram deeg). 12 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013) 6/36
  8. 8. Programma bakken cake (4/4) 13 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013) Programmeren en programma • Programmeren is het ontwerpen, schrijven (coderen) en testen van 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 tussen de programmeur en de computer. 14 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013) 7/36
  9. 9. Samenvatting • Gestructureerd programmeren heeft te maken met samengesteld geheel. 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) GESTRUCTUREERD PROGRAMMEREN 16 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013) 8/36
  10. 10. Gestructureerd programmeren : Essentie • Een gestructureerd programma is in essentie een programma dat gemakkelijk te begrijpen is en maakt daarbij gebruik van abstractie. • Eén van de oplossingen, voor gestructureerd programmeren, is het gedisciplineerd toepassen van besturingsconstructies om besturingsabstractie te bereiken door het vermijden van het GOTO-statement. 17 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013) Gestructureerd programmeren : Herkomst • Gestructureerd programmeren is bedacht door E.W. Dijkstra e.a. • Het bestaat uit drie besturingsconstructies: • opeenvolgingen; • keuzes; • herhalingen. 18 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013) 9/36
  11. 11. Gestructureerd programmeren : Doel (1/2) • Het doel van gestructureerd programmeren is het verkrijgen van een begrijpelijk programma. • Door gestructureerd te programmeren is het programma beter te onderhouden. • Het voorkomen van Goto-statements. Let op: Het is een middel 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) 10/36
  12. 12. Mikado en gestructureerd programmeren 21 | Introductie Themadag | Bert van der Linden | ATS | (2008-2013) Structureren en structuur • Structureren is synoniem voor organiseren en ordenen. • Structuur is synoniem voor organisatie, samenstelling, vorm en opbouw. • Structuur betekent een functionele indeling. • Een verzameling van relaties vormt de interne/externe structuur. • Een relatie is een gekoppelde beweging. Een verandering bij A resulteert in een verandering bij B. 22 | Inleiding gestructureerd programmeren | Bert van der Linden | ATS | (2008-2013) 11/36
  13. 13. Gestructureerd programmeren : Acceptatie • Gestructureerd programmeren is een manier om de kwaliteit van programma’s te verbeteren. • Er zijn ook diagrammen ontwikkeld in overeenstemming met de denkwijze van gestructureerd programmeren (ProgrammaStructuurDiagrammen). • Het betreft alleen maar besturingsabstractie en geen andere vormen van abstractie. • Het is alleen geschikt voor datatransformaties en minder voor de besturing van een proces. 23 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013) Gestructureerd programmeren : Acceptatie 24 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013) 12/36
  14. 14. Gestructureerd programmeren: Kwaliteit • Gestructureerd programmeren draagt dus bij aan de kwaliteit van een programma. • Het draagt bij aan: • Reliability; • Maintainbility; • Adaptablility. Zijn er nog maar technieken die bijdragen aan de kwaliteit van de het programma? Gestructureerd programmeren in ‘brede’ zin. Structuren toepassen die de kwaliteit verbeteren van een programma. 25 | 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). 26 | Gestructrureerd programmeren | Bert van der Linden | ATS | (2008-2013) 13/36
  15. 15. IEC 61131 EN KWALITEIT 27 | 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 Report IS = International Standard 28 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) 14/36
  16. 16. IEC 61131- 3: Introductie (1/2) • De IEC 61131-3 is een standaard op het gebied van programmeertalen voor ‘moderne’ PLC-systemen. • Vijf programmertalen: • Instruction List IL • Structured Text ST • Ladder Diagram LD • Function Block Diagram FBD • Sequential Function Chart SFC 29 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) IEC 61131-3 : Introductie (2/2) 30 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) 15/36
  17. 17. IEC 61131-3 : Instruction list Toepassing: Eenvoudige rekenkundige bewerkingen. 31 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) IEC 61131-3 : Structured Text Toepassing: Complexe rekenkundige bewerkingen en toestandsmachines. 32 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) 16/36
  18. 18. IEC 61131-3 : Ladderdiagram Toepassing: Eenvoudige logische vergelijkingen. 33 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) IEC 61131-3 : Function block diagram Toepassing: Logische vergelijkingen maar ook eenvoudige berekeningen. 34 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) 17/36
  19. 19. IEC 61131-3 : Sequentiel function chart Toepassing: Sequentiële processen. 35 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) IEC 61131-3 : Softwaremodel Global and direct variables Access path Execution control path Variable access path FBTask Program Program FB FB Task Program Task Program FB FB Task Resource Resource Configuration Communication Function Function Block Variable 36 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) 18/36
  20. 20. IEC 61131: Kwaliteit De belangrijkste ontwikkelingen in de norm ter verbetering van de kwaliteit zijn: • Encapsulation en hiding; • Explicit representation of state; • Mapping to the application domain; • Mapping of design to implementation; • Structured programming; • Software reuse. 37 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) Encapsulation and hiding (1/2) • Encapsulation is het inpakken van functioneel gerelateerde data en/of procedures in een enkelvoudige software-entiteit. • Information hiding is verbergen van data en procedures voor de gebruiker door een externe interface en gespecificeerde functionaliteit. Ontwerpbeslissingen zijn verborgen, dus de interne structuren van data en procedures. 38 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) 19/36
  21. 21. Encapsulation and hiding (2/2) 39 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) Explicit representation of state • Door het toepassen van stappen ontstaat er een expliciete representatie van een toestand. Dus de toestand hoeft niet te worden afgeleid van interne variabelen; zoals input of toestandsvariabelen. • SFC realiseert ook structuur in een programma, in de vorm van stappen, transities en acties. • SFC verbetert ook de reactie en verwerkingscapaciteit omdat de PLC alleen de instructies (een deel van het algortime) uitvoert van de actieve stap. • Andere optie is het bouwen van een toestandsmachine met LD, FBD of ST. 40 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) 20/36
  22. 22. Software reuse (1/3) : • Het programmeermodel ondersteunt de mogelijkheid van hergebruik van code. • De gebruiker kan deze software-elementen ontwikkelen door middel van een ‘Bottom-up’ implementatieproces (implementeren door functionele compositie). • Natuurlijk ondersteunt de IEC 61131 ook de ‘Top-down” ontwerp- proces (ontwerp door functionele decompositie). 41 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) Software reuse (2/3) : 42 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) 21/36
  23. 23. Software reuse (3/3) : X-model 43 | IEC 61131 en kwaliteit | Bert van der Linden | ATS | (2008-2013) PLCOPEN 44 | PLCopen | Bert van der Linden | ATS | (2008-2013) 22/36
  24. 24. Missie We want to be the leading association resolving topics related to control programming to support the use of international standards in this field. 45 | 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 Japan 46 | PLCopen | Bert van der Linden | ATS | (2008-2013) 23/36
  25. 25. Organisatie (2/2) BOM, MD & General Meeting TC1 TC 3 TC 4 TC 5 PC 2 PC 3 TC2 PC4PC 1 47 | 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 gebruikers waarmee ze ‘echte’ IEC 61131-3 programmeeromgevingen kunnen herkennen. • De ‘compliancy’ niveau’s zijn: • base; • reuseability; • conformity. 48 | PLCopen | Bert van der Linden | ATS | (2008-2013) 24/36
  26. 26. Compliancy niveau’s (2/3) 49 | PLCopen | Bert van der Linden | ATS | (2008-2013) Compliancy niveau’s (3/3) 50 | PLCopen | Bert van der Linden | ATS | (2008-2013) 25/36
  27. 27. Certified IEC 61131-3 environments Product name Base Level CL & RL Company Country Codesys IL & ST 3S Smart Software Solutions Germany Concept IL, ST, FBD CL & RL for ST Schneider Automation Germany ISaGRAF IL ICS Triplex France MELSEC MEDOC plus IL Mitsubishi Electric Europe Germany MULTIPROG wt IL & ST KW-Software Germany NAiS Control FPWIN Pro IL CL & RL for ST Panasonic Electric Works Germany Kemro.iecedit IL & ST KEBA Austria RSLogix 5000 V.13 RL for ST Rockwell Automation USA S7-SCL ST RL for ST Siemens Germany Simotion Eng. Sytem Scout- standard ST Siemens Germany SELECONTROL CAP 1131 IL Selectron Switzerland Sisteam Servicer (IEC 1131-3) ST Ingeteam Spain S7-GRAPH SFC Siemens Germany Melsoft GX IEC Developer IL, ST Mitsubishi Germany 51 | PLCopen | Bert van der Linden | ATS | (2008-2013) Adresgegevens Post address: PLCopen P.O. Box: 3009 4200 EA Gorinchem The Netherlands Tel: +31 (0)183 660261 Fax: +31 (0)183 664821 www.plcopen.org email: evdwal@plcopen.org Visiting address: PLCopen Molenstraat 34 4201 CX Gorinchem The Netherlands Tel: +31 (0)183 660261 Fax: +31 (0)183 664821 52 | PLCopen | Bert van der Linden | ATS | (2008-2013) 26/36
  28. 28. GESTRUCTUREERD PROGRAMMEREN : ONTWERP 53 | 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. 54 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013) 27/36
  29. 29. Modulair programmeren : Koppeling en cohesie (1/2) • Koppeling is de interactie tussen de modulen. • Cohesie is de interactie in een module. • Koppeling en cohesie zijn tegenpolen. Een sterke cohesie realiseert een zwakke koppeling en andersom. 55 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013) Modulair programmeren : Koppeling en cohesie (2/2) Sterke koppeling / Zwakke cohesie Zwakke koppeling / Sterke cohesie 56 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013) 28/36
  30. 30. Modulair programmeren: Koppeling • Veranderen van de code van een andere module. • Springen naar, of aanroepen van, een punt anders dan 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 de andere doorgeven. Zwak Sterk 57 | 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 cohesie Sterk Zwak 58 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013) 29/36
  31. 31. Sequentiel function chart : Gemma (1/3) • Sequentiel function chart (SFC) biedt veel structuur bij het beschrijven 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 van bedrijfstoestanden. 59 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013) Sequentiel function chart : Gemma (2/3) 60 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013) 30/36
  32. 32. 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 de coördinatoren. • Twee mogelijkheden: • Horizontale coördinatie. • Verticale coördinatie. 61 | Gestructureerd programmeren: ontwerp | Bert van der Linden | ATS | (2008-2013) GESTRUCTUREERD PROGRAMMEREN : CODEREN 62 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013) 31/36
  33. 33. Inleiding Tijdens het coderen zijn er ook nog andere mogelijkheden om structuren aan te brengen: • Declareren van een variabele. • Benoemen van een variabele. • Toevoegen commentaar. 63 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013) Declareren van een variabele (1/3) Variabele Scope Life time Binding time • Lokaal • Globaal • Routine • Programma • Oneindig • Codeer fase • Compilatie fase • Initialisatie fase • Executie fase 64 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013) 32/36
  34. 34. 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. 65 | 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 • AT 66 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013) 33/36
  35. 35. Benoemen van een variabele • Breng bij het benoemen van een variabele structuur aan in de naam, door gebruik te maken van een naamconventie. • Voorbeeld: • gpblnStartMotor • gprlnTemperatuurVat_MAX • inblnAanvraagMateriaal Scope Life time Omschrijving _ Kenmerk Parameter • MAX • SET • HH • LL 67 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013) Datatype Commentaar (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. 68 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013) 34/36
  36. 36. 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: * * * * * * * ********************************************************************************************* 69 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013) Conclusie • De IEC 61131-3 biedt voor ‘echt’ gestructureerd programmeren de taal Structured Text (ST). • Maak gebruik van een gestructureerde ontwerp methodiek als functionele 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. 70 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013) 35/36
  37. 37. 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,IEC Geneva, 1993. • G. Cloutier : Gemma, the complementary tool of the grafcet, 1997 • A.J. van der Linden : Besturings- en PLC-techniek 6/7MK, 2000 71 | Gestructureerd programmeren: Coderen | Bert van der Linden | ATS | (2008-2013) 36/36

×