Programmerbar logik. Kapitel 4



Relevanta dokument
Programmering av ett industrikap med GRAPH 7 / Programming of an industrial cutting machine in GRAPH 7

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

Grunderna i stegkodsprogrammering

Övervakning & Programspråk

LABORATIONSINSTRUKTION

Övervakning & Programspråk

Sekvensstyrning Grafcet och IEC

Övervakning & Programspråk

Styrteknik : Funktioner och funktionsblock

Twincat: PLC Control

LABORATIONSINSTRUKTION

Ladderprogrammering steg för steg

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

F5 Introduktion till digitalteknik

Högskolan Dalarna Sida 1 av 8 Elektroteknik Per Liljas

HÖGSKOLAN I KALMAR Institutionen för teknik Erik Loxbo LABORATION I PLC-TEKNIK SEKVENSSTYRNING AV TRANSPORTBAND SIMATIC S7 - GRAPH

Styrteknik: MELSEC FX och numeriska värden

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Styrteknik 4.5/7.5 hp distans: Programmering med IEC PLC1B:1. Styrteknik

Ladderprogrammering steg för steg

T1-modulen Lektionerna Radioamatörkurs OH6AG OH6AG. Bearbetning och översättning: Thomas Anderssén, OH6NT Heikki Lahtivirta, OH2LH

Grundläggande digitalteknik

Digitala System: Datorteknik ERIK LARSSON

LABORATIONSINSTRUKTION

Det finns en hemsida. Adressen är

En ideal op-förstärkare har oändlig inimedans, noll utimpedans och oändlig förstärkning.

Programmeringsteknik med C och Matlab

Tentamen SSY 065, lördag 14/4, 08:30-12:30, M. Examinator: Martin Fabian, (772) 3716 Tider för lärarens närvaro: 09:30, 11:30

Logik och kontrollstrukturer

Laboration 1 Styrteknik

1 Strömmen I skall mätas med en amperemeter. Amperemetern är inställd på området 30 ma. Vad kommer amperemetern att visa?

LABORATIONSINSTRUKTION

LOGIKSTYRNING/18/2: Laboration. 1 Uppgiften. Figur 1: Tågbanan

Föreläsningsanteckningar 2. Mikroprogrammering I

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Industriella styrsystem, TSIU06. Föreläsning 2

Styrteknik : Programmering med IEC Styrteknik

IEC Delstandard av IEC 61131, vilken totalt består av

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Styrteknik: Grundläggande logiska funktioner D2:1

Tenta i Digitalteknik

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

2. Reglertekniska grunder

Föreläsning 6: Introduktion av listor

CE_O1. Nios II. Enkla assembler-instruktioner.

Laboration D184. ELEKTRONIK Digitalteknik. Sekvensnät beskrivna med VHDL och realiserade med PLD

16 Programmering TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5

Sidor i boken , , 3, 5, 7, 11,13,17 19, 23. Ett andragradspolynom Ett tiogradspolynom Ett tredjegradspolynom

Processidentifiering och Polplacerad Reglering

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Klassdeklaration. Metoddeklaration. Parameteröverföring

A-del motsvarande KS1

Institutionen för datavetenskap 2014/15

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

TAIU07 Matematiska beräkningar med Matlab

Programmering A. Johan Eliasson

M7005 Fischer/Weisser mätstyrningsserver M9003 ersatt med Simens S Plc

LABORATIONSINSTRUKTION

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Bygg ett akvarium i Scratch

Wienerprocesser. Finansiell statistik, vt-05. Enkel slumpvandring. Enkel slumpvandring. Varför: model för aktiekurs (dock med aber...

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Laboration Kombinatoriska kretsar

Flera kvantifierare Bevis Direkt bevis Motsägelse bevis Kontrapositivt bevis Fall bevis Induktionsprincipen. x y (x > 0) (y > 0) xy > 0 Domän D = R

Repetitionsuppgifter i Matematik inför Basår. Matematiska institutionen Linköpings universitet 2014

Industriella styrsystem, TSIU04. Föreläsning 1

VHDL och laborationer i digitalteknik

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Abstrakt algebra för gymnasister

7, Diskreta strukturer

Digital- och datorteknik

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Kursplan för matematik År 1-5 Rösjöskolan TÄBY KOMMUN

WAGO IO System Service Seminar. Diagnostik

LABORATIONSINSTRUKTION

varandra. Vi börjar med att behandla en linjes ekvation med hjälp av figur 7 och dess bildtext.

TDDC77 Objektorienterad Programmering

"Crash Course in Programming"

Styrenheten styrsignalsekvenser programflödeskontroll

Moment 2 - Digital elektronik. Föreläsning 1 Binära tal och logiska grindar

F5 Introduktion till digitalteknik

Lathund algebra och funktioner åk 9

i LabVIEW. Några programmeringstekniska grundbegrepp

Modemprogrammering med PL7

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012


LABORATIONSINSTRUKTION

SMD 134 Objektorienterad programmering

Föreläsning 3.1: Datastrukturer, en översikt

Digitala Projekt (EITF11)

Programmerbar logik (PLD) Programmeringsspråket VHDL Kombinatoriska funktioner i VHDL för PLD Sekvensfunktioner i VHDL för PLD

DIGITALTEKNIK. Laboration D172

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

"if"-satsen. Inledande programmering med C# (1DV402)

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

Kalkyl och Marknad: Investeringsövningar: VISSA FACIT Peter Lohmander Version

Att använda pekare i. C-kod

2.4. Teckensträngar och logiska uttryck

Steg 4. Lika arbeten. 10 Diskrimineringslagen

Transkript:

Kapitel 4 Programmerbar logik Programmerbar logik (PLC: Programmable Logic Controller; fi. ohjelmoitava logiikka) är en sorts mikrodatorliknande instrument som är speciellt avsedda för logik- och sekvensstyrningsproblem. De introducerades inom den amerikanska bilindustrin på 1970-talet, för att effektivera omställningen av produktionslinjerna vid produktbyten. I dag används programmerbar logik rutinmässigt i all industri. En PLC kan schematisk se ut enligt följande: Insignalerna och utsignalerna är spänningar som kan tänkas Programmeringsenhet Elaggregat Processor Minne Gränssnitt Inputmodul Outputmodul Input Output Figur 4.1: Schematiskt diagram av PLC represenera boolska variabler (hög spänning = 1, låg spänning = 0). En PLC kan programmeras med logiska funktioner, så att utsignalerna är booleska funktioner av insignalerna och eventuellt tillståndsvariabler. Programmering av dagens PLC:n sker idag uteslutande med PC:n. Det existerar en stor mängd olika PLC:n på marknaden, nedan en lista på några viktiga leverantörer (i alfabetisk ordning): - ABB (PROCONTIC) - Allen-Bradley - Mitsubishi - Omron - Philips 61

62 KAPITEL 4. PROGRAMMERBAR LOGIK - Schneider (Telemecanique) - Siemens (SIMATIC) - Texas Instruments - Toshiba - m.fl. Figur 4.2: Illustration av modulär uppbyggnad, bilden från Allen-Bradleys websidor Dagens PLC:n har en modulär uppbyggnad, se Fig. 4.2 och 4.3. Man kan således köpa de klossar man behöver, t.ex - Digitala inputs (typiskt i paket av 4-32 st.) - Analoga inputs (typiskt i paket av 4-16 st.)

4.1. FUNKTIONSSÄTTET HOS EN PLC 63 Figur 4.3: Närmare bild av PLC, bilden från Omrons websidor - Digitala outputs - Analoga outputs - PID-regulatorer - Redundans för kritiska tillämpningar D.v.s. man kan och brukar även utföra konventionell analog reglering med dagens PLC:n. 4.1 Funktionssättet hos en PLC En PLC opererar enligt sekvensen 1. Läs och lagra insignaler i minnet 2. Exekvera programmet 3. Uppdatera utsignalerna Tillståndsvariablernas och utsignalernas värden evalueras således en gång per cykel, och man undviker problem som hasard, kapplöpning och oskillation som förekommer i analog logik. Däremot förekommer nog liknande beteende i PLC:n också, men det beror i så fall på programmeringsfel! Om t.ex. en variabel A i programmet tilldelas ett värde enligt A = A kommer värdet hos A att alternera periodiskt med den frekvens som sekvensen genomgår. 1 0

64 KAPITEL 4. PROGRAMMERBAR LOGIK Tiden för en cykel är typiskt i området 0.5-50 ms. Man låter oftast programmets längd påverka cykelns längd, dvs man börjar på nytt genast då man är färdig med en cykel. Leverantörer specificerar tider för hur länge det tar att utföra 1000 ord (time/kword) av programinstruktioner, och hur länge det tar att avläsa I/O. Dessa uppgifter kan användas för uppskattning av tiden t c för en cykel. Denna tid bör beaktas då man har snabba processer eller händelser med kort varaktighet: - Den tid som maximalt kan förflyta innan en förändring i en insignal påverkar utsignalerna är 2 t c (förändringen sker strax efter att insignalerna inlästs). - En insignalförändring som varar en tid kortare än t c kan bli odetekterad. 4.2 Programmering av en PLC Programmering av en PLC sker med hjälp av en skild programmeringsenhet, som i dagens läge är en PC. Det finns ett antal olika sätt att programmera PLC:n, och det finns fem stycken IEC(International Electrotechnical Commission)-standardiserade programmeringsspråk: - Structured Text (ST), hög-nivå textbaserat språk, liknar Pascal - Instruction List (IL), låg-nivå textbaserat språk, liknar assembler, beskrivs närmare i kapitel 4.2.1. - Ladder Diagram (LD), grafiskt språk, heter kontakt-diagram på svenska. Ett av de mest använda språken, beskrivs närmare i kapitel 4.2.2. - Function Block Diagram (FBD), grafiskt språk, har bl.a. logiska grindar och vippor som grundelement. - Sequential Function Chart (SFC), grafiskt språk baserat på Grafcet. I praktiken så har varje leverantör sina egna programmeringsverktyg, som mer eller mindre påminner om IEC-standarden. Förutom de ovan nämnda så används åtminstone FUP, vanlig Grafcet samt även C för programmering av PLC:n. 4.2.1 Låg-nivå programmeringsspråk (IL) PLC:n kan programmeras med speciella assemblerliknande programmeringsspråk. Uppbyggnaden av ett IL-program illustreras med ett exempel: Märke Operator Operand Kommentar LD Count (* Ladda variabeln Count i dataregistret *) loop SUB 1 (* Minska värdet i dataregistret med ett *) NE 0 (* Kolla om dataregistret är 0 *) JMP loop (* Hoppa till märket loop om föregående jämförelse är sann *) Det finns två stycken så kallade modifierare som kan användas i samband av de flesta av operatorerna, t.ex. så betyder LDN att man tar logisk icke på operanden innan den lagras i dataregistret. Parenteser är den andra typen av modifierare, vilket fungerar som väntat som modifierare av beräkningsprioritet.

4.2. PROGRAMMERING AV EN PLC 65 Tabell 4.1: IL-operatorerna enligt IEC Operator Modifierare Operandtyp Beskrivning LD N Alla Ladda operand i dataregister ST N Alla Spara innehållet i dataregistret i operand S BOOL Tilldela operand värdet 1 (sant) om dataregistret sant R BOOL Tilldela operand värdet 0 (falskt) om dataregistret sant AND N och () BOOL Logisk OCH OR N och () BOOL Logisk ELLER XOR N och () BOOL Logisk XOR ADD () Alla Addition SUB () Alla Subtraktion MUL () Alla Multiplikation DIV () Alla Division GT () Alla Större än GE () Alla Större än eller lika med EQ () Alla Lika med NE () Alla Icke lika med LE () Alla Mindre än eller lika med LT () Alla Mindre än JMP N Märke Konditionellt hopp (beroende på senaste jämförelsen) CAL N Namn Konditionellt anrop av funktionsblock RET N Konditionell retur från funktionsblock LD X (* Ladda variabeln X i dataregistret *) GT( A (* Utför GT efter att uttrycket i parentes beräknats *) ADD B (* Beräkna A+B *) ) (* Nu först testas om X > (A+B) *) IL påminner alltså mycket om assembler; man skall komma ihåg att man hela tiden jobbar med register och att beräkningen sker i den ordning som instruktionerna kommer (om man inte sätter parentes, som i exemplet ovan. Instruktionerna LD A ADD B (* A+B *) MUL C (* (A+B)C *) beräknar (A+B)C och inte A+(BC) som i ett högnivå programmeringsspråk. Instruktionerna (operatorerna) som ges av IEC-standarden ses i Tabell 4.1. Uppgift 4.1 Skriv ett PLC-program för den logiska funktionen för tillstånd 1 från alarmuppgiften, dvs Ekv. 3.3, 3.4 och 3.6 S 1 = u 1 u 2 x 3 + u 1 u 2 R 1 = u 1 x 1 = (x 1 + S 1 ) R 1

66 KAPITEL 4. PROGRAMMERBAR LOGIK 4.2.2 Kontaktdiagram (LD) Kontaktdiagram (e. ladder diagram, ty. kontakt-plan) är en metod för att beskriva och logiska funktioner, som har varit redan länge standardiserad. Metoden härstammar från relä-tekniken, men utnyttjas idag allmänt för att programmering av PLC:n. I ett kontaktdiagram har man två vertikala ledningar, av vilka den vänstra är förbunden med en spänningskälla, och den högra är jordad (Fig. 4.4). Ledningarna är horisontalt förbundna med strömstigar. 1 0 Figur 4.4: Kontaktdiagram Varje horisontal koppling representerar en variabel vars logiska värde är 1 om ström går genom kopplingen, och 0 annars. Funktionerna införs symboliskt; en kontakt som är sluten om u = 1, och annars öppen, anges med symbolen u Denna variabel u som avgör huruvida kopplingen är sluten eller ej kan vara en insignal eller en intern variabel (ett tillstånd). Typiskt så ges denna variabel som parameter till kontakten; man matar in en adress direkt eller en symbol (t.ex. u) som associerats med adressen. Bra minnesregel vid behandling av kontaktdiagram är att normalläge är 0, en 1 kräver en insats. T.ex. ovanstående kontakt är öppen i normalläge, medan u = 1 så sluter den. Symbolen för en kontakt som är sluten i normalläge, dvs då u = 0 ser ut enligt följande u Slutresultatet av varje horisontell rad kan lagras i en variabel, vilket betecknas enligt följande y ( ) Med hjälp av dessa tre grundsymboler kan vi nu konstruera de vanligaste logiska funktionerna med hjälp av kontaktdiagram, se Fig. 4.5.

4.2. PROGRAMMERING AV EN PLC 67 z = x 1 x 2 z = x 1 + x 2 z = x z = x 1 + x 2 z = x 1 x 2 z = x 1 x 2 z = x 1 + x 2 Figur 4.5: Vanliga logiska fuktioner som kontaktdiagram. Observera de avvikande beteckningarna (x=insignal, z=utsignal). Vi ser att logisk OCH fås med en seriekoppling och logisk ELLER med en parallellkoppling. RS-vippor konstrueras i IEC-standarden (och i labben) med hjälp av speciella S och R resultatvariabler. x (S) x (R) Då det logiska uttrycket till vänster är sant så betyder det att den logiska variabeln associerad med RS-vippan (x i det här fallet) kommer att sättas till 1 respektive 0. Det finns många olika beteckningar och funktionssätt för timer-funktionen, och det finns ingen egentlig standardbeteckning. Timer-funktioner har oftast flera utsignaler, förutom den egentligen fördröjda signalen även interna variabler som t.ex. själva klockräknaren.

68 KAPITEL 4. PROGRAMMERBAR LOGIK Uppgift 4.2 Konstruera ett kontaktdiagram för de boolska funktionerna y 1, y 2, V A, V B och V R i Ex. 3.2. H A H B L A A B L B V A y 1 V B L R y 2 V R