Denne Quick guide giver en kort beskrivelse af Blok programmerings funktioner i
CS1/CJ1 plc serien.
Der kan laves op til 128 blokke i et program (alle taske). Fordelen ved at bruge blok
programmering er bla. at alle instruktioner mellem BPRG og BEND kun bliver udført
nor betingelsen for BPRG er sand.
Blok programmering gør det muligt at lave et program som er vanskeligt at lave i
ladder, f.eks. Branches og Step programmering, samt at optimere hastigheden på sit
program væsentligt, specielt med WAIT og TIMW instruktionerne.
Hver blok er startet med instruktionen BPRG, alle instruktioner derefter skal skrives i
mnemonic.
MN/OEE-DK 10/2002
3
BeksrivelseBlok programmerning
2. Programmerings instruktioner.
Følgende instruktioner findes til blok programmerng.
InstruktionerMnemonicFunktions kode
BLOCK PROGRAM BEGINBPRG096
BLOCK PROGRAM ENDBEND801
BLOCK PROGRAM PAUSEBPPS811
BLOCK PROGRAM RESTARTBPRS812
CONDITIONAL BLOCK EXIT (NOT) EXIT (NOT)806
IF (NOT)IF (NOT)802
ELSEELSE803
IF ENDIEND804
ONE CYCLE AND WAIT (NOT)WAIT (NOT)805
TIMER WAITTIMW (BCD)813
TIMWX (binary)816
COUNTER WAITCNTW (BCD)814
CNTWX (binary)818
HIGH-SPEED TIMER WAITTMHW (BCD)8147
TMHWX (binary) 815
LOOPLOOP809
LOOP END (NOT)LEND (NOT)810
MN/OEE-DK 10/2002
4
BeksrivelseBlok programmerning
3. BLOK Programmering
3.1. BPRG og BEND
Blok programmer kan laves alle steder i en Task, for at opdele sit program i ydderligere
enheder.
En Blok startes med Instruktionen BPRG, efterfølgende instruktioner skal være i mnemonic,
og programet skal afsluttes med BEND
MN/OEE-DK 10/2002
5
BeksrivelseBlok programmerning
4. Betingelses programmering.
4.1. Programmering med IF, ELSE og IEND.
Betingelses programmering kan bruges i program blokken til at hoppe til det næste step, eller
afgøre et valg i programmeringen.
Hvis man ønsker at lave et valg på baggrund af en betingelse kan det se ud som følgende:
Et eksempel på plc program med betingelses programmering kunne være at an ønsker at
lægge værdien 1 til et setpunkt hvis der trykkes på 0.01, hvis der derimod ikke trykkes på
0.01 lægges der i stedet for værdien 2 til setpunkt.
MN/OEE-DK 10/2002
Det er også mulig at have en IF betingelse inde i en IF betingelse.
Følgende blok bliver udført hvis indgang 0.00 er aktiv.
Hvis indgang 0.02 og 0.03 er aktiv, lægges værdien 1000 til D11, og resultatet lægges i D12,
hvis indgang 0.04 bliver aktiv lægges værdien 1 i D12. Ellers resettes D12.
6
BeksrivelseBlok programmerning
5. Exit Block program
5.1. Hop ud af et program ved hjælp af EXIT
Det er muligt at afbryde et program forløb, ved hjælp af EXIT eller EXIT (NOT).
Hvis betingelserne før EXIT er opfyldt (ON), vil program foløbet afbrydes og der hoppes til
BEND.
EXIT (NOT), er det samme, blos akl betingelserne foran instruktionen være OFF.
MN/OEE-DK 10/2002
7
BeksrivelseBlok programmerning
6. Cyklus stop og vent.
6.1. Instruktionen WAIT og WAIT (NOT).
Når et program læser en WAIT instruktion stopper afviklingen af resten af blokken,
efterfølgende vil blokken kun bruge tid på at læse status på WAIT instruktionen, og først
afvikle programmet når instruktionen aktiveres.
MN/OEE-DK 10/2002
8
BeksrivelseBlok programmerning
7. Timer
7.1. Instruktionen TIMW og TIMWX
Når et program læser en TIMW (BCD) eller TIMWX (Binary) instruktion stopper afviklingen
af resten af blokken, efterfølgende vil blokken kun bruge tid på at læse status på timer
instruktionen, og først afvikle blokken igen når timeren er udløbet.
MN/OEE-DK 10/2002
9
BeksrivelseBlok programmerning
8. Tæller
8.1. Instruktionen CNTW og CNTWX
Når et program læser en CNTW (BCD) eller CNTWX(Binary) instruktion stopper afviklingen
af resten af blokken, efterfølgende vil blokken kun bruge tid på at læse status på tæller
instruktionen, og først afvikle blokken igen når tælleren er udløb.
MN/OEE-DK 10/2002
10
BeksrivelseBlok programmerning
9. Loop
9.1. Instruktionen LOOP og LEND
Et loop kan bruges til at hoppe tilbage i programmet, og loop programmet ligger mellem
LOOP og LEND. Vær opmærksom på at I/O data ikke bliver opdateret i Loopet, så læses der
data fra I/O skal man bruge IORF instruktionen til at opdatere I/O data.
MN/OEE-DK 10/2002
11
BeksrivelseBlok programmerning
10. Betingelser
Alle software eksempler, program forslag samt principdiagrammer kan og bør ikke
opfattes som direkte implementerer i endelig applikationer.
Dersom der ændres i standard menuer samt prædefinerede opsætninger indestår
OMRON ikke for ansvar.
Der gøres opmærksom på at Omron Electronics A/S ikke kan holdes ansvarlig for
eventuelle tab af data.
Visse programeksempler er udviklet til at bruge bestemte hukommelses område. Dette
medfører at der skal tages backup af de hukommelses områder som ikke må gå tabt.
Brugen af Omron Electronics A/S programeksempler er på eget ansvar.
Denne Quick guide giver en kort beskrivelse af Tabel instruktionerne i CS1/CJ1 plc
serien.
Tabel instruktionerne gør det muligt at lave et plc program son selv holder styr på
pointer og registrere, så det bliver væsentligt lettere at genbruge eller udvidde et
program.
Der kan laves op til 16 tabeller i et program (alle taske).
Efterfølgende laves et eksempel på at oprette en tabel, hente data, indsætte en ny
record, samt at søge efter et vare nr.
MN/OEE-DK 19-12-2002
3
Record nr
BeksrivelseTabel håndtering
2. Tabel layout.
Følgende layout bruges som udgangspunkt for efterfølgende program eksempler.
Tabellen har 10 Records, med hver 4 kolonner. Envidere besluttes det at tabellen skal kaldes
Tabel nr 1.
En tabel oprettes i plc’en ved brug af DIM instruktionen. Tabellen tildeles et nummer, der
skal angives hvor mange kolonner og records der skal være i tabellen, og endeligt skal der
angives en tabel start adresse.
For at lave ”et billed” i plc’en af tabellen beskrevet under punkt 2, opsættes DIM
instruktionen på følgende måde:
DIM instruktionen indeholder nu:
1. Tabel nr. = 1
2. Antal kolonner = 4
3. Antal recods = 10
4. Start adresse for tabellen = D1000
Det betyder at denne tabel nu bruger 4x10 ord, fra D1000 til D1039.
Nu skal data lægges ned i plc’en så de ligger på følgende måde:
For at hente data i en tabel bruges SETR instruktionen. Her fortæller man hvilken tabel der
skal søges i, hvilken record man ønsker overført til sin pointer, samt en pointer adresse.
Her i eksemplet, tabel 1, record nummeret indtastes i D1 og pointeren overføres til
Indexregister IR0.
Når pointer adressen er fundet, overflyttes recorden til arbejdsadressen. I eksemplet er hver
record 4 ord lang, pointeren ligger i Indexregister IR0 og arbejdes området er her D100.
For at indlæse data i en tabel bruges SETR instruktionen. Her fortæller man hvilken tabel der
skal indlæses i, hvilken record man ønsker overført data til, samt en pointer adresse.
Her i eksemplet, tabel 1, record nummeret indtastes i D1 og pointeren overføres til
Indexregister IR1.
Når pointer adressen er fundet, overflyttes data fra D120-D123 til recorden.
SCRH instruktionen kan bruges til at søge efter data i et område af ord. Findes det søgte,
skriver instruktionen adressen på resultatet i IR0. Hvis der findes flere adresser med samme
resultat skriver instruktionen antallet i DR0.
MN/OEE-DK 19-12-2002
8
BeksrivelseTabel håndtering
6.2. Loop instruktioner.
For at opnå en hurtig og effektiv søgning, bruges der i dette eksempel et LOOP til at lave
søgningen i. Det betyder at programmet hopper tilbage i scanet det antal gange der er
defineret.
Efterfølgende en kort forkalring på de instruktioner der skal bruges for at lave et loop.
6.2.1. Instruktionen FOR og NEXT.
FOR instruktionen bruges til at starte et loop. Der må ikke være nogle betingelser foran
instruktionen, og der indtastes i instruktionen hvor mange gange loopet skal gennem løbes.
FOR instruktionen holder selv styr på hvor mange gange den skal loope, hver gang den når
NEXT hopper den tilbage til FOR.
6.2.2. Instruktionen BREAK.
BREAK instruktionen kan bruges til at afbryde et Loop. F.eks hvis der laves en søgning, og
der efter 5 loops findes en ok søgning, kan man jo lige så godt afbryde loopet.
6.3. Instruktionen MOVR
For at bruge de ”nye” pointer i CS1/CS1 bør man vide hvordan MOVR instruktionen fungere.
MOVR bruges til af flytte en start adresse til en pointer. Bem. Det er ikke værdien af ordet
men kun adressen der har betydning.
Her vises et eksempel på at man initialisere en pointer til at starte fra CIO0020.
MN/OEE-DK 19-12-2002
9
Vare nr
Resultat af søgning
BeksrivelseTabel håndtering
6.4. Program eksempel.
Dette program eksempel søger efter vare nr. i tabel 1 som tidligere oprettet.
Det der ønskes søgt efter indtastes i D3, søgningen startes med W10.03, resultatet af
søgningen kan læses i D140-D143. Hvis D140-D143 er lig med 0, fandt søgningen ikke det
pågældende vare nr.
6.4.1. Rung 1 – Initialisering af søgning.
Når søgningen startes sættes et LoopPuls bit. Pointeren IR2 initialiseres til at starte i D1000
(Der hvor tabel 1 starter), DR0 sættes til 0, den bruges til at flytte pointeren i hver søgning.
Loopet gennem løbes 10 gange pga. tabel 1, som indeholder 10 records.
Hvis ikke loop pulsen er aktiv afbrydes loopet med BREAK.
Søgningen starter med at nul stille resultat ordet D140-D143, derefter søges i første record med
SRCH, hvis søgningen gav resultat sættes Equal P_EQ bittet og søgningen overføres med
XFER, hvorefter loopet afbrydes.
Hvis ikke søgningen gav resultat flyttes pointeren frem til næste record og loopet starter forfra, i
alt 10 gange.
MN/OEE-DK 19-12-2002
11
BeksrivelseTabel håndtering
7. Betingelser
Alle software eksempler, program forslag samt principdiagrammer kan og bør ikke
opfattes som direkte implementerer i endelig applikationer.
Dersom der ændres i standard menuer samt prædefinerede opsætninger indestår
OMRON ikke for ansvar.
Der gøres opmærksom på at Omron Electronics A/S ikke kan holdes ansvarlig for
eventuelle tab af data.
Visse programeksempler er udviklet til at bruge bestemte hukommelses område. Dette
medfører at der skal tages backup af de hukommelses områder som ikke må gå tabt.
Brugen af Omron Electronics A/S programeksempler er på eget ansvar.
Denne Quick guide giver en kort beskrivelse af Blok programmerings funktioner i
CS1/CJ1 plc serien.
Der kan laves op til 128 blokke i et program (alle taske). Fordelen ved at bruge blok
programmering er bla. at alle instruktioner mellem BPRG og BEND kun bliver udført
nor betingelsen for BPRG er sand.
Blok programmering gør det muligt at lave et program som er vanskeligt at lave i
ladder, f.eks. Branches og Step programmering, samt at optimere hastigheden på sit
program væsentligt, specielt med WAIT og TIMW instruktionerne.
Hver blok er startet med instruktionen BPRG, alle instruktioner derefter skal skrives i
mnemonic.
MN/OEE-DK 10/2002
3
BeksrivelseBlok programmerning
2. Programmerings instruktioner.
Følgende instruktioner findes til blok programmerng.
InstruktionerMnemonicFunktions kode
BLOCK PROGRAM BEGINBPRG096
BLOCK PROGRAM ENDBEND801
BLOCK PROGRAM PAUSEBPPS811
BLOCK PROGRAM RESTARTBPRS812
CONDITIONAL BLOCK EXIT (NOT) EXIT (NOT)806
IF (NOT)IF (NOT)802
ELSEELSE803
IF ENDIEND804
ONE CYCLE AND WAIT (NOT)WAIT (NOT)805
TIMER WAITTIMW (BCD)813
TMHWX (binary) 815
LOOPLOOP809
LOOP END (NOT)LEND (NOT)810
MN/OEE-DK 10/2002
4
BeksrivelseBlok programmerning
3. BLOK Programmering
3.1. BPRG og BEND
Blok programmer kan laves alle steder i en Task, for at opdele sit program i ydderligere
enheder.
En Blok startes med Instruktionen BPRG, efterfølgende instruktioner skal være i mnemonic,
og programet skal afsluttes med BEND
MN/OEE-DK 10/2002
5
BeksrivelseBlok programmerning
4. Betingelses programmering.
4.1. Programmering med IF, ELSE og IEND.
Betingelses programmering kan bruges i program blokken til at hoppe til det næste step, eller
afgøre et valg i programmeringen.
Hvis man ønsker at lave et valg på baggrund af en betingelse kan det se ud som følgende:
Et eksempel på plc program med betingelses programmering kunne være at an ønsker at
lægge værdien 1 til et setpunkt hvis der trykkes på 0.01, hvis der derimod ikke trykkes på
0.01 lægges der i stedet for værdien 2 til setpunkt.
MN/OEE-DK 10/2002
Det er også mulig at have en IF betingelse inde i en IF betingelse.
Følgende blok bliver udført hvis indgang 0.00 er aktiv.
Hvis indgang 0.02 og 0.03 er aktiv, lægges værdien 1000 til D11, og resultatet lægges i D12,
hvis indgang 0.04 bliver aktiv lægges værdien 1 i D12. Ellers resettes D12.
6
BeksrivelseBlok programmerning
5. Exit Block program
5.1. Hop ud af et program ved hjælp af EXIT
Det er muligt at afbryde et program forløb, ved hjælp af EXIT eller EXIT (NOT).
Hvis betingelserne før EXIT er opfyldt (ON), vil program foløbet afbrydes og der hoppes til
BEND.
EXIT (NOT), er det samme, blos akl betingelserne foran instruktionen være OFF.
MN/OEE-DK 10/2002
7
BeksrivelseBlok programmerning
6. Cyklus stop og vent.
6.1. Instruktionen WAIT og WAIT (NOT).
Når et program læser en WAIT instruktion stopper afviklingen af resten af blokken,
efterfølgende vil blokken kun bruge tid på at læse status på WAIT instruktionen, og først
afvikle programmet når instruktionen aktiveres.
MN/OEE-DK 10/2002
8
BeksrivelseBlok programmerning
7. Timer
7.1. Instruktionen TIMW og TIMWX
Når et program læser en TIMW (BCD) eller TIMWX (Binary) instruktion stopper afviklingen
af resten af blokken, efterfølgende vil blokken kun bruge tid på at læse status på timer
instruktionen, og først afvikle blokken igen når timeren er udløbet.
MN/OEE-DK 10/2002
9
BeksrivelseBlok programmerning
8. Tæller
8.1. Instruktionen CNTW og CNTWX
Når et program læser en CNTW (BCD) eller CNTWX(Binary) instruktion stopper afviklingen
af resten af blokken, efterfølgende vil blokken kun bruge tid på at læse status på tæller
instruktionen, og først afvikle blokken igen når tælleren er udløb.
MN/OEE-DK 10/2002
10
BeksrivelseBlok programmerning
9. Loop
9.1. Instruktionen LOOP og LEND
Et loop kan bruges til at hoppe tilbage i programmet, og loop programmet ligger mellem
LOOP og LEND. Vær opmærksom på at I/O data ikke bliver opdateret i Loopet, så læses der
data fra I/O skal man bruge IORF instruktionen til at opdatere I/O data.
MN/OEE-DK 10/2002
11
BeksrivelseBlok programmerning
10. Betingelser
Alle software eksempler, program forslag samt principdiagrammer kan og bør ikke
opfattes som direkte implementerer i endelig applikationer.
Dersom der ændres i standard menuer samt prædefinerede opsætninger indestår
OMRON ikke for ansvar.
Der gøres opmærksom på at Omron Electronics A/S ikke kan holdes ansvarlig for
eventuelle tab af data.
Visse programeksempler er udviklet til at bruge bestemte hukommelses område. Dette
medfører at der skal tages backup af de hukommelses områder som ikke må gå tabt.
Brugen af Omron Electronics A/S programeksempler er på eget ansvar.
MN/OEE-DK 10/2002
12
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.