Download as pdf or txt
Download as pdf or txt
You are on page 1of 116

Manual – Codesys 3

Innehållsförteckning
Vad är Codesys 3 Variabler – Constants 46
Varför en standard? 4 Variabler – Remanent 47
Standarden IEC 61131-3 beskriver 5 Variabler – Autodeklaration 48
De 5 editorerna i IEC 61131-3 och Codesys 7 Datatyper – BOOL 49
Installation av Codesys 8 Datatyper – INTEGER 50
Installation av packages 14 Datatyper – REAL 51
Starta ett projekt – Hjälpfunktion – F1 18 Datatyper – Flyttal 52
Starta ett projekt – Nytt projekt 19 Datatyper – STRING 53
Starta ett projekt – Målsystem 20 Datatyper – TIME and TIME_OF_DAY 54
Starta ett projekt – Program 23 Datatyper – DATE och DATE_AND_TIME 55
Starta ett projekt – Input assistans – F2 27 Datatyper – Strukturerade datatyper 56
Starta ett projekt – Grafiska editorer: LD och FBD 28 Hårdvara – PLC-konfiguration 57
Starta ett projekt – Simulering och forcering 29 Hårdvara – PLC-konfiguration CPX-CEC 58
Starta ett projekt – Ladda ner program till CPX-CEC 30 Hårdvara – Adressering av I/O 62
Starta ett projekt – Spara projektet 34 Visualisering 60
Starta ett projekt – Inställningar i Codesys 35 Struktur med POU 81
Variabler – Deklaration 37 Struktur med POU – Funktioner 82
Variabler – Namngivningssyntax 38 Struktur med POU – Funktionsblock 83
Variabler – Reserverade namn 39 Struktur med POU – Actions 84
Variabler – Local variabler 40 Struktur med POU – Anrop 85
Variabler – Input variabler 42 Struktur med POU – Standard funktioner & funktionsblock 86
Variabler – Output variabler 43 Struktur med POU – Funktionsblock 92
Variabler – Input och Output variabler 44 Struktur med POU – Konverteringar mellan datatyper 99

Variabler – External variabler 45


Vad är Codesys?
• Codesys står för Controller development system
• Codesys är ett komplett utvecklingsverktyg till PLC:er som är framtaget av 3S
• Programmet kan användas till följande:
• Programmera
• Drifttaga
• Testa och simulera
• Felsöka
• Visning
• Dokumentation
• Codesys följer den internationella standarden IEC 61131-3
Varför Codesys?
• CoDeSys är hårdvaruoberoende, man tillverkar inga egna PLC.

• CoDeSys är den största leverantören av IEC 61131-3 programvara.

• Över 250 komponenttillverkare programmerar sina komponenter med CoDeSys

• CoDeSys är etablerat inom de flesta automationsbranscher.

• Mjukvaran är gratis, ingen licenshantering och inga avgifter.

• Visualisering inkluderad

• Underlättar programmering, driftsättning, underhåll, felsökning och därmed undervisningen


med olika PLC-system.
IEC 61131-3 beskriver
• Strukturen på ett projekt

• Syntaxen i 5 olika editorerna, IL, FBD, LD, ST och SFC

• Utseendet och funktionen hos program, funktionsblock och funktioner

• Standard funktioner och funktionsblock

• Deklaration av data

• Datatyper

• Standarden administreras av PLCopen


IEC 61131-3 – Fördelar för skola och industri
• Minskar slöseri med arbetstid för: utbildning, felsökning, underhåll och konsultning

• Skapar ett fokus på problemlösning genom återvinning av kod


(minskad leverantörsberoende och kostnad för applikationslösningar)

• Färre missförstånd och fel genom återanvändning av beprövade program och strukturer

• Varje programmeringsspråk kan kombineras med alla andra programmeringsspråk

• Leder till bästa programmeringsspråk för varje styruppgift

• Standard funktioner och funktionsblock

• Internationellt accepterad standard. Sakta men säkert så kommer varje leverantör att
använda denna i framtiden
De 5 editorerna i IEC 61131-3 och Codesys
• Instruction List (IL)

• Structured Text (ST)

• Function Block Diagram (FBD)

• Ladder Diagram (LD)

• Sequential Function Control (SFC)

• Continous Function Chart (CFC)


Starta ett projekt – Installation av Codesys
Programmet finns även till nedladdning på Festo hemsida:
www.festo.se/no/dk
Välj ”Support Portal”
Starta ett projekt – Installation av Codesys
Skriv in ”CECC” och klicka på ”Find”
Här kan man hitta all dokumentation,
programvaror och drivers till CECC.

Välj CDPX om du använder denna PLC.


Starta ett projekt – Installation av Codesys
Under fliken ”Engineering software”
finns Codesys till nedladdning,
se markering nedan
Klicka på ”Programming” så börjar
nedladdningen.
Starta ett projekt – Installation av Codesys
Filen som laddas ner är en zip-fil och skall packas upp i lämplig katalog där man vill spara
installationsfilerna.

Dubbelklicka på filen markerad nedan för att starta installationen.

Observera!
När man installerar kan man behöva ha tillgång
till internet för att Codesys behöver
“Microsoft .NET framework 4.0” och Codesys
hämtar detta från internet vid installationen,
om det inte redan finns på datorn.
Starta ett projekt – Installation av Codesys package
Under fliken ”Engineering software”
finns även CECC package till
nedladdning,
se markering nedan
Klicka på ”Programming” så börjar
nedladdningen.

CECC-package innehåller filer som


anpassar Codesys till CECC-plc.

Använder man CDPX PLCn så väljer


man motsvarande package.

Det går naturligtvis att installera


båda om man använder båda
typerna.
Starta ett projekt – Installation av Codesys package
Starta ”Package Manager” under Klicka på ”Install…” för att installera ”Packages”.
”Tools” i menyn för att installera Välj rätt fil som hämtats på support portalen och klicka
CECC-package. på ”Open” och följ installationsinstruktionerna.
Starta ett projekt – Hjälpfunktion – F1
Hela CoDeSys manualen finns inlagd i hjälpen
Starta ett projekt – Nytt projekt
Välj File/”New Project” i menyn för att starta ett nytt projekt
Välj File/”Open Project” i menyn för att öppna ett befintligt projekt
Starta ett projekt – Projekttyp
Välj projekttyp du vill starta.
• CECC Project används när man vill starta ett
projekt till en CECC PLC
• Empty Library när man vill bygga ett
bibliotek med funktionsblock och funktioner.
• Empty Project när man vill starta ett projekt
• Standard Project när man vill starta ett
projekt

Namnge ditt projekt.

Välj katalog att spara projektet i.


Starta ett projekt – Målsystem
Efter val av projekt med CECC måste modell väljas:
• CECC-LK Codesys PLC med 14 ingångar och 8 utgångar
samt 4st I/O-link masters för expansion
•CECC-D Codesys PLC med 14 ingångar och 8 utgångar
•CECC-S Codesys PLC med 14 ingångar och 8 utgångar
samt seriekommunikationsport.

Man kan även välja till CANopen Manager,


IO-Link Master, IO-Link Device vid de fall
man skall använda någon av dessa. (Kan även
väljas till i efterhand)

I detta fönstret väljer man även programspråk


för första programmodulen PLC_PRG.
Starta ett projekt – Program
Vad är en POU?
POU står för Program Organization Unit och används för att skapa en bra struktur på projektet.
Det finns tre typer av POU:s och dessa är definierade i IEC 61131-3.

Program: Kodenhet för att strukturera upp programmet


Finns bara som en instans i projektet
Variablerna behåller värden mellan exekveringarna

Funktionsblock: Mindre program som utför en begränsad och väldefinierad uppgift


Möjligt med flera indata och utdata
Läggs in i programmet som instanser och varje instans måste ges ett unikt namn
Variablerna behåller värden mellan exekveringarna

Funktioner: Påminner om matematiska funktioner med flera indata men bara ett resultat
Variablerna behåller inte värden mellan anropen
Starta ett projekt – Program
Dubbelklicka på PLC_PRG i ”Devices” fönstret för att öppna programmeringsfönstret.
Starta ett projekt – Program
Skriv in följande program
Vi skall använda det för att testa nedladdning och online funktioner.

Programmerings fönstret
•Programmeringseditorn är
indelad i två delar:

Variabeldeklarationen

Koden
Starta ett projekt – Program
Toolbox
Till höger på skärmen finns Toolboxen som innehåller de olika objekten vid
programmering.
Man klickar på objekten och drar in dem i koden och när de är på rätt ställe
släpper man musknappen.

Menyknapparna
Ett annat sätt att infoga programmeringsobjekten är att använda
menyknapparna.
Man infogar objekten genom att markera ”plats” och därefter klickar på rätt
knapp.
De knappar som är möjliga för aktuell plats makeras med blått.
Starta ett projekt – Variabler
Namnge variablerna enligt bilden
De binära variablerna i ladderdiagrammet
namnges genom att man markerar ??? vid den
logiska funktionen och skriver namnet eller
trycker på F2 (Input assistant).
Starta ett projekt – Variabler
Auto Declare
• Om man skriver in ett variabelnamn som inte existerar i projektet så får man upp fönstret med Auto Declare.
• Med hjälp av denna tar programmet hand om syntaxen för variabeldeklaration.
• Denna funktion kan även användas om man skall ändra på egenskaperna för en variabel.
• Klicka på en befintlig variabel i listan och välj Auto Declare under Edit i menyn.
Starta ett projekt – Input assistans – F2
Input Assistant
Om man trycker på F2 när man
markerat ??? vid logikfunktionerna
öppnas Input Assistant
Med denna funktion kan man hämta
in variabler som har definierats
tidigare.

Denna funktion kan användas till att


hämta in diverse olika objekt vid
olika situationer och är därför
mycket användbar.
Starta ett projekt – Simulering
•Välj Simulation under Online i menyn.

•Välj Login under Online i menyn.

•Starta exekveringen genom klicka på startknappen som är


markerad i bilden eller tryck på F5.
Starta ett projekt – Forcering av variabler
•Dubbelklicka på variabeln Start i koden och till höger om
dyker ett nytt värde upp.

•Fortsätter man att dubbelklicka så skiftar det nya värdet

•För att Start skall anta det nya värdet tryck på F7

•Här kan ni prova er fram med olika värde och Release


Force

•För att lämna Simulering välj Logout under Online i


menyn.

•Samt klicka ifrån Simulation mode under Online i menyn


Starta ett projekt – Ladda ner program till CECC
Konfiguration av kommunikation till PLCn
Dubbelklicka på Device(CECC-LK) i projektträdet i Devices fönstret till vänster.
Klicka på Add gateway.
Klicka sedan på Ok
Starta ett projekt – Ladda ner program till CECC
Konfiguration av kommunikation till PLCn
Välj None under filter.
Markera den nya Gateway och klicka på
Scan network
Skulle det inte lyckas får man klicka på
Add device… och skriva in IP-adressen till PLCn.
Starta ett projekt – Ladda ner program till CECC
För att hantera IP-adressen på PLCn kan man använda Scan Festo Devices som startas
med knappen i menyn.

Med detta verktyget kan man ändra IP-konfiguration och namn på PLCn.
Högerklicka på PLCn i listan och välj Network.
Starta ett projekt – Ladda ner program till CECC
Konfiguration av kommunikation till PLCn
Markera aktuell PLC i listan och klicka på
Set active path
Starta ett projekt – Ladda ner program till CECC
Konfiguration av kommunikation till PLCn
Markera och högerklicka på aktuell PLC och välj
Network properties för att ändra
nätverksinställningar
Starta ett projekt – Ladda ner program till CECC
Konfiguration av kommunikation till PLCn
Starta ett projekt – Ladda ner program till CECC
Ladda ner projektet till PLC:n genom att klicka på knappen:
Eller välj ”Login” under ”Online” i menyn.
Starta exekveringen med play-knappen eller välj ”Start” under ”Debug” i menyn.

Stoppa exekveringen med stop-knappen eller välj ”Stop” under ”Debug” i menyn.
Gå ur online mode genom att klicka på knappen:
Eller välj ”Logout” under ”Online” i menyn.
Variabler – Deklaration
Alla variabler som används i en programenhet måste deklareras i enheten
Syntaxen för variabeldeklarationen är:
<Namn> {AT <Adress>}:<Typ> {:=<initialisering>};
Där delarna innanför {} är valfria
Ex. Data1:Int:=12;

Variabeltyper som kan förekomma i en programenhet:


- Local
- Input
- Output
- Input and output
- Temp
- Stat
- Global
- Constant
- Remanent
Variabler – Namngivningssyntax
• Bokstäver och Siffror

• Måste börja med bokstav

• Understreck är tillåtet, men


bara enkelt

• Inga mellanrum

• Inga IEC nyckelord

• Versaler eller gemener saknar


betydelse
Variabler – Reserverade namn
Variabler – Local variabler
Local variabler används ”enbart” inom programenhet(POU).

Mellan nyckelorden VAR och END_VAR deklareras variablerna


Exempel på deklaration:
VAR
data1:INT (* Kommentar lokal1 *)
END_VAR

Det är möjligt att använda lokala variabler i andra program med hjälp av punktnotation.

PLC_PRG.Motor
Variabler – Local variabler
Det är möjligt att använda lokala variabler i andra program med hjälp av punktnotation.
Man infogar variabler från andra POUs genom att skriva namnet på POU följt av en punkt och då
får man en lista att välja från.
Variabler – Input variabler
Input variabler används till att föra in information till en programenhet(POU).
Man tilldelar variabeln information när man kallar på programenheten.

Mellan nyckelorden VAR_INPUT och END_VAR deklareras variablerna


Exempel på deklaration:
VAR_INPUT
indata1:INT (* Kommentar Input1 *)
END_VAR
Variabler – Output variabler
Output variabler används till att överlämna information från en programenhet(POU).
Kallande programenhet får information via variabeln efter avslutad körning(exekvering).

Mellan nyckelorden VAR_OUTPUT och END_VAR deklareras variablerna


Exempel på deklaration:
VAR_OUTPUT
utdata1:INT (* Kommentar Output1 *)
END_VAR
Variabler – Input och Output variabler
Input_Output variabler används till att både föra in och ut information till en
programenhet(POU). Man tilldelar variabeln information när man kallar på
programenheten och värdet ändras under exekvering av enheten. Detta innebär
att variabeln inte kan vara en konstant.

Mellan nyckelorden VAR_IN_OUT och END_VAR deklareras variablerna


Exempel på deklaration:
VAR_IN_OUT
in_utdata1:INT (* Kommentar Input/Output1 *)
END_VAR
Variabler – Temporary variabler
Temporary variabler återinitialiseras vid varje anrop av programenheten(POU).

Mellan nyckelorden VAR_TEMP och END_VAR deklareras variablerna


Exempel på deklaration:
VAR_TEMP
TempValue:INT (* Endast lokala variabler *)
END_VAR
Variabler – Static variabler
Static variabler används bara i funktionsblock, funktioner och metoder och kan bara användas
inom programenheten som variabeln är deklarerad i.

Mellan nyckelorden VAR_STAT och END_VAR deklareras variablerna


Exempel på deklaration:
VAR_STAT
StatValue:INT (* Endast lokala variabler *)
END_VAR
Variabler – External variabler
External variabler används när man vill komma åt en global variabel inne från en
programenhet(OU).

Mellan nyckelorden VAR_EXTERNAL och END_VAR deklareras variablerna


Exempel på deklaration:
VAR_EXTERNAL
Globdata1:INT (* Kommentar Global1 *)
END_VAR
Detta behövs inte göras i Codesys utan är ett IEC61131-3 krav
Variabler – Constants
Constants används när man vill använda ett konstant värde som inte ändras i programenhet(OU).

Mellan nyckelorden VAR CONSTANT och END_VAR deklareras variablerna


Exempel på deklaration:
VAR CONSTANT
Konstantdata1:INT:=26; (* Kommentar Constantvalue1 *)
END_VAR
Variabler – Remanent
Remanent variabler kan behålla sitt värde vid Reset och Download. Beroende på om man
deklarerar variabeln som RETAIN eller som både RETAIN och PERSISTENT så erhåller man olika
egenskaper, se tabell nedan.

Mellan nyckelorden VAR RETAIN och END_VAR deklareras variablerna


Exempel på deklaration:
VAR RETAIN
data1:INT; (* Kommentar Constantvalue1 *)
END_VAR
OBS! Persistent variabler måste deklareras globalt.
Variabler – Autodeklaration
Auto Declare dyker upp när man skriver in en variabel i programmet som inte är deklarerad. Men
man kan även använda funktionen för att ändra syntaxen på en befintlig variabel.
Klicka på en variabel i deklarationen och välj Auto Declare under Edit i menyn.
Datatyper – BOOL
Används vid logiska uttryck och kan anta värdena SANT och FALSKT( TRUE and FALSE).
Datatyper – INTEGER
Integer är heltals data typ och det finns en mängd olika. Dessa varierar i längd och talområde, se
tabell nedan.
Datatyper – REAL
Real är flyttal och i standarden finns två varianter REAL och LREAL. Där REAL tar 32 bitars minne
och LREAL tar 64 bitar.

REAL kan anta värden från 1.175494351e-38 till 3.402823466e+38

LREAL kan anta värden från 2.2250738585072014e-308 till 1.7976931348623158e+308


Datatyper – Flyttal
Flyttal - (floating-point number eller bara float) - sätt att skriva tal så att både mycket stora och
mycket små tal kan anges med ett begränsat antal siffror, vid behov avrundade. I flyttal skiljer
man mellan värdesiffrorna och de siffror som anger storleksordningen. Förenklat exempel: i
stället för 3,14 skulle man skriva 314 och -2, där -2 betyder 'delat med hundra' (10-2). Behöver
man i stället skriva 314 miljoner blir det 314 och 6 (106). Värdesiffrorna kallas för mantissa, talet
som anger storleksordningen för exponent. Poängen är att man kan skriva stora och små tal på
samma begränsade utrymme. Vid multiplikation och division kan man beräkna mantissa och
exponent var för sig. Nackdelen är att tal med många värdesiffror måste rundas av. Flyttal kan
därför inte användas i strikt matematiska beräkningar eller i företagsekonomiska beräkningar,
men de används i tekniska beräkningar. Det behövs dock särskilda knep för att se till att
avrundningsfelet inte växer när beräkningarna är omfattande. - I själva verket används normalt
potenser av det binära systemet, men det är samma princip. Värdesiffrorna anges normalt som
ett tal mellan 1 och 2. - Beräkningar med icke avrundade tal kallas för heltalsberäkningar. - Ordet
flyta syftar på att decimalkommat kan "flyta", alltså stå var som helst i talet; flyttalsnotation
(floating-point notation) eller flyttalsrepresentation (floating-point representation) - sätt att
skriva tal som flyttal, vanligen med ett bestämt antal siffror i mantissan.

Computer Sweden
Datatyper – STRING
STRING är en så kallad teckensträng och kan innehålla vilka tecken som helst. Längden avgörs
vid deklarationen av strängen och sätts automatiskt till 80 tecken vid utelämnad längd.
I CoDeSys finns det i teorin ingen längdbegränsning men strängoperationerna kan bara hantera
längder på 1 – 255 tecken.

Exempel på deklaration:
str:STRING(35):='This is a String';
Datatyper – TIME
Datatypen TIME innehåller tiden i millisekunder och används bl.a. till timers.

Exempel på korrekt tilldelning av TIME:


TIME1 := T#14ms;
TIME1 := T#100S12ms; (*Högsta komponeneten får lov att överstiga gränsen*)
TIME1 := t#12h34m15s;

Exempel på fel tilldelning av TIME:


TIME1 := t#5m68s; (*Lägre komponent överstiger sin gräns*)
TIME1 := 15ms; (*T# saknas*)
TIME1 := t#4ms13d; (*Fel ordning på komponenter*)

d : days
h : hours
m : minutes
s : seconds
ms : milliseconds
Datatyper – DATE och DATE_AND_TIME
Datatypen DATE innehåller hur många sekunder som förflutet sedan 1 januari 1970 och använder
formatet ÅR-MÅNAD-DAG.
DATE kan representera datum mellan 1 januari 1970 och 6 februari 2106.

Exempel på format:
DATE#1996-05-06
d#1972-03-29

Datatypen DATE_AND_TIME är en kombination av DATE och TIME_OF_DAY och använder formatet


ÅR-MÅNAD-DAG-TIMME:MINUT:SEKUND.
DATE_AND_TIME har samma tidsgränser som DATE.

Exempel på format:
DATE_AND_TIME#1996-05-06-15:36:30
dt#1972-03-29-00:00:00
Datatyper – Strukturerade datatyper
Det är också möjligt att göra sina
egna strukturerade datatyper om
t.ex. vill gruppera alla variabler som
hör till en objekttyp som används på
flera ställen i projektet.
Hårdvara – PLC-konfiguration
Konfiguration av in- och utgångar
Det finns 2 olika modeller av Festo PLCer som använder Codesys 3:
CDPX Operatörspanel med inbyggd PLC
CECC Kompakt PLC med fast I/O, 14 DI och 2 DO
Hårdvara – PLC-konfiguration CECC
Konfiguration av ingångar
Dubbelklicka på ”Digital Inputs” i ”Devices” fönstret.
Klick till höger om symbolen för att namnge ingången under mapping
Hårdvara – PLC-konfiguration CECC
Konfiguration av utgångar
Gör på samma sätt som med ingångarna.
Hårdvara – Adressering av I/O
Konfiguration av in- och utgångar
När man sedan skall använda I/O
i programmet så använder man
Input assistant med F2.
Under IoConfig_Globals_Mapping hittar
du inlagda in- och utgångar.
Visualisering
Grafisk hjälp till test och simulering av program
Vi har ett program, PLC_PRG, där vi styr en Motor med hjälp av en start- och en stoppknapp.
För att underlätta simulering av programmet kan man använda Visualiseringsverktyget
istället för forcering av variablerna.
Visualisering
Grafisk hjälp till test och simulering av program
Man lägger till en ny visualisering genom att högerklicka på
Application och välja add object och därefter välja Visualization
Skriv därefter in lämpligt namn på visualiseringen.
Visualisering
Knapp för inmatning av BOOL
Vi vill med hjälp av en tryckknapp styra en variabel av typen BOOL, så när man klickar på
knappen så går variabeln hög.
Välj tryckknappsverktyget och rita eller dra in en tryckknapp
Visualisering
Knapp för inmatning av BOOL
Markera knappen och välj kategori
text för att lägga in en text på
knappen
Skriv in hjälptext under ”Tooltip”
Under ”Text properties” kan man
justera och formatera texten
efter behov genom att klicka på
knappen med 3 punkter
Visualisering
Knapp för inmatning av BOOL
För att bestämma vad som skall
hända när knappen blir påverkad
skall man välja kategori
”inputconfiguration” och här kan
man välja mellan följande
alternativ:
Toggle: variabeln växlar mellan
hög och låg när knappen påverkas
Tap: variabeln är hög så länge
knappen är påverkad eller låg om
Tap FALSE är markerad
Visualisering
Knapp för inmatning av BOOL
I detta exempel väljer vi att
variabeln Start i PLC_PRG skall bli
hög under tiden vi klickar på
knappen
Detta innebär att vi väljer Tap
Variable och klickar i fältet till
höger om Variable väljer variabel
med hjälp av input assistenten F2
Visualisering
Knapp för inmatning av BOOL
För att skapa fler knappar kan man antingen
upprepa proceduren eller kopiera kappen.
Fördelen med att kopiera är att formateringen
blir den samma på knapparna.
För att ändra texten kan man klicka i texten på
knappen och ändra direkt där.
Glöm inte att byta variabeln som knappen styr.
Visualisering
Visning av en variabel av typen BOOL
När vi trycker på knappen start så skall en motor startas. Vi använder en cirkel som skiftar
färg för att indikera status på motorn. Vi börjar med att rita cirkeln med ritverktyget.
Visualisering
Visning av en variabel av typen BOOL
Klicka på figuren och välj kategori Colorvariables
Vi skall få cirkeln att skifta mellan två olika färger som symboliserar startad och stoppad motor.
Den variabeln som skall styra detta läggs in under Toggle color med hjälp av input assistenten F2
Visualisering
Visning av en variabel av typen BOOL
Välj sedan kategorin Colors
Vi skall få cirkeln att skifta mellan två olika färger som symboliserar startad och stoppad motor.
Färgen som skall visas när variabeln är låg väljs under Normal state och när variabeln är hög
väljs under Alarm state.

Vi väljer röd som stoppad


och grön som startad motor.
Visualisering
Grafisk hjälp till test och simulering av program
I simulering kan man se hur det fungerar
Visualisering
Grafisk hjälp till test och simulering av program
I simulering kan man se hur det fungerar
Struktur med POU
Använda standard funktionsblock
IEC61131-3 standarden bestämmer vilka funktionsblock som måste finnas och hur dessa
skall fungera.
Struktur med POU
Använda Timers
I de olika editorerna får anrop av funktionsblock olika utseende. I hjälpen hittar man funktionaliteten för blocken
Structured text

Ladder diagram

Instruction list

Function block diagram


Bibliotek
Lägga till fler funktionsblock
Om man vill lägga till fler funktionsblock än vad som finns i standardbiblioteket så använder man Library
Manager. Här finns också information om tillgängliga funktionsblock och funktioner.
Bibliotek
Lägga till fler funktionsblock
Högerklicka på biblioteken och välj Add Library. Här kan man välja vilket/vilka bibliotek som man vill använda.
Det finns de som är generella och de som är Festo specifika.
Bibliotek
Lägga till fler funktionsblock
Festo_Motion_3 innehåller funktionsblock för att styra Festo servo- och stegmotordrifter.
Namnen på blocken följer namnet på drivstegen.
Kommunikation
Lägga till CAN-bus i Codesys
För att PLCn skall kunna kommunicera via CAN-bus fältbus så måste motsvarande mjukvara läggas till i
projektet. Antingen kan man klicka i Add CANopen Manager vid uppstart av nytt projekt eller så använder man
funktionen Add Device.
Högerklicka på Device för att välja Add Device.
Kommunikation
Lägga till objekt med Add Device
Börja med att markera Device i
projektträdet till väster och lägg till
CANbus genom att klicka på Add Device
knappen.
Tänk på att Add Device ändras
beroende på var du markerar i
projektträdet till vänster.
Kommunikation
Lägga till objekt med Add Device
Markera CANbus i projektträdet till
väster och lägg till CANopen_Manager
genom att klicka på Add Device
knappen.
Kommunikation
Lägga till objekt med Add Device
Markera CANopen_Manager i
projektträdet till väster och lägg till rätt
typ av CANopen nod som skall
användas.
Antalet noder kan reduceras genom att
välja rätt fabrikat under Vendor.
Servodrivsteg CMMP-AS-C2-3A-M3
används vid detta tillfälle.
Har man flera noder så lägger man bara
till fler på samma sätt.
Kommunikation
Konfigurera CANopen
Dubbelklicka på CANbus i projektträdet
till väster och välj hastighet på
kommunikationen under Baudrate.

Vilken hastighet som man väljer spelar


mindre roll det viktiga är att man ställer
in samma hastighet på noden.
Kommunikation
Konfigurera CANopen
Dubbelklicka på CANopen_manager i projektträdet till väster och välj Node ID på CANopen Mastern i PLCn.
Vilken adress man använder spelar ingen roll bara att alla adresser i systemet är unika.
Kommunikation
Konfigurera CANopen
Dubbelklicka på CMMP-AS-C2-3A-M3-FHPP i projektträdet till väster för att välja Node ID på CANopen noden.
Vilken adress man använder spelar ingen roll bara att alla adresser i systemet är unika.
Kommunikation
Lägga till IO-Link Master
Om man använder CECC-LK kan
man även kommunicera via IO-Link
till ventilterminaler, IO-enheter och
andra PLCer.
Man använder Add Device även för
att lägga till IO-Link enheter.
Högerklicka på Device och välj Add
Device.
Lägg till IO-Link Master.
Kommunikation
Lägga till IO-Link Device
Markera en tom port under IO_Link_Master och välj Plug device för att visa valbara IO-Link device.
Välj aktuell Vendor för att begränsa urvalet. Här är en CECC PLC vald som IO-Link device att kommunicera med.
Struktur med POU – Funktioner

• Ingen möjlighet att komma ihåg värden från förra anropet


• Lokala variabler initieras vid varje anrop
• Namnet på funktionen är även variabeln som funktionen
returnerar resultatet i => funktioner är av en typ!
• Användningsbart för att beräkna komplexa uttryck
• Användning av globala variabler är dålig stil
Struktur med POU – Funktionsblock

•Samtliga variabler behåller sina värden


•När en instans skapas, så kommer det att skapas en kopia av variablerna.
Det fungerar på samma sätt som med strukturerade datatyper.
•Kan med fördel användas vid programmering av återanvändbara delar
såsom räknare, timers, flankavkänning och andra maskin funktioner
Struktur med POU – Actions

•Innehåller inga egna variabler utan använder programmets.


•Detta medför att ”Actions” varken har någon input eller output.
•Actions kan beskrivas som ett kodstycke som finns på ett flertal ställe i
programmet och kan därför med fördel brytas ut och anropas vid behov
•Är knuten till ett program
Struktur med POU – Standard funktioner och funktionsblock
•Tilldelning – Assignment
•Bitsträng – Bitstring
•Skifta och Rotera – Shift and Rotate
•Real
•Logaritm – Logarithmic
•Trigonometri
•Jämföra – Compare
•Analoga
•Selektera – Select
Struktur med POU – Standard funktioner och funktionsblock
Tilldelning – Assignment
Struktur med POU – Standard funktioner och funktionsblock
Bitsträng – Bitstring
Struktur med POU – Standard funktioner och funktionsblock
Bitsträng – Bitstring
Struktur med POU – Standard funktioner och funktionsblock
Skifta och Rotera – Shift and Rotate
Struktur med POU – Funktionsblock
Skifta och Rotera – Shift and Rotate
Struktur med POU – Funktionsblock
Jämföra – Compare
Struktur med POU – Funktionsblock
Analoga
Struktur med POU – Funktionsblock
Real
Struktur med POU – Funktionsblock
Logaritm – Logarithmic
Struktur med POU – Funktionsblock
Trigonometri
Struktur med POU – Funktionsblock
Selektera – Select
Struktur med POU – Konverteringar mellan datatyper
Starta ett projekt – Grafiska editorer: LD och FBD
•Ladder Diagram
•(LD)

•Function Block Diagram


•(FBD)
Motorstyrning
Koppla noden till funktionsblocket
Dubbelklicka på noden och under fliken
CANopen I/O Mapping finns signalerna
som kommuniceras på CANbussen.
CCON och SCON skall kopplas samman
med funktionsblocket som styr
motordriften.
Man skall notera adresserna till dessa:
CCON %QB4
SCON %IB4
(Adresserna varierar från system till
system)
Motorstyrning
Funktionsblock för styrning av motordriften
Infoga funktionsblocket som motsvarar aktuellt drivsteg från Festo motion lib i programmet och
ge instansen ett lämpligt namn. (I detta exempel Axel)
Motorstyrning
Koppla noden till funktionsblocket
Skapa två variabler av typen BYTE och tilldela dessa
fasta adresser.
Dessa variabler kopplas sedan in på
funktionsblockets signaler FHPP_In och FHPP_Out.
Variabeln som kopplas till FHPP_In skall tilldelas
adressen för SCON(%IB4).
Variabeln som kopplas till FHPP_Out skall tilldelas
adressen för CCON(%QB4), se I/O-mapping för
noden.
För att kunna testa blocket i PLCn så måste alla
”???” tas bort från funktionsblockets signaler.
Motorstyrning
Test av kommunikationen
Koppla samman PLC och
drivsteg med en CANbus-
kabel
Ladda ner programmet till
PLCn och starta exekveringen.
Tänk på att drivsteget måste
vara konfigurerat för styrning
via CANopen med rätt Nod ID
och
kommunikationshastighet.
Motorstyrning
Globala variabler
Man kan med fördel deklarera funktionsblocket som en
global variabel så att blocket är tillgängligt i hela
projektet.
Först måste en global variabellista skapas:
Högerklicka på Application och välj Global Variable list
under Add Object.
Namnge listan efter ändamål. (GVL_Motordrift)
Motorstyrning
Globala variabler
Klicka på den variabel som du vill flytta till globala variabler och välj Auto Declare under Edit.
Välj VAR_GLOBAL under Scope: och välj rätt global variabel lista under Object:
Nu har man åtkomst till alla funktionsblockets variabler från alla program i projektet.
Dock kommer funktionsblocket bara att exekveras i de program som anropar blocket.
Motorstyrning
Aktivera motordriftens styrning
För att servodrivsteget skall börja och reglera motorn så krävs att ett antal signaler sätts till true och
att drivsteget svarar med rätt status.
Struktur med POU
Starta ett projekt – Spara projektet
Starta ett projekt – Inställningar i CoDeSys
Under menyn projekt/options finns det inställningsmöjligheter för projektet.
Där de viktiga till att börja med är: Editor, Load & Save, Directories och Desktop
Starta ett projekt – Inställningar i CoDeSys
I hjälpen beskrivs samtliga
optioner för projekt-
inställningar
Starta ett projekt – Installation av CoDeSys
När man installerar måste man ha tillgång till internet för att
codesys behöver “Microsoft .NET framework” och codesys
hämtar detta från internet vid installation.
Starta ett projekt – Installation av CoDeSys
I katalogen ”Packages” finns drivrutinerna för PLC:n

Starta installationen genom att…


Starta ett projekt – Installation av CoDeSys
För att installera ”Packages” för CECC så måste man starta
codesys i administrations läge.

Installera genom att starta ”Package Manager” under ”Tools” i


menyn.

You might also like