Inhoud Inhoud ...................................................................................................................................................... I 1
2
Beschrijving van de hardware ......................................................................................................... 1 1.1
Structuur van de starterkit ...................................................................................................... 1
1.2
Bekabeling van de starterkit ................................................................................................... 2
1.3
Omtrent de ILC 150 ETH .......................................................................................................... 3
Installeren van PC WorX .................................................................................................................. 4 2.1
2.1.1
Starten van het PC WorX installatie programma ............................................................ 4
2.1.2
Starten van PC WorX ....................................................................................................... 4
2.2 3
Installatie van de software ...................................................................................................... 4
Activeren van de PC WorX basislicentie .................................................................................. 5
Algemene informatie omtrent PC WorX ......................................................................................... 6 3.1
Enkele belangrijke icons uit de Toolbar .................................................................................. 6
3.2
Werkgebieden ......................................................................................................................... 7
3.2.1
Werkgebied “IEC programming” ..................................................................................... 7
3.2.2
Werkgebied “Bus configuratie” ....................................................................................... 9
3.2.3
Werkgebied “Process data assignment” ....................................................................... 10
3.3 Compileren en downloaden .................................................................................................... 10 4
De IEC 61131‐3 .............................................................................................................................. 12 4.1
Inleiding ................................................................................................................................. 12
4.2
Structuur van een applicatie volgens de IEC 61131‐3 norm ................................................. 12
4.3
POU’s ..................................................................................................................................... 14
4.3.1
Functies ......................................................................................................................... 14
4.3.2
Functiebouwstenen ....................................................................................................... 15
4.3.3
Programma’s ................................................................................................................. 16
4.4
4.4.1
Algemene datatypes ...................................................................................................... 17
4.4.2
Array .............................................................................................................................. 18
4.4.3
Struct ............................................................................................................................. 20
4.4.4
String ............................................................................................................................. 20
4.5
Datatypes............................................................................................................................... 17
Structured Text ...................................................................................................................... 21
4.5.1
Selectie statements ....................................................................................................... 21
4.5.2
Iteratie statements ........................................................................................................ 22
I
5
6
7
8
Aanmaken van een project ........................................................................................................... 23 5.1
Overzicht ............................................................................................................................... 23
5.2
Nieuw project openen ........................................................................................................... 24
5.3
Structuur nieuw project conform de IEC 61131‐3 ................................................................ 25
5.4
Aanpassen van de projectinformatie .................................................................................... 26
5.5
IP configuratie van uw PC ...................................................................................................... 27
5.6
IP configuratie van de controller ........................................................................................... 29
5.6.1
Algemeen ....................................................................................................................... 29
5.6.2
Aanpassen IP‐adres via de BootP Server ....................................................................... 30
5.7
De INTERBUS configuratie ..................................................................................................... 32
5.8
Compileren en downloaden .................................................................................................. 34
Uitgewerkt voorbeeldprogramma ................................................................................................ 35 6.1
Inleiding ................................................................................................................................. 35
6.2
Opdrachtomschrijving ........................................................................................................... 35
6.3
Uitwerking ............................................................................................................................. 35
6.3.1
Definiëren van de variabelen ........................................................................................ 36
6.3.2
Aanmaken van een nieuwe POU ................................................................................... 38
6.3.3
Aanmaken van een functieblok “Knipperlicht” ............................................................. 39
6.3.4
Het hoofdprogramma .................................................................................................... 42
6.3.5
Testen van het programma ........................................................................................... 44
Analoge signaalverwerking ........................................................................................................... 45 7.1
Functiebouwsteen voor analoge signaalverwerking ............................................................. 45
7.2
Functie ................................................................................................................................... 48
7.3
Watch Window ...................................................................................................................... 49
7.4
Opdracht temperatuursmeting ............................................................................................. 50
Webvisit ......................................................................................................................................... 53 8.1
Inleiding ................................................................................................................................. 53
8.2
Starten van de visualisatie ..................................................................................................... 54
8.3
Een project uitwerken in WebVisit ........................................................................................ 55
8.3.1
Een nieuw project aanmaken ........................................................................................ 55
8.3.2
Een nieuwe webpagina aanmaken ................................................................................ 56
8.3.3
Compileren van het project ........................................................................................... 62
8.3.4
Downloaden van het project ......................................................................................... 63
Temporary Internet Files ............................................................................................................... 64
II
9
Tips & Trics .................................................................................................................................... 65 9.1
Schermbeheer ....................................................................................................................... 65
9.2
Beheer van variabelen ........................................................................................................... 65
10
Opdrachten ................................................................................................................................ 67
10.1
Een alarmsysteem ................................................................................................................. 67
10.2
Openen van een sectionaal poort ......................................................................................... 69
10.3
Temperatuursopvolging ........................................................................................................ 72
10.4
Sequentieel programmeren in ST: de rolkraan ..................................................................... 73
10.5
Tapijtoproller ......................................................................................................................... 74
10.6
Voorbeeld in ST met array’s en structuren ........................................................................... 80
III
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
1 Beschrijving van de hardware
1.1
Structuur van de starterkit
Figuur 1‐1 Opbouw van de starterkit
Beschrijving van de hardware
1
IT Powered Automation: multifunctionele besturingen
1.2
PHOENIX CONTACT
Bekabeling van de starterkit
Module ILC 150 ETH
IB IL AO 1/U/SF‐PAC IB IL AI 2/SF‐ME
Variabele ONBOARD_INPUT_BIT0 ONBOARD_INPUT_BIT1 ONBOARD_INPUT_BIT2 ONBOARD_INPUT_BIT3 ONBOARD_INPUT_BIT4 ONBOARD_INPUT_BIT5 ONBOARD_INPUT_BIT6 ONBOARD_INPUT_BIT7 Output_Analoog Input_Analoog
Figuur 1‐2 Bekabeling van de starterkit
Signaalpunt Connector 3, aansluitpunt 1.1 Connector 3, aansluitpunt 2.1 Connector 3, aansluitpunt 1.4 Connector 3, aansluitpunt 2.4 Connector 4, aansluitpunt 3.1 Connector 4, aansluitpunt 4.1 Connector 4, aansluitpunt 3.4 Connector 4, aansluitpunt 4.4 Connector 5, aansluitpunt 1.1 Connector 6, aansluitpunt 1.1
Beschrijving van de hardware
I/O Input I1 Input I2 Input I3 Input I4 Input I5 Input I6 Input I7 Input I8 Output O1 Input I9
2
IT Powered Automation: multifunctionele besturingen
1.3
PHOENIX CONTACT
Omtrent de ILC 150 ETH
Onderstaande figuur geeft een overzicht van de verschillende controllers binnen AUTOMATIONWORX.
Figuur 1‐3: Controllers binnen AUTOMATIONWORX
Kenmerken ILC 150: • • • • • • • • • •
Beschrijving van de hardware
Interfaces: Ethernet (10/100), Inline, PRG (MiniDIN) RUN/STOP/RESET buttons (no key switch) Processing time < 3 ms/1K instructions Program memory approx. 128 kbytes Data memory approx. 128 kbytes Retentive data memory 8 kbytes, minimum Internal parameterization memory with file system Real Time Clock (buffered) Directe I/Os (8/4) Te programmeren via PC WORX
3
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
2 Installeren van PC WorX 2.1
Installatie van de software
Voor de installatie dienen alle windows applicaties afgesloten te worden
Deze PC WorX versie kan parallel geïnstalleerd worden aan een eerdere versie
Eerst de PC WorX software installeren van op de AX SW SUITE DEMO CD
2.1.1 o
o o o
2.1.2 o o o
Starten van het PC WorX installatie programma
Het installatieprogramma start normaal enkele seconden na het inbrengen van de CD‐ROM in de CD drive. Indien dit niet zou gebeuren, start dan via de SETUP.EXE van de “[drive]:\setup\” directory op de CD‐ROM. Volg nadien de instructies van het installatieprogramma. Alle noodzakelijke directories worden automatisch aangemaakt en alle bestanden worden gekopieerd om de uitvoering van de programma’s mogelijk te maken. Na een succesvolle installatie dient de PC heropgestart te worden. Starten van PC WorX
Start PC WorX via “Start… Programma’s… Phoenix Contact… AUTOMATIONWORX Software suite 2007 1.50… PC WorX 6.00.x” Wanneer PC WorX voor de eerste keer opgestart wordt, dan zal PC WorX in demo mode opgestart worden met beperkte mogelijkheden. In het volgende punt wordt besproken hoe een basislicentie moet geïnstalleerd worden. Om over te gaan van de basislicentie tot een prolicentie, gelieve dan contact op te nemen met Phoenix Contact.
Installeren van PC WorX
4
IT Powered Automation: multifunctionele besturingen
2.2
PHOENIX CONTACT
Activeren van de PC WorX basislicentie
Na de opstart van PC WorX kan de licentie op de volgende manier geactiveerd worden: o
Selecteer “Register” onder het menu “?” zoals op figuur 3‐1.
Figuur 2‐1
o
o
Geef de registratiecode in Voor meer informatie omtrent registratiecodes verwijs ik u naar bijlage I. Bevestig met OK
Deze registratiecode wordt geactiveerd bij het heropstarten van PC WorX
Installeren van PC WorX
5
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
3 Algemene informatie omtrent PC WorX
3.1
Enkele belangrijke icons uit de Toolbar
Conform de IEC 61131‐3 norm wordt een volledige scheiding nagestreefd tussen de hardware en de software. Daarom worden drie werkgebieden gedefinieerd: ‐ ‐ ‐
Bus configuration: het werkgebied om de hardwareconfiguratie op te bouwen; IEC programming: het werkgebied waar het gebruikersprogramma opgebouwd wordt; Process data assignment: het werkgebied waar de softwarevariabelen gelinkt worden aan de fysische IO.
Figuur 3.1. toont de drie iconen op de menubalken waarmee eenvoudig omgeschakeld kan worden tussen de verschillende werkgebieden.
Figuur 3‐1
Activeer het werkgebied “IEC programming” Activeer het werkgebied “Bus configuration” Activeer het werkgebied “Process data assignment”
Algemene informatie omtrent PC WorX
6
IT Powered Automation: multifunctionele besturingen
3.2
Werkgebieden
3.2.1
Werkgebied “IEC programming”
PHOENIX CONTACT
In het werkgebied “IEC programming” zijn volgende vensters zeer belangrijk: o o o
Project tree window (links) ‐ <Shift> F8 Programmeervenster (midden) ‐
F2 Edit wizard (rechts) ‐ <Shift> F2
Andere vensters kunnen toegevoegd of verwijderd worden. Figuur 3‐2 Werkgebied “IEC programming”
Indien een window niet getoond wordt of afgesloten werd, dan kan dit altijd terug geactiveerd worden door onder het item “View” het juiste venster te kiezen.
Algemene informatie omtrent PC WorX
7
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Algemene informatie omtrent PC WorX
Figuur 3‐3
8
IT Powered Automation: multifunctionele besturingen 3.2.2
PHOENIX CONTACT
Werkgebied “Bus configuratie”
Figuur 3‐4 Werkgebied " Bus configuratie"
In het werkgebied “Bus configuratie” zijn alle details omtrent de hardware terug te vinden. In het ‘Device Details’ window staan algemene eigenschappen van het project vermeld. Van iedere hardwaremodule zijn in het window ‘Device Details’ alle belangrijke eigenschappen, instellingen en data sheets terug te vinden onder verschillende tabbladen, zie Figuur 4‐5.
Figuur 3‐5 Device Details, per module verschillende tabbladen
Algemene informatie omtrent PC WorX
9
IT Powered Automation: multifunctionele besturingen 3.2.3
PHOENIX CONTACT
Werkgebied “Process data assignment”
Figuur 3‐6
In het werkgebied “Proces Data assignment” is er de mogelijkheid om de gedefinieerde variabelen in de software te linken aan effectieve IO punten van de beschikbare modules uit de hardware configuratie. 3.3 Compileren en downloaden Display project control dialog box
Debug mode aan/uit schakelen
Figuur 3‐7
Watch window activeren
Programma compileren
Algemene informatie omtrent PC WorX
10
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Figuur 4‐8 geeft de “Control dialog box” weer. Hiermee kan de PLC gemanipuleerd worden. Met andere woorden, de PLC kan gestopt, gereset, koud of warm gestart worden alsook het downloaden van een programma kan met dit venster gebeuren.
Algemene informatie omtrent PC WorX
Figuur 3‐8 Control Dialog Box
11
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
4 De IEC 611313
4.1
Inleiding
DE IEC 61131 STANDAARD is een internationale standaard voor programmeerbare sturingen (PLC’s, soft PLC’s ....) en bestaat uit 5 delen: IEC 61131‐1 : Algemeen overzicht IEC 61131‐2 : Hardware karakteristieken IEC 6113 1‐3 : Programmeertalen IEC 6113 1‐4 : Richtlijnen voor de gebruiker IEC 6113 1‐5 : Communicatie + 2 technische rapporten. DE IEC 61131‐3 NORM is sinds 1993 de internationale standaard voor het programmeren van industriële controllers. Het definieert 5 verschillende talen. Deze worden wereldwijd door alle grote PLC‐fabrikanten gebruikt. Deze 5 talen zijn de volgende: o o o o o
4.2
LADDER DIAGRAM (LD), een grafische taal welke gebaseerd is op contactorlogica. FUNCTION BLOCK DIAGRAM (FBD) INSTRUCTION LIST (IL): een ‘low‐level’ taal, vergelijkbaar met assembler SEQUENTIAL FUNCTION CHART (SFC): een grafische taal speciaal ontwikkeld om de afloop van sequentiële systemen te programmeren. STRUCTURED TEXT (ST): een ‘high‐level’ taal om gestructureerd te programmeren. Deze taal is sterk vergelijkbaar met PASCAL.
Structuur van een applicatie volgens de IEC 611313 norm
Een event‐gestuurde task wordt aangestoten bij een bepaalde gebeurtenis. Bij PC WorX wordt de event‐gestuurde task gebruikt voor de mogelijkheid van sequential processing. Een systeem‐gestuurde task wordt aangestoten door het operatingsysteem (warme start, koude start, stop, watchdog error, divide by zero, ...).
De IEC 61131‐3
In elke configuratie vinden we één of meerdere resources terug. Een resource voorziet in alle mogelijke tools om een bepaald gebruikersprogramma uit te voeren. Het is een kenmerk om een bepaalde processor te ondersteunen. We kunnen een resource het best begrijpen als een CPU met het daarbij behorende operating systeem. In elke resource kunnen meerdere tasks actief zijn. Een task wordt aangemaakt om een aantal programma’s uit te voeren. Een TASK kan een cyclische (periodische) task, een event‐gestuurde task of een systeem‐gestuurde (interrupt‐) task zijn. Een cyclische task wordt cyclisch uitgevoerd met tijdsbewaking.
12
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Het uitvoeringsprogramma dat we in een task terugvinden kan bestaan uit verschillende POU’s (Program Organisation Unit). POU’s is de verzamelnaam voor programma’s, functieblokken of functies.
RESOURCE
TASK
POU’s
program program program
functie functie
functiebouwsteen
functiebouwsteen
functie
functie
De IEC 61131‐3
13
IT Powered Automation: multifunctionele besturingen
4.3
PHOENIX CONTACT
POU’s
POU staat voor Program Organisation Units en is een verzamelnaam voor programma’s, functieblokken en functies. Een overzicht:
POU type
Meermaals gebruik als
Commentaar
Programma
Programma instance
Grotere herbruikbare software elementen binnen een gebruikersprogramma
Functieblok
Functieblok instance
Kleinere (van complex algoritmes tot eenvoudige besturingstaken) herbruikbare software elementen
Functie
Functie
Herbruikbare software elementen voor data manipulatie
4.3.1
Functies
Algemeen Een functie is een software‐blokje dat meermaals kan gebruikt worden in een andere POU. Meestal zullen functies gebruikt worden om data te manipuleren. Een functie produceert altijd ogenblikkelijk een definitief resultaat met behulp van een aantal ingangsparameters. Het resultaat wordt toegekend aan de functienaam zelf. Hiervoor zal een functie altijd van een bepaald data‐type moeten zijn. 9 Een functie heeft juist één uitgang. 9 Voor een identieke set ingangsparameters zal een functie altijd hetzelfde resultaat teruggeven. ‘result’ is de naam van de functie en tevens de naam van de OUTPUT
i_1
i_2
i_3
result
Een functie met 3 VAR_INPUT ‘s
De IEC 61131‐3
14
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Variabelen en functies Een variabele in een functie kan van het type VAR en VAR_INPUT zijn. Variabelen van het type VAR_OUTPUT zijn niet mogelijk omdat een functie slechts één uitgang heeft, zijnde de functienaam zelf. Standaardfuncties Er zijn heel wat standaardfuncties. We onderscheiden volgende groepen: o o
o o
o o
numerieke functies (ABS, SQRT, LN, LOG, EXP, SIN, COS, TAN, ASIN, ACOS, ATAN) rekenkundige functies (ADD, MUL, SUB, DIV, MOD, EXPT, MOVE) Deze functies zijn meestal van het data‐type ANY_NUM. Dit betekent dat het data_type van de inputparameters zowel een INT, DINT of REAL kan zijn. bit stringfuncties (SHL, SHR, ROR, ROL) booleaanse bit‐functies (AND, OR, XOR, NOT) De functies van de twee laatste groepen zijn meestal van het data‐type ANY_BIT. Dit betekent dat het data_type van de inputparameters zowel een BIT, BYTE, WOORD of dubbelwoord kan zijn. vergelijkingsfuncties (GT, GE, EQ, LE, LT, NE) karakter stringfuncties (LEFT, RIGHT, MID, CONCAT, INSERT, DELETE, REPLACE, LEN, FIND) functies om data‐types om te zetten
Voor PC WorX zijn nog heel wat bibliotheken voorhanden met speciale functies. 4.3.2
Functiebouwstenen
Algemeen Instances voor functiebouwstenen: Een functieblok is een herbruikbaar software element om complexe tot eenvoudige besturingstaken uit te voeren. Bij het aanmaken van een functiebouwsteen worden variabelen gedefinieerd. Bij de oproep van deze functiebouwsteen wordt er voor deze variabelen geheugenruimte voorzien. Wil men deze functiebouwsteen meerdere malen oproepen, dan moet er meerdere keren geheugenruimte voorzien worden. Daarom wordt er bij de oproep van een functiebouwsteen een instance gedefinieerd. Deze instance verwijst dan naar deze specifieke geheugenlocatie. Bij een bepaalde set ingangsparameters zullen de uitgangsparameters van een functieblok een variërend resultaat hebben in functie van de tijd.
Variabelen en functiebouwstenen Een variabele in een functiebouwsteen kan van het type VAR, VAR_GLOBAL, VAR_INPUT en VAR_OUTPUT zijn. Hierbij zijn de ingangsparameters van het type VAR_INPUT. De uitgangswaarden van de FB zijn van het type VAR_OUTPUT. Een variabele kan ook van het type VAR_IN_OUT zijn. Dergelijke variabele krijgen een inputwaarde meegegeven welke kan veranderen in de uitvoering van de FB.
De IEC 61131‐3
15
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Het gebruik van VAR_GLOBAL wordt vermeden in een functiebouwsteen. ‘actie_1’ is de instance van de oproep van deze functiebouwsteen
‘actie’ is de naam van de functiebouwsteen
actie_1
i_1
actie
q_1
i_2
i_3
q_2
VAR_INPUT’s
VAR_OUTPUT’s
Standaardfunctiebouwstenen Er zijn heel wat vooraf gedefinieerde functieblokken. De belangrijkste zijn: o SR, RS, R_TRIG, F_TRIG, o Counters: CTU, CTD, CTUD o Timers: TP,TOF, TON 4.3.3
Programma’s
Algemeen Een programma is een groot herbruikbaar software element. Dit element is meestal opgebouwd uit verschillende andere software elementen zoals functies en functieblokken. Die elementen worden in één van de 5 IEC talen geschreven. Een typisch programma bestaat uit een aantal gelinkte functieblokken die softwarematig data kunnen uitwisselen. Variabelen Variabelen kunnen van het type VAR, VAR EXTERNAL, VAR_EXTERNAL_PG en VAR_GLOBAL zijn. Globale variabelen worden in programma’s gebruikt en worden nadien gelinkt aan periferie IO of aan softwarevariabelen.
De IEC 61131‐3
16
IT Powered Automation: multifunctionele besturingen
4.4
PHOENIX CONTACT
Datatypes
4.4.1
Algemene datatypes
In de volgende tabellen wordt een overzicht gegeven van de belangrijkste datatypes. Datatype SINT INT DINT LINT USINT UINT UDINT ULINT REAL LREAL
Beschrijving Short integer Integer Double integer Long integer Unsigned short integer Unsigned integer Unsigned double integer Unsigned long integer Floating point Long floating point
Bits 8 16 32 64 8 16 32 64 32 64
Bereik ‐128 tot +127 ‐32768 tot 32767 ‐231 tot +231‐1 ‐263 tot +261‐1 0 tot 255 0 tot 216‐1 0 tot 232‐1 0 tot 264‐1 ± 10±38 ± 10±308
Opmerkingen over de notatie van numerieke datatypes INT#15 of 15 REAL#8 of 8.0 Datatype BOOL BYTE WORD DWORD LWORD STRING o
Beschrijving 1 bit Bitstring van 8 bits Bitstring van 16 bits Bitstring van 32 bits Bitstring van 64 bits Karakter string
Bereik Logisch 1 of 0 Binaire informatie Binaire informatie Binaire informatie Binaire informatie Tekst informatie
Opmerkingen over de notatie van bitgebaseerde datatypes WORD#2#1010111100000011 (binaire notatie) WORD#16#AF03 (hexadecimal notatie) BYTE#2#10100011
Bits 1 8 16 32 64
De IEC 61131‐3
o
17
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Datatype TIME DATE TIME_OF_DAY DATE_AND_TIME
Beschrijving Tijdsduur Kalendergegevens Tijd van de dag Kalendergegevens + tijd van de dag
Bits
Bereik
o
Opmerkingen over TIME T# 3s T# 16d_5h_3m_4s_2Oms (16 dagen, 5 uur, 3 minuten, 4 seconden en 20 milliseconden) TIME# 1Os
o
Opmerkingen over DATE D#2001‐10‐15 (15 oktober 2001) DATE#1999‐1‐30
o
Opmerkingen over TIME_OF_DAY TOD#10: 10:30 (10 uur, 10 minuten en 30 seconden) TIME_OF_DAY#23 :59:59 (1 seconde voor middernacht) Opmerkingen over DATE_AND_TIME DT#2007‐03‐22‐15:36 :50 DATE_AND_TIME# 2007‐02‐01‐12:00:00
o
4.4.2
Array
‘Array’ datatype is een structuur van verschillende elementen van hetzelfde datatype. De verschillende elementen kunnen één voor één apart gemanipuleerd worden aan de hand van een array‐index. Een array datatype moet vooraf gedeclareerd worden. Eens het datatype gedeclareerd is, dan kunnen variabelen van dit array datatype gedefinieerd worden. TYPE
(*Typename*) : ARRAY [(*From..To*)] OF (*DATATYPE*);
De IEC 61131‐3
END_TYPE
18
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Voorbeeld van een ééndimensionale array Declaratie array datatype TYPE getallen_reeks : ARRAY[1..23] OF INT; END_TYPE Definitie van variabelen VAR reeks_1 : getallen_reeks; waarde_4: INT; END_VAR CODE in ST
waarde_4 := reeks_1 [4]
Voorbeeld van een multi‐dimensionale array Declaratie array datatype TYPE getallen_reeks : ARRAY[1..23] OF INT; resultaten : ARRAY [1..3] OF getallen_reeks; END_TYPE Definitie van variabelen VAR productielijn_1 : resultaten; opbrengst_x: INT; END_VAR CODE in ST
De IEC 61131‐3
opbrengst_x := productielijn_1 [2] [10];
19
IT Powered Automation: multifunctionele besturingen 4.4.3
PHOENIX CONTACT
Struct
‘Struct’ datatype is een structuur van verschillende elementen van een verschillend datatype. TYPE
(*Typename*) :
STRUCT
(*Element 1 Name*) :
(*DATATYPE*);
(*Element 2 Name*) :
(*DATATYPE*);
(*Element 3 Name*) :
(*DATATYPE*);
(* .
:
. *)
(* .
:
. *)
(*Element n Name*) :
END_STRUCT;
(*DATATYPE*);
END_TYPE 4.4.4
String
Een string is een datatype om tekst te verwerken. Het is een verzameling van bytes, waarbij elke byte een character voorstelt (ASCII‐tabel) TYPE
(*Typename*):STRING((*String length*));
END_TYPE
De IEC 61131‐3
20
IT Powered Automation: multifunctionele besturingen
4.5
PHOENIX CONTACT
Structured Text
Specifiek aan structured text zijn de voorwaardelijke statements. Hierna volgt een kort overzicht. 4.5.1
Selectie statements
IF… THEN… ELSE…
IF
THEN
<statement>;
ELSE
<statement>;
END_IF;
Met ELSIF wordt het: IF
<statement>;
ELSIF
THEN
THEN
<statement>;
ELSE
<statement>;
END_IF;
CASE
CASE OF : <statement>;
: <statement>;
: <statement>; ELSE <statement>; END_CASE;
De IEC 61131‐3
21
IT Powered Automation: multifunctionele besturingen 4.5.2
PHOENIX CONTACT
Iteratie statements FOR… DO
FOR TO <eindwaarde> BY OF
<statement>; <statement>;
<statement>;
END_FOR;
WHILE… DO
WHILE DO <statement>; <statement>; <statement>; END_WHILE;
REPEAT… UNTIL
REPEAT <statement>; <statement>;
<statement>;
UNTIL END_REPEAT;
Met het statement EXIT kan een voorwaardelijk einde gemaakt worden aan een iteratie statement
De IEC 61131‐3
22
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
5 Aanmaken van een project
5.1
Overzicht
start
Nieuw project aanmaken
Project opslaan
Projectinformatie aanpassen
IP Configuratie
toekennen IP‐adres aan de controller
INTERBUS configuratie
Gebruikersprogramma aanmaken
Koppeling softwarevariabelen aan fysische IO
Compileren, downloaden en koude start
Run/debug
Aanmaken van een project
23
IT Powered Automation: multifunctionele besturingen
5.2
PHOENIX CONTACT
Nieuw project openen
Selecteer “New Project” onder het menu “File” om een nieuw project aan te maken via een template. De structuur van het project alsook de keuzemogelijkheid van een controller worden nu voorbereid. o Selecteer de “ILC 150 ETH Rev. > 01/2.00” controller en bevestig met OK.
o
o
Selecteer “Save Project As…” onder het menu “File”. Kies een projectnaam, i.f.v. het gebruik van Webvisit zijn spaties in de naam niet toegelaten, (hier QuickStart_ILC150, zie Figuur 6‐2) en sla het project op via “Save”. Figuur 5‐2 Ieder project wordt opgeslagen als een *.mwt bestand en een folder met dezelfde naam. Op Figuur 6‐2 is er een *.mwt bestand met de naam EXAMPLE alsook een folder met de naam EXAMPLE. Het is ook mogelijk om het project te zippen tot een *.zwt bestand
Aanmaken van een project
Figuur 5‐1 Project templates
24
IT Powered Automation: multifunctionele besturingen
5.3
PHOENIX CONTACT
Structuur nieuw project conform de IEC 611313
totale configuratie
resource
DEFAULT task met een eerste ingebruikname van het programma Main
Figuur 5‐3 Structuur bij het aanmaken van een nieuw project in PC Worx
Onder de map ‘Logical POU’s ‘wordt reeds één programma aangemaakt met de naam Main. Dit programma wordt een eerste in gebruik genomen via de DEFAULT task. Hierdoor is dit programma dadelijk compileerbaar Indien andere programma’s aangemaakt worden dienen die zeker in een task geactiveerd te worden (zie verder in deze cursus).
Aanmaken van een project
25
IT Powered Automation: multifunctionele besturingen
5.4
PHOENIX CONTACT
Aanpassen van de projectinformatie
o
Schakel over naar het werkgebied “Bus configuration”. Hier wordt alle projectinformatie weergegeven. Figuur 5‐4
Tijdens het aanmaken van het project kent PC WorX automatisch een IP range toe voor een lokaal netwerk (192.168.0.2 tot 192.168.0.254). Indien een ander adres moet gebruikt worden, dan moet het start‐ en eindadres aangepast worden, indien nodig ook het subnetmask aanpassen.
Voor de cursus worden volgende IP adressen toegepast:
PC
192.168.0.10
ILC_150
192.168.0.11
Zie ook figuur 5.5.
Aanmaken van een project
26
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Figuur 5‐5 ‐ Configuratie
5.5
IP configuratie van uw PC
Figuur 5‐6 Ipconfig
Aanmaken van een project
Belangrijk is om eerst de netwerkinstellingen van de PC te controleren. Start een DOS applicatie om het IP‐adres van de PC op te vragen via het commando “ipconfig”.
27
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
De PC instellingen aanpassen indien nodig via de eigenschappen voor LAN‐verbinding. Bij het Internet‐protocol, kiezen voor de eigenschappen en een vast IP‐adres instellen.
Aanmaken van een project
Figuur 5‐7
28
IT Powered Automation: multifunctionele besturingen
5.6
PHOENIX CONTACT
IP configuratie van de controller
5.6.1
Algemeen
Om het IP adres aan te passen zijn er de volgende mogelijkheden: o Voor de eerste keer een IP‐adres toekennen • Via een BootP Server • Via de seriële interface o Veranderen van het IP‐adres • Via de seriële interface • Via Ethernet met PC WorX o IP‐adres vergeten? • Opvragen via BootP Server
Aanmaken van een project
Figuur 5‐8
29
IT Powered Automation: multifunctionele besturingen 5.6.2
PHOENIX CONTACT
Aanpassen IPadres via de BootP Server
Figuur 5‐9 BootP
Activeer de “BootP Server active” checkbox. Schakel over naar het werkgebeid “Bus configuration”. Selecteer de “ILC 150 ETH” controller. Selecteer het tabblad “IP Settings” in het venster “Device Details”. Breng het MAC‐adres van de controller in (MAC‐adres begint met 00.A0.45 ). Vul het gewenste IP‐adres in. Figuur 5‐10 o Druk met een scherpe punt de resetknop van de controller in. o Neem de spanning weg van de controller terwijl de resetknop ingedrukt blijft. o De spanning terug laten opkomen, resetknop lossen. Vanaf nu wordt het BootP proces opgestart, de controller krijgt het ingestelde IP‐adres en na een tweetal minuten is het IP‐adres geactiveerd.
Aanmaken van een project
o o o o o o
30
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Eens bij de controller en op de PC het juiste IP‐adres ingesteld staat kan de communicatie geactiveerd worden. Hiervoor wordt de ILC 150 ETH aangeklikt in het window “Bus Structure” (links) en wordt het tabblad “Communication” gekozen in het window “Device Details” Figuur 5‐11
Aanmaken van een project
Na het instellen van het juiste IP‐adres van de controller kan de communicatie getest worden via de knop “Test”. Figuur 5‐12 Na enkele seconden zal de indicatiebar groen oplichten.
31
IT Powered Automation: multifunctionele besturingen
5.7
PHOENIX CONTACT
De INTERBUS configuratie
Eens het communicatiepad actief is tussen de controller en de PC kan het INTERBUS systeem verbonden met de controller automatisch ingelezen worden. Voor dit project zijn 2 INTERBUS modules verbonden met de controller. o Selecteer het “Connected Bus” commando via het “View” menu om het INTERBUS systeem in te lezen (Figuur 5‐13). Figuur 5‐13
Selecteer de juiste controller in het venster “Connected Bus”.
Figuur 5‐14
Aanmaken van een project
o
32
IT Powered Automation: multifunctionele besturingen o o
PHOENIX CONTACT
De INTERBUS modules worden nu automatisch ingelezen. Eens ingelezen moeten ze toegevoegd worden aan het project. Klik hiervoor op de controller, rechtermuis toets en kies vervolgens “Import to Project” en “With Device Description”
o
o
Figuur 5‐15 Het venster “Select Device” toont nu alle modules welke overeenstemmen met de ID code van de geconnecteerde modules. Uit deze lijst moeten de werkelijk verbonden modules geselecteerd worden. De INTERBUS modules welke in dit project gebruikt zijn: ‐ ‐
IB IL AO 1/U/SF IB IL AI 2/SF‐ME
Uiteindelijk moet de configuratie opgebouwd zijn zoals op Figuur 5‐16 wordt weergegeven.
Figuur 5‐16
Tot slot is het beter om nu opnieuw off‐line te selecteren vooraleer dit venster af te sluiten.
Figuur 5‐17
Aanmaken van een project
o
33
IT Powered Automation: multifunctionele besturingen
5.8
PHOENIX CONTACT
Compileren en downloaden
Het project bevat nu alle informatie omtrent de busconfiguraties (Ethernet & INTERBUS) en is er een active communicatie. Op dit moment is het mogelijk om het project te compileren en te downloaden om eventuele fouten te herkennen.
compileren Æ downloaden naar de controller Æ cold restart uitvoeren.
Compileren project Compilleren en online overschrijven Werkblad compileren
Figuur 5‐18
Enkele belangrijke sneltoetsen betreffende het compileren:
Figuur 5‐19
Aanmaken van een project
34
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
6 Uitgewerkt voorbeeldprogramma
6.1
Inleiding
Hieronder wordt een eenvoudig voorbeeldprogramma stap voor stap omschreven. De beoogde werking bestaat uit 2 delen: 1. PC WorX: In PC WorX wordt een eenvoudig programma geschreven waarbij via een schakelaar een knipperlicht kan geactiveerd worden. Daarnaast wordt ook een analoge waarde binnengelezen en gevisualiseerd op een LED‐bar. 2. Webvisit: De ILC150 ETH beschikt over een webserver. Bij deze oefening is het de bedoeling dat een webpagina aangemaakt wordt waarmee opnieuw het knipperlicht gevisualiseerd wordt, alsook de aansturing ervan mogelijk wordt. De toestand van de analoge ingang zal hier ook worden gevisualiseerd.
6.2
Opdrachtomschrijving
Na een correcte hardwareconfiguratie wordt aan de hand van een voorbeeldprogramma de programmeeromgeving van PC WorX, conform de IEC61131‐3 norm, verder toegelicht. Het voorbeeldprogramma bestaat uit het programmeren van een eenvoudig knipperlicht waarbij een schakelaar van de switchbox het knipperen van een uitgang op de Inline uitgangsmodule activeert. De controle van dit knipperlicht kan ook gebeuren via het visualisatiepanel en Webvisit. Een tweede functie is het doorkoppelen van een analoge ingang (potentiometer) naar een analoge uitgang (LED Bar Graph) via enkele bewerkingen. De waarde van de analoge uitgang zal ook kunnen worden opgevolgd via Webvisit.
6.3
Uitwerking
Eerst en vooral moet er omgeschakeld worden naar het werkgebied ‘IEC Programming”. Meteen is duidelijk dat PC WorX conform de IEC 61131‐3 norm opgebouwd is. In het venster “Project Tree Window” zijn er enkele duidelijke onderverdelingen terug te vinden. Er is een mapstructuur voor libraries, voor datatypes, voor POU’s en er is de Physical Hardware.
Uitgewerkt voorbeeldprogramma
35
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Op Figuur 6‐1 is deze structuur afgebeeld. Onder “Physical Hardware” is de hoofdstructuur terug te vinden. De STD_CNF (standaard configuratie) bestaat uit een STD_RES (standaard resource) welke hier de ILC 150 ETH is. Deze resource kan dan verschillende Tasks uitvoeren. Bij de opstart van een nieuw project is er telkens een “Main program” voorzien onder het mapje “Logical POU’s” welke geactiveerd is binnen de “Default task” 6.3.1
Definiëren van de variabelen
Figuur 6‐1
Vooreerst wordt er een onderscheid gemaakt tussen locale en globale variabelen. Locale variabelen Locale variabelen worden gedefinieerd op POU niveau. Deze variabelen kunnen enkel gebruikt worden binnen de POU waarin ze aangemaakt worden. Naast het gebruik van locale variabelen als VAR kunnen locale variabelen ook op een ander manier gebruikt worden. Hier wordt onderscheid gemaakt naargelang het type POU. Binnen een functie kunnen ook locale variabelen als VAR_INPUT gedefinieerd worden. Deze zullen de ingangsparameters van de functie worden. Binnen een functiebouwsteen kunnen locale variabelen als VAR_INPUT, VAR_OUTPUT en als VAR_IN_OUT. Via deze variabelen worden alle input‐ en outputparameters van de functiebouwsteen gedefinieerd.
SYSTEM variabelen: dit zijn voorgedefinieerde variabelen, afhankelijk van de gekozen controller, welke sowieso altijd beschikbaar zijn. Een lijst van alle systeemvariabelen is terug te vinden onder het item “Global Variables” in de Project Tree Window, zie figuur 6.2.
Uitgewerkt voorbeeldprogramma
Globale variabelen Globale variabelen worden gedefinieerd op project niveau. Deze variabelen kunnen over het volledige project afgevraagd of gemanipuleerd worden. Hier moet er onderscheid gemaakt worden tussen systeem variabelen en user variabelen.
36
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Figuur 6‐2 Systeemvariabelen
USER variabelen: Naast de systeemvariabelen zal de gebruiker ook een lijst met globale user variabelen aanmaken. Deze kunnen beter onderverdeeld worden in verschillende groepen om dusdanig een goed overzicht te bewaren tussen alle globale variabelen. Daartoe kunnen nieuwe groepen aangemaakt worden onder het item “Global Variables” . Klik op de lijn “System Variables”, rechter muistoets en selecteer het item “Insert Group”. Op die manier kunnen we betekenisvolle groepen aanmaken.
Figuur 6‐3 Aanmaken groepen voor globale variabelen
Uitgewerkt voorbeeldprogramma
Maak 3 groepen aan met de volgende namen: ‐Analoog ‐Digitaal I/O ‐Webvisit
37
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Figuur 6‐4
6.3.2
Aanmaken van een nieuwe POU
Aan de hand van de 4 aangeduide icons kan een nieuwe POU toegevoegd worden. Er kan een keuze gemaakt worden tussen een nieuw programma ( ), een nieuwe functiebouwsteen ( ) of een nieuwe functie ( ). In het window “Insert” moet de POU verder gespecificeerd worden Eén van de vijf programmeertalen (conform de norm) moet gekozen worden voor de POU. Enkel in het geval van een functie moet een “Datatype” of “return value” geselecteerd worden.
Figuur 6‐4 Aanmaken van een nieuwe POU
Uitgewerkt voorbeeldprogramma
38
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Per POU worden drie werkbladen aangemaakt: o NaamPOUT( ); Textveld: alles wat hierin genoteerd wordt, zal verschijnen bij het opvragen van de help omtrent deze POU. o NaamPOUV( ): Veld voor het ingeven van variabelen o NaamPOU( , , , , ): Programmeerveld 6.3.3
Aanmaken van een functieblok “Knipperlicht”
De knipperfunctie wordt aangemaakt in een functieblok. Om een nieuwe functieblok aan te maken, kies links bovenaan. o Selecteer de programmeertaal FBD (“Function Block Diagram”) en stel bovenaan de gewenste bouwsteennaam in. (hier: ‘Knipperlicht’) Figuur 6‐5 o Bevestig met OK. De bouwsteen wordt aangemaakt. o Open het werkblad van de functieblok door te dubbelklikken op o Nu kan het programma voor de knipperfunctie geschreven worden o Voeg een ‘On delay’ timer in vanuit de Edit Wizard: dubbelklik onder “Function blocks” op ‘TON’ , controleer en/of wijzig de Instance van de bouwsteen en bevestig vervolgens met OK.
Figuur 6‐6
Uitgewerkt voorbeeldprogramma
o
39
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
o o o Figuur 6‐7 Instance voor FB o Op dezelfde manier wordt een ‘Pulse’ timer en een AND functie vanuit de Edit Wizard opgehaald. Let op het feit dat er voor de AND functie geen instance moet toegekend worden (verschil functiebouwsteen en functie). o Uiteindelijk verbinden we alles aan elkaar tot volgende functionaliteit bekomen wordt: Let wel: Het ingangssignaal van onze timer‐on‐delay dient omgekeerd te worden. We doen dit door te dubbelklikken op de ingang en het vakje “negated” aan te vinken.
o o
Uitgewerkt voorbeeldprogramma
o o o
Nu moeten enkel nog de variabelen aangemaakt worden. Klik op een plaats in het werkblad, klik rechtermuisknop en kies voor het item “Variable” Stel linksboven de gewenste naam in, bijv: i_xEnable Kies als datatype Bool en kies bij het item “Usage” voor VAR_INPUT De scope voor deze “User Variable” staat ingesteld op local.
40
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Figuur 6‐8
o o o
Op dezelfde manier worden volgende variabelen gedeclareerd:
Naam i_xEnable i_tTotalePulsTijd i_tPulsAanTijd q_xKnipperPuls
Data type Bool Time Time Bool
Usage VAR_INPUT VAR_INPUT VAR_INPUT VAR_OUTPUT
Scope local Local Local Local
Glob. Var. Groups
o
In ST ziet deze functieblok er als volgt uit:
Vooraleer de functieblok verder gebruikt kan worden moet deze gecompileerd te worden!
Uitgewerkt voorbeeldprogramma
41
IT Powered Automation: multifunctionele besturingen 6.3.4 o
o
PHOENIX CONTACT
Het hoofdprogramma
In het werkblad “Main” kan de aangemaakte functiebouwsteen opgevraagd worden. Voeg deze toe door in de “Edit Wizard” onder de programmanaam te dubbelklikken op de functieblok ‘Knipperlicht’. Deze functiebouwsteen kan nu eventueel een tweede keer opgevraagd worden om twee uitgangen te laten knipperen. Nu moeten ook nog alle variabelen toegekend worden. De 8 digitale ingangen en de 4 digitale uitgangen on board van de ILC 150 ETH, zijn te vinden als systeemvariabelen. Dubbelklikken op het aansluitpunt (niet op de naam zelf) van de ingang i_xEnable:
o
Kies voor Global, en via de selecttoets onder Name kan een keuze gemaakt worden tussen alle systeemvariabelen. Selecteer de ONBOARD_INPUT_BIT0
Uitgewerkt voorbeeldprogramma
Figuur 6‐9
42
IT Powered Automation: multifunctionele besturingen o
PHOENIX CONTACT
Voor de inputvariabelen van het datatype time kan bijvoorbeeld een constante tijd meegegeven worden.
Figuur 6‐10
o Het programma kan nu als volgt worden afgewerkt:
o
Uitgewerkt voorbeeldprogramma
Vergeet niet alles opnieuw te compileren!
43
IT Powered Automation: multifunctionele besturingen 6.3.5
PHOENIX CONTACT
Testen van het programma
Tot slot kan het geschreven programma getest worden. Hiervoor wordt terug het “IEC programming” werkgebied geactiveerd. Met het icoon (Debug On/Off) kan het opsporen van fouten gestart worden. Onder elke variabele wordt nu zijn status of actuele waarde weergegeven. Door het schakelen van de eerste schakelaar op de switchbox kan het knipperlicht geactiveerd worden. De statusveranderingen kunnen nu zowel online als op de modules zelf worden teruggevonden.
Figuur 6‐11
Uitgewerkt voorbeeldprogramma
44
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
7 Analoge signaalverwerking 7.1
Functiebouwsteen voor analoge signaalverwerking
Om het toekennen van procesdata en het gebruik van analoge in‐ en uitgangen toe te lichten wordt een tweede functionaliteit voorzien in het bestaande project, een Analog_In_Out – functiebouwsteen. Hiervoor wordt opnieuw een functieblok aangemaakt met de naam ‘Analog_In_Out’. Bedoeling is om de analoge ingang (potentiometer) door te koppelen naar de analoge uitgang (LED bar graph). o
Dit programma kan heel eenvoudig zijn:
o
Oproep van deze functiebouwsteen in het programma ‘Main’:
o
Er moeten nu twee variabelen aangemaakt worden om te linken aan de werkelijke fysische IO. Deze worden op de volgende manier gedeclareerd, en worden onder Project Variables geplaatst.
o
Uiteindelijk wordt volgend programma bekomen:
Analoge signaalverwerking
Figuur 7‐1
45
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
o
o
Om deze variabelen nu aan de fysische IO te koppelen springen we over naar de “process data workspace”. Hier zien we een onderverdeling met links de softwarevariabelen en rechts de hardwarevariabelen. Onder de groep “Analoog” vinden we nu onze pas aangemaakte variabelen.
o Rechts vinden we onze gekoppelde in‐ en uitgangsmodules. We koppelen onze variabelen door ze naar de desbetreffende module te slepen. Voor “IN_wPotentiometer1” kies “AI 1 Voltage”. “OUT_wLedBar1” slepen we naar “1.1.1 Output Voltage”. Dit programma kan nu getest worden.
Analoge signaalverwerking
46
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Na het testen blijkt dat er een probleem is. Slechts de halve range van de ledbar wordt gebruikt. Probleem situeert zich bij de modules: De analoge ingangsmodules • De analoge ingangsmodules gebruiken een tekenbit: •
De analoge inputrange wordt altijd vertaald naar een waarde tussen 0 en 30000.
De analoge uitgangsmodule •
De analoge uitgangsbit gebruikt geen tekenbit
•
De analoge outputrange wordt voor deze module vertaald naar een waarde tussen 0 en 65535.
Analoge signaalverwerking
47
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
De waarde moet van de range van 0 tot 30000 aangepast worden naar een range van 0 tot 65535. Daarom wordt de functiebouwsteen als volgt aangepast:
7.2
Functie
De zopas uitgevoerde opdracht is louter datamanipulatie. Hiervoor kan i.p.v. een functiebouwsteen ook gewoon een functie gebruikt worden. Voeg een functie toe, kies een naam en een programmeertaal. Let op het feit dat de functienaam een variabele is en er dus ook een datatype moet toegekend worden. Toekennen van een datatype aan de
naam van de functie
Figuur 7‐2
De functie in STL wordt dan de volgende code:
AnaloogInUit := real_to_word ( word_to_real (i_wAnaloogIn) * 2,1845)); Het programma kan nu gecompileerd en gedownload worden.
Analoge signaalverwerking
48
IT Powered Automation: multifunctionele besturingen
7.3
PHOENIX CONTACT
Watch Window
Een andere handige mogelijkheid om uw programma op te volgen is het Watch Window. Eens online kan iedere variabele aan het Watch Window toegevoegd worden. Klik in de programmeeromgeving op een variabele, rechter muistoets en dan kiezen voor het item “Add to Watch Window”.
Figuur 7‐3
Een andere manier is in het werkblad variabelen van een bepaalde functieblok, functie of programma, klikken op een variabele, rechter muistoets en kiezen voor het item “Add to Watch Window”.
Figuur 7‐4
Activeer het “watch window” via volgend icon .
Figuur 7‐5
49
IT Powered Automation: multifunctionele besturingen
7.4
PHOENIX CONTACT
Opdracht temperatuursmeting
De potentiometer wordt in de volgende opdracht beschouwd als een temperatuurssensor welke een temperatuursrange van ‐50.0 tot +100.0 °C omzet naar een analoge spanning van 0 tot 10V. Gevraagd wordt om een functiebouwsteen te schrijven welke volgend outputparameters levert: ‐ ‐
‐
De temperatuur in graden Celsius Een warninguitgang indien de temperatuur kleiner is dan ‐10.0°C en groter is dan ‐20.0°C of indien de temperatuur groter wordt dan een warning temperatuursgrens welke als inputparameter wordt meegegeven en kleiner is dan een alarm temperatuurgrens welke als inputparameter wordt meegegeven. Een alarmuitgang indien de temperatuur kleiner is dan ‐20.0°C of indien de temperatuur groter wordt dan een alarm temperatuursgrens die als inputparameter meegeven wordt.
Verder moet er nagegaan worden indien de inputparameters coorect ingegeven worden. Hierbij moet de warninggrens kleiner zijn dan de alarmgrens. Indien dit niet zo is wordt de warninggrens op 40.0°C geplaatst en zal de alarmgrens op 60.0°C geplaatst worden. Deze opdracht wordt uitgewerkt in FBD en/of STL. Het resultaat wordt een functiebouwsteen waarbij de oproep ervan volgend resultaat heeft. Bestuur het resultaat en ga na waarom er hier gebruik gemaakt wordt van VAR_INOUT parameters.
50
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Resultaat in FBD
51
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Resultaat in STL
52
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
8 Webvisit
8.1
Inleiding
Webvisit is een softwarepakket dat mee geïnstalleerd wordt tijdens het installeren van PC WorX. Met behulp van deze software kan op een grafische manier een webpagina aangemaakt worden en gedownload worden naar de ILC. Op deze manier kunnen globale variabelen van het programma worden gevisualiseerd en gemanipuleerd. De methode om een variabele in een WebVisit toepassing te gaan gebruiken bestaat er enerzijds in de variabele als een VAR_GLOBAL te declareren. Anderzijds moet ook de “PPD checkbox” aangevinkt worden waardoor in het programma vastgelegd wordt dat de variabele te benaderen is vanaf de webpagina (zie Figuur 8‐1). Figuur 8‐1
Een overzicht van alle globale in‐ en uitgangen, welke als PDD aangevinkt zijn, is ook te vinden bij de lijst “Global_Variables” (links in het ‘Project Tree Window’).
Figuur 8‐2
Webvisit
53
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
o
Om nu een webvisit toepassing te maken met ons knipperlicht gaan we het programma als volgt aanpassen: een OR‐ poort wordt toegevoegd, en een nieuwe globale variabele wordt aangemaakt, waar we PDD gaan aanvinken. Op die manier zullen we het knipperlicht kunnen bedienen met zowel de analoge schakelaar als digitaal via webvisit. Ook gaan we bij “ONBOARD_OUTPUT_BIT0” PDD aanvinken.
o
Tenslotte zullen we ook onze Ledbar visueel willen maken via webvisit, dus ook bij de variabele OUT_wLedbar vinken we PDD aan.
Tijdens het compileren van een PC WorX project wordt er door de software steeds een “PDD.CSV” bestand gegenereerd. Dit bestand bevat een lijst met de variabelennamen die vanuit de webpagina kunnen benaderd worden. Figuur 8‐3 toont een voorbeeld van dergelijk bestand. Wanneer Microsoft Office op de PC geïnstalleerd is zal dit bestand (met extensie .CSV) kunnen geopend worden in Excel. Het PDD.CSV bestand is terug te vinden in de map horende bij het PC WorX project. PC WorX maakt namelijk voor elk project een map aan met dezelfde naam als het PC WorX project en plaatst deze map op dezelfde locatie (directory) als het project zelf. In deze map is het PDD.CSV bestand terug te vinden onder: Locatie van het project…\Projectnaam\C\STD_CNF\R\STD_RES Figuur 8‐3
8.2
Starten van de visualisatie
Webvisit
Wanneer er reeds een webvisualisatie, waarvan de naam gekend is, aanwezig is in de ILC kan deze geopend worden door te surfen naar het IP adres van de ILC aangevuld met de naam van de .html pagina met behulp van een webbrowser (bijv. “//192.168.0.3/Paginanaam.html”).
54
IT Powered Automation: multifunctionele besturingen
8.3
PHOENIX CONTACT
Een project uitwerken in WebVisit
Start de WebVisit software via “Start… Programma’s… Phoenix Contact… AUTOMATIONWORX Software suite 2009 1.50… WebVisit 5.14.05” 8.3.1 o o
Een nieuw project aanmaken
Sluit eventuele openstaande projecten af door onder “File” voor “Close project” te kiezen. Een nieuw project aanmaken gebeurt door onder “File”, “New Project…” te kiezen. Kies het item “Project configurations” onder het menu “Project” zodat onderstaand venster geopend wordt.
Het is belangrijk om in te stellen met welk PC WorX project zal gecommuniceerd worden, en welke het daarbij horende “PDD.CSV” bestand is. Wanneer met behulp van de eerste ‘browse’ button het PC WorX project (.mwt bestand) ingesteld wordt zal automatisch het bijhorende PDD.CSV bestand opgezocht en ingesteld worden door de WebVisit software.
Figuur 8‐4
Het verdere verloop van deze WebVisit cursus is gebaseerd op de eerder aangemaakte oefening. Het is de bedoeling een webpagina aan te maken waarmee het knipperlicht kan gestart en gestopt worden. Ook het knipperlicht zelf wordt op deze pagina gevisualiseerd. Daarnaast wordt een pagina aangemaakt voor het visualiseren van de toestand van de analoge temperatuurswaarde (Ledbar). Verder moet het ook mogelijk zijn om aan temperatuurswaarde een Warning –en Alarmgrens te koppelen.
Webvisit
Het geheel wordt gecontroleerd door een hoofdpagina van waaruit de andere pagina’s kunnen worden opgeroepen.
55
IT Powered Automation: multifunctionele besturingen 8.3.2
PHOENIX CONTACT
Een nieuwe webpagina aanmaken
Een nieuwe webpagina (xxx.teq) invoegen gebeurt als volgt:
Figuur 8‐5
o o o
Geef de eerste pagina bijvoorbeeld de naam ‘Knipperlicht’. Selecteer de zopas aangemaakte pagina “Knipperlicht.teq” links onder ‘Project Files'. Voeg in het venster een button en een cirkel toe vanuit de toolbar.
Figuur 8‐6
o o
Dubbelklik op de aangemaakte button om de eigenschappen te bekomen. Figuur 8.7 toont dat onder “Repaints” de tekst op de drukknop gewijzigd kan worden.
Figuur 8‐7
Webvisit
56
IT Powered Automation: multifunctionele besturingen o
o
PHOENIX CONTACT
Bij het bedienen van de knop select komt de inhoud van het “PDD.SCV” bestand te voorschijn. Nu kan de gewenste variabele uit het PC WorX programma gekoppeld worden aan een bepaalde actie in WebVisit. (Hier “IN_xWebStart_Knipperen”) Figuur 8‐8 Instellen van de actie bij het bedienen van de drukknop. De werking van de schakelaar wordt opgevat als een ‘Toggle’ functie. Dit betekent dat het knipperlicht ingeschakeld wordt bij een eerste maal klikken op de drukknop. Een tweede maal klikken op dezelfde knop schakelt het knipperlicht terug uit.
Figuur 8‐9
De kleur van de drukknop laten veranderen indien actief of niet actief: groen = knipperlicht niet actief, rood = knipperlicht actief gebeurt onder ‘Border Advanced’. De select button laat hier opnieuw toe de correcte variabele in te stellen.
Figuur 8‐10
Webvisit
o
57
IT Powered Automation: multifunctionele besturingen o
PHOENIX CONTACT
Koppelen van de cirkel met de variabele “ONBOARD OUTPUT BIT0” zodat het knipperen van de uitgang zichtbaar wordt: onder ‘Boarder Advanced’ kan de binnenkleur van de cirkel.
o
Figuur 8‐11 Om de analoge temperatuurswaarde te visualiseren wordt een tweede webpagina aangemaakt. Klik dus opnieuw op ‘Project’… ‘Add to project’… ‘New…’ en geef de pagina de naam “Analoog.teq”. Een analoge waarde wordt zeer vaak voorgesteld in de vorm van een ‘Bar graph’ (staafdiagram). Voeg dus een staafdiagram toe zoals op onderstaande figuur aangegeven.
Figuur 8‐12
o
Het parametreren van de bargraph gebeurt opnieuw door er op te dubbelklikken. Onder “Repaints” kan de bronvariabele ingesteld worden. Het diagram varieert mee met de PLC‐variabele ‘OUT_rTemperatuur’, dus wordt als type terug voor PPO gekozen en met de ‘select’ button word de gewenste variabele ingesteld:
Webvisit
58
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Figuur 8‐13
Onder het tabblad “Bargraph Advanced” kunnen de grenzen waartussen de variabele zal variëren, ingesteld worden. Voor deze uitgang zal dit tussen ‐50 en 150 zijn. Verder kan ook een bijhorende schaal worden toegevoegd via ‘Scale’
o
o
o
o
Figuur 8‐14
Ook de richting waarin het diagram moet toenemen kan hier met behulp van de instelling “Orientation” worden ingesteld. Verder moet het ook mogelijk zijn om via de WebVisit applicatie de alarm –en warninggrens te kunnen aanpassen. Dit kan gebeuren via 2 “Edit boxes”. Voeg dus 2 “Edit boxes” toe zoals op figuur 8‐15 wordt aangegeven. Om de correcte waarde te kunnen uitlezen en aanpassen van de 2 grenzen. Moet de “Edit box” correct worden ingesteld. Wanneer dubbelgeklikt wordt op de “Edit box” verschijnen de parameters. Figuur 8‐15
Webvisit
59
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Op het tweede tabblad “Repaints” moet de correcte variabele met de bronvariabele van de “Edit box” gekoppeld worden. Dit moet bij beide “Edit boxes” worden ingesteld. Aan de eerste “Edit box” wordt variabele “INOUT_rAlarmGrens” gekoppeld. Aan de tweede “Edit box“ wordt “INOUT_rWarningGrens” gekoppeld. Verduidelijkende tekst kan toegevoegd worden via een “Static Text”. Figuur 8‐16
o
Figuur 8‐17
Verder kunnen ook de alarm –en warningstatus worden voorgesteld via cirkel waarbij de kleur de status weergeeft. Ook hier moet de verschillende PDD‐variabelen gekoppelde worden met de WebVisit‐figuur. Via Border Advanced kan een status gekoppeld aan de juiste kleur. In de figuur hieronder zien we dan het resultaat.
Webvisit
60
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Tot slot wordt nog één pagina aangemaakt die het de gebruiker mogelijk maakt tussen de pagina’s te wisselen. Met behulp van twee buttons wordt er toegang gegeven tot respectievelijk de pagina ‘Knipperlicht’ en de pagina ‘Analoog’. o o
Maakt dus opnieuw een pagina aan met de naam ‘Startpagina’ en voeg twee buttons in. Stel de tekst in van beide buttons op respectievelijk “Knipperlicht” en “Analoog” onder het tabblad ‘Repaints’ zodat volgend beeld verkregen wordt.
Figuur 8‐148
o
Onder het tabblad ‘Actions Jump’ kan de pagina ingesteld worden waarnaar moet omgeschakeld worden. Onderstaande figuur geeft dit weer voor de pagina ‘Knipperlicht’. Doe dezelfde instelling voor de button ‘Analoog’ met een verwijzing naar de pagina ‘Analoog’.
Figuur 8‐15
Zowel op de pagina ‘Knipperlicht’ als op de pagina ‘Analoog’ moet het ook mogelijk zijn om terug te keren naar de ‘Startpagina’. Hiervoor wordt op beide pagina’s een button toegevoegd met de tekst “Terug”. De link terug naar de vorige pagina kan zeer eenvoudig worden ingesteld onder het tabblad ‘Actions Jump’ door de optie ‘Back Button’ aan te vinken.
Webvisit
61
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Figuur 8‐16
Tot slot dient nog 1 instelling te gebeuren om er voor te zorgen dat de zopas aangemaakte ‘Startpagina’ wel degelijk als startpagina wordt weergegeven. Via “Projects… Project Configurations…” wordt onderstaand venster terug opgeroepen. Hierin kan de “Main teq” ingesteld worden. Geef hiervoor ‘Startpagina’ in zodat dit de startpagina wordt bij het surfen naar de ILC150 ETH. Let ook op de instelling ‘period’. Standaard staat dit ingesteld op 1000ms wat betekent dat elke seconde het beeld van de webpagina geüpdate wordt. Bij het visualiseren van een knipperlicht van 1 Hz is dit uiteraard te traag. Daarom zal deze parameter moeten verlaagd worden tot bijvoorbeeld 50ms om een snellere en meer correcte weergave van het knipperlicht te bekomen.
Figuur 8‐21
8.3.3
Compileren van het project
Net als in PC WorX moet een project gecompileerd worden, of met andere woorden, alle gemaakte instellingen moeten worden vertaald naar HTML code. Dit kan uitgevoerd worden door middel van het icoon of onder ‘Project’ Æ ‘Generate HTML…’. Bij dit commando wordt gevraagd het HTML bestand een naam te geven. Dit is tevens de naam die moet opgeroepen worden bij het surfen naar de ILC150, dus wordt er bijvoorbeeld gekozen voor de functionele naam “Starterkit.html”. Webvisit
62
IT Powered Automation: multifunctionele besturingen 8.3.4
PHOENIX CONTACT
Downloaden van het project
Nu de HTML pagina aangemaakt is kan het project gedownload worden. Om het project naar de ILC 150 ETH te downloaden wordt als volgt tewerk gegaan: o
Roep het downloadvenster op:
Figuur 8‐17
o o o
Geeft het IP‐adres in van de ILC (192.168.0.11) en druk op “Connect”. De verbinding wordt tot stand gebracht en door een druk op de knop “Download project” wordt het project gedownload. Het oproepen van de webpagina kan nu gebeuren door in een webbrowser (bijvoorbeeld Internet Explorer) het IP‐adres van de ILC in te stellen, aangevuld met de naam van de HTML pagina:
Figuur 8‐18
Webvisit
63
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Temporary Internet Files Wanneer een webpagina niet lijkt te reageren zoals het verwacht wordt, dan kan de oorzaak liggen in de Temporary Internet Files: • •
Open onder Control Panel (Configuratiescherm), Java. Selecteer op het eerste tabblad (General), onder Temporary Internet Files, Settings:
Figuur 8‐19: Settings Temporary Internet Files
•
Vink de bovenste optie af: Keep temporary files on my computer.
Webvisit
Figuur 8‐20: Deselecteren Temporary Internet Files bewaren
64
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
9 Tips & Trics
9.1
Schermbeheer
o
o
o
Shortcuts in het werkgebied IEC Programming <SHIFT> F2 Edit Wizard F2 Message Window F2 Cross Reference <SHIFT> F8 Project Tree Window F10 Watch Window Indien de schermen totaal ongeordend staan is een volledige herschikking mogelijk. Selecteer “Options” onder “Extras” en kies voor het tabblab “General”. Klik vervolgens op “Reset Workspaces” Vervolgens dient PC WORX opnieuw opgestart te worden Figuur 9‐1 In het programmeer window kan gemakkelijk in‐ en uitgezoomd worden via het indrukken van de ‐toets en tegelijkertijd scrollen met de muis
9.2
Beheer van variabelen
Verwijderen van ongebruikte variabelen en instances. Kies “Remove unused … “ onder “Build”
Figuur 9‐2
Tips & Trics
o
65
IT Powered Automation: multifunctionele besturingen o
PHOENIX CONTACT
In FBD Variabelen losmaken, indrukken van de <SHIFT>‐toets, klikken op de variabele en verslepen
Variabelen kopiëren, indrukken van de ‐toets, klikken op de variabele en verslepen Een bit, byte selecteren uit een woord: klik op het bolletje van een ingang, variabelen properties wordt geopend, selecteer het woord, plaats er een punt achter en dan komt een lijst tevoorschijn van alle bits en bytes welk onderdeel zijn van dit woord. o
Figuur 9‐3
In STL
Kies een woord, plaats er een punt achter en alle bits en bytes komen te voorschijn welke in dit woord kunnen geselecteerd worden.
Tips & Trics
‐toets en de spatiebalk leveren een lijst van alle variabelen op.
66
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
10 Opdrachten
10.1 Een alarmsysteem Een alarmsysteem heeft 3 ingangen, 3 alarmmeldingslampjes, één geluidsmelding, één bevestigingsingang en één testknop. Wordt één van de alarmingangen geactiveerd dan: gaat één van de alarmmeldingslampjes aan het pinken. treedt er een algemene geluidsmelding in werking. Na de bevestiging van het alarm: brandt het corresponderende alarmmeldingslampje continu stopt de geluidsmelding Na het wegnemen van de oorzaak van het alarm, gaat het overeenstemmende alarmmeldingslampje uit. Verdwijnt een alarm vooraleer de operator de kans heeft gekregen te bevestigen, dan blijven de geluidsmelding en het lampje in werking. Een testdrukknop laat toe een lampentest en een geluidstest door te voeren. Bij het indrukken van deze knop gaan alle lampjes branden en gaat de geluidsmelding. Wanneer deze knop terug losgelaten wordt, doven de lampjes en stopt het geluid.
o o
o
o o o
Het uiteindelijke programma (in één geval) moet voldoen aan volgend tijdsdiagram:
alarm 1 meldingslampje 1 geluidsmelder bevestiging
o
o
Bovenstaand tijdsdiagram is uitgetekend voor één alarm. Schrijf een functieblok voor de uitvoering van het gevraagde. Maak een totaalprogramma.
Opdrachten
67
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Maak gebruik van de functie knipperlicht welke eerder al in deze cursus werd aangemaakt. Maak vervolgens een functiebouwsteen alarmverwerking. Een mogelijk oplossing voor deze functiebouwsteen in figuur Figuur 10‐1 Oplossing FB alarmverwerking. Figuur 10‐1 Oplossing FB alarmverwerking
Het volledige programma:
Figuur 10‐2 Volledige oplossing
Opdrachten
68
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
10.2 Openen van een sectionaal poort Een sectionaal poort moet automatisch gestuurd worden. Met behulp van een startknop moet de poort geopend worden. Eens open, moet de poort automatisch na 10 seconden terug sluiten. Volgende voorwaarden moeten gecontroleerd worden: ‐ In de sectionaal poort is een deur aanwezig. Een sensor controleert of de deur dicht is. De poort kan niet geopend worden indien de deur niet in het slot zit. ‐ Eindeloopcontacten signaleren het open en dicht zijn van de poort. IO‐lijst: Functie signaalgever Drukknop poort openen Eindeloop poort dicht Eindeloop poort open Deurcontact Poort openen Poort sluiten
I/Q I I I I Q Q
Type NO NC NC NC
Bediend Detectie ‘1’ Detectie ‘0’ Detectie ‘0’ Detectie ‘0’
Logische naam in_xPoortOpenen in_xPoortDicht in_xPoortOpen in_xDeurDicht out_xPoortOpenen out_xPoortSluiten
Schrijf een passende functieblok: Programmacode functieblok in LD:
Opdrachten
69
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Uitbreiding: Een optische sensor controleert of er geen personen of voorwerpen in de poortopening aanwezig zijn. De poort mag uiteraard pas sluiten indien de doorgang volledig vrij is. Na het vrijmaken van de poort duurt het 10 sec vooraleer de poort sluit. IO‐lijst: Functie signaalgever Drukknop poort openen Eindeloop poort dicht Eindeloop poort open Deurcontact Optische sensor poort vrij Poort openen Poort sluiten
I/Q I I I I I Q Q
Type NO NC NC NC NO
Bediend Detectie ‘1’ Detectie ‘0’ Detectie ‘0’ Detectie ‘0’ Detectie ‘1’
Logische naam in_xPoortOpenen in_xPoortDicht in_xPoortOpen in_xDeurDicht in_xPoortVrij out_xPoortOpenen out_xPoortSluiten
Aangepaste programmacode functieblok in LD:
Opdrachten
70
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Programmacode functieblok in ST:
Opdrachten
71
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
10.3 Temperatuursopvolging Een temperatuurssensor levert een stroomsignaal van 4mA tot 20mA (0 .. 30.000) en dit voor een temperatuursbereik van ‐50°C tot +100°C. Met deze sensor moet de procestemperatuur bewaakt worden en moet binnen het bereik van ‐25°C en +55°C gehouden worden. Via de webserver op de ILC150 kan de werkelijke temperatuurswaarde opgevolgd worden en zijn er twee toestandsmeldingen voorzien. Een toestandmelding ‘WARNING’ indien de temperatuur gelegen is tussen ‐10°C en ‐25°C of indien de temperatuur gelegen is tussen +40°C en +55°C. Een toestandsmelding ‘ALARM’ indien de temperatuur lager is dan ‐25°C of indien de temperatuur hoger is dan 55°C. Schrijf een functieblok met drie VAR_OUTPUT’s, één voor de werkelijke temperatuurswaarde in °C en twee voor de toestandsmeldingen. Programmacode functieblok in ST:
Opdrachten
72
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
10.4 Sequentieel programmeren in ST: de rolkraan Een rolkraan brengt een product naar een spoelcabine. In deze cabine wordt het product gedurende 10 seconden besproeid met water. De watertemperatuur moet gelegen zijn tussen de 45 en de 70°C. Een eindeloop links en rechts geeft de stand van de rolkraan weer. De contacten van de eindelopen zijn NC. Via een startknop wordt de rolbrug in werking gezet. Het volledige proces wordt in verschillende stappan opgedeeld. Een eerste stap is de initiële stap. Hierin wordt gewacht tot er op de startknop gedrukt wordt. Indien de temperatuur van het water OK wordt de volgende stap uitgevoerd. In de tweede stap gaat de rolkraan naar links, richting spoelcabine. Indien de rolkraan de eindeloop links bereikt wordt de volgende stap geactiveerd. In de derde stap blijft de rolkraan 10 seconden staan in de spoelcabine. In een vierde stap beweegt de rolkraan terug naar de oorspronkelijke startplaats. Deze oefening wordt stap voor stap in de opleiding uitgewerkt.
Opdrachten
73
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
10.5 Tapijtoproller Bij een tapijtenproducent staat een tapijtoproller. Onderstaande figuur heeft een schematische voorstelling van de oprolmachine. De cijfers in de voorstelling stellen de zin van de flow in de machine voor.
Overzicht in en uitgangen
Opdrachten
74
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Verloop van de oprolcyclus o Nadat een operator een tapijt op de aanvoerband legt (I1), moet de aanvoerband na 5s beginnen draaien. o Ziet sensor I2 het tapijt, dan moet de tussenband ook beginnen draaien. Ziet dezelfde sensor het tapijt niet meer, dan moet de aanvoerband stilvallen. o Komt sensor I3 hoog, dan moet de tussenband stilvallen. Na 2 seconden gaat het tapijt via “Invoerband rolmachine” naar de rolmachine. o Wanneer het tapijt in de rol‐as van de machine zit (I4), dan moet “invoerband rolmachine” stoppen met draaien en kan het rollen starten. Zowel de folie‐gever als de roller worden tegelijk geactiveerd. Wanneer het tapijt 5 toeren gedraaid heeft (sensor I5 geeft per toer een puls) dan kan er geknipt worden. Het knippen is een uitgang die gedurende een seconde actief is. Wanneer het knippen start, moet de foliegever stoppen. Het rollen moet nog 3 seconden aangehouden blijven na het knippen. o Wanneer uiteindelijk ook het rollen stopt, moet de afduwer het tapijt afstoten tot op de invoerband van de kipper. De afduwer blijft vooruitgaan tot hij aan de eindeloop zit. (I7) o Is de ingang I7 hoog, (d.w.z. dat tapijt op de invoerband van de kipper ligt) dan moet de Invoerband van de kipper geactiveerd worden Ook moet de afduwer zich weer naar de beginpositie begeven. (afduwer achteruit tot I6 bereikt is) o Is het tapijt tot aan ingang I8 gevorderd, dan moet de Invoerband kipper stoppen. Wanneer de band gestopt is en wanneer de afduwer weer op de beginpositie staat, dan pas kan het kippen geactiveerd worden. Deze uitgang moet gedurende 5 seconden actief staan. Op die manier wordt het opgerolde tapijt in een kar gekipt. De cyclus is ten einde. o De volledige cyclus moet steeds opnieuw kunnen herhaald worden. o Archiveer deze opdracht onder de naam “Oprolcyclus Voornaam Familienaam” (op bureaublad)
Bediening: o Wanneer de stopknop bediend wordt, dan moet het huidige tapijt nog volledig afgewerkt worden en daarna stopt de machine. De machine kan enkel terug opgestart worden wanneer de machine volledig stilgevallen is en als de startknop ingedrukt wordt. Signalistatie: o Wanneer de machine in normaal bedrijf is, moet de groene lamp vast branden en is de rode lamp gedoofd. Wanneer op de stopknop gedrukt wordt, moet de rode lamp beginnen knipperen (2s hoog, 1s laag). Wanneer het huidige tapijt afgewerkt is, na bediening van de stopknop, dan brandt de rode lamp continu.
Tellers o De volgende zaken moeten opgevolgd kunnen worden: • Het aantal meter folie dat verbruikt is. Telkens een tapijt gerold is, wordt ongeveer 2meter folie verbruikt. (teller1) • Hoeveelheid afgewerkte tapijten. (teller2) o Via knop I11 kunnen beide tellers gereset worden.
Opdrachten
75
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Hoofdprogramma
Functiebouwsteen Blokgolf (* Takt *) TON_Taktpuls(IN := NOT TON_Taktpuls.Q, PT := T#3s); TP_Blokgolf(IN := TON_Taktpuls.Q, PT:= T#2s); Q := TP_Blokgolf.Q;
Functiebouwsteen StartStop R_TRIG_Start(CLK:= i_xStart); R_TRIG_Stop(CLK:= i_xStop); Blokgolf_1(); (* Controlblok *) IF R_TRIG_Start.Q AND NOT i_xStop THEN q_xVrijgave := TRUE; xStartGedrukt := TRUE; xStopGedrukt := FALSE; END_IF; IF R_TRIG_Stop.Q THEN q_xVrijgave := FALSE; xStopGedrukt := TRUE; xStartGedrukt := FALSE; END_IF;
Opdrachten
76
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
(* Signalisatie *) IF xStopGedrukt AND NOT i_xCyclusGedaan THEN q_xRodeLamp := Blokgolf_1.Q; q_xGroeneLamp := FALSE; ELSIF xStopGedrukt AND i_xCyclusGedaan THEN q_xRodeLamp := TRUE; q_xGroeneLamp := FALSE; ELSIF xStartGedrukt THEN q_xGroeneLamp := TRUE; q_xRodeLamp := FALSE; END_IF;
Functiebouwsteen Oprolcyclus (* Timers *) TON_TapijtOpAanvoer(IN := i_xTapijtOpAanvoer, PT := T#5s); q_tTijd_TapijtOpAanvoer := TON_TapijtOpAanvoer.ET; TON_EindeTussenband(IN := i_xEindeTussenband, PT :=T #2s); q_tTijd_EindeTussenband := TON_EindeTussenband.ET; TP_Knippen(IN := xStartKnippen, PT := T#1s); Tijd_Knippen := TP_Knippen.ET; TON_Rollen(IN := xStartKnippen, PT := T#3s); Tijd_EindRollen := TON_Rollen.ET; TP_Kipper(IN := iStapteller =11, PT := T#5s); Tijd_Kipper := TP_Kipper.ET; (* Counter *) CTU_Rollen(CU := iStapteller = 7 AND i_xTapijtGedraaid, RESET :=CTU_Rollen.Q, PV := 5); AantalRolPulsen := CTU_Rollen.CV; (* Flankdetecties *) R_TRIG_EindeAanvoer(CLK := i_xEindeAanvoer); F_TRIG_EindeAanvoer(CLK := i_xEindeAanvoer); R_TRIG_EindeTussenband(CLK := i_xEindeTussenband); R_TRIG_TapijtInRolas(CLK := i_xTapijtInRolas); R_TRIG_AfduwerEind(CLK := i_xAfduwerEind); R_TRIG_AfduwerBegin(CLK := i_xAfduwerBegin); R_TRIG_EindeInvoerKipper(CLK := i_xEindeInvoerKipper); F_TRIG_Kipper(CLK := q_xKipper); R_TRIG_ResetTellers(CLK := i_xResetTellers); (* ‐‐‐‐‐‐‐‐‐‐‐Rolcyclus ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐*) CASE iStapteller OF 1: q_xCyclusGedaan := TRUE; IF i_xVrijgave AND TON_TapijtOpAanvoer.Q THEN iStapteller := iStapteller + 1; END_IF;
Opdrachten
77
IT Powered Automation: multifunctionele besturingen
4: 5:
6:
7: 8: 9:
q_xCyclusGedaan := FALSE; q_xAanvoerband := TRUE; IF R_TRIG_EindeAanvoer.Q THEN iStapteller := iStapteller + 1; END_IF; q_xTussenband := TRUE; IF F_TRIG_EindeAanvoer.Q THEN iStapteller := iStapteller + 1; END_IF;
q_xAanvoerband := FALSE; IF R_TRIG_EindeTussenband.Q THEN iStapteller := iStapteller + 1; END_IF; q_xTussenband := FALSE; IF TON_EindeTussenband.Q THEN iStapteller := iStapteller + 1; END_IF; q_xInvoerbandRol := TRUE; IF R_TRIG_TapijtInRolas.Q THEN iStapteller := iStapteller + 1; END_IF;
q_xInvoerbandRol := FALSE; q_xFolieGever := TRUE; q_xRollen := TRUE; IF CTU_Rollen.Q THEN iStapteller := iStapteller + 1; END_IF;
q_xStartKnippen := TRUE; q_xFolieGever := FALSE; q_iAantalMeterFolie := q_iAantalMeterFolie + 2; q_xFolieKnippen := TP_Knippen.Q; IF TON_Rollen.Q THEN iStapteller := iStapteller + 1; END_IF; q_xRollen := FALSE; q_xStartKnippen := FALSE;
Opdrachten
2: 3:
PHOENIX CONTACT
78
IT Powered Automation: multifunctionele besturingen 10: 11:
PHOENIX CONTACT
IF i_xAfduwerBegin THEN iStapteller := iStapteller + 1; END_IF; q_xAfduwerVooruit := TRUE; IF R_TRIG_AfduwerEind.Q THEN q_xAfduwerVooruit := FALSE; q_xInvoerbandKipper := TRUE; q_xAfduwerAchteruit := TRUE; END_IF; IF R_TRIG_AfduwerBegin.Q THEN q_xAfduwerAchteruit := FALSE; xOK1 := TRUE; END_IF; IF R_TRIG_EindeInvoerKipper.Q THEN q_xInvoerbandKipper := FALSE; xOK2 := TRUE; END_IF; IF xOK1 AND xOK2 THEN iStapteller := iStapteller + 1; END_IF;
xOK1 := FALSE; xOK2 := FALSE; q_xKipper := TP_Kipper.Q;
Opdrachten
IF F_TRIG_Kipper.Q THEN q_iAfgewerkteTapijtjes := q_iAfgewerkteTapijtjes + 1; iStapteller := 1; END_IF; END_CASE; q_iStap := iStapteller; (* Reset Tellers *) IF R_TRIG_ResetTellers.Q THEN q_iAantalMeterFolie := 0; q_iAfgewerkteTapijten := 0; END_IF;
79
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
10.6 Voorbeeld in ST met array’s en structuren Bedoeling: op een installatie moeten drie events opgevolgd worden. Per uur moet het aantal keer dat één van deze events opgetreden is bijgehouden worden, alsook in welke minuut. Om het uur kunnen mogen deze gegevens gewist worden. Per event moet de naam, het aantal keer per uur en een tabel met het tijdstip bijgehouden worden. Uiteindelijk moet volgende structuur bekomen worden:
Opdrachten
80
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Hiervoor moeten volgende datatypes aangemaakt worden: TYPE
logtabel: ARRAY [0..10] of int;
string15 : string(15);
eventgegevens:
STRUCT
eventnaam : string15;
aantal_keer_event : INT;
tijdstippen : logtabel;
END_STRUCT;
eventlogboek: ARRAY [1..3] of eventgegevens;
END_TYPE Vervolgens wordt een programma aangemaakt. Een variabele met de naam ‘eventdata’ wordt aangemaakt van het datatype ‘eventlogboek’. Oplossing in ST: if uur_vorige_cyclus <> RTC_HOURS then
for eventnr := 1 to 3 do
eventdata[eventnr].aantal := 0;
for index := 1 to 10 do
end_for;
end_for;
eventdata[eventnr].tijdstippen[index] := 0;
end_if;
uur_vorige_cyclus := RTC_HOURS;
Opdrachten
81
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
R_TRIG_1(CLK:= ONBOARD_INPUT_BIT0); R_TRIG_2(CLK:= ONBOARD_INPUT_BIT1); R_TRIG_3(CLK:= ONBOARD_INPUT_BIT2); if R_TRIG_1.Q then
index := eventdata[1].aantal +1;
eventdata[1].tijdstippen[index] := RTC_MINUTES;
eventdata[1].aantal_keer_event := index;
end_if; if R_TRIG_2.Q then
index := eventdata[2].aantal +1;
eventdata[2].tijdstippen[index] := RTC_MINUTES;
eventdata[2]. aantal_keer_event := index;
end_if; if R_TRIG_3.Q then
index := eventdata[3].aantal +1;
eventdata[3].tijdstippen[index] := RTC_MINUTES;
eventdata[3]. aantal_keer_event := index;
end_if;
Opdrachten
82
IT Powered Automation: multifunctionele besturingen
PHOENIX CONTACT
Bijlage I: Licentie PC WORX (Programming, Configuration, Parameterization, Diagnostics Softwaretool) .
Uw starterkit bevat een PC WORX Basic versie 5 licentie. De licentie code voor PCWORX Basic versie 5 is: 19E80-19A75-E3B30-C895B-8D8CF-04541-B5E. Mocht u deze software nog niet in uw bezit hebben dan kunt u deze downloaden van onze website: www.phoenixcontact.nl rubriek Download Center en zoeken op artikelnummer 2985660 en scrollen naar “AUTOMATIONWORX Software Suite 2008 Demo Programming, Configuration, Parameterization, Diagnostics” (AX_Suite_2008_140.zip) (User ID: TSS en password: download).
Wanneer u deze licentie wilt updaten naar de nieuwste PC WORX Basic versie 6, bieden we u hiervoor een voucher aan voor de licentie voor de “AUTOMATIONWORX Software Suite 2009 Demo Programming, Configuration, Parameterization, Diagnostics” (AX_Suite_2009_150.zip). Mocht u deze software nog niet in uw bezit hebben dan kunt u deze downloaden van onze website: www.phoenixcontact.nl rubriek Download Center en zoeken op artikelnummer 2985725 en scrollen naar Demo-Software (User ID: TSS en Password: download).
Voucher PC WORX Basic update licentie
Artikelnummer: Artikelomschrijving: Prijs:
2985262 Software‐update voor PC WORX BASIC versie 5.xx naar PC WORX BASIC versie 6.xx. 125,‐ Euro * * Maximaal 1 per betalende workshopdeelnemer.
Opdrachten
83