Delstandard av IEC 61131, vilken totalt består av - IEC 61131-1: Allmän information - IEC 61131-2: Hårdvara - : Programmeringsspråken (IL, LD, FBD, SFC, ST) - IEC 61131-4: Riktlinjer för användare - IEC 61131-5: Kommunikation - IEC 61131-6: Funktionell säkerhet - IEC 61131-7: Programmering för Fuzzy Control - IEC 61131-8: Riktlinjer för programmering i de 5 språken
Standard för PLC-programmeringsspråk - 5 olika programmeringsspråk: - IL (Instruktionslista) - LD (Ladderdiagram) - FBD (Funktionsblocksdiagram) - ST (Strukturerad Text) - SFC (Sequential Function Chart)
De 5 olika programmeringsspråken Instruction List LD A ANDN B ST C Step 1 N FILL Transition 1 AND B Sequential Function Chart C:= A AND NOT B Function Block Diagram A Structured Text A B C Step 2 Ladder Diagram C - -- / ----------------( ) S Transition 2 Step 3 Empty
Instruktionslista (IL) - Enkla instruktioner med ett ackumulatorregister (ungefär som assembler) - Observera att ST (Store) är samma som OUT (och ANDN samma som ANI ) LD A ANDN B ST C
Ladderdiagram (LD) - Symboler motsvarande kontakter och reläer - Direkt grafisk motsvarighet till IL A and not B equals C - -- / ----------------( )
Funktionsblocksdiagram (FBD) - Inkluderar de vanliga logiska symbolerna - Annan grafisk variant av IL, fast mer generell AND A B C
Strukturerad text (ST) - Högnivåspråk med blockstruktur (som Java och C) - PASCAL-liknande syntax - Stöd för - IF-THEN-ELSE, CASE - WHILE-DO, REPEAT-UNTIL, FOR osv C:= A AND NOT B
Sequential Function Chart (SFC) - Sekvensbaserade flödesdiagram - Avpassat för övergripande programstruktur - Delar (övergångsvillkor, aktiveteter) kan kodas i något av de andra 4 språken (IL, LD, FBD, ST) Step 1 N FILL Transition 1 Step 2 S Transition 2 Step 3 Empty
Hierarki av strukturer - Konfiguration (Configuration) Språkelement för ett helt PLC-system - Resurs (Resource) Språkelement som motsvarar en enskild CPU - Task Element bestående av en lista av program som ska exekveras - POU (Program Organization Unit) Programenhet i 3 olika varianter: - Program - Funktionsblock (FB) - Funktion http://www.automation.com/library/articles-white-papers/coder146s-corner-the-iec-61131-3-software-model
POU (Program Organization Unit) POU-typ Nyckelord Betydelse Program PROGRAM Huvudprogram. Innehåller deklaration av globala variabler och kopplingar till in- och utsignaler. Kan anropa funktionsblock och funktioner Funktionsblock (FB) FUNCTION_BLOCK Block med in- och utsignaler. Har statiska variabler ( med minne ). Kan anropa andra funktionsblock samt funktioner Funktion (FUN) FUNCTION Funktion med in- och utparametrar samt returvärde. Har inga statiska variabler (dvs inget minne )
Gemensam struktur hos de 3 POU-typerna http://link.springer.com.ludwig.lub.lu.se/book/10.1007/978-3-642-12015-2/page/1
Exempel på ett funktionsblock med en inparameter och två utparametrar Grafisk representation:
Exempel på deklarationer
Exempel på deklarationsblock
Variabeltyper - Tillåtna deklarationer
Kategorier av variabeltyper
Grundläggande datatyper: No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Keyword Data Type Bits BOOL SINT INT DINT LINT USINT Boolean Short integer Integer Double integer Long integer Unsigned short integer 1 8 16 32 64 8 UINT UDINT ULINT REAL LREAL TIME DATE TIME_OF_DAY or TOD DATE_AND_TIME or DT STRING BYTE WORD DWORD LWORD Unsigned integer Unsigned double integer Unsigned long integer Real numbers Long reals Duration Date (only) Time of day (only) 16 32 64 32 64 Date and time of day Character string Bit string of length 8 Bit string of length 16 Bit string of length 32 Bit string of length 64 8 16 32 64
Datatyper grupperade efter kategori Bit string types (BOOL, BYTE, WORD, DWORD, LWORD) Integer types (SINT, INT, DINT, LINT) Unsigned integer types (USINT, UINT, UDINT, ULINT) Real types (REAL, LREAL) Time types (TIME, DATE, TIME_OF_DAY, DATE_AND_TIME) Character types (STRING)
Konventioner för adresserbara I/O %IXs.c %IDs.c %ISs.c %QXs.c %QDs.c %QSs.c Boolean Integer Message Boolean Integer Message input input input output output output s = slot number c = channel number
Prefix för I/O- och minnesadresser Pos Prefix Type 1 1 1 I Q M Input location Output location Memory location 2 2 2 2 2 2 X none B W D L Single bit size Single bit size Byte (8 bits) size Word (16 bits) size Double word (32 bits) size Long word (64 bits) size
Standardfunktioner Bit string functions (AND, OR, XOR, NOT, SHL, SHR, ROL, ROR) Numerical functions (ADD, SUB, MUL, DIV, MOD, EXPT, ABS, SQRT, LN, LOG, EXP, SIN, COS, TAN, ASIN, ACOS, ATAN) Type conversions (e.g. USINT_TO_DINT, BOOL_TO_BYTE) Selection functions (SEL, MIN, MAX, LIMIT, MUX) Comparison functions (GT, GE, EQ, LT, LE, NE) String functions (LEN, LEFT, RIGHT, MID, CONCAT, INSERT, DELETE, REPLACE, FIND)
Diverse standardfunktionsblock Flip-Flop Edge detection Counters Timers Data operation (SR, RS) (R_TRIG, F_TRIG) (CTU, CTD, CTUD) (TP, TON, TOF, RTC) (BSL, BSR, FFL, FFU)
Möjliga anropsalternativ
Anrop av funktion och funktionsblock dels i IL och dels i ST
Exempel på enkel funktionsdeklaration
Exempel på typdeklarationer
Sammansatt datatyp: ARRAY
Exempel på deklaration av ARRAY-variabler
Sammansatt datatyp: STRUCT
Exempel på deklaration av STRUCT
Kombination av STRUCT och ARRAY
Strukturerad text (ST): Språkkonstruktioner
Strukturerad text: Litet exempel (FB)
PLCopen http://www.plcopen.org/ - Oberoende organisation grundad 1992 - Uppföljning av IEC61131-3 samma år - Ytterligare standardisering av programmeringsmiljön
PLCopen Fördelar - Snabbare applikationsutveckling - Kortare driftsättningstid - Minskad livscykelskostnad - Utvidgning och förbättring av - Tidig identifiering av trender
PLCopen - Organisation
CoDeSys http://www.codesys.com/ - Hårdvaruoberoende programmeringsmiljö i tillgänglig för Windows utvecklad av 3S-Smart Software Solutions GmbH i Tyskland - Senaste version av utvecklingsplattformen: 3.5 SP4 Patch 1 (nerladdningsbar efter registrering) - Kompilatorer/drivrutiner finns för ett flertal PLC-typer
CoDeSys: Övergripande arkitektur
CoDeSys: Utvecklingsmiljö
CoDeSys: Programmering av HMI integrerat