SlideShare a Scribd company logo
1 of 37
Download to read offline
Themadag
Gestructureerd
Programmeren
Najaar 2015
Welcome to PHOENIX CONTACT
Themadag
Gestructureerd
programmeren
INTRODUCTIE THEMADAG
2 | Introductie Themadag | Bert van der Linden | ATS | (2008-2013)
1/36
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

More Related Content

More from Cito Benelux

Phoenix Contact, Themadag Veiligheidsbesturingen vj2015
Phoenix Contact, Themadag Veiligheidsbesturingen vj2015Phoenix Contact, Themadag Veiligheidsbesturingen vj2015
Phoenix Contact, Themadag Veiligheidsbesturingen vj2015Cito Benelux
 
Phoenix contact, Secure Remote Access
Phoenix contact, Secure Remote AccessPhoenix contact, Secure Remote Access
Phoenix contact, Secure Remote AccessCito Benelux
 
Phoenix Contact, Themamiddag Alles over bliksembeveiliging
Phoenix Contact, Themamiddag Alles over bliksembeveiligingPhoenix Contact, Themamiddag Alles over bliksembeveiliging
Phoenix Contact, Themamiddag Alles over bliksembeveiligingCito Benelux
 
Is uw schakelkast EMC-bestendig conform de nieuwe norm?
Is uw schakelkast EMC-bestendig conform de nieuwe norm?Is uw schakelkast EMC-bestendig conform de nieuwe norm?
Is uw schakelkast EMC-bestendig conform de nieuwe norm?Cito Benelux
 
Power Quality, de moderne kijk op stroom en spanning
Power Quality, de moderne kijk op stroom en spanningPower Quality, de moderne kijk op stroom en spanning
Power Quality, de moderne kijk op stroom en spanningCito Benelux
 
Phoenix Contact, Themadag industriële netwerkarchitectuur
Phoenix Contact, Themadag industriële netwerkarchitectuurPhoenix Contact, Themadag industriële netwerkarchitectuur
Phoenix Contact, Themadag industriële netwerkarchitectuurCito Benelux
 
Phoenix Contact, Themadag draadloze netwerken in de industrie
Phoenix Contact, Themadag draadloze netwerken in de industriePhoenix Contact, Themadag draadloze netwerken in de industrie
Phoenix Contact, Themadag draadloze netwerken in de industrieCito Benelux
 
Rittal, Workshop Klimatisering in de praktijk - zelf aan de slag met Therm
Rittal, Workshop Klimatisering in de praktijk - zelf aan de slag met ThermRittal, Workshop Klimatisering in de praktijk - zelf aan de slag met Therm
Rittal, Workshop Klimatisering in de praktijk - zelf aan de slag met ThermCito Benelux
 
Rittal, Themadag Het praktijkgericht samenstellen van besturingskasten voor d...
Rittal, Themadag Het praktijkgericht samenstellen van besturingskasten voor d...Rittal, Themadag Het praktijkgericht samenstellen van besturingskasten voor d...
Rittal, Themadag Het praktijkgericht samenstellen van besturingskasten voor d...Cito Benelux
 
Rittal, workshop EMC - veldgebonden EMC voor industriële installaties volgens...
Rittal, workshop EMC - veldgebonden EMC voor industriële installaties volgens...Rittal, workshop EMC - veldgebonden EMC voor industriële installaties volgens...
Rittal, workshop EMC - veldgebonden EMC voor industriële installaties volgens...Cito Benelux
 
Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"
Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"
Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"Cito Benelux
 
Phoenix Contact, workshop EMC – installatietechniek volgens de huidige EMC-ri...
Phoenix Contact, workshop EMC – installatietechniek volgens de huidige EMC-ri...Phoenix Contact, workshop EMC – installatietechniek volgens de huidige EMC-ri...
Phoenix Contact, workshop EMC – installatietechniek volgens de huidige EMC-ri...Cito Benelux
 

More from Cito Benelux (12)

Phoenix Contact, Themadag Veiligheidsbesturingen vj2015
Phoenix Contact, Themadag Veiligheidsbesturingen vj2015Phoenix Contact, Themadag Veiligheidsbesturingen vj2015
Phoenix Contact, Themadag Veiligheidsbesturingen vj2015
 
Phoenix contact, Secure Remote Access
Phoenix contact, Secure Remote AccessPhoenix contact, Secure Remote Access
Phoenix contact, Secure Remote Access
 
Phoenix Contact, Themamiddag Alles over bliksembeveiliging
Phoenix Contact, Themamiddag Alles over bliksembeveiligingPhoenix Contact, Themamiddag Alles over bliksembeveiliging
Phoenix Contact, Themamiddag Alles over bliksembeveiliging
 
Is uw schakelkast EMC-bestendig conform de nieuwe norm?
Is uw schakelkast EMC-bestendig conform de nieuwe norm?Is uw schakelkast EMC-bestendig conform de nieuwe norm?
Is uw schakelkast EMC-bestendig conform de nieuwe norm?
 
Power Quality, de moderne kijk op stroom en spanning
Power Quality, de moderne kijk op stroom en spanningPower Quality, de moderne kijk op stroom en spanning
Power Quality, de moderne kijk op stroom en spanning
 
Phoenix Contact, Themadag industriële netwerkarchitectuur
Phoenix Contact, Themadag industriële netwerkarchitectuurPhoenix Contact, Themadag industriële netwerkarchitectuur
Phoenix Contact, Themadag industriële netwerkarchitectuur
 
Phoenix Contact, Themadag draadloze netwerken in de industrie
Phoenix Contact, Themadag draadloze netwerken in de industriePhoenix Contact, Themadag draadloze netwerken in de industrie
Phoenix Contact, Themadag draadloze netwerken in de industrie
 
Rittal, Workshop Klimatisering in de praktijk - zelf aan de slag met Therm
Rittal, Workshop Klimatisering in de praktijk - zelf aan de slag met ThermRittal, Workshop Klimatisering in de praktijk - zelf aan de slag met Therm
Rittal, Workshop Klimatisering in de praktijk - zelf aan de slag met Therm
 
Rittal, Themadag Het praktijkgericht samenstellen van besturingskasten voor d...
Rittal, Themadag Het praktijkgericht samenstellen van besturingskasten voor d...Rittal, Themadag Het praktijkgericht samenstellen van besturingskasten voor d...
Rittal, Themadag Het praktijkgericht samenstellen van besturingskasten voor d...
 
Rittal, workshop EMC - veldgebonden EMC voor industriële installaties volgens...
Rittal, workshop EMC - veldgebonden EMC voor industriële installaties volgens...Rittal, workshop EMC - veldgebonden EMC voor industriële installaties volgens...
Rittal, workshop EMC - veldgebonden EMC voor industriële installaties volgens...
 
Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"
Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"
Phoenix Contact, workshop "IT-powered AUTOMATION - multifunctionele besturingen"
 
Phoenix Contact, workshop EMC – installatietechniek volgens de huidige EMC-ri...
Phoenix Contact, workshop EMC – installatietechniek volgens de huidige EMC-ri...Phoenix Contact, workshop EMC – installatietechniek volgens de huidige EMC-ri...
Phoenix Contact, workshop EMC – installatietechniek volgens de huidige EMC-ri...
 

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

  • 2. Welcome to PHOENIX CONTACT Themadag Gestructureerd programmeren INTRODUCTIE THEMADAG 2 | Introductie Themadag | Bert van der Linden | ATS | (2008-2013) 1/36
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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