Omron CPM1A Operating Manual [da]

Cat. No. W317-DA2-01
SYSMAC
CPM1A
PLC
OPERATION MANUAL
Afsnit 1
Installation og fortrådning
Dette afsnit giver oplysninger om installation og fortrådning af CPM1 PLC’en. Følg anvisningerne for at undgå skader på personer eller materiel.
1-1 CPM1 placering 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-1-1 Forbindelse af en I/O udvidelsesenhed 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-1-2 CPM1A oversigt 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-1-3 CPM1A System Konfiguration 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-1-4 I/O terminaler og IR bit lokationer 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-1-5 Ind-- og udgange 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-1-6 Fortrådning af indgange 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-1-7 Fortrådning af udgange 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-1-8 Forbindelse af perifære enheder 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-1-9 Host Link forbindelser 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-1-10 1:1--Link (PLC sammenkobling) 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Installation og fortrådning Afsnit 1
1-1 CPM1 placering
CPM1 skal opsættes som vist nedenfor for at sikre tilstrækkelig køling.
Rigtigt
Opsæt ikke CPM1 på nogen af de to følgende måder.
Forkert
Forkert
1-1-1 Forbindelse af en I/O udvidelsesenhed
En I/O udvidelsesenhed kan forbindes til CPM1’ens CPU. Brug følgende frem­gangsmåde.
1, 2, 3... 1. Fjern beskyttelsesdækslet fra CPU’ens I/O udvidelsesstik.
2. Sæt I/O udvidelsesenhedens forbindelseskabel i CPU’ens I/O udvidel­sesstik.
I/O udvidelsesstik beskyttelses-­dæksel
2
Installation og fortrådning Afsnit 1
1-1-2 CPM1A oversigt
CPU med AC forsynig
10 I/O (Udvidelse ikke mulig)
20 I/O (Udvidelse ikke mulig)
CPU med DC forsyning
10 I/O (Udvideslse ikke mulig)
20 I/O (Udvidelse ikke mulig)
I/O Udvidelsesenhed
30 I/O Punkter 40 I/O Punkter
30 I/O Punkter 40 I/O Punkter
RS-232C Adapter
CPM1-CIF01
RS-422 Adapter
CPM1-CIF11
20 I/O points
3
Punkter
00000to
01000to
00000to
01000to
00011
01007
00211012070031101307004110140
7
00011
01007
00211012070031101307004110140
7
Installation og fortrådning Afsnit 1
1-1-3 CPM1A System Konfiguration
Periferiport Forbindelseskabel
CPM1-CIF01/CIF11 Adapter
Både AC og DC modellerne. (Kun 30 og 40 punkters CPU). Kan udvides med op til 3 udvidelses­moduler.
I/O Udvidelsesmodul I/O UdvidelsesmodulI/O Udvidelsesmodul
1-1-4 I/O terminaler og IR bit lokationer
Tabellen viser hvilke IR bits der er allokeret til I/O terminalerne på CPM1A’s CPU og udvidelsesmoduler.
Antal I/O
på CPU
10 6 punkter
20 12 punkter
30 18 punkter
40 24 punkter
CPU Terminaler CPM1A-20EDT Udvidelsesmodul
Indgange Udgange Indgange Udgange Indgange Udgange Indgange Udgange
00005
00011
00000 to
00100 to 00105
00000 to
00100 to 00111
4 punkter
01003
8 punkter
01007
12 punkter 01000 to
01100 to 01103
16 punkter 01000 to
01100 to 01107
-- -- -- -- -- --
-- -- -- -- -- --
12 punkter 00200 to
12 punkter 00200 to
8 punkter 01200 to
8 punkter 01200 to
12 punkter 00300 to
12 punkter 00300 to
8 punkter 01300 to
8 punkter 01300 to
12 punkter 00400 to
12 punkter 00400 to
8 punkter 01400 to
8 punkter 01000 to
Forsy-­ning
AC CPM1A-
DC CPM1A-
AC CPM1A-
DC CPM1A-
AC CPM1A-
DC CPM1A-
AC CPM1A-
DC CPM1A-
Model
10CDj-A
10CDj-D
20CDj-A
20CDj-D
30CDj-A
30CDj-D
40CDj-A
40CDj-D
4
TypeForsyn-
Ud-
Model
udgange
00000til0000501000til0100300100til0011101100til0110
7
udgange
00000til0001101000til0100700100til0011101100til0110
7
00000til00011
,1201000til01007
,3000200til002112001200til01207
udgange
00000til00011
,
01000til01007
,
00200til0021101200til0120
7
Installation og fortrådning Afsnit 1
1-1-5 Ind-- og udgange
Antallet af ind-- / udgange og nummereringen af ind-- / udgange for CPM1 CPU og udvidelsesenhed ses nedenfor.
Type Forsyn-
10 ind-- / udgange
20 ind-- / udgange
30 ind-- / udgange
ing
110--240 VAC
24 VDC CPM1-10CDR-D 110--240
VAC 24 VDC CPM1-20CDR-D 110--240
VAC 24 VDC CPM1-30CDR-D
Ud-
gange
Relæer
Model
CPM1-10CDR-A
CPM1-20CDR-A
CPM1-30CDR-A
Indgange Udgange Indgange Udgange
6
12
18
00100 til 00105
Kun CPU Med udvidelsesenhed
4
8
01100 til 01103
18
24
12
16
5
Installation og fortrådning Afsnit 1
1-1-6 Fortrådning af indgange
Fortråd indgangene til PLC’ens CPU-- og I/O udvidelsesenheder, som vist på det følgende diagram.
CPM1-10CDR-j CPU Den visteCPUerenAC--type. DC-typen har ikke indbygget 24 VDC følerforsyn-
ing
VCC
Signalgivere
COM
24 VDC, 300 mA intern strømforsyning
CPM1-20CDR-j CPU og CPM1-20EDR I/O udvidelsesenhed
Diagrammet viser indgangskonfigurationen for CPM1-20CDR-j CPU og CPM1-20EDR I/O udvidelsesenhed.
VCC
Signalgivere
COM
CPM1-30CDR-j CPU Diagrammet viser indgangskonfigurationen for CPM1-30CDR-j CPU.
VCC
Signalgivere
COM
6
Installation og fortrådning Afsnit 1
Signalgivere (initiatorer) Det følgende skema viser, hvordan forskellige signalgivere forbindes.
Udstyr Forbindelsesdiagram
Relæudgang
Relæ
IN
5 mA/12 mA CPM1
COM (+)
NPN åben collector
NPN strømudgang
PNP strømudgang
Spændingsudgang
Sensor (føler)
Konstant strøm-­kreds
+
Udgang
0 V
Følerstrøm-­forsyning
5 mA/12 mA
+
Udgang
5 mA/12 mA
0 V
+
5 mA/12 mA
Udgang
0 V
+
Udgang
0 V
Følerstrøm-­forsyning
Følerstrøm-­forsyning
IN
COM (+)
Brug samme strømforsyningtil sensor og indgang.
IN
+
COM (+)
IN
COM (+)
COM (+)
IN
CPM1
CPM1
CPM1
CPM1
1-1-7 Fortrådning af udgange
Forbind udgangene til CPM1’s CPU og I/O udvidelsesenheder som vist i det følgende diagram.
· Brug enten entrådet ledning eller ledningstyller ved flertrådet.
· Overbelast hverken den enkelte udgang eller den enkelte common.
Udgangsmærkestrøm 2 A (250 VAC eller 24 VDC) Common mærkestrøm 4 A/common
Emne Specifikationer
7
Installation og fortrådning Afsnit 1
CPM1-10CDR-j CPU Den viste CPU eren AC--type. DC-typen har ikke intern24 VDC strømforsyning
Load
Load
Load
Load
CPM1-20CDR-j CPU og CPM1-20EDR I/O udvidelsesenhed
Det følgende diagram viser udgangskonfigurationen for CPM1-20CDR-j CPU og CPM1-20EDR I/O udvidelsesenhed.
Load
Load
Load
Load
Load
Load
Load
Load
CPM1-30CDR-j CPU Dette diagram viser udgangskonfigurationen for CPM1-30CDR-j CPU.
Load
Load
Load
Load
Load
Load
Load
Load
Load
Load
Load
Load
Forholdsregler Vær opmærksom på følgende forholdsregler med henblik på beskyttelse af
PLC’ens interne komponenter.
Kortslutningsbeskyttelse af udgangene
Udgangene eller de interne kredsløb kan blive beskadiget, hvis belastningen, der er forbundet til udgangen, kortsluttes. Derfor anbefales det at placere sik­ringer til beskyttelse mod disse skader i udgangskredsløbene.
Induktive belastninger
Ved forbindelse af induktive belastninger til en udgang, skal udgangen be-­skyttes med en stødstrømsbeskyttelse, RC--led eller diode afhængigt af sty­restrømmen.
Komponenter til stødstrømsbeskyttelse skal opfylde følgende krav:
OUT
CPM1 Relæudgang
COM
RC--led
8
Installation og fortrådning Afsnit 1
Dioden skal opfylde følgende krav:
Gennembrudsspændingen i spærreretningen skal mindst være tre gange så stor som belastningsspændingen. Middelværdien for den ensrettede støm skal være 1 A.
OUT
CPM1 Relæudgang
COM
Diode
1-1-8 Forbindelse af perifære enheder
CPM1 CPU kan forbindes med en C200H-PRO27-E programmeringsenhed med et standard C200H-CN222 (2 m) eller C200H-CN422(4 m) forbindelseska­bel. CPM1 CPU kan også forbindes med en CQM1-PRO01-E, som er forsynet med et 2-m forbindelseskabel.
1-1-9 Host Link forbindelser
Host Link er et kommando/svar kommunikationssystem, hvor kommandoerne sendes fra hostcomputeren og de tilsvarende svar sendes tilbage fra de tilslut­tede PLC’er. Host Link kommandoer bruges til at læse/skrive data i PLC’ernes dataområder og læse/skrive PLC opsætninger.
1:1 Host Link forbindelse CPM1 CPU kan kobles til en IBM PC/ATkompatibel computereller enoperatør--
terminal med en RS-232C adapter, som vist på det følgende diagram.
PT
Response
RS-232C Adapter
CPM1 CPU
Command
Response
RS-232C Adapter
CPM1 CPU
Command
9
Installation og fortrådning Afsnit 1
Det følgende diagram viser forbindelserne i det RS-232Ckabel, der bruges til at forbinde en CPM1 med en host computer eller en operatørterminal.
IBM PC/AT compatible computer
operatørerminal eller 1:1 link
Ben nrSignal FG SD RD RS CS
--
--
--
SG
1 2 3 4 5 6 7 8 9
Note Når CPM1 forbindes til en host computer, så sæt RS-232C adapterens mode
switch til “HOST.”
1-1-10 1:1--Link (PLC sammenkobling)
En CPM1 kan kobles sammen med en CPM1, CQM1, eller C200HS PLC med en RS-232C adapter. Den ene PLC fungerer som master og den anden som slave. Master styrerkommunikationen, og der er 16ord eller 256 bit til rådighed til 1:1--Link kommunikation i LR området (LR 0000 til LR 1515).
RS-232C Adapter
Ben nr Signal
1 2 3 4 5 6 7 8 9
FG SD
RD
RS CS
--
--
--
SG9
RS-232C adapter (se note)
SKRIV
LÆS
LR 00
LR 07 LR 08
LR 15
RS-232C kabel
CPM1 CPU
Link bit
SKRIVE område
LÆSE område
RS-232C adapter (se note)
Link bit
LÆSE område
SKRIVE område
CPM1 CPU
LR 00
LÆS
LR 07 LR 08
SKRIV
LR 15
10
Installation og fortrådning Afsnit 1
Note 1:1 PLC sammenkobling kræver en RS-232C adapter (CPM1-CIF01) på
CPM1--CPU’ens periferiport. Sæt DIP switchen på RS-232C adapter (CPM1-CIF01) til NT--Link (ned).
11
Afsnit 2
PLC Setup og tilhørende funktioner
Dette afsnit forklarer PLC Setup og tilhørende CPM1 funktioner, incl. interruptafvikling og kommunikation. PLC Setup bruges til at styre PLC’ens virkemåde.
2-1 CPM1 PLC Setup 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-1-1 CPM1A--MAD01 Analog modul setup 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-2 CPM1 Interrupt Funktioner 20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-2-1 Interrupt typer 20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-2-2 Indgangsinterrupts 21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-2-3 Afmaskning af alle interrupts 25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-2-4 Intervaltimer interrupt 26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-2-5 High-speed tæller Interrupt 27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-3 Kommunikationsfunktioner 33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-3-1 CPM1 Host Link Kommunikation 33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-3-2 CPM1 1:1--Link Kommunikation 34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-3-3 CPM1 NT Link Kommunikation 35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
DM660
1
CPM1 PLC Setup Afsnit 2--1
2-1 CPM1 PLC Setup
PLC Setup’en er inddelt i 4 kategorier: 1) opsætning relateret til PLC’ens grundlæggende virkemåde, 2) opsætning relateret til scantid, 3) opsætning re­lateret til interrupt og 4) opsætning relateret til kommunikation.
Nedenstående tabel viser PLC Setup for CPM1. PLC’en skal være i STOP/ PROGRAM mode, førend DM6600 til DM6655 kan overføres til den.
ord Bit Funktion
Grundlæggende opsætning (DM 6600 til DM 6614)
Følgende opsætningsdata får først virkning efter overførsel til PLC’en, efter at PLC’en slukkes og tændes igen DM 6600
DM 6601
DM 6602
DM 6603 til DM 6614
Opsætning relateret til scantid (DM 6615 til DM 6619)
Følgende opsætningsdata får virkning efter overførsel til PLC’en så snart PLC’en sættes i RUN eller MONITOR mode. DM 6615,
DM 6616 DM 6617
DM 6618
DM 6619 00 til 15 Scantid
00 til 07 Opstarts mode (Får virkning hvis bit 08 til 15 er sat til 02).
00: PROGRAM; 01: MONITOR eller 02: RUN
08 til 15 Hvad bestemmer opstarts mode
00: Nøgleswitchen på håndprogrammeringsenheden 01: Start op i samme mode, som PLC’en var i, da den blev slukket
02: Opstarts mode bestemmes af bit 00 til 07 00 til 07 Sæt til 00 08 til 11 IOM Hold Bit (SR 25212) Status (Skal status af IR bit og LR bit bibeholdes når PLC’en går i
STOP/PRG mode)
0: Reset; 1: Bibehold 12 til 15 Tvangsstyret status hold bit (SR 25211) status (skal status af tvangsstyrede kontakter bibe-
holdes eller resettes når PLC’en går i STOP/PRG mode)
0: Reset; 1: Bibehold 00 til 03 Programhukommelse skrivebeskyttes eller ej
0: Program hukommelse kan overskrives
1: Programhukommelse skrivebeskyttet (Undtagen DM 6602) 04 til 07 Håndprogrammeringsenhedens sprog
0: Engelsk; 1: Japansk 08 til 15 00: Expansion funktioner kan ikke overføres til PLC
01: Expansion funktioner kan overføres til PLC 00 til 15 Reserveret (sæt til 0000)
00 til 15 Reserveret (sæt til 0000)
00 til 07 Betjeningstid for periferiport (Får virkning hvis bit 08 til 15 er sat til 01)
00 til 99 (BCD): Procentdel af scantid til betjening af periferiport 08 til 15 Periferiportens betjeningstidsopsætning
00: 5% af scantiden
01: Opsætning i bit 00 til 07. 00 til 07 Scan moniteringstid (Får virkning hvis bit 08 til 15 er sat til 01, 02, eller 03)
00 til 99 (BCD): Indstilling (se 08 til 15) 08 til 15 Scan monitering enable (”tillades”) (Indstilling i 00 til 07 x unit; 99 S max.)
00: 120 mS (Indstilling i bit 00 til 07 disables)(”forbydes”)
01: Opsætningsenhed: 10 mS
02: Opsætningsenhed: 100 mS
03: Opsætningsenhed: 1 S
0000: Variabel (intet minimum)
0001 til 9999 (BCD): Minimum tid i mS
13
DM662
2
DM662
3
DM662
4
DM662
5
DM662
8
CPM1 PLC Setup Afsnit 2--1
ord FunktionBit
Interrupt eksekvering (DM 6620 til DM 6639)
Følgende opsætningsdata får virkning efter overførsel til PLC’en så snart PLC’en sættes i RUN eller MONITOR mode. DM 6620
DM 6621
DM 6622
DM 6623
DM 6624
DM 6625
DM 6626 til DM 6627
DM 6628
DM 6629 til DM 6641
High-speed tæller opsætning (DM 6640 til DM 6644)
Følgende opsætningsdata får virkning næste gang PLC’en sættes i RUN. DM 6640 til
DM 6641 DM 6642
DM 6643, DM 6644
00 til 03 Indgangsfilter konstant for IR 00000 til IR 00002
0: 8 mS; 1: 1 mS; 2: 2 mS; 3: 4 mS; 4: 8 mS; 5: 16 mS; 6: 32 mS; 7: 64 mS; 8: 128 mS 04 til 07 Indgangsfilter konstant for IR 00003 og IR 00004 (Samme opsætning som bit 00 til 03) 08 til 11 Indgangsfilter konstant for IR 00005 og IR 00006 (Samme opsætning som bit 00 til 03) 12 til 15 Indgangsfilter konstant for IR 00007 og IR 00011 (Samme opsætning som bit 00 til 03) 00 til 07 Indgangsfilter konstant for IR 001
00: 8 mS; 01: 1 mS; 02: 2 mS; 03: 4 mS; 04: 8 mS; 05: 16 mS; 06: 32 mS; 07: 64 mS; 08: 128
mS 08 til 15 Indgangsfilter konstant for IR 002 (Samme opsætning som for IR 001.) 00 til 07 Indgangsfilter konstant for IR 003 (Samme opsætning som for IR 001.) 08 til 15 Indgangsfilter konstant for IR 004 (Samme opsætning som for IR 001.) 00 til 07 Indgangsfilter konstant for IR 005 (Samme opsætning som for IR 001.) 08 til 15 Indgangsfilter konstant for IR 006 (Samme opsætning som for IR 001.) 00 til 07 Indgangsfilter konstant for IR 007 (Samme opsætning som for IR 001.) 08 til 15 Indgangsfilter konstant for IR 008 (Samme opsætning som for IR 001.) 00 til 07 Indgangsfilter konstant for IR 009 (Samme opsætning som for IR 001.) 08 til 15 Reserveret 00 til 15 Reserveret
00 til 03 Opsætning af indgang IR 00003 (0: Normal indgang; 1: Interrupt indgang 2: Hurtig--respons) 04 til 07 Opsætning af indgang IR 00004 (0: Normal indgang; 1: Interrupt indgang; 2: Hurtig-respons) 08 til 11 Opsætning af indgang IR 00005 (0: Normal indgang; 1: Interrupt indgang; 2: Hurtig-respons) 12 til 15 Opsætning af indgang IR 00006 (0: Normal indgang; 1: Interrupt indgang; 2: Hurtig-respons) 00 til 15 Reserveret
00 til 15 Reserveret
00 til 03 High-speed tæller mode
0: Op/ned mode; 4: OP-- tæller mode 04 til 07 High-speed tæller reset metode
0: Z fase og software reset; 1: Software reset kun 08 til 15 High-speed tæller enable
00: Ingen high--speed tæller; 01: High-speed tæller med opsætning i 00 til 07 00 til 15 Reserveret
14
CPM1 PLC Setup Afsnit 2--1
ord Bit Funktion
Periferiport opsætning
Følgende opsætningsdata får virkning efter overførsel til PLC’en så snart PLC’en sættes i RUN eller MONITOR mode. DM 6645 til
DM 6649 DM 6650
DM 6651
DM 6652 00 til 15 Transmissionsforsinkelse (Host Link)
DM 6653
DM 6654 00 til 15 Reserveret
Opsætning af fejllogning (DM 6655)
Følgende opsætningsdata får virkning, så snart de er overført til PLC’en. DM 6655
00 til 15 Reserveret
00 til 07 Port opsætning
00: Standard (1 start bit, 7 data bits, lige paritet, 2 stop bits, 9,600 bps)
01: Opsætning i DM 6651
(Andre opsætninger vil medføre en ikke-fatal fejl og standardopsætningen (00) bruges.) 08 til 11 Link område ved 1:1--link via periferi port:
0: LR 00 til LR 15 12 til 15 Kommunikations mode
0: Host link; 2: 1:1--link (slave); 3: 1:1--link (master); 4: NT link
(Andre opsætninger vil medføre en ikke-fatal fejl og standardopsætningen (00) bruges.) 00 til 07 Kommunikationshastighed (Baud rate)
00: 1.2K, 01: 2.4K, 02: 4.8K, 03: 9.6K, 04: 19.2K 08 til 15 Frame format
Start Længde Stop Paritet 00: 1 bit 7 bit 1 bit Lige 01: 1 bit 7 bit 1 bit Ulige 02: 1 bit 7 bit 1 bit Ingen 03: 1 bit 7 bit 2 bit Lige 04: 1 bit 7 bit 2 bit Ulige 05: 1 bit 7 bit 2 bit Ingen 06: 1 bit 8 bit 1 bit Lige 07: 1 bit 8 bit 1 bit Ulige 08: 1 bit 8 bit 1 bit Ingen 09: 1 bit 8 bit 2 bit Lige 10: 1 bit 8 bit 2 bit Ulige 11: 1 bit 8 bit 2 bit Ingen
(Andre opsætninger vil medføre en ikke-fatal fejl og standardopsætningen bruges.)
0000 til 9999 mS. (Andre opsætninger vil medføre en ikke-fatal fejl og standardopsætningen (0000) bruges.)
00 til 07 Node nummer (Host link)
00 til 31 (BCD) (Andre opsætninger vil medføre en ikke-fatal fejl og standardopsætningen (00) bruges.)
08 til 15 Reserveret
00 til 03 Værdi
0: Skifter når 10 fejl er blevet gemt 1: Gemmer kun de 10 første fejl (ingen skift) 2 til F: Gemmer ikke fejl
04 til 07 Reserveret 08 til 11 Monitering af scantid enable(aktiv)
0: Opfatter lange scantider som ikke-fatale fejl 1: Reagerer ikke på lange scantider
12 til 15 Reserveret
15
Udgangssignalomrâde
Udgangssignalomrâde
Opløsning
Opløsning
Nøjagtighed
Indgangssignalområd
e
Indgangssignalområd
e
Opløsning
Nøjagtighed
Max.Indgangssigna
l
PCsigna
l
Isolation
CPM1 PLC Setup Afsnit 2--1
2-1-1 CPM1A--MAD01 Analog modul setup
Terminaler for externe forbindelser
9
Fælles indgang 2
Strømindgang 2
Fælles indgang 1
Spændings-­indgang 1
Strømudgang
Specifikationer
Antal analog udgange 1
Antal analoge indgange 2
Konverteringstid (Se note s. 17.) 10ms. max. / enhed Max. udgangsstrøm Spændingsudgang 5mA Max. belastningsmodstand Strømudgang 350W Max. total udgangsstrøm (enhed) 21mA
Eksterne forbindelser 9--pin klemmeblok (ikke aftagelig)
Strømforbrug
Dimensioner 66(B) x 90(H) x 50(D) mm Vægt 150 gram max.
8
6
4
2
Spændings--
7
indgang 2
5
Strømindgang 1
3
Fælles ud
Spændings--
1
udgang
Spændingsudgang
Strømudgang 4mA til 20mA
Spændingsudgang
Strømudgang 1/256 Spændingsudgang 1.0% max. (fuld skala) Strømudgang 1.0% max. (fuld scala)
Spændingsindgang
Strømindgang 4mA til 20mA Spændingsindgang 1/256 Strømindgang 1/256 Spændingsindgang 1.0% max. (fuld scala) Strømindgang 1.0% max (fuld scala)
Spændingsindgang Strømindgang
Spændings udgang 8--bit binær+fortegnsbit (80FF -- 0000 -- 00FF hexadecimal) Strømudgang 8--bit binær (0000 til 00FF hexadecimal)
Mellem ind/udgange og PC : Optokoblere Mellem udgangsterminalerne : Ingen 60mA max. (5VDC)
60mA max. (24VDC)
0V til +10V
--10V til +10V
1/256 (0V til +10V) 1/512 (--10V til +10V)
0V til +10V +1V til +5V
±15V 30mA
16
CPM1 PLC Setup Afsnit 2--1
Note Dette er tiden for en komplet opdatering af indgange og udgange på modulet.
-- Spændingsudgang og strømudgang kan bruges samtidig såfremt den samlede strøm ikke overstiger 21mA.
-- Data skrevet til udgangskanalen kan bruges til både strøm og spændingsudgang.
-- Data læst fra indgangskanalen kan bruges til strøm eller spændingsindgang.
Opsætning af dataområder
Efter opstart skal du definere dine dataområder. Disse områder opsættes ved at skrive FF0x til udgangskanalen på CPM1A--MAD01 (se tabellen nedenfor):
Område
Kode
FF00 0 til 10 V
FF01 --10 til 10 V
FF02 0 til 10 V
FF03 --10 til 10 V
FF04 0 til 10 V
FF05 --10 til 10 V
FF06 0 til 10 V
FF07 --10 til 10 V
Udgang Indgang1 Indgang 2
0 til 10 V 0 til 10 V
4 til 20mA
0 til 10 V 0 til 10 V
4 til 20mA
4 til 20mA
4 til 20mA
4 til 20mA
4 til 20mA
4 til 20mA
4 til 20mA
1 til 5 V
4 til 20mA
1 til 5 V
4 til 20mA
0 til 10 V 1 til 5 V
0 til 10 V 1 til 5 V
1 til 5 V
4 til 20mA
1 til 5 V
4 til 20mA
0 til 10 V
0 til 10 V
4 til 20mA
4 til 20mA
1 til 5 V
4 til 20mA
1 til 5 V
4 til 20mA
NOTE Start altid med opsætningen ved opstart af PLC, ellers vil CPM1A--MAD01 ikke konvertere ind og udgangene. Dette kan fx.
gøres ved, i første scan at flytte værdien ned i kanalen med en Move fun(21) funktion
Kanal allokation
CPU
10CDj
20CDj
30CDj
Udgangskanal
MAD01
11 1 2
11 1 2
12 2 3
Indgangskanal 1
MAD01
Indgangskanal 2
MAD01
17
CPM1 PLC Setup Afsnit 2--1
IR bit allokation
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
s/b x x x x x x x d d d d d d d d
Bruges ikke(0) databits
s: Fortegnsbit bit
0 positiv spændingsudgang 1 negativ Spændingsudgang
b: Ledningsbrud bit
0 Ingen ledningsbrud 1 Ledningsbrud
1. Fortegnet er kun gældende hvis området er sat til --10V til +10V.
2. Ledningsbrud bittet vil blive sat hvis der er valgt 1--5V/4--20mA som indgangsområde, og spændingen/strømmen kommer under 1V/4mA.
1
2
Fortrådning
Udgange Indgange
CPM1A--MAD01
Kabel_ Skærmet parsnoet
Spænding
Strøm
Spænding
Kabel: Skærmet parsnoet
Data
18
Udgang Spænding/strøm
Strøm
Indgang Spænding/strøm
Udgangsdata (Hexadecimal)
Indgangsdata (Hexadecimal)
CPM1 Interrupt Funktioner
Afsnit 2-2
2-2 CPM1 Interrupt Funktioner
Dette afsnit forklarer opsætning og metoder ved brug af CPM1 interrupt funk­tioner.
2-2-1 Interrupt typer
CPM1 har tre typer interrupts (afbrydelser), som beskrevet nedenfor.
indgangsinterrupt
CPM1 PLC’en har to eller fire interrupt indgange. Interrupt af programmet sker, når en af disse indgange går ON via et eksternt signal.
intervaltimer Interrupt
Interrupt af programmet udføres af en intervaltimer med en nøjagtighed på 0.1 mS.
High-speed tæller Interrupt
High-speed tælleren tæller pulser (indgang 00000 til 00002). Interrupt af pro­grammet sker, når tællingen når SV (Set Værdien) på den indbyggede high­speed tæller.
Interrupt prioritet Når et interrupt er genereret, udføres den angivne interrupt--subrutine. Inter-
rupts har følgende prioritetsrækkefølge.
indgangsinterrupt > Interval interrupt = High-speed tæller interrupt
Når et interrupt med en højere prioritet modtages, mens et andet interrupt er i gang, vil den igangværende interrupt--subrutine afbrydes, og interrupt--subruti­nen med den højere prioritet vil starte i stedet. Når denne rutine er afviklet, vil den afbrudte interrupt--subrutine genoptages.
Når et interrupt med lavere prioritet modtages, mens en rutine er i gang, vil det lavere prioriteret interrupt blive afviklet, når det med højere prioritet er afsluttet.
Når to eller flere interrupts med samme prioritet modtages samtidig, vil de blive udført i følgende rækkefølge:
indgangsinterrupt 0 > indgangsinterrupt 1 > indgangsinterrupt 2 > indgang­sinterrupt 3
Interval interrupt > High-speed tæller
interrupt indgange, som er benyttet tilinterrupt, kan ikke bruges som almindelige indgange.
High-speed tæller instruktioner og Interrupt
De følgende instruktioner kan ikke udføres i en interrupt subrutine, når den instruktion, som styrer high-speed tælleren, udføres i hovedprogrammet.
INI(61), PRV(62), eller CTBL(63)
Følgende metoder kan anvendes for at omgå denne begrænsning:
Metode 1
Al udførelse af interrupt kan udmaskes mens instruktionen udføres.
@INT(89)
100
000
000
INI(61)
000
000
000
@INT(89)
200
000
000
19
CPM1 Interrupt Funktioner
1, 2, 3... 1. Dette er en del af hovedprogrammet:
Afsnit 2-2
Metode 2
Udfør instruktionen igen i hovedprogrammet.
@PRV(62)
000
002
DM 0000
LR 0000
CTBL(63)
000
000
DM 0000
RSET LR 0000
2. Dette er en programdel af interrupt subrutine:
Note 1. Definer interrupt--subrutiner ved afslutningen af hovedprogrammet med
SBN(92) og RET(93) instruktioner, præcis som almindelige subrutiner.
2. Når man definerer en interrupt--subrutine, vil en “SBS UNDEFD” (subrutine­kald udefineret) fejl fremkomme under programcheck, men programmet vil udføres normalt alligevel.
2-2-2 Indgangsinterrupts
CPM1-10CDR-j PLC’en har to interrupt indgange (00003 og 00004), mens CPM1-20CDR-j og CPM1-30CDR-j PCs har fire interrupt indgange (00003 til
00006). Der er to modes for indgangsinterrupt: indgangsinterrupt mode og tæller mode.
25313
25313
SBN(92) 000
@CTBL(63)
000
000
DM 0000
LR
0000
20
CPM1-10CDR-j CPM1-20CDR-j og CPM1-30CDR-j
00003
00004
00005
00006
24VDC
00003
00004
NC
PLCmodelInd--
Interrupt
CPM1-10CDR-
j
0.3mSmax.
1kH
z
(Tidendergårtil
CPM1-20CDR-
j
udføres).
DM66280:Normalindgang1:Interruptindgang2:“Hurtigindgang
CPM1 Interrupt Funktioner
Afsnit 2-2
PLC model Ind--
CPM1-10CDR-j
CPM1-20CDR-j CPM1-30CDR-j
gang
00003 00 00004 01 00003 00 00004 01 00003 02 00004 03
Interrupt
nummer
Interrupt mode Tæller mode
0.3 mS max. 1 kHz (Tiden der går til
interruptprogrammet
Responstid (svartid)
Note Hvis indgangsinterrupt ikke bruges, kan indgangene 00003 til 00006 bruges
som almindelige indgange.
Indgangsinterrupt opsætning Indgangene 00003 til 00006 skal sættes til interrupt indgangei DM 6628, hvis de
skal anvendes til dette i CPM1. Sæt det tilsvarende bit til 1, hvis indgangen skal bruges som interrupt indgang (indgangsinterrupt eller tæller mode);Sæt bit til 0, hvis de skal bruges som almindelige indgange. (Normalopsætning = 0)
Ord Opsætning
Bit
15 0
DM 6628
Opsætning for 00006: Sæt til 1 Opsætning for 00005: Sæt til 1 Opsætning for 00004: Sæt til 1 Opsætning for 00003: Sæt til 1
Interrupt Subrutiner Interrupt fra indgangene 00003 til 00006 angiver interrupt numrene 00 til 03 og
kalder subrutinerne 000 til 003. Hvis indgangsinterrupt ikke bruges, kan subru­tinerne 000 til 003 bruges som almindelige subrutiner.
Indgangsnummer Interruptnummer Subrutinenummer
00003 0 000 00004 1 001 00005 2 002 00006 3 003
Indgangsopdatering Normalt opdateresindgangsbits iPLC--programmet kun een gang pr. scan, hvil-
ket kan give en lille unøjagtighed, hvis indgangsbits f.eks. benyttes i en inter­rupt--subrutine. Benyt evt. IORF(97) instruktionen i subrutinen, hvis nyeste sta­tus af indgange skal benyttes. Skal en udgang aktiveres øjeblikkeligt, benyt da igen IORF(97) i subrutinen til udgangsaktivering.
Indgangsinterrupt Mode Når signalet fra et indgangsinterrupt modtages, afbrydes hovedprogrammet og
interrupt--subrutinen udføres øjeblikkeligt, uanset hvornår interruptet mod­tages. Interruptsignalet skal være ON i mindst 200 mS for at blive detekteret.
Hovedprogram
Indgangsinter­rupt
Interrupt--subrutine
Hovedprogram
21
CPM1 Interrupt Funktioner
Afsnit 2-2
Brug følgende instruktioner til at programmere indgangsinterrupt, idet man bruger indgangsinterrupt Mode.
Interrupt med og uden afmaskning
Med instruktionen INT(89) kan interrupts maskes (gøres aktive) og afmaskes (gøres inaktive).
(@)INT(89)
000
000
Lav opsætning med ord D bit 0 til 3, svarende til indgangsin­terrupts 0 til 3.
0: Maske cleared. (Indgangsinterrupt aktiv) 1: Maske set. (Indgangsinterrupt inaktiv)
D
Alle indgangsinterrupts er masket (inaktive), når PLC’en sættes i RUN. Hvis ind­gangsinterrupt mode anvendes, så vær sikker på at få gjort indgangene aktive med INT(89) instruktionen, som vist ovenfor.
At afmaske Interrupts
Hvis det bit, der svarer til et indgangsinterrupt går ON, mens det er masket, vil det pågældende interrupt blive gemt i hukommelsen, og det vil da blive udført, så snart interruptet afmaskes. Hvis det indgangsinterrupt ikke skal blive udført efter afmaskning, skal interruptet cleares fra hukommelsen.
Der gemmes kun eet interruptsignal i hukommelsen for hvert interruptnummer. INT(89) instruktionen fjerner indgangsinterrupt fra hukommelsen således:
(@)INT(89)
001
000
Hvid Dbit 0 til 3, som svarer til indgangsinterrupt 0til 3,sættes til “1,” så fjernes indgangsinterrupt fra hukommelsen.
0: Indgangsinterrupt opretholdes. 1: Indgangsinterrupt fjernes.
D
Læsning af Maske Status
INT(89) instruktionen læser maskestatus for indgangsinterrupts således:
(@)INT(89)
002
000
Status for cifretlængst til højrei data gemti ord D(bit 0 til3) vis­er status for masken.
0: Mask cleared. (Indgangsinterrupt aktiv.) 1: Mask set. (Indgangsinterrupt inaktiv.)
D
Program eksempel
Når indgang 00003 (interrupt nr.0) gårON, gåroperationen øjeblikkeligttil inter­rupt programmet med subrutine nummer 000. Indgange i DM 6628 er sat til
0001.
25315 Første scan flag
ON i 1 scan
@INT(89)
000
indgangsinterrupt mask/afmask.
000
#000E
SBN(92) 000
RET(93)
Afmask00003(interrupt indgang 0), resten maskes.
Interrupt program
Tæller Mode Signaler fra interrupt indgange tælles, og et interrupt genereres, når tællingen
når den valgte set værdi. Når et interrupt genereres, afbrydes hovedprogram­met og interrupt--subrutinen udføres. Signaler op til 1 kHz kan tælles.
22
CPM1 Interrupt Funktioner
Afsnit 2-2
Hovedprogram
Indgangsinter­rupt
Interrupt--subrutine
Set Værdi (SV)
Hovedprogram
Brug følgende trin i programmet for at programmere indgangsinterrupt til tæller Mode.
1, 2, 3... 1. Programmer SV (set værdier) for tælleren i SR ordsom vist i følgende tabel.
SV skrives mellem 0000 og FFFF (0 til65,535). Enværdi på0000 gørtællin­gen inaktiv, indtil en ny værdi skrives og trin 2 nedenfor gentages.
Interrupt ord
Indgangsinterrupt 0 SR 240 Indgangsinterrupt 1 SR 241 Indgangsinterrupt 2 SR 242 Indgangsinterrupt 3 SR 243
SR ord, som bruges i tællermode (SR 240 til SR 243), indeholder hexadeci­male data, ikke BCD. Hvis tællermode ikkeanvendes, kandisse ordbruges som almindelige bits.
Note Disse SR ord resettes, når PLC’en sættes i RUN, og derfor skal de
indstilles i programmet.
2. INT(89) instruktionen opdaterer tæller mode set værdi og aktivering af inter­rupt.
(@)INT(89)
003
000
Hvis D bit 0 til 3, som passer til indgangsinterrupt 0 til 3, sættes til “0,” så vil SV blive opdateret og interrupt kan udføres.
0: Tæller mode SV opdateres, samt afmaskning.
D
1: Opdateres ikke.
Sæt det bit, der passer til “1”, hvis et indgangsinterrupt ikke skal aktiveres.
Det indgangsinterrupt, hvis SV opdateres, er aktiv og i tæller Mode. Når tællin­gen når SV, vil et interrupt genereres, tælleren resettes. Både tælling og inter­rupt fortsætter, indtil tælleren stoppes.
Note 1. Hvis INT(89) instruktionen udføres under tællingen, vil den aktuelle værdi
(PV) ændres tilSV. Derfor skal man anvende den flankestyrede (@) variant af instruktionen, for ellers genereres interruptet aldrig.
2. SV sættes, når INT(89) instruktionen udføres. Hvis interrupt allerede er i gang, så vil SV ikke ændres ved en ændring af indholdet i SR 240 til SR 243. Det vil sige, at hvis indholdet ændres, skal SV opdateres ved at udføre INT(89) instruktionen igen.
Interrupt kan maskes ved at bruge samme fremgangsmåde som ved indgang­sinterrupt mode, men hvis de maskede interrupt afmaskes med den frem­gangsmåde, vil interrupt virke i indgangsinterrupt mode og ikke i tæller mode.
Interrupt signaler som modtages for maskedeinterrupt kanogså afmaskes med den samme fremgangsmåde som ved indgangsinterrupt mode.
Tæller PV (aktuel værdi) i tæller Mode
Når der bruges indgangsinterrupts i tællermode, gemmes tællernes PV i de SR ord, der passer til indgangsinterrupt 0 til 3. Værdierne er 0000 til FFFE (0 til 65,534) og vil være lig med tællerens PV minus en.
23
CPM1 Interrupt Funktioner
Note Hvis indgangsinterrupt ikke anvendes i tæller mode, kan disse SR bits ikke
Afsnit 2-2
Interrupt ord
Indgangsinterrupt 0 SR 244 Indgangsinterrupt 1 SR 245 Indgangsinterrupt 2 SR 246 Indgangsinterrupt 3 SR 247
Eksempel: Den aktuelle værdi for et interrupt, hvis SV er 000A, vil opfattessom 0009, umiddelbart efter at INT(89) er udført.
bruges som almindelige bits.
Programeksempel
Hvis indgang 00003 (interrupt nr. 0) går ON 10 gange, går operationen øjeblik­keligt til interrupt--subrutinen med subrutine nummer 000. Den følgende tabel viser, hvor tællerens SV og PV--1 gemmes. Indgangene for DM 6628 er blevet sat til 0001.
Interrupt ord indeholdendeSVord indeholdende
Indgang 00003 (Indgangsin­terrupt 0)
Indgang 00004 (Indgangsin­terrupt 1)
Indgang 00005 (Indgangsin­terrupt 2)
Indgang 00006 (Indgangsin­terrupt 3)
25315 Første scan flag
ON i 1 scan
MOV(21)
@INT(89)
SBN(92) 000
RET(93)
SR 240 SR 244
SR 241 SR 245
SR 242 SR 246
SR 243 SR 247
#000A
#000E
Sætter SV til 10. (0000 til FFFF)
240
ord som indeholder SV (SR 240)
003
Opdaterer tæller SV.
000
Opdaterer kun SV for 00003 (interrupt indgang 0).
Interrupt--subrutine
PV--1
2-2-3 Afmaskning af alle interrupts
Brug INT(89) instruktionerne parvis, idet den første INT(89) instruktion masker og den anden afmasker interrupts.
Maskning af interrupts Brug INT(89) instruktionen til at gøre alle interrupts inaktive.
(@)INT(89)
100
000
000
Hvis et interrupt genereres, mens interrupts er maskede, vil interrupt af pro­grammet ikke udføres, men indgangs --, intervaltimer --, og high-speed tæller in­terrupts vil blive registreret, og derefter afviklet, så snart interrupts afmaskes.
24
CPM1 Interrupt Funktioner
Afmaskning af interrupt Brug INT(89) instruktionen til at afmaske interrupts som følger:
(@)INT(89)
200
000
000
2-2-4 Intervaltimer interrupt
CPM1 PLC’en er udstyret med en intervaltimer. Når intervaltimerens tid er udløbet, afbrydes hovedprogrammet, og interrupt--subrutinen udføres øjeblik­keligt.
Operation
Opstart i One-Shot Mode
Brug STIM(69) instruktionen til at starte intervaltimeren i one-shot mode.
Afsnit 2-2
(@)STIM(69)
C1: intervaltimer, one-shot mode (000)
C
1
C2: Timer SV (første ordadresse)
C
2
C3: Subrutine nr. (4 cifre BCD): 0000 til 0049
C
3
1, 2, 3... 1. Når C2programmeres som ord adresse:
C2: Tæl--ned tællers set værdi (4 cifre BCD): 0000 til 9999 C2+ 1: Tidsinterval for nedtælling (4 cifre BCD; enhed: 0.1 mS): 0005 til 0320 (0.5 mS til 32 mS).
Hver gang den tid, som intervallet er sat til i ord C2+ 1, er gået, vil tælleren tælle een ned. Når PV når 0, vil den angivne subrutine blive kaldt een gang , og timeren vil herefter standse.
Den måde tiden beregnes på, fra STIM(69) instruktionen udføres og indtil tiden er gået, er som følger: (Indhold i C2) ´ (Indhold i C2+ 1) ´ 0.1 mS = (0.5 til 319,968 mS)
2. Når C2programmeres som en konstant: Konstanten angiver tæl--ned tællerens set værdi, og tidsintervallet for
nedtælling vil være 10 ms.
Opstart i Tidsstyret Interrupt Mode
Brug STIM(69) instruktionen til at starte intervaltimeren i tidsstyret interrupt mode.
(@)STIM(69)
C1: intervaltimer, tidsstyret interrupt mode (003)
C
1
C2: Timer SV (første ord nr.)
C
2
C3: Subrutine nr. (4 cifre BCD): 0000 til 0049
C
3
1, 2, 3... 1. Når C2programmeres som en ord adresse:
C2: Tæl--ned tællers SV (4 cifre BCD): 0000 til 9999 C2+ 1: Tidsinterval for nedtælling (4 cifre BCD; enhed: 0.1 mS): 0005 til 0320 (0.5 mS til 32 mS)
Opsætningens betydning er den samme som i one-shot mode, men i tids­styret interrupt mode vil timeren resettes til SV og nedtællingen vil starte igen efter at subrutinen er blevetkaldt. Itidsstyret interruptmode vil interrupt fortsætte med de fastsatte intervaller, indtil timeren stoppes.
2. Når C2indskrives som en konstant: Opsætningens betydning er den samme som i one--shot mode, men inter-
rupt fortsætter med de fastsatte intervaller, indtil timeren stoppes.
25
programmeres.
CPM1 Interrupt Funktioner
Afsnit 2-2
Læsning af timerens PV tid (mellemtid)
Brug STIM(69) instruktionen til at læse timerens mellemtid.
(@)STIM(69)
C1: Læsning af mellemtid (006)
C
1
C2: Første ord i parameter 1
C
2
C3: Parameter 2
C
3
C2: Det antal gange, tælleren har talt ned (4 cifre BCD) C2+ 1: Tællerens tidsinterval (4 cifre BCD; enhed: 0.1 mS) C3: Den tid, der er gået fra sidste nedtælling. (4 cifre BCD; enhed: 0.1 mS)
Den måde tiden beregnes, fraintervaltimeren startede, til instruktionen udføres,
er som følger:
{(Indhold i C2) ´ (Indhold i C2+ 1) + Indholdi C3)}´ 0.1 mS = (0.5 til319,968 mS) Hvis den angivne intervaltimer stoppes, vil “0000” blive gemt.
At stoppe timeren
Brug STIM(69) instruktionen til at stoppe intervaltimeren. intervaltimeren stoppes således:
(@)STIM(69)
C
1
C1: Stop intervaltimer (010)
000
000
2-2-5 High-speed tæller Interrupt
CPM1 PLC’en har en high-speed tæller funktion, som kan bruges i en--kanal (optæller) mode eller to--kanal (op/ned) mode. High-speed tælleren kan gener­ere interrupts i henhold til en programmeret målværdi--tabel eller områdefor­valgstabel.
High-speed tællerens signaler er indgangene 00000 til 00002.
Mode Indgangsfunktioner Indgangsform Tælle--
Op/ned 00000: A-faseindgang
00001: B-faseindgang 00002: Z-faseindgang
Tæl op 00000: Tælle
Indgang 00001: Se note. 00002: Reset indgang
A/B--faserne faseforskudt 90 grader
Een pulsindgang 5.0 kHz max. 0
00000
24VDC
NC
Om--
frekvens
råde
2.5 kHz max. --32767 til 32767
til 65535
00001
00002
Styreform
Styring af målværdier: Op til 16 målværdier og interrupt subrutine numre kan
Områdeforvalg: Op til 8 stk. øvre grænseværdier, nedre grænseværdier og interrupt subrutine numre kan programmeres.
Note I optæller mode kan indgang (00001) bruges som almindelig indgang.
26
DM664
2
Funktio
n
CPM1 Interrupt Funktioner
Afsnit 2-2
High-speed tæller Opsætning Følgende opsætning skal laves i DM 6642, når man bruger CPM1’s high-speed
tæller funktion.
DM 6642
Bit
00 til 03 Bestemmer tæller mode:
0: Op/ned 4: Tæl op
04 til 07 Bestemmer reset metode:
0: Z-fase + software reset 1: Software reset
08 til 15 Benyt indgangene som high
speed tæller: 00: Tæller bruges ikke.
01: Tæller bruges.
Funktion
Tæl op Op/ned Ubenyttet
4 0 0 eller 4
0 eller 1 0 eller 1 0 eller 1
01 01 00
Opsætning
Tælle område CPM1’s high-speed tæller arbejder lineært og tællingen (PV) sker i SR 248 og
SR 249. (De fire højeste cifre i SR 248 og de fire mindste cifre i SR 249.)
Mode Tælle område
Op/ned F003 2767 til 0003 2767 (--32,767 til 32,767)
Tæl op 0000 0000 til 0006 5535 (0 til 65,535)
Cifret længst til venstre i SR 248 viser fortegn. F er negativ, 0 er positiv.
Der vil optræde overflow, hvis tællingenoverskrider øvregrænse itælleområdet og underflow, hvis tællingen passerer nedre grænse i tælleområdet.
Fejl Tæl op mode Op/ned mode Øjebliks
Overflow Fremkommer, hvis der
tælles over 65,535.
Underflow --- Fremkommer, hvis der
Fremkommer, hvis der tælles over 65,537.
tælles under 65,537.
værdi
0FFF FFFF
FFFF FFFF
Virkemåde To typer signaler kan bruges som pulsindgang. Tællerens mode afhænger af
signaltypen. Tælle mode og reset mode bestemmes i DM 6642. Disse opsætninger aktiveres, når PLC’en sættes i RUN.
Op/ned mode:
Der bruges tre indgangssignalerA-fase , B-fase og evt. Z-fase fra en encod­er. Tælleren tæller op eller ned afhængigt af forskellen i de to fasesignaler. Denne forskel bestemmes af, om encoderen drejer højre eller venstre om, som vist i nedenstående diagram.
Tæl op mode:
Der bruges eetpulssignal ( indgang 00000) ogevt. et reset signal. Tælleren tæller op styret af disse to signaler.
A-Fase
B-Fase
Tæl-­ling
Op/ned Mode
1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 0 --1 --2
Optælling Nedtælling
Pulsind­gang
Tæl-­ling
Tæl op
1 2 3 4
Kun optælling
Note En af de resetmetoder, der beskrives nedenfor, skal altid bruges inden genstart
af tælleren. Tælleren resettes automatisk, når PLC’en sættes i RUN.
27
CPM1 Interrupt Funktioner
Afsnit 2-2
Følgende signalgang medfører, at tælleren tæller op: A-Fase stigende flanke før B-Fase stigende flanke, og som følge heraf, A-Fase faldende flanke før B-Fase faldende flanke. Tælleren vil tælle ned, hvis B--Fasesignalet kommer før A--Fase signalet. Derfor: Drejer encoderen den ene vej, tælles der op, og drejer den den anden vej, tælles der ned.
Op/ned Mode er specielt bestemt for encodere. Encodere fremstilles med for­skellige antal pulser pr. omdrejning. Vælg derfor en encoder der passer sam­men med tællerens tælleområde og max. frekvens.
Reset Metoder
En af de to metoder, der beskrives nedenfor, kan anvendes til reset af tællerens PV (aktuel værdi).
Z-Fase signal + software reset:
PV resettes, når Z-Fase signalet (resetindgangen) går ON og High-speed tællerens resetbit (SR 25200) er ON.
Software reset:
PV resettes, når High-speed tællerens resetbit (SR 25200) går ON.
Z-Fase (re­setindgang)
SR25200
1/flere scan
Z-Fase signal + software reset
I en scan
Resettes af interrupt.
1 eller flere scan
Resettes ikke.
SR25200
I en scan
Resettes ikke.
Software reset
1 eller flere scan
Reset af scan.
Note High-speed tællerens resetbit (SR 25200) opdateres en gang i hvert scan. Der-
for skal det være ON i mindst et scan, hvis man skal være sikker på at resette. Encoderens Z--signal er en indikering af, at encoderen er drejet en omgang.
High-speed tæller Interrupt
Ved high-speed tæller interrupt, bruges en sammenligningstabel i stedet for en set værdi. Kontrol af tællingen kan udføres på en af de to måder, der beskrives nedenfor. I sammenligningstabellen gemmes sammenligningsbetingelser og kombinationer for interrupt--subrutiner.
Målværdi:
Et maximum på 16 sammenligningsbetingelser (tælleværdi, tælle-- retning og interrupt--subrutine) gemmes i sammenligningstabellen. Når tællerens PV og tælleretning passer til en målværdi, udføres den angivne interrupt-­subrutine.
Område (zone) for sammenligning:
I sammenligningstabellen gemmes 8 områder med nedre og øvre grænser samt interrupt--subrutine nummer. Når tællerens PV ligger indenfor et område, det vil sige lig med eller større end nedre grænse og lig med eller mindre end øvre grænse, udføres den angivne interrupt--subrutine.
Programmering Brug følgende fremgangsmåde ved programmering af high-speed tælleren.
High-speed tælleren begynder at tælle, når den korrekte opsætning i PLC Setup er programmeret, men sammenligninger med sammenligningstabellenog deraf følgende interrupt genereres ikke,medmindre CTBL(63) instruktionen udføres. High-speed tælleren resettes (nulstilles), når PLC’en sættes i RUN.
High-speed tællerens PV opbevares i SR 248 og SR 249.
28
CPM1 Interrupt Funktioner
1, 2, 3... 1. Brug CTBL(63) instruktionen til at aktivere sammenligningstabellen:
Afsnit 2-2
Styring af High-speed tæller Interrupt
(@)CTBL(63)
C: (3 cifre BCD)
P
000: Opsæt målværdier og start sammenligning
C
001: Opsæt områdeforvalg og start sammenligning
TB
002: Kun opsætning af måltabel 003: Kun opsætning af område
TB: Begyndelsesord for sammenligningstabel
Hvis C sættes til 000, så vil sammenligningen udføres med “målværdimeto­den”; og ved 001 vil sammenligningen udføres med “områdeforvalgsmeto­den. Sammenligningstabellen registreres og sammenligningen starter. Mens sammenligningen udføres, vil high-speed interrupt udføres i henhold til sammenligningstabellen. Der henvises til forklaringen på CTBL(63) instruktionen i Afsnit 5 Instruktionssæt.
Note Sammenligningsresultaterne lagres normalt i AR 1100 til AR 1107
mens områdeforvalgs--sammenligningen udføres.
Hvis C sættes til 002, vil sammenligningen bliveudført efter “målværdimeto­den”. Sættes C til 003, vil sammenligningen blive udført efter “områdefor­valgsmetoden”. Sammenligningen startes så med INI(61) instruktionen.
2. Sammenligningen standses ved at udføre INI(61) instruktionen som vist ne­denfor.
(@)INI(61)
000
001
000
Sammenligningen startes igen ved at sætte den anden operand til “000” (udfør sammenligning) og udføre INI(61) instruktionen.
Når tabellen er registreret, vil den opretholdes i CPM1, mens PLC’en er i RUN, indtil en anden tabel evt. registreres, eller sammenligningen stoppes med INI(61).
At læse PV (aktuel værdi)
Man kan læse PV på to måder. Enten læses den i SR 248 og SR 249, eller også bruges PRV(62) instruktionen.
At læse SR 248 og SR 249
High-speed tællerens PV lagres i SR 248 og SR 249 som vist nedenfor. Cifret længst til venstre er F for negative værdier og 0 for positive.
4 cifre til venstre 4 cifre til højre Op/ned Mode Tæl op Mode
SR 248 SR 249 F0032767 til 00032767
(--32767)
00000000 til 00065535
Note 1. Disse ord opdateres kun en gang i hvert scan, så derfor kan der være en
forskel i forhold til den øjeblikkelige PV.
2. Hvis high-speed tælleren ikke anvendes,kan bittenei disseord brugessom arbejdsbits.
Brugen af PRV(62) Instruktionen
At læse high-speed tællerens PV med PRV(62) instruktionen:
(@)PRV(62)
P1: Første ord i PV
000
000
P1
29
CPM1 Interrupt Funktioner
Afsnit 2-2
High-speed tællerens PV lagres som vist nedenfor. Cifret længst til venstre er F for negative værdier og 0 for positive.
4 cifre til venstre 4 cifre til højre Op/ned mode Tæl op mode
Eksempel på anvendelse (Tæl op mode)
P1+1 P1 F0032767 til 00032767
(--32767)
00000000 til 00065535
Den PV, der læses med PRV(62) instruktionen, er den aktuelle.
Ændring af PV (aktuel værdi)
High-speed tællerens PV kan ændres på to måder. Den ene er at resette (nul-­stille) med en af resetmetoderne, og den anden er at bruge INI(61) instruktio­nen. Metoden, hvor man brugerINI(61) instruktionen,er følgende:(med hensyn til resetmetoderne henvises til beskrivelsen af high-speed tælleren).
Ændring af timer PV med INI(61) instruktionen vises nedenfor.
(@)INI(61)
4 cifre til venstre 4 cifre til højre Op/ned Mode Tæl op mode
D+1
D
D: Første ord -- lagring af PV nye data
000
002
D
F0032767 til 00032767 00000000 til 00065535
Cifret længst til venstre er F for negative værdier og 0 for positive. Dette eksempel viser et program, hvor high-speed tælleren bruges med en en-
kelt indgang i Tæl op mode. Sammenligningerne laves efter “målværdimeto­den”.
Sammenligningsbetingelserne (målværdier og tælleretning) lagres i sammen­ligningstabellen med subrutine nummeret. Indtil 16 målværdier kan lagres. Den tilsvarende subrutine udføres, når tællerens PV passer til målværdien.
De følgende data gemmes til sammenligningstabellen:
DM 0000 0002 Antal målværdier i tabellen: 2 DM 0001 1000 Målværdi 1: 1000 DM 0002 0000 DM 0003 0030 Sammenligning 1 interrupt--subrutine nr.: 30 DM 0004 2000 Målværdi 2: 2000 DM 0005 0000 DM 0006 0031 Sammenligning 2 interrupt--subrutine nr.: 31
30
CPM1 Interrupt Funktioner
Afsnit 2-2
Det følgende ladder diagram viser et programmeringseksempel. DM 6642 skal sættes til 01j4, hvor j er resetmetoden, som kan sættes til 0 eller 1.
Eksempel på anvendelse (Op/ned Mode)
25315 (ON for first cycle)
CTBL(63)
000
000
DM 0000
SBN(92) 030
RET(93)
SBN(92) 031
RET(93)
Registrer målværditabel og start sammenlign. Første ord i sammenligningstabellen
Interrupt--subrutine 30
Interrupt--subrutine 31
Det følgende eksempel viser et program, hvor high-speed tælleren bruges med en encoder i op/ned Mode. Sammenligningerne laves som områdeforvalgs­sammenligninger.
Sammenligningsværdierne (øvre og nedre grænser for områderne) lagres i sammenligningstabellen sammen med subrutine nummeret. Der kan defineres indtil 8 adskilte områder. Den tilsvarende subrutineudføres, når tællerens PV er indenfor området.
Note Sæt altid 8 områder. Hvis der ikke erbehov for 8 områder, så sæt overskydende
subrutine numre til FFFF. En værdi på FFFF indikerer, at ingen subrutine skal udføres.
Følgende data lagres til sammenligningstabellen:
DM 0000 1500 DM 0001 0000 Nedre grænse 1: 1,500 pulser DM 0002 3000 DM 0003 0000 Øvre grænse 1: 3,000 pulser DM 0004 0040 Område 1 interrupt subrutine nr.: 40 DM 0005 7500 DM 0006 0000 Nedre grænse 2: 7,500 pulser DM 0007 0000 DM 0008 0001 Øvre grænse 2: 10,000 pulser DM 0009 0041 Område 2 interrupt subrutine nr.: 41 DM 0010 0000 DM 0011 0000 DM 0012 0000 DM 0013 0000 DM 0014 FFFF Område 3 interrupt subrutine udføres ikke . . . . . . . . . . . . . . . DM 0035 0000 DM 0036 0000 DM 0037 0000 DM 0038 0000 DM 0039 FFFF Område 8 interrupt subrutine udføres ikke
31
Kommunikationsfunktioner
Afsnit 2-3
Det følgende ladderdiagram viser et programmeringseksempel. DM 6642 skal sættes til 01j0, hvor j er resetmetoden, som kan sættes til 0 eller 1.
25315 (ON for first cycle)
CTBL(63)
000
001
DM 0000
SBN(92) 040
RET(93)
SBN(92) 041
RET(93)
Register sammenligningstabel, område mode Første ord i sammenligningstabellen
Interrupt--subrutine 40
Interrupt--subrutine 41
2-3 Kommunikationsfunktioner
CPM1 Kommunikation CPM1 kan udføre kommunikation på flere forskellige mådervia sinperifære port
med enten en RS-232C adapter eller en RS-422 adapter.
Host Link Kommunikation
CPM1 PLC’en kan deltagei et Host Link System, hvor op til32 PLC’er kan styres fra en host computer. Ved 1:1 kommunikation bruges en RS-232C adapter og ved 1:n kommunikation en RS-422 Adapter.
CPM1 udstyret med en RS-232C Adapter kan også kommunikere med en NT terminal (operatørpanel) ved anvendelse af host link kommandoer.
Der henvises til 2-3-1 CPM1 Host Link kommunikation i denne manual og 1-2-2 Host Link kommunikation i Operation Manual for yderligere detaljer.
1:1 Link
Et data--Linkkan opbygges ved at anvende LR--områderne i CPM1, CQM1,eller C200HS PLC’er. Der bruges en RS-232C adapter til denne 1:1--Link kommu­nikation.
Der henvises til 1:1--Link kommunikation i denne manual for yderligeredetaljer.
NT Link
Vedbrug af NT link kan CPM1 PLC’en forbindes til enNT terminal (NT Link Inter­face) via en RS-232C adapter. NT Link er en hurtigere kommunikation endHost Link.
Der henvises til 2-3-3 CPM1 NT Link kommunikation i denne manual foryderlig­ere detaljer.
2-3-1 CPM1 Host Link Kommunikation
Host link kommunikation blev udviklet af OMRON med det formål at kunne for­binde en computer til en eller flere PLC’er med et serielt kabel tilprogrammering eller datakommunikation. Normalt sender host computeren en kommando til PLC’en, og PLC’en sender automatisk et svar tilbage. På den måde gen­nemføres kommunikationen, uden at PLC’en tager aktiv del.
PLC Setup--opsætning Når CPM1 skal bruges i host link kommunikation, skal den perifære ports
opsætning være korrekt. Dette vises i PLC Setup tabellen section1--1--2, DM6650 til DM6653.
32
Kommunikationsfunktioner
2-3-2 CPM1 1:1--Link Kommunikation
I 1:1--Link er CPM1 linket sammen med en anden CPM1, en CQM1 eller en C200HS via en RS-232C adapter og et standard RS-232C kabel. En af PLC’erne i dette net er master og den anden er slave. I 1:1--Link kommunikeres der via 256 bit (LR 0000 til LR 1515) i de to PLC’er.
Et 1:1 CPM1 net Det følgende diagram viser 1:1--Link mellem to CPM1’ere.
RS-232C kabel
Afsnit 2-3
RS-232C Adapter (se note)
Skriv data
Læs data
LR00
LR07 LR08
LR15
Begrænsninger i 1:1--Link med CPM1
CPM1 CPU
RS-232C Adapter (se note)
CPM1 CPU
De ord, der bruges til 1:1--Link, vises nedenfor. Som det ses, får hver PLC 8 ord til at skrive i og 8 til at læse i. Master har LR00 til LR07 til at skrive i, og dem kan slaven så læse. Slaven skriver i LR08 til LR15, og dem kan master læse.
Master
Master skriver
Master læser
Slave
Slave læser
Slave skriver
LR00
LR07 LR08
LR15
Læs data
Skriv data
Det er kun de16 ord, LR00 til LR15,der kan anvendes med CPM1, også selv om der indgår en CQM1 eller C200HS. Disse to modeller har 64 ord, LR00 til LR63 som dataområde i 1:1--Link net.
PLC Setup--opsætning Kommunikationsopsætningsområdet vises i den følgende tabel. DM6650 skal
sættes til 0000 (standardopsætning) eller 0001.
Ord Bit Function Opsæt--
(Master)
DM 6650
00 til 07 Port opsætning
00: Standard (1 start bit, 7 databit, lige paritet, 2 stopbit, 9,600 bps) 01: Opsætning i DM 6651
08 til 11 Linkområde i 1:1 PLC net via perifær port
0: LR 00 til LR 15
12 til 15 Kommunikations mode
0: Host link; 2: 1:1--link (slave); 3: 1:1--link (master); 4: NT link
1
1
00 (valgfri)00(valgfri)
0 0
3 2
ning
Opsæt--
ning
(Slave)
(valgfri)
Note 1. Hvis opsætningen ikke er korrekt, vil en ikke--fatal fejl opstå, AR1302 går
ON, og standardopsætningen (0000) bruges.
2. For yderligere information om opsætning af andre OMRON PLC’er ved 1:1 Link henvises til de pågældende PLC’ers manual.
Programeksempel Dette eksempel viser et ladder program, hvor både master og slave kopierer
(MOV(21)) status i modpartens IR 000 til sin egen SR 200. Den ene PLC’s skri-
33
Kommunikationsfunktioner
Afsnit 2-3
veområde er den andens læseområde og omvendt.
Program i Master
25313 (Altid ON)
MOV(21)
MOV(21)
skriv
SR 200 IR 000
Read
LR00
LR07 LR08
LR15
Skrive-­område
Læse-­område
2-3-3 CPM1 NT Link Kommunikation
Ved at bruge NT link, kan CPM1 PLC’en kobles sammen med en programmer­bar terminal (operatørpanel) via en RS-232C adapter.
000
LR00
LR08
200
Læse-­område
Skrive-­område
Program i Slaven
25313 (Altid ON)
LR00
LR07 LR08
LR15
LæsIR 000
Skriv
MOV(21)
000
LR08
MOV(21)
LR00
200
SR 200
Programmerbar terminal
RS-232C kabel
CPM1 CPURS-232C adapter
CPM1 CPU
PLC Setup--opsætning Opsætning med hensyn til NT link kommunikation vises i den følgende tabel.
DM6650 skal sættes til 4000.
ord Bit Funktion Opsæt--
DM 6650
00 til 07 Port opsætning
1
00: Standard (1 startbit, 7 databit, lige paritet, 2 stopbit, 9,600 bps) 01: Opsætning in DM 6651
08 til 11 Linkområde for 1:1 PC net via perifær port
0: LR 00 til LR 15
12 til 15 Kommunikations mode
1
0: Host link; 2: 1:1 PLC link (slave); 3: 1:1 PC link (master); 4: NT link
ning
00 (valgfri)
0 (valgfri)
4
34
Note 1. Hvis opsætningen ikke er korrekt, vil en ikke--fatal fejl opstå, AR1302 går
ON, og normalopsætningen (0 eller 00) bruges.
2. For yderligere information om opsætning af andre OMRON PLC’er ved NT net henvises til de pågældende PLC’ers manual.
Afsnit 3
Specielle muligheder
Dette afsnit giver en introduktion til de specielle muligheder i CPM1 PLC’en: Analog justering via indbyggede potentio­metre og hurtig--indgange.
3-1 Analog justering 38. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-2 Indgange med kort svartid 38. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
Indgange med kort svartid
Afsnit 3-2
3-1 Analog justering
I CPM1 PLC’en overføres de analoge justeringspotentiometres værdi automa­tisk til SR 250 og SR251. Denne funktion er meget nyttig, hvis værdier skal kunne justeres, mens PLC’en er i RUN. Disse sætværdier kan ændres ved at dreje på dreje--potmetrene på CPU’en.
Opsætningen gemmes i BCDog gårfra 0000til 0200. Brug en lille skruetrækker til at justere potentiometrene. (Drej potmetrene med uret for at øge værdien).
CPM1 opsætning CPM1 PLC’en har to analoge potmetre. Det følgende diagram viser potmetrene
og de SR ord, der indeholder værdierne. Brug en phillips skruetrækker til at jus­tere.
Værdien for justering 0 er i SR 250. Værdien for justering 1 er i SR 251.
Bemærk Den analoge justering kan ændre sig med temperaturen. Brug ikke de analoge
!
potmetre i opgaver, der kræver nøjagtig justering.
CPM1 Programeksempel
Det følgende ladderdiagram bruger CPM1’s potmeter--værdier. Værdien i SR 250 (0000 til 0200 BCD) bestemmes ved indstilling af analog potmeter 0. Denne værdi bruges til at indstille timerens SV fra 0.0 til 20.0 sekunder.
Start betingelse
TIM 000
3-2 Indgange med kort svartid
CPM1-10CDR-j PLC’en har to hurtig--indgange med kort “svartid” og CPM1-20CDR-j/30CDR-j PLC’en har 4 hurtig--indgange med kort svartid. (De samme indgange bruges til hurtige indgange og interrupt indgange).
SR 250 er adresseret
TIM 000
som timerens set værdi.
01003
36
0.2mS
DM66280:Normalindgang
1:Interruptindgang2:“Hurtig--indgang”
Indgange med kort svartid
Afsnit 3-2
Hurtig svar operation Hurtig--indgange har et internt buffer register, således at indgangssignaler kor-
tere end et scan kan opfanges. Dette medfører, at pulser så korte som 0.2 mS opfanges uanset hvor i scan’et, de kommer.
Opsætning af indgange med korte svartider
Indgangs signal (00003)
IR 00003
Overvåg-­ning kører
Program udførelse
Et scan
I/O opdatering
Overvåg-­ning kører
Program udførelse
I/O opdatering
PLC model Indgangsbit Min. varighed af puls
CPM1-10CDR-j CPM1-20CDR-j/30CDR-j
IR 00003 til IR 00004 IR 00003 til IR 00006
0.2 mS
Indgangene 00003 til 00006 (00003 og 00004 i CPM1-10CDR-j PLC’en) kan sættes til hurtig--indgange med korte svartider i DM 6628, som vist i den følgende tabel.
Ord Opsætning
DM 6628 0: Normalindgang
1: Interrupt indgang
(Standardopsætning: 0)
DM 6628
Bit
15 0
Indgang 00006: Sæt til 2 Indgang 00005: Sæt til 2 Indgang 00004: Sæt til 2 Indgang 00003: Sæt til 2
programeksempel
DM 6628 er sat til 0002 (indgang 00003 hurtig--indgang).
25315 Første scan flag
ON i 1 scan
@INT(89)
000
Interrupt indgange med -- uden maske.
000
#000E
0003 afmaskes (interrupt indgang 0), resten maskes.
37
Indgange med kort svartid
Afsnit 3-2
38
Hukommelsesområder
Dette afsnit beskriver PLC’ens hukommelsesområder, og hvordan de anvendes.
4-1 CPM1 Hukommelsesområdets funktioner 42. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-1-1 Hukommelsesområdets opbygning 42. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-1-2 IR område 42. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-1-3 SR område 43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-1-4 TR område 43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-1-5 HR område 43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-1-6 AR område 43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-1-7 LR område 43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-1-8 Timer/Tæller--område 44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-1-9 DM område 44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Afsnit 4
39
områd
e
udgange
CPM1 Hukommelsesområdets funktioner
4-1 CPM1 Hukommelsesområdets funktioner
4-1-1 Hukommelsesområdets opbygning
Følgende hukommelsesområder eksisterer i CPM1.
Data område Ord Bit Funktion
IR område
SR område SR 232 til SR 255
TR område --- TR 0 til TR 7
HR område
AR område
LR område
Timer/tæller område2TC 000 til TC 127 (timer/tæller numre)
DM område
Indgangs--
1
område Udgangs--
område Arbejds--
område
2
2
1
Læs/skriv2DM 0000 til DM 0999
Fejl log
Læs kun
PLC Setup4DM 6600 til DM 6655
IR 000 til IR 009 (10 ord)
IR 010 til IR 019 (10 ord)
IR 200 til IR 231 (32 ord)
(24 ord)
HR 00 til HR 19 (20 ord)
AR 00 til AR 15 (16 ord)
LR 00 til LR 15 (16 ord)
DM 1022 til DM 1023 (1002 ord)
4
DM 1000 til DM 1021 (22 ord)
4
DM 6144 til DM 6599 (456 ord)
(56 ord)
IR 00000 til IR 00915 (160 bits)
IR 01000 til IR 01915 (160 bits)
IR 20000 til IR 23115 (512 bits)
SR 23200 til SR 25507 (384 bits)
(8 bits) HR 0000 til HR 1915
(320 bits) AR 0000 til AR 1515
(256 bits)
LR 0000 til LR 1515 (256 bits)
--- DM områdets data kan kun adresseres i
--- Bruges til at gemme tider for hændelser og
--- Kan kun læses af programmet. Der kan ikke
--- Bruges til at lagre de forskellige parametre
3
Disse bits kan tildeles eksterne indgange og udgange
Arbejdsbits kan frit benyttes i programmet (hjælperelæer)
Disse bits tjener specielle funktioner, så som flag og kontrol bits.
Disse bits bruges til at styre programdeles ON/OFF funktioner (forgreninger)
Disse bits er remanente. De opretterholder status ved spændingssvigt.
Disse bits tjener specielle funktioner, så som flag og kontrol bits. De opretholder sta­tus ved spændingssvigt.
Bruges til 1:1--link imellem 2 PLC’er. Kan alternativt anvendes som arbejdsbits.
De samme numre bruges til både timere og tællere. Tællere bevarer værdien ved spændingssvigt.
ord. Ordenes værdi er remanente, huskes ved spændingssvigt
fejlkoder. De kan bruges som almindelige læse/skrive DM, når datalogning ikke bruges
skrives til dem i programmet.
som bestemmer PLC Setup.
Afsnit 4-1
Note 1. IR og LR bits som ikke bruges til deres “normale” funktion, kan anvendes
som arbejdsbits.
2. Indholdet i HR område, AR område, tællerområde, og DM område har en kondensator som “batteri back--up”. Ved 25_C vil disse dataområders ind­hold kunne opretholdes i mindst 20 dage. Der henvises til 2-1-2 karakteri-- stikker i CPM1 Operation Manual for en grafisk fremstilling af backup--tiden som funktion af temperaturen.
3. Timere og tælleres PV (aktuelle værdi) optræder som ord, men deres kon­taktfunktioner (Completion Flags) optræder som bit.
4. Data i DM 6144 til DM 6655 kan ikke overskrives af et program, men de kan ændres med perifert udstyr (programmeringsudstyr).
4-1-2 IR område
IR områdets funktioner forklares nedenfor.
I/O bit IR område bit fra IR 00000 til IR 01915 er dedikeret til ind-- og udgange på
PLC’en. Indgangsbits starter med IR 00000, og udgangsbits starter med IR
01000. Bits der ikke benyttes til ind-- og udgange kan bruges som arbejdsbits.
40
CPM1-10CDR-
j
CPM1-20CDR-
j
CPM1 Hukommelsesområdets funktioner
Afsnit 4-1
Den følgende tabel viser, hvilke IR bits der er bestemt for I/O terminaler på hhv. CPM1’s CPU og CPM1-20EDR I/O udvidelsesenheder.
CPM1 CPU I/O CPU terminaler I/O udvidelse terminaler
CPM1-10CDR-j
CPM1-20CDR-j
CPM1-30CDR-j
Indgange 6 stk: 00000 til 00005 12 stk: 00100 til 00111 Udgange 4 stk: 01000 til 01003 8 stk: 01100 til 01107 Indgange 12 stk: 00000 til 00011 12 stk: 00100 til 00111 Udgange 8 stk: 01000 til 01007 8 stk: 01100 til 01107 Indgange 18 stk:
00000 til 00011, 00100 til 00105
Udgange 12 stk:
01000 til 01007, 01100 til 01103
12 stk: 00200 til 00211
8 stk: 01200 til 01207
Arbejds bits Arbejdsbits kan frit bruges i programmet, men de kan ikke bruges som ind-- og
udgangsbits.
4-1-3 SR område
Disse bits er hovedsagelig relaterettil CPM1funktioner eller indeholder preset -­og setværdier for et stort antal funktioner. Der henvises til de relevante dele i denne manual eller til Appendix A Hukommelsesområder.
SR 244 til SR 247 kan også bruges som arbejdsbits, hvis der ikke bruges ind­gangsinterrupt i tæller mode.
4-1-4 TR område
4-1-5 HR område
4-1-6 AR område
Hvis man programmerer komplicerede ladderdiagrammer eller “oversætter” nøgleskemaer til ladderdiagrammer, støder man ofte på knudepunkter. Vil man nødig ændre på strukturen, kan man klare problemet med TR--relæer (midlerti­dige relæer). Det er kun nødvendigt at kende disse relæer i mnemonics. Pro­grammerer man v.h.a. PC--software, såklarer denne selv oversættelsen til mne­monics, og dermed placeringen af nødvendige TR--relæer.
Et TR--relæ nummer kan kun bruges een gang indenfor samme instruktions­blok, men det kan bruges igen i andre blokke. Man kan ikke monitere status for TR bits, da deres status kun er nødvendig i den lille del af en scantid, hvor pro­grammet udfører lige præcis den adresse, hvor TR bit er skrevet.
Et eksempel, der viser brugen af TR--relæer, kan ses på side 89.
Disse bit opretholder deres status under spændingssvigt, eller når CPM1 sættes ud af RUN. De bruges som almindelige arbejdsbits, hvis man har pro­gramdele, der skal huske status, når spændingen vender tilbage, eller når PLC’en sættes i RUN igen.
Disse bits er hovedsageligt reserverettil flagi forbindelse med CPM1’sfunktion. De opretholder status på samme måde som HRbits. For yderligere detaljer hen­vises til et relevant afsnit i denne manual eller til Appendix A Hukommelses-- områder.
4-1-7 LR område
Bits i dette område bruges i forbindelse med 1:1--Link kommunikation, hvis CPM1 er koblet sammen med en CQM1, eller en C200HS PC. LR bits kan bruges som arbejdsbits, hvis de ikke bruges til 1:1--Link kommunikation.
41
CPM1 Hukommelsesområdets funktioner
Afsnit 4-1
4-1-8 Timer/Tæller--område
Dette område bruges til at håndtere timere og tællere fremstillet med TIM, TIMH(15), CNT,og CNTR(12) instruktionerne. De sammenumre bruges til både timere og tællere, men et nummer kan kun bruges een gang i et program.
TC numrene bruges endvidere som numre for de pågældende TC’s kontakter, og til deres SV ogPV--værdier. Hvis et TC--nummer bruges som ord,vil det hen­vende sig til PV--værdien. Bruges det som bit, vil det være TC--kontakten, altså det bit, der går ON, når tiden er gået, eller tælleren har talt færdig.
Der henvises til afsnittet om timere og tællere for nærmere detaljer.
4-1-9 DM område
DM områdets data er kun tilgængeligti ord--enheder.Man kanaltså ikkebenytte et DM bit som kontakt i sit program. Indholdet i DM området opretholder status på samme måde som AR og HR, altså ved spændingssvigt, og når PLC’en sættes ud af RUN.
DM området fra DM 0000til DM 0999samt DM 1022 og DM 1023kan fritbruges i programmet. Resten af området er forbeholdt bestemte funktioner, som be-­skrevet nedenfor.
Fejl--log DM 1000 til DM 1021 indeholder fejllognings informationer. Der henvises til Af-
snit 7 Problemløsning for detaljer angående fejl--logning.
PLC Setup DM 6600 til DM 6655 indeholder PLC Setup. Der henvises til 2-1 PLC Setup for
detaljer på side 13.
42
Afsnit 5
Instruktionssæt
CPM1 har et stort instruktionssæt, der gør det enklere at programmere indviklede styreprocesser. Denne sektion forklarer instruktionerne enkeltvis og er forsynet med ladderdiagram symboler, data områder og de flag, der bruges sammen med de enkelte instruktioner.
De mange instruktioner i denne PLC er samlet i underafsnit i forhold til deres instruktionsgruppe. Det vil sige, at de instruk­tioner, som naturligt hører sammen, er samlet i samme del. Disse grupper indeholder laddderdiagram instruktioner, instruk­tioner med fastsatte funtionskoder og instruktionssæt. Nogle instruktioner, som f.eks. timer-- ogtællerinstruktioner bruges til atstyre betingelserne til andreinstruktioner.Timerens kontakt (TIM CompletionFlag) bruges måske tilat starte en nyproces, når tiden erudløbet. Disseinstruktioner bruges typisk til at aktivere udgange (OUTPUTS), men de kan altså også bruges til at aktivere andre processer. Udgangsinstruktionerne i denne manuals eksempler kan normalt erstattes med andre instruktioner og derved bruges til at ændre programmet med hen­blik på specielle virkemåder.
5-1 Notation 47. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-2 Instruktioners format 47. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-3 Dataområder, definer værdier og flag 47. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-4 Flankestyrede Instruktioner 49. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-5 Instruktionstabel 50. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-5-1 Alfabetisk liste over Mnemonics 50. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-6 Ladderdiagram Instruktioner 52. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-6-1 LOAD, LOAD NOT, AND, AND NOT, OR, og OR NOT 52. . . . . . . . . . . . . . . . .
5-6-2 AND LOAD (OG BLOK) og OR LOAD (ELLER BLOK) 53. . . . . . . . . . . . . . . . .
5-7 Bit kontrolinstruktioner 53. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-7-1 UDGANG og INVERTERET UDGANG -- OUT og OUT NOT 53. . . . . . . . . . . . .
5-7-2 SET og RESET -- SET og RSET 54. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-7-3 KEEP -- (HOLDEFUNKTION) KEEP(11) 55. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-7-4 FLANKESTYRET OP OG NED -- DIFU(13) og DIFD(14) 55. . . . . . . . . . . . . . . .
5-8 INGEN FUNKTION -- NOP(00) 56. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-9 END -- END(01) 56. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-10 INTERLOCK OG INTERLOCK CLEAR -- IL(02) og ILC(03) 57. . . . . . . . . . . . . . . . . . . .
5-11 JUMP OG JUMP END -- JMP(04) og JME(05) 59. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-12 Brugerfejl instruktioner:
FEJL ALARM OG RESET -- FAL(06) og
ALVORLIG FEJL ALARM -- FALS(07) 60. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-13 Step instruktioner:
DEFINER STEP og START STEP--STEP(08)/SNXT(09) 61. . . . . . . . . . . . . . . . . . . . . . . . .
5-14 Timer og tæller instruktioner 63. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-14-1 TIMER -- TIM 64. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-14-2 TÆLLER -- CNT 65. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-14-3 REVERSIBEL TÆLLER -- CNTR(12) 66. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-14-4 HIGH-SPEED TIMER (1/100) -- TIMH(15) 67. . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-14-5 INTERVAL TIMER -- STIM(69) 68. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-14-6 OPRET SAMMENLIGNINGS TABEL -- CTBL(63) 69. . . . . . . . . . . . . . . . . . . . .
5-14-7 STYRE METODE -- INI(61) 72. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-14-8 LÆSNING AF HIGH-SPEED TÆLLER PV -- PRV(62) 73. . . . . . . . . . . . . . . . . .
5-14-9 DEFINER PULSER -- PULS(65) 73. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-14-10 UDSEND PULSTOG-- SPED(64) 74. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-15 Skifte Instruktioner 76. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-15-1 SKIFTEREGISTER -- SFT(10) 76. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-15-2 SKIFT ORD -- WSFT(16) 77. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-15-3 REVERSIBELT SKIFTEREGISTER -- SFTR(84) 77. . . . . . . . . . . . . . . . . . . . . . .
5-15-4 ASYNKRONT SKIFTEREGISTER -- ASFT(17) 79. . . . . . . . . . . . . . . . . . . . . . . .
43
5-16 Data Flytteinstruktioner 80. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-16-1 FLYT -- MOV(21) 80. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-16-2 MOVE INVERTERET -- MVN(22) 81. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-16-3 FLYT BLOK (OVERFØR) -- XFER(70) 82. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-16-4 SKRIV TIL EN BLOK -- BSET(71) 83. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-16-5 DATA BYT -- XCHG(73) 84. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-16-6 ENKELT ORD FORDELING -- DIST(80) 84. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-16-7 DATA INDSAMLING -- COLL(81) 86. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-16-8 FLYT BIT -- MOVB(82) 88. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-16-9 FLYT CIFRE -- MOVD(83) 89. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-17 Sammenligningsinstruktioner 90. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-17-1 SAMMENLIGNING -- CMP(20) 90. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-17-2 BLOK SAMMENLIGNING -- TCMP(85) 91. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-17-3 BLOK SAMMENLIGNING -- BCMP(68) 92. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-17-4 DOBBELT SAMMENLIGNING -- CMPL(60) 94. . . . . . . . . . . . . . . . . . . . . . . . . .
5-18 Konverteringsinstruktioner 95. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-18-1 BCD-TIL-BINÆR -- BIN(23) 95. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-18-2 BINÆR-TIL-BCD -- BCD(24) 95. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-18-3 4-TIL-16 DECODER -- MLPX(76) 96. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-18-4 16-TIL-4 ENCODER -- DMPX(77) 98. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-18-5 7-SEGMENT DEKODER -- SDEC(78) 100. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-18-6 ASCII KONVERTERING -- ASC(86) 103. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-19 BCD Beregningsinstruktioner 105. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-19-1 SET CARRY -- STC(40) 105. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-19-2 CLEAR CARRY -- CLC(41) 105. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-19-3 BCD ADDITION -- ADD(30) 105. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-19-4 BCD SUBTRAKTION -- SUB(31) 106. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-19-5 BCD MULTIPLIKATION -- MUL(32) 108. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-19-6 BCD DIVISION -- DIV(33) 109. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-19-7 DOBBELT BCD ADDITION -- ADDL(54) 110. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-19-8 DOBBELT BCD SUBTRAKTION -- SUBL(55) 111. . . . . . . . . . . . . . . . . . . . . . . . .
5-19-9 DOBBELT BCD MULTIPLIKATION -- MULL(56) 113. . . . . . . . . . . . . . . . . . . . . .
5-19-10 DOBBELT BCD DIVISION -- DIVL(57) 114. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-20 Logiske Instruktioner 115. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-20-1 LOGISK OG -- ANDW(34) 115. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-21 Increment/Decrement Instruktioner 116. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-21-1 BCD INCREMENT (DATA FORØGE) -- INC(38) 116. . . . . . . . . . . . . . . . . . . . . . .
5-21-2 BCD DECREMENT (DATA FORMINDSKE)-- DEC(39) 116. . . . . . . . . . . . . . . . .
5-22 Subrutine Instruktioner 117. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-22-1 KALD SUBRUTINE -- SBS(91) 117. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-22-2 SUBRUTINE DEFINERING og RETURN -- SBN(92)/RET(93) 119. . . . . . . . . . . .
5-23 Specialinstruktioner 119. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-23-1 VISNING AF MEDDELELSE -- MSG(46) 119. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-23-2 I/O OPDATERING -- IORF(97) 120. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-23-3 MACRO -- MCRO(99) 121. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-23-4 INTERRUPT STYRING -- INT(89) 122. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
Dataområder, Definer Værdier, og Flag Afsnit 5-3
5-1 Notation
I resten af denne manualrefererer alleinstruktioner tilderes mnemonic (instruk­tionslistenavn). En udgangsinstruktion (OUTPUT) vil f.eks blive kaldt OUT, og OG--BLOK--instruction (AND LOAD)for ANDLD. Hvisman ikkeer bekendtmed den instruktion, som enmnemonic anvendes til, henvises der til 5-5Instruktions- tabel på side 48.
Hvis der til en instruktion hører en funktionskode, vises denne i parentes efter mnemonic.
Et @ foran mnemonic indikerer, at det er den flankestyrede udgave af instruktio­nen. Flankestyrede funktioner forklares i Afsnit 5-4.
5-2 Instruktioners format
De fleste instruktioner har mindst en og nogle flere operander. Operander for­syner instruktionen med de data, denskal have,for at instruktionen kan udføres. Disse operander kan være i form af aktuelle numeriske værdier (det vil sige konstanter), men de er almindeligvis adresser i dataområder eller bits, som in­deholder de data, der skal bruges. Et bit, hvis adresse er bestemt som en oper­and, kaldes for et operand bit. Et ord, hvis adresse er bestemt som operand, kaldes for operand ord. I nogle instruktioner indikerer ordadressen i instruktio­nen det første af mange ord, som indeholder de nødvendige data.
Hver instruktion kræver mere end en adresse (ord)i programhukommelsen.Det første ord er selveinstruktionen (instruktionsord), som angiverinstruktion og op­eranden, som instruktionen kræver. Hvis der er flere operander, kommer disse efter hinanden i den rækkefølge. som den pågældende instruktion foreskriver. Nogle instruktioner kræver op til fire operander eller ord.
En definer er en operand, som hører sammen med en instruktion og indeholdt i det samme ord, som selve instruktionen.Disse operanderadresserer instruktio­nen i stedet for at fortælle, hvilke data den skal bruge. Eksempler på definere er TC numre, som bruges til at definere timerens eller tællerens nummer. Det samme gælder f.eks. for jump--instruktionen, hvor nummeret angiver, hvilken JUMP END instruktionen hører sammen med. Bit operander hører også sam­men med selve instruktionen, selv om de ikke kan sammelignes med definere.
5-3 Dataområder, definer værdier og flag
Denne sektion indeholder beskrivelsen af instruktionerne, deres ladderdiagram symbol, de dataområder, der kan bruges som operander og de værdier, der kan bruges som parametre. Detaljer med hensyn til dataområder er også angivet ved operandens navn, og den type data, som hver enkelt operand kræver (det drejer sig om bit eller ord, og for ord om deres værdi er hexadecimal eller BCD).
Det er ikke sikkert, at alle adresser i det angivne dataområde er tilladte som operander. Hvis en operand f.eks. kræver to ord, skal begge disse ord være i samme dataområde. Det kan så ikke lade sig gøre, at bruge det sidste ord i et dataområde som det første af de to ord. Der henvises til Sektion 4 Hukom- melses--områder angående adresseringsregler og adresser for flag og kontrol­bit.
Bemærk IR og SR områderne skal opfattes som separate dataområder. IR er de interne
!
relæer (bit), og SR er specielle relæer (bit). Selvom en operand kan adresseres til det ene område betyder det ikke nødvendigvis, at den også kan til det andet. Det er dog muligt at “passere” grænsen mellem de to dataområder. Hvis sidste bit i IR området bruges som operand i en instruktion, som kræver mere end et ord, kan SR området bruges som andet ord, hvis det i øvrigt er tilladt som oper­and. Dette er dog så specielt, at man nok bør tilstræbe at undgå det. Antallet af tilladte operander er så stort, at man nemt kan undgå dette.
45
Dataområder, Definer Værdier, og Flag Afsnit 5-3
Flag afsnittet viser en oversigtover deflag, somaktiveres (går ON) som resultat af en instruktion. Det drejer sig om følgende SR område flag.
Forkortelse Navn Bit
ER Error Flag (fejl) 25503 CY Carry Flag (matematisk Flag) 25504 GR Større end Flag (sammenligninger) 25505 EQ Lig med Flag (sammenligninger) 25506 LE Mindre end Flag (sammenligninger) 25507
ER er det flag,man almindeligvis moniterer. Hvis ER flaget gårON, indikerer det, at der er opståeten fejl ved forsøgetpå atudføre instruktionen. Flag afsnittet ved hver instruktionsbeskrivelse giver enoversigt over deårsager,der kanvære tilat flaget går ON. ER vilgå ON,hvis operander ikke er korrekte, og det medfører,at instruktionen ikke udføres.
Indirekte Adressering
Når et DM område bruges som operand, kan indirekte adressering anvendes. Indirekte DM adressering opnås ved at placere et asteriks foran DM: :DM.
I det viste eksempel, hvor MOV(21) har : DM 0001 som første operand og LR 00 som anden operand,ville MOV(21)uden indirekte adressering have medført, at indholdet i DM0001 ville blive flyttet til LR 00.Nu vil DM 0001’s indhold istedet fortælle, hvilken adresses indhold,der skal flyttes. Er indholdeti DM 0001= 1111, medfører det, at det bliver indholdet i DM 1111, der flyttes. Hvis DM 1111 inde­holder 5555, bliver det altså 5555, der flyttes til LR 00, og ikke 1111, som villle være resultatet uden :foran..
MOV(21)
:DM 0001
LR 00
Indirekte adressering
Ord Indhold
DM 0000 4C59 DM 0001 1111 DM 0002 F35A
DM 1111 5555 DM 1113 2506 DM 1114 D541
Indikerer DM 1111.
5555 flyttes til LR 00.
Konstanter som operander
46
Ved indirekte adressering skal man være opmærksom på, at værdien i det DM, som angiver adressen, skal være i BCD, og at værdien skal ligge indenfor det mulige område. Adresserer man iDM området,skal værdieni :DMvære iBCD og ligge mellem 0000 og 1999.
Dataområder bruges ofte som operander, men man kan også have brug for konstanter, altså talværdier. Skrives 130 som operand, betyder det IR ord 130. Skriver man derimod # 130, så betyder det talværdien 130. Størrelsen af kons­tanter, og om det er hexadecimal eller BCD, afhænger af den konkrete instruk­tion.
Flankestyrede Instruktioner Afsnit 5-4
5-4 Flankestyrede Instruktioner
De fleste instruktioner findes både i en flankestyret og en ikke--flankestyret ud­gave. Flankestyrede instruktioner genkendes på et@ foraninstruktionens mne­monic.
En ikke--flankestyret instruktion udføres i hvert scan, så længe betingelsen for­an instruktionen er ON. Enflankestyret instruktionudføres kuneen gangefter at betingelsen er gået ON. Skal denne instruktion udføres igen, kræver det, at be­tingelsen først går OFF og derefter ON igen. De følgende to eksempler viser, hvordan MOV(21) og @MOV(21) “arbejder”. Instruktionerne bruges til at flytte data fra den første operand til den anden.
00000
00000
Adresse Instruktion Operander
00000 LD 00000 00001 MOV(21)
HR 10 DM 0000
Adresse Instruktion Operander
00000 LD 00000 00001 @MOV(21)
HR 10 DM 0000
Diagram A
Diagram B
MOV(21)
HR 10
DM 0000
@MOV(21)
HR 10
DM 0000
I diagram A vil den ikke flankestyrede MOV(21) flytte indholdet i HR 10 til DM 0000 en gang i hvert scan, så længe 00000 er ON. Hvis scantiden f.eks. er 80 mS, og 00000 er ON i 2.0 sekunder, vil MOV(21) blive udført 25 gange, og kun den sidste værdi i HR 00 vil blive opbevaret i DM 0000. LR 00 kan have ændret værdi mange gange, og hvis man var interesseret i værdien lige da 00000 gik ON, er dette forhold uheldigt.
I diagram B vil den flankestyrede @MOV(21) kun flytte indholdet i HR 10 til DM 0000 een gang, lige når 00000 går ON. Selv om 00000 forbliver ON i længere tid, f.eks de 2 sekunder fra før, og scantiden igen er 80 mS, så vil instruktionen kun blive udført denne ene gang. Det medfører, at man nu får lige præcis den værdi, der var i HR10, da betingelsen gik ON. Denne værdi fastholdes indtil 00000 først går OFF og derefter ON igen.
Dette forhold skal manvære særlig opmærksom på ved matematiskeoperation­er. Bruger man her den ikke--flankestyrede instruktion, f.eks. i en addition, vil værdierne blive lagt sammen, så længe betingelsen er ON. Hvis tiderne er de samme som før,vil der altså blive foretaget 25 additioner,og detvar nokikke det man ønskede sig.
Alle operander og ladderdiagram symboler er de samme, uanset om den flan­kestyrede eller den ikke--flankestyrede instruktion anvendes. Instruktionens funktionskode er også den samme. Den eneste forskel er, om der er et @ eller ikke. De fleste men dog ikke alle ordinstruktionerne har begge varianter.
Der henvises til 5-10 INTERLOCK og INTERLOCK CLEAR -- IL(02) og IL(03) med hensyn til interlocks virkning på flankestyrede instruktioner.
CPM1 har yderligere to flankestyrede instruktioner: DIFU(13) og DIFD(14). DIFU(13) er en impulsafkortning, som virker på den måde, at når betingelsen der styrer DIFU(13) går ON, så går også det bit, som DIFU(13) styrer, ON, men kun i eet scan. Den virker altså på den ON--gående flanke.DIFD(14) harsamme funktion, bortset fra at den virker, når betingelsengår fraON til OFF, altsåpå den OFF--gående flanke. Der henvises til to 5-7-4 flankestyret op og ned - DIFU(13) og DIFD(14) for detaljer.
47
Instruktionstabel Afsnit 5-5
5-5 Instruktionstabel
5-5-1 Alfabetisk liste over Mnemonics
Mnemonic kode ord Navn CPU Side
ADD (@) 30 4 BCD ADDITION Alle 103 ADDL (@) 54 4 DOBBEL BCD ADDITION Alle 108 AND Ingen 1 OG Alle 50 AND LD Ingen 1 OG BLOK Alle 51 AND NOT Ingen 1 IKKE OG (OG INVERTERET) Alle 50 ANDW (@) 34 4 LOGISK OG Alle 113 ASC (@) 86 4 ASCII KONVERTERING Alle 101 ASFT(@) 17 4 ASYNKRONT SKIFTEREGISTER Alle 77 BCD (@) 24 3 BINÆR TIL BCD KONVERTERING Alle 93 BCMP (@) 68 4 BLOK SAMMENLIGNING Alle 90 BIN (@) 23 3 BCD TIL BINÆR KONVERTERING Alle 93 BSET (@) 71 4 BLOK SET Alle 81 CLC (@) 41 1 CLEAR CARRY (NULSTIL MENTEFLAGET) Alle 103 CMP 20 3 SAMMENLIGNING Alle 88 CMPL 60 4 DOBBEL SAMMENLIGNING Alle 92 CNT Ingen 2 TÆLLER Alle 63 CNTR 12 3 REVERSIBEL TÆLLER Alle 64 COLL (@) 81 4 DATAINDSAMLING Alle 84 CTBL(@) 63 4 INDLÆS SAMMENLIGNINGSTABEL Alle 67 DEC (@) 39 2 BCD TÆL--NED Alle 114 DIFD 14 2 ONE--SHOT PÅ NEDADGÅENDE FLANKE Alle 53 DIFU 13 2 ONE--SHOT PÅ OPADGÅENDE FLANKE Alle 53 DIST (@) 80 4 FORDELING AF ENKELT ORD Alle 82 DIV (@) 33 4 BCD DIVISION Alle 107 DIVL (@) 57 4 DOBBEL BCD DIVISION Alle 112 DMPX (@) 77 4 16-TIL-4 ENCODER Alle 96 END 01 1 END (SIDSTE INSTRUKTION I PROGRAM) Alle 54 FAL (@) 06 2 FEJL ALARM OG RESET Alle 58 FALS 07 2 ALVORLIG FEJL ALARM Alle 58 IL 02 1 INTERLOCK--OMRÅDE START (AFLÅS) Alle 55 ILC 03 1 INTERLOCK--OMRÅDE SLUT Alle 55 INC (@) 38 2 BCD TÆL--OP Alle 114 INI (@) 61 4 MODE KONTROL Alle 70 INT (@) 89 4 INTERRUPT STYRING Alle 120 IORF (@) 97 3 I/O OPDATERING Alle 118 JME 05 2 JUMP END Alle 57 JMP 04 2 JUMP Alle 57 KEEP 11 2 KEEP (SET--RESET FLIPFLOP) Alle 53 LD Ingen 1 LOAD Alle 50 LD NOT Ingen 1 LOAD INVERTERET Alle 50 MCRO (@) 99 4 MACRO Alle 119 MLPX (@) 76 4 4-TIL-16 DECODER Alle 94 MOV (@) 21 3 FLYT (KOPIER) Alle 78 MOVB (@) 82 4 FLYT BIT Alle 86 MOVD (@) 83 4 FLYT CIFFER Alle 87 MSG (@) 46 2 MEDDELELSE Alle 117
48
Instruktionstabel Afsnit 5-5
Mnemonic SideCPUNavnordkode
MUL (@) 32 4 BCD MULTIPLICERING Alle 106 MULL (@) 56 4 DOBBEL BCD MULTIPLICERING Alle 111 MVN (@) 22 3 FLYT INVERTERET Alle 79 NOP 00 1 INGEN OPERATION Alle 54 OR Ingen 1 ELLER Alle 50 OR LD Ingen 1 ELLER BLOK Alle 51 OR NOT Ingen 1 ELLER INVERTERET Alle 50 OUT Ingen 2 UDGANG Alle 51 OUT NOT Ingen 2 UDGANG INVERTERET Alle 51 PRV (@) 62 4 LÆS HIGH-SPEED TÆLLER VÆRDI Alle 71 PULS (@) 65 4 SPECIFICER PULSANTAL Alle 71 RET 93 1 SUBRUTINE SLUT Alle 117 RSET Ingen 2 RESET Alle 52 SBN 92 2 SUBRUTINE START Alle 117 SBS (@) 91 2 HOP TIL SUBRUTINE Alle 115 SDEC (@) 78 4 7-SEGMENT DEKODER Alle 98 SET Ingen 2 SET BIT Alle 52 SFT 10 3 SKIFTEREGISTER Alle 74 SFTR (@) 84 4 REVERSIBELT SKIFTEREGISTER Alle 75 SNXT 09 2 AKTIVER STEP Alle 59 SPED 64 4 DEFINER PULSFREKVENS Alle 72 STC (@) 40 1 SET CARRY (SÆT MENTEFLAGET) Alle 103 STEP 08 2 DEFINERER STEP START Alle 59 STIM (@) 69 4 INTERVAL TIMER Alle 66 SUB (@) 31 4 BCD SUBTRAKTION Alle 104 SUBL (@) 55 4 DOBBEL BCD SUBTRAKTION Alle 109 TCMP (@) 85 4 TABEL SAMMENLIGNING Alle 89 TIM Ingen 2 TIMER (1/10 S TIMER) Alle 62 TIMH 15 3 HIGH-SPEED TIMER (1/100 S TIMER) Alle 65 WSFT (@) 16 3 ORD SKIFT Alle 75 XCHG (@) 73 3 DATA UDVEKSLING Alle 82 XFER (@) 70 4 OVERFØR BLOK Alle 80
49
Ladder Diagram Instruktioner Afsnit 5-6
5-6 Ladderdiagram Instruktioner
Ladderdiagram instruktioner inkluderer ladderinstruktioner og logik blok instruk­tioner.Ladderdiagram erden mest anvendte diagramform, og vil blivebrugt her. Programmeringssoftwaren SYSWIN kan selv omsætte imellem de to diagram­former, hvis dette er ønskeligt.
5-6-1 LOAD, LOAD NOT, AND, AND NOT, OR, og OR NOT
Ladder Symboler Operand Data Områder
LOAD -- LD
LOAD NOT -- LD NOT
AND -- AND
AND NOT -- AND NOT
OR -- OR
OR NOT -- OR NOT
Begrænsninger
B
IR, SR, AR, HR, TC, LR, TR
B
IR, SR, AR, HR, TC, LR
B
IR, SR, AR, HR, TC, LR
B
IR, SR, AR, HR, TC, LR
B
B
IR, SR, AR, HR, TC, LR
IR, SR, AR, HR, TC, LR
B: Bit
B: Bit
B: Bit
B: Bit
B: Bit
B: Bit
Der er ingen begrænsninger i antallet af disse instruktioner og ingen regler for rækkefølge, så længe PLC’ens hukommelseskapacitet ikke overskrides.
Beskrivelse
Disse seks grundlæggende instruktioner anvendes i ladderdiagram, og der er stor lighed mellem dem, og slutte -- og brydekontakter (NO og NC) i nøgleske­maer. Der er i det hele taget stor lighed mellem et nøgleskema og et ladderdia­gram. En væsentlig forskel er, at nøgleskemaet er rent elektrisk. Der eraltså tale om, at strømmem får adgang til f.eks. en relæspole gennem serie -- og parallel­forbundne elektriske kontakter. Dette giver nogle klare begrænsninger. Ladder­diagrammet er også opbygget af serie -- og parallelforbundne symboler. Her er der ikke tale om elektriske kontakter, men derimod om logiske funktioner. Man skal ikke lede strømmen, menderimod etsignal fremtil denOUT (udgang),som afslutter et netværk (også kaldet RUNG). Signalet passerer disse grundinstruk­tioner,hvis det pågældende bit er ON. Der er dog den væsentligeforskel, athvor man i nøgleskemaet kun kan bruge en kontakt een gang, kan man i ladder dia­grammet bruge den samme bit lige så mange gange, som man har brug for.
De føromtalte BITS (B) fremkommer som resultat af f.eks. en afbryder status, eller status på en udgang. De kaldes for operander. Funktionen er følgende. LOAD er starten på et netværk. Den efterfølges af en AND eller OR. Hvis den næste funktion er en AND, betyder det, at de to operander serieforbindes. Er den næste funktion OR, parallelforbindes de to operander. AND er altså serie­forbindelse og OR parallelforbindelse. Bruges de inverterede instruktioner, LD NOT, AND NOT eller OR NOT, svarer det til NC--kontakter, altså til relæers bry­dekontakter.
Flag Der er ingen flag, der påvirkes af disse instruktioner.
50
ANDLOAD--ANDL
D
ORLOAD--ORL
D
UDGANG--OUT
INVERTERETUDGANG--OUT
Bit Kontrolinstruktioner Afsnit 5-7
5-6-2 AND LOAD (OG BLOK) og OR LOAD (ELLER BLOK)
Beskrivelse
00002
00003
Ladder Symbol
Ladder Symbol
00000
00001
00000 00001
00002 00003
Når instruktionerne sammensættes i blokke, kan man ikke opbygge sit ladder­diagram med de almindeligeinstruktioner, AND og OR. Her måman bruge AND LD eller OR LD. Hvor AND og OR, som før omtalt, undersøger om et BIT er ON eller OFF, og sætter det i serie eller parallelt med det foregående, gør AND LD det , at den sætter blokke i serie, og OR LD sætter blokke parallelt.
Når man tegner ladderdiagrammer v.h.a. programmeringssoftware, behøver man ikke interessere sig for AND LD og OR LD instruktionerne. Man kan blot tegne, så klarer softwaren selv “oversættelsen” til mnemonic (instruktionsliste). Bruger man derimod håndprogrammeringsudstyr, er det nødvendigt, at “pro­grammøren” kender disse instruktioner.
Flag Der er ingen flag, der påvirkes af disse instruktioner.
5-7 Bit kontrolinstruktioner
Der er syv forskellige instruktioner, der kan anvendes til almindelig kontrol af bits. Det er OUT, OUTNOT, DIFU(13), DIFD(14),SET, RSET,og KEEP(11).Dis­se instruktioner bruges til styre et bit ON eller OFF på forskellig måde.
5-7-1 UDGANG og INVERTERET UDGANG -- OUT og OUT NOT
Ladder Symbol Operand Data Områder
B: Bit
NOT
Begrænsninger
B
Ladder Symbol Operand Data Områder
B
Et output (udgangs) bit kan i almindelighed kun bruges (laves) een gang. Figur­erer en OUT flere gange i et program, vil man få syntaxfejl ved programcheck. Programmet vil dog kunne afvikles, men resultatet er sjældent det ønskede.
IR, SR, AR, HR, LR, TR
B: Bit
IR, SR, AR, HR, LR
Beskrivelse
OUT og OUT NOT bruges til at styre status for det tildelte bit i overensstem­melse med de operander, som placeres i ladderdiagrammet.
51
Bit Kontrolinstruktioner Afsnit 5-7
OUT kaldes ofte for udgange, uanset om de er udgange eller interne BITS, og funktionen er den, at hvis de operander, der styrer OUT er ON, vil udgangen gå ON. Er operanderne OFF, vil udgangen gå OFF. Hvis man har et netværk, der består af en LD og en OUT,kan kan styre OUT ON ved at sætte operanden til LD ON, og OFF ved at sætte operanden OFF. Består netværket af en kombination af serie -- eller parallelforbundne kontakter (operander), så er det denne kom­bination af kontakter, der bestemmer, om udgangen (OUT) sættes ON eller OFF. Ladderdiagrammets funktion er altså den samme, som nøgleskemaets.
OUT NOT virker præcis, som navnet siger, modsat OUT--instruktionen. De instruktioner, der er blevet omtalt, er hvad man har brug for ved konvertering
af et vilkårligt nøgleskema til ladderdiagram. Hvis der i nøgleskemaet optræder tidsrelæer, kan disse nemt erstattes med
PLC’ens timere.
Flag Der er ingen flag, der påvirkes af disse instruktioner.
5-7-2 SET og RESET -- SET og RSET
Ladder Symboler Operand Data Områder
B: Bit
IR, SR, AR, HR, LR
B: Bit
IR, SR, AR, HR, LR
Beskrivelse
SET B
RSET B
SET sætter en operand (udgang) ON, når kombinationen af kontakter foran instruktionen er ON. RSET sætter en operand OFF, hvis kombinationen foran instruktionen er ON. Funktionen er altså som navnet siger SET og RESET.
Funktionen er en “huskefunktion”. Når udgangen er sat med SET, forbliver den ON, indtil RESET funktionen aktiveres. Den erstatter altså “selvholdskredsløb”.
Forholdsregler Status for udgange styret af SET/RSET, somer programmeretmellem IL(02) og
ILC(03), følger ikke de almindelige regler. IL(02) har altså ingen indflydelse på disse udgange. Det samme gælder, hvis SET/RSET--instruktionerne er pro­grammeret mellem JMP(04) og JME(05).
Flag Der er ingen flag, der påvirkes af disse instruktioner. Eksempler De følgende eksempler viser forskellen mellemOUT og SET/RSET--instruktion-
erne. I det første eksempel (Diagram A), vil IR 10000 gå ON og OFF, hver gang IR 00000 går ON eller OFF.
I det andet eksempel (Diagram B), vil IR 10000 gå ON, når IR 00001 går ON og forbliver ON, selv om IR 00001 går OFF. Først når IR 00002 går ON, vil IR 1000 gå OFF.
52
00000
00001
00002
Diagram A
Diagram B
10000
SET 10000
RSET 10000
Adresse
Adresse Instruktion Operander
Instruktion Operander
00000 LD 00000 00001 OUT 10000
00000 LD 00001 00001 SET 10000 00002 LD 00002 00003 RSET 10000
LadderSymbolOperandDataOmråde
r
Bit Kontrolinstruktioner Afsnit 5-7
5-7-3 KEEP -- (HOLDEFUNKTION) KEEP(11)
S
R
KEEP(11)
B
B: Bit
IR, SR, AR, HR, LR
Begrænsninger
Udgange (output bits) kan almindeligvis kun bruges een gang sammen med KEEP(11) instruktionen.
Beskrivelse
KEEP(11) virker påsamme måde, som SET/RSET--funktionen. Den enestefor­skel er programmeringen. Hvor SET ikkenødvendigvis efterfølges af RSET,sid­der S og R på KEEP(11) lige efter hinanden. Man kalder den første indgang for SET--indgangen (S), og den anden for RESET--indgangen (R), og funktionen er som indgangsnavnene siger. Hvis S går ON, går udgangen, der styres af funk­tionen ON, og husker dette, indtil R går ON.
Hvis både S og R er ON samtidig, vil R--indgangen bestemme, med det resultat at udgangen går OFF. Mansiger at KEEEP(11)har reset--dominans. Det eraltså den samme virkemåde, som mankender fra start/stopmed holdekreds.Trykker man her på både start og stop samtidig, vil relæet ikke trække. Nedenstående funktionsdiagram viser KEEP(11)’s funktion.
S udførelsesbetin­gelse
R udførelsesbetin­gelse
Status for B
Flag Der er ingen flag, der påvirkes af denne instruktion.
Forholdsregler
Udvis forsigtighed, hvis RESET på KEEP styres af en NC ekstern kontakt, og denne RESET stammer fra en AC strømforsyning. Tidsforsinkelsen, når man slukker for PLC’ens DC strømforsyning i forhold til AC strømforsyningen, kan medføre, at KEEP(11) resetter. Denne situation vises nedenfor.
Indgangsmodul
A
Aldrig
A
S
R
KEEP(11)
B
Udgange styret af KEEP(11), resettes ikke af IL(02). Se evt. afsnittet INTER­LOCK og INTERLOCK CLEAR.
5-7-4 FLANKESTYRET OP OG NED -- DIFU(13) og DIFD(14)
Ladder Symboler Operand Data Områder
DIFU(13) B
DIFD(14) B
B: Bit
IR, SR, AR, HR, LR
B: Bit
IR, SR, AR, HR, LR
53
Bit Kontrolinstruktioner Afsnit 5-7
Begrænsninger
Udgange kan almindeligvis kun bruges en gang sammen med DIFU(13) og DIFD(14).
Beskrivelse
DIFU(13) og DIFD(14) sætter udgangen ON i et scan, når indgangsbetingelsen går henholdsvis ON og OFF.
Når DIFU(13) styres ON af udførelsesbetingelsen, d.v.s. på betingelsens posi­tivgående flanke, vil den sætte udgangen ON, men kun i eet scan. Uanset hvor længe betingelsen forbliver ON, vil udgangen kun være ON i et scan. For at ud­gangen skal kunnegå ON igen, må betingelsen først gåOFF, og derefter gåON igen.
Hvor DIFU(13) styres ON af et positivgående signal,styres DIFD(14)af et nega­tivgående, altså af et signal, der går OFF. Ellers er virkemåden den samme for de to instruktioner.
Instruktionerne anvendes med flere formål. Når ordinstruktioner kun skal udføres een gang, kan man enten vælge at bruge @--instruktionerne eller lade dem styre af DIFU eller DIFD. En anden situation, hvor instruktionerne med for­del kan anvendes, er hvor man ønsker en impulsafkortning. Skal man f.eks. have en tæller resat (nulstillet), når en føler påvirkes, og tælleren skal tællemed det samme, kan man lade føleren styre en DIFU(13). Så har det ingen betyd­ning, at føleren måske er påvirket i længere tid.
Flag Der er ingen flag, der påvirkes af denne instruktion.
Forholdsregler
DIFU(13) og DIFD(14) skal normalt ikke programmeres mellem IL og ILC, JMP og JME, eller isubrutiner.Der henvises til INTERLOCK ogINTERLOCK CLEAR
-- IL(02) og ILC(03), JUMP og JUMP END -- JMP(04) og JME(05), Subrutine
Instruktioner, og INTERRUPT Kontrol -- INT(89).
Eksempel
I dette eksempel vil IR 10014 gå ON i eet scan, når IR 00000 går fra OFF til ON, og IR 10015 vil gå ON i eet scan, når IR 00000 går fra ON til OFF.
00000
DIFU(13) 10014
DIFD(14) 10015
Adresse
Instruktion
00000 LD 00000 00001 DIFU(13) 10014 00002 DIFD(14) 10015
5-8 INGEN FUNKTION -- NOP(00)
Beskrivelse
Flag Der er ingen flag, der påvirkes af denne instruktion.
NOP(00) bruges normalt ikke i programmer. Hvis NOP(00) findes i et program, påvirkes programmet ikke, og afviklingen fortsætter med næste instruktion. Når programmer slettes i hukommelsen, skrives NOP(00) på alle adresser, og det betyder så blot, at hukommelsen er tom ogklar til et nyt program. Man indlægger NOP(00) med 00 funktionskoden. Det har dog, som tidligere nævnt, ingen an­den effekt, end at man laver en “tom” adresse.
5-9 END -- END(01)
Ladder Symbol
Operander
END(01)
Beskrivelse
54
END(01) skal bruges somsidste instruktion i alleprogrammer.Hvis der er subru­tiner, skal END(01) anbringes efter den sidste subrutine. END(01) er den sidste instruktion, der læses. Herfra startes forfra med den første adresse igen. Dette kan man udnytte. Har man et større program med fejlfunktion, eller et program,
INTERLOCK og INTERLOCK CLEAR - IL(02) og ILC(03) Afsnit 5-10
som man ønsker at afprøve i mindre “bidder”, kan man indsætte en midlertidig END(01). Det medfører, at kun den del, der ligger foran END(01) udføres. Man kan så slette de midlertidige END--instruktioner efterhånden, som man bliver færdig med fejlfinding eller afprøvning.Denne fremgangsmåde kendes også fra relæteknik, hvor man f.eks afprøver styrestrømmen inden hovedstrømmen sluttes til, eller kobler hovedstrømmen fra under fejlfinding.
Hvis der mangler en END(01) i programmet vil man få en fejlmelding, og pro­grammet kan ikke overføres til PLC’en.
Flag END(01) sætter ER, CY, GR, EQ, og LE flagene OFF.
5-10 INTERLOCK OG INTERLOCK CLEAR -- IL(02) og ILC(03)
Beskrivelse
Ladder Symbol
Ladder Symbol
IL(02)bruges altid sammen med ILC(03) for at skabe et interlockområde. Inter­locks betyder “gribe ind i” eller “aflåse”, og formålet med den er at aflåse et område af programmet. Når betingelsen foran IL(02) er ON, virker programmet imellem IL(02) og IL(03) som normalt,men hvisbetingelsen foran IL(02) er OFF, går alle udgange imellem IL(02) og ILC(03) OFF. Man kan altså, på en enkelt måde, lave en overordnetstopfunktion, f.eks. nødstop for endel af eller helepro­grammet. Først når betingelsen foran IL(02) går ON igen, virker programmet in­denfor området. (Samme funktion kan i øvrigt opnås med TR, temporære (mid­lertidige) relæer.
Hvis betingelsen foran IL(02) er OFF, kan virkemåden ses i følgende skema.
Instruktion Handling
OUT og OUT NOT Bit (udgang) går OFF. TIM og TIMH(15) Reset. CNT, CNTR(12) PV huskes. KEEP(11) Bit status huskes. DIFU(13) og DIFD(14) Udføres ikke (se nedenfor). Alle andre instruktioner Instruktionerne udføres ikke, og alle IR, AR, LR, HR, og
SR bit og ord går OFF.
IL(02)
ILC(03)
DIFU(13) og DIFD(14) i Interlocks
IL(02) og ILC(03) optræder ikke nødvendigvis i par. ILC(03) kan godt være fælles for flere IL(02). Man kan altså konstruere et program, hvor der er flere af­snit, som styres af hver sinIL(02), ogsom såhar en fælles ILC(03) ved afslutnin­gen på programmet. IL(02)’s område rækker indtil den “ser” en ILC(03). Man skal blot være opmærksom på resultatet. Det er som regel lettest at få overblik over programmet, hvis man opdeler programmet, således at hver IL(02) får sin egen ILC(03).
Ændringer i betingelserne for DIFU(13) eller DIFD(14) registreres ikke, hvis DIFU(13) eller DIFD(14) befindersig i et interlockafsnit og betingelserne er OFF. Hvis betingelserne for DIFU(13) eller DIFD(14) indenfor et IL--område var ON umiddelbart før betingelsenfor IL(02) går ON, vilDIFU(13) eller DIFD(14) betin­gelser blive sammenlignet med de betingelser, der var umiddelbart før IL(02) blev aktiv. (Det vil sige før betingelsen for IL(02) gik OFF). Ladderdiagrammet
55
INTERLOCK og INTERLOCK CLEAR - IL(02) og ILC(03) Afsnit 5-10
og funktionen vises nedenfor. Interlock er aktiv, hvis 00000 er OFF. Bemærk, at 01000 er ON i punktet A selv om 00001 er gået OFF og derefter igen ON.
ON
00000
00001
01000
OFF
ON
OFF
ON
OFF
Forholdsregler
00000
00001
IL(02)
Adresse Instruktion Operander
00000 LD 00000
DIFU(13) 01000
ILC(03)
A
00001 IL(02) 00002 LD 00001 00003 DIFU(13) 01000 00004 ILC(03)
Der skal altid være enILC(03), hvis der er programmeret en IL(02). ILC(03)kan være fælles for flere IL(02).
Der kan altså være flere IL(02)’er efter hinanden. Der kan derimod aldrig være flere ILC (03)’er efter hinanden. Har der været en ILC(03), skal der komme en IL(02), inden den næste ILC(03).
Hvis en ILC(03) erfælles for flere IL(02)’er,vil der fremkomme en fejlmelding ved et program check, men programmet vilblive accepteret og virke som beskrevet ovenfor.
Flag Der er ingen flag, der påvirkes af denne instruktion.
Eksempel Det følgende program viser, hvordan IL(02) kan programmeres to gange med
kun een ILC(03).
00000
00001
00002
00003
00100
00005
00004
CP
R
IL(02)
TIM 127
#0015
IL(02)
CNT
001
IR 010
00502
ILC(03)
001.5 S
Adresse
00000 LD 00000 00001 IL(02) 00002 LD 00001 00003 TIM 127
00004 LD 00002 00005 IL(02) 00006 LD 00003 00007 AND NOT 00004 00008 LD 00100 00009 LD 00100 00010 CNT 001
00011 LD 00005 00012 OUT 00502 00013 ILC(03)
Instruktion
Operander
# 0015
010
Når betingelsen for den første IL(02) er OFF, vil TIM 127 blive nulstillet til 1.5 S, CNT 001 vil forblive uændret, og 00502 vil gå OFF. Når betingelsen for den første IL(02) er ON, og betingelsen for den anden IL(02) er OFF, vil 00001 styre TIM 127, CNT 001 vil stadig forblive uændret, og 00502 vil gå OFF. Hvis betin­gelserne for begge IL(02) er ON, vil programmet virke som om IL--funktionerne ikke var programmeret.
56
LadderSymbolerDefinerVærdie
r
JUMP og JUMP END - JMP(04) og JME(05) Afsnit 5-11
5-11 JUMP OG JUMP END -- JMP(04) og JME(05)
Begrænsninger
Beskrivelse
JMP(04) N
JME(05) N
Jump numrene 01 til 49 må kun bruges een gang i forbindelse med JMP(04) og een gang i forbindelse med JME(05). Det vil sige, at hvert jump får sit eget jump nummer.Jump nummer 00 kan bruges så mange gangeman måttehave lysttil.
Jump numre går fra 00 til 49. JMP(04) skal altid bruges sammen med JME(05). Sammen laver de en jump--
funktion. JMP(04) definerer begyndelsen og JME(05) definerer afslutningen på jump--området. Når betingelsen for JMP(04) er OFF, udføres instruktionen ikke og programmet udføres som om JMP(04) og JME(05) ikke var i programmet. Når betingelsen for JMP(04) går ON, udføres et hop indtil den adresse, hvor JME(05) med det samme jump--nummer er programmeret, og derefter går pro­grammet videre med instruktionen efter JME(05) . Jump instruktionen er altså en “spring over” instruktion, idetden virkerpå den måde, at den programdel, der ligger mellem JMP(04) og JME(05), slet ikke læses.
Hvis jump numrene for JMP(04) ligger mellem 01 og 49, vil programmet gå di­rekte til JME(05) med det samme nummer, uden at udføre instruktionerne in­denfor området. Det medfører, at hele den programdel, der ligger indenfor området forbliver uændret, fastfryses, sålænge jump instruktionen er aktiv. Samme funktion kan opnås på andre måder, men den store fordel ved jump-­metoden er, at da programmet indenfor området slet ikke læses, vil det forkorte scantiden. Dette gælder for numrene 01 til 49.
Jump Nummer 00
Hvis JMP(04)gives 00, og betingelsen er ON, vil CPU’en søge efter JME(05) med jump nummer 00. Det medfører, at den skal søge gennem hele program­met, og det betyder længere scantid end med de andre jump numre.
Status for timere, tællere, udgange, og al anden status indenfor området styret af JMP(04) 00 og JME(05) 00 forbliver uændret. Jump nummer 00 kan bruges så mange gange, man har behov for. Et jump fra JMP(04) 00 går altid til det næste JME(05) 00 i programmet. Derfor er det muligt, at placere flere JMP(04) 00 efter hinanden og så bruge en fælles JME(05) 00. Der er ingen fornuft i at placere flere JME(05) 00 efter hinanden, da alle jump med nummer 00 vil søge efter den første JME(05) 00.
N: Jump nummer
#
N: Jump nummer
#
DIFU(13) og DIFD(14) i Jumpfunktioner
Forholdsregler
Skønt DIFU(13) og DIFD(14) er fremstillet til at give en puls af en scantids længde, er det ikke sikkert, at de vil virke, hvis de ligger indenfor et område afgrænset af JMP(04) og JME(05).Et bitstyret af DIFU(13) eller DIFD(14), som er gået ON, vil normalt være ON i et scan og derefter gå OFF. For at det samme bit kan gå ON igen skal betingelsen først gå OFF, og derefter gå ON igen. Hvis DIFU(13) eller DIFD(14) er placeret indenfor et jump,og detbit, destyrer, er ON, når jump bliver aktivt, vil bittet forblive ON, og bruges bittet så udenfor det aktive JMP(04) til JME(05) område, så vil dette bit forblive ON, indtil det pågældende jump bliver gjort uaktivt igen.
Når flere JMP(04) “benytter” samme JME(05), vilder kommeen fejlmelding, når der udføres program check. Det samme gælder vedJMP(04) 00 og JME(05) 00, men programmet vil blive accepteret og virke.
57
LadderSymbolerDefinerDataOmråde
r
Brugerfejl Instruktioner Afsnit 5-12
Flag Der er ingen flag, der påvirkes af disse instruktioner.
Eksempler Eksempler på jump programmer vises i afsnittet om Jump.
5-12 Brugerfejl instruktioner:
FEJL ALARM OG RESET -- FAL(06) og ALVORLIG FEJL ALARM -- FALS(07)
Beskrivelse
@FAL(06) NFAL(06) N
FALS(07) N
Formålet med FAL(06) og FALS(07) er, at brugeren kan få vist fejlnumre ved vedligeholdelse og fejlfinding. Fejl nummereres fra 01 til 99. Når fejlbetingelsen for enten FAL(06) eller FALS(07) går ON, vil fejlnummeret blive indlæst i FAL-­området, som er ord SR253 bit 00 til 07. Her kan lagres indtil tre fejlnumre. FAL(06) med nummer 00 bruges til at resette dette område. (se nedenfor).
FAL Område
25307 25300
1
X10
N: FAL nummer
# (00 to 99)
N: FAL nummer
# (01 to 99)
0
X10
FAL(06) frembringer en ikke fatal fejl og FAL(07) frembringer en fatal fejl. Hvis FAL(06)går ON,vil ALARM/ERROR lampen på forsiden af CPU’en blinke, men PLC’en vil fortsætte i RUN. Hvis FALS(07) går ON, vil ALARM/ERROR lampen lyse og PLC’en vil stoppe.
SR253 bit 00 til 07 bruges også til andre fejl, så som f.eks. batterifejl.
Reset af fejl
Der kan opbevares indtil tre fejlkoder i hukommelsen. Kun een er tilgængelig i FAL området. For at få adgang til de andre, skal man resette med FAL(06) 00. Hver gang man resetter med FAL(06) 00 , flyttes en ny FAL til FAL området, og den foregående resettes.
FAL(06) 00 bruges også til i forvejen at fjerne beskeder, programmeret med instruktionen, MSG(46).
Hvis FAL området ikke kan cleares (resettes), hvilket er normalt ved en FALS(07) , skal man først fjerne årsagen til fejlen og derefter cleare (resette) FAL området ved hjælp af programmeringssoftwaren.
58
Step Instruktioner Afsnit 5-13
5-13 Step instruktioner:
DEFINER STEP og START STEP--STEP(08)/SNXT(09)
Ladder Symboler Definer Data Områder
STEP(08) B STEP(08)
SNXT(09) B
Begrænsninger Alle kontrolbit skal være i samme ord, og de skal komme efter hinanden.
Beskrivelse
Instruktionerne STEP(08) og SNXT(09)bruges tilsekvensstyringer,og de giver en
god oversigt overde enkelte dele (trin) i styringen. Hvert trini styringen indehol-­der både forberedelser og aktiviteter, og derforgiver STEP(08) og SNXT(09) en opbygning, som er overskuelig og let at monitere. En af fordelene er, at man in­denfor et begrænset område af ladderdiagrammet har samlet alle aktiviteter. Der sker kun nogeti det step, som er aktivt. (der henvisestil eksemplernesenere i denne del). Til et step bruges almindelig programmering bortset fra visse instruktioner, som ikke må ligge indenfor steppene. Det drejer sig om END(01), IL(02)/ILC(03), JMP(04)/JME(05), og SBN(92).
STEP(08) bruger et styrebit i IR eller HR områderne til at definere begyndelsen på et step. Der skal ingen betingelse til at styre STEP(08), idet instruktionen styres af steppets kontrolbit. Dette kontrolbit skal aktiveres af SNXT(09). Når SNXT(09)’s betingelse går ON, udføres trinnet med det samme kontrolbit. Hvis betingelsen er OFF, udføres steppet ikke. SNXT(09) instruktionen er den instruktion, der “kalder” steppet, og STEP(08) er steppetsbegyndelse. Mankan altså sige, at SNXT(09) hører med til det forudgående step, og STEP(08) er be­gyndelsen til det næste step. Derfor skal SNXT(09) altid programmeres før STEP(08). Hvis der er flere betingelser, som fører til et step,kan SNXT(09) pro­grammeres flere steder. (se eksempel 2, nedenfor). Hvis et step ikke startes af SNXT(09) udføres det ikke.
Altså: SNXT(09) fortæller, hvilket step styringen skal gå til. STEP(08) er step­pets start, og deprogramdele, der ligger indenfor steppet udføres,når steppet er aktivt. Alle andre steps udføres ikke. Afslutningen på STEP--SNXT er en STEP(08) uden kontrolbit. De fleste vælger dog at anvende traditionelle sek­vensstyringer, fordi man er fortrolig med denne fremgangs--måde.
B: Kontrol bit
IR, AR, HR, LR
B: Kontrol bit
IR, AR, HR, LR
59
Step Instruktioner Afsnit 5-13
Udførelsen af et step afsluttes enten med betingelsen for den næste SNXT(09) instruktion eller ved atsætte kontrolbittet for steppet OFF(se eksempel 3 neden­for). Når steppet er afsluttet, vil alle IR og HR bit i steppet gå OFF og alle timere nulstilles. Tællere, skifteregistre og bits styret af KEEP(11) beholder deres sta­tus. To simple steps vises nedenfor.
00000
SNXT(09) LR 1500
STEP(08) LR 1500
Step styret af LR 1500
00001
SNXT(09) LR 1501
STEP(08) LR 1501
Step styret af LR 1501
00002
Adresse Instruktion Operander Adresse Instruktion Operander
00000 LD 00000 00001 SNXT(09) LR 1500 00002 STEP(08) LR 1500
00102 STEP(08) LR 1501
SNXT(09) LR 1502
STEP(08)
Step styret af LR 1501.
Step start
1. step
2. step
Step afslutning
Forholdsregler
60
Step styret af LR 1500.
00100 LD 00001 00101 SNXT(09) LR 1501
Et step starter med STEP(08) og slutter normalt med SNXT(09) (se eksempel 3 forneden,
her vises enundtagelse). Der er tre muligheder:En kæde, eller--forgreninger og og--forgreninger.
Interlocks, jumps, SBN(92), og END(01) kan ikke bruges i step--programmer.
De bits, der bruges som styrebits,kan brugesoveralt iprogrammet, medmindre de bruges til at styre stepfunktionen. (se eksempel 3, nedenfor). Alle styrebits skal være i samme ord og nummereres efter hinanden.
Bruger man IR eller LR bits som kontrolbit, går de OFF ved spændingssvigt. Hvis status skal opretholdes, når spændingen vender tilbage, skal man bruge bits i HR--området.
00200 LD 00002 00201 SNXT(09) LR 1502 00202 STEP(08) ---
Timer, Tæller og Puls Instruktioner Afsnit 5-14
Flag 25407: Step start flag. Går ON i et scan, hver gang STEP(08) skifter til et nyt
step og kan bruges til reset af tællere placeret i steppet, som vist neden­for.
00000
00100
25407
Adresse Instruktion Operander Adresse Instruktion Operander
00000 LD 00000 00001 SNXT(09) 01000 00002 STEP(08) 01000 00003 LD 00100
SNXT(09) 01000
STEP(08) 01000
CP
R
CNT 01
#0003
5-14 Timer og tæller instruktioner
TIM og TIMH(15) er ON-delay timere,som “tæller”ned fra SV (set--værdi) til nul. Instruktionerne skal have etTC nummer og en set værdi (SV). STIM(69)bruges til at styre interval timere, som bruges til at aktivere interrupt rutiner.
CNT (tæller) er en nedtæller og CNTR(12) er en reversibel (op/ned) tæller. Begge skal programmeres med TC nummer og en SV. De er begge forsynet med flere “indgange”, som fungerer som inputsignaler og reset. CTBL(63), INT(89) og PRV(62) bruges iforbindelse medhigh-speed tæller.INT(89) bruges endvidere til at stoppe pulsudgange.
Et TC nummer kan kun bruges een gang. Har man brugt f.eks. nummer #1 til en timer, må en tæller ikke få det samme nummer. Derimod kan man bruge time­rens eller tællerens kontaktfunktion så mange gange, man har brug for.
TC numrene går fra 000 til 127 i CPM1 PLC’en. Der er altså 128 timere eller tællere i CPM1 PLC’en.
TC numrene kan bruges enten som bit eller som ord. Hvis de bruges som bit, virker de på den måde, at når den indstillede tid (SV) er gået eller når tællerens forvalg (SV) er talt, så går det bit, som har TC nummeret ON. Hvis TC bruges som ord, hentes værdierne i de dataord, som indeholder de øjeblikkelige værdi­er (PV), altså timerens tid og det antal, som tælleren har talt. PV for timere eller tællere kan derfor bruges som operander i f.eks. CMP(20), eller andre instruk­tioner, hvor TC er tilladt som operander. Dette sker ved simpelt hen at placere TC nummeret som operand i instruktionen. Derved vildet værePV fortimer eller tæller, der behandles.
Bemærk at “TIM000” bruges som operand, hvis TC nummer 000 eren timer, og det er et signal fra denne timer, man skal bruge. Resultatet bliver, at kontakten med operanden “TIM 000” går ON, når timerens tid (SV) er udløbet. Program­meringen er altid opbygget på samme måde: Først instruktionen, derefter bit-­operanden og endelig ordoperanden.
En SV kan være en konstant (tal med # foran) eller ordadresse i et dataområde. Man kan endvidere få mulighed for at ændre SV på timere og tællere eksternt. Hvis man forbinder cifferhjul (thumbwheel) eller andre lignende enheder til PLC’ens indgange og bruger det tilsvarende IR--område som SV til timer eller tæller, kan SV ændres, mens PLC’en er i RUN eller MONITOR. Bemærk, at
Start
01000
25407
1 scan
00004 LD 25407 00005 CNT 01
# 0003
61
Timer, Tæller og Puls Instruktioner Afsnit 5-14
timere og tælleres SV er BCD og derfor skal evt. eksterne enheder være af denne type.
5-14-1 TIMER -- TIM
Definer Værdier
Begrænsninger
Beskrivelse
Ladder Symbol
TIM N
SV
N: TC nummer
#
Operand Data Områder
SV: Set værdi (ord, BCD)
IR, SR, AR, DM, HR, LR, #
SV er mellem 0000 og 9999 (0,0 og 999,9 sekunder). Hvert TC nummer kan bruges til enten en TIMER eller en tæller instruktion. TC
numre går fra 000 til 127 i CPM1 PLC’en. TC 000 til TC 015 (TC 000 til TC 003 i CPM1) må ikke bruges til TIM, hvis
formålet er TIMH(15). Der henvises til HIGH-SPEED TIMER -- TIMH(15) for yderligere detaljer.
Timeren virker og bruges på samme måde som ON--delay timere i relækredsløb. Den aktiveres, hvis betingelsen går ON og resettes (til SV) når betingelsen går OFF. Tiden udmåles i tiendedele (0.1) sekunder fra SV til nul.
Hvis betingelsen, der aktiverer timeren stadig er ON, vil timerens kontakt (“TIM 000” f.eks.) gå ON og forblive ON, sålænge betingelsen er ON. Timerens kon­takt går OFF, så snart betingelsen går OFF.
Det følgende diagram viser sammenhængen mellem betingelsen for en TIM og timerens kontaktfunktion.
ON
Forholdsregler
Timerens betingelse
Timerens kontakt
Timere indenfor IL(02) og IL(03) områder resettes, når IL(02) aktiveres. Det
OFF
ON
OFF
samme sker ved spændingssvigt. Man kan lave en timer, som fastholder tiden ved at bruge en CNT og sætte et af clock pulse “relæerne” i SR området som betingelse for CNT. Derved kommer tælleren til at tælle tidsenheder. Der hen­vises til Tæller -- CNT for yderligere detaljer.
Flag ER: SV er ikke BCD.
Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet).
SV SV
62
Timer, Tæller og Puls Instruktioner Afsnit 5-14
5-14-2 TÆLLER -- CNT
Definer Værdier
Begrænsninger
Beskrivelse
Ladder Symbol
CP
R
CNT N
SV
N: TC nummer
#
Operand Data Områder
SV: Set værdi (ord, BCD)
IR, SR, AR, DM, HR, LR, #
Hvert TC nummer kan kun bruges til at nummerere een TIMER eller TÆLLER. TC numre gårfra 000 til 127 i CPM1 PLC’en.Tællerens PVgår fra 0000 til 9999.
CNT virker og bruges ligesom forvalgstællere i relækredsløb. De tæller 1 ned (fra SV), når indgang CP går fra OFF til ON. Det vil sige, at tællerens værdi mindskes med 1 hvergang CP går fra OFF til ON. Tællerens kontakt (f.eks. “CNT 001”, hvis CNThar nummer #1) gårON, når tælleren har taltet antal pulser svarende til SV, altså når PV er lig med nul. Kontakten forbliver ON, indtil CNT resettes.
CNT resettes på resetindgangen. Når resetindgangen R går ON, ændres tællerens værdi tilbage til SV. Signalet på R skal derefter gå OFF for at tælleren igen kan tælle.Tællerens PV kan ikke resettes indenfor et interlock--område, og tælleren husker sin værdi, når spændingen vender tilbage efter et spændings-­svigt.
Ændringer i betingelse, CNT--kontakt og PV vises nedenfor. Størrelsen af PV er kun for at vise ændringer i PV.
ON
OFF
ON
OFF
ON
OFF
SV
SV -- 1
SV -- 2
0002
0001
0000
SV
Forholdsregler
Tælle puls (CP)
Reset (R)
CNT--kontakt
PV
Programmet vil fungere, selv om SV ikke er BCD SV, men SV--værdien vil ikke være korrekt.
Flag ER: SV er ikke BCD.
Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet).
Eksempel I det følgende eksempel bruges CNT til at lave en timer v.h.a. en clock puls iSR--
området. CNT 001 tæller antallet afgange 1-sekundclock pulsen(SR 25502) går fra OFF
til ON, sålænge IR 00000er ON.Man kanaltså stoppe tællingen ved at sætte IR 00000 OFF.
63
Timer, Tæller og Puls Instruktioner Afsnit 5-14
Da SV i dette eksempel er 700, og 25502 er en 1 sekund taktgiver, vil CNT--kon­takten, CNT 002,gå ON efter 700 x 1 sekund,altså 11 minutter og 40sekunder. Det medfører, at IR 01602 går ON.
00000 25502
00001
CNT 001
Bemærk Nøjagtigheden på denne slags timere afhænger af frekvensen på clock pulsen.
!
CP
R
CNT
001
#0700
Jo større nøjagtighed man ønsker, jo hurtigere clock puls skal man anvende. Man kan anvende 0.1 sekund eller 0.02 sekund puls, og så blot give tælleren en tilsvarende større SV.
5-14-3 REVERSIBEL TÆLLER -- CNTR(12)
Ladder Symbol
II
CNTR(12)
DI
R
N
SV
01602
Adresse Instruktion Operander
00000 LD 00000 00001 AND 25502 00002 LD NOT 00001 00003 CNT 001
# 0700 00004 LD CNT 001 00005 OUT 01602
Definer Værdier
N: TC nummer
#
Operand Data Områder
SV: Set værdi (ord, BCD)
Begrænsninger
Beskrivelse
64
IR, SR, AR, DM, HR, LR, #
Hvert TC nummer kan kun bruges til at nummerere een TIMER eller TÆLLER. TC numre går fra 000 til 127 i CPM1 PLC’en.Tællerens værdiskal liggeimellem 0000 og 9999.
CNTR(12) er en reversibel, op/ned ringtæller. Den tæller mellem nul og SV, alt efter signalerne på de to indgangeII (“op--indgangen”) og DI (”ned--indgangen”), samt reset.
Tælleren vil tælle 1 op, når betingelsen på II går fra OFF til ON, og den aktuelle værdi (PV) vil voksemed 1.Hvis DIderimod går fra OFF til ON, vil tællerentælle 1 ned, og den aktuelle værdi (PV) vil mindskes med 1. Hvis både II ogDI går ON samtidig, vil tælleren ikke tælle.
Hvis tællerens PV er nul, og der tælles ned, vil PVsættes til SV og CNT--kontak­ten vil gå ON,indtil der tælles ned igen.Hvis dertælles ned forbi SV,sættes PV til nul, og CNT--kontakten vil gå ON, indtil der tælles ned igen.
CNTR(12) resettes hvis R går fra OFF til ON, og det medfører, at PV sættes til nul. Tælleren kan ikketælle, hverken op eller ned,sålænge R er ON.Tælleren vil ikke kunne resettes indenfor et interlock--område, hvis IL(02) er aktiv, og tælle-­ren vil huske sin værdi, når spændingen vender tilbage efter spændingssvigt.
Timer, Tæller og Puls Instruktioner Afsnit 5-14
Nedenstående diagram viser, hvordan tælleren arbejder, når den tæller op og ned, og hvornår CNT--kontakten går ON. Der vises, hvad der sker, når SV nås, og når der tælles forbi nul.
ON
OFF
ON
OFF
ON
OFF
SV -- 1
SV -- 2
Forholdsregler
Tæl op (II)
Tæl ned (DI
Tællers kontakt
PV
Programmet vil fungere, selvom SV ikke er BCD,men SV--værdien vil ikkevære korrekt.
Flag ER: SV er ikke BCD.
Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet).
5-14-4 HIGH-SPEED TIMER (1/100) -- TIMH(15)
Ladder Symbol
TIMH(15) N
SV
SV
0001
0000 0000
SV
SV -- 1
SV -- 2
Definer Værdier
N: TC nummer
#
Operand Data Områder
Begrænsninger
Beskrivelse
Forholdsregler
SV: Set værdi (ord, BCD)
IR, SR, AR, DM, HR, LR, #
SV er mellem 0000 og 9999 (0,00 og 99,99 sekunder). ( Værdierne 0000 og 0001 kan godt skrives, men 0000 medfører at TIM--kontakten går ON med det samme, og 0001 er urealistisk på grund af PLC’ens scantid). Kommaet skrives ikke.
Hvert TC nummer kan kun bruges til at nummerere een TIMER eller TÆLLER. TC numre går fra 000 til 127 i CPM1 PLC’en.
High-speed timere med numrefra TC 004 til TC127 i CPM1 må ikkebruges, hvis scantiden er større end 19 mS.
TIMH(15) virker på samme måde som almindelige timere, bortset fra at TIMH måler i enheder på 0.01 sekund (1/100 sekund). Der henvises til TIMER -- TIM for yderligere detaljer.
Timere indenfor IL(02) og IL(03) områder resettes, når IL(02) aktiveres. Det samme sker ved spændingssvigt. Man kan lave en timer, som fastholder tiden ved spændingssvigt ved at brugeen CNT og sætte et af clockpulse “relæerne” i SR området som betingelse forCNT. Derved kommer tælleren til attælle tidsen­heder. Der henvises til TÆLLER -- CNT for yderligere detaljer.
Timerei jump--områder vil ikke resettes,når JMP(04) er aktiv,men hvis JMP(04) 00 bruges, vil timeren gå i stå. Timere vil fortsætte tidsudmålingen, hvis jump numrene 01 til 49 bruges.
65
Timer, Tæller og Puls Instruktioner Afsnit 5-14
Flag ER: SV er ikke BCD.
Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet).
Eksempel Det følgende eksempel viser en timer med en tid på#150 (1.5 sekund). 01600 vil
gå ON, hvis 00000 går ON og forbliver ON i 1.5 sekund. Når 00000 går OFF, resettes timeren og 01600 går OFF.
00000
TIM 000
TIMH(15)
000
#0150
01600
01.50 s
Adresse Instruktion Operander
00000 LD 00000 00001 TIMH(15) 000
# 0150 00002 LD TIM 000 00003 OUT 01600
5-14-5 INTERVAL TIMER -- STIM(69)
Ladder Symboler Operand Data Områder
STIM(69)
C1
C2
C3
@STIM(69)
C1
C2
C3
C1: Kontrol data #1
000 to 008, 010 to 012
C2: Kontrol data #2
IR, SR, AR, DM, HR, TC, LR, #
C3: Kontrol data #3
IR, SR, AR, DM, HR, TC, LR, #
Begrænsninger C1 skal være 000, 003, 006. eller 010.
Hvis C1 er 000 eller 003, kan en konstant større end 0049 ikke bruges som C3. Hvis C1 er 006, kan konstanter og DM 6143 til DM 6655 ikke bruges som C2 eller C3. Hvis C1 er 010, skal både C2 og C3 sættes til 000.
Beskrivelse STIM(69) bruges til at styre interval timeren på en af fire måder: Starte timeren
for et one--shot interrupt, starte timeren for tidsstyret interrupt, stoppe timeren, og læse timerens PV. C1’s værdi bestemmer, hvilken af disse funktioner, der skal udføres, som vist i den følgende tabel. Der henvises til afsnit 2-2-4 for en mere detaljeret beskrivelse af, hvordan man bruger interval timer interrupt. STIM(69) beskrives også mere detaljeret efter tabellen.
Starter Interrupt
66
Funktion C1 værdi
Starter timeren 000 Starter tidsstyret interrupt 003 Læser timer PV 006
010
Sæt C1=000 for at få timeren til atgenerere eetinterrupt efter den defineredetid. Sæt C1=003 for at starte tidsstyret interrupt (interrupt hvergang den definerede tid er udløbet).
Timer, Tæller og Puls Instruktioner Afsnit 5-14
C2, som angiver timerens SV, kan være en konstant eller det første af to ord, som indeholder SV..
Hvis C2 er en konstant, angiver den begyndelsesværdien for ned--tælleren (BCD, 0000 to 9999). Tiden mellem tællepulserne er 1 mS.
Hvis C2 er en ordaddresse, angiver C2 begyndelsesværdien for nedtælleren (BCD, 0000 til 9999), og C2+1 angiver tiden mellem tællepulserne (BCD, 0005 til 0320) i 0.1 mS enheder. Derved bliver tiden mellem pulserne 0.5 til 32mS.
C3 angiver nummeret på subrutine 0000 til 0127 i CPM1 PLC’en.
Note Den mindste tid for interval--timeren er:
(indholdet i C2) ´ (indholdet i C2+1) ´ 0.1 mS
At læse timeres PVs Sæt C1=006 for at læse PV.
C2 angiver det første af de to ord, som modtager timerens PV. C2 vil indeholde antallet af gange tællerenhar talt ned (BCD, 0000to 9999) og C2+1 vil indeholde intervallet mellem tællepulsernel (BCD i 0.1 mS enheder).
C3 viser det ord, som vil indeholde den tid, der er gået, siden timeren sidst talte ned (BCD i 0.1 mS enheder). (Skal være lig med eller mindre end den tid, der er satsom tid mellem pulsernei C2+1.)
Note Den tid, der er gået, siden timeren startede, kan beregnes på følgende måde:
[(indholdet i C2) ´ (indholdet i C2+1) + (indholdet i C3)] ´ 0.1 mS
At stoppe Timere Sæt C1=010 for at stoppe timeren.
C2 og C3 har ingen funktion, og skal begge sættes til 000.
Flag ER: Interval timer 0 er startet, mens en udgang er aktiv.
(kun C1=000)
Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet).
Et data områdes begrænsning er overskredet.
5-14-6 OPRET SAMMENLIGNINGS TABEL -- CTBL(63)
Ladder Symboler Operand Data Områder
CTBL(63)
000
C
TB
@CTBL(63)
000
C
TB
C: Kontrol data
000 til 003
TB: Første sammenligningstabel ord
IR, SR, AR, DM, HR, LR
Begrænsninger Det første og det sidste ord i sammenligningstabellen skal være i samme data
område. (Længden af sammenligningstabellen bestemmes af opsætningen).
Beskrivelse Hvis udførelsesbetingelsen er OFF, udføres CTBL(63) ikke. Når udførelsesbe-
tingelsen går ON, opretter CTBL(63) ensammenligningstabel tilsammenligning med high-speed tællerens PV. Afhængig af værdien i C, kan sammenligningen med high-speed tællerens PV begynde øjeblikkeligt, eller den kan startes sepa­rat med INI(61).
67
Timer, Tæller og Puls Instruktioner Afsnit 5-14
CTBL(63)’s funktion bestemmes af Kontrol data (C), som vist i følgende tabel. Funktionerne beskrives efter tabellen.
C CTBL(63) funktion
000 Opretter tabel med målværdier og starter sammenligningen. 001 Opretter tabel med områdeforvalg og begynder sammenligningen 002 Opretter tabel med målværdier.Starter sammenligningen med INI(61). 003 Opretter tabel med områdeforvalg. Starter sammenligningen med INI(61).
Hvis PV passer sammen med en forvalgsværdi i sammenligningstabellen eller ligger indenfor et angivet forvalgsområde, bliver den angivne subrutine kaldt og udført. Der henvises til afsnit 2-2-5 for yderligere detaljer om tabel sammenlig­ninger.
Hvis high-speed tælleren er gjort aktiv i PC Setup (DM 6642), vil den begynde at tælle fra nul, når PLC’en sættes i RUN.Sammenligning mellem PV ogsammen­ligningstabellen vil ikke begynde før oprettelsen og sammenligningen er iværksat med INI(61) ellerCTBL(63). Sammenligningen kan startes og stoppes, eller PV kan resettes med INI(61).
Når sammenligningstabellen er oprettet, gælder værdierne indtil PLC’en går ud af RUN eller indtil der fremkommer en fejl ved forsøget på at opretteen ny tabel. Derfor foreslås det, at man enten bruger den flankestyrede @CTBL(63) eller lader initialiseringspulsen (SR 25315) oprette tabellen.Derved nedsættesscan­tiden.
Værdier for tabellen Sammenligningstabellen indeholder op til 16 værdier og et subrutine nummer,
som hører sammen med hver værdi. subrutinen med det passende nummer kaldes og udføres, når PV passer sammen med en forvalgsværdi. (Hvis inter­rupt af programmet ikke kræves, kan et udefineret subrutine nummer skrives).
Sammenligningen af værdier udføres en ad gangen i den rækkefølge, som ta­bellen angiver. Når PV når den første forvalgsværdii tabellen, udføres interrupt­subrutinen, og tabelsammenligningen fortsætter med den næste værdi i tabel­len. Når processen nårtil den sidste forvalgsværdi itabellen, vender sammenlig­ningen tilbage til den første værdi, og processen gentages.
Det følgende skema viser opbygningen af en sammenligningstabel til high­speed tæller 0, i lineær mode.
TB Antal Værdier (BCD) TB+1 Værdi #1, 4 mindste cifre (BCD) TB+2 Værdi #1, 4 største cifre (BCD) TB+3 subrutine nummer (Se note.)
0001 til 0016
Et sæt værdier
Note 1. subrutinenummeret kan være 0000 til 0049 i CPM1 PLC’en.
Sammenligningsområder En tabel for sammenligningsområder indeholder 8 forvalgsområder, som defin-
eres af en 8-cifret nedre grænse og en 8-cifret øvre grænse, såvel som deres tilhørende subrutine numre. Den tilhørende subrutine kaldes og udføres, når PV ligger indenfor en givengrænse. (hvis interrupt af processen ikke kræves,kan et udefineret subrutine nummer skrives).
Angiv altid 8 områder. Hvis der skal bruges mindre end 8 områder, så sæt de overskydende subrutine numre til FFFF. Hvis der skal bruges mere end 8 områder, kan man bruge en anden sammenligningsinstruktion, som f.eks. BCMP(68) til at sammenligne områder med high-speed tællerens PV i SR 248
68
Timer, Tæller og Puls Instruktioner Afsnit 5-14
og SR 249 i CPM1 PLC’en. Vær opmærksom på, at disse ord kun opdateres 1 gang hvert scan.
I AR området er der flag, som indikerer, når en high-speed tællers PV ligger in­denfor et eller flere afde 8 områder. Flaget gårON, når PV er indenfor det tilsva­rende område.
AR område Flag
AR 1100 til AR 1107 svarer til område 1 til 8.
Det følgende skema viser opbygningen af en sammenligningstabel til high­speed tæller 0.
TB Lav grænse #1, 4 mindste cifre (BCD) TB+1 Lav grænse #1, 4 største cifre (BCD) TB+2 Høj grænse #1, 4 mindste cifre (BCD) TB+3 Høj grænse #1, 4 største cifre (BCD) TB+4 subrutine nummer (Se note 1.)
TB+35 Lav grænse #8, 4 mindste cifre (BCD) TB+36 Lav grænse #8, 4 største cifre (BCD) TB+37 Høj grænse #8, 4 mindste cifre (BCD) TB+38 Høj grænse #8, 4 største cifre (BCD) TB+39 subrutine nummer (Se note 1.)
Opsætning af 1. område
Opsætning af 8. område
Note 1. subrutine nummeret kan være 0000 til 0049 i CPM1, og subrutinen vil
udføres, så længe tællerens PV er indenfor detangivne forvalgsområde.En værdi på FFFF indikerer, at ingen subrutine skal udføres.
Den følgende tabel viser de tilladte værdier og lave og høje grænser. Den hexa­decimale værdi F i det mest betydende ciffer indikerer at værdien er negativ.
Tilladte værdier
OP/NED mode: F003 2767 til 0003 2767 OPTÆLLER mode: 0000 0000 til 0006 5535
Flag ER: Der er fejl i high-speed tællerens opsætning.
Den angivne tæller og funktion passer ikke sammen.
Der er en CTBL(63) instruktion i subrutinen, som er kaldt af en anden CTBL(63) instruktion. (CTBL(63) er kaldt mere end 1 gang)
Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet).
Sammenligningstabellen overskrider dataområdets begrænsninger, eller der er fejl i opsætningen af sammenligningstabellen.
CTBL(63) udføres i en subrutine, mens en puls I/O eller high-speed tæller instruktion udføres i hovedprogrammet.
Subrutiner udføres kun een gang første gang udførelsesbetingelsen ses. AR status opdateres kun een gang i hvert scan. Hvis betingelsen optræder mere end een gang i tabellen, er det første gang, der har prioritet.
69
Timer, Tæller og Puls Instruktioner Afsnit 5-14
5-14-7 STYRE METODE -- INI(61)
Ladder Symboler
INI(61)
000
C
P1
@INI(61)
000
C
P1
Operand Data Områder
C: Kontrol data
000 to 003
P1: Første PV ord
IR, SR, AR, DM, HR, LR
Begrænsninger P1 skal være 000 med mindre C er 002.
P1 og P1+1 skal være i det samme data område. DM 6143 til DM 6655 kan ikke bruges som P1.
Beskrivelse Hvis udførelsesbetingelsen er OFF, udføres INI(61) ikke. Når udførelsesbetin-
gelsen går ON, bruges INI(61) til at styre high-speed tællerens operation og stoppe puls udgangen.
INI(61)’s funktion bestemmesaf kontrol data C.(P1 og P1+1 indeholder dennye high-speed tæller set--værdi, når C=002)
C P1 INI(61) funktion
000 000 Starter CTBL(63) sammenligningsta-
001 000 Stopper CTBL(63) sammenligningsta-
002 Ny high-speed tæller PV Udskifter high-speed tæller PV. 003 000 Stopper puls udgang.
bel
bel
CTBL(63) Sammenlign tabel Hvis C er 000 eller 001, starter og stopper INI(61) sammenligningen mellem
high-speed tællerens PV og sammenligningstabellen anvist af CTBL(63). Der henvises til afsnit 2-2-5 for yderligere detaljer om sammenligningstabellen.
Ændring af PV Hvis C er 002, ændrer INI(61) high-speed tællerens PV til den 8-cifrede værdi i
P1 og P1+1. High-speed tæller PV kan være F003 2767 til 0003 2767 i OP/NED Mode, eller
0000 0000 til 0006 5535 i OPTÆLLER Mode. Den hexadecimale værdi F i det mest betydende ciffer i PV indikerer at PV er negativ.
4 cifre til venstre 4 cifre til højre OP/NED mode OPTÆLLER mode
P1+1 P1 F0032767 til 00032767 00000000 til 00065535
Stop Puls Udgang Hvis C er 003, stopper INI(61) puls udgang
Flag ER: Den anviste port og funktion passer ikke sammen.
Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet).
P1+1 overskrider data områdets begrænsninger.(C=002) Der er fejl i opsætningen af operander. INI(61) udføres i en interrupt subrutine, mens en puls I/O eller high-
speed tæller instruktion udføres i hovedprogrammet.
70
Timer, Tæller og Puls Instruktioner Afsnit 5-14
5-14-8 LÆSNING AF HIGH-SPEED TÆLLER PV -- PRV(62)
Ladder Symboler Operand Data Områder
PRV(62)
000
C
D
@PRV(62)
000
C
D
C: Kontrol data
000, 001, eller 002
D: Første placerings ord
IR, SR, AR, DM, HR, LR
Begrænsninger D og D+1 skal være i samme data område.
DM 6143 til DM 6655 kan ikke bruges som D.
Beskrivelse Hvis udførelsesbetingelsen erOFF, udføres PRV(62) ikke. Når udførelsesbetin-
gelsen går ON, læserPRV(62) de data, derangives af C og skriver demtil Deller D og D+1.
Kontrol data C afgør, hvilken type data der bliver adgang til.
C Data Placerings ord
000 High-speed tæller PV D og D+1 001 Status for high-speed tæller eller puls udgang D 002 Resultat for sammenligningsområder D
High-speed tæller PV (C=000)
Hvis C er 000, læser PRV(62) high-speed tællers PV og skriver den 8-cifrede værdi i D og D+1.
High-speed tællers PVkan være F003 2767 til0003 2767 i OP/NED Mode,eller 0000 0000 til 0006 5535 i OPTÆLLER Mode. Den hexadecimale værdi F i PV’s mest betydende ciffer indikerer at PV er negativ.
4 cifre til venstre 4 cifre til højre OP/NED Mode OPTÆLLER Mode
D+1 D F0032767 til 00032767 00000000 til 00065535
Flag ER: Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er
ikke BCD, eller DM områdets begrænsninger er overskredet). D+1 overskrider data områdets begrænsninger. (C=000)
Der er fejl i opsætningen af operander. PRV(62) udføres i en interrupt--subrutine, mens en puls I/O eller high-
speed tæller instruktion udføres i hovedprogrammet.
5-14-9 DEFINER PULSER -- PULS(65)
Ladder Symboler Operand Data Områder
PULS(65)
P
C
N
@PULS(65)
P
C
N
IR, SR, AR, DM, HR, LR
P:
000
C: Kontrol data
000
N: Antal pulser
71
Timer, Tæller og Puls Instruktioner Afsnit 5-14
Begrænsninger N og N+1 skal være i samme dataområde.
N kan ikke være DM 6143 til DM 6655.
Beskrivelse PULS(65) definerer det antal pulser, som sendes ud på en transistorudgang
med instruktionen SPED(64). Da PULS(65) har en relativ lang eksekveringstid, kan scan tiden reduceres ved
at eksekvere den differentierede version (@PULS(65)) af instruktionen.
Antal pulser
N+1, N indeholder det8--cifrede antalpulser fra 00000001 til 16777215. Puls-­udgangen startes med SPED(64) og stopper automatisk, når det specificerede antal pulser er udsendt.
4 mestbetydende 4 mindst betydende
N+1 NAntal pulser:
Tilladte værdier
0000 0001 to 1677 7215
Frekvensændring Det specificerede antal pulser vil blive udsendt, også selvom SPED(64) eksek-
veres under en pulsudsending ogdefinerer enny frekvens. Pulsudsendingenvil da fortsætte med den ny frekvens.
Flag ER: Der er en fejl i instruktionsparametrene.
Et dataområdes grænse er overskredet. Indirekte adresseret *DM eksisterer ikke. (Indhold af *DM word er ikke
BCD, eller DM områdets grænse er overskredet.) PULS(65) eksekveres i eninterrupt subrutineimens enpuls I/Oor high-
speed tæller instruktion udføres i hovedprogrammet.
5-14-10 UDSEND PULSTOG-- SPED(64)
Ladder Symbols
SPED(64)
P
M
F
@SPED(64)
P
M
F
Operand Data Områder
P: Udgangsbit specifikation
010 til 150
M: Puls mode
000 or 001
F: Puls frekvens
IR, SR, AR, DM, HR, LR, #
Begrænsninger F skal være BCD, #0000 eller #0002 til #0100 .
F kan ikke være DM 6144 til DM 6655. Det specificerede udgangsbit skal være en transistorudgang.
Beskrivelse SPED(64) bruges til at sætte, ændre eller stoppe pulsudgang fra et udgangsbit.
Når udførselsbetingelsen er OFF, eksekveres SPED(64) ikke. Når udførselsbe­tingelsen er ON, definerer SPED(64) frekvensen F med hvilken der så sendes pulser ud på det specificerede bit P. M bestemmer pulsudgangs mode.
Da SPED(64) har en relativ lang eksekveringstid, kan scan tiden reduceres ved at eksekvere den differentierede version (@SPED(64)) af instruktionen.
Udgangsbit specifikation (P) P specificerer det transistorudgangsbit, som pulserne sendes ud på.
P Pulsudgangs--lokation
000 to 150
Udgangsbits IR 10000 til IR 10015. P’s første to cifre specificerer, hvilket bit i IR 100, der er udgangsbit. Det
tredie ciffer er altid 0. For eksempel: P=000 specificerer IR 10000, P=010 specificerer IR 10001, ... og P=150 specificerer bit IR 10015.
72
Timer, Tæller og Puls Instruktioner Afsnit 5-14
Udgangs Mode (M) M bestemmer pulsudgangs mode. 000 er uafhængig mode. 001 er kontinuerlig
mode. I uafhængig mode fortsætter pulsudsendelse, indtil en af tre hændelser sker:
1, 2, 3... 1. Antal pulser specificeret med PULS(65) instruktionen nåes. (Udfør
PULS(65) før SPED(64) i uafhængig mode.)
2. INI(61) instruktionen udføres med C=003.
3. SPED(64) udføres igen med udgangsfrekvensen F sat til 000.
I uafhængig mode specificeres antallet af pulser altid med PULS(65) inden SPED(64) eksekveres.
I kontinuerlig mode udsendes pulser med frekvensen F, indtil INI(61) instruktio­nen udføres med C=003, eller SPED(64) udføres igen med F=0000.
Pulsfrekvens (F) F specificerer pulsfrekvensen i enheder af10 Hz. Udføres SPED(64) med
F=0000, stoppes pulsudsendelse.
Tilladte værdier for F
0000 (stopper pulstoget) ; 0002 til 0100 (20 Hz til 1 kHz)
Forbehold Pulser kan ikke udsendes samtidig med brug af intervaltimer.
Der kan kun sendes pulser ud på 1 udgang ad gangen.
Flag ER: SPED(64) udføres imens intervaltimeren kører.
Indirekte adresseret DM ord eksisterer ikke. (Indholdet af *DM ord er ikke BCD, eller DM områdets grænse er overskredet.)
Der er en fejl i instruktionsparametrene. SPED(64) udføres i en interrupt subrutine, imens en puls I/O eller high
speed tæller instruktion udføres i hovedprogrammet.
73
Skifte Instruktioner Afsnit 5-15
5-15 Skifte Instruktioner
5-15-1 SKIFTEREGISTER -- SFT(10)
Begrænsninger
Beskrivelse
Ladder Symbol
I
SFT(10)
P
R
St
E
Operand Data Områder
St: Første ord
IR, SR, AR, HR, LR
E: Sidste ord
IR, SR, AR, HR, LR
E skal være lig med eller større end St, og St og E skal være i det samme da­taområde.
Hvis en bit adressei et ord, som bruges iskifteregisteret, også bruges som f.eks. OUT eller KEEP(11), vil fejl (“COIL/OUT DUPL”) vises ved et syntax check på programmeringsudstyret, men programmet vil alligevel udføres, som det er skrevet.Se eksempel 2: Kontrol Bits i Skifteregistre som viser dette.
SFT(10) styres af tre signaler, I, P, og R (data,clock ogreset). Detvirker på den måde, at I bestemmer, HVAD der skal ind i skifteregisteret, og P bestemmer HVORNÅR, således at det signalder stårpå I,når P går ON, flyttes indpå første bit (trin) i registeret, og samtidig flyttes det signal, der står på et givet bit (trin) i registeret et (bit)trin frem, indtil det når sidste trinog går tabt. Hvis I er ON, nårP går ON, vil første bit gåON. Hvis f.eks. bit 4 var ONog bit3 var OFF,da P gik ON, vil bit 5 gå ON og bit 4 gå OFF.
E
Tabt data
St+1, St+2, ... St
Udførelsesbetingelsen P er en PULS funktion. Skiftet sker kun, når P går fra OFF til ON. Hvis P er ON hele tiden vil skifteregisteret ikke reagere på evt. skift på I.
St bestemmer skifteregisterets første ord, og E det sidste ord. Skifteregisteret “styrer” begge disse ord og alle ord her imellem. Skal man bruge et 16 bit regis­ter, er St og E samme ord. Kræver styringen 80 trin, skal man bruge 5 ord, altså skal E være 4 større end St.
Hvis R går ON, vil alle bit i registeret gå OFF. R har dominans, d.v.s. at hvis R er ON, kan registeret ikke skifte.
Flag SFT(10) har ingen flag tilknyttet.
Eksempel
Det følgende eksempel bruger 1-sekund clock pulse bit (25502). Det medfører, at der skiftes een gang hvert sekund, og at bit 00000 skiftes ind i registerets
Skifte data I
74
OperandDataOmråde
r
Skifte Instruktioner Afsnit 5-15
første trin hvert sekund. Skifteregisteret er på 16 bit, ord 010. Derfor vil udgang 10000 gå ON, hver gang et “1” når frem til registerets trin 8.
00000
25502
00001
01007
5-15-2 SKIFT ORD -- WSFT(16)
Ladder Symboler
WSFT(16)
St
E
Begrænsninger
Beskrivelse
St og E Skal være i samme dataområde. E skal være lig med eller større end St. DM 6144 til DM 6655 kan ikke bruges som St eller E.
Når udførelsesbetingelsen er OFF, udføres WSFT(16) ikke. Når udførelsesbe­tingelsen er ON , skifter WSFT(16) data mellem St og E som hele ord. Der skrives nul i St, og indholdet af E går tabt.
I
SFT(10)
P
010
R
010
10000
@WSFT(16)
St
E
Adresse Instruktion Operander
00000 LD 00000 00001 LD 25502 00002 LD 00001 00003 SFT(10)
010
010 00004 LD 01007 00005 OUT 10000
Operand Data Områder
St: Første ord
IR, SR, AR, DM, HR, LR
E: Sidste ord
IR, SR, AR, DM, HR, LR
E St + 1 St
F 0 C 2 3 4 5 2 1 0 2 9
Tabt
0000
E St + 1 St
3 4 5 2 1 0 2 9 0 0 0 0
Flag ER: St og E er ikke i samme områder, eller St er større end E.
Indirekte adresserede DM ord eksisterer ikke. (indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet.
5-15-3 REVERSIBELT SKIFTEREGISTER -- SFTR(84)
Ladder Symboler
SFTR(84)
C
St
E
@SFTR(84)
C
St
E
C: Kontrol ord
IR, SR, AR, DM, HR, LR
St: Første ord
IR, SR, AR, DM, HR, LR
E: Sidste ord
IR, SR, AR, DM, HR, LR
75
Skifte Instruktioner Afsnit 5-15
Begrænsninger
Beskrivelse
St og E Skalvære i samme dataområde, ogSt skal være ligmed eller mindre end E.
DM 6144 til DM 6655 kan ikke bruges som C, St, eller E.
SFTR(84) er et skifteregister, der kan skifte både frem og tilbage, fra St mod E eller omvendt. Ønsker man et enkelt ord (16 bits skifteregister) skrives samme ord i St og E. Kontrolord bestemmer skifteretning, hvad der skal ind i registeret, skiftepulsen og reset. Kontrolords opbygning er som følger:
15 14 13 12 Benyttes ikke
Skifteretning 1 (ON): venstre (LSB mod MSB) 0 (OFF): højre (MSB mod LSB)
Status som skal ind i registeret
Skifte puls bit
Reset
Data i skifteregister skiftes i den retning, som bestemmes af bit 12, idet det skif-­ter en bit til CY, og status på bit 13 ind i den anden ende, når SFTR(84) udføres med ON på udførelsesbetingelsen,når bit 14 går ON, og nårreset, bit15 er OFF. Hvis bit 15 går ON, vil hele skifteregisteret og CY nulstilles.
Flag ER: St og E er ikke i samme dataområde, eller St er større end E
Indirekte adresserede DM ord eksisterer ikke. (Indhold i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet.)
CY: Modtager status for bit 00 i St eller bit 15 i E, afhængig af skifteretning.
Eksempel
I det følgende eksempel bruges IR 00000, IR 00001, IR 00002, og IR 00003 som kontrolbits i @SFTR(84). Skifteregisteret er på 16 bits, DM 0010, og udførelsesbetingelsen er IR 00004.
00000
00001
00002
00003
00004
03512
03513
03514
03515
@SFTR(84)
035
DM 0010
DM 0010
Retning
Status til input
Shiftepuls
Reset
Adresse Instruktion Operander
00000 LD 00000 00001 OUT 03512 00002 LD 00001 00003 OUT 03513 00004 LD 00002 00005 OUT 00514 00006 LD 00003 00007 OUT 03515 00008 LD 00004 00009 @SFT(10)
DM 0010 DM 0010
035
76
Skifte Instruktioner Afsnit 5-15
5-15-4 ASYNKRONT SKIFTEREGISTER -- ASFT(17)
Operand Data Områder
C: Kontrol ord
IR, SR, AR, DM, HR, LR, #
St: Første ord
IR, SR, AR, DM, HR, LR
E: Sidste ord
IR, SR, AR, DM, HR, LR
ASFT(17)
C
St
E
Ladder Symboler
@ASFT(17)
C
St
E
Begrænsninger St og E skal være i samme dataområde, og E skal være lig med eller større end
St. DM 6144 til DM 6655 kan ikke bruges som St eller E.
Beskrivelse Når udførelsesbetingelsen er OFF, udføres ASFT(17) ikke, og programmetgår
videre til næste instruktion. Når udførelsesbetingelsen er ON virker ASFT(17) som et reversibelt ord skifteregister, der skifter data mellem St og E. Registeret skifter kun, hvis det næste ord er nul. Det medfører,at hvisingen order nul,sker der ingenting. Der er altså kun et ord, der skifter i registeret for hvert ord, som er nul. Når indholdet afet ord er skiftet til det næste,vil det oprindelige ord være nul. Altså -- når registeret skifter, bytter hvert “nul ord” i registeret plads med det næste ord. (Se eksemplet nedenfor.)
Skifteretningen (det vil sige om det næste ord er det næste højere eller det næste lavere ord) bestemmes af C. C bruges også tilat resette registeret. Hele eller en hvilken som helst del af registeret kan resettes.
Kontrol ord Bits 00 til 12i C bruges ikke. Bit 13 er skifteretning: Hvisbit 13 er ON, skiftes ned
(mod det lavest adresserede ord). Er bit 13 OFF, skiftes op (mod det højest adresserede ord). Bit 14 er Shift Enable Bit: Går bit 14 ON arbejder skifteregis­teret ifølge bit 13, og går bit 14OFF, disables registeret. Bit 15 er Reset bit: Skif­teregisteret resettes (nulstilles) mellemSt og E, når bit 15går ON. Når bit 15 igen går OFF, kan registeret igen skifte.
Note Hvis den ikke--flankestyrede (uden @) udgave af ASFT(17) bruges, vil data
skifte i hvert scan, hvis udførelsesbetingelsen er ON. Brug den flankestyrede udgave @ASFT(17), hvis dette ikke ønskes.
Flag ER: St og E er i forskellige områder eller St er større end E.
Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet.)
77
LadderSymbolerOperandDataOmråde
r
Data Flytteinstruktioner Afsnit 5-16
Eksempel Det følgende eksempel viser, hvordan ASFT(17) bruges til at skifte ord i et
11-ord skifteregister oprettet mellem DM 0100 og DM 0110, og kontrol ord C=#6000. Data, som ikke er nul skiftes mod St (DM 0110).
00000
ASFT(17)
#6000
DM 0100
DM 0110
Før 1. skift
DM 0100 1234 1234 1234 DM 0101 0000 0000 2345 DM 0102 0000 2345 3456 DM 0103 2345 0000 4567 DM 0104 3456 3456 5678 DM 0105 0000 4567 6789 DM 0106 4567 0000 789A DM 0107 5678 5678 0000 DM 0108 6789 6789 0000 DM 0109 0000 789A 0000 DM 0110 789A 0000 0000
Adresse Instruktion Operander
00000 LD 00000 00001 ASFT(17)
# 6000 DM 0100 DM 0110
Efter 1. skift
Efter 7. skift
Note Nullerne skiftes “fremad” hvis C=#4000, og hele registeret nulstilles hvis
C=#8000.
5-16 Data Flytteinstruktioner
5-16-1 FLYT -- MOV(21)
MOV(21)
S
D
Begrænsninger DM 6144 til DM 6655 kan ikke bruges som D.
Beskrivelse
Når udførelsesbetingelsen er OFF, udføres MOV(21) ikke. Når udførelsesbetin­gelsen er ON, flytter (kopierer) MOV(21) indholdet i S til D.
Kilde ord Placerings ord
Forholdsregler
Timere og tælleres aktuel værdi kan ikke ændres med MOV(21). Man kan deri­mod ændre disse værdier med instruktionen BSET(71).
@MOV(21)
S
D
Bit status uændret.
S: Kilde ord
IR, SR, AR, DM, HR, TC, LR, #
D: Placerings ord
IR, SR, AR, DM, HR, LR
Flag ER: Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er
ikke BCD, eller DM områdets begrænsninger er overskredet.
78
LadderSymbolerOperandDataOmråde
r
Data Flytteinstruktioner Afsnit 5-16
EQ: ON hvis værdien 0000 overføres til D.
Eksempel Det følgende eksempel viser, hvordan @MOV(21) bruges til at flytte/kopiere
IR 001 til HR 05, når IR 00000 går fra OFF til ON.
00000
IR 000
HR 05
0 1 1 1 0 0 1 1 1 0 0 0 1 0 1
0 1 1 1 0 0 1 1 1 0 0 0 1 0 1
@MOV(21)
HR 05
5-16-2 MOVE INVERTERET -- MVN(22)
MVN(22)
S
D
@MVN(22)
001
S
D
Adresse Instruktion Operander
00000 LD 00000 00001 @MOV(21)
001
HR 05
0
0
S: Kilde ord
IR, SR, AR, DM, HR, TC, LR, #
D: Placerings ord
IR, SR, AR, DM, HR, LR
Begrænsninger DM 6144 til DM 6655 kan ikke bruges som D.
Beskrivelse
Når udførelsesbetingelsen er OFF, udføres MVN(22) ikke. Når udførelsesbetin­gelsen er ON, overfører MVN(22) det inverterede indhold i S (ord eller 4-cifret hexadecimal konstant) tilD. Det betyder,at hvert bit i S,som er ON, placeres på det tilsvarende bit i D, men som OFF, og hvert bit i S, som er OFF, placeres lige­ledes på det tilsvarende bit i D, men som ON.
Forholdsregler
Kilde ord
Bit status inverteret.
Timere og tælleres aktuel værdi kan ikke ændres med MVN(22). Dissekan deri-
Placerings ord
mod ændres med instruktionen BSET(71).
Flag ER: Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er
ikke BCD, eller DM områdets begrænsninger er overskredet.)
EQ: ON når værdien 0000 overføres til D.
79
OperandDataOmråde
r
Data Flytteinstruktioner Afsnit 5-16
Eksempel Det følgende eksempel viser, hvordan @MVN(22) kopierer den komplemen--
tære (inverterede) værdi af konstanten #F8C5 til DM 0010, når IR 00001 skifter fra OFF til ON. Bemærk resultatet. “1” bliver til “0” og “0” bliver til “1”.
00001
#F8C5
DM 0010
1 1 1 1 1 0 0 0 1 1 0 0 1 0 1
0 0 0 0 0 1 1 1 0 0 1 1 0 1 0
@MVN(22)
#F8C5
DM 0010
5-16-3 FLYT BLOK (OVERFØR) -- XFER(70)
Ladder Symboler
XFER(70)
N
S
D
@XFER(70)
N
S
D
Adresse Instruktion Operander
00000 LD 00001 00001 @MOV(21)
# F8C5 DM 0010
0
1
N: Antal ord (BCD)
IR, SR, AR, DM, HR, TC, LR, #
S: Første kilde ord
IR, SR, AR, DM, HR, TC, LR
D: Første placerings ord
IR, SR, AR, DM, HR, TC, LR
Begrænsninger
S og S+N Skal være i det samme dataområde . Det gælder også for D og D+N. DM 6144 til DM 6655 kan ikke bruges som D.
Beskrivelse
Når udførelsesbetingelsen er OFF, udføres XFER(70) ikke. Når udførelsesbe­tingelsen er ON kopierer XFER(70) indholdet i S, S+1, ..., S+N til D, D+1, ..., D+N.
Flag ER: N er ikke BCD
S og S+N eller D og D+N er ikke i samme dataområde.
Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet).
S 3 4 5
S+1 3 4 5
S+2 3 4 2
S+N 6 4 5
D
2
1
2
2
3 4 5
D+1 3 4 5
D+2 3 4 2
D+N 6 4 5
2
1
2
2
80
OperandDataOmråde
r
Data Flytteinstruktioner Afsnit 5-16
5-16-4 SKRIV TIL EN BLOK -- BSET(71)
Begrænsninger
Beskrivelse
Ladder Symboler
S: Kilde data
IR, SR, AR, DM, HR, TC, LR, #
BSET(71)
@BSET(71)
St: Første ord
S
St
E
St
S
IR, SR AR, DM, HR, TC, LR
E: Sidste ord
E
IR, SR, AR, DM, HR, TC, LR
St skal være lig med eller mindre end E, og St og E skal være i samme da­taområde.
DM 6144 til DM 6655 kan ikke bruges som St eller E.
Når udførelsesbetingelsen er OFF, udføres BSET(71) ikke. Når udførelsesbe­tingelsen er ON, kopierer BSET(71) indholdet i S til alle ord fra St til E (begge incl).
S 3 4 5 2
2
St 3 4 5
St+1 3 4 5
St+2 3 4 5
2
2
E 3 4 5
2
BSET(71) kan bruges til at ændre timer/tæller PV. (Dette kan ikke gøres med MOV(21) eller MVN(22).) BSET(71) kan også bruges til at resette eller klargøre et helt dataområde til andre instruktioner. Endelig kan den bruges til at resette i tilfælde af fejlfunktioner.
Flag ER: St og E er ikke i samme dataområde, eller St er større end E.
Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet).
Eksempel
Det følgende eksempel viser, hvordan man, med BSET(71), kopierer en kon-­stant (#0000) til en blok i DM området (DM 0000 til DM 0500), når IR 00000 går ON, og dermed nulstiller hele området.
00000
@BSET(71)
#0000
DM 0000
DM 0500
Adresse Instruktion Operander
00000 LD 00000 00001 @BSET(71)
# 0000 DM 0000 DM 0500
81
LadderSymbolerOperandDataOmråde
r
OperandDataOmråde
r
Data Flytteinstruktioner Afsnit 5-16
5-16-5 DATA BYT -- XCHG(73)
E1: Skifte ord 1
IR, SR, AR, DM, HR, TC, LR
E2: Skifte ord 2
IR, SR, AR, DM, HR, TC, LR
Begrænsninger
Beskrivelse
XCHG(73)
E1
E2
@XCHG(73)
E1
E2
DM 6144 til DM 6655 kan ikke bruges som E1 eller E2.
Når udførelsesbetingelsen er OFF, udføres XCHG(73) ikke. Når udførelsesbe­tingelsen er ON, bytter XCHG(73) indholdet i E1 med indholdet i E2 og omvendt.
E2E1
Hvis man skal skifteblokke af ord i stedet for enkelte ord, kanman bruge midler­tidige arbejdsregistre og instruktionen XFER(70) tre gange.
Flag ER: Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er
ikke BCD, eller DM områdets begrænsninger er overskredet).
5-16-6 ENKELT ORD FORDELING -- DIST(80)
Begrænsninger
Beskrivelse
Enkeltords--fordeling
Ladder Symboler
DIST(80)
S
DBs
C
@DIST(80)
S
DBs
C
IR, SR, AR, DM, HR, TC, LR, #
IR, SR, AR, DM, HR, TC, LR
IR, SR, AR, DM, HR, TC, LR, #
S: Kilde data
DBs: Placerings base ord
C: Kontrol ord (BCD)
Cskal være BCD. DM 6144 til DM 6655 kan ikke bruges som DBs eller C.
DIST(80) kan bruges til enkeltords--fordeling eller til stack (register) funktioner, afhængig af indholdet i kontrol ord C.
Når bit 12 til 15 i C=0 til 8, kan DIST(80) bruges til enkeltords--fordeling. Hele indholdet i C bestemmer et offset, Of.
Når udførelsesbetingelsen er OFF, udføres DIST(80) ikke. Når udførelsesbetin­gelsen er ON,kopierer DIST(80) indholdeti S til DBs+Of, detvil sige, at Ofadd­eres til DBs for at bestemme placerings ord.
Note DBs og DBs+Of skal være i det samme dataområde og kan ikke ligge mellem
DM 6144 og DM 6655.
Eksempel
Det følgende eksempel viser, hvordan DIST(80) kopierer #00FF til HR 10 + Of.
82
Data Flytteinstruktioner Afsnit 5-16
Indholdet i LR 10er #3005, så #00FF kopieres tilHR 15 (HR 10 + 5)når IR00000 går ON.
00000
@DIST(80)
LR 10 3 0 0
#00FF
HR 10
LR 10
#00FF
5
0 0 F 0
Adresse Instruktion Operander
00000 LD 00000 00001 @DIST(80)
HR 10
F
0 0 0
HR 15 0 0 F
F
# 00FF HR 10 LR 10
Stack Funktion Når bit 12 til 15 iC=9, udfører DIST(80) enstack funktion. De treøvrige cifre i C
bestemmer antallet af ord i stacken, (000 to999). Indholdeti DBs er stack point­er (pegepind).
Hvis udførelsesbetingelsen er OFF, udføres DIST(80) ikke. Når udførelsesbe­tingelsen er ON,kopierer DIST(80) indholdet i S tilDBs+1+indholdet i DBs. Med andre ord, 1 og indholdet i DBs adderes til DBsfor at bestemme placeringsord. Indholdet i DBs incrementeres samtidig (der adderes 1 til DBs).
Note 1. DIST(80) udføres en gang i hver scan, sålænge udførelsesbetingelsen er
ON, medmindre den flankestyrede (@DIST(80)) bruges, eller DIST(80) bruges i forbindelse med DIFU(13) eller DIFD(14).
2. Sørg for at initialisere stack pointer (pegepinden) før DIST(80) bruges til stack funktion.
Eksempel
Det følgende eksempel viser, hvordan DIST(80) bruges til at oprette en stack mellem to DM 0001 og DM 0005. DM 0000 fungerer som stack pointer.
00000
IR 001 FFFF
IR 216 9005
DM 0000 0000 DM 0001 0000 DM 0002 0000 DM 0003 0000 DM 0004 0000 DM 0005 0000
@DIST(80)
001
DM 0000
216
Første gang
Stack pointer incrementeret
DM 0000 0001 DM 0001 FFFF DM 0002 0000 DM 0003 0000 DM 0004 0000 DM 0005 0000
Adresse Instruktion Operander
00000 LD 00000 00001 @DIST(80)
Anden gang
Stack pointer incrementeret
DM 0000 0002 DM 0001 FFFF DM 0002 FFFF DM 0003 0000 DM 0004 0000 DM 0005 0000
Flag ER: Offset eller stack længden i kontrol ord er ikke BCD.
Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet).
001
DM 0000
216
83
OperandDataOmråde
r
Data Flytteinstruktioner Afsnit 5-16
Under stack funktionen, øger værdien i stack pointer+1 længden af stacken.
EQ: ON hvis indholdet i S er nul; ellers OFF.
5-16-7 DATA INDSAMLING -- COLL(81)
Begrænsninger
Beskrivelse
Data indsamling
Ladder Symboler
COLL(81)
SBs
C
D
@COLL(81)
SBs
C
D
SBs: Kilde base ord
IR, SR, AR, DM, HR, TC, LR
C: Kontrol ord (BCD)
IR, SR, AR, DM, HR, TC, LR, #
D: Placerings ord
IR, SR, AR, DM, HR, TC, LR
C skal være BCD. DM 6144 til DM 6655 kan ikke bruges til D.
COLL(81) kan bruges til dataindsamling, en FIFO register funktion, eller en LIFO register funktion, afhængig af indholdet i kontrol ord, C.
Hvis bit 12 til 15 i C=0 til7, udfører COLL(81) data indsamling.Det samlede ind­hold i C bestemmer offset, Of.
Hvis udførelsesbetingelsen er OFF, udføres COLL(81) ikke. Hvis udførelsesbe­tingelsen er ON, kopierer COLL(81) indholdeti SBs+ Oftil D, således at Of add­eres til SBs og derved bestemmer kilde ord.
Note SBs og SBs+Of skal være i samme dataområde.
Eksempel
Det følgende eksempel viser, hvordanCOLL(81) bruges tilat kopiere indholdet i DM 0000+Of til IR 001. Indholdet i 010 er #0005, så indholdet i DM 0005 (DM 0000 + 5) kopieres til IR 001, når IR 00001 går ON.
00001
@COLL(81)
DM 0000
010 0 0 0
010
001
DM 0000
5
0 0 0
DM 0005 0 0 F
Adresse Instruktion Operander
00000 LD 00001 00001 @DIST(80)
001 0 0 F0
F
F
DM 0000
010 001
FIFO Register Funktion Hvis bit 12 til 15 i C=9, virker COLL(81)som en FIFO register funktion. De andre
tre cifre i C bestemmer antallet af ord i registeret (000 til 999). Indholdeti SBs er stack pointer (pegepind).
Hvis udførelsesbetingelsen er ON, skifter COLL(81) indholdet af hvert ord i stacken en adresse ned, indtil data fra SBs+1 (den første værdi, der blev skre­vet i stacken) ender i placerings ord (D). Indholdet af stack pointer (SBs) decre­menteres. (Der subtraheres 1 fra værdien i pegepinden).
84
Data Flytteinstruktioner Afsnit 5-16
Note COLL(81) udføres en gang i hvert scan, sålængeudførelsesbetingelsen er ON,
medmindre den flankestyrede (@COLL(81)) bruges, eller COLL(81) bruges i forbindelse med DIFU(13) eller DIFD(14).
Eksempel
Det følgende eksempel viser, hvordan COLL(81) bruges til at oprette en stack mellem DM 0001 og DM 0005. DM 0000 fungerer som stack pointer.
Når IR 00000 går fra OFF til ON, skifter COLL(81) indholdet i DM 0002 til DM 0005 en adressse ned, og skifter data fraDM 0001til IR001. Stack pointers (DM
0000) værdi tælles samtidig 1 ned.
00000
@COLL(81)
DM 0000
216
001
IR 216 9005
DM 0000 0005 DM 0001 AAAA DM 0002 BBBB DM 0003 CCCC DM 0004 DDDD DM 0005 EEEE
Stack pointer tælles ned
Adresse Instruktion Operander
00000 LD 00000 00001 @COLL(81)
DM 0000
DM 0000 0004 DM 0001 BBBB DM 0002 CCCC DM 0003 DDDD DM 0004 EEEE DM 0005 EEEE
IR 001 AAAA
216 001
LIFO Register Funktion Hvis bit 12 til 15 i C=8, kan COLL(81) bruges som en LIFO register funktion. De
andre tre cifre i C bestemmer antallet af ord i registeret (000 to 999). Indholdet i SBs er stack pointer (pegepind).
Når udførelsesbetingelsen er ON, kopierer COLL(81) data fra det ord, som stack pointer (SBs+the content of SBs) peger på, til placerings ord (D). Stack pointers (SBs) værdi tælles samtidig 1 ned.
Stack pointer er det eneste ord i stacken, der ændres.
Note COLL(81) udføres en gang i hvert scan, sålængeudførelsesbetingelsen er ON,
medmindre den flankestyrede (@COLL(81)) bruges, eller COLL(81) bruges i forbindelse med DIFU(13) eller DIFD(14).
Eksempel
Det følgende eksempel viser, hvordan COLL(80) bruges til at oprette en stack mellem DM 0001 og DM 0005. DM 0000 fungerer som stack pointer.
85
OperandDataOmråde
r
Data Flytteinstruktioner Afsnit 5-16
Når IR 00000 går fra OFF til ON, kopierer COLL(81) indholdet i DM 0005 (DM 0000 + 5) til IR 001. Stack pointer (DM 0000) tælles samtidig 1 ned.
00000
@COLL(81)
DM 0000
216
001
IR 216 8005
DM 0000 0005 DM 0001 AAAA DM 0002 BBBB DM 0003 CCCC DM 0004 DDDD DM 0005 EEEE
Stack pointer tælles ned
Adresse Instruktion Operander
00000 LD 00000 00001 @COLL(81)
DM 0000 0004 DM 0001 AAAA DM 0002 BBBB DM 0003 CCCC DM 0004 DDDD DM 0005 EEEE
IR 001 EEEE
Flag ER: Registerstørrelsens offset kontrol ord er ikke BCD.
Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet).
Under registerfunktionen øger stack pointers (pegepinden) værdi stacken. Derved kan man risikere, at værdien overskrider stackens størrelse.
DM 0000
216 001
EQ: ON hvis indholdet i S er nul; ellers OFF.
5-16-8 FLYT BIT -- MOVB(82)
Ladder Symboler
MOVB(82)
S
Bi
D
@MOVB(82)
S
Bi
D
IR, SR, AR, DM, HR, LR, #
IR, SR, AR, DM, HR, TC, LR, #
Begrænsninger De to cifre længst mod højre og de to cifre længst mod venstre i Bi skal hver for
sig ligge mellem 00 og 15. DM 6144 til DM 6655 kan ikke bruges som Bi eller D.
Beskrivelse
Hvis udførelsesbetingelsen er OFF, udføres MOVB(82) ikke. Når udførelsesbe­tingelsen går ON kopierer MOVB(82) det udpegede bit i S til det udpegede bit i
S: Kilde ord
Bi: Bit udpeger (BCD)
D: Placerings ord
IR, SR, AR, DM, HR, LR
86
Data Flytteinstruktioner Afsnit 5-16
D. Bit i S og D udpeges af Bi. De to cifre længst mod højre i Bi udpeger kildebit. De to cifre længst mod venstre udpeger placeringsbit.
Bi
1 2 0
Placeringsbit (00 to 15)
1
Kildebit (00 to 15)
Bit 15
Bi
LSBMSB
S
D
0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1
1 2 0 1
Bit 15
0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1
Bit 15
0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1
Bit 00
Bit 00
Bit 00
Flag ER: Bi er ikke BCD, eller det udpegede bit eksisterer ikke (værdien for det
udpegede bit skal være mellem 00 og 15. Der er jo kun 16 bit i et ord). Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er
ikke BCD, eller DM områdets begrænsninger er overskredet).
5-16-9 FLYT CIFRE -- MOVD(83)
Operand Data Områder
Ladder Symboler
MOVD(83)
S
Di
D
@MOVD(83)
S
Di
D
IR, SR, AR, DM, HR, TC, LR, #
IR, SR, AR, DM, HR, TC, LR, #
IR, SR, AR, DM, HR, TC, LR
S: Kilde ord
Di: Ciffer udpeger (BCD)
D: Placerings ord
Begrænsninger De tre cifre længst mod højre i Di skal hver for sig være mellem 0 og 3.
DM 6144 til DM 6655 kan ikke bruges som Di eller D.
Beskrivelse
Hvis udførelsesbetingelsen er OFF, udføres MOVD(83) ikke. Når udførelsesbe­tingelsen går ON, kopierer MOVD(83)indholdet af det eller de udpegede cifrei S til det eller de udpegede cifre i D. Indtil fire cifre kan kopieres på en gang. Det første ciffer, der skal kopieres, antallet af cifre og det første placeringsciffer i Di vises herunder. Antallet af udpegede cifre fra S kopieres til på hinanden følgende cifre i D, begyndende med det udpegede første ciffer. Hvis det sidste ciffer i enten S eller D overskrides, startes forfra igen med ciffer 0.
Ciffer nummer: 3 2 1 0
Første ciffer i S (0 til 3)
Antal cifre (0 til 3)
Første ciffer i D (0 til 3)
Bruges ikke. (Sættes til 0.)
0: 1 ciffer 1: 2 cifre 2: 3 cifre 3: 4 cifre
87
Sammenligningsinstruktioner Afsnit 5-17
Ciffer Udpegeren
Det følgende viser forskellige værdier for Di og resultatet af flytningerne.
Di: 0030Di: 0010
S
0 1 2 3
Di: 0031 Di: 0023
S
0 1 2 3
D
0 1 2 3
D
0 1 2 3
S
0 1 2 3
S 0
1 2 3
D
0 1 2 3
D 0
1 2 3
Flag ER: Mindst en af de tre bit længst mod højre i Di er ikke mellem 0 og 3.
Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er ikke BCD, eller DM områdets begrænsninger er overskredet).
5-17 Sammenligningsinstruktioner
5-17-1 SAMMENLIGNING -- CMP(20)
Ladder Symboler Operand Data Områder
Cp1: 1. sammenlignings ord
CMP(20)
Cp1
Cp2
Begrænsninger
Ved sammenligning af PV--værdier for timere og tællere skal værdierne være BCD.
Beskrivelse
Når udførelsesbetingelsen er OFF, udføres sammenligningen CMP(20) ikke. Når udførelsesbetingelsen er ON, sammenligner CMP(20) Cp1 og Cp2 og sender resultatet til GR, EQ eller LE flagene i SR området.
Forholdsregler
Hvis man placerer andre instruktioner mellem CMP(20) og flagene GR, EQ og LE, kan dette påvirke flagenes status. Sørg for at afslutte operationen. Lad evt. GR,EQ eller LE styre almindelige flag umiddelbart efter CMP(20) instruktionen.
Flag ER: Indirekte adresserede DM ord eksisterer ikke. (:DM ord er ikke BCD,
EQ: ON hvis Cp1 er lig med Cp2. LE: ON hvis Cp1 er mindre end Cp2. GR: ON hvis Cp1 er større end Cp2.
@CMP(20)
IR, SR, AR, DM, HR, TC, LR, #
Cp1
Cp2
Cp2: 2. sammenlignings ord
IR, SR, AR, DM, HR, TC, LR, #
eller DM områdets grænser er overskredet.)
88
Flag Adresse C1 < C2 C1 = C2 C1 > C2
GR 25505 OFF OFF ON EQ 25506 OFF ON OFF LE 25507 ON OFF OFF
Sammenligningsinstruktioner Afsnit 5-17
Eksempel: Anvendelse af CMP(20) flag
TR
0
00000
Adresse Instruktion Operander Adresse Instruktion Operander
00000 LD 00000 00001 OUT TR 0 00002 CMP(20)
00003 LD TR 0 00004 AND 25505
25505
25506
25507
Det følgende eksempel viser, hvordanman gemmerresultatet afsammenlignin­gen. Hvis indholdet af HR 09 er større end indholdet af 010, går 10200 ON;hvis HR 09 er lig med 010, går 10201 ON, og hvis HR09 er mindre end 010, går 10202 ON. Har man kun brug for et af de tre udgange, er brugen af TR 0 ikke nødvendig. Med denne type af programmering vil 10200, 10201 og 10202 kun skifte status, når CMP(20) udføres, altså når 00000 er ON.
CMP(20)
HR 09
010
10200
Større end
10201
Lig med
10202
Mindre end
00005 OUT 10200 00006 LD TR 0 00007 AND 25506
010
HR 09
00008 OUT 10201 00009 LD TR 0 00010 AND 25507 00011 OUT 10202
5-17-2 BLOK SAMMENLIGNING -- TCMP(85)
Operand Data områder
Ladder Symboler
Begrænsninger
Beskrivelse
TCMP(85)
CD
TB
R
DM 6144 til DM 6655 kan ikke bruges som R.
Når udførelsesbetingelsen er OFF, udføres TCMP(85) ikke. Når udførelsesbe-
@TCMP(85)
CD
TB
R
tingelsen er ON, sammenligner TCMP(85) CD med indholdet af de 16 ord TB, TB+1, TB+2, ..., og TB+15. Hvis CD’s indhold er lig med indholdet af et af disse ord, vil det tilsvarende bit i R gå ON. Hvis f.eks. CD’s indhold er lig med TB, går BIT 00 ON. Hvis CD’s indhold er lig med TB+1, går bit 01 ON, OSV. Resten af bittene i R vil være OFF.
Flag ER: Sammenligningsblokken (TB til TB+15) er udenfor dataområdet.
CD: Sammenlign data
IR, SR, DM, HR, TC, LR, #
TB: Første ord i tabellen
IR, SR, DM, HR, TC, LR
R: Resultat ord
IR, SR, DM, HR, TC, LR
89
OperandDataOmråde
r
Sammenligningsinstruktioner Afsnit 5-17
Indirekte adresserede DM ord eksisterer ikke. (Værdien af :DM ord er ikke BCD, eller DM områdets grænser er overskredet.
Eksempel
Det følgende eksempel viser sammenligningen og resultatet udført med
TCMP(85). Her udføres sammenligningen i hvert scan sålænge IR 00000 is ON.
00000
TCMP(85)
001
DM 0000
216
CD: 001 TB: DM0000 R: 216
IR 001 0210 DM 0000 0100 IR 21600 0
Sammenligner IR 001 med de givne værdier.
DM 0001 0200 IR 21601 0 DM 0002 0210 IR 21602 1 DM 0003 0400 IR 21603 0 DM 0004 0500 IR 21604 0 DM 0005 0600 IR 21605 0 DM 0006 0210 IR 21606 1 DM 0007 0800 IR 21607 0 DM 0008 0900 IR 21608 0 DM 0009 1000 IR 21609 0 DM 0010 0210 IR 21610 1 DM 0011 1200 IR 21611 0 DM 0012 1300 IR 21612 0 DM 0013 1400 IR 21613 0 DM 0014 0210 IR 21614 1 DM 0015 1600 IR 21615 0
Adresse Instruktion Operander
00000 LD 00000 00001 TCMP(85)
001
DM 0000
216
5-17-3 BLOK SAMMENLIGNING -- BCMP(68)
Ladder Symbol
BCMP(68)
CD
CB
R
@BCMP(68)
CD
CB
R
Begrænsninger Alle nedre grænse ord i sammenligningsblokken skal være lig med eller mindre
end det tilsvarende øvre grænse ord. DM 6144 til DM 6655 kan ikke bruges som R.
Beskrivelse Når udførelsesbetingelsen er OFF, udføres BCMP(68) Ikke. Når udførelsesbe-
tingelsen er ON, sammenligner BCMP(68) CD med intervallernes grænser, de­fineret som indholdet af CB, CB+1, CB+2, ..., CB+31. Hver grænse er defineret af to ord, hvor det første er den nedre grænse og det andet den øvre grænse. Hvis CD ligger indenfor disse grænser (inklusive værdierne af nedre og øvre grænse), går det tilsvarende bit i R ON. Sammenligningerne og de tilsvarende bits i R, som går ON, vises i nedenstående skema. De resterende bits i R går
CD: Sammenlign data
IR, SR, AR, DM, HR, TC, LR, #
CB: Første ord i blokken
IR, SR, DM, HR, TC, LR,#
R: Resultat ord
IR, SR, AR, DM, HR, TC, LR
90
Sammenligningsinstruktioner Afsnit 5-17
OFF. BCMP(68) er en intervalsammenligning, hvor CD sammenlignes med 16 intervaller.Hvis CD ligger indenfor sammenhørende øvreog nedre grænse, går det tilsvarende bit i R ON.
CB £ CD £ CB+1 Bit 00 CB+2 £ CD £ CB+3 Bit 01 CB+4 £ CD £ CB+5 Bit 02 CB+6 £ CD £ CB+7 Bit 03 CB+8 £ CD £ CB+9 Bit 04 CB+10 £ CD £ CB+11 Bit 05 CB+12 £ CD £ CB+13 Bit 06 CB+14 £ CD £ CB+15 Bit 07 CB+16 £ CD £ CB+17 Bit 08 CB+18 £ CD £ CB+19 Bit 09 CB+20 £ CD £ CB+21 Bit 10 CB+22 £ CD £ CB+23 Bit 11 CB+24 £ CD £ CB+25 Bit 12 CB+26 £ CD £ CB+27 Bit 13 CB+28 £ CD £ CB+29 Bit 14 CB+30 £ CD £ CB+31 Bit 15
Flag ER: Sammenligningsblokken ( d.v.s. CB til CB+31) overskrider dataom--
rådet. Indirekte adressering eksisterer ikke. (Indholdet i :DM ord er ikke
BCD, eller DM områdets grænser er overskredet.)
Eksempel Det følgende eksempel viser BCMP(68). Sammenligningen udføres en gang i
hvert scan, sålænge IR 00000 er ON.
00000
BCMP(68)
001
DM 0010
LR 05
CD 001 Nedre grænser Øvre grænser R:LR 05
001 0210 DM 0010 0000 DM 0011 0100 LR 0500 0
Sammenligner data i IR 001
(her med værdien 0210) med de givne nedre og øvre grænser.
DM 0012 0101 DM 0013 0200 LR 0501 0 DM 0014 0201 DM 0015 0300 LR 0502 1 DM 0016 0301 DM 0017 0400 LR 0503 0 DM 0018 0401 DM 0019 0500 LR 0504 0 DM 0020 0501 DM 0021 0600 LR 0505 0 DM 0022 0601 DM 0023 0700 LR 0506 0 DM 0024 0701 DM 0025 0800 LR 0507 0 DM 0026 0801 DM 0027 0900 LR 0508 0 DM 0028 0901 DM 0029 1000 LR 0509 0 DM 0030 1001 DM 0031 1100 LR 0510 0 DM 0032 1101 DM 0033 1200 LR 0511 0 DM 0034 1201 DM 0035 1300 LR 0512 0 DM 0036 1301 DM 0037 1400 LR 0513 0 DM 0038 1401 DM 0039 1500 LR 0514 0 DM 0040 1501 DM 0041 1600 LR 0515 0
Adresse Instruktion Operander
00000 LD 00000 00001 BCMP(68)
001 DM 0010 LR 05
91
Sammenligningsinstruktioner Afsnit 5-17
5-17-4 DOBBELT SAMMENLIGNING -- CMPL(60)
Ladder Symbol Operand Data Områder
CMPL(60)
Cp1: Første ord i første dobbeltord
IR, SR, AR, DM, HR, TC, LR
Cp1
Cp2: Første ord i andet dobbeltord
Cp2
IR, SR, AR, DM, HR, TC, LR
000
Begrænsninger Cp1 og Cp1+1 skal være i samme data område.
Cp2 og Cp2+1 skal være i samme data område. Lad den tredie operand være 000.
Beskrivelse Når udførelsesbetingelsen er OFF, udføres CMPL(60) ikke. Når udførelsesbe-
tingelsen er ON,samler CMPL(60) det 4-cifrede hexadecimale indhold i Cp1+1 med Cp1, og det i Cp2+1 med Cp2 og danner to 8-cifrede hexadecimale størrelser: Cp+1,Cp1 og Cp2+1,Cp2. De to 8--cifrede størrelser sammenlignes, og resultatet af sammenligningen vises i GR, EQ og LE flagene i SR området.
Forholdsregler Undlad at placere andre instruktioner imellem CMPL(60) og det sted, hvor EQ,
LE, og GR flagene benyttes. Andre instruktioner kan ændre disse flags status. Test i stedet på flagene lige efter CMPL(60) instruktionen.
Flag ER: Indirekte adressede DM ord eksisterer ikke. (Indholdet af :DM ord er
ikke BCD, eller DM områdets grænser er overskredet.)
GR: ON hvis Cp1+1,Cp1 er større end Cp2+1,Cp2. EQ: ON hvisCp1+1,Cp1 er lig med Cp2+1,Cp2. LE: ON hvis Cp1+1,Cp1 er mindre end Cp2+1,Cp2.
Eksempel: Lagring af CMPL(60) Resultater
TR
0
00000
25505
25506
25507
Det følgende eksempel viser, hvordan man bruger CMPL(60) resultat med det samme. Hvis indholdet i HR 10, HR 09 er større end indholdet i 011, 010, går 10000 ON; hvis de to indhold er ligestore, går10001 ON; hvis indholdeti HR 10, HR 09 er mindre end indholdet i 011, 010, så går 10002 ON. I de tilfælde, hvor kun en af de tre udgange skal bruges, er TR 0 ikke nødvendig. Med denne type programmering vil 10000, 10001 og 10002 kun skifte status, når CMPL(60) udføres, altså når 00000 er ON.
Adresse Instruktion Operander
CMPL(60)
HR 09
010
---
10000
10001
10002
Større end
lig med
mindre end
00000 LD 00000 00001 OUT TR 0 00002 CMPL(60)
HR 09
010
00003 AND 25505 00004 OUT 10000 00005 LD TR 0 00006 AND 25506 00007 OUT 10001 00008 LD TR 0 00009 AND 25507 00010 OUT 10002
92
LadderSymbolerOperandDataOmråde
r
Konverteringsinstruktioner Afsnit 5-18
5-18 Konverteringsinstruktioner
5-18-1 BCD-TIL-BINÆR -- BIN(23)
BIN(23)
S
R
@BIN(23)
S
R
Begrænsninger DM 6144 til DM 6655 kan ikke bruges til R.
Beskrivelse
Når udførelsesbetingelsen er OFF, udføres BIN(23) ikke. Når udførelsesbetin­gelsen er ON, ændrer BIN(23) BCD indholdet i S til den tilsvarende numeriske binære værdi, og resultatet placeres i R. Kun indholdet i R ændres.indholdet i S forbliver uændret.
BCD
Binary
BIN(23) bruges til at ændre BCD til binær, således at værdier på programme-­ringsudstyr vises i hexadecimali stedetfor BCD. Et andet formål med instruktio­nen kan være atændre BCD til binær, hvis manønsker at anvende binæremate­matiske instruktioner. Hvis f.eks. tællerværdier, som er BCD, skal behandles sammen med konstanter eller analoge signaler, somer binære,kan man ændre tællerværdien.
S: Kilde ord (BCD)
IR, SR, AR, DM, HR, TC, LR
R: Resultat ord (BINÆR)
IR, SR, AR, DM, HR, LR
S
R
Flag ER: Indholdet i S er ikke BCD.
Indirekte adressering af DMord eksisterer ikke. (Indholdet i :DM order ikke BCD, eller DM områdets begrænsninger er overskredet.)
EQ: ON hvis resultatet er nul.
5-18-2 BINÆR-TIL-BCD -- BCD(24)
Ladder Symboler Operand Data Områder
Begrænsninger
BCD(24)
S
R
Hvis indholdet i S overskrider 270F, vil det ændrede resultat blive mere end 9999, og BCD(24) vil ikke udføres. Hvis BCD(24) ikke udføres vil R forblive uændret.
DM 6144 til DM 6655 kan ikke bruges til R.
@BCD(24)
S
R
S: Kilde ord (binær)
IR, SR, AR, DM, HR, LR
R: Resultat ord (BCD)
IR, SR, AR, DM, HR, LR
93
Konverteringsinstruktioner Afsnit 5-18
Beskrivelse
BCD(24) ændrer det binære (hexadecimal) indhold i S til den numerisk tilsva­rende BCD værdi ogplacerer resultatet i R. Kunindholdet i R ændres. Indholdeti S forbliver uændret.
Binary
BCD
S
R
BCD(23) bruges til at ændre binære værdier til BCD, således at værdier på pro­grammeringsudstyr vises i BCD i stedet for hexadecimal. Et andet formål med instruktionen kan være at ændre binær til BCD, hvis man ønsker at anvende BCD matematiske instruktioner. Hvis f.eks. tællerværdier, som er BCD, skal be­handles sammen med konstanter eller analoge signaler, som er binære, kan man ændre værdien for konstanten eller det analoge signal.
Flag ER: Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er
ikke BCD, eller DM områdets begrænsninger er overskredet.)
EQ: ON hvis resultatet er nul.
5-18-3 4-TIL-16 DECODER -- MLPX(76)
Ladder Symboler
Begrænsninger
MLPX(76)
S
Di
R
De to cifre længst mød højre i Di skal være mellem 0 og 3. Alle resultat ord Skal være i samme dataområde
@MLPX(76)
Di
Operand Data Områder
S: Kilde ord
IR, SR, AR, DM, HR, TC, LR
Di: Ciffer udpeger
S
R
IR, SR, AR, DM, HR, TC, LR, #
R: Første resultat ord
IR, SR, AR, DM, HR, LR
Beskrivelse
94
DM 6144 til DM 6655 kan ikke bruges som R.
Hvis udførelsesbetingelsen er OFF, udføres MLPX(76) ikke. Når udførelsesbe­tingelsen går ON, konverterer MLPX(76) indtil fire, fire-bit hexadecimale cifre fra S til decimal værdierfra 0 til 15. Hver af disse brugestil at indikere en bit--placer­ing. De bits med numre, der svarer til hver af de konverterede værdier, går ON i resultat ord. Hvis mere end eet ciffer er udpeget, så vil et bit gå ONi de følgende ord, begyndende med R. (Se eksemplerne, nedenfor.)
Konverteringsinstruktioner Afsnit 5-18
Det følgende er et eksempel på en en--ciffer dekodning fra ciffer nummer 1 i S, hvilket medfører, at Di her ville være 0001.
Kilde ord
C
Bit C (dvs. bit nummer 12) er ON.
Første resultat ord
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Det første ciffer og antallet af cifre, der skal konverteres udpeges i Di. Hvis der udpeges flere cifre, end der er tilbage i S (idet man tæller fra det udpegede første--ciffer), vil de resterende cifre blive taget tilbage forfra i S. Det resulter­ende ord, som kræves for at lagre det konvertede resultat (R plus antallet af cifre, der skal konverteres), skal være i det samme dataområde som R. Hvis f.eks. to cifre konverteres, kan den sidste ord--adresse i dataområdet ikke ud­peges. Hvis tre cifre konverteres, kan de to sidste ord i dataområdet ikke ud­peges.
Ciffer Udpegeren
Cifrene i Di sættes som vist nedenfor.
Ciffer nummer: 3 2 1 0
Udpeger første ciffer til konvertering (0 til 3)
Antallet af cifre til konvertering(0 til 3)
Benyttes ikke(Sættes til nul)
0: 1 ciffer 1: 2 cifre 2: 3 cifre 3: 4 cifre
Nogle eksempler på Di--værdier og de ciffer--til--ord konverteringer, som de udfører, vises nedenfor.
Di: 0030Di: 0010
S
0 1 2 3
Di: 0031 Di: 0023
S
0 1 2 3
R
R + 1
R R + 1 R + 2 R + 3
S
0 1 2 3
S 0
1 2 3
R R + 1 R + 2 R + 3
R R + 1 R + 2
Flag ER: Ciffer--udpegeren er ikke defineret, eller R plus antallet af cifre over-
skrider dataområdet. Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er
ikke BCD, eller DM områdets begrænsninger er overskredet).
95
OperandDataOmråde
r
Konverteringsinstruktioner Afsnit 5-18
Eksempel
Det følgende program konverterer data i ciffer 1 til 3 i DM 0020 til bit--positioner og sætter de tilsvarende bits i tre efterfølgende ord ON, begyndende med HR
10. Ciffer 0 konverteres ikke.
00000
MLPX(76)
DM 0020
#0021
HR 10
S: DM 0020 R: HR 10 R+1: HR 11 R+2: HR 12
DM 0020 00 HR 1000 0 HR 1100 0 HR 1200 1 DM 0020 01 HR 1001 0 HR 1101 0 HR 1201 0 DM 0020 02 HR 1002 0 HR 1102 0 HR 1202 0 DM 0020 03 HR 1003 0 HR 1103 0 HR 1203 0 DM 0020 04 1 HR 1004 0 HR 1104 0 HR 1204 0 DM 0020 05 1 HR 1005 0 HR 1105 0 HR 1205 0 DM 0020 06 1 HR 1006 0 HR 1106 1 HR 1206 0 DM 0020 07 1 HR 1007 0 HR 1107 0 HR 1207 0 DM 0020 08 0 HR 1008 0 HR 1108 0 HR 1208 0 DM 0020 09 1 HR 1009 0 HR 1109 0 HR 1209 0 DM 0020 10 1 HR 1010 0 HR 1110 0 HR 1210 0 DM 0020 11 0 HR 1011 0 HR 1111 0 HR 1211 0 DM 0020 12 0 HR 1012 0 HR 1112 0 HR 1212 0 DM 0020 13 0 HR 1013 0 HR 1113 0 HR 1213 0 DM 0020 14 0 HR 1014 0 HR 1114 0 HR 1214 0 DM 0020 15 0 HR 1015 1 HR 1115 0 HR 1215 0
Ej konver-­teret
15
6
0
Adresse Instruktion Operander
00000 LD 00000 00001 MLPX(76)
DM 0020 # 0021 HR 10
5-18-4 16-TIL-4 ENCODER -- DMPX(77)
Ladder Symboler
Begrænsninger
Beskrivelse
DMPX(77)
SB
R
Di
De to cifre længst til højre i DI skal hver for sig være mellem 0 og 3. Alle kilde ord skal være i samme dataområde. DM 6144 til DM 6655 kan ikke bruges som SB, R, eller Di.
Hvis udførelsesbetingelsen er OFF, udføres DMPX(77) ikke. Når udførelsesbe­tingelsen går ON, afgør DMPX(77) placeringen af det højeste ON bit i S, enko-­der det til enkelt-ciffer hexadecimal værdi, svarende til bit--nummeret for det højeste ON--bit. Derefter overføres den hexadecimale værdi til det udpegede ciffer i R.De cifre, der skal modtage resultaterne,udpeges i Di, som også udpeg­er det antal cifre, der skal enkodes.
@DMPX(77)
SB
Di
SB: Første kilde ord
IR, SR, AR, DM, HR, TC, LR
R: Resultat ord
IR, SR, AR, DM, HR, LR
R
Di: Ciffer udpeger
IR, SR, AR, DM, HR, TC, LR, #
96
Konverteringsinstruktioner Afsnit 5-18
Det følgende er et eksempel på en en--ciffer funktion til ciffer nummer 1 i R. Det er ensbetydende med, at Di her skal være 0001.
Første kilde ord
0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0
C overført for at indikere bit nummer 12 som det højeste ON bit.
Resultat ord
C
Indtil fire cifre fra fire efterfølgende kilde--ord, startende med S, kan enkodes og skrives i R i rækkefølge fra det udpegede første ciffer. Hvis der udpeges flere cifre, end der er i R (idet mantæller fra det først udpegede ciffer), vil deoversky­dende cifre blive placeret som cifre begyndende ved første ciffer i R.
Det ord, der skal konverteres, (S plusantallet af cifre, der skal konverteres) skal være i samme dataområde som SB.
Ciffer udpegeren
Cifrene i Di sættes som vist nedenfor.
Ciffer nummer: 3 2 1 0
Udpeger 1. ciffer -- modtage konverterede data (0 to 3).
Antal ord, som skal konverteres (0 til 3)
Benyttes ikke (sættes til nul)
0: 1 ord 1: 2 ord 2: 3 ord 3: 4 ord
Nogle eksempler på Diværdier og den ord-til-ciffer konvertering, somde udfører vises nedenfor.
S
S + 1
S
S + 1
Di: 0011
R 0
1 2 3
Di: 0013
R
0 1 2 3
S S + 1 S + 2 S + 3
S S + 1 S + 2 S + 3
Di: 0030
R 0
1 2 3
Di: 0032
R 0 1 2 3
Flag ER: Ciffer udpegeren ikke defineret, eller S plus antallet af cifre overskrider
dataområdet. Indholdet i kilde--ord er nul. Indirekte adresserede DM ord eksisterer ikke. (Indholdet i :DM ord er
ikke BCD, eller DM områdets begrænsninger er overskredet).
97
Konverteringsinstruktioner Afsnit 5-18
Eksempel
00000
IR 010
01000
: 01011 1 01012 0
: : : 01015 0
LR 10 LR 1000 LR 1001 1 LR 1002 0
: : :
: : : LR 1015 0
Hvis 00000 er ON, enkoder det følgende program IR 010 og 011 til de første to cifre i HR 10 og LR 10 og 11 til de to sidste cifre i HR 10. Skønt bit status for hvert kilde--ord ikke vises, antages det, atdet bit med status 1(ON) vist, erdet højeste bit, der er ON i ord.
DMPX(77)
010
HR 10
#0010
DMPX(77)
LR 10
HR 10
#0012
IR 011
01100
: 01109 1 01110 0
: : : 01115 0
LR 11
LR 1100
: LR 1108 1 LR 1109 0
: : : LR 1115 0
Adresse Instruktion Operander
00000 LD 00000 00001 DMPX(77)
HR 10 # 0010
00002 DMPX(77)
LR 10 HR 10 # 0012
HR 10
Digit 0
Digit 1
Digit 2
Digit 3
B 9 1 8
010
5-18-5 7-SEGMENT DEKODER -- SDEC(78)
Ladder Symboler
Begrænsninger
Beskrivelse
SDEC(78)
S
Di
D
Di skal være indenfor de værdier, der gives senere. Alle placerings ord skal være i samme dataområde. DM 6144 til DM 6655 kan ikke bruges som D.
Hvis udførelsesbetingelsen er OFF, udføres SDEC(78) ikke. Når udførelsesbe­tingelsen gårON, konverterer SDEC(78) deudpegede cifre i S til en tilsvarende 8--bit, 7--segment display kode, og placerer den i placerings ord, startende med D.
@SDEC(78)
S
Di
D
Operand Data Områder
S: Kilde ord (binært)
IR, SR, AR, DM, HR, TC, LR
Di: Ciffer udpegeren
IR, SR, AR, DM, HR, TC, LR, #
D: Første placerings ord
IR, SR, AR, DM, HR, LR
98
Konverteringsinstruktioner Afsnit 5-18
Et enkelt eller alle cifrei Skan konverteres i rækkefølge fra det udpegede første ciffer. Det første ciffer, antalletaf cifre og halvdelen af D, som skal modtage den første 7--segmentdisplay kode (de 8 bit længst til højre eller længst til venstre) udpeges i Di. Hvis der udpeges flere cifre, placeres de i rækkefølge, begyn­dende med den udpegede halvdel af D, idet hver kræver to cifre. Hvis der ud­peges flere cifre, end der er i S (idet man tæller fra det udpegede første ciffer), vil de resterende cifre blive brugt startende tilbage ved begyndelse af S.
Ciffer udpegeren
Cifrene i Di sættes som vist nedenfor.
Ciffer nummer: 3 2 1 0
Udpeger det 1. ciffer S som skal konverteres (0 til 3). Antal cifre der skal konverteres (0 til 3)
1. halvdel af D som bruges.
Benyttes ikke; (sættes til nul).
0: 1 ciffer 1: 2 cifre 2: 3 cifre 3: 4 cifre
0: 8 bit til højre (1. halvdel) 1: 8 bit til venstre (2. halvdel)
Eksempler på Di--værdier og den 4-bit binære til 7-segment display konverter­ing, som den udfører vises nedenfor.
S cifre
0 1 2 3
Di: 0011
D
1 half 2nd half
S cifre
0 1 2 3
Di: 0030
D
1st half 2nd half
D+1
1st half 2nd half
S cifre
0 1 2 3
Di: 0112
D
1st half 2nd half
D+1
1st half 2nd half
S cifre
0 1 2 3
Di: 0130
D
1st half 2nd half
D+1
1st half 2nd half
D+2
1st half 2nd half
99
Loading...