Omron CQM1 Programming Manual [nl]

Cat. No. W228-NL2-03
SYSMAC C-series
Programmeerbare besturingen
CQM1
PROGRAMMEERHANDLEIDING
OMRON

Mededeling

CQM1 Programmeerhandleiding uitgebreid
OMRON
gekwalificeerde gebruiker en alleen voor de doeleinden die in deze handleiding worden beschreven. De volgende conventies worden gebruikt om voorzorgsmaatregelen te tonen en te classificeren. Schenk
altijd aandacht aan de informatie die getoond wordt. Het geen aandacht schenken aan of negeren van waarschuwingen kan leiden tot het gewond raken van mensen of schade aan het product.
Gevaar
apparatuur wordt gefabriceerd voor gebruik volgens de juiste procedures door een
Geeft informatie aan die, wanneer er geen acht op wordt geslagen, zeer waarschijnlijk zal leiden tot ernstige verwonding of verlies van leven.
Waarschuwing
Voorzichtig
Geeft informatie aan die, wanneer er geen acht op wordt geslagen, mogelijk kan leiden tot ernstige verwonding of verlies van leven en vrijwel zeker tot schade aan het product.
Geeft informatie aan die, wanneer er geen acht op wordt geslagen, mogelijk kan leiden tot relatief ernstige verwonding of letsel, schade aan het product of verkeerde werking van het product.
OMRON product verwijzingen
Namen van OMRON producten beginnen met een hoofdletter in deze handleiding. Het woord unit wordt gebruikt om een OMRON product aan te duiden, onafhankelijk van het feit of het
woord unit in de naam van het product voorkomt. Gebruikte afkortingen en termen zijn verklaard in de appendix.
Visuele hulpmiddelen
De volgende koppen verschijnen in de linkerkolom van de handleiding om u verschillende soorten informatie snel te laten vinden.
Opmerking
1, 2, 3...
Geeft informatie weer die in het bijzonder praktisch is voor efficiënt en handig gebruik van het product.
1. Geeft diverse soorten lijsten weer zoals procedures, controlelijsten etc.
Noot
Geeft een noot weer. Wordt gebruikt in combinatie met tabellen.
OMRON manual referenties
Voor het gebruik van de CQM1 kunt U de volgende handleidingen raadplegen. Nederlandstalig CQM1 Installatie handleiding
CQM1 Programmeerhandleiding SYSWIN handleiding
Engelstalig W228 CQM1/CPM1 Programming manual
W226 CQM1 Operation manual W238 CQM1 Dedicated I/O units operation manual
Naast de diverse handleidingen die voor de CQM1 beschikbaar zijn kunt u SYSTOOLS gebruiken voor het maken van instellingen in de PC Setup van de CQM1. Naast programma’s voor het maken van instellingen in PLC’s en speciale kaarten bevat SYSTOOLS ook SYSHELP. Dit is een help bestand waarin diverse wetenswaardigheden over OMRON PLC’s zijn gebundeld.
CQM1 Programmeerhandleiding pagina 1
CQM1 Programmeerhandleiding uitgebreid
ELECTRONICS B.V.
© OMRON 1997,
OMRON CQM1 Instructieset Publicatie november 2000 Document referentie NLMAN-CQM1-Programmeerhandleiding uitgebreid Revisie. 1 De informatie in dit document is uitvoerig gecontroleerd. OMRON kan echter geen enkele
aansprakelijkheid aanvaarden voor enige incorrectheid of onvolledigheid van deze handleiding. Verder heeft OMRON het recht onaangekondigd veranderingen aan het product en de handleiding aan te brengen ter verbetering van de betrouwbaarheid, de functionaliteit en het ontwerp van de handleiding en/of het product. OMRON is niet aansprakelijk voor enige schade die kan voortvloeien uit het gebruik van deze handleiding, noch kan het enig onder patent rustende licentie of rechten van anderen, overdragen.
OMRON is een geregistreerd handelsmerk van OMRON Corporation.
OMRON
OMRON
Alle rechten voorbehouden.
pagina 2 CQM1 Programmeerhandleiding
OMRON

Inhoudsopgave

1 Schrijven en invoeren van het programma 9
1.1 Terminologie 9
1.2 Basis ladderdiagrammen 9
1.3 Programmeer overwegingen 20
1.4 Bit statussen aansturen 26
1.5 Werkbits (interne relais) 28
1.6 Programmeer voorzorgsmaatregelen 30
1.7 Programma uitvoer 31
Inhoudsopgave
1.2.1 Basis begrippen 10
1.2.2 Mnemonic code 10
1.2.3 Ladder instructies 11
1.2.4 De END instructie 13
1.2.5 Logische blok instructies 14
1.2.6 Het coderen van meerdere “uitvoerende” instructies 20
1.3.1 Vertakkende instructie regels 20
1.3.2 Springen 25
1.4.1 DIFFERENTIATE UP en DIFFERENTIATE DOWN 26
1.4.2 KEEP 27
1.4.3 Zelfhandhavende bits 27
1.5.1 Werkbit toepassingen 28
1.5.2 Reduceren van complexe condities 28
1.5.3 Gedifferentieerde condities 29
2 CQM1 PC Setup 32
2.1 Basis CQM1 werking en I/O afhandeling 36
2.2 CQM1-CPU45 analoge ingangen instellen 39
2.3 CQM1 pulsuitgang functies instellen en gebruik 40
2.3.1 Type van pulsuitgangen 40
2.3.2 Standaard puls uitsturing op een uitgang 40
2.3.3 Standaard puls uitsturing op poort 1 en 2 42
2.3.4 Variabele duty-ratio puls uitsturing op poort 1 en 2 48
2.3.5 Bepalen van de status van poort 1 en 2 49
2.4 Instellen en gebruik van de CQM1 interrupt functies 50
2.4.1 Interrupt typen 50
2.4.2 Input interrupts 52
2.4.3 Alle interrupts maskeren 56
2.4.4 Interval timer interrupts 56
2.4.5 Highspeed counter 0 interrupts 58
2.4.6 Highspeed counter 0 overflows / underflows 63
2.4.7 Highspeed counter 1 en 2 interrupts (CQM1-CPU43-E) 64
2.4.8 Absolute highspeed counter interrupts (CQM1-CPU44-E) 70
2.5 CQM1 communicatie functies 74
2.5.1 Instellingen 75
2.5.2 Hostlink en RS-232C communicatie parameters 76
2.5.3 Poorten aansluiten 77
2.5.4 Hostlink communicatie 77
2.5.5 RS-232C communicatie 79
2.5.6 One-to-one link communicatie 80
2.6 Uitbreidingsinstructies 81
2.7 Analoge instellingen (alleen CQM1-CPU42-E) 82
3 Geheugengebieden 84
3.1 Introductie 84
3.2 Geheugengebieden voor de CQM1 85
3.2.1 Geheugengebied functie 85
3.3 Toewijzen van I/O bits 88
3.4 Opslaan van DM en UM in memorycassettes 89
3.4.1 Memorycassettes en inhoud 89
3.4.2 Memorycassette capaciteit en UM gebied grootte 90
3.4.3 Schrijven naar de memorycassette 91
CQM1 Programmeerhandleiding pagina 3
Inhoudsopgave
OMRON
3.4.4 Uitlezen van de memorycassette 92
3.4.5 Memorycassette inhoud vergelijken 92
3.5 Datagebied structuur 93
3.5.1 Data structuur 94
3.5.2 Verschillende vormen data omzetten 94
3.5.3 Decimale punt 94
3.5.4 Signed en unsigned binaire data 95
3.6 IR (interne relais) gebied 96
3.7 SR (speciale relais) gebied 96
3.7.1 SR gebied overzicht 96
3.7.2 Forced status hold bit 98
3.7.3 I/O status hold bit 98
3.7.4 Output inhibit bit 99
3.7.5 FAL (failure alarm) gebied 99
3.7.6 Lage batterijspanning vlag 99
3.7.7 Cyclustijd te groot errorvlag 99
3.7.8 Eerste scan vlag 99
3.7.9 Klokpuls bits 99
3.7.10 STEP(08) uitgevoerd vlag 100
3.7.11 Instructie executie errorvlag, ER 100
3.7.12 Rekenkundige vlaggen 100
3.8 AR (auxiliary relais) gebied 101
3.8.1 AR gebied overzicht 101
3.8.2 Error historie bits 102
3.8.3 Kalender/klok gebied en bits 103
3.8.4 Power-OFF counter 103
3.8.5 SCAN(18) cyclustijd vlag 103
3.8.6 FALS adres 104
3.8.7 Cyclustijd indicators 104
3.9 DM (data memory) gebied 104
3.9.1 Indirect adresseren 104
3.9.2 Error historie gebied 104
3.10 HR (holding relais) gebied 104
3.11 TC (timer/counter) gebied 105
3.12 LR (link relais) gebied 106
3.13 Programmageheugen 106
3.14 TR (temporary relais) gebied 106
4 Instructieset 107
4.1 Notatie 107
4.2 Instructie formaat 107
4.3 Datagebieden, definer waarden en vlaggen 108
4.3.1 Indirect adresseren 109
4.3.2 Constanten benoemen 109
4.4 Gedifferentieerde instructies 109
4.5 Alfabetische instructielijst op mnemonic 110
4.6 Ladderdiagram instructies 113
4.6.1 LD, LD NOT, AND, AND NOT, OR en OR NOT 113
4.6.2 AND LD en OR LD 114
4.7 Bitcontrol instructies 114
4.7.1 Uitgangen en hulprelais aansturen - OUT en OUT NOT 114
4.7.2 Setten en resetten - SET en RSET 115
4.7.3 Op- en neergaande flanken - DIFU(13) en DIFD(14) 116
4.7.4 Status vasthouden - KEEP(11) 117
4.8 Interlocks - IL(02) en ILC(03) 119
4.9 Springen - JMP(04) en JME(05) 121
4.10 Programma einde - END(01) 122
4.11 No operation - NOP(00) 122
4.12 Timer en counter instructies 122
4.12.1 Timer - TIM 123
4.12.2 Highspeed timer - TIMH(15) 127
4.12.3 Interval timer - STIM(—) 128
4.12.4 Counter - CNT 129
4.12.5 Omkeerbare counter - CNTR(12) 132
pagina 4 CQM1 Programmeerhandleiding
OMRON
Inhoudsopgave
4.12.6 Registreer vergelijkingstabel - CTBL(—) 133
4.12.7 Mode control - INI(—) 137
4.12.8 Actuele waarde highspeed counter lezen - PRV(—) 138
4.13 Schuiven van data 139
4.13.1 Schuifregister - SFT(10) 140
4.13.2 Omkeerbaar schuifregister - SFTR(84) 142
4.13.3 Arithmetic shift left - ASL(25) 143
4.13.4 Arithmetic shift right - ASR(26) 143
4.13.5 Roteer links - ROL(27) 144
4.13.6 Roteer rechts - ROR(28) 144
4.13.7 Schuif één digit naar links - SLD(74) 145
4.13.8 Schuif één digit naar rechts - SRD(75) 145
4.13.9 Schuif woord - WSFT(16) 145
4.13.10 Asynchroon schuifregister - ASFT(—) 146
4.14 Data verplaatsen 147
4.14.1 Verplaatsen - MOV(21) 147
4.14.2 Verplaats geïnverteerd - MVN(22) 148
4.14.3 Set blok - BSET(71) 148
4.14.4 Verplaats blok - XFER(70) 149
4.14.5 Verwissel data - XCHG(73) 150
4.14.6 Distribueer één woord - DIST(80) 150
4.14.7 Verzamel data - COLL(81) 151
4.14.8 Verplaats bit - MOVB(82) 152
4.14.9 Verplaats digit - MOVD(83) 153
4.14.10 Verplaats bits - XFRB(—) 153
4.15 Datavergelijking 154
4.15.1 Vergelijken - CMP(20) 154
4.15.2 Dubbel vergelijken - CMPL(60) 156
4.15.3 Meervoudige woorden vergelijken - MCMP(19) 157
4.15.4 Bereiken vergelijken - BCMP(68) 158
4.15.5 Tabel vergelijken - TCMP(85) 159
4.15.6 Binair vergelijken met sign - CPS(—) 160
4.15.7 Dubbel binair vergelijken met sign - CPSL(—) 160
4.15.8 Bereik vergelijken met sign - ZCP(—) 161
4.15.9 Dubbel bereik vergelijken met sign - ZCPL(—) 162
4.16 Dataconversie 163
4.16.1 BCD naar binair - BIN(23) 163
4.16.2 Dubbel BCD naar dubbel binair - BINL(58) 164
4.16.3 Binair naar BCD - BCD(24) 164
4.16.4 Dubbel binair naar dubbel BCD - BCDL(59) 165
4.16.5 4 naar 16 decoder - MLPX(76) 165
4.16.6 16 naar 4 encoder - DMPX(77) 167
4.16.7 7 segment decoder - SDEC(78) 168
4.16.8 ASCII conversie - ASC(86) 170
4.16.9 ASCII naar hexadecimaal - HEX(—) 171
4.16.10 Schalen - SCL(—) 173
4.16.11 Signed binair naar BCD schalen - SCL2(—) 174
4.16.12 BCD naar signed binair schalen - SCL3(—) 176
4.16.13 Uren naar seconden - SEC(—) 177
4.16.14 Seconden naar uren - HMS(—) 178
4.16.15 Kolom naar woord - LINE(—) 179
4.16.16 Woord naar kolom - COLM(—) 179
4.16.17 2's complement - NEG(—) 180
4.16.18 Dubbel 2's complement - NEGL(—) 181
4.17 BCD calculaties 181
4.17.1 Increment - INC(38) 182
4.17.2 Decrement - DEC(39) 182
4.17.3 Zet Carry - STC(40) 182
4.17.4 Wis Carry - CLC(41) 182
4.17.5 BCD optellen - ADD(30) 183
4.17.6 Dubbel BCD optellen - ADDL(54) 184
4.17.7 BCD aftrekken - SUB(31) 185
4.17.8 Dubbel BCD aftrekken - SUBL(55) 186
4.17.9 BCD vermenigvuldigen - MUL(32) 188
CQM1 Programmeerhandleiding pagina 5
Inhoudsopgave
OMRON
4.17.10 Dubbel BCD vermenigvuldigen - MULL(56) 188
4.17.11 BCD Delen - DIV(33) 189
4.17.12 Dubbel BCD delen - DIVL(57) 190
4.17.13 Wortel trekken - ROOT(72) 190
4.18 Binaire berekeningen 191
4.18.1 Binair optellen - ADB(50) 192
4.18.2 Dubbel binair optellen - ADBL(—) 193
4.18.3 Binair aftrekken - SBB(51) 194
4.18.4 Dubbel binair aftrekken - SBBL(—) 196
4.18.5 Binair vermenigvuldigen - MLB(52) 197
4.18.6 Signed binair vermenigvuldigen - MBS(—) 198
4.18.7 Dubbel signed binair vermenigvuldigen - MBSL(—) 198
4.18.8 Binair delen - DVB(53) 199
4.18.9 Signed binair delen - DBS(—) 200
4.18.10 Dubbel signed binair delen - DBSL(—) 200
4.19 Speciale rekenkundige instructies 201
4.19.1 Vind maximum - MAX(—) 201
4.19.2 Vind minimum - MIN(—) 202
4.19.3 Gemiddelde waarde - AVG(—) 203
4.19.4 Tel reeks op - SUM(—) 204
4.19.5 Lineaire benadering - APR(—) 206
4.20 Logische instructies 208
4.20.1 Complement - COM(29) 209
4.20.2 Logische AND - ANDW(34) 209
4.20.3 Logische OR - ORW(35) 209
4.20.4 Exclusive OR - XORW(36) 210
4.20.5 Exclusive NOR - XNRW(37) 210
4.21 Subroutine en interrupt aansturing 211
4.21.1 Overzicht 211
4.21.2 Subroutine definitie en return - SBN(92)/RET(93) 211
4.21.3 Subroutine aanroep - SBS(91) 212
4.22 Step instructies 213
4.22.1 Stap definitie en stap starten - STEP(08) / SNXT(09) 213
4.23 Speciale instructies 220
4.23.1 Failure alarm en severe failure alarm - FAL(06) / FALS(07) 220
4.23.2 Toon boodschap - MSG(46) 220
4.23.3 Bit counter - BCNT(67) 222
4.23.4 I/O Refresh - IORF(97) 222
4.23.5 Data tracing - TRSM(45) 222
4.23.6 Macro - MCRO(—) 223
4.23.7 Frame checksum - FCS(—) 223
4.23.8 Failure point detection - FPD(—) 225
4.23.9 Interrupt beheer - INT(89) 228
4.23.10 Puls - PULS(—) 230
4.23.11 Speed output - SPED(—) 231
4.23.12 Puls output - PLS2(—) 232
4.23.13 Acceleration control - ACC(—) 234
4.23.14 Puls met variabele duty-ratio - PWM(-) 236
4.23.15 Data zoeken - SRCH(-) 237
4.23.16 PID control - PID(-) 238
4.24 Communicatie instructies 239
4.24.1 Receive - RXD(-) 239
4.24.2 Transmit - TXD(-) 240
4.25 Geavanceerde I/O instructies 242
4.25.1 7-Segment display output - 7SEG(-) 242
4.25.2 Digital switch input - DSW(-) 242
4.25.3 Hexadecimal key input -HKY(-) 243
4.25.4 TEN KEY INPUT - TKY(-) 243
5 Appendix 245
5.1 Conversietabel hexadecimaal, BCD, binair 245
5.2 Conversietabel hex, ASCII 245
5.3 Index 246
pagina 6 CQM1 Programmeerhandleiding
OMRON

Voor wat betreft deze handleiding

De CQM1 is een compacte, snelle PLC die ontworpen is voor geavanceerde besturingen met een bereik tot 192 I/O. Deze beknopte handleiding beschrijft de werking van de CQM1. Voor functies die in deze handleiding niet worden besproken verwijzen wij u naar de overige handleidingen.
Voor wat betreft deze handleiding
Voorzichtig
Sectie 1:
Deze sectie verklaart de basisstappen en -concepten die bekend moeten zijn bij het schrijven van een eenvoudig ladderdiagram programma. Daarnaast wordt het invoeren van dat programma en het uitvoeren door de PLC ervan behandeld. De instructies die nodig zijn om de basisopzet van het ladderdiagram vast te leggen en die de executie beïnvloeden worden uitgelegd.
Sectie 2:
De PC Setup bevat diverse operating parameters die de werking van de CQM1 bepalen. Om maximaal gebruik te maken van de CQM1 functionaliteit wanneer interrupt processing en communicatie functies gebruikt worden kan de PC Setup "op maat" ingesteld worden, afhankelijk van de taak die uitgevoerd moet worden.
Sectie 3:
Verschillende typen data zijn nodig om een besturing effectief en correct te kunnen laten werken. Om met deze verschillende typen data overweg te kunnen is de PLC voorzien van een aantal geheugengebieden voor data opslag, waarbij elk gebied een andere functie heeft. Deze verschillende gebieden worden hier individueel besproken waarbij alle informatie die nodig is om het te kunnen gebruiken wordt gegeven.
Sectie 4:
De OMRON SYSMAC CQM1 PLC beschikt over een uitgebreide instructieset die het mogelijk maakt dat gecompliceerde processen eenvoudig geprogrammeerd kunnen worden. Deze sectie beschrijft de instructies individueel en geeft het ladderdiagram symbool, de data gebieden die gebruikt kunnen worden en de vlaggen die door de instructie beïnvloed worden.
Appendix:
In de appendix is diverse informatie over de CQM1 opgenomen. Aan deze handleiding is de grootst mogelijke zorg besteed. Mochten er ondanks deze zorg nog
onjuistheden of onduidelijkheden vermeld zijn, dan stellen wij ons uitdrukkelijk niet aansprakelijk voor eventuele gevolgen. Voor suggesties ter verbetering houden wij ons aanbevolen.
Schrijven en invoeren van het programma
CQM1 PC Setup
Geheugengebieden
Instructieset
Lees deze handleiding nauwkeurig en wees er zeker van dat u de hierin weergegeven informatie goed begrijpt voor u begint met het programmeren van een OMRON PLC.
CQM1 Programmeerhandleiding pagina 7
OMRON

Schrijven en invoeren van het programma

1 Schrijven en invoeren van het programma
Deze sectie verklaart de basisstappen en -concepten die bekend moeten zijn bij het schrijven van een eenvoudig ladderdiagram programma. Daarnaast wordt het invoeren van dat programma en het uitvoeren door de PLC ervan behandeld. De instructies die nodig zijn om de basisopzet van het ladderdiagram vast te leggen en die de executie beïnvloeden worden uitgelegd. De complete instructieset die tijdens het programmeren gebruikt kan worden, is beschreven in het hoofdstuk over de instructieset.
1.1 Terminologie
Er worden in beginsel twee typen instructies gebruikt bij ladderdiagram programmeren. Instructies die verbanden leggen tussen de voorwaarden in het ladderdiagram en die in instructievorm alleen zichtbaar zijn wanneer een programma wordt omgezet naar mnemonics en instructies die in een ladderdiagram aan het einde van de executieconditie geplaatst worden en uitgevoerd worden wanneer deze conditie “hoog” is.
De meeste instructies hebben minimaal 1 of meer operands. Operands wijzen of geven de data aan waarop de instructie uitgevoerd moet worden. Deze data wordt soms ingevoerd als constante numerieke waarde, maar is meestal het adres van het woord of bit die de te gebruiken data bevat. Bijvoorbeeld, een MOVE instructie die 000 als bron (source) operand heeft, verplaatst de inhoud van woord 000 naar een andere locatie. Deze andere locatie wordt ook als operand ingevoerd. Een bit waarvan het adres is gebruikt als operand wordt een operandbit genoemd; een woord waarvan het adres is gebruikt als operand wordt een operandwoord genoemd. Als de waarde wordt ingevoerd als constante dan wordt het voorafgegaan door # om aan te geven dat het geen adres is.
Andere termen die gebruikt worden voor het omschrijven van instructies worden geïntroduceerd in het hoofdstuk "Instructieset" op pagina 107.
1.2 Basis ladderdiagrammen
Een ladderdiagram bestaat uit één verticale lijn aan de linkerzijde waaruit één of meer horizontale lijnen naar rechts met vertakkingen ontstaan. De verticale lijn aan de linkerzijde heet de “bus bar”; de horizontale lijnen heten instructieregels of rungs. Een onderling verbonden groep van instructieregels wordt een netwerk genoemd. Op de instructieregels zijn condities geplaatst die leiden naar instructies aan de rechterzijde van het diagram. De logische combinaties van deze condities bepalen wanneer en hoe de instructies aan de rechterzijde worden uitgevoerd. Hieronder wordt een ladderdiagram dat uit twee netwerken bestaat getoond.
000.00 063.15
000.01
001.00 000.02
001.00
000.11
Zoals getoond in het bovenstaande diagram kunnen instructieregels aftakken en weer bij elkaar komen. De verticale paren lijnen worden condities of contacten genoemd. Condities zonder diagonale lijn er doorheen worden normaal open condities genoemd en corresponderen met een LD (load) AND, of OR instructie. De condities met een diagonale lijn erdoor worden normaal gesloten condities genoemd en corresponderen met een LD NOT, AND NOT, of OR NOT instructie. Het nummer boven elke conditie geeft het operandbit voor deze instructie aan. Een naam onder de conditie geeft het label van het operandbit aan. De status van het met de conditie geassocieerde bit bepaalt de executieconditie voor de er op volgende instructies of condities.
252.08
000.03
HR00.50
HR01.09
LR25.03 244.00
005.01 005.02 005.03 005.04
000.07
TIM001 LR05.15
210.01 210.02
210.05 210.07
244.01
004.03 004.05
Instructie
Instructie
CQM1 Programmeerhandleiding pagina 9
Schrijven en invoeren van het programma
De manier waarop de uitvoering van de instructies leiden tot een bepaalde executieconditie wordt hieronder beschreven. Voor we ons hier echter mee bezig gaan houden zullen er eerst een aantal basisbegrippen uitgelegd worden.
1.2.1 Basis begrippen
OMRON
Normaal open / normaal gesloten condities
Executiecondities
Operandbits
Logische blokken
Elke conditie in een ladderdiagram is aan of uit, afhankelijk van de status van het operandbit dat eraan is toegewezen. Een normaal open conditie is aan als het operandbit aan is en uit als het operandbit uit is. Een normaal gesloten conditie is aan als het operandbit uit is en uit als het operandbit aan is. Normaal gesproken gebruikt u een normaal open conditie wanneer u wilt dat iets gebeurd als een bit aan is en een normaal gesloten conditie wanneer u iets wilt laten gebeuren als een bit uit is.
000.00
Normaal open conditie
00000
Normaal gesloten conditie
Instructie
Instructie
Instructie wordt uitgevoerd als bit 000.00 AAN is
Instructie wordt uitgevoerd als bit 000.00 UIT is
Bij ladderdiagramprogrammering bepaalt de logische combinatie van aan en uit condities voor een instructie de samengestelde conditie waardoor de instructie wordt uitgevoerd. Deze conditie, die aan of uit kan zijn, wordt de executieconditie voor deze instructie genoemd. In principe hebben alle instructies anders dan de LD instructies executiecondities.
Het operand dat aan een ladder instructie wordt toegewezen kan elk bit in de IR, SR, HR, AR, LR, of TC gebieden zijn. Dit betekent dat de status van condities in een ladderdiagram kan worden bepaald door I/O bits, vlaggen, werkbits, timers/counters, etc. LOAD (LD) en OUT (OUT) instructies kunnen ook bits uit het TR gebied gebruiken, maar dit kan alleen in een aantal speciale gevallen. Zie hiervoor "Vertakkende instructie regels" op pagina 20 voor details.
De manier waarop condities instructies aansturen wordt bepaald door de relatie tussen de condities in de instructieregels die voor deze instructies zijn geplaatst. Elke reeks condities die samen een logisch resultaat creëren wordt een logisch blok genoemd. Deze term moet niet verward worden met de blokken die in SYSWIN gebruikt kunnen worden om een programma te structureren. Alhoewel netwerken geschreven kunnen worden zonder de individuele logische blokken waaruit ze zijn opgebouwd te begrijpen, is het analyseren van de logische blokken noodzakelijk om efficiënt te kunnen programmeren en is het zelfs essentieel wanneer programma’s ingevoerd moeten worden in mnemonic code.
1.2.2 Mnemonic code
Het ladderdiagram kan niet direct in de PLC ingevoerd worden. Het is noodzakelijk om het ladderdiagram om te zetten naar mnemonic code. Deze mnemonic code voorziet in exact dezelfde informatie als het ladderdiagram, maar dan in een vorm die direct op de PLC ingevoerd kan worden. Feitelijk kunt u een programma direct schrijven in mnemonic code, alhoewel het niet aan te raden is voor beginners of voor complexe programma’s. Samengevat, onafhankelijk van het gebruikte programmeerapparaat wordt het programma in het PLC geheugen opgeslagen in mnemonic formaat. Dit maakt het belangrijk om deze mnemonic code te begrijpen.
Vanwege het belang van mnemonic code voor het compleet begrijpen van een programma, wordt de mnemonic code tegelijk met het ladderdiagram uitgelegd. Onthoud dat het niet noodzakelijk is om mnemonic code te gebruiken als u het programma met SYSWIN invoert. Alhoewel u mnemonic code, als u er de voorkeur aan geeft, wel kan gebruiken.
Programmageheugen
pagina 10 CQM1 Programmeerhandleiding
Het programma wordt ingevoerd op adressen in het programmageheugen (UM). Adressen in het programmageheugen verschillen iets van de adressen in andere geheugengebieden, omdat elk adres niet per se dezelfde hoeveelheid data hoeft te bevatten. Elk adres bevat één instructie met alle constanten, labels (definers) en operands (dit wordt later in detail beschreven) die nodig zijn voor die instructie. Omdat sommige instructies geen operands nodig hebben, terwijl andere tot maximaal drie operands nodig hebben kunnen, programmageheugen adressen één tot vier woorden lang zijn.
OMRON
Schrijven en invoeren van het programma
Programmageheugen adressen starten op regel 00000 en lopen door tot de capaciteit van het programmageheugen uitgeput is. Het eerste woord van elke regel definieert de instructie. Alle operands van de instructie worden er achter geprogrammeerd, op dezelfde regel. De overige woorden die door een instructie benodigd zijn bevatten de operands die bepalen welke data gebruikt moet worden. Wanneer een programma wordt omgezet naar mnemonic code, worden instructies in dit formaat genoteerd, één instructie op een regel, zoals ze in het ladderdiagram getoond worden. Een voorbeeld van mnemonic code wordt hieronder getoond. De gebruikte instructies worden beschreven in "Basis ladderdiagrammen" op pagina 9 en in "Instructieset" op pagina 107.
Adres Instructie Operands
00000 LD HR00.01 00001 AND 000.01 00002 OR 000.02 00003 LD NOT 001.00 00004 AND 001.01 00005 AND LD 001.02 00006 MOV(21) 000 DM0000 00007 CMP(20) DM0000 HR00 00008 LD 255.05 00009 OUT 105.01 00010 MOV(21) DM0000 DM0500 00011 DIFU(13) 205.02 00012 AND 000.05 00013 OUT 105.03
Tijdens het invoeren van mnemonic code in SYSWIN wordt de instructienaam gescheiden van de operands door een Tab of spaties. De operands onderling worden ook gescheiden door spaties of Tab.
Tijdens het programmeren wordt het adres waarop de instructie wordt geplaatst automatisch bepaald. Boven in de editor laat SYSWIN het eerste programmageheugen adres van het netwerk zien. Wanneer een programma omgezet wordt naar mnemonic code, is het aan te raden om op programma geheugen adres 00000 te beginnen tenzij er een specifieke reden is om ergens anders te beginnen. SYSWIN begint altijd op adres 00000.
1.2.3 Ladder instructies
De ladder instructies zijn die instructies die aangestuurd worden door de condities in het ladderdiagram. Ladder instructies onafhankelijk of in combinatie met de hieronder beschreven logische blok instructies, vormen de executiecondities waarop de uitvoering van alle andere instructies is gebaseerd.
LD en LD NOT
AND en AND NOT
CQM1 Programmeerhandleiding pagina 11
De eerste conditie waarmee elk logisch blok begint in een ladderdiagram is de LD of LD NOT instructie. Elk van deze instructies heeft één regel mnemonic code nodig. "Instructie" is gebruikt als een dummy instructie in de volgende voorbeelden en kan elke van de aan de rechterkant in het ladderdiagram geplaatste instructies zijn. Deze instructies worden ook wel aangeduid met “right-hand” of “uitvoerende” instructies.
000.00
Een LOAD instructie
000.00
Een LOAD NOT instructie
Adres Instructie Operands
00000 LD 000.00 00001 Instructie 00002 LD NOT 000.00 00003 Instructie
Wanneer er maar één conditie in de instructieregel staat dan is de executieconditie voor de instructie aan de rechterkant aan wanneer deze conditie aan is. In het bovenstaande voorbeeld zal voor de LD instructie (dit is een normaal open conditie) de executieconditie aan zijn wanneer 000.00 aan is. Voor de LD NOT instructie (dit is een normaal gesloten conditie) zal het aan zijn wanneer 000.00 uit is.
Wanneer twee of meer condities in serie zijn geplaatst op dezelfde instructieregel, wordt de eerste met een LD of LD NOT instructie geprogrammeerd. De rest van de
Schrijven en invoeren van het programma
000.00
condities worden met AND of AND NOT instructies ingevoerd. Het volgende voorbeeld toont drie instructies die van af de linkerkant gezien een LD, een AND NOT en een AND instructie voorstellen. Elk van deze instructies heeft één regel mnemonic code nodig.
OR en OR NOT
000.00
Adres Instructie Operands
00000 LD 000.00 00001 AND NOT 001.00 00002 AND LR00.00 00003 Instructie
De instructie zal alleen een aan executieconditie hebben wanneer alle drie de condities aan zijn. Dit wil zeggen, wanneer 000.00 aan is, 001.00 uit is en LR00.00 aan is.
AND instructies in serie kunnen individueel beschouwd worden, waarbij elke AND de logische and uitvoert tussen de executieconditie (d.w.z., het totaal van alle condities tot aan dit punt) en de status van het operandbit van de AND instructie. Wanneer beide aan zijn, dan wordt een aan executieconditie aangemaakt voor de volgende instructie. Wanneer een van de twee of beide uit zijn dan is het resultaat ook uit. De executieconditie voor de eerste AND instructie in een serie is de status van de eerste conditie op de instructie regel.
Elke AND NOT instructie in een serie bepaalt de logische AND van de executieconditie en de inverse van het operandbit.
Wanneer twee of meer condities op verschillende instructie regels liggen die parallel lopen en vervolgens samenkomen, dan wordt de eerste conditie met een LD of LD NOT instructie ingevoerd; de overige condities met OR of OR NOT instructies. Het volgende voorbeeld toont drie condities die ingevoerd moeten worden (in volgorde vanaf de bovenste) met een LD NOT, een OR NOT en een OR instructie. Wederom heeft elk van deze instructies één regel mnemonic code nodig.
001.00 LR00.00
OMRON
Instructie
AND en OR Combineren
001.00
LR00.00
Adres Instructie Operands
00000 LD NOT 000.00 00001 OR NOT 001.00 00002 OR LR00.00 00003 Instructie
Instructie
De instructie heeft een aan executieconditie wanneer één van de drie condities aan is, dat wil zeggen wanneer 000.00 uit is of 001.00 uit is of wanneer LR00.00 aan is.
OR en OR NOT instructies kunnen individueel beschouwd worden waarbij elke instructie de logische OR uitvoert tussen de executieconditie en de status van het bij de OR instructie horende operandbit. Als één van beide aan is dan wordt een aan executieconditie gegenereerd voor de volgende instructie.
Wanneer AND en OR instructies gecombineerd worden in meer gecompliceerde diagrammen, kunnen ze soms ook individueel beschouwd worden, waarbij elke instructie een logische bewerking uitvoert op de executieconditie en de status van het operandbit. Het volgende is een voorbeeld. Bestudeer dit voorbeeld tot u ervan overtuigd bent dat de mnemonic code dezelfde logica voorstelt als het ladderdiagram.
000.00
000.01 000.02
002.00
000.03 Instructie
Adres Instructie Operands
00000 LD 000.00 00001 AND 000.01 00002 OR 002.00 00003 AND 000.02 00004 AND NOT 000.03
pagina 12 CQM1 Programmeerhandleiding
OMRON
000.00
002.00
OUT en OUT NOT
Schrijven en invoeren van het programma
00005 Instructie
Hier wordt een AND berekend tussen de status van 000.00 en die van 000.01 om de executieconditie voor een OR met de status van 002.00 te bepalen. Het resultaat van deze bewerking bepaalt de executieconditie voor een AND met de status van 000.02, welke op zijn beurt de executieconditie bepaalt voor een AND met het inverse (AND NOT) van de status van 000.03.
In meer gecompliceerde diagrammen is het echter noodzakelijk om de juiste opbouw van de logische blokken te bedenken voor een executieconditie bepaald kan worden voor de laatste instructie. Dit is waar de AND LD en OR LD instructies worden gebruikt. Voor echter deze gecompliceerde diagrammen behandeld gaan worden, worden eerst de instructies beschreven die benodigd zijn om een eenvoudig "input-output" programma te kunnen maken.
De eenvoudigste manier om de resultaten van gecombineerde executiecondities te bepalen is om het direct vast te leggen met de OUT en OUT NOT instructies. Deze instructies worden gebruikt om de status van het gebruikte operandbit aan te sturen, afhankelijk van de executieconditie. Met de OUT instructie wordt het operandbit aan gezet zolang als de executieconditie aan is. Met de OUT NOT instructie zal het operandbit aan gezet worden zolang de executieconditie uit is en uit gezet worden zolang de executieconditie aan is. Ze verschijnen in het ladderdiagram zoals hieronder getoond. In mnemonic code gebruikt elk van deze instructies één regel.

1.2.4 De END instructie

000.01
Adres Instructie Operands
00000 LD 000.00 00001 OUT 002.00
Adres Instructie Operands
00000 LD 000.01 00001 OUT NOT 002.01
002.01
In het bovenstaande voorbeeld zal 002.00 aan zijn zolang als 000.00 aan is en
002.01 zal uit zijn zolang als 000.01 uit is. In dit voorbeeld kunnen 000.00 en
000.01 input bits zijn en 002.00 en 002.01 output bits toegewezen aan I/O units die door de PLC aangestuurd worden. De signalen die binnen komen door de ingangen 000.00 en 000.01 sturen respectievelijk de output punten 002.00 en
002.01 aan. De tijd dat een bit aan of uit is kan gemanipuleerd worden door de OUT of OUT
NOT instructie te combineren met TIMER instructies. Raadpleeg "Timer - TIM" op pagina 123 voor details.
De laatste instructie die benodigd is om een eenvoudig programma te kunnen completeren is de END instructie. Wanneer de CPU het programma verwerkt, worden alle instructies uitgevoerd tot de eerste END instructie. Hierna zal terug gegaan worden naar het begin van het programma en zal het opnieuw uitgevoerd worden. Alhoewel een END instructie op elk punt in het programma geplaatst kan worden, wat soms gedaan wordt voor debugging, zal geen enkele instructie na de eerste END instructie uitgevoerd worden tot deze END verwijderd wordt. Het nummer dat achter de END instructie staat in de mnemonic code is de functiecode. De functiecode kan gebruikt worden om een functie in te voeren, dit wordt later beschreven. De END instructie heeft geen operands nodig en wordt niet voorafgegaan door een executieconditie op de instructieregel.
000.00
000.01 Instructie
END(01)
Adres Instructie Operands
00000 LD 000.00 00001 AND NOT 000.01 00002 Instructie 00003 END(01)
Programma uitvoer stopt hier
CQM1 Programmeerhandleiding pagina 13
Schrijven en invoeren van het programma
000.00
000.02
Als er niet ergens in het programma een END instructie staat zal het programma niet uitgevoerd worden.
U kent nu alle instructies die nodig zijn om eenvoudige “input-output” programma’s te schrijven. Voor we stoppen met de basis ladderdiagrammen en ons bezig gaan houden met complexere instructies zullen we ons eerst verdiepen in de logische blok instructies (AND LD en OR LD), die soms ook in eenvoudige programma’s noodzakelijk zijn.

1.2.5 Logische blok instructies

Logisch blok instructies zijn niet verbonden met specifieke condities in het ladderdiagram. Ze beschrijven de relatie tussen logische blokken in een netwerk. De AND LD instructie voert een logische AND uit op de executiecondities die twee logische blokken produceren. De OR LD instructie voert een logische OR uit tussen de executiecondities die twee logische blokken produceren.
AND LD
Alhoewel het onderstaande netwerk eenvoudig lijkt, is er een AND LD instructie noodzakelijk om het te programmeren.
OMRON
000.00
000.01
000.02 Instructie
000.03
De twee logische blokken worden aangegeven met de gestreepte lijnen. Bestudering van het voorbeeld toont dat een aan executieconditie wordt geproduceerd wanneer: één van beide condities in het linker logisch blok aan is (dat is, wanneer 000.00 of 000.01 aan is) en wanneer één van beide condities in het rechter logisch blok aan is (dat is, wanneer 000.02 aan is of 000.03 uit is).
Het bovenstaande ladderdiagram kan echter niet omgezet worden naar mnemonic code met alleen AND en OR instructies. Wanneer een AND tussen 000.02 en het resultaat van de OR tussen 000.00 en 000.01 wordt uitgevoerd, raakt de OR NOT tussen 000.02 en 000.03 verloren en zal uitgevoerd worden als een OR NOT tussen alleen 000.03 en het resultaat van de AND tussen 000.02 en de eerste OR. Dit is uitgebeeld in de onderstaande figuur. Een OR functie wordt altijd uitgevoerd met een contact aan de busbar.
Instructie
000.01
000.03
Wat hier nodig is, is een manier om beide OR functies onafhankelijk uit te voeren en de resultaten naderhand te combineren. Om dit te realiseren kunnen we de LD of LD NOT instructie in het midden van een instructieregel toepassen. Wanneer LD of LD NOT op deze manier wordt uitgevoerd, dan wordt de huidige executieconditie opgeslagen in een speciale buffer en het logische proces opnieuw gestart. Voor het combineren van het resultaat van de huidige executieconditie met dat van een vorige “ongebruikte” executieconditie, kan een AND LD of een OR LD instructie gebruikt worden. In dit geval refereert "LD" naar het laden van de laatste ongebruikte executieconditie. Een ongebruikte executieconditie wordt aangemaakt voor elke LD of LD NOT instructie, behalve de eerste, in een netwerk.
Wordt het eerste ladderdiagram geanalyseerd dan is de instructie voor 000.00 een LD en voor de conditie eronder een OR instructie tussen de status van 000.00 en die van 000.01. De instructie voor 000.02 is een volgende LD en voor de conditie eronder is het een OR NOT instructie, dat is een OR tussen de status van 000.02 en de inverse van de status van 000.03. Om vervolgens de executieconditie voor de instructie aan de rechterkant te bepalen moet de logische AND van de executiecondities geproduceerd door deze twee blokken berekend worden. De AND LD instructie doet dit. De mnemonic code van het ladderdiagram is beneden getoond. De AND LD instructie heeft geen operands nodig, omdat het berekeningen uitvoert met tevoren bepaalde executiecondities.
Adres Instructie Operands
00000 LD 000.00
pagina 14 CQM1 Programmeerhandleiding
OMRON
OR LD
Logische blok instructies in series
Schrijven en invoeren van het programma
00001 OR 000.01 00002 LD 000.02 00003 OR NOT 000.03 00004 AND LD
Het volgende diagram gebruikt een OR LD instructie tussen het logische blok boven en het logische blok beneden. Een aan executieconditie zal gegenereerd worden voor de instructie aan de rechterkant wanneer of 000.00 aan is en 000.01 uit is, of wanneer 000.02 en 000.03 beide aan zijn. De werking van de OR LD instructie en de mnemonic code ervan is identiek aan die van de AND LD instructie, behalve dat de logische OR wordt bepaald tussen de huidige executieconditie en de laatste ongebruikte executieconditie.
000.00
000.01
Adres Instructie Operands
00000 LD 00000 00001 AND NOT 00001 00002 LD 00002 00003 AND 00003 00004 OR LD
Natuurlijk gebruiken sommige netwerken zowel de AND LD als de OR LD instructies.
Om een diagram te coderen waar meerdere logische blok instructies in voorkomen, moet het diagram verdeeld worden in logische blokken. Elk blok wordt begonnen door een LD instructie voor de eerste conditie te gebruiken en vervolgens wordt AND LD of OR LD gebruikt om de blokken logisch te combineren. Met zowel AND LD als OR LD zijn er twee manieren om dit te realiseren. Één manier is om de logische blok instructie na de eerste twee blokken in te voeren en vervolgens na elk volgend blok. De andere manier is om eerst alle blokken die samengevoegd moeten worden te coderen en daarna de logische blok instructies die ze samenvoegen. In dit geval zullen de laatste twee blokken eerst gecombineerd moeten worden en vervolgens elk voorgaande blok, op deze manier terug werkend naar het eerste blok. Alhoewel beide methoden exact hetzelfde resultaat produceren, kan de tweede methode, die waarbij alle logische blok instructies samen geprogrammeerd worden, alleen gebruikt worden wanneer acht of minder blokken gecombineerd moeten worden. Dat is wanneer zeven of minder logische blok instructies gebruikt moeten worden.
Het volgende netwerk gebruikt AND LD in mnemonic code omdat drie paar parallelle condities in serie liggen. Beide opties voor het coderen worden getoond.
000.00
000.02
000.03
000.02
000.04
Instructie
105.00
000.01
Adres Instructie Operands
00000 LD 000.00 00001 OR NOT 000.01 00002 LD NOT 000.02 00003 OR 000.03 00004 AND LD 00005 LD NOT 000.04 00006 OR 000.05 00007 AND LD 00008 OUT 105.00
Adres Instructie Operands
00000 LD 000.00 00001 OR NOT 000.01 00002 LD NOT 000.02 00003 OR 000.03 00004 LD NOT 000.04 00005 OR 000.05 00006 AND LD 00007 AND LD 00008 OUT 105.00
000.03
000.05
CQM1 Programmeerhandleiding pagina 15
Schrijven en invoeren van het programma
Met de onderste methode kunnen maximaal acht blokken samengevoegd worden. Er is geen limiet aan het aantal blokken dat met de eerste methode gecombineerd kan worden.
Het volgende netwerk gebruikt OR LD instructies in mnemonic code aangezien drie paar AND condities parallel aan elkaar liggen.
000.00
000.01
OMRON
105.01
AND LD en OR LD combineren
000.02
000.40
000.03
000.05
De eerste conditie van elke reeks wordt begonnen met een LD instructie en vervolgens wordt een AND uitgevoerd met de volgende conditie. De eerste twee blokken kunnen eerst gecodeerd worden, gevolgd door een OR LD, daarna het laatste blok gevolgd door een volgende OR LD; of de drie blokken kunnen eerst gecodeerd worden, gevolgd door twee OR LD’s. De mnemonic code van beide methoden is hieronder getoond.
Adres Instructie Operands
00000 LD 000.00 00001 AND NOT 000.01 00002 LD NOT 000.02 00003 AND NOT 000.03 00004 OR LD 00005 LD 000.04 00006 AND 000.05 00007 OR LD 00008 OUT NOT 105.01
Adres Instructie Operands
00000 LD 000.00 00001 AND NOT 000.01 00002 LD NOT 000.02 00003 AND NOT 000.03 00004 LD 000.04 00005 AND 000.05 00006 OR LD 00007 OR LD 00008 OUT NOT 105.01
Beide codeer methoden die hierboven beschreven zijn kunnen ook gebruikt worden wanneer AND LD en OR LD gecombineerd gebruikt worden, zolang het aantal blokken niet boven de acht komt.
Het volgende diagram bevat twee logische blokken zoals getoond. Het is niet noodzakelijk om blok b te splitsen aangezien het direct met AND en OR gecodeerd kan worden.
000.00 000.02
000.01 000.03
105.01
002.01
000.04
Blok a Blok b
Adres Instructie Operands
00000 LD 000.00 00001 AND NOT 000.01 00002 LD 000.02 00003 AND 000.03 00004 OR 002.01 00005 OR 000.04 00006 AND LD 00007 OUT 105.01
Alhoewel het volgende netwerk lijkt op het bovenstaande, kan blok b hieronder niet gecodeerd worden zonder het eerst in twee blokken te splitsen die met OR LD samen gevoegd worden. In dit voorbeeld worden de drie blokken eerst gecodeerd, vervolgens wordt een OR LD gebruikt om de laatste twee blokken te combineren, gevolgd door een AND LD om de executieconditie geproduceerd door de OR LD met de executieconditie van blok a te combineren.
pagina 16 CQM1 Programmeerhandleiding
OMRON
Schrijven en invoeren van het programma
Wanneer de logische blok instructies samen aan het einde van de logische blokken gecombineerd worden moeten ze zoals hieronder getoond in omgekeerde volgorde ingevoerd worden. D.w.z., de logische blok instructie voor de laatste twee blokken wordt eerst gecodeerd worden, gevolgd door de instructie die de executieconditie van de eerste logische blok instructie en de executieconditie van het logische blok aan het begin (derde vanaf het einde) van het programma combineert.
Blok b1
Gecompliceerde diagrammen
000.00 000.02
000.01 000.03
002.02
000.04
Blok b2
Blok a Blok b
Adres Instructie Operands
00000 LD NOT 000.00 00001 AND 000.01 00002 LD 000.02 00003 AND NOT 000.03 00004 LD NOT 000.04 00005 AND 002.02 00006 OR LD 00007 AND LD 00008 OUT 105.02
105.02
Wanneer bepaald moet worden welke logische blok instructies nodig zijn om een netwerk te kunnen coderen, is het soms noodzakelijk om het netwerk in grote blokken onder te verdelen en vervolgens deze grote blokken weer onder te verdelen in logische blokken die zonder logische blok instructies gecodeerd kunnen worden. Deze blokken worden vervolgens gecodeerd door eerst de kleine blokken samen te voegen en vervolgens de grotere. AND LD en OR LD worden gebruikt om blokken samen te voegen; deze instructies combineren altijd de laatste twee bestaande executiecondities, onafhankelijk of deze executiecondities zijn ontstaan uit een enkele conditie, uit logische blokken of van voorgaande logische blok instructies.
Wanneer er complexe netwerken gemaakt worden, worden blokken van af het begin van het netwerk (links boven) gecodeerd, waarbij indien mogelijk eerst naar beneden wordt gegaan en daarna naar rechts binnen het netwerk. In het algemeen houdt dit in dat wanneer er een keuze is de OR LD voor de AND LD gecodeerd zal worden.
Het volgende netwerk moet eerst verdeeld worden in twee blokken en elk van deze wordt vervolgens weer onderverdeeld in twee blokken voor het gecodeerd kan worden. Zoals hieronder getoond benodigen de blokken a en b een AND LD. Voor de AND LD gebruikt kan worden moet echter OR LD gebruikt worden om de blokken, boven en onder aan beide kanten, samen te voegen, om dus a1 en a2; b1 en b2 samen te voegen.
Blok b1Blok a1
000.00 000.04
000.01 000.05
000.07
000.03000.02
Blok a2
Blok a Blok b
Adres Instructie Operands
00000 LD 000.00 00001 AND NOT 000.01 00002 LD NOT 000.02 00003 AND 000.03 00004 OR LD 00005 LD 000.04 00006 AND 000.05 00007 LD 000.06
000.06
Blok b2
105.03
CQM1 Programmeerhandleiding pagina 17
Schrijven en invoeren van het programma
LR00.00
00008 AND 000.07 00009 OR LD 00010 AND LD 00011 OUT 105.03
Het volgende type netwerk kan gemakkelijk gecodeerd worden als elk blok in volgorde wordt gecodeerd: Eerst van boven naar beneden, vervolgens van links naar rechts. In het volgende netwerk zullen de blokken a en b samen gevoegd worden door AND LD te gebruiken zoals hierboven getoond. Vervolgens zal blok c worden gecodeerd en een tweede AND LD zal gebruikt worden om het samen te voegen met de executieconditie van de eerste AND LD. Vervolgens wordt blok d gecodeerd en een derde AND LD gebruikt voor het samen voegen van de executieconditie van de tweede AND LD met de conditie van blok d, enzovoort tot en met blok n.
Blok a Blok b Blok c Blok n
Het volgende netwerk gebruikt een OR LD, gevolgd door een AND LD om het bovenste deel van de code te programmeren, vervolgens zijn er nog twee OR LD’s nodig om de code af te maken.
000.00
000.01
OMRON
105.00
LR00.00
000.02 000.03
000.04
000.06
Adres Instructie Operands
00000 LD 000.00 00001 LD 000.01 00002 LD 000.02 00003 AND NOT 000.03 00004 OR LD 00005 AND LD 00006 LD NOT 000.04 00007 AND 000.05 00008 OR LD 00009 LD NOT 000.06 00010 AND 000.07 00011 OR LD 00012 OUT LR00.00
000.05
000.07
Alhoewel het programma uitgevoerd zal worden zoals het getekend is, kan het netwerk getekend worden zoals hieronder waardoor de eerste OR LD en AND LD niet meer noodzakelijk zijn. Hierdoor wordt het programma vereenvoudigd waardoor u ruimte in het programmageheugen bespaart en het programma sneller uitgevoerd zal worden.
000.02 000.03
000.00
000.01
000.04
000.06
Adres Instructie Operands
00000 LD 000.02 00001 AND NOT 000.03 00002 OR 000.01 00003 AND 000.00 00004 LD NOT 000.04 00005 AND 000.05 00006 OR LD 00007 LD NOT 000.06 00008 AND 000.07
000.05
000.07
pagina 18 CQM1 Programmeerhandleiding
OMRON
Schrijven en invoeren van het programma
00009 OR LD 00010 OUT LR00.00
Het volgende netwerk gebruikt vijf blokken, welke hier eerst in volgorde gecodeerd worden voordat OR LD en AND LD gebruikt worden om ze, vanaf de laatste twee blokken terugwerkend, samen te voegen. De OR LD op programma-adres 00008 voegt de blokken d en e samen, de volgende AND LD voegt de ontstane executieconditie samen met dat van blok c, etc.
000.00
Blok a Blok b
000.01
000.02
Blok c Blok d
000.04
000.03
000.06
000.05
000.07
Blok e
Adres Instructie Operands
00000 LD 000.00 00001 LD 000.01 00002 AND 000.02 00003 LD 000.03 00004 AND 000.04 00005 LD 000.05 00006 LD 000.06 00007 AND 000.07 00008 OR LD 00009 AND LD 00010 OR LD 00011 AND LD 00012 OUT LR00.00
Ook dit netwerk kan hertekend worden om de programmastructuur en codering te vereenvoudigen en om programmageheugen te sparen.
000.06 000.07 000.00
000.03
000.04
LR00.00
LR00.00
000.05
000.01
000.02
Adres Instructie Operands
00000 LD 000.06 00001 AND 000.07 00002 OR 000.05 00003 AND 000.03 00004 AND 000.04 00005 LD 000.01 00006 AND 000.02 00007 OR LD 00008 AND 000.00 00009 OUT LR00.00
Het volgende en laatste voorbeeld ziet er op het eerste gezicht erg ingewikkeld uit, maar kan gecodeerd worden door gebruik te maken van slechts twee logische blok instructies. Het netwerk ziet er als volgt uit:
Blok a
105.00
010.00
000.02
010.01 000.06
105.00
000.03
Blok b
000.05000.00 000.01 000.04
Blok c
De eerste logische blok instructie wordt gebruikt om de executiecondities uit de blokken a en b samen te voegen, de tweede voegt de executieconditie van blok c samen met de executieconditie die ontstaat uit de normaal gesloten conditie die aan 000.03 is toegewezen. De rest van het netwerk kan gecodeerd worden met OR, AND en NOT instructies. De logische flow van het netwerk met de resulterende code is hieronder getoond.
CQM1 Programmeerhandleiding pagina 19
Schrijven en invoeren van het programma
OMRON
Blok a
000.00 000.01
LD
000.00
000.01
AND
OR LD
105.00
OR 005.00
00002
AND
AND NOT
010.00 010.01
AND
000.03
000.02
000.03
Adres Instructie Operands
00000 LD 000.00 00001 AND 000.01 00002 LD 010.00 00003 AND 010.01 00004 OR LD 00005 OR 105.00 00006 AND 000.02 00007 AND NOT 000.03 00008 LD 000.04 00009 AND 000.05 00010 OR 000.06 00011 AND LD 00012 OUT 105.00
LD
Blok b
AND LD
105.00
010.00
010.01
000.04
LD AND
LD
Blok c
000.05
000.04
000.05
000.06
000.06

1.2.6 Het coderen van meerdere “uitvoerende” instructies

Wanneer er meer dan één “uitvoerende” instructie geactiveerd moet worden door dezelfde executieconditie, dan worden ze opeenvolgend gecodeerd volgend op de laatste conditie van de instructie regel. In het volgende voorbeeld, heeft de laatste instructie regel één conditie meer, een AND met 000.04.
000.00
000.01
000.02
HR00.00
000.03
000.04
Adres Instructie Operands
00000 LD 000.00 00001 OR 000.01 00002 OR 000.02 00003 OR HR00.00 00004 AND 000.03 00005 OUT HR00.01 00006 OUT 105.00 00007 AND 000.04 00008 OUT 105.06
HR00.01
105.00
105.06
1.3 Programmeer overwegingen

1.3.1 Vertakkende instructie regels

Wanneer een instructieregel vertakt in twee of meer lijnen is het soms noodzakelijk om interlocks of TR bits te gebruiken om de executieconditie op het punt van de
pagina 20 CQM1 Programmeerhandleiding
OMRON
TR bits
Schrijven en invoeren van het programma
vertakking vast te leggen. Dit is nodig omdat de instructieregels uitgevoerd worden tot aan een “right-hand” instructie voordat er teruggegaan wordt naar het punt van de vertakking om de instructies aan de andere takken uit te voeren. Als er een conditie is opgenomen in één van de instructie regels na de aftakking, dan kan de executieconditie veranderd zijn als er weer terug gegaan wordt naar het knooppunt van de vertakking, waardoor juiste programma-uitvoer onmogelijk wordt. Het volgende netwerk illustreert dit. In beide netwerken wordt instructie 1 uitgevoerd voordat teruggesprongen wordt naar het knooppunt van de vertakking en verder wordt gegaan met de aftakking die leidt naar instructie 2.
Aftak
000.00
punt
000.02
Netwerk A: Correcte Werking
Adres Instructie Operands
00000 LD 000.00 00001 Instructie 1 00002 AND 000.02 00003 Instructie 2
Aftak
000.00
Netwerk B: Incorrecte Werking
Adres Instructie Operands
00000 LD 000.00 00001 AND 000.01 00002 Instructie 1 00003 AND 000.02 00004 Instructie 2
punt
000.01
000.02
Wanneer, zoals getoond is in netwerk A, de executieconditie die aanwezig was op de aftakking niet veranderd is wanneer er teruggesprongen wordt naar de aftakking (instructies aan de meest rechterzijde van het netwerk beïnvloeden de executieconditie niet), dan zal de aftaklijn correct uitgevoerd worden en hoeven er geen speciale programmeermaatregelen genomen te worden.
Wanneer, zoals getoond in netwerk B, een conditie is opgenomen tussen het aftakpunt en de laatste instructie op de bovenste instructieregel, dan zal de executieconditie op het aftakpunt en de executieconditie na uitvoer van de bovenste instructieregel soms anders zijn, waardoor het onmogelijk is om een correcte verwerking van de aftakking te verzekeren.
Er zijn twee manieren om programma aftakkingen te programmeren en om de executieconditie vast te houden. De ene is het gebruik van TR bits; de andere is het gebruik van interlocks (IL(02) / IL(03)).
Het TR gebied voorziet in acht bits, TR 0 tot en met TR 7, die kunnen worden gebruikt om executiecondities tijdelijk op te slaan. Als een TR bit is geplaatst op een aftakpunt, dan wordt de huidige executieconditie opgeslagen op het gekozen TR bit. Wanneer er teruggekeerd wordt naar het aftakpunt, dan kan het TR bit gebruikt worden om de executiestatus, die was opgeslagen toen het aftakpunt de eerste keer werd uitgevoerd, terug te halen voor programma executie.
Het voorgaande netwerk B kan worden geschreven zoals beneden om zeker te zijn van correcte werking. In mnemonic code wordt de executieconditie opgeslagen door op het aftakpunt een TR bit te gebruiken als operand van een OUT instructie. Deze executieconditie wordt vervolgens teruggehaald na de uitvoer van de “right­hand” instructie door hetzelfde TR bit te gebruiken als operand van een LD instructie
Instructie 1
Instructie 2
Instructie 1
Instructie 2
TR0
000.00
Netwerk B: Gecorrigeerd met een TR bit
000.01 Instructie 1
000.02 Instructie 2
CQM1 Programmeerhandleiding pagina 21
Schrijven en invoeren van het programma
Adres Instructie Operands
00000 LD 000.00 00001 OUT TR0 00002 AND 000.01 00003 Instructie 1 00004 LD TR0 00005 AND 000.02 00006 Instructie 2
Het bovenstaande netwerk voert de volgende actie uit: de status van 000.00 wordt geladen (een LD instructie) om de initiële executieconditie te bepalen. Deze executieconditie wordt vervolgens vastgelegd met een OUT instructie op TR0. Hiermee wordt de executieconditie op het aftakpunt vast gelegd. Vervolgens wordt een AND uitgevoerd tussen de executieconditie en de status van 000.01 en wordt instructie 1 dienovereenkomstig uitgevoerd. De executieconditie die was vastgelegd op het aftakpunt wordt vervolgens weer geladen (een LD instructie met TR0 als operand), er wordt een AND functie uitgevoerd tussen deze geladen executieconditie en de status van 000.02 en instructie 2 wordt dienovereenkomstig uitgevoerd.
Het volgende voorbeeld toont een applicatie die gebruik maakt van twee TR bits.
OMRON
TR0
000.00 000.01
000.04
000.05
Adres Instructie Operands
00000 LD 000.00 00001 OUT TR0 00002 AND 000.01 00003 OUT TR1 00004 AND 000.02 00005 OUT 105.00 00006 LD TR1 00007 AND 000.03 00008 OUT 105.01 00009 LD TR0 00010 AND 000.04 00011 OUT 105.02 00012 LD TR0 00013 AND NOT 000.05 00014 OUT 105.03
TR1
000.02
000.03
105.00
105.01
105.02
105.03
In dit voorbeeld worden TR0 en TR1 gebruikt om de executiecondities op de aftakpunten op te slaan. Na het uitvoeren van OUT 105.00 wordt de executieconditie die opgeslagen is in TR 1 geladen voor een AND met de status van 000.03. De executieconditie die opgeslagen is in TR0 wordt twee keer geladen, de eerste keer voor een AND met de status van 000.04 en de tweede keer voor een AND met de inverse van de status van 000.05.
TR bits kunnen zo vaak gebruikt worden als nodig is, zolang hetzelfde TR bit niet meer dan één keer gebruikt wordt in een instructie blok. In dit geval begint een nieuw instructie blok elke keer wanneer de programma uitvoering terugkeert naar de busbar. Als het, in een enkel instructie block, noodzakelijk is om meer dan acht verschillende aftakkingen te programmeren kunnen interlocks (die hierna uitgelegd worden) gebruikt worden. In deze situatie kan het ook aan te raden zijn om het programma te vereenvoudigen.
Wees voorzichtig, wanneer u een ladderdiagram tekent, om geen TR bits te gebruiken tenzij dit noodzakelijk is. Vaak kan het aantal instructies dat nodig is om een programma te schrijven drastisch verminderd en het programma zelf duidelijker worden door het netwerk dusdanig te tekenen dat er geen (of zo weinig mogelijk) TR bits noodzakelijk zijn. In de onderstaande voorbeelden gebruiken de netwerken geen TR relais en minder code. In het eerste voorbeeld wordt dit gerealiseerd door de onderdelen van het netwerk anders te plaatsen. Bij het tweede voorbeeld gebeurt dit door de tweede output in een eigen netwerk te
pagina 22 CQM1 Programmeerhandleiding
OMRON
Opmerking
Schrijven en invoeren van het programma
plaatsen en door er een aparte LD instructie voor te programmeren om de juiste executieconditie te creëren.
Alhoewel het vereenvoudigen van programma’s altijd van belang is, is soms ook de volgorde van uitvoering van belang. Bijvoorbeeld, een MOVE instructie kan noodzakelijk zijn voor de uitvoering van een BINARY ADD instructie om de juiste data in het gebruikte operandwoord te plaatsen. Deze instructie zal dan ook voor de BINARY ADD moeten blijven staan. Overweeg altijd eerst de volgorde van uitvoering voor het programma vereenvoudigd wordt.
TR0
000.00
000.00
000.00 000.03
000.01 Instructie 1
Instructie 2
Instructie 2
000.01 Instructie 1
Instructie 1
Interlocks
Opmerking
TR0
000.01
000.01
000.00
000.01
000.02
000.04
000.02
000.04
Instructie 2
000.03 Instructie 1
Instructie 2
TR bits worden alleen gebruikt wanneer er geprogrammeerd wordt in mnemonic code. In een ladderdiagram moet echter ook rekening worden gehouden met het aantal aftakpunten dat TR bits nodig heeft en de methoden om het aantal instructies dat nodig is om een netwerk te programmeren te verminderen. Wanneer een netwerk meer dan acht TR relais of meer dan acht AND LD of OR LD instructies gebruikt geeft SYSWIN een foutmelding.
Het probleem van de opslag van executiecondities op aftakkingen kan ook worden opgelost door de interlock (IL(02)) en interlock clear (ILC(03)) instructies te gebruiken om het aftakpunt compleet te elimineren en toch een specifieke executieconditie een groep instructies aan te laten sturen. De interlock en interlock clear instructies worden altijd in combinatie gebruikt.
Wanneer een interlock instructie voor een sectie van een ladderdiagram programma wordt geplaatst, dan zal de executieconditie voor de interlock instructie de uitvoering van alle instructies tot aan de volgende interlock clear instructie beheren. Als de executieconditie voor de interlock instructie uit is, dan zullen alle “right-hand” instructies tot aan de volgende interlock clear instructie uitgevoerd worden met een uit conditie en zo de gehele sectie ladderdiagram resetten. Het effect dat dit heeft op bepaalde instructies is beschreven in hoofdstuk “interlocks ­il(02) en ilc(03)” op pagina 119.
Netwerk B uit het hoofdstuk “vertakkende instructie regels” kan ook uitgevoerd worden met een interlock. In dit geval zullen de condities die leiden naar het aftakpunt geplaatst worden in de instructieregel voor de interlock instructie, alle regels vanaf het aftakpunt worden geschreven als aparte instructieregels en een nieuwe instructieregel wordt toegevoegd voor de interlock clear instructie. Er zijn geen condities toegestaan in de instructieregel voor de interlock clear. Merk dat zowel de interlock als de interlock clear geen operands heeft.
CQM1 Programmeerhandleiding pagina 23
Schrijven en invoeren van het programma
000.00
000.01
000.02
Adres Instructie Operands
00000 LD 000.00 00001 IL(02) 00002 LD 000.01 00003 Instructie 1 00004 LD 000.02 00005 Instructie 2 00006 ILC(03)
Als 000.00 aan is in de gereviseerde versie van netwerk B hierboven, dan zullen de statussen van 000.01 en 000.02 de executiecondities voor de instructies 1 en 2 bepalen. Wanneer 000.00 aan is zal dit hetzelfde resultaat geven als een AND met de status van deze bits. Als 000.00 uit is, dan zal de interlock instructie een uit executieconditie genereren voor de instructies 1 en 2 en de uitvoer van het programma zal doorgaan met de instructieregel die volgt op de interlock clear instructie.
Zoals getoond in het volgende diagram kan meer dan één interlock instructie gebruikt worden binnen een instructie blok: elke interlock is echter effectief tot de eerst volgende interlock clear instructie.
000.00
000.01
000.02
000.03
000.04
000.05
000.06
OMRON
IL(02)
Instructie 1
Instructie 2
ILC(03)
IL(02)
Instructie 1
IL(02)
Instructie 2
Instructie 3
Instructie 4
ILC(03)
Adres Instructie Operands
00000 LD 000.00 00001 IL(02) 00002 LD 000.01 00003 Instructie 1 00004 LD 000.02 00005 IL(02) 00006 LD 000.03 00007 AND NOT 000.04 00008 Instructie 2 00009 LD 000.05 00010 Instructie 3 00011 LD 000.06 00012 Instructie 4 00013 ILC(03)
Als 000.00 in het bovenstaande diagram uit is (d.w.z., als de executieconditie voor de eerste interlock instructie uit is), worden de instructies 1 t/m 4 uitgevoerd met uit executiecondities en zal de programma-uitvoer verder gaan met de instructie na de interlock clear instructie. Als 000.00 aan is, dan zal de status van 000.01 geladen worden als executieconditie voor instructie 1 en vervolgens zal de status van
000.02 geladen worden om de executieconditie voor de tweede interlock instructie te bepalen. Als 000.02 uit is dan zullen de instructies 2 tot en met 4 uitgevoerd worden met uit executiecondities. Als 000.02 aan is, dan zullen 000.03, 000.05 en
000.06 de eerste executieconditie in de nieuwe instructieregels bepalen.
pagina 24 CQM1 Programmeerhandleiding
OMRON
1.3.2 Springen
Schrijven en invoeren van het programma
Een specifieke sectie van een programma kan worden overgeslagen, afhankelijk van een hiervoor gebruikte executieconditie. Alhoewel het gelijk is aan wat er gebeurt wanneer de executieconditie voor een interlock instructie uit is, behouden met sprongen de operands van alle instructies hun status. Sprongen kunnen daarom gebruikt worden om apparatuur te bedienen die een aanhoudende aansturing nodig hebben, bijvoorbeeld pneumatiek and hydrauliek, terwijl interlocks gebruikt kunnen worden om apparatuur te bedienen die geen aanhoudende aansturing nodig hebben, bijvoorbeeld elektronische instrumenten.
Sprongen worden gecreëerd met de JMP(04) en JME(05) instructies. Wanneer de executieconditie voor een JMP instructie aan is, dan wordt het programma normaal uitgevoerd, alsof de sprong niet bestaat. Is de executieconditie voor de JMP instructie uit, dan verplaatst de programma uitvoering zich direct naar de JME instructie zonder dat de status van iets tussen de JMP en JME instructie verandert.
Alle JMP en JME instructies krijgen sprongnummers toegewezen die liggen tussen 00 en 99. Er zijn twee typen sprongen. Het gebruikte sprongnummer bepaalt het type van de sprong.
Een sprong met het sprongnummer 01 t/m 99 kan maar één keer gedefinieerd worden. D.w.z., elk van deze nummers mag één keer gebruikt worden in een JMP instructie en één keer gebruikt worden in een JME instructie. Wanneer een JMP instructie waaraan één van deze nummers is toegewezen wordt uitgevoerd, dan verplaatst de programma uitvoer zich direct naar de JME instructie met hetzelfde nummer, alsof het programma ertussen niet bestaat. Het netwerk B van het TR bit en interlock voorbeeld kan hertekend worden, zoals hieronder getoond, met een sprong. Alhoewel 01 gebruikt is als het sprong nummer, kan elk nummer tussen de 01 en 99 gebruikt worden zolang het niet gebruikt wordt in een ander deel van het programma. JMP en JME gebruiken geen andere operand en JME heeft nooit condities in de instructieregel ervoor.
000.00 JMP(04)
01
000.01
Instructie 1
000.02
Instructie 2
JME(05)
01
Netwerk B: gecorrigeerd met een sprong
Adres Instructie Operands
00000 LD 000.00 00001 JMP(04) 01 00002 LD 000.01 00003 Instructie 1 00004 LD 000.02 00005 Instructie 2 00006 JME(05) 01
Deze versie van netwerk B zal een kortere executietijd hebben wanneer 000.00 uit is dan de andere versies.
Het andere type sprong wordt gecreëerd met een sprongnummer 00. Net zoveel sprongen als gewenst kunnen gecreëerd worden door sprongnummer 00 te gebruiken. JMP instructies met nummer 00 kunnen opeenvolgend gebruikt worden zonder dat er een JME tussen gebruikt wordt. Het is zelfs mogelijk om alle JMP 00 instructies naar dezelfde JME 00 te laten springen, dus slechts één JME 00 instructie is benodigd voor alle JMP 00 instructies in het programma. Wanneer 00 wordt gebruikt als sprongnummer voor een JMP instructie, dan wordt de programma uitvoer vervolgd bij de instructie die volgt op de JME instructie met sprongnummer 00. Alhoewel, zoals bij alle sprongen, geen statussen veranderd worden en geen instructies uitgevoerd worden tussen de JMP 00 en JME 00 instructies, zal het programma zoeken naar de volgende JME 00 instructie, waardoor een enigszins langere executie tijd wordt gecreëerd.
CQM1 Programmeerhandleiding pagina 25
Schrijven en invoeren van het programma
000.00
De uitvoering van programma’s die meerdere JMP 00 instructies bevatten voor een JME 00 instructie is gelijk aan dat van het voorbeeld met meerdere interlock instructies. Het volgende voorbeeld is hetzelfde als het voorbeeld dat gebruikt is bij het interlock voorbeeld hierboven, het is alleen hertekend met sprongen. De uitvoering van dit diagram zal verschillen van het voorbeeld hierboven. In het vorige diagram zouden de interlocks bepaalde delen van het programma resetten. Sprongen daarentegen veranderen geen enkele status tussen de JMP en JME instructies.
000.01
000.02
000.03
000.04
000.05
000.06
OMRON
JMP(04)
00
Instructie 1
JMP(04) 00
00
Instructie 2
Instructie 3
Instructie 4
Adres Instructie Operands
00000 LD 000.00 00001 JMP(04) 00 00002 LD 000.01 00003 Instructie 1 00004 LD 000.02 00005 JMP(04) 00 00006 LD 000.03 00007 AND NOT 000.04 00008 Instructie 2 00009 LD 000.05 00010 Instructie 3 00011 LD 000.06 00012 Instructie 4 00013 JME(05) 00

1.4 Bit statussen aansturen

Er zijn in het algemeen vijf instructies die gebruikt kunnen worden om individuele bits aan te sturen. Dit zijn de OUT, OUT NOT, DIFU, DIFD en KEEP instructies. Al deze instructies verschijnen als de laatste instructie in een instructieregel en gebruiken een bitadres als operand. Alhoewel details gegeven worden in de sectie “bitcontrol instructies” worden deze instructies, behalve de OUT en OUT NOT die al geïntroduceerd zijn, hier beschreven vanwege hun belangrijke functie in de meeste programma’s. Deze instructies kunnen gebruikt worden om outputbits in het IR gebied aan en uit te sturen, om signalen te geven naar externe apparatuur, maar ze kunnen ook gebruikt worden om andere bits in het IR gebied of andere bits in andere datagebieden in de PLC aan te sturen.
JME(05)
00

1.4.1 DIFFERENTIATE UP en DIFFERENTIATE DOWN

DIFU en DIFD instructies worden gebruikt om het operandbit aan te sturen voor één scan op de op- of neergaande flank van de executieconditie. De DIFU instructie zet het operandbit aan voor één scan nadat de executieconditie ervoor van uit naar aan gaat (opgaande flank); De DIFD instructie zet het operandbit aan voor één scan nadat de executieconditie ervoor van aan naar uit gaat (neergaande flank).
pagina 26 CQM1 Programmeerhandleiding
OMRON
1.4.2 KEEP
Schrijven en invoeren van het programma
000.00
DIFU(13)
092.00
000.01
DIFD(14)
092.01
Adres Instructie Operands
00000 LD 000.00 00001 DIFU(13) 092.00
Adres Instructie Operands
00002 LD 000.01 00003 DIFD(14) 092.01
In dit voorbeeld zal 092.00 voor één scan aan gaan wanneer 000.00 aan gaat. De volgende keer dat DIFU(13) 092.00 uitgevoerd wordt gaat 092.00 uit, onafhankelijk van de status van 000.00. Bit 092.00 zal pas weer door de DIFU(13) instructie aangestuurd kunnen worden wanneer 000.00 eerst uit is geweest. Met de DIFD instructie zal 092.01 aan gezet worden voor één scan nadat 000.01 uit gaat (092.01 zal tot dan uit zijn) en zal de volgende keer dat DIFD(14) 092.01 uitgevoerd wordt uit gezet worden.
De KEEP instructie wordt gebruikt om de status van het operandbit vast te houden, afhankelijk van twee executiecondities. Om dit te realiseren wordt de KEEP instructie aangestuurd door twee instructieregels. Wanneer de executieconditie aan het einde van de eerste instructieregel aan is, wordt het operandbit van de KEEP instructie aan gezet. Wanneer de executieconditie aan het einde van de tweede instructieregel aan is wordt het operandbit van de KEEP instructie uit gezet. Het operandbit van de KEEP instructie zal zijn aan of uit status handhaven als de executiecondities van beide instructieregels laag zijn, zelfs wanneer deze in een interlock (tussen IL en ILC) wordt gebruikt.
In het volgende voorbeeld wordt HR00.00 aangezet als 000.02 aan is en 000.03 uit is. HR00.00 zal dan dezelfde status handhaven tot 000.04 of 000.05 aan gaat. Bij KEEP zullen, zoals bij alle instructies die meer dan één instructieregel nodig hebben, de instructieregels gecodeerd worden voor de instructie die ze aansturen.
000.02 000.03 KEEP (11)
HR00.00
000.04
000.05
S: set voorwaarde
R: reset voorwaarde
Adres Instructie Operands
00000 LD 000.02 00001 AND NOT 000.03 00002 LD 000.04 00003 OR 000.05 00004 KEEP(11) HR00.00
1.4.3 Zelfhandhavende bits
Alhoewel de KEEP instructie gebruikt kan worden om zelfhandhavende bits (houd schakelingen) te programmeren, is het soms noodzakelijk om zelfhandhavende bits te creëren op een andere manier, bijvoorbeeld zodat ze uitgezet kunnen worden in een interlock in het programma.
Om een zelfhandhavend bit te creëren, zal het operandbit van de OUT instructie aan het einde van de instructieregel als conditie voor dezelfde OUT instructie in een OR verbinding in de instructieregel opgenomen moeten worden. Hierdoor zal het operandbit van de OUT instructie zijn aan of uit status handhaven tot er een verandering optreed in de andere bits in de instructieregel. Op zijn minst moet één andere conditie gebruikt worden vlak voor de OUT instructie om als reset te fungeren. Zonder deze reset zou er geen manier zijn om het operandbit van de OUT instructie laag te maken.
CQM1 Programmeerhandleiding pagina 27
Schrijven en invoeren van het programma
HR00.00
Het diagram hierboven voor de KEEP instructie kan herschreven worden zoals hieronder getoond is. Het enige verschil in deze diagrammen zou hun werking in een interlock zijn als de executieconditie voor de interlock instructie uit is. Zoals in het diagram met de KEEP instructie worden ook hier twee resetbits gebruikt. HR00.00 kan dus uitgezet worden door 000.04 en 000.05.
000.02 000.03
OMRON
000.04
HR00.00
Adres Instructie Operands
00000 LD 000.02 00001 AND NOT 000.03 00002 OR HR00.00 00003 LD NOT 000.04 00004 OR NOT 000.05 00005 AND LD 00006 OUT HR00.00

1.5 Werkbits (interne relais)

Om tijdens het programmeren condities zo te combineren dat ze direct de juiste executiecondities genereren is vaak behoorlijk ingewikkeld. Deze moeilijkheden zijn te overbruggen door bepaalde bits te gebruiken om andere instructies indirect aan te sturen. Dit kan gerealiseerd worden door werkbits te gebruiken. Meestal worden vele woorden gebruikt voor dit doel. Deze woorden worden vaak werkwoorden genoemd.
Werkbits sturen niets aan buiten de PLC en worden ook nergens direct door aangestuurd. Het zijn bits die geselecteerd kunnen worden door de programmeur om zoals hierboven beschreven te programmeren. I/O bits en andere bits met een functie kunnen niet gebruikt worden als werkbits. Alle bits in het IR gebied die niet gebruikt worden om I/O aan te sturen, alle bits in het HR en LR geheugen en sommige ongebruikte bits in het AR geheugen kunnen gebruikt worden als werkbits. Hou altijd een bestand bij waarin u noteert waarvoor en hoe u belangrijke werkbits gebruikt. Dit helpt bij het plannen, schrijven en debuggen van een programma.
000.05
1.5.1 Werkbit toepassingen
Zodra er moeilijkheden ontstaan bij het programmeren van een actie moet er rekening mee worden gehouden dat de toepassing van werkbits noodzakelijk is. Daarnaast kunnen werkbits ook gebruikt worden om een programma te vereenvoudigen.
Werkbits worden vaak gebruikt met de OUT, OUT NOT, DIFU, DIFD en KEEP instructies. Het werkbit dat wordt gebruikt als operand bij één van deze instructies kan later gebruikt worden in een conditie om te bepalen wanneer andere instructies uitgevoerd moeten worden. Werkbits kunnen ook gebruikt worden bij andere instructies, bijvoorbeeld bij de shift register instructie (SFT(10)).
Begrijpen van het gebruik van werkbits is essentieel voor effectief programmeren.

1.5.2 Reduceren van complexe condities

Werkbits kunnen gebruikt worden om programma’s te vereenvoudigen wanneer een bepaalde combinatie van condities vaker wordt gebruikt in combinatie met andere condities en instructies. In het volgende voorbeeld worden 000.00, 000.01,
000.02 en 000.03 gecombineerd tot een logisch blok waarvan de resulterende executieconditie wordt opgeslagen als de status van 246.00. 246.00 wordt vervolgens gebruikt met diverse andere condities om uitgangscondities te genereren voor 001.00, 001.01 en 001.02, om bijvoorbeeld de uitgangen die hieraan zijn toegewezen aan of uit te sturen.
pagina 28 CQM1 Programmeerhandleiding
OMRON
Schrijven en invoeren van het programma
000.00 000.01
000.02
000.03
246.00 000.04 000.05
246.00 000.05
000.04
246.00
000.06
000.07
Adres Instructie Operands
00000 LD 000.00 00001 AND NOT 000.01 00002 OR 000.02 00003 OR NOT 000.03 00004 OUT 246.00 00005 LD 246.00 00006 AND 000.04 00007 AND NOT 000.05 00008 OUT 101.00 00009 LD 246.00 00010 OR NOT 000.04 00011 AND 000.05 00012 OUT 101.01 00013 LD NOT 246.00 00014 OR 000.06 00015 OR 000.07 00016 OUT 101.02
246.00
101.00
101.01
101.02
1.5.3 Gedifferentieerde condities
Werkbits kunnen ook gebruikt worden wanneer een differentiatie van een conditie gebruikt moet worden voor sommige condities die nodig zijn om een instructie uit te voeren. In dit voorbeeld moet 101.00 aan blijven zolang als 000.01 aan is en zowel 000.02 als 000.03 uit zijn, of zo lang als 000.04 aan is en 000.05 uit is. Het bit moet voor één scan aangezet worden elke keer als 000.00 aan gaat, tenzij een van de voorgaande condities het continu aan houdt.
Deze actie kan eenvoudig geprogrammeerd worden door 225.00 te gebruiken als een werkbit voor de operand van de differentiate up instructie (DIFU(13)). Als
000.00 aan gaat, zal 225.00 voor één scan aan gezet worden en de volgende scan uit door de DIFU(13) instructie. Wanneer de andere condities die 101.00 aansturen het niet aan houden dan zal het werkbit 225.00 het bit 101.00 voor alleen één scan aan houden.
000.00
225.00
000.02000.01
000.03
000.04
000.05
Adres Instructie Operands
00000 LD 00.000 00001 DIFU(13) 225.00 00002 LD 225.00 00003 LD 000.01 00004 AND NOT 000.02
CQM1 Programmeerhandleiding pagina 29
DIFU(13)
225.00
101.00
Schrijven en invoeren van het programma
00005 AND NOT 000.03 00006 OR LD 00007 LD 000.04 00008 AND NOT 000.05 00009 OR LD 00010 OUT 101.00
1.6 Programmeer voorzorgsmaatregelen
Het aantal condities dat gebruikt kan worden in serie of parallel is ongelimiteerd, zolang het geheugen van de PLC maar niet overschreden kan worden. Programmeer daarom zoveel condities als nodig zijn om duidelijke netwerken te maken. Alhoewel met instructieregels complexe netwerken geschreven kunnen worden mogen er zich op de verticale lijnen, tussen instructieregels, in het diagram geen condities bevinden. Diagram A hieronder bijvoorbeeld is niet toegestaan en moet zoals diagram B getekend worden. De mnemonic code wordt alleen getoond voor diagram B, het coderen van diagram A is namelijk onmogelijk.
000.00
000.04
000.01
000.02
000.03
Diagram A
OMRON
Instructie 1
Instructie 2
000.01 000.04
000.00
000.00 000.04
000.01
Diagram B
Adres Instructie Operands
00000 LD 000.01 00001 AND 000.04 00002 OR 000.00 00003 AND 000.02 00004 Instructie 1 00005 LD 000.00 00006 AND 000.04 00007 OR 000.01 00008 AND NOT 000.03 00009 Instructie 2
000.02 Instructie 1
000.03 Instructie 2
Het aantal maal dat een specifiek bit toegewezen kan worden aan een conditie is niet gelimiteerd, u kunt ze dus zo vaak als noodzakelijk programmeren om uw programma te vereenvoudigen. Gecompliceerde netwerken ontstaan vaak door het zo kort mogelijk schrijven van programma’s of pogingen om bits een zo min mogelijk aantal keren te gebruiken.
Behalve voor de instructies waarbij condities niet toegestaan zijn (bijvoorbeeld de ILC en JME, zie hieronder), moet elke instructieregel minimaal één conditie bevatten om de executieconditie voor de “uitvoerende” instructie te bepalen. Diagram A, hieronder, moet hertekend worden als diagram B. Als een instructie continu uitgevoerd moet worden, bijvoorbeeld een uitgang die altijd hoog moet zijn als het programma verwerkt wordt, kan de altijd aan vlag (Always ON) uit het SR gebied gebruikt worden.
Diagram A: FOUT
253.13
Diagram B
Adres Instructie Operands
00000 LD 253.13 00001 Instructie
Instructie
Instructie
pagina 30 CQM1 Programmeerhandleiding
OMRON
Schrijven en invoeren van het programma
Er zijn een paar uitzonderingen op deze regel, bijvoorbeeld de ILC, JME en STEP instructies. Elk van deze instructies wordt gebruikt als tweede instructie van een paar en wordt aangestuurd door de executieconditie van de eerste instructie van het paar. In de instructieregels naar deze instructies moeten ook geen condities opgenomen worden. Raadpleeg "Instructieset" op pagina 107 voor details.
Wanneer u ladderdiagrammen aan het tekenen bent is het van belang om het aantal instructies dat nodig is om het te coderen in gedachten te houden. In diagram A hieronder is een OR LD instructie nodig om de twee instructieregels samen te voegen. Dit kan voorkomen worden door het te hertekenen zoals in dagram B. Hierdoor zijn er geen AND LD of OR LD instructies nodig. Raadpleeg "AND LD en OR LD" op pagina 114 voor meer details.
000.00
102.07
1.7 Programma uitvoer
Wanneer de programma uitvoer wordt gestart, scant de CPU het programma van de eerste naar de laatste regel, waarbij alle condities stuk voor stuk uitgevoerd worden. Het is belangrijk dat instructies in de juiste volgorde geplaatst worden zodat bijvoorbeeld de gewenste data naar een woord verplaatst wordt voordat dit woord wordt gebruikt als operand door een instructie. Onthoud dat een instructieregel uitgevoerd wordt tot aan de afsluitende "uitvoerende" instructie voordat een aftakkende instructieregel van deze eerste regel wordt uitgevoerd tot aan de "uitvoerende" instructie. De aftakkingen worden van boven naar beneden uitgevoerd.
Het uitvoeren van het programma is één van de taken die de CPU uit moet voeren tijdens een scan. De uiteindelijk cyclustijd van het programma wordt ook nog door andere factoren bepaald.
000.01 002.07
Adres Instructie Operands
00000 LD 000.00 00001 LD 000.01 00002 AND 002.07 00003 OR LD 00004 OUT 102.07
000.01 002.07
000.00
Adres Instructie Operands
00000 LD 000.01 00001 AND 002.07 00002 OR 000.00 00003 OUT 102.07
Diagram A
Diagram B
102.07
CQM1 Programmeerhandleiding pagina 31

CQM1 PC Setup

2 CQM1 PC Setup
De PC Setup bevat diverse parameters die de werking van de CQM1 bepalen. Voor maximaal gebruik van de functionaliteit van de CQM1, bij gebruik van interrupts en communicatiefuncties, kan de PC Setup "op maat" ingesteld worden afhankelijk van de taak die uitgevoerd moet worden.
Bij het verzenden van de CQM1 worden alle instellingen op default gezet zodat de CQM1 direct gebruikt kan worden zonder dat er instellingen aangepast moeten worden. Het is echter aan te raden om deze instellingen te controleren voordat u begint met programmeren.
Default waarden
De default waarden voor de PC Setup is 0000 voor alle woorden. De default waarden kunnen ingesteld worden door bit 252.10 aan te zetten.
OMRON
Voorzichtig
PC Setup veranderen
Opmerking
Opmerking
PC Setup inhoud
1, 2, 3...
Wanneer het datamemory (DM) wordt gewist met een programmeerapparaat, dan worden de settings in de PC Setup ingesteld op hun default waarde.
Veranderingen in de PC Setup instellingen zijn werkzaam of beïnvloeden de werking van de CQM1 op verschillende momenten, afhankelijk van de veranderde instellingen.
DM6600 t/m DM6614: Alleen werkzaam wanneer de CQM1 powersupply aangezet wordt.
DM6615 t/m DM6644: Alleen werkzaam wanneer de het uitvoeren van het programma begint.
DM6645 t/m DM6655: Direct werkzaam op elk moment dat de CQM1 aan staat. Veranderingen in de PC Setup zijn alleen effectief op de hierboven aangegeven
momenten. Wees er zeker van dat u de juiste maatregelen neemt voor u de veranderingen in de PC Setup aanbrengt en doorgaat met uw werkzaamheden.
Alhoewel de PC Setup is opgeslagen in DM6600 tot en met DM6655, kunnen de instellingen alleen gemaakt worden met een programmeerapparaat (bijvoorbeeld SYSWIN, handprogrammeerapparaat of SYSTOOLS). DM6600 t/m DM6644 kunnen alleen in de PROGRAM mode aangepast worden. DM6645 t/m DM6655 kunnen ingesteld worden in PROGRAM of MONITOR mode.
De PC Setup kan in het programma uitgelezen en niet beschreven worden. Schrijven kan alleen met een programmeerapparaat gebeuren.
Als een PC Setup instelling verkeerd is, dan wordt een niet fatale fout (errorcode 9B) gegenereerd op het moment dat de CQM1 deze instelling leest. Tegelijkertijd wordt het juiste bit tussen AR24.00 en AR24.02 aan gezet. De foute instelling zal door de CQM1 worden gelezen als default.
De PC Setup is verdeeld in drie categorieën:
1. Instellingen van de basis CQM1 werking en I/O processen
2. Instellingen van interrupts
3. Instellingen van communicatie Deze sectie verklaard de instellingen naar deze classificatie. De onderstaande
tabel toont de instellingen op volgorde van DM adres.
Woord Bit Functie
Startup processing (DM6600 t/m DM6614)
Tijdens de transfer van deze data moet de PLC in program mode staan en direct na de transfer moet de PLC uit/aan gezet worden.
DM6600 00 t/m 07 Startup mode (alleen actief als de 08 tot en met 15 op 02 ingesteld staan).
00: PROGRAM; 01: MONITOR; 02 : RUN
08 t/m 15 Startup mode keuze
00: Programmeerapparaat schakelaar 01: Vervolg in de mode die gebruikt werd voordat de spanning uitgezet werd 02: Instelling in 00 t/m 07
DM6601 00 t/m 07 Gereserveerd (zet op 00)
08 t/m 11
IOM Hold Bit (252.12) Status
0: Reset; 1: Handhaven
pagina 32 CQM1 Programmeerhandleiding
OMRON
Woord Bit Functie
12 t/m 15
DM6602 t/m DM6610 DM6611 00 t/m 15 CQM1-CPU43-E: Mode instelling voor de poorten 1 en 2
DM6612 00 t/m 15 CQM1-CPU44-E: Nulpunt compensatie instelling voor poort 2 (4 cijfers BCD)
Puls uitgang en cyclustijd instellingen (DM6615 t/m DM6619)
Tijdens de transfer van deze data moet de PLC in program mode staan. DM6615 00 t/m 07 Woord voor puls uitgang
DM6616 00 t/m 07 Servicingtijd voor de RS-232C poort (alleen actief wanneer de bits 08 t/m 15 op 01 staan)
DM6617 00 t/m 07 Servicingtijd voor de periferie poort (alleen actief wanneer de bits 08 t/m 15 op 01 staan)
DM6618 00 t/m 07 Cyclus monitor tijd (actief wanneer de bits 08 t/m 15 ingesteld staan op 01, 02 of 03)
DM6619 00 t/m 15 Cyclustijd
Interrupt processing (DM6620 t/m DM6639)
Tijdens de transfer van deze data moet de PLC in program mode staan. DM6620 00 t/m 03 Ingangstijdvertraging voor 000.00 t/m 000.07
DM6621 00 t/m 07 Ingangstijdvertraging voor 002 (Zelfde instelling als de bits 00 t/m 03 of DM6620)
DM6622 00 t/m 07 Ingangstijdvertraging voor 004 (Zelfde instelling als de bits 00 t/m 03 van DM6620)
DM6623 00 t/m 07 Ingangstijdvertraging voor 006 (Zelfde instelling als de bits 00 t/m 03 van DM6620)
DM6624 00 t/m 07 Ingangstijdvertraging voor 008 (Zelfde instelling als de bits 00 t/m 03 van DM6620)
DM6625 00 t/m 07 Ingangstijdvertraging voor 010 (Zelfde instelling als de bits 00 t/m 03 van DM6620)
DM6626 t/m DM6627 DM6628 00 t/m 03 Interrupt activeren voor 000.00 (0: Normale input; 1: Interrupt input)
DM6629 00 t/m 07 Aantal highspeed timers die op interrupt basis gerefreshed worden
DM6630 00 t/m 07 Eerste input refresh woord voor I/O interrupt 0: 00 t/m 11 (BCD)
00 t/m 15 Gereserveerd
00 t/m 07 CQM1-CPU45: Bereik instelling voor analoge ingangen, 2 bits per ingang
08 t/m 11 CQM1-CPU45: Input enable bits, 1 bit per ingang
08 t/m 15 Gereserveerd (zet op 00)
08 t/m 15 RS-232C poort servicing instelling activeren
08 t/m 15 Periferie poort servicing instelling activeren
08 t/m 15 Cyclus monitor activeren (Instelling in 00 t/m 07 x unit; 99s max.)
04 t/m 07 Ingangstijdvertraging voor 000.08 t/m 000.15 (Zelfde instelling als de bits 00 t/m 03) 08 t/m 15 Ingangstijdvertraging voor 001 (Zelfde instelling als de bits 00 t/m 03)
08 t/m 15 Ingangstijdvertraging voor 003 (Zelfde instelling als de bits 00 t/m 03 of DM6620)
08 t/m 15 Ingangstijdvertraging voor 005 (Zelfde instelling als de bits 00 t/m 03 van DM6620)
08 t/m 15 Ingangstijdvertraging voor 007 (Zelfde instelling als de bits 00 t/m 03 van DM6620)
08 t/m 15 Ingangstijdvertraging voor 009 (Zelfde instelling als de bits 00 t/m 03 van DM6620)
08 t/m 15 Ingangstijdvertraging voor 011 (Zelfde instelling als de bits 00 t/m 03 van DM6620) 00 t/m 15 Gereserveerd
04 t/m 07 Interrupt activeren voor 000.01 (0: Normale input; 1: Interrupt input) 08 t/m 11 Interrupt activeren voor 000.02 (0: Normale input; 1: Interrupt input) 11 t/m 15 Interrupt activeren voor 000.03 (0: Normale input; 1: Interrupt input)
08 t/m 15 Highspeed timer interrupt refresh activeren
08 t/m 15 Aantal input refresh woorden voor I/O interrupt 0: 00 t/m 12 (BCD)
Forced Status Hold Bit (252.11) Status
0: Reset; 1: Handhaven
0000: Highspeed counter mode; 0001: Puls uitgang mode CQM1-CPU44-E: Nulpunt compensatie instelling voor poort 1 (4 cijfers BCD)
00: -10 tot +10V, 01: 0 tot 10V, 10: 0 tot 5V/4 tot 20ma, 11: deze instelling niet gebruiken
0: ingang is actief, 1:ingang is niet actief
00: 100; 01: 101; 02: 102.... 15: 115
00 t/m 99 (BCD); Percentage van de cyclustijd gebruikt om de RS-232C poort te servicen
00: Stel geen servicetijd in 01: Gebruik de tijd in 00 t/m 07
00 t/m 99 (BCD); Percentage van de cyclustijd gebruikt om de periferie poort te servicen
00: Stel geen servicetijd in 01: Gebruik de tijd in 00 t/m 07
00 t/m 99 (BCD): Instelling (zie 08 t/m 15)
00: 120ms (instelling in bits 00 t/m 07 niet actief) 01: Instelling unit: 10ms 02: Instelling unit: 100ms 03: Instelling unit: 1s
0000: Variabel (geen minimum) 0001 t/m 9999 (BCD): Minimum tijd in ms
00: 8ms; 01: 1ms; 02: 2ms; 03: 4ms; 05: 16ms; 06: 32ms; 07: 64ms; 08: 128ms
00 t/m 15 (BCD; d.w.z. zet 15 voor TIM00 t/m TIM14)
00: 16 timers (instellingen in bits 00 t/m 07 buiten werking) 01: gebruik de instelling in 00 t/m 07
CQM1 PC Setup
CQM1 Programmeerhandleiding pagina 33
CQM1 PC Setup
Woord Bit Functie
DM6631 00 t/m 07 Eerste input refresh woord voor I/O interrupt 1: 00 t/m 11 (BCD)
08 t/m 15 Aantal input refresh woorden voor I/O interrupt 1: 00 t/m 12 (BCD)
DM6632 00 t/m 07 Eerste input refresh woord voor I/O interrupt 2: 00 t/m 11 (BCD)
08 t/m 15 Aantal input refresh woorden voor I/O interrupt 2: 00 t/m 12 (BCD)
DM6633 00 t/m 07 Eerste input refresh woord voor I/O interrupt 3: 00 t/m 11 (BCD)
08 t/m 15 Aantal input refresh woorden voor I/O interrupt 3: 00 t/m 12 (BCD)
DM6634 00 t/m 07 Eerste input refresh woord voor highspeed counter 1: 00 t/m 11 (BCD)
08 t/m 15 Aantal input refresh woorden voor highspeed counter 1: 00 t/m 12 (BCD)
DM6635 00 t/m 07 Eerste input refresh woord voor highspeed counter 2: 00 t/m 11 (BCD)
08 t/m 15 Aantal input refresh woorden voor highspeed counter 2: 00 t/m 12 (BCD)
DM6636 00 t/m 07 Eerste input refresh woord voor interval timer 0: 00 t/m 07 (BCD)
08 t/m 15 Aantal input refresh woorden voor interval timer 0: 00 t/m 08 (BCD)
DM6637 00 t/m 07 Eerste input refresh woord voor interval timer 1: 00 t/m 07 (BCD)
08 t/m 15 Aantal input refresh woorden voor interval timer 1: 00 t/m 08 (BCD)
DM6638 00 t/m 07 Eerste input refresh woord voor interval timer 2 (ook gebruikt voor highspeed counter 0): 00 t/m 08
(BCD)
08 t/m 15 Aantal input refresh woorden voor interval timer 2 (ook gebruikt voor highspeed counter 0)
00 t/m 07 (BCD)
DM6639 00 t/m 07 Output refresh methode
00: Cyclisch; 01: Direct
08 t/m 15 Aantal cijfers voor de DIGITAL SWITCH (DSW) instructie
00: 4 cijfers; 01: 8 cijfers
Highspeed counter instellingen (DM6640 t/m DM6644)
Tijdens de transfer van deze data moet de PLC in program mode staan. DM6640 t/m
DM6641 DM6642 00 t/m 03 Highspeed counter 0 mode
DM6643 00 t/m 03 CQM1-CPU43-E: poort 1 input instelling
DM6644 00 t/m 15 Poort 2 instellingen (Identiek aan de poort 1 instellingen in DM6643)
RS-232C poort instellingen
De volgende instellingen zijn direct actief na transfer naar de PLC. DM6645 00 t/m 07 Poort instellingen
DM6646 00 t/m 07 Baudrate
00 t/m 15 Gereserveerd
0: Up/down counter mode 4: Incrementele counter mode
04 t/m 07 Highspeed counter 0 reset mode
0: Z fase en software reset 1: Alleen software reset
08 t/m 15 Highspeed counter 0 activeren
00: Gebruik de highspeed counter niet 01: gebruik de highspeed counter zoals ingesteld op 00 t/m 07
0: Differential fase input; 1: Puls/Richting input; 2: Up/Down input CQM1-CPU44-E: poort 1 input instelling 0: 8-bit input; 1: 10-bit input; 2: 12-bit input
04 t/m 07 CQM1-CPU43-E: poort 1 reset instelling
0: Z fase en software reset; 1: Alleen software reset CQM1-CPU44-E: Niet gebruikt. Set t/m 0
08 t/m 11 CQM1-CPU43-E: poort 1 tel mode instelling
0: Lineaire mode; 1: Ring mode CQM1-CPU44-E: poort 1 mode instelling 0: BCD mode; 1: 360° mode
11 t/m 15 CQM1-CPU43-E: poort 1 puls type instelling
0: Standaard puls uitgang (0.5 duty-ratio); 1: Variabele duty-ratio puls uitgang CQM1-CPU44-E: Niet gebruikt. zet op 0
00: Standaard (1 start bit, 7 data bits, even pariteit, 2 stop bits, 9.600 bps) 01: instellingen in DM6646
08 t/m 11 Link woorden voor 1:1 link
0: LR 00 t/m LR 63; 1: LR 00 t/m LR 31; 2: LR 00 t/m LR 15
12 t/m 15 Communicatie mode
0: Hostlink; 1: RS-232C (geen protocol); 2: 1:1 datalink slave; 3: 1:1 datalink master
00: 1.2K, 01: 2.4K, 02:4.8K, 03: 9.6K, 04: 19.2K
OMRON
pagina 34 CQM1 Programmeerhandleiding
OMRON
Woord Bit Functie
08 t/m 15 Frame formaat
Waarde Start Lengte Stop Pariteit 00: 1 bit 7 bits 1 bit even 01: 1 bit 7 bits 1 bit oneven 02: 1 bit 7 bits 1 bit geen 03: 1 bit 7 bits 2 bit even 04: 1 bit 7 bits 2 bit oneven 05: 1 bit 7 bits 2 bit geen 06: 1 bit 8 bits 1 bit even 07: 1 bit 8 bits 1 bit oneven 08: 1 bit 8 bits 1 bit geen 09: 1 bit 8 bits 2 bit even 10: 1 bit 8 bits 2 bit oneven 11: 1 bit 8 bits 2 bit geen
DM6647 00 t/m 15 Transmissie vertraging (Hostlink)
0000 t/m 9999 (BCD) ingesteld in units van 10ms. D.w.z. een instelling van 0001 is gelijk aan 10ms
DM6648 00 t/m 07 Node nummer (Host link)
00 t/m 31 (BCD)
08 t/m 11 Start code activeren (RS-232C)
0: Deactiveren; 1: Actief
12 t/m 15 End code activeren (RS-232C)
0: Deactiveren (aantal bytes ontvangen) 1: Actief (gespecificeerde end code) 2: CR, LF
DM6649 00 t/m 07 Start code (RS-232C)
00 t/m FF (binair)
08 t/m 15 12 t/m 15 van DM6648 ingesteld op 0: Aantal bytes ontvangen
00: Default instelling (256 bytes) 01 t/m FF: 1 t/m 255 bytes
12 t/m 15 van DM6648 ingesteld op 1: End code (RS-232C)
00 t/m FF (binair)
Periferie poort instellingen
De volgende instellingen zijn direct actief na transfer naar de PLC. DM6650 00 t/m 07 Poort instellingen
00: Standaard (1 start bit, 7 data bits, even pariteit, 2 stop bits, 9.600 bps)
01: instellingen in DM6651 08 t/m 11 Gereserveerd 12 t/m 15 Communicatie mode
0: Hostlink; 1: RS-232C
DM6651 00 t/m 07 Baudrate
00: 1.2K, 01: 2.4K, 02:4.8K, 03: 9.6K, 04: 19.2K
Frame formaat
Waarde Start Lengte Stop Pariteit
00: 1 bit 7 bits 1 bit even
01: 1 bit 7 bits 1 bit oneven
02: 1 bit 7 bits 1 bit geen
03: 1 bit 7 bits 2 bit even
04: 1 bit 7 bits 2 bit oneven
05: 1 bit 7 bits 2 bit geen
06: 1 bit 8 bits 1 bit even
07: 1 bit 8 bits 1 bit oneven
08: 1 bit 8 bits 1 bit geen
09: 1 bit 8 bits 2 bit even
10: 1 bit 8 bits 2 bit oneven
11: 1 bit 8 bits 2 bit geen
DM6652 00 t/m 15 Transmissie vertraging (Hostlink)
0000 t/m 9999: in ms
DM6653 00 t/m 07 Node nummer (Host link)
08 t/m 11 Start code activeren (RS-232C)
0: Deactiveren; 1: Actief 12 t/m 15 End code activeren (RS-232C)
0: Deactiveren (aantal bytes ontvangen)
1: Actief (gespecificeerde end code)
2: CR, LF
DM6654 00 t/m 07 Start code (RS-232C)
00 t/m FF (binair)
CQM1 PC Setup
CQM1 Programmeerhandleiding pagina 35
CQM1 PC Setup
Bit150
Bit150
Woord Bit Functie
08 t/m 15 12 t/m 15 van DM6653 ingesteld op 0: Aantal bytes ontvangen
00: Default instelling (256 bytes) 01 t/m FF: 1 t/m 255 bytes
12 t/m 15 van DM6653 ingesteld op 1: End code (RS-232C)
00 t/m FF (binair)
Errorlog instellingen (DM6655)
De volgende instellingen zijn direct actief na transfer naar de PLC. DM6655 00 t/m 03 Stijl
0: Schuif door nadat 10 records zijn opgeslagen (FIFO) 1: Sla alleen de eerste 10 records op
2 t/m F: Sla geen records op 04 t/m 07 Gereserveerd 08 t/m 11 Cyclus tijd monitor activeren
0: Detecteer lange cyclussen als niet fatale errors
1: Detecteer te lange cyclussen niet 12 t/m 15 Lage batterijspanning error activeren
0: Detecteer een lage batterijspanning als niet fatale error
1: Detecteer een lage batterijspanning niet

2.1 Basis CQM1 werking en I/O afhandeling

OMRON
Startup mode (DM6600)
Hold bit status (DM6601)
RS-232C en periferie poort servicing tijden (DM6616 en DM6617)
De mode waarin de CQM1 zal starten als de spanning aangezet wordt, kan volgens de hieronder getoonde methode ingesteld worden.
DM6600
Startup mode (alleen actief als de 08 tot en met 15 op 02 ingesteld staan).
00 : PROGRAM mode 01 : MONITOR mode 02 : RUN mode
Startup Mode Instelling
00 : Programmeer apparaat schakelaar (RUN mode wanneer niet aanwezig) 01 : Vervolg in de mode die gebruikt werd voor dat de spanning afgezet was 02 : Instelling in 00 t/m 07
Default:
Programming Console Mode Selector
Maak de hieronder getoonde instellingen om te bepalen of, wanneer de powersupply aangezet wordt, het
Hold Bit
( 25212) de status zullen handhaven die actief was toen de spanning werd
Forced Status Hold Bit
(252.11) en/of het
IOM
uitgezet of dat de vorige status gewist wordt.
DM6601
00
Altijd 00
252.12 instelling 0 : Wis status 1 : Houd status
252.11 instelling 0 : Wis status 1 : Houd status
Default:
Het
Beide wissen
Forced Status Hold Bit
(252.11) bepaalt of de geforceerde set/reset statussen worden vastgehouden bij het veranderen van PROGRAM mode naar MONITOR mode.
Het
IOM Hold Bit
(252.12) bepaalt of de status van IR bits en LR bits wordt
vastgehouden wanneer de werking van de CQM1 wordt gestart en gestopt. De volgende instelling wordt gebruikt om het percentage van de cyclustijd te
bepalen dat wordt gebruikt om de RS-232C poort en de periferie poort te servicen.
pagina 36 CQM1 Programmeerhandleiding
OMRON
Bit150
Bit150
Bit150
CQM1 PC Setup
Voorbeeld
Cyclustijd (DM6619)
Ingangstijdvertraging (DM6620 t/m DM6625)
Ingangstijdvertraging voor 000 en 001
Ingangstijdvertraging voor 002 t/m 011
Default:
DM6616, DM6617;
Servicing tijd (%, actief als op de bits 08 t/m 15 01 staat)
00 t/m 99 (BCD, twee cijfers)
Servicing tijd instelling enable
00 : Disabled (5% gebruikt) 01 : Enabled (instelling in bits 00 t/m 07 gebruikt)
5% van de cyclus tijd
RS-232C poort: DM 6616 Periferie poort: DM 6617
Als DM6616 wordt ingesteld op 0110, dan zal de RS-232C poort in 10% van de cyclustijd geserviced worden. Wanneer DM6617 wordt ingesteld op 0115, dan zal de periferie poort in 15% van de cyclustijd geserviced worden. De servicingtijd is minimaal 0,34 ms. De hele servicingtijd wordt alleen gebruikt wanneer dit noodzakelijk is.
Maak de instellingen die hieronder getoond zijn om de cyclustijd te normaliseren en variaties in de I/O responsetijd te elimineren door een minimum cyclustijd in te stellen.
DM6619
Cyclus tijd (4 cijfers BCD)
0000 : Cyclus tijd variabel 0001 to 9999: Minimum cyclus tijd (Unit: 1 ms)
Default:
Cyclus tijd variabel
Als de actuele cyclustijd korter is dan de minimum ingestelde cyclustijd, dan zal de uitvoering van het programma wachten tot de minimum tijd is verstreken. Wanneer de actuele cyclustijd langer is dan de minimum cyclustijd, dan zal de uitvoering doorgaan en de minimum cyclustijd overschreden worden. AR24.05 wordt hoog wanneer de minimum cyclustijd, de vorige scan, is overschreden.
Maak de hieronder getoonde instellingen om de tijd in te stellen tussen het aan/uit gaan van de actuele ingangen van de inputunit en het updaten van het bij deze ingang horende inputbit. Verander deze instelling wanneer u de ingangstijd­vertraging wilt verlengen of verkorten om respectievelijk een stabieler ingangs­signaal of een snellere response op een ingang te krijgen.
DM6620
Vertraging voor 000.00 t/m 000.07 (1 cijfer BCD; zie hieronder) Vertraging voor 000.08 t/m 000.15 (1 cijfer BCD; zie hieronder) Vertraging voor 001 (2 cijfers BCD; zie hieronder)
Default:
Bit 15 0
8 ms voor elke ingang
DM6621 t/m 6623
Vertraging voor 002, 004, 006, 008 en 010 Vertraging voor 003, 005, 007, 009 en 011
Default:
8 ms voor elke ingang
De negen mogelijke instellingen voor de ingangstijdvertraging worden hieronder getoond.
00 : 8ms 01 : 1ms 02 : 2ms 03 : 4ms 04 : 8ms 05 : 16ms 06 : 32ms 07 : 64ms 08 : 128ms
Highspeed timers (DM6629)
Maak de hieronder getoonde instellingen om het aantal highspeed timers, gecreëerd met TIMH(15) (zie "Highspeed timer - TIMH(15)" op pagina 127) te bepalen die gebruik maken van interrupt processing.
CQM1 Programmeerhandleiding pagina 37
CQM1 PC Setup
Bit150
Bit150
Opmerking
Opmerking
DSW input cijfers en output refresh methode (DM6639)
OMRON
DM6629
Aantal "interrupt" highspeed timers (geldig wanneer de bits 08 t/m 15 op 01 staan)
00 t/m 15 (2 cijfers BCD)
Highspeed timer interrupt instelling enable
00 : Instelling gedeactiveerd (interrupt processing is actief voor TIM000 t/m TIM015) 01 : Enabled (gebruik de instelling op bits 00 t/m 07)
Default:
De instelling geeft het aantal timers aan dat interrupt processing gebruikt, te beginnen met TIM000. Bijvoorbeeld, wanneer "0108" wordt ingesteld, dan zullen acht timers TIM000 t/m TIM007 interrupt processing gebruiken.
Highspeed timers zijn niet nauwkeurig zonder interrupt processing tenzij de cyclustijd 10ms of minder is.
De interrupt responsetijd voor andere interrupts zal verbeteren wanneer highspeed timer processing niet nodig is en de interrupt processing voor highspeed timers op 0100 wordt ingesteld. Dit geldt ook als de cyclustijd kleiner is dan 10ms.
Als de SPED(--) instructie wordt gebruikt en er worden pulsen uitgestuurd met een frequentie van 500Hz of meer, zet dan het aantal highspeed timers met interrupt processing op vier of minder.
Maak de instellingen zoals hieronder getoond om het aantal cijfers voor de DSW instructie en de output refresh methode vast te leggen.
Bit 15 0
Interrupt processing voor alle highspeed timers, TIM 000 t/m TIM 015.
DM6639
Errorlog instellingen
Cyclus monitor tijd (DM6618)
1, 2, 3...
Output refresh methode
00 : Cyclisch 01 : Direct
Aantal input cijfers voor de DSW instructie
00 : 4 cijfers 01 : 8 cijfers
Default:
Het aantal input cijfers voor de DSW instructie is ingesteld op "4", de output refresh methode is cyclisch.
Maak de hieronder getoonde instellingen om errors te detecteren en op te slaan in de errorlog.
DM6618
Cyclus monitor tijd instelling (Als de bits 08 t/m 15 niet 00 zijn)
00 t/m 99 (2 cijfers BCD; unit ingesteld op bits 08 t/m 15)
Cyclus Monitor Tijd Enable en Unit
00 : Instelling disabled (de tijd is vastgesteld op 120 ms) 01 : Instelling op 00 t/m 07 is actief; unit: 10 ms 02 : Instelling op 00 t/m 07 is actief; unit: 100 ms) 03 : Instelling op 00 t/m 07 is actief; unit: 1 s
Default:
120ms
De cyclus monitor tijd wordt gebruikt om te controleren op extreem lange cyclustijden, zoals bijvoorbeeld kan gebeuren als het programma in een oneindige loop terecht komt. Als de cyclustijd de cyclus monitor instelling overschrijdt, wordt een fatale error (FALS 9F) gegenereerd.
1. De meeteenheden die gebruikt wordt voor de maximum en huidige cyclustijden,
zoals opgeslagen in AR26 en AR27 veranderen afhankelijk van de units die ingesteld zijn voor de cyclus monitor tijd zoals hieronder getoond. Bits 08 t/m 15 ingesteld op 00 of 01: 0,1ms Bits 08 t/m 15 ingesteld op 02: 1ms Bits 08 t/m 15 ingesteld op 03: 10ms
2. Zelfs als de cyclus tijd 1s of langer duurt, zal de cyclustijd zoals uitgelezen met
een programmeerapparaat niet boven de 999,9ms komen. De correcte maximale en huidige cyclustijden zullen in AR26 en AR27 opgeslagen worden.
pagina 38 CQM1 Programmeerhandleiding
OMRON
)
CQM1 PC Setup
Voorbeeld
Errordetectie en errorlog werking (DM6655)
Als 0230 is ingesteld op DM6618, zal een FALS 9F error niet optreden tot de cyclustijd groter is dan 3s. Als de actuele cyclustijd 2.59s is, zal de inhoud van AR27 2590 (ms) zijn en de cyclustijd zoals uitgelezen met een programmeerapparaat 999.9ms.
Een "cycle time over" error (niet fatale) wordt gegenereerd als de cyclustijd boven de 100ms komt, tenzij de detectie van te lange cyclustijden is gedeactiveerd met de instelling hiervoor op DM6655.
Maak de hieronder getoonde instellingen om te bepalen of een niet fatale error gegenereerd moet worden wanneer de cyclustijd boven de 100ms komt, het voltage van de ingebouwde batterij te laag wordt en de manier waarop records opgeslagen moeten worden in de errorlog als ze optreden.
Bit 15 0
DM6655
Default:
0
Lage batterij spanning en cycle time over errors worden gedetecteerd en
Error log opslag methode
0 : Error records voor de 10 meest recente errors opslaan (oudere errors verwijderen) 1 : Alleen de eerste 10 error records opslaan (daarna stoppen met opslaan van records)
2 t/m F : Error records niet opslaan Altijd 0 Cycle time over detectie
0 : Detecteer
1 : Detecteer niet Lage batterij spanning detectie
0 : Detecteer
1 : Detecteer niet
de 10 tien meest recente error records worden opgeslagen.
Batterij errors en cycle time overrun errors zijn niet fatale errors.

2.2 CQM1-CPU45 analoge ingangen instellen

De CQM1-CPU45 is standaard uitgerust met vier analoge ingangen en twee analoge uitgangen. De ingangen zijn voorzien van een aantal instellingen in de PC Setup. Voor de uitgangen hoeft niets ingesteld te worden. In de onderstaande figuur zijn de instellingen getoond voor de analoge ingangen.
Bit 15 0
0
Default:
Bij een instelling van 0409 (hexadecimaal, komt overeen met een instelling 0000 1000 0000 1001 binair) zijn ingang 1, 2 en 3 geactiveerd, respectievelijk op een instelling 0 tot 10V, 1 tot 5volt/4 tot 20ma en –10 tot +10 volt.
De waarden van de analoge in en uitgangen worden in het geheugen van de PLC geplaatst. In de onderstaande tabel zijn de adressen van de analoge in- en uitgangen getoond.
DM6611
Bereik instelling
Input 1: (let op, instelling opgegeven in bits
00: -10 tot +10 volt 01: 0 tot +10 volt 10: 1 tot 5 volt of 4 tot 20ma
11: Niet instellen Input 2 Input 3 Input 4 Input enable bits, 1 bit per ingang
0: Ingang actief
1: Ingang niet actief Altijd 0
Alle ingangen zijn geactiveerd en werken op –10 tot +10 volt.
Input/Output Woord Functie
Ingangen 232 Analoge ingang 1
233 Analoge ingang 2
234 Analoge ingang 3
235 Analoge ingang 4
Uitgangen 236 Analoge uitgang 1
237 Analoge uitgang 2
CQM1 Programmeerhandleiding pagina 39
CQM1 PC Setup
T
In het AR geheugen van de PLC wordt in woord 4 de status van de analoge in- en uitgangen getoond. In de onderstaande tabel wordt de betekenis van de bits in dit woord getoond.
Woord Bits Functie
AR04 08 t/m 15 00: Normale werking

2.3 CQM1 pulsuitgang functies instellen en gebruik

Deze sectie verklaart de instellingen en methoden voor het gebruik van de CQM1 pulsuitgang functies. Refereer naar het hardware aansluitingen op CQM1 uitgangen en poorten.

2.3.1 Type van pulsuitgangen

Alle CQM1 PLC’s kunnen standaard pulsen uitsturen op een uitgang. De CQM1­CPU43-E kan ook standaard of variabele duty-ratio pulsen uitsturen vanuit de poorten 1 en 2. Standaard pulsuitgangen hebben een duty-ratio (ton/T) van 50%. De duty-ratio voor variabele duty-ratio pulsuitgangen kunnen ingesteld worden van 1% t/m 99% in units van 1%.
Opmerking

Standaard puls uitsturing op een uitgang

Standaard puls output van poort 1 en 2
Variabele duty-ratio puls output van poort 1 en 2
Bij de CQM1-CPU43-E kunnen de pulsuitgangen zoals hieronder beschreven tegelijkertijd uit 3 poorten uitgestuurd worden. Daarbij kunnen 2 poorten gebruikt worden als counter ingang, onafhankelijk van de pulsuitgangen.
Standaard pulsen (duty-ratio 50%) kunnen uitgestuurd worden van een uitgang met een frequentie van 20Hz t/m 1kHz. Het I/O woord is gespecificeerd in de PC Setup en het bit is gespecificeerd in de pulsuitgang instructie zelf. Zie "Standaard puls uitsturing op een uitgang" op pagina 40 voor meer informatie.
Met de CQM1-CPU43-E kunnen standaard pulsen (duty-ratio = 50%) uitgestuurd worden met poort 1 en/of poort 2 met een frequentie van 10Hz t/m 50kHz (20kHz max. naar een stappenmotor). De uitgestuurde pulsen kunnen richting informatie bevatten (CW of CCW) en frequentieveranderingen kunnen geleidelijk verlopen.
PLS2(—) en mode 0 van ACC(—) kunnen niet gebruikt worden als de PC Setup (DM6611) is ingesteld op highspeed counter mode. CTBL(—) kan niet gebruikt worden bij poort 1 en 2 als de PC Setup (DM6611) is ingesteld op pulsuitgang mode. Zie "drie" op pagina 42 voor meer informatie.
Met de CQM1-CPU43-E kunnen variabele duty-ratio pulsen (duty-ratio = 1% t/m 99%) uitgestuurd worden met poort 1 en/of 2 met frequenties van 91.6Hz, 1.5kHz of 5.9kHz. Alleen één richting kan worden aangestuurd en het uitsturen van pulsen zal doorgaan tot het met INI(—) gestopt wordt. Zie "drie" op pagina 48 voor meer informatie.
CQM1 Operation Manual
OMRON
01, 02: Hardware fout 03: PLC Setup error 04: Hardware fout AD/DA board
voor details over
2.3.2 Standaard puls uitsturing op een uitgang
Standaard pulsen kunnen uitgestuurd worden op een gespecificeerde uitgang door de SPED(—) instructie. De pulsen kunnen vanuit één uitgang tegelijk uitgestuurd worden. Het volgende diagram toont de pulsen die uitgestuurd worden op een uitgang van een Transistor Output Unit. De duty-ratio van de puls uitsturing is 50% en de frequentie kan ingesteld worden van 20Hz t/m 1kHz.
ransistor Output Unit
on
t
= 50% (0.5)
T
t
on
T
1, 2, 3...
pagina 40 CQM1 Programmeerhandleiding
1. Een Transistor Output Unit moet gebruikt worden voor deze applicatie.
2. Pulsen kunnen niet worden uitgestuurd wanneer interval timer 0 actief is.
OMRON
F
Bit150
Bit150
1, 2, 3...
PC Setup instellingen
CQM1 PC Setup
3. Wanneer een frequentie hoger dan 500Hz wordt uitgestuurd, zet dan het aantal highspeed timers met interrupt processing op 4 of minder door DM6629 op 0104 in te stellen.
Wanneer pulsen worden uitgestuurd op een uitgang kan de frequentie in stappen veranderd worden door de SPED(—) instructie opnieuw uit te voeren met verschillende frequenties, zoals in het volgende diagram getoond wordt.
requentie
Tijd
Er zijn twee manieren op de puls uitsturing te stoppen.
1. Na het uitvoeren van SPED(—), zal de puls uitsturing stoppen als een INI(—) wordt uitgevoerd met C=003 of wanneer SPED(—) opnieuw wordt uitgevoerd waarbij de frequentie ingesteld is op 0.
2. Het totale aantal pulsen dat uitgestuurd moet worden kan worden ingesteld met PULS(—) voor de executie van SPED(—). In dit geval moet SPED(—) uitgevoerd worden in de independent mode. De puls uitsturing stopt automatisch wanneer het aantal pulsen, ingesteld met PULS(—), uitgestuurd is.
Voor de SPED(—) instructie uitgevoerd kan worden moet de PLC eerst in PROGRAM mode worden gezet en moeten de volgende veranderingen in de PC Setup gemaakt worden.
Specificeer in DM6615 het uitgangswoord dat gebruikt wordt door de SPED(—) instructie. Het bit is gespecificeerd als eerste operand bij de SPED(—) instructie.
De inhoud van DM6615 (0000 t/m 0011) specificeert het uitgangswoord 100 t/m
111. Bijvoorbeeld als DM6615 is ingesteld op 0002, dan zullen pulsen uitgestuurd
worden via de outputunit waaraan woord 102 is toegewezen.
Continue puls output
0
Default:
0
DM6615
Uitgangswoord (rechter 2 cijfers, BCD): 00 t/m 11 Altijd 00
Pulsuitgang op woord 100
Bij de CQM1-CPU11/21-E CPU’s moet direct output refreshing ingesteld worden op DM6639 zoals hieronder getoond. Bij de CQM1-CPU4X-E CPU’s kan de output refresh methode ingesteld worden op direct of cyclisch.
DM6639
01
Output refresh methode
01 : Direct
Default:
De default output refresh methode is cyclisch.
Pulsen worden uitgestuurd op de gespecificeerde uitgang als SPED(—) wordt uitgevoerd. Stel de gekozen uitgang in met het nummer ervan 00 t/m 15 (D=000 t/m 150) en de frequentie van 20Hz t/m 1000Hz (F=0002 t/m 0100). Zet de mode op continuous mode (M=001).
@SPED(-)
D
M
F
De puls uitsturing kan gestopt worden door INI(—) uit te voeren met C=003 of door SPED(—) opnieuw uit te voeren waarbij de frequentie ingesteld is op 0. De frequentie kan veranderd worden door SPED(—) opnieuw uit te voeren met een andere frequentie instelling.
CQM1 Programmeerhandleiding pagina 41
CQM1 PC Setup
CQM1-CPU43-E
F
OMRON
Aantal pulsen instellen
Frequentie veranderen
Het totale aantal pulsen dat uitgestuurd wordt kan worden ingesteld met PULS(—) voor het uitvoeren van SPED(—) in de independent mode. De pulsuitgang zal automatisch stoppen als het aantal pulsen, ingesteld met PULS(—), is uitgestuurd.
@PULS(-)
000
000
P1
PULS(—) stelt het 8-cijferig aantal pulsen in met P1+1, P1. Het aantal pulsen kan worden ingesteld van 00000001 t/m 16777215. Het aantal pulsen dat ingesteld is met PULS(—) wordt uitgestuurd als SPED(—) wordt uitgevoerd in de independent mode. Het aantal pulsen kan niet worden veranderd tot alle pulsen zijn uitgestuurd. Het is echter wel mogelijk om de puls uitsturing te stoppen.
@SPED(-)
D
M
F
Wanneer SPED(—) wordt uitgevoerd, zullen pulsen uitgestuurd worden op de gespecificeerde uitgang (D=000 t/m 150: bit 00 t/m 15) met de gespecificeerde frequentie (F=0002 t/m 0100: 20Hz t/m 1000Hz). Zet de mode op independent mode (M=001) om het aantal pulsen uit te sturen dat met PULS(—) is ingesteld. De frequentie kan veranderd worden door SPED(—) opnieuw uit te voeren met een andere frequentie instelling.
De frequentie van de pulsuitgang kan veranderd worden door SPED(—) opnieuw uit te voeren met een andere frequentie instelling. Gebruik dezelfde uitgang (P) en mode (M) instellingen die gebruikt zijn om de pulsuitgang te starten. De nieuwe frequentie kan elke frequentie zijn tussen de 20Hz t/m 1000Hz in units van 10Hz (F=0002 t/m 0100).

2.3.3 Standaard puls uitsturing op poort 1 en 2

Met de CQM1-CPU43-E kunnen standaard pulsen uitgestuurd worden op poort 1 en 2 door SPED(—), PLS2(—) of ACC(—) te gebruiken. De pulsfrequentie kan ingesteld worden van 10Hz t/m 50kHz (20kHz max. naar een stappenmotor). De puls aansturing kan rechtsom (clockwise, CW) of linksom (counter-clockwise, CCW) zijn en frequentieveranderingen kunnen vloeiend verlopen.
t
on
= 50% (0.5)
T
t
on
Opmerking
1, 2, 3...
poort 1
poort 2
Alleen de CQM1-CPU43-E kan pulsen uitsturen op de poorten 1 en 2. Wanneer pulsen uitgestuurd worden via een poort, dan kunnen de frequentie-
veranderingen vloeiend of in stappen plaatsvinden met SPED(—), PLS2(—) en ACC(—) zoals getoond in het volgende diagram.
requentie
Er zijn drie manieren op de pulsuitgang te stoppen.
1. Na het uitvoeren van SPED(—), zal de pulsuitgang stoppen als een INI(—) wordt uitgevoerd met C=003 of wanneer SPED(—) opnieuw wordt uitgevoerd waarbij de frequentie ingesteld is op 0.
T
Tijd
pagina 42 CQM1 Programmeerhandleiding
OMRON
CQM1 PC Setup
2. Het totale aantal pulsen dat uitgestuurd moet worden kan worden ingesteld met PULS(—) voor de executie van SPED(—). In dit geval moet SPED(—) uitgevoerd worden in de independent mode. De pulsuitgang stopt automatisch wanneer het aantal pulsen, ingesteld met PULS(—), uitgestuurd is.
3) De instructie PLS2(—) combineert de werking van PULS(—) en SPED(—). Ook hierbij wordt een aantal uit te sturen pulsen vastgelegd. Is het aantal uitgestuurd, dan stopt de pulsuitgang.
De volgende tabel toont de mogelijke frequentieveranderingen die gemaakt kunnen worden met combinaties van PULS(—), SPED(—), INI(—) en ACC(—).
Frequentie verandering Instructie Operand instellingen
Start de pulsuitgang met de gespecificeerde frequentie. PULS(—) CW/CCW
(Aantal pulsen)
Stuurt continu uit of tot het gespecificeerde aantal pulsen is uitgestuurd. Voer eerst PULS(—) uit en daarna SPED(—). Stopt pulsuitgang met een instructie. SPED(—) Poort
Voer SPED(—) of INI(—) uit. INI(—) Controle woord = 0 Stuurt een gespecificeerd aantal pulsen uit. Accelereert de pulsuitgang naar de doelfrequentie met de gespecificeerde snelheid. Decelereert met dezelfde snelheid.
Stuurt een gespecificeerd aantal pulsen uit. PULS(—) CW/CCW
Accelereert de pulsuitgang naar doelfrequentie 1 met de gespecificeerde snelheid. Decelereert naar doel­frequentie 2 met een andere snelheid. Voer eerst PULS(—) uit en daarna ACC(—).
Accelereert de pulsuitgang van de huidige frequentie naar de doelfrequentie met de vastgestelde snelheid.
Puls uitsturing zal doorgaan. Voer PULS(—) uit en vervolgens ACC(—).
Decelereert de pulsuitgang van de huidige frequentie naar de doelfrequentie met de gespecificeerde snelheid.
SPED(—) Poort
Mode Frequentie
Frequentie = 0
PLS2(—) Poort
CW/CCW Acceleratie snelheid Doelfrequentie Aantal pulsen
Aantal pulsen Deceleratie punt
ACC(—) (Mode 0)
PULS(—) CW/CCW
ACC(—) (Mode 1)
PULS(—) CW/CCW
Poort Acceleratie snelheid Doelfrequentie 1 Deceleratie snelheid Doelfrequentie 2
Poort Acceleratie snelheid Doelfrequentie
Aantal pulsen
PC Setup instellingen
Pulsuitgang stopt wanneer het gespecificeerde aantal pulsen is uitgestuurd. Voer eerst PULS(—) uit en daarna ACC(—). Decelereert de pulsuitgang van de huidige frequentie naar de doelfrequentie met de gespecificeerde snelheid.
Puls uitsturing zal doorgaan. Voer eerst PULS(—) uit en vervolgens ACC(—).
ACC(—) (Mode 2)
PULS(—) CW/CCW
ACC(—) (Mode 3)
Voordat pulsen uitgestuurd kunnen worden op poort 1 of 2 moet de PLC in de
Poort Deceleratie snelheid Doelfrequentie
Poort Deceleratie snelheid Doelfrequentie
PROGRAM mode gezet worden en moeten de volgende instellingen in de PC Setup gemaakt worden.
Specificeer in DM6611 de mode instelling voor de poorten 1 en 2
Bit 15 0
DM6611
01
Poort 1 en 2 Mode Instelling
0000 : Highspeed counter mode 0001 : Pulsuitgang mode
Default:
De default mode instelling is highspeed counter mode.
CQM1 Programmeerhandleiding pagina 43
CQM1 PC Setup
Bit150
Bit150
OMRON
Sommige instructies kunnen niet gebruikt worden, afhankelijk van de gekozen mode instelling in DM6611.
DM6611 instelling Betrokken instructies
Highspeed counter mode (0000) Pulsuitgang mode (0001) CTBL(—) kan niet gebruikt worden met poort 1 en 2
De instelling in DM6611 wordt alleen gelezen wanneer de CQM1 aan gezet wordt. Wanneer deze instelling veranderd wordt moet u de PLC uit en vervolgens weer aan zetten om de nieuwe instelling actief te maken.
Specificeer standaard pulsuitgang in DM6643 (poort 1) en/of DM6644 (poort 2).
PLS2(—) en mode 0 van ACC(—) kunnen niet gebruikt worden.
Voorbeeld 1: pulsuitgang met PULS(-) en SPED(-) starten
00
Default:
DM6643
Poort 1 puls type instelling 0 : Standaard pulsuitgang
Standaard pulsuitgang
DM6644
Poort 2 puls type instelling 0 : Standaard pulsuitgang
Variabele duty-ratio pulsen kunnen niet uitgestuurd worden door een poort wanneer deze ingesteld is op standaard pulsuitgang op DM6643 of DM6644.
Het volgende voorbeeld toont PULS(-) en SPED(-), gebruikt om puls uitsturing vanuit poort 1 te realiseren. Het aantal pulsen gespecificeerd met PULS(-) (10,000) worden uitgestuurd als de frequentie wordt veranderd door het uitvoeren van SPED(-) met verschillende frequentie instellingen.
Controleer voor het uitvoeren van het programma of DM6611 is ingesteld op 0001 (pulsuitgang mode) en DM6643 is ingesteld op 0000 (standaard puls instelling voor poort 1).
050.00
001
000
DM 0000
@SPED(-)
001
000
#0100
000.00 @SPED(-)
001
000
#0150
000.01 @SPED(-)
001
000
#0100
000.02 @SPED(-)
001
000
#0050
Als 050.00 AAN gaat, stelt PULS(-) poort 1@PULS(-) in op 10,000 CW pulsen.
Start pulsuitgang op poort 1 op 1 kHz in independent mode.
Als 000.00 AAN gaat, dan wordt de frequentie van poort 1 veranderd in 1.5 kHz.
Als 000.01 AAN gaat, dan wordt de frequentie van poort 1 veranderd in 1 kHz.
Als 000.02 AAN gaat, dan wordt de frequentie van poort 1 veranderd in 500 Hz.
Het volgende diagram toont de pulsuitgang frequentie van poort 1 als het programma wordt uitgevoerd.
pagina 44 CQM1 Programmeerhandleiding
OMRON
F
F
CQM1 PC Setup
requentie
1.5 kHz
1.0 kHz
0.5 kHz
Tijd
050.00 000.00 000.01 000.02 10,000
gaat AAN pulsesgaat AAN gaat AAN gaat AAN
Let op!
Opmerking
Voorbeeld 2: stoppen van pulsuitgang met SPED(-)
Wees er zeker van dat de uitgestuurde frequentie boven de minimum frequentie van het aangestuurde systeem ligt.
Speed control timing kan erg nauwkeurig zijn wanneer de frequentie veranderingen worden uitgevoerd als interrupt processen.
Het volgende voorbeeld toont PULS(-) en SPED(-), gebruikt om de pulsuitgang op poort 1 aan te sturen. De frequentie wordt veranderd door het uitvoeren van SPED(-) met verschillende frequentie instellingen en uiteindelijk gestopt met een frequentie instelling van 0.
050.00
001
004
000
@SPED(-)
001
001
#0100
000.05 @SPED(-)
001
001
#0150
000.06 @SPED(-)
001
001
#0100
000.07 @SPED(-)
001
001
#0000
Als 050.00 AAN gaat, Stelt PULS(-) poort 1 in voor CW@PULS(-) pulsuitsturing. Er wordt geen aantal pulsen ingesteld.
Start pulsuitgang op poort 1 met 1 kHz in continuous mode.
Als 000.05 AAN gaat, wordt de frequentie van poort 1 veranderd in 1.5 kHz.
Als 000.06 AAN gaat, wordt de frequentie van poort 1 veranderd in 1 kHz.
Als 000.07 AAN gaat, wordt de pulsuitgang op port 1 gestopt met een frequentie instelling van 0 Hz.
Het volgende diagram toont de pulsuitgang frequentie van poort 1 als het programma wordt uitgevoerd.
requentie
1.5 kHz
1.0 kHz
Tijd
050.00 000.05 000.06 000.07
gaat AAN gaat AAN gaat AAN gaat AAN
Voorzichtig
Wees er zeker van dat de uitgestuurde frequentie boven de minimum frequentie van het aangestuurde systeem ligt.
Voorbeeld 3: PLS2(-)
Het volgende voorbeeld toont het gebruik van PLS2(-) om 100,000 CW pulsen uit te sturen met poort 1. De frequentie wordt geaccelereerd naar 10 kHz met ongeveer 500Hz / 4ms en gedecelereerd met dezelfde snelheid.
CQM1 Programmeerhandleiding pagina 45
CQM1 PC Setup
F
F
OMRON
Vijf seconden nadat de CW pulsen uitgestuurd zijn, stuurt een andere PLS2(-) instructie 100,000 CCW pulsen uit met dezelfde instellingen.
DM0000 0050 DM0001 1000 DM0002 0000 DM0003 0010
000.00
050.00
AR05.14
TIM000
SET 050.00 wordt hoog als 000.00 AAN is.
050.00
Als 050.00 AAN gaat start PLS2(-)@PLS2(-)
001
000
DM0000
TIM
000
#0050
CW pulsuitsturing op poort 1.
Acceleratiesnelheid: Ongeveer 500 Hz/4 ms Doelfrequentie: 10 kHz Aantal pulsen: 100,000
Een 5 s timer wordt gestart als AR 0514 (de Puls Output Completed vlag) AAN is.
Voorbeeld 4: ACC(-) mode 0
@PLS2(-)
001
001
DM0000
RSET
050.00
Als TIM000 afloopt, start PLS2(-) CCW pulsuitsturing op port 1.
Acceleratiesnelheid: Ongeveer 500 Hz/4ms Doelfrequentie: 10 kHz Aantal pulsen: 100,000
050.00 wordt laag als de timer afloopt.
Het volgende diagram toont de pulsuitgang frequentie van poort 1 als het programma wordt uitgevoerd.
requentie
10 kHz
CW pulsuitgang CCW pulsuitgang
helling ongeveer 500 Hz/4 ms
Tijd
050.00 AR05.14 Na 5 s
gaat AAN gaat AAN
Het volgende voorbeeld toont mode 0 van ACC(-), gebruikt om 10,000 CW pulsen via poort 1 uit te sturen. De frequentie wordt geaccelereerd naar 10kHz met ongeveer 1kHz/4ms en gedecelereerd naar 1kHz met ongeveer 250Hz/4ms. Deceleratie begint nadat 9,100 pulsen uitgestuurd zijn.
DM0000 0000 DM0004 0100 DM0001 0001 DM0005 1000 DM0002 9100 DM0006 0025 DM0003 0000 DM0007 0050
000.00 @PULS(-)
001
002
DM 0000
Als 000.00 AAN gaat, stelt PULS(-) poort 1 in op CW puls output. Het totale aantal pulsen is ingesteld op 10,000 en het deceleratie punt is ingesteld op 9,100 pulsen.
@ACC(-)
001
000
DM 0004
Start CW puls output van poort 1.
Acceleratie: Ongeveer 1000 Hz/4 ms Frequentie na acceleratie: 10 kHz Deceleratie: Ongeveer 250 Hz/4 ms Frequentie na deceleratie 1 kHz
Het volgende diagram toont de pulsuitgang frequentie van poort 1 als het programma wordt uitgevoerd.
requentie
10 kHz
1 kHz
CW pulsuitgang
±1 kHz/4 ms
00000 9,100
gaat AAN pulsen
±250 Hz/4 ms
Tijd
10,000 pulsen
pagina 46 CQM1 Programmeerhandleiding
OMRON
F
CQM1 PC Setup
Voorbeeld 5: ACC(-) mode 1
Het volgende voorbeeld toont mode 1 van ACC(-), gebruikt om de frequentie te verhogen van een pulsuitgang op poort 1. De frequentie wordt geaccelereerd van 1 kHz naar 20 kHz met ±
DM0000 0050 DM0001 2000
000.00
000.01
500 Hz/4 ms.
@PULS(-)
002
005
000
@SPED(-)
002
001
#0100
@ACC(-)
002
001
DM 0000
Als 000.00 AAN gaat, stelt PULS(-) poort 2 in op CCW puls output. Het totale aantal pulsen wordt niet ingesteld.
Start 1kHz puls output van poort 2 in continuous mode.
Als 000.01 AAN gaat, begint ACC(-) de poort 2 puls output te accelereren met ongeveer 500 Hz/4 ms tot het de target frequentie van 20 kHz bereikt.
Het volgende diagram toont de pulsuitgang frequentie van poort 2 als het programma wordt uitgevoerd.
Frequentie
20 kHz
Voorbeeld 6: ACC(-) mode 2
Opmerking
Voorbeeld 7: ACC(-) mode 3
1 kHz
000.00
gaat AAN
gaat AAN
± 500 Hz/4 ms
Tijd
000.01
Het volgende voorbeeld toont mode 2 van ACC(-), gebruikt om de frequentie van een pulsuitgang op poort 1 te verlagen. De 2-kHz puls output is al bezig in independent mode en stopt automatisch als het aantal pulsen is bereikt.
DM0000 0050 DM0001 0001
000.00 @ACC(-)
001
002
DM 0000
Als 000.00 AAN gaat, begint ACC(-) de puls output te decelereren met ongeveer 500 Hz/4 ms tot het de target frequentie van 10 Hz bereikt.
Het volgende diagram toont de pulsuitgang frequentie van poort 1 als het programma wordt uitgevoerd.
requentie
2 kHz ±500 Hz/4 ms
1 kHz
Tijd
00000
gaat AAN
het vastgelegde aantal pulsen is uitgestuurd
De pulsuitgang kan gestopt worden door ACC(-) in mode 2 uit te voeren met een doelfrequentie van 0, echter de pulsuitgang kan dan niet na het correcte aantal pulsen gestopt worden. Deze methode moet alleen gebruikt worden voor noodsituaties.
Het volgende voorbeeld toont mode 3 van ACC(-),gebruikt om de frequentie van een pulsuitgang op poort 1 te verlagen. De 20-kHz pulsuitgang is al bezig in continuous mode.
DM0000 0100 DM0001 0500
CQM1 Programmeerhandleiding pagina 47
CQM1 PC Setup
F
Bit150
Bit150
OMRON
000.00 @ACC(-)
001
003
DM 0000
Als 000.00 AANgaat, begint ACC(-) de poort 1 puls output te decelereren met ongeveer 1 kHz/4 ms tot het de target frequentie van 5 kHz bereikt.
Het volgende diagram toont de pulsuitgang frequentie van poort 1 als het programma wordt uitgevoerd.
requentie
20 kHz
5 kHz
00000
gaat AAN
± 1 kHz/4 ms
Tijd

2.3.4 Variabele duty-ratio puls uitsturing op poort 1 en 2

Bij de CQM1-CPU43-E is het mogelijk om variabele duty-ratio pulsen uit te sturen via poort 1 en/of 2 door PWM(—) te gebruiken. De pulsfrequentie kan ingesteld worden op 91.6Hz, 1.5kHz of 5.9kHz. Deze functie kan gebruikt worden voor diverse mogelijkheden zoals lichtintensiteit aansturing of snelheidsaansturing van een frequentieregelaar.
CQM1-CPU43-E
Frequentie = 91.6, 1500, 5900 Hz
t
on
= 1% to 99%
T
t
on
Opmerking
PC Setup instellingen
Pulsuitgang starten
poort 1 poort 2
T
Alleen de CQM1-CPU43-E CPU kan met poort 1 en 2 pulsen aansturen. Voor er variabele duty-ratio pulsen via poort 1 of 2 kunnen worden uitgestuurd
moet eerst de PLC in de PROGRAM mode gezet worden en de volgende instellingen in de PC Setup aangepast worden.
Specificeer variabele duty-ratio pulsuitgang in DM6643 (poort 1) en/of DM6644 (poort 2).
11
Default:
DM6643
Poort 1 puls type instelling 1 : Variabele duty-ratio pulsuitgang
Standaard pulsuitgang
DM6644
Poort 2 puls type instelling 1 : Variabele duty-ratio pulsuitgang
Standaard pulsen kunnen niet door een poort worden aangestuurd als deze ingesteld staat op variabele duty-ratio pulsuitgang in DM6643 of DM6644.
Pulsen worden door de gespecificeerde poort uitgestuurd als PWM(—) wordt uitgevoerd. Specificeer poort 1 of 2 (P=001 of 002). Stel de frequentie in op
5.9kHz, 1.5kHz of 91.6Hz (F=000, 001 of 002). Stel de duty-ratio in van 1% t/m 99% (D=0001 t/m 0099, BCD).
@PWM(-)
P
F
D
De pulsuitgang zal doorgaan op de gespecificeerde frequentie en duty-ratio tot PWM(—) opnieuw wordt uitgevoerd met andere instellingen of wanneer INI(—) wordt uitgevoerd om de pulsuitgang op de gespecificeerde poort te stoppen.
Pulsuitgang stoppen
De pulsuitgang op een poort kan gestopt worden door INI(—) uit te voeren met C=003. Specificeer poort 1 of 2 (P=001 of 002).
pagina 48 CQM1 Programmeerhandleiding
OMRON
CQM1 PC Setup
@INI(-)
P
003
000
Voorbeeld: het gebruik van PWM(-)
Het volgende voorbeeld toont PWM(-), gebruikt om een 1.5 kHz puls output op poort 1 te starten en om de duty-ratio te veranderen van 50% naar 25%. De puls output wordt vervolgens gestopt met INI(-).
Controleer voor het uitvoeren van het programma of DM6643 is ingesteld op 1000 (variabele duty-ratio puls instelling voor poort 1).
000.00
000.01
000.02
@PWM(-)
001
001
#0050
@PWM(-) Als 000.01 AAN gaat, wordt de duty-ratio veranderd
001
001
#0025
@INI(-)
001
003
000
Als 000.00 AAN gaat, wordt een 1.5 kHz signaal uitgestuurd door poort 1 met een duty-ratio van 50%.
in 25%.
Als 000.02 AAN gaat, stopt INI(-) de puls output van poort 1.
Het volgende diagram toont de pulsuitgang frequentie van poort 1 als het programma wordt uitgevoerd.
50% duty-ratio pulsen 25% duty-ratio pulsen
00000
gaat AAN
00001 00002
gaat AAN gaat AAN

2.3.5 Bepalen van de status van poort 1 en 2

De status van de pulsuitgang (voor standaard of variabele duty-ratio pulsen) van poort 1 en 2 kan bepaald worden door de relevante vlaggen in het SE en AR gebied te bekijken of door PRV(—) uit te voeren.
Vlag status uitlezen
Woord(en) Bit(s) Functie Omschrijving
236 en 237 00 t/m15Poort 1 actuele waarde Geeft in acht cijfers de huidige waarde van het aantal uitgestuurde pulsen
238 en 239 00 t/m15Poort 2 actuele waarde Geeft in acht cijfers de huidige waarde van het aantal uitgestuurde pulsen
AR04 08 t/m15Puls output status Geeft de pulsuitgang status aan.
AR05 12 Poort 1 Deceleratie vlag Geeft deceleratie aan
13 Poort 1 Aantal pulsen
vlag
14 Poort 1 Puls Output
Completed vlag
15 Poort 1 Puls Output
Status vlag
AR06 12 Poort 2 Deceleratie vlag Geeft deceleratie aan
13 Poort 2 Aantal pulsen
vlag
De status van de pulsuitgang kan bepaald worden door het uitlezen van de inhoud van de woorden en vlaggen (bits) die in de volgende tabel getoond zijn.
van poort 1 aan. 237 bevat de hoge vier cijfers.
van poort 2 aan. 239 bevat de hoge vier cijfers.
00: normaal 01 of 02: Hardware error 03: PC Setup error 04: Werking is gestopt tijdens uitsturen van pulsen
0: Niet gespecificeerd; 1: Gespecificeerd Geeft aan of het aantal pulsen is ingesteld. 0: Niet gespecificeerd; 1: Gespecificeerd Geeft aan of de pulsuitgang klaar is. 0: Niet klaar; 1: Klaar Geeft aan of er pulsen worden uitgestuurd. 0: Geen uitgang; 1: Uitgang is bezig
0: Niet gespecificeerd; 1: Gespecificeerd Geeft aan of het aantal pulsen is ingesteld. 0: Niet gespecificeerd; 1: Gespecificeerd
CQM1 Programmeerhandleiding pagina 49
CQM1 PC Setup
Woord(en) Bit(s) Functie Omschrijving
14 Poort 2 Puls Output
Completed vlag
15 Poort 2 Puls Output
Status vlag
Geeft aan of de pulsuitgang klaar is. 0: Niet klaar; 1: Klaar Geeft aan of er pulsen worden uitgestuurd. 0: Geen uitgang; 1: Uitgang is bezig
OMRON
PRV(—) uitvoeren
De status van een pulsuitgang kan worden bepaald door het uitvoeren van PRV(-). Specificeer poort 1 of 2 (P=001 of 002) en het bestemmingswoord D. De poort status informatie zal geschreven worden in de bits 04 t/m 07 van D en de bits 00 t/m 03 en 08 t/m 15 zullen worden ingesteld op 0.
Wanneer PRV(—) wordt gebruikt om de status van de poort te lezen dan wordt de meest recente informatie uitgelezen, waardoor de PLC's cyclustijd geen factor zal zijn.
@PRV(-)
P
001
D
Bits 04 tot en met 07 van D de gespecificeerde poort status informatie.
Bit Functie Omschrijving
04 Deceleratie vlag Geeft deceleratie aan
0: Niet gespecificeerd; 1: Gespecificeerd
05 Aantal pulsen vlag Geeft aan of het aantal pulsen is ingesteld.
0: Niet gespecificeerd; 1: Gespecificeerd
06 Puls Output Completed vlag Geeft aan of de pulsuitgang klaar is.
0: Niet klaar; 1: Klaar
07 Puls Output Status vlag Geeft aan of er pulsen worden uitgestuurd.
0: Geen uitsturing; 1: Uitsturing is bezig

2.4 Instellen en gebruik van de CQM1 interrupt functies

2.4.1 Interrupt typen
Input interrupts
Interval timer interrupts:
Highspeed counter interrupts:
Interrupt afhandeling
1, 2, 3...
Deze sectie verklaart de instellingen en methodes voor gebruik van de CQM1's interrupt functies.
De CQM1 heeft drie typen interrupts. Input interrupts worden uitgevoerd wanneer een signaal van een extern apparaat
één van de CPU ingangen 000.00 t/m 000.03 aan zet. Interval timer interrupts worden uitgevoerd door een interval timer met een precisie
van 0,1 ms. Highspeed counter interrupt wordt uitgevoerd afhankelijk van de huidige waarde
(actuele waarde) van de ingebouwde highspeed counter. Alle CQM1 CPU’s beschikken over highspeed counter 0, die pulsen telt via de CPU ingangen 000.04 t/m 000.06. Phase differential pulsen tot 2.5 kHz of één fase pulsen tot 5 kHz kunnen worden geteld.
De CQM1-CPU43/44-E CPU’s kunnen ook pulsen tellen op de poorten 1 en 2. CQM1-CPU43-E: Highspeed counters 1 en 2 tellen highspeed pulssignalen aangeboden op poort 1 en 2. Phase differential pulsen tot 25 kHz kunnen worden geteld. CQM1-CPU44-E: Highspeed counters 1 en 2 tellen absolute rotary encoder codes aangeboden op poort 1 en 2.
Wanneer een interrupt wordt gegenereerd wordt de gespecificeerde interrupt­routine uitgevoerd. Interrupts hebben de volgende prioriteitsvolgorde (Input interrupt 0 heeft de hoogste prioriteit en highspeed counter interrupt 0 heeft de laagste).
1. Input interrupt 0 > Input interrupt 1 > Input interrupt 2 > Input interrupt 3
2. Highspeed counter interrupt 1 > Highspeed counter interrupt 2
3. Interval timer interrupt 0 > Interval timer interrupt 1 > Interval timer interrupt 2 (Interval timer interrupt 2 is highspeed counter interrupt 0.)
pagina 50 CQM1 Programmeerhandleiding
OMRON
Pulsuitgang instructies en interrupts
Methode 1
CQM1 PC Setup
Wanneer een interrupt met een hogere prioriteit wordt ontvangen gedurende interrupt uitvoer, dan zal het huidige proces worden gestopt en de nieuw ontvangen interrupt uitgevoerd worden. Nadat deze routine in zijn geheel is uitgevoerd zal de uitvoer van de vorige interrupt hervat worden.
Wanneer een interrupt met een lagere of gelijke prioriteit wordt ontvangen tijdens interrupt uitvoer, dan wordt de nieuw ontvangen interrupt direct uitgevoerd nadat de routine die op dat moment uitgevoerd wordt geheel uitgevoerd is.
Net zoals bij normale subroutines worden interruptroutines gedefinieerd door gebruik te maken van SBN(92) en RET(93) instructies aan het einde van het hoofdprogramma.
Wanneer interruptroutines worden uitgevoerd kan een gespecificeerde reeks inputbits gerefreshed worden.
Wanneer een interruptroutine is gedefinieerd dan zal een "no SBS error" worden gegenereerd tijdens een programmacheck, maar de uitvoer zal normaal verlopen. Controleer als deze error voorkomt alle normale subroutines om er zeker van te zijn dat in het programma een SBS(91) is geprogrammeerd om deze aan te roepen voor u verder gaat.
Bij de CQM1-CPU43/44-E CPU’s kunnen de volgende instructies niet worden uitgevoerd in een interruptsubroutine als een instructie die puls I/O of de highspeed counter aanstuurt wordt uitgevoerd in het hoofdprogramma: (255.03 gaat aan).
INI(—), PRV(—), CTBL(—), SPED(—), PULS(—), PWM(—), PLS2(—) en
ACC(—) De volgende methodes kunnen gebruikt worden om deze beperking te omzeilen: Alle interruptuitvoer kan gemaskeerd worden terwijl de instructie wordt uitgevoerd.
Executieconditie
@INT(-)
100
000
000
Methode 2
@PLS2(-)
001
000
DM 0010
@INT(-)
200
000
000
Voer de instructie opnieuw uit in het hoofdprogramma. Dit is de programmasectie uit het hoofd programma:
Executieconditie
@PRV(-)
001
002
LR00.00
DM 0000
@CTBL(-)
001
000
DM 0000
RSET
LR00.00
Dit is de programmasectie uit de interrupt subroutine:
CQM1 Programmeerhandleiding pagina 51
CQM1 PC Setup
Bit150
2.4.2 Input interrupts
Uitvoer
OMRON
SBN(92)
253.13
255.03 LR00.00
De CPU's ingangen waaraan 000.00 t/m 000.03 zijn toegewezen kunnen gebruikt worden voor interrupts van externe bronnen. Input interrupts 0 t/m 3 corresponderen respectievelijk met deze bits en worden altijd gebruikt om de subroutines 000 t/m 003 respectievelijk aan te roepen. Wanneer Input interrupts niet gebruikt worden kunnen de subroutine nummers 000 t/m 003 gebruikt worden voor normale subroutines.
Er zijn twee modes voor uitvoer van Input interrupts. De eerste is de Input Interrupt Mode, waarin de interrupt wordt uitgevoerd als respons op een extern signaal (ingang van de PLC). De tweede is de Counter Mode, waarin de signalen van het externe apparaat op hoge snelheid worden geteld en een interrupt wordt gegenereerd na elke bepaalde hoeveelheid signalen.
000
@CTBL(-)
001
000
DM 0000
PC Setup parameters
Interrupt input instellingen (DM6628)
Input refresh woord instellingen (DM6630 t/m DM6633)
Voorbeeld
Opmerking
Input Interrupt Mode
Maskeren van interrupts
In de Input Interrupt Mode kunnen signalen met een lengte van 100µs of meer gedetecteerd worden. In de Counter Mode kunnen signalen tot 1kHz geteld worden.
Voor het programma uitgevoerd kan worden moeten eerst de volgende instellingen, in PROGRAM mode, veranderd worden in de PC Setup.
Als deze instellingen niet gemaakt zijn kunnen de interrupts niet in het programma gebruikt worden.
DM6628
Input interrupt 0 instelling Input interrupt 1 instelling Input interrupt 2 instelling Input interrupt 3 instelling
0 : Normale input 1 : Interrupt input
Default:
Alle ingangen normaal
Maak deze instellingen wanneer het noodzakelijk is om inputs te refreshen.
Bit 15 0
Default:
Geen input refresh
DM6630 t/m DM6633
00 t/m 07; Begin woord (2 cijfers BCD) 00 t/m 08; Aantal woorden (2 cijfers BCD)
DM 6630: Interrupt 0 DM 6631: Interrupt 1 DM 6632: Interrupt 2 DM 6633: Interrupt 3
Als DM6630 is ingesteld op 0100, dan zal 000 gerefreshed worden wanneer een signaal is ontvangen voor interrupt 0.
Als input refreshing niet wordt gebruikt is de input signaal status binnen de interrupt routine niet betrouwbaar. Dit omvat zelfs de status van het interrupt inputbit dat de interrupt activeerde. Bijvoorbeeld, 000.00 zal niet aan zijn in de interrupt routine voor Input interrupt 0 tenzij deze wordt gerefreshed (in dit geval zou de Altijd Aan Vlag, 253.13 gebruikt kunnen worden in plaats van 000.00).
Gebruik de volgende instructies om Input Interrupts te programmeren in de Input Interrupt Mode.
Met de INT(—) instructie is het mogelijk om Input Interrupt maskers te zetten of te wissen zoals benodigd is.
pagina 52 CQM1 Programmeerhandleiding
OMRON
CQM1 PC Setup
Wissen van gemaskeerde interrupts
Uitlezen van de masker status
(@)INT
000
000
D
Maak de instellingen met de bits 00 t/m 03 van D, deze corresponden met de input interrupts 0 to 3. 0 : Masker gewist (Input interrupt is toegestaan) 1 : Masker gezet (Input interrupt niet toegestaan)
Tijdens het opstarten van programma bij de CQM1 worden alle Input Interrupts gemaskeerd.
Als het bij een Input Interrupt behorende bit aan gaat terwijl de interrupt gemaskeerd is, dan zal deze interrupt worden opgeslagen in het geheugen en zal deze uitgevoerd worden zodra het masker gewist wordt. Wanneer een opgeslagen Input Interrupt niet moet worden uitgevoerd als het masker gewist wordt, dan moet deze interrupt uit het geheugen gewist worden.
Alleen één interrupt signaal wordt in het geheugen opgeslagen per interrupt nummer.
Met de INT(—) instructie is het mogelijk om een Input Interrupt uit het geheugen te wissen.
(@)INT
001
000
D
Als de bits 0 t/m 3 uit D, die corresponderen met input interrupts 0 t/m 3 op "1" zijn ingesteld, dan worden de input interrupts gewist uit het geheugen. 0 : Input interrupt bewaard. 1 : Input interrupt gewist.
Met de INT(—) instructie kan de status van het Input Interrupt masker uitgelezen worden.
Counter mode
Opmerking
1, 2, 3...
Opmerking
(@)INT
002
000
D
De status van de meest rechtse bits van de in woord D opgeslagen data (0 t/m 3) data tonen de masker mask status. 0 : Masker gewist (Input interrupt toegestaan) 1 : Masker gezet (Input interrupt niet toegestaan)
Gebruik de volgende stappen om Input Interrupts te programmeren die de Counter Mode gebruiken.
De SR woorden die in de Counter Mode gebruikt worden (244 to 251) bevatten allemaal binaire (hexadecimale) data, geen BCD.
1. Schrijf de ingestelde waarde voor de counter werking op de bij interrupt 0 t/m 3
horende SR woorden. De ingestelde waarden kunnen worden opgegeven
tussen 0000 en FFFF (0 t/m 65535). Een waarde van 0000 zal de teller werking
uitzetten tot een nieuwe waarde wordt ingesteld en stap 2, hieronder getoond,
wordt herhaald. De onderstaande SR woorden worden gewist tijden het opstarten van de PLC en
moeten vanuit het programma geschreven worden.
Het maximale input signaal dat geteld kan worden is 1 kHz.
Interrupt Woord
Input interrupt 0 244 Input interrupt 1 245 Input interrupt 2 246 Input interrupt 3 247
Als de Counter mode niet wordt gebruikt, kunnen deze SR bits gebruikt worden
als werkbits.
2. Met de INT(—) instructie kan de Counter Mode ingestelde waarde gerefreshed
worden en de interrupts geactiveerd.
(@)INT
003
000
Als de bits 0 t/m 3 uit D, die corresponderen met input interrupts 0 to 3, zijn ingesteld op "0", dan wordt de ingestelde waarde gerefreshed en zijn interrupts toegestaan. 0 : Counter mode ingestelde waarde gerefreshed en masker gewist. 1 : Niets gebeurd (Zet de bits voor alle interrupts die niet
D
veranderen op "1").
De Input Interrupt waarvoor de ingestelde waarde wordt gerefreshed wordt geactiveerd in de Counter Mode. Wanneer de counter de ingestelde waarde bereikt, wordt een interrupt gegenereerd, de counter wordt gereset en zal weer
CQM1 Programmeerhandleiding pagina 53
CQM1 PC Setup
1, 2, 3...
Counter actuele waarde in counter mode
OMRON
vanaf de ingestelde waarde terug tellen. Dit gaat door tot de counter werking wordt gestopt.
1. Als de INT(—) instructie wordt gebruikt tijdens het tellen, dan wordt de actuele waarde terug gezet op de ingestelde waarde. U moet daarom de gedifferentieerde variant van deze instructie gebruiken (@INT), anders zal er mogelijk nooit een interrupt plaats vinden.
2. De ingestelde waarde wordt geactiveerd als de INT(—) instructie wordt uitgevoerd. De ingestelde waarde kan dus niet veranderd worden door simpelweg de inhoud van 244 t/m 247 te veranderen. Als de inhoud van deze registers is veranderd moet de ingestelde waarde gerefreshed worden door de INT instructie opnieuw uit te voeren.
Counter Interrupts kunnen op dezelfde manier gemaskeerd worden als in de Input Interrupt Mode, worden echter de maskers op deze manier gewist, dan zal de Counter Mode niet gehandhaafd worden en de Input interrupt Mode zal geactiveerd worden. Interrupt signalen die ontvangen zijn voor gemaskeerde interrupts kunnen gewist worden op dezelfde manier als bij de Input Interrupt mode.
Wanneer input interrupts worden gebruikt in counter mode, dan wordt de actuele waarde van de counter opgeslagen in het SR woord dat hoort bij de Input Interrupt 0 t/m 3. De waardes zijn 0000 t/m FFFE (0 t/m 65534), de uitgelezen waarde is gelijk aan de counter actuele waarde min één.
Voorbeeld
Voorbeeld
Opmerking
Interrupt Woord
Input interrupt 0 248 Input interrupt 1 249 Input interrupt 2 250 Input interrupt 3 251
De actuele waarde voor een interrupt wiens ingestelde waarde 000A is zal getoond worden als een actuele waarde van 0009 direct nadat INT(—) is uitgevoerd.
Zelfs als de Input Interrupts niet gebruikt worden in Counter Mode, zijn deze SR bits niet te gebruiken als werkbits.
In dit voorbeeld wordt Input Interrupt 0 gebruikt in de Input Interrupt Mode en Input Interrupt 1 wordt gebruikt in de Counter Mode. Controleer voor het uitvoeren van het programma de PC Setup.
PC Setup: DM6628: 0011 ( 000.00 en 000.01 zijn gebruikt voor Input Interrupts) De default instellingen zijn gebruikt voor alle andere PC Setup parameters. (Inputs worden niet gerefreshed voor het uitvoeren van de interrupt routines).
253.15 (AAN voor 1 scan) MOV(21)
#000A
245
Stel 10 in als SV voor input interrupt 1 in counter mode.
pagina 54 CQM1 Programmeerhandleiding
OMRON
CQM1 PC Setup
001.00
001.00
@INT
001
000
#0003
@INT
000
000
#000E
@INT
003
000
#000D
BCD(24)
249
D0000
INC(38)
D0000
(@)INT
000
000
#000F
Als IR001.00 AAN gaat:
Gemaskeerde interrupts voor input interrupts 0 en 1 worden gewist.
Interrupts worden enabled in input interrupt mode voor interrupt 0.
Interrupts worden enabled in counter mode voor interrupt 1. (SV: 10)
De inhoud van SR 249 (PV-1) wordt geconverteerd naar BCD en opgeslagen in DM 0000.
De inhoud van DM0000 wordt met 1 verhoogd.
Wanneer IR001.00 UIT gaat, dan worden de input interrupts 0 en 1 gemaskeerd en interrupts worden verhinderd.
SBN(92)
000
253.13 (Altijd AAN) ADB(50)
245
#000A
245
INT
003
000
#000D
RET(93)
SBN(92)
001
RET(93)
Als de Input interrrupt wordt uitgevoerd voor interrupt 0, dan wordt subroutine 000 aangeroepen en de counter mode wordt gerefreshed met de SV voor input interrupt 1 plus 10 (SV = 20)
Als het aantal pulsen is geteld voor de input interrupt 1 counter, dan wordt subroutine 001 aangeroepen. In dit voorbeeld is in deze routine niets geprogrammeerd.
Wanneer het programma wordt uitgevoerd, dan zal de werking zijn zoals in het onderstaande diagram is getoond.
000.00
Subroutine 000
000.01
Subroutine 001
001.00
10 counts 10 counts 20 counts
(zie noot 1) (zie noot 1)
(zie noot 2)
CQM1 Programmeerhandleiding pagina 55
CQM1 PC Setup
Bit150
OMRON
Noot
1. De counter zal doorgaan met werken, zelfs als de interruptroutine verwerkt wordt.
2. De Input Interrupt zal gemaskeerd blijven.

2.4.3 Alle interrupts maskeren

Alle interrupts, inclusief Input Interrupts, Interval Timer Interrupts en highspeed counter interrupts, kunnen als groep ge(de)maskeerd worden met de INT(—) instructie. Deze methode is een toevoeging op het maskeren van individuele soorten interrupts. Verder zal het wissen van de maskeringen voor alle interrupts niet de maskeringen van de individuele interrupts wissen, maar ze herstellen naar de gemaskeerde conditie die bestond voordat INT(—) werd uitgevoerd om ze als groep te maskeren.
Gebruik INT(—) niet om interrupts als groep te maskeren, tenzij dit nodig is om tijdelijk alle interrupts te maskeren. Gebruik INT(—) instructies in dit geval altijd in paren, waarbij de eerste INT(—) instructie de interrupts maskeert en de tweede deze bewerking ongedaan maakt.
INT(—) kan niet gebruikt worden om alle interrupts te (de)maskeren vanuit een interrupt routines.
Interrupts maskeren
Gebruik de INT(—) instructie om alle interrupts te deactiveren.
(@)INT
100
000
000
Als een interrupt wordt gegenereerd wanneer interrupts gemaskeerd zijn, dan zal interrupt processing niet worden uitgevoerd maar de gegenereerde interrupt zal worden opgeslagen voor de input, interval timer en highspeed counter interrupts. De interrupts worden vervolgens geserviced zodra deze gedemaskeerd worden.
Interrupts demaskeren
Gebruik de INT(—) instructie zoals hieronder getoond om interrupts te demaskeren.
(@)INT
200
000
000

2.4.4 Interval timer interrupts

Snelle, nauwkeurig timer interrupts kunnen worden gegenereerd door gebruik te maken van interval timers. De CQM1 voorziet in drie interval timers, genummerd van 0 t/m 2.
1, 2, 3...
Modes
PC Setup
Input refresh woord instellingen (DM6636 t/m
6638)
1. Interval timer 0 kan niet gebruikt worden wanneer pulsen worden uitgestuurd op een uitgangskaart met de SPED(—) instructie.
2. Interval timer 2 kan niet op hetzelfde moment worden gebuikt als highspeed counter 0 (dit is de highspeed counter op normale ingangen)
Er zijn twee modes waarin de interval timer kan werken. De one-shot Mode, waarin één interrupt wordt uitgevoerd als de tijd verstreken is en de scheduled Interrupt Mode waarin de interrupt wordt herhaald op een vast interval.
Wanneer de interval timer interrupts gebruikt gaan worden moeten de volgende instellingen in de PC Setup gemaakt worden in PROGRAM mode voordat het programma uitgevoerd kan worden.
Maak deze instellingen wanneer het nodig is om ingangen geforceerd in te lezen bij het starten van de interrupt procedure.
DM6636 t/m DM6638
00 t/m 11; Begin woord (2 cijfers BCD) 00 t/m 12; Aantal woorden (2 cijfers BCD)
DM6636: Timer 0 DM6637: Timer 1 DM6638: Timer 2
pagina 56 CQM1 Programmeerhandleiding
OMRON
CQM1 PC Setup
Highspeed counter instellingen (DM6642)
Opstarten in de one-shot mode
Opstarten in de scheduled interrupt mode
Default:
Geen input refresh
Controleer, wanneer u interval timer 2 gebruikt, voordat u start met de uitvoer van het programma dat de highspeed counter 0 instelling (PC Setup: DM6642) is ingesteld op de default instelling (0000: Highspeed counter niet gebruikt).
Gebruik de STIM(—) instructie om de interval timer in de one-shot mode te starten.
(@)STIM
C1
C2
C3
C1: Interval timer nummer.
Interval timer 0: 000 Interval timer 1: 001
Interval timer 2: 002 C2: Timer ingestelde waarde (eerste woord adres) C3: Subroutine nr. (4 cijfers BCD): 0000 t/m 0255
C2: Timer ingestelde waarde (4 cijfers BCD): 0000 t/m 9999 C2 + 1: Timer tijdsinterval (4 cijfers BCD; unit: 0,1ms): 0005 t/m 0320 (0,5ms t/m
32ms).
Elke keer als het interval gespecificeerd in C2 + 1 afloopt, zal de timer de actuele waarde met één verlagen. Wanneer de actuele waarde 0 bereikt, zal de opgegeven subroutine éénmaal worden aangeroepen en de timer stoppen.
De tijd die verloopt tussen het starten van de STIM instructie en de afloop er van kan als volgt worden berekend:
(Inhoud van woord C2) x (Inhoud van woord C2 + 1) x 0,1ms =(0,5 t/m 319968,0ms)
Als een constante is ingesteld op C2, dan zal de ingestelde waarde van de timer die waarde nemen en het interval zal 10 zijn (1ms; de ingestelde waarde wordt uitgedrukt in ms)
Gebruik de STIM(—) instructie om de interval timer in de scheduled interrupt mode te starten.
(@)STIM
C1
C2
C3
C1: Interval timer nr. + 3
Interval timer 0: 003
Interval timer 1: 004
Interval timer 2: 005 C2: Timer ingestelde waarde (eerste woord) C3: Subroutine nr. (4 cijfers BCD): 0000 t/m 0255
Opmerking
Uitlezen van de timers verlopen tijd
C2: Timer ingestelde waarde (4 cijfers BCD): 0000 t/m 9999 C2 + 1: Timer tijdsinterval (4 cijfers BCD; unit: 0,1ms): 0005 t/m 0320 (0,5ms t/m
32ms).
De betekenis van de instellingen blijft hetzelfde als bij de one-shot mode, maar in de scheduled interrupt mode zal de actuele waarde van de timer teruggezet worden op de ingestelde waarde en zal de timer opnieuw gestart worden nadat de interrupt subroutine is uitgevoerd. In de scheduled interrupt mode worden interrupts repeterend uitgevoerd op een vast interval tot de uitvoer wordt gestopt.
De CQM1-CPU11-E/CPU21-E ondersteunen alleen de subroutine nummers 0000 t/m 0127.
Gebruik de STIM(—) instructie om de verlopen tijd van de timer uit te lezen.
(@)STIM
C1
C2
C3
C1: Interval timer nr. + 6
Interval timer 0: 006
Interval timer 1: 007
Interval timer 2: 008 C2: Eerste woord van parameter 1 C3: Parameter 2
C2: Aantal keer dat de waarde van de timer is verlaagd (4 cijfers BCD) C2 + 1: Timer tijds interval (4 cijfers BCD; unit: 0.1 ms) C3: De verlopen tijd sinds de vorige verlaging van de timer waarde (4 cijfers
BCD; unit: 0.1 ms)
De tijd die verlopen is sinds de interval timer is gestart kan als volgt berekend worden:
{(Inhoud van woord C2) x (Inhoud van woord C2 + 1) + (Inhoud van woord C3)} x
0.1 ms
CQM1 Programmeerhandleiding pagina 57
CQM1 PC Setup
Stoppen van timers
Voorbeeld
OMRON
Als de gespecificeerde interval timer is gestopt dan wordt "0000" opgeslagen. Gebruik de STIM(—) instructie om de interval timer te stoppen.
(@)STIM
C1
000
000
Na uitvoer van de STIM instructie zoals hierboven getoond zal de interval timer stoppen.
In dit voorbeeld wordt een interrupt om de 2,4ms (0,6ms x 4) aangeroepen door middel van interval timer 1. Zet voor het uitvoeren van het programma alle parameters in de PC Setup op default. (De ingangen worden niet gerefreshed voor de uitvoer van de interrupt subroutine.)
253.15 Eerste Scan Vlag AAN voor 1 cyclus
C1: Interval timer no. + 10
Interval timer 0: 010 Interval timer 1: 011 Interval timer 2: 012
MOV(21)
#0004
DM 0010
Interval timer ingestelde waarden:
Stelt de ingestelde waarde van de interval timer in op 4.
001.00
001.00
Wanneer het programma wordt uitgevoerd dan wordt subroutine 023 elke 2,4ms aangeroepen zolang 001.00 aan is.
001.00
Subroutine 023

2.4.5 Highspeed counter 0 interrupts

MOV(21)
#0006
DM 0011
@TIM
004
DM 0010
#0023
@TIM
011
000
000
SBN(92)
RET(93)
2,4 ms 2,4 ms 2,4 ms
Stelt het interval voor de timer in op 0,6 ms.
Interval timer 1 start als IR001.00 AAN gaat.
Interval timer 1 stopt als IR001.00 UIT gaat.
Elke 2,4 ms loopt de tijd van interval timer 1 af en wordt subroutine 023 aangeroepen.023
Pulsen van een encoder die aangesloten is op de ingangen 000.04 t/m 000.06 van de CQM1 CPU kunnen met een hoge snelheid geteld worden. Het is mogelijk om, afhankelijk van de getelde waarde, interrupts uit te voeren.
Input signaal typen en tel modes
Twee typen signalen kunnen worden ingelezen van een puls encoder. De tel mode die gebruikt wordt voor highspeed counter 0 is afhankelijk van het signaal type.
Up/down mode
: Een phase-difference 4X twee fase signaal (A-fase en B-fase) en een Z-fase signaal worden gebruikt om te tellen. De getelde waarde wordt verhoogd of verlaagd afhankelijk van het fase verschil tussen de twee fase (A en B) signalen.
Incrementing mode:
Één tel signaal (puls) en een teller reset signaal worden
gebruikt. De teller wordt verhoogd afhankelijk van het tel signaal.
pagina 58 CQM1 Programmeerhandleiding
OMRON
Up/d
I
Z-f
t
Soft
t
CQM1 PC Setup
Reset methoden
Opmerking
A-fase
B-fase
Teller
1 2 3 4
Verhogen Verlagen
own mode
5 6 7 8 7 6 5 4
3 2 1 0
ncrementing mode
Tel ingang
Teller 1234
Alleen verhogen
Één van de verderop beschreven methoden moet gebruikt worden om de counter te resetten wanneer deze herstart wordt. De counter wordt automatisch gereset wanneer de uitvoer van het programma wordt gestart of gestopt.
De volgende signaalovergangen worden gezien als voorwaartse (optellende) pulsen: A-fase opgaande flank gevolgd door B-fase opgaande flank gevolgd door A-fase neergaande flank gevolgd B-fase neergaande flank. De volgende signaal­overgangen worden gezien als teruggaande (verlagende) pulsen: B-fase opgaande flank gevolgd door A-fase opgaande flank gevolgd door B-fase neergaande flank gevolgd A-fase neergaande flank.
Het tel bereik loopt van -32767 tot 32767 voor de Up/Down Mode en van 0 tot 65535 voor de Incrementing Mode. Pulsen kunnen worden geteld met een frequentie tot 2.5 kHz in Up/Down Mode en tot 5.0 kHz in Incrementing Mode.
De Up/Down Mode gebruikt altijd een 4X phase-difference signaal. Het aantal getelde pulsen voor elke encoder omwenteling is 4 maal de resolutie van de encoder. Selecteer de encoder gebaseerd op de telbare bereiken.
Één van de twee methoden hieronder beschreven moet worden gebruikt om de actuele waarde van de counter te resetten. (D.w.z. instellen op 0).
Z-fase signaal + software reset:
het Z-fase signaal (reset input) en het
De actuele waarde wordt gereset wanneer
Highspeed Counter 0 Resetbit
(252.00)
beide aan zijn.
Software reset:
Counter 0 Resetbit
De actuele waarde wordt gereset wanneer het
(252.00) aan wordt gezet.
ase signaal + software rese
1 of meer cycly
ware rese
Highspeed
Opmerking
Highspeed counter interrupt teller
Z-fase (reset input)
1 of meer cycly
252.00 1 of meer cycly
Gereset door interrupt Gereset door cyclus Niet gereset
De status van het
Binnen 1 cyclus
Highspeed Counter 0 Resetbit
252.00 Binnen 1 cyclus
Gereset door cyclus
(252.00) wordt één keer per cyclus, tijdens de I/O refresh, doorgegeven aan de highspeed counter. Om de counter betrouwbaar te resetten is het dus noodzakelijk om het minimaal één cyclus aan te houden.
De "Z" in "Z-fase" is een afkorting voor "Zero" (Engels voor nul). Het is een signaal dat de encoder één keer rond is gedraaid.
Voor highspeed counter 0 interrupts wordt een vergelijkingstabel gebruikt in plaats van het “Tel tot” principe. De teller controle kan worden uitgevoerd op één van de twee hieronder beschreven methoden. In de vergelijkingstabel worden de met de actuele waarde te vergelijken condities en interruptroutine combinaties opgeslagen.
Doel waarde:
Een maximum van 16 vergelijkingscondities (waarde en de tel­richting) en interruptroutine combinaties worden opgeslagen in de vergelijkings­tabel. Wanneer de counter actuele waarde en de telrichting gelijk zijn aan de vergelijkingscondities, dan wordt de gespecificeerde interruptroutine uitgevoerd.
Bereik vergelijken:
Acht vergelijkingscondities (hoge en lage limieten) en interruptroutine combinaties worden opgeslagen in de vergelijkingstabel. Wanneer de actuele waarde groter of gelijk is aan de lage limiet en kleiner of gelijk aan de hoge limiet dan wordt de gespecificeerde interruptroutine uitgevoerd.
CQM1 Programmeerhandleiding pagina 59
CQM1 PC Setup
Bit150
OMRON
Bedrading
PC Setup
Input refresh woord instellingen (DM6638)
Highspeed counter 0 instellingen (DM6642)
Programmeren
Beheersen van highspeed counter 0 interrupts
Hieronder worden de aansluitingen van de puls encoder op de input terminal van de CPU gegeven, afhankelijk van de telmode.
Terminal nr. Up/Down Mode Incrementing Mode
4 Encoder A-fase Puls count input 5 Encoder B-fase --­6 Encoder Z-fase Reset input
Wanneer alleen de software reset wordt gebruikt dan kan terminal 6 worden gebruikt als normale ingang. In de Incrementing Mode kan terminal 5 worden gebruikt als normale ingang.
Wanneer highspeed counter 0 interrupts gebruikt worden moeten de hieronder getoonde instellingen in de PROGRAM mode veranderd worden voordat het programma uitgevoerd wordt.
Maak deze instellingen wanneer het nodig is om ingangen te refreshen. De instelling is hetzelfde als die voor interval timer 2.
DM6638
00 to 11; Begin woord (2 cijfers BCD) 00 to 12; Aantal woorden (2 cijfers BCD)
Default:
Geen input refresh
Als deze instelling niet is gemaakt kan highspeed counter 0 niet in het programma gebruikt worden.
Bit 15 0
01
Default:
DM6642
Tel mode
0 : Up/Down Mode 4 : Incrementing Mode
Reset methode
0 : Z-fase en software reset 1 : Software reset
Highspeed counter 0 gebruikt
Highspeed counter 0 niet gebruikt.
Veranderingen in de instelling in DM6642 zijn alleen effectief na het opnieuw starten van de uitvoer van het programma (uitzetten van de voedingsspanning of de PLC in program mode zetten).
Gebruik de volgende stappen om highspeed counter 0 te programmeren. Highspeed counter 0 begint met tellen nadat de juiste instellingen in de PC Setup
zijn gemaakt. Vergelijkingen zullen echter niet worden uitgevoerd met de vergelijkingstabel en interrupts worden niet uitgevoerd tot de CTBL(—) instructie wordt uitgevoerd.
Highspeed counter 0 wordt ingesteld op "0" als de voedingsspanning aan wordt gezet en wanneer de uitvoer van het programma wordt gestart en gestopt.
De huidige waarde van highspeed counter 0 kan worden uitgelezen op 230 en
231.
1. Gebruik de CTBL(—) instructie om de vergelijkingstabel in de CQM1 op te slaan en om de vergelijkingen te starten.
(@)CTBL
P
C
TB
P: Poort specificatie (0 = Highspeed counter 0) C: (3 cijfers BCD)
000 : Doel tabel ingesteld en vergelijken gestart 001 : Bereik tabel ingesteld en vergelijken gestart 002 : Doel tabel alleen ingesteld 003 : Bereik tabel alleen ingesteld
TB : Begin woord van de vergelijkings tabel
Als C is ingesteld op 000, dan worden de vergelijkingen uitgevoerd in de doel mode; Als C 001 is dan worden ze uitgevoerd in de bereik vergelijking mode. De vergelijkingstabel wordt door de instructie opgeslagen en wanneer deze bewerking uitgevoerd is, zal het vergelijken gestart worden. Als de vergelijkingen worden uitgevoerd zullen highspeed interrupts worden uitgevoerd zoals dit in de vergelijkingstabel is opgeslagen. Zie voor meer details "Registreer vergelijkingstabel - CTBL(—)" op pagina 133.
pagina 60 CQM1 Programmeerhandleiding
OMRON
CQM1 PC Setup
Opmerking
Uitlezen van de huidige waarde
Uitlezen van 230 en 231
In de bereik vergelijking mode worden de resultaten van de vergelijking normaal opgeslagen in AR11.00 t/m AR11.07.
Als C is ingesteld op 002, dan worden de vergelijkingen uitgevoerd in de doel mode als C 003 is dan worden ze uitgevoerd in de bereik vergelijking mode. Bij beide instellingen wordt de vergelijkingstabel opgeslagen, maar de vergelijkingen zullen niet gestart worden. De INI(—) instructie moet in dit geval gebruikt worden om de vergelijkingen te starten.
2. Voer de INI(—) instructie uit zoals hieronder getoond om de vergelijkingen te stoppen.
(@)INI
000
001
000
Zet de tweede operand op “000” om de vergelijkingen opnieuw te starten en voer de INI(—) instructie uit. Zodra een tabel is opgeslagen dan wordt deze in de CQM1 bewaard zolang de CQM1 het programma uitvoert en er geen andere tabel wordt opgeslagen.
Er zijn twee manieren om de actuele waarde uit te lezen. De eerste is om deze direct uit 230 en 231 te lezen, de tweede is door gebruik te maken van de PRV(—) instructie.
De actuele waarde van highspeed counter 0 is opgeslagen in 230 en 231 zoals hieronder getoond. Het meest linkse cijfer van 231 zal “F” bevatten als het getal negatief is.
Meest linker 4 cijfers Meest rechter 4 cijfers
231 230
Opmerking
De PRV(—) instructie gebruiken
Actuele waarde veranderen
Up/Down Mode : F0032767 (-32767) t/m 00032767 Incrementing mode: 00000000 t/m 00065535 Deze woorden worden één keer per cyclus gerefreshed, tijdens de I/O refresh,
Zodat er een verschil kan bestaan tussen de uitgelezen actuele waarde en de huidige actuele waarde.
Wanneer highspeed counter 0 niet wordt gebruikt kunnen deze woorden (bits) worden gebruikt als werkbits.
Lees de actuele waarde van highspeed counter 0 uit door de PRV(—) instructie te gebruiken.
(@)PRV
000
000
P1
P1: Eerste woord van de actuele waarde
De actuele waarde van highspeed counter 0 is opgeslagen zoals hieronder getoond. Het meest linkse cijfer zal “F” bevatten als het getal negatief is.
Meest linker 4 cijfers Meest rechter 4 cijfers
P1+1 P1
Up/Down Mode : F0032767 (-32767) t/m 00032767 Incrementing mode: 00000000 t/m 00065535 De actuele waarde wordt uitgelezen op het moment waarop de PRV(—) instructie
wordt uitgevoerd. Er zijn twee manieren om de actuele waarde van highspeed counter 0 te
veranderen. De eerste manier is door deze te resetten door één van de reset methodes te gebruiken. In dit geval wordt de huidige waarde ingesteld op 0. De tweede manier is door gebruik te maken van de INI(—) instructie.
De methode die de INI(—) instructie gebruikt wordt hier uitgelegd. Refereer naar het begin van deze verklaring voor een verklaring van de reset methodes voor highspeed counter 0.
Verander de huidige waarde van de counter door de INI(—) instructie zoals hieronder getoond te gebruiken.
CQM1 Programmeerhandleiding pagina 61
CQM1 PC Setup
OMRON
Voorbeeld
(@)INI
000
002
D: Eerste woord voor opslag van de veranderingen in de actuele waarde.
D
Meest linker 4 cijfers Meest rechter 4 cijfers
D+1 D
Up/Down Mode : F0032767 (-32767) t/m 00032767 Incrementing mode: 00000000 to 00065535 Zet op het meest linker cijfer van D+1 een F om een negatief getal in te kunnen
stellen. Dit voorbeeld toont een programma waarin highspeed counter 0 in de
Incrementing Mode wordt gebruikt. Vergelijkingen worden uitgevoerd in de doel mode en afhankelijk van de huidige waarde van de counter zal het programma de frequentie op een pulsuitgang veranderen. De pulsuitgang is in dit voorbeeld aangesloten op de highspeed counter ingang. Stel de PC Setup als volgt in voor het uitvoeren van het programma:
DM6642: 0114 (Highspeed counter 0 gebruikt met software reset en in de Incrementing Mode). Gebruik voor alle ander PC Setup instellingen de default waarden. (Inputs worden niet gerefreshed voor de start van interrupt processing en puls outputs worden aangestuurd via 100.)
Als aanvulling moet de volgende data opgeslagen worden voor de vergelijkingstabel:
DM0000 0002 Aantal vergelijkingscondities: 2 DM0001 1000 Doel waarde 1:1000 DM0002 0000 DM0003 0101 Vergelijking 1 interruptroutine nr.: 101 DM0004 2000 Doel waarde 2:2000 DM0005 0000 DM0006 0102 Vergelijking 2 interruptroutine nr.: 102
253.15 Eerste Scan Vlag AAN voor 1 cyclus
CTBL
000
000
DM 0000
Slaat de vergelijkingstabel op in doel mode en start de vergelijking.
SPED
020
001
#0050
SBN(92)
101
253.13 (Altijd aan) SPED
020
001
#0020
RET(93)
SBN(92)
102
253.13 (Altijd aan) SPED
020
001
#0000
RET(93)
Begint continuous puls uitsturing op 100.02 op 500 Hz.
Als de highspeed counter waarde 1000 bereikt wordt subroutine 101 aangeroepen en wordt de freqentie van de pulsuitgang ingesteld op 200Hz.
Als de highspeed counter waarde 2000 bereikt wordt subroutine 102 aangeroepen en wordt de pulsuitgang gestopt door de frequentie op 0 in te stellen.
pagina 62 CQM1 Programmeerhandleiding
OMRON
Puls F
)
CQM1 PC Setup
Wanneer het programma wordt uitgevoerd zal de werking als volgt zijn:
requentie (Hz
500
200
0
27

2.4.6 Highspeed counter 0 overflows / underflows

Als het toegestane telbereik voor highspeed counter 0 wordt onder- of overschreden en een underflow of overflow status zal optreden zal de actuele waarde van de counter blijven staan op 0FFF FFFF voor overflows en FFFF FFFF voor underflows tot de overflow/underflow status wordt gewist door de counter te resetten. De toegestane telbereiken zijn als volgt:
Up/Down Mode: F003 2767 t/m 0003 2767 Incrementing Mode: 0000 0000 t/m 0006 5535
1, 2, 3...
Herstellen
Met een geregistreerde vergelijkingstabel
Zonder geregistreerde vergelijkingstabel
Opmerking
1. De waarden die hierboven gegeven worden zijn theoretisch waarbij wordt aangenomen dat de PLC een aannemelijk korte cyclus tijd heeft. Actueel zullen de waarden getoond worden die aanwezig waren één cyclus voor de overflow/underflow error voorkwam.
2. Het zesde en zevende cijfer van de highspeed counter 0's actuele waarde zijn normaal gesproken 00, maar kunnen gebruikt worden als “Overflow/Underflow vlaggen" door te detecteren of deze bits uit of aan zijn. Hiermee kan gedetecteerd worden of waarden buiten de toegestane bereiken zijn gekomen.
Highspeed counter 0 kan gereset worden op één van de hiervoor besproken methoden of automatisch door de programma uitvoer te herstarten. Highspeed counter 0 en de gerelateerde functies zullen niet normaal functioneren tot de underflow/overflow status is gewist. De werking tijdens een overflow/underflow status is als volgt:
Werking van de vergelijkingstabel stopt.
Ö
De vergelijkingstabel wordt niet gewist.
Ö
Interruptroutines van de highspeed counter worden niet uitgevoerd.
Ö
CTBL(—) kan alleen gebruikt worden om een nieuwe vergelijkingstabel te
Ö
registreren. Als een poging wordt gedaan om de werking van de vergelijkingstabel te starten dan zal deze niet gestart en ook niet geregistreerd worden.
INI(—) kan niet gebruikt worden om de werking van de vergelijkingstabel te
Ö
starten of te stoppen of om de actuele waarde aan te passen.
Ö
PRV(—) zal alleen 0FFF FFFF of FFFF FFFF uitlezen als actuele waarde.
Gebruik de volgende procedure om een overflow/underflow status te herstellen.
1. Reset de counter.
2. Stel indien nodig de actuele waarde in met PRV(—).
3. Stel indien nodig de vergelijkingstabel in met CTBL(—).
4. Start de vergelijkingstabel met INI(—).
1. Reset de counter.
2. Stel indien nodig de actuele waarde in met PRV(—).
3. Stel de vergelijkingstabel in en start de werking van deze met CTBL(—) en INI(—).
De bereik vergelijkingsvlaggen in AR11 blijven hun waarde handhaven na het herstellen. De interruptroutine voor een interruptconditie die direct na het herstel ontstaat zal niet worden uitgevoerd als dezelfde interruptconditie al was ontstaan voor de overflow/underflow status optrad. Als de uitvoer van de interruptroutine noodzakelijk is moet AR11 gewist worden voor u de overflow/underflow status hersteld.
Tijd (s)
CQM1 Programmeerhandleiding pagina 63
CQM1 PC Setup
OMRON
Werking reset
Wanneer highspeed counter 0 wordt gereset, dan wordt de actuele waarde ingesteld op 0. Het tellen zal beginnen van 0 en de vergelijkingstabel, uitvoeringsstatus en uitvoeringsresultaten zullen hun status/waarde behouden.
Opstart counter status
Wanneer highspeed counter 0 wordt gestart, dan wordt de counter mode in de PC Setup gelezen en de actuele waarde ingesteld op 0, underflow/overflow statussen worden gewist, de geregistreerde vergelijkingstabel en de executie status ervan wordt gewist (Bereik vergelijkingsresultaten worden altijd gewist wanneer de werking wordt begonnen of wanneer de vergelijkingstabel wordt geregistreerd).
Gestopte counter status
Wanneer highspeed counter 0 wordt gestopt wordt de actuele waarde vastgehouden, de vergelijkingstabel en de executie status wordt gewist en de bereik vergelijkingsresultaten worden vastgehouden.

2.4.7 Highspeed counter 1 en 2 interrupts (CQM1-CPU43-E)

Tel signalen van encoders op poort 1 en 2 van de CQM1-CPU43-E kunnen met hoge snelheid worden geteld en afhankelijk van de getelde waardes kunnen interruptroutines worden uitgevoerd.
De twee poorten kunnen onafhankelijk van elkaar werken. De counter voor poort 1 wordt highspeed counter 1 genoemd en de counter voor poort 2 wordt highspeed counter 2 genoemd. Deze sectie omschrijft hoe de highspeed counters 1 en 2
1, 2, 3...
gebruikt kunnen worden. Raadpleeg het over de hardware zoals elektrische specificaties en aansluitingen.
1. Highspeed counter 1 en 2 kunnen alleen bij de CQM1-CPU43-E gebruikt worden.
2. Sommige instructies kunnen niet gebuikt worden wanneer de PC Setup (DM6611) is ingesteld op highspeed counter mode.
CQM1 Operation Manual
voor informatie
Input signalen en tel modes
DM6611 instelling Beïnvloede instructies
Highspeed counter mode (0000) Pulsuitgang mode (0001)
PLS2(—) en mode 0 van ACC(—) kunnen niet gebruikt worden.
CTBL(—) kan niet gebruikt worden bij poort 1 en 2
Drie typen signalen kunnen worden ingelezen op poort 1 en 2. De telmodes die gebruikt worden voor de highspeed counters 1 en 2 worden ingesteld op respectievelijk DM6643 en DM6644.
1. Differential Phase Mode (Tel Snelheid = 25 kHz): Een fase verschoven 4X twee fase signaal (A-fase en B-fase) en een Z-fase signaal worden gebruikt als telsignaal. De teller wordt verhoogd of verlaagd afhankelijk van het verschil in fase tussen de 2 fase signalen. Deze mode is identiek aan de up/down mode van highspeed counter 0.
2. Puls/Direction Mode (Tel Snelheid = 50 kHz): De A-fase is het richtingsignaal en de B-fase het telsignaal. De counter verhoogt zijn waarde wanneer het A-fase signaal uit is en verlaagt zijn waarde wanneer het aan is.
3. Up/Down Mode (Tel Snelheid = 50 kHz): De A-fase is het aftel en de B-fase is het optelsignaal. De counter verlaagt zijn waarde wanneer een A-fase puls is gedetecteerd en verhoogt zijn waarde wanneer een B-fase puls is gedetecteerd.
pagina 64 CQM1 Programmeerhandleiding
OMRON
Diff
Pulse/Di
Ri
Li
CQM1 PC Setup
Tel modes
1, 2, 3...
A-fase
B-fase
Teller
1 2 3 4
Verhoogd Verlaagd
A-fase (Omlaag)
B-fase (Omhoog)
Teller
Up/Down Mode
1 2 3 2 1
Verhoogd Verlaagd
erential Phase Mode
5 6 7 8 7 6 5 4
3 2 1 0
A-fase
(Richting)
B-fase (Pulsen)
Teller
1 2 3 2 1
rection Mode
Verhoogd Verlaagd
De telmode (ring mode of lineaire mode) voor highspeed counter 1 en 2 worden gespecificeerd in respectievelijk DM6643 en DM6644.
1. Ring Mode: In de ring mode wordt de maximum telwaarde + 1 ingesteld met CTBL(—). De counter gaat van de maximale telwaarde naar 0 tijdens het optellen en van 0 naar de maximale telwaarde tijdens het aftellen. Er komen geen negatieve waarden voor. Het aantal punten in de ring (maximum telwaarde + 1) kan worden ingesteld van 1 tot en met 65000.
2. Lineaire Mode: Het telbereik in de lineaire mode loopt van -8.388.607 tot 8.388.607. Als het toegestane telbereik voor highspeed counter 1 of 2 wordt overschreden, dan treedt een underflow of overflow status op en de actuele waarde van de counter zal blijven staan op 0838 8607 voor overflows en F838 8607 voor underflows, tellen en vergelijking (CTBL) stopt en AR05.09 (poort 1) of AR06.09 wordt aan gezet.
ng Mode
0Max. tel waarde
neaire Mode
Reset methodes
Opmerking
1, 2, 3...
Verlagen Verhogen
0 8.388.607-8.388.607
OverflowUnderflow
Één van de methoden, beschreven in de volgende sectie, moet altijd gebruikt worden om de counter te resetten wanneer deze na een fout herstart moet worden. De counter wordt automatisch gereset wanneer de programma uitvoer wordt gestart of gestopt.
De volgende signaalovergangen worden gezien als voorwaartse (optellende) pulsen: A-fase opgaande flank gevolgd door B-fase opgaande flank gevolgd door A-fase neergaande flank gevolgd B-fase neergaande flank. De volgende signaal­overgangen worden gezien als teruggaande (verlagende) pulsen: B-fase opgaande flank gevolgd door A-fase opgaande flank gevolgd door B-fase neergaande flank gevolgd A-fase neergaande flank.
Het Z-fase signaal èn software reset of alleen de software reset kan worden geselecteerd om de actuele waarde van de teller te resetten (instellen op 0). Deze resets werken op dezelfde manier als bij highspeed counter 0 (zie "nul" op pagina
58).
1. De status van het
Highspeed Counter 1 en 2 Resetbit
(252.01 en 252.02) wordt één keer per cyclus, tijdens de I/O refresh, doorgegeven aan de highspeed counter. Om de counter betrouwbaar te resetten is het dus noodzakelijk om het signaal minimaal één cyclus aan te houden.
2. De vergelijkingstabel, uitvoeringsstatus en bereik vergelijkingsresultaten houden dezelfde waarde na de reset. Een vergelijking wordt voortgezet nadat een reset is uitgevoerd.
CQM1 Programmeerhandleiding pagina 65
CQM1 PC Setup
Bit150
Bit150
OMRON
Highspeed counter interrupt teller
PC Setup
Poort 1 en 2 mode instelling (DM6611)
Opmerking
Input refresh woord instellingen (DM6634 en DM6635)
De vergelijkingstabel die gebruikt word door highspeed counter 1 en 2 is identiek aan die van highspeed counter 0 (zie "nul" op pagina 58).
Wanneer highspeed counter 1 en/of 2 interrupts gebruikt worden moeten de hieronder getoonde instellingen in de PROGRAM mode veranderd worden voordat het programma uitgevoerd wordt.
Specificeer de highspeed counter mode voor poort 1 en 2. Wanneer de highspeed counter mode niet is ingesteld kan CTBL(—) niet gebruikt worden om vergelijkingen met de actuele counter waarde te maken.
Deze instelling wordt gelezen wanneer de PLC aan wordt gezet. Na het maken van de instelling moet de PLC uit en vervolgens aan worden gezet voor het programma kan worden uitgevoerd.
00 00
Default:
DM6611
Poort 1 en 2 Mode Instelling 0000 : Highspeed counter mode
De default mode instelling is highspeed counter mode.
Als DM6611 is ingesteld op pulsuitgang mode, kan een andere vergelijkings­instructie zoals BCMP(—) gebruikt worden om de actuele waarde van highspeed counters 1 en 2 te vergelijken.
DM6634 bevat de input refresh woord instellingen voor highspeed counter 1 en DM6635 bevat de instellingen voor highspeed counter 2. Maak deze instellingen wanneer het noodzakelijk is om ingangen te refreshen.
Highspeed counter 1 en 2 instellingen (DM6643 en DM6644)
Programmeren
Highspeed counter 1 en 2 interrupts
DM6634/DM6635
00 t/m 11: Begin woord nr. (2 cijfers BCD) 00 t/m 12:Aantal woorden (2 cijfers BCD)
Default:
Geen input refresh
DM6643 bevat de instellingen voor highspeed counter 1 en DM6644 bevat de instellingen voor highspeed counter 2. Deze instellingen bepalen de werking van deze highspeed counters.
Bit 15 0
_
Default:
DM6643/DM6644
Pulstype
0: Differential Phase Mode 1: Pulse/Direction Mode 2: Up/Down Mode
Reset Methode
0: Z-fase en software reset 1: Software reset
Telmode
0: Lineaire mode 1: Ring mode
Lineaire Mode, Z-fase en software reset, Differential Phase Mode
Gebruik de volgende stappen om highspeed counter 1 en 2 te programmeren. Highspeed counter 1 en 2 beginnen te tellen wanneer de juiste instellingen in de
PC Setup zijn gemaakt, maar vergelijkingen worden niet met de vergelijkingstabel uitgevoerd en interrupts worden niet gegenereerd tot de CTBL(—) instructie wordt uitgevoerd.
Highspeed counter 1 en 2 worden ingesteld op "0" als de spanning aan wordt gezet, wanneer de uitvoer van het programma begint en wanneer de uitvoer van het programma stopt.
De actuele waarde van highspeed counter 1 wordt opgeslagen in 232 en 233 en de actuele waarde van highspeed counter 2 wordt opgeslagen in 234 en 235.
1. Gebruik de CTBL(—) instructie om de vergelijkingstabel in de CQM1 op te slaan en om de vergelijkingen te starten.
pagina 66 CQM1 Programmeerhandleiding
OMRON
CQM1 PC Setup
Opmerking
Uitlezen van de actuele waarde
Uitlezen van 232 en 233 of 234 en 235
(@)CTBL
P
C
TB
P: Poort 001: Poort 1 002: Poort 2 C: (3 cijfers BCD) 000 : Doel tabel ingesteld en vergelijking gestart 001 : Bereik tabel ingesteld en vergelijking gestart 002 : Doel tabel alleen ingesteld 003 : Bereik tabel alleen ingesteld
TB : Begin woord van de vergelijkingstabel
Als C is ingesteld op 000, dan worden de vergelijkingen uitgevoerd in de doel mode. Als C 001 is dan worden ze uitgevoerd in de bereik vergelijking mode. De vergelijkingstabel wordt opgeslagen en wanneer deze handeling klaar is zullen de vergelijkingen uitgevoerd worden. Als de vergelijkingen worden uitgevoerd zullen highspeed interrupts worden uitgevoerd zoals dit in de vergelijkingstabel is opgeslagen.
In de bereik vergelijking mode worden de resultaten van de vergelijking terwijl deze wordt uitgevoerd normaal opgeslagen in AR11.00 t/m AR11.07.
Als C is ingesteld op 002, dan worden de vergelijkingen uitgevoerd in de doel mode als C 003 is dan worden ze uitgevoerd in de bereik vergelijking mode. Bij beide instellingen wordt de vergelijkingstabel opgeslagen, maar de vergelijkingen zullen niet gestart worden. De INI(—) instructie moet in dit geval gebruikt worden om de vergelijkingen te starten.
2. Voer de INI(—) instructie uit zoals hieronder getoond om de vergelijkingen te stoppen. Specificeer poort 1 of 2 in P (P=001 of 002).
(@)INI
P
001
000
Zet de tweede operand op “000” om de vergelijkingen opnieuw te starten en voer de INI(—) instructie uit. Zodra een tabel is opgeslagen dan wordt deze in de CQM1 bewaard zolang de CQM1 het programma uitvoert en er geen andere tabel wordt opgeslagen.
Er zijn twee manieren om de actuele waarde uit te lezen. De eerste is om deze direct uit 232 en 233 (poort 1) of uit 234 en 235 (poort 2) te lezen, de tweede is door gebruik te maken van de PRV(—) instructie.
De actuele waarde van highspeed counter 1 is opgeslagen in 232 en 233 en de actuele waarde van highspeed counter 2 is opgeslagen in 234 en 235 zoals hieronder getoond. In de lineaire mode zal het meest linkse cijfer “F” bevatten bij negatieve waarden.
Linker 4 cijfers Rechter 4 cijfers Lineaire Mode Ring Mode
Poort 1 233 232 F8388607 t/m
08388607
00000000 t/m 0006499
Poort 2 235 234 (-8388607 t/m
8388607)
Opmerking
Deze woorden worden één keer per cyclus gerefreshed, tijdens de I/O refresh, Zodat er een verschil kan bestaan tussen de uitgelezen actuele waarde en de huidige actuele waarde.
De PRV(—) instructie gebruiken
Lees de actuele waarde van een highspeed counter uit door de PRV(—) instructie te gebruiken. Specificeer highspeed counter 1 of 2 in P (P=001 of 002).
(@)PRV
P
000
P1
P : Poort (001: poort 1; 002 : poort 2)
P1: Eerste woord voor de PV
De actuele waarde van de gespecificeerde highspeed counter wordt opgeslagen zoals hieronder getoond. Het meest linkse cijfer zal “F” bevatten als het getal negatief is.
Linker 4 cijfers Rechter 4 cijfers Lineaire Mode Ring Mode
P1 + 1 P1 F8388707 t/m 08388607 00000000 t/m 0006499
(-8388607 t/m 8388607)
CQM1 Programmeerhandleiding pagina 67
CQM1 PC Setup
Actuele waarde veranderen
Highspeed counter status
OMRON
De actuele waarde wordt uitgelezen op het moment waarop de PRV(—) instructie wordt uitgevoerd.
Er zijn twee manieren om de actuele waarde van highspeed counter 1 en 2 te veranderen. De eerste manier is door deze te resetten door één van de reset methodes te gebruiken. In dit geval wordt de actuele waarde ingesteld op 0. De tweede manier is door gebruik te maken van de INI(—) instructie.
De methode die de INI(—) instructie gebruikt wordt hier uitgelegd. Refereer naar het begin van deze verklaring voor een verklaring van de reset methodes.
Verander de actuele waarde van de counter door de INI(—) instructie zoals hieronder getoond te gebruiken.
(@)INI
P
002
D
Linker 4 cijfers Rechter 4 cijfers Lineaire Mode Ring Mode
D + 1 D F8388707 t/m 08388607 00000000 t/m 0006499
Zet op het meest linkse cijfer van D+1 een F om een negatief getal in te kunnen stellen.
De status van highspeed counters 1 en 2 kunnen worden bepaald door de relevante vlaggen uit het AR gebied uit te lezen of door PRV(—) uit te voeren.
De volgende tabel toont de relevante AR gebied vlaggen en hun functie.
P : Poort (001: poort 1; 002 : poort 2)
D : Eerste woord voor opslag van de nieuwe PV
(-8388607 t/m 8388607)
Woord Bit(s) Functie
AR04 08 t/m 15 Geeft de status aan van de highspeed counters
00: Normaal 01 of 02: Hardware error 03: PC Setup error
AR05 00 t/m 07
08
09
AR06 00 t/m 07
08
09
Highspeed Counter 1 Vergelijkingsresultaat vlag
t/m 8. (0: Niet binnen het bereik; 1: Binnen het bereik)
Highspeed Counter 1 Vergelijkingsvlag
(0: Gestopt; 1: In werking)
Highspeed Counter 1 Underflow/Overflow vlag
(0: Normaal; 1: Underflow of overflow is voorgekomen)
Highspeed Counter 2 Vergelijkingsresultaat vlag
t/m 8. (0: Niet binnen het bereik; 1: Binnen het bereik)
Highspeed Counter 2 Vergelijkingsvlag
(0: Gestopt; 1: In werking)
Highspeed Counter 2 Underflow/Overflow vlag
(0: Normaal; 1: Underflow of overflow is voorgekomen)
voor de bereiken 1
voor de bereiken 1
De status van highspeed counters 1 en 2 kan ook bepaald worden door de PRV(— ) instructie uit te voeren. Specificeer highspeed counter 1 of 2 (P=001 of 002) en het bestemmingswoord D. De status informatie wordt geschreven op de bits 00 en 01 van D. De bits 02 t/m 15 worden ingesteld op 0.
@PRV(-)
P
001
D
De bits 00 en 01 van D bevatten de gespecificeerde highspeed counters status.
Bit Functie
00 Vergelijkingsvlag (0: Gestopt; 1: In werking) 01 Underflow/Overflow vlag (0: Normaal; 1: Underflow of overflow is voorgekomen)
Voorbeeld
Dit voorbeeld toont een programma dat pulsen uitstuurt via poort 1. De uitgestuurde pulsen worden geteld met highspeed counter 1. De highspeed counter werkt in de Up/Down Mode, waarbij de pulsuitgang CW pulsen de counter
pagina 68 CQM1 Programmeerhandleiding
OMRON
CQM1 PC Setup
verhogen (A-fase input). Voordat het programma uitgevoerd kan worden moet de PC Setup als volgt veranderd worden en de PLC gereset worden (uit/aan zetten).
DM6611: 0000 (Highspeed counter mode). DM6643: 0002 (Poort 1: Standaard pulsuitgang, lineaire tel mode, Z-fase signaal met software reset en Up/Down Mode).
Andere PC Setup instellingen gebruiken de default instellingen. (Inputs worden niet gerefreshed bij de start van interrupt processing.)
Vervolgens wordt de volgende data opgeslagen voor de vergelijkingstabel:
DM0000 0003 Aantal vergelijkingscondities: 3 DM0001 2500 Doel waarde 1:2,500 DM0002 0000 DM0003 0100 Vergelijking 1 interruptroutine nr.: 100 DM0004 7500 Doel waarde 2: 7,500 DM0005 0000 DM0006 0101 Vergelijking 2 interruptroutine nr.: 101 DM0007 0000 Doel waarde 2: 10,000 DM0008 0001 DM0009 0102 Vergelijking 3 interruptroutine nr.: 102
000.00 @CTBL
001
000
DM0000
Specificeert poort 1, slaat de vergelijkings­tabel op in doel mode formaat, en start het vergelijken.
253.13
Altijd AAN
253.13
Altijd AAN
@PULS
001
004
000
@SPED
001
001
#0001
@ACC
001
001
DM0010
SBN(92)
100
RET(93)
SBN(92)
101
@ACC
001
003
DM 0012
Stel CW pulsen in voor poort 1. (Het aantal pulsen is niet ingesteld.)
Start continue puls uitsturing op poort 1 op 10 Hz.
ACC(-) mode 1 accelereert de frequentie naar 25 kHz met ongeveer 500 Hz/4 ms.
DM0010: 0500 DM0011: 2500
100.00
10,000 Gaat AAN.
ACC(-) mode 3 decelereert de frequentie naar 500 Hz met ongeveer 500 Hz/4 ms.
DM0012: 0050 DM0013: 0050
RET(93)
CQM1 Programmeerhandleiding pagina 69
CQM1 PC Setup
Bit150
SBN(92)
102
253.13
Altijd AAN
SPED
001
001
#0000
RET(93)
Puls uitsturing op poort 1 wordt gestopt door de frequentie op 0 in te stellen.

2.4.8 Absolute highspeed counter interrupts (CQM1-CPU44-E)

Binair gecodeerde signalen van een absolute rotary encoder kunnen worden ingelezen op poort 1 en 2 van de CQM1-CPU44-E en geteld met 1kHz. Interrupt kunnen worden gegenereerd afhankelijk van de getelde waarde.
De twee poorten kunnen onafhankelijk van elkaar werken. De counter voor poort 1 wordt absolute highspeed counter 1 en de counter voor poort 2 wordt absolute highspeed counter 2 genoemd. Deze sectie beschrijft hoe de absolute highspeed counter 1 en 2 gebruikt kunnen worden. Raadpleeg het voor hardware informatie over aansluitingen en specificaties van de counters.
Input signalen en telmodes
Er zijn twee telmodes die kunnen worden gebruikt voor absolute highspeed counter 1 en 2. De telmode en de resolutie instellingen worden gespecificeerd in de PC Setup (DM6643 en DM6644).
1. BCD Mode: De absolute encoders binaire code wordt eerst omgezet naar normale binaire data en vervolgens naar BCD.
2. 360º Mode: De absolute encoders binaire code wordt omgezet naar een hoek waarde (0º t/m 359º), afhankelijk van de resolutie instelling. De CTBL(—) instellingen worden gemaakt in units van 5º.
De volgende tabel toont de mogelijke actuele waarden van de counter in BCD mode en in 360º mode voor elke resolutie instelling.
OMRON
CQM1 Operation Manual
Absolute highspeed counter interrupts
PC Setup
Input refresh woord instellingen (DM6634 en DM6635)
Absolute highspeed counter instellingen (DM6643 en DM6644)
Resolutie Mogelijke actuele waarde
BCD mode 360º mode
8-bit 0 t/m 255 Actuele waarde uitlezing 0º t/m 359º (1º units) 10-bit 0 t/m 1023 Vergelijkingstabel instellingen: 0º t/m 355º (5º units) 12-bit 0 t/m 4095
De actuele waarde van de counter kan vergeleken worden met 16 doel waarden of 8 bereiken. Raadpleeg hoofdstuk "Registreer vergelijkingstabel - CTBL(—)" op pagina 133 voor een beschrijving van de gebruikte vergelijkingstabellen voor absolute highspeed counter 1 en 2.
Wanneer de interrupt mogelijkheden van de absolute highspeed counter 1 en/of 2 worden gebruikt maak dan de onderstaande instellingen in de PROGRAM mode voordat het programma uitgevoerd wordt.
DM6634 bevat de input refresh woord instellingen voor absolute highspeed counter 1 en DM6635 bevat de instellingen voor absolute highspeed counter 2. Maak deze instellingen wanneer het noodzakelijk is om ingangen te refreshen in de interrupt routines.
DM6634/DM6635
00 t/m 11: Begin woord nr. (2 cijfers BCD) 00 t/m 12:Aantal woorden (2 cijfers BCD)
Default:
Geen input refresh
DM6643 bevat de instellingen voor absolute highspeed counter 1 en DM6644 bevat de instellingen voor absolute highspeed counter 2. Deze instellingen bepalen de door de counter gebruikte telmode en de resolutie.
pagina 70 CQM1 Programmeerhandleiding
OMRON
Bit150
Nulpuntcompensatie
1, 2, 3...
Programmering
Absolute highspeed counter interrupts beheersen
CQM1 PC Setup
DM6643/DM6644
Resolutie instelling:
00: 8-bit 01: 10-bit 02: 12-bit
Tel mode:
00: BCD mode 01: 360 mode
Default:
Het is mogelijk om een offset tussen het nulpunt van de absolute rotary encoder en het machinenulpunt te compenseren. Deze instelling kan gemaakt worden voor poort 1 en 2, onafhankelijk van elkaar.
Volg de procedure hieronder om de nulpuntcompensatie in te stellen. Nadat de nulpuntcompensatie is ingesteld zal de positie van de encoder met deze waarde worden gecorrigeerd voordat deze in de PLC is uit te lezen als actuele waarde.
1. Zet de absolute rotary encoder op het gewenste nulpunt locatie.
2. Zorg ervoor dat pin 1 van de CPU's dipswitches uit is (hierdoor is het mogelijk
3. Stel de gewenste resolutie in op DM6643 of DM6644.
4. Controleer of er geen fatale error of FALS 9C error is opgetreden. (zo ja, begin
5. Lees de actuele waarde van de highspeed counter van 232 en 233 (poort 1) of
6. Zet de
7. Lees de actuele waarde uit van de highspeed counter (zie punt 5 voor de
Gebruik de volgende stappen om de absolute highspeed counters 1 en 2 in uw programma te gebruiken.
De absolute highspeed counters 1 en 2 beginnen te tellen wanneer de juiste PC Setup instellingen zijn gemaakt. Vergelijkingen worden niet uitgevoerd met de vergelijkingstabel en interrupts worden niet gegenereerd tot de CTBL(—) instructie wordt uitgevoerd.
De actuele waarde van absolute highspeed counter 1 wordt opgeslagen in 232 en 233 en de actuele waarde van absolute highspeed counter 2 wordt opgeslagen in 234 en 235.
1. Gebruik de CTBL(—) instructie om de vergelijkingstabel in de CQM1 op te
BCD mode, 8-bit resolutie
dat periferie DM6614 t/m DM6655 kan overschrijven) en zet de PLC in PROGRAM mode.
vanaf punt 1 overnieuw).
234 en 235 (poort 2) om de actuele waarde van voor de nulpunt compensatie te bepalen.
Poort 1 Nulpunts Compensatie vlag
compensatie vlag
(252.02) aan. Gebruik hiervoor Set en geen Forced Set!
(252.01) of de
Poort 2 Nulpunts
De compensatie waarde wordt naar DM6611 (poort 1) of DM6612 (poort 2) geschreven en de
Nulpunts Compensatie vlag
zal automatisch uit worden gezet. De compensatie waarde wordt altijd opgeslagen in BCD, een getal tussen de 0000 en 4095, onafhankelijk of de counter is ingesteld op BCD mode of 360º mode.
adressen) uit om deze te bepalen nadat het nulpunt gecorrigeerd is. De actuele waarde zou nu 0000 moeten zijn.
slaan en om de vergelijkingen te starten.
(@)CTBL
P
C
TB
P: Poort
001: Poort 1 002: Poort 2
C: (3 cijfers BCD)
000 : Doel tabel instellen en vergelijken starten 001 : Bereik tabel instellen en vergelijken starten 002 : Doel tabel alleen instellen 003 : Bereik tabel alleen instellen
TB : Begin woord van de vergelijkingstabel
P specificeert de poort. Kies P=001 voor absolute highspeed counter 1 of P=002 voor absolute highspeed counter 2.
CQM1 Programmeerhandleiding pagina 71
CQM1 PC Setup
Opmerking
Actuele waarde uitlezen
Uitlezen van 232 en 233 of 234 en 235
OMRON
Wanneer C is ingesteld op 000, dan worden de vergelijkingen gemaakt met de doel waarde methode: Is deze 001, dan worden ze gemaakt met de bereik vergelijking methode. De vergelijkingstabel wordt opgeslagen en de vergelijkingen worden direct hierna gestart. Terwijl de vergelijkingen worden uitgevoerd worden de interrupts aangeroepen zoals in de vergelijkingstabel is opgeslagen.
De vergelijkingsresultaten worden opgeslagen in AR05.00 t/m AR05.07 (poort 1) en AR06.00 t/m AR06.07 (poort 2) wanneer de bereik vergelijking wordt uitgevoerd. Alleen de doel methode roept interruptroutines op.
Wanneer C is ingesteld op 002, dan worden de vergelijkingen uitgevoerd met de doel waarde methode; Is deze 003, dan worden ze uitgevoerd met de bereik vergelijking methode. Voor deze beide instellingen zal de vergelijkingstabel worden opgeslagen, maar de vergelijkingen worden niet gestart. De INI(—) instructie moet in dit geval gebruikt worden om de vergelijkingen te starten.
2. Om de vergelijkingen te stoppen moet de INI(—) instructie uitgevoerd worden zoals hieronder getoond. Specificeer poort 1 of 2 in P (P=001 of 002).
(@)INI
P
001
000
Verander, om de vergelijkingen (weer) te starten, de tweede operand in "000" en voer de INI(—) instructie uit. Zodra een tabel is opgeslagen zal deze worden vastgehouden in de CQM1 zolang deze werkt (d.w.z. zolang het programma wordt uitgevoerd) of tot een andere tabel wordt opgeslagen.
Er zijn twee manieren om de actuele waarde uit te lezen. De eerste is om deze direct uit te lezen van 232 en 233 (poort 1) of 234 en 235 (poort 2) en de tweede is om de PRV(—) instructie te gebruiken.
De actuele waarde van absolute highspeed counter 1 is opgeslagen in 232 en 233 en de actuele waarde van absolute highspeed counter 2 is opgeslagen in 234 en 235 zoals hieronder getoond.
Opmerking
PRV(—) gebruiken
Highspeed counter status
Linker 4 cijfers Rechter 4 cijfers BCD Mode 360º Mode
Poort 1 233 232 0000 0000 t/m 0000 0000 t/m Poort 2 235 234 0000 4095 0000 0359
Deze woorden worden maar één keer per programmaslag vernieuwd. Er kan dus een verschil bestaan tussen de uitgelezen waarde en de actuele waarde.
Met de PRV(—) instructie kan de actuele waarde van de absolute highspeed counters uitgelezen worden. Specificeer absolute highspeed counter 1 of 2 in P (P=001 of 002).
(@)PRV
P
000
P1
P : Poort (001: poort 1; 002 : poort 2)
P1: Eerste woord van de actuele waarde
De actuele waarde van de gespecificeerde absolute highspeed counter wordt opgeslagen zoals hieronder getoond is.
Linker 4 cijfers Rechter 4 cijfers BCD Mode 360º Mode
P1 + 1 P1 0000 0000 t/m 0000
4095
0000 0000 t/m 0000 0359
De actuele waarde wordt uitgelezen als de PRV(—) instructie wordt uitgevoerd. De status van de absolute highspeed counters 1 en 2 kunnen bepaald worden
door deze uit te lezen van de relevante vlaggen in het AR gebied of door de PRV(—) instructie uit te voeren.
De volgende tabel toont de relevante vlaggen in het AR gebied en verklaart hun functie.
pagina 72 CQM1 Programmeerhandleiding
OMRON
CQM1 PC Setup
Woord Bit(s) Functie
AR04 08 t/m 15 Geeft de absolute highspeed counter status aan
00: Normaal 01 of 02: Hardware error 03: PC Setup error
AR05 00 t/m 07
08
AR06 00 t/m 07
08
Highspeed Counter 1 Vergelijkingsresultaat vlaggen
bereiken 1 t/m 8. (0: Niet in het bereik; 1: In het bereik)
Highspeed Counter 1 Vergelijkingsvlag
(0: Gestopt; 1: Aan het vergelijken)
Highspeed Counter 2 Vergelijkingsresultaat vlaggen
bereiken 1 t/m 8. (0: Niet in de bereik; 1: In de bereik)
Highspeed Counter 2 Vergelijkingsvlag
(0: Gestopt; 1: Aan het vergelijken)
De vergelijkingsvlag status van de absolute highspeed counters 1 en 2 kunnen ook bepaald worden door de PRV(—) instructie uit te voeren. Specificeer absolute highspeed counter 1 of 2 (P=001 of 002) en het bestemmingswoord D. De status van deze vlag (0: Gestopt; 1: Aan het vergelijken) wordt geschreven in bit 00 van woord D. De bits 01 t/m 15 worden ingesteld op 0.
@PRV(-)
P
001
D
voor de
voor de
Voorbeeld
Dit voorbeeld toont een programma dat een signaal ontvangt van een absolute rotary encoder op poort 1 en dit signaal gebruikt om de uitgangen 100.00 t/m
100.03 aan te sturen. Absolute highspeed counter 1 is ingesteld op 9-bit resolutie en 360º Mode en de bereik vergelijking wordt gebruikt. Voor het programma uitgevoerd kan worden moet eerst DM6643 op 0100 worden ingesteld (Poort 1: 360º Mode, 8-bit resolutie). (Let op de juiste PLC mode voor het veranderen van PC Setup instellingen!)
Andere PC Setup instellingen worden default ingesteld. (Ingangen worden niet gerefreshed bij de start van interrupt processing.
De volgende data moet worden opgeslagen voor de vergelijkingstabel:
DM0000 0000 Lage limiet #1 (0º) Eerste bereik instelling DM0001 0085 Hoge limiet #1 (85º) (0º t/m 85º) DM0002 0100 Subroutine nr. 100 DM0003 0900 Lage limiet #2 (90º) Tweede bereik instelling DM0004 0175 Hoge limiet #2 (175º) (90º t/m 175º) DM0005 0101 Subroutine nr. 101 DM0006 0180 Lage limiet #3 (180º) Derde bereik instelling DM0007 0265 Hoge limiet #3 (265º) (180º to 265º) DM0008 0102 Subroutine nr. 102 DM0009 0270 Lage limiet #4 (270º) Vierde bereik instelling DM0010 0355 Hoge limiet #4 (355º) (270º to 355º) DM0011 0103 Subroutine nr. 103 DM0012 0000 Lage limiet #1 (0º) Vijfde bereik instelling DM0013 0000 Hoge limiet #1 (0º) (Niet gebruikt.) DM0014 FFFF Geen subroutine nr. DM0015 0000 Lage limiet #1 (0º) Zesde bereik instelling DM0016 0000 Hoge limiet #1 (0º) (Niet gebruikt.) DM0017 FFFF Geen subroutine nr. DM0018 0000 Lage limiet #1 (0º) Zevende bereik instelling DM0019 0000 Hoge limiet #1 (0º) (Niet gebruikt.) DM0020 FFFF Geen subroutine nr. DM0021 0000 Lage limiet #1 (0º) Achtste bereik instelling DM0022 0000 Hoge limiet #1 (0º) (Niet gebruikt.) DM0023 FFFF Geen subroutine nr.
CQM1 Programmeerhandleiding pagina 73
CQM1 PC Setup
OMRON
000.00
253.13
AltijdAAN
253.13
AltijdAAN
253.13
AltijdAAN
@CTBL
001
001
DM 0000
SBN(92)
100
MOV(21)
#0001
100
RET(93)
SBN(92)
101
MOV(21)
#0002
100
RET(93)
SBN(92)
102
MOV(21)
#0004
100
Slaat de vergelijkingstabel voor poort 1 op in bereik vergelijk formaat en start het vergeljiken
Zet 100.00 aan, alle andere bits in het woord uit
Zet 100.01 aan, alle andere bits in het woord uit
Zet 100.02 aan, alle andere bits in het woord uit
253.13
AltijdAAN
Het volgende diagram toont de relatie tussen de actuele waarde van absolute highspeed counter 1 en de bereik vergelijking resultaat vlaggen AR05.00 t/m AR05.07 als het bovenstaande programma wordt uitgevoerd.
AR05.00
AR05.01
AR05.02
AR05.03
AR05.04 t/m AR05.07
Actuele Waarde = 0 85 90 175 180 265 270 355 360

2.5 CQM1 communicatie functies

RET(93)
SBN(92)
103
MOV(21)
#0008
100
RET(93)
Zet 100.03 aan, alle andere bits in het woord uit
De volgende typen communicatie kunnen worden uitgevoerd door RS232 poort van de CQM1.
Hostlink communicatie met een computer of terminal. RS-232C communicatie met een computer of andere apparatuur. One-to-one link communicatie met een andere CPM1, CQM1 of C200HS/E/G/X PLC. NT-link naar een OMRON NT terminal. Deze communicatievorm naar OMRON terminals werkt aanzienlijk sneller dan Hostlink.
pagina 74 CQM1 Programmeerhandleiding
OMRON
Opmerking
2.5.1 Instellingen
Opmerking
CQM1 PC Setup
De periferie poort van de PLC kan in combinatie met de CQM1-CIF02 kabel gebruikt worden voor de volgende typen communicatie.
Hostlink communicatie met een computer of terminal. RS-232C communicatie met een computer of andere devices.
One-to-one (1:1) link en NT-link kan niet uitgevoerd worden door de CQM1­CPU11-E, aangezien deze alleen over een periferie poort beschikt. De CQM1­CPU21-E beschikt wel over een RS232 poort, maar kan hiermee niet in NT-link communiceren.
Deze sectie verklaart de benodigde instellingen in de PC Setup en methodes om deze communicatie te gebruiken.
De PC Setup parameters in DM6645 t/m DM6654 worden gebruikt voor instellingen voor de communicatie poorten.
Als pin 5 van de CQM1's dipswitches op aan staat worden de PC Setup communicatie parameters genegeerd en worden de onderstaande instellingen gebruikt zowel voor de RS232 als voor de periferie poort.
Mode: Hostlink Node nummer: 00 Start bits: 1 bit Data lengte: 7 bits Stop bits: 2 bit (1 bij CPU’s van voor juli ‘95) Pariteit: Even Baudrate: 9.600 bps (2.400 bij CPU’s van voor juli ‘95) Transmission delay: Geen
One-to-one link
Opmerking
Hostlink nodenummer
De instellingen in DM6645 en DM6650 bepalen de belangrijkste communicatie parameters, zoals in het volgende diagram getoond wordt.
Bit 15 0
Default:
DM6645: RS-232C poort DM6650: Periferie poort
Poort instellingen
00: Standaard communicatie condities 01: Communicatie zoals ingesteld op DM6646, DM6651
Link woorden voor one-to-one link
0: LR 00 t/m LR 63 1: LR 00 t/m LR 31 2: LR 00 t/m LR 16
Communicatie mode
0: Hostlink 1: RS-232C 2: One-to-one link slave 3: One-to-one link master 4: NT-link
Hostlink met standaard parameters
Om een 1:1 link te gebruiken zijn de enige instellingen de communicatiemode en de linkwoorden. Stel de communicatiemode voor één van de PLC’s in op de 1:1 master en de andere op de 1:1 slave. Stel vervolgens de linkwoorden in bij de PLC die ingesteld is als master. De instelling op de bits 08 t/m 11 is alleen geldig bij de master van de 1:1 link.
1:1 link communicatie is alleen mogelijk op de RS-232C poort. Deze instelling kan niet gemaakt worden voor de periferie poort.
Een nodenummer moet ingesteld worden voor Hostlink communicatie om het verschil aan te kunnen geven tussen nodes wanneer er meer dan 1 node in de communicatie is opgenomen. Deze instelling is alleen nodig voor Hostlink communicatie. Om Hostlink communicatie te kunnen gebruiken moet Hostlink worden ingesteld als communicatiemode en moeten de communicatie parameters worden ingesteld.
Bit 15 0
00
DM6648: RS-232C poort DM6653: Periferie poort
Nodenummer
(2 cijfers BCD): 00 t/m 31
CQM1 Programmeerhandleiding pagina 75
CQM1 PC Setup
Bit150
OMRON
RS232 instellingen
Start- en endcodes activeren
De startcode, endcode en hoeveelheid te ontvangen data instellen
Default:
00
Stel het nodenummer in op 00, tenzij er meerdere nodes in één netwerk zijn opgenomen.
Start- en endcodes of de hoeveelheid data die ontvangen moet worden kan, indien nodig, voor RS-232C communicatie ingesteld worden zoals in het volgende diagram getoond is. Deze instelling is alleen nodig voor RS-232C communicatie. Om RS-232C communicatie te kunnen gebruiken moet RS-232C ingesteld worden als de communicatiemode en moeten de communicatie parameters worden ingesteld.
Bit 15 0
Default:
DM6648: RS-232C poort
00
DM6653: Perferie poort
Start code
0: Niet ingesteld 1: Ingesteld (Startcode gespecificeerd)
End code
0: Niet ingesteld (Hoeveelheid te ontvangen data gespecificeerd) 1: Ingesteld (Endcode gespecificeerd) 2: CR/LF
Geen startcode, data ontvangst klaar na 256 bytes.
Stel in of een startcode aan het begin van de data wel of niet gewenst is en of een endcode aan het einde moet worden toegevoegd. Inplaats van het instellen van een endcode is het ook mogelijk om het aantal bytes dat ontvangen moet worden, voordat de PLC een melding geeft, vast te leggen. Zowel de start- en endcode als het aantal bytes data dat ontvangen moet worden wordt ingesteld in DM6649 of DM6654.
Bit 15 0
Default:
DM6649: RS-232C poort DM6654: Periferie poort
Startcode 00 t/m FF Endcode of aantal te ontvangen bytes Endcode: 00 t/m FF Voor hoeveeldheid te ontvangen data 2 cijfers hexadecimaal, 00 t/m FF (00: 256 bytes)
Geen startcode, Data ontvangst klaar na 256 bytes

2.5.2 Hostlink en RS-232C communicatie parameters

Selecteer Hostlink of RS-232C communicatie en stel vervolgens de communicatie parameters in zoals hieronder beschreven. Zorg ervoor dat de communicatie instellingen van de CQM1 exact overeen komen met die van het apparaat waarmee gecommuniceerd moet worden.
Standaard communicatie
Communicatie instellen
Transmissie frame formaat
Als de volgende instellingen correct zijn voor de communicatie zet dan de twee rechter cijfers van DM6645 en DM6650 op 00. Door deze instelling worden de ingevoerde parameters op DM6646 en DM6651 genegeerd.
Start bits: 1 bit Data lengte: 7 bits Stop bits: 2 bits Pariteit: Even Baudrate: 9.600 bps
DM6646: RS-232C poort
DM6651: Periferie poort
Baudrate (zie tabel)
Transmissie Frame Formaat (zie tabel)
Default:
00171Even 01 1 7 1 Oneven 02 1 7 1 None 03172Even
Standaard communicatie condities.
Instelling Start bit Data lengte Stop bits Pariteit
pagina 76 CQM1 Programmeerhandleiding
OMRON
Bit150
CQM1 PC Setup
04 1 7 2 Oneven 05 1 7 2 None 06181Even 07 1 8 1 Oneven 08 1 8 1 None 09182Even 10 1 8 2 Oneven 11 1 8 2 None
Baudrate
00 1.200 bps 01 2.400 bps 02 4.800 bps 03 9.600 bps 04 19.200 bps
Transmissie vertraging
Afhankelijk van het apparaat dat aangesloten is op de RS-232C poort, kan het nodig zijn om een transmissie vertraging in te stellen. Wanneer dit het geval is, stel dan de transmissie vertraging in om de toegestane tijd te regelen. De transmissie vertraging is de tijd die de PLC zal wachten met het versturen van een volgend byte nadat er een is verzonden.
Default:
2.5.3 Poorten aansluiten
Raadpleeg het de communicatie poorten.
2.5.4 Hostlink communicatie
Instelling Baudrate
DM6647: RS-232C poort DM6652: Periferie poort
Transmissie vertraging (4 cijfers BCD; unit 10 ms)
Geen vertraging
CQM1 Operation Manual
voor informatie over het aansluiten van
Communicatie procedure
Hostlink communicatie is ontwikkeld door OMRON om één of meer PLC’s met een computer te kunnen laten communiceren via een RS-232C kabel waarbij de computer data uit de PLC kan lezen of ernaar kan schrijven. Normaal stuurt de computer een commando naar de PLC en stuurt de PLC automatisch een response terug. De communicatie wordt dus uitgevoerd zonder dat de PLC er actief bij is betrokken. De PLC kan ook communicatie opbouwen naar de computer indien dit noodzakelijk is. In dit geval wordt gesproken over event driven communicatie.
Over het algemeen zijn er twee manieren om Hostlink communicatie te implementeren. De ene manier is gebaseerd op C-mode commando’s en de andere op FINS (CV-mode) commando’s. De CQM1 ondersteunt alleen de C­mode commando’s.
Deze sectie verklaart hoe Hostlink gebruikt kan worden om datatransmissie vanuit de CQM1 op te starten. Door deze methode te gebruiken wordt het communicatie proces vereenvoudigd. Het is niet meer noodzakelijk voor de computer om continu de data in de PLC te bekijken om te controleren of er data veranderd is. Aangezien de CQM1 zelf een bericht kan sturen als de data veranderd is. Deze optie is alleen in een RS-232C verbinding mogelijk. Wordt een multidrop verbinding gebruikt dan bestaat de kans dat data verminkt wordt.
1. Controleer of AR08.05 (
RS-232C poort Transmit Ready Vlag
) aan is.
2. Gebruik de TXD(—) instructie om de data te verzenden.
CQM1 Programmeerhandleiding pagina 77
CQM1 PC Setup
OMRON
Toepassing
(@TXD
S
C
N
S: Begin woord van de te verzenden data
C: Controle data
Bits 00 t/m 03 Verzend volgorde
0: Linker bytes eerst 1: Rechter bytes eerst
Bits 12 t/m 15 Poort waarover data verzonden wordt
0: RS-232C poort 1: Peripheral poort
N: Aantal bytes dat verzonden moet worden (4 cijfers BCD 0000 t/m 0256)
Vanaf het moment dat deze instructie wordt uitgevoerd tot aan het moment dat de datatransmissie klaar is zal AR08.05 (of AR08.13 voor de periferie poort) uit blijven. Het bit zal weer aan gaan als alle data verzonden is. De TXD(—) instructie beschikt niet over een response, dus om een bevestiging te krijgen dat de computer de data ontvangen heeft, moet de computer een bericht naar de CQM1 sturen om deze te melden dat de data ontvangen is.
Het transmissie data frame wordt hieronder getoond van data dat verzonden wordt in de Host Link Mode door de TXD(—) instructie.
0
@
1
Node nr. Header code
Ex 10 x 10 *X cr.
(Moet "EX" zijn)
Data (tot 122 karakters) FCS Terminator
Om de RS-232C poort te resetten, d.w.z. deze in de initiële staat terug brengen, moet 252.09 aan gezet worden. Om de periferie poort te resetten moet 252.08 hoog gemaakt worden. Deze bits zullen automatisch uit gaan nadat de poort gereset is.
Als de TXD(—) instructie wordt uitgevoerd terwijl de CQM1 bezig is met het versturen van de respons op een commando van de computer, dan zal deze respons transmissie eerst worden afgemaakt voordat de transmissie van de TXD instructie wordt gestart. In alle andere gevallen zal de data transmissie, gebaseerd op een TXD(—) instructie, de hoogste prioriteit krijgen.
Dit voorbeeld toont een programma dat via de RS-232C poort in de Hostlink Mode 10 bytes data (DM0000 t/m DM004) naar de computer verstuurt. Er wordt vanuit gegaan dat alle waarden in de PC Setup default staan ingesteld. Dat wil zeggen, dat de RS-232C poort wordt gebruikt in de Hostlink Mode, het nodenummer 00 is en de standaard communicatie condities worden gebruikt.) Van DM0000 t/m DM0004 wordt "1234" opgeslagen in elk woord. Activeer op de computer een “terminal” programma waarmee de data van de CQM1 ontvangen kan worden.
001.00 AR08.05 @TXD
DM0000
#0000
#0010
Als AR08.05 (de Transmit Ready Vlag) AAN is, worden wanneer 001.00 AAN gaat de tien bytes data (DM0000 t/m DM0004) verzonden.
Het volgende voorbeeld programma kan gebruikt worden op de computer om de data te ontvangen. Dit programma maakt het mogelijk voor de computer om de data van de PLC te lezen en op het scherm te tonen, terwijl een Hostlink read commando wordt uitgevoerd om data uit de PLC te lezen.
10 'CQM1 VOORBEELD PROGRAMMA VOOR DATA ONTVANGST 20 CLOSE 1 30 CLS 40 OPEN "COM:E73" AS #1 50 *KEYIN 60 INPUT "DATA --------",S$ 70 IF S$=" " THEN GOTO 190 80 PRINT "SEND DATA = ";S$ 90 ST$=S$ 100 INPUT "SEND OK? Y or N?=",B$ 110 IF B$="Y" THEN GOTO 130 ELSE GOTO *KEYIN 120 S$=ST$ 130 PRINT #1,S$ ' Zend commando naar de PLC 140 INPUT #1,R$ ' Ontvang respons van de PLC 150 PRINT "RECV DATA = ";R$ 160 IF MID$ (R$,4,2)="EX" THEN GOTO 210 'Identificeer het commando van de PC 170 IF RIGHT$ (R$,1) <>"*" THEN S$=" ":GOTO 130 180 GOTO *KEYIN 190 CLOSE 1 200 END
pagina 78 CQM1 Programmeerhandleiding
OMRON
256 b
210 PRINT "EXCEPTION!! DATA" 220 GOTO 140
De data die de computer ontvangt wordt hieronder getoond. (De FCS is "59", [CR] is een carriage return.)
"@00EX1234123412341234123459*[CR]"
Het getoonde programma is een voorbeeld. Het kan mogelijk zijn dat het aangepast moet worden om het op uw systeem aan het werk te krijgen.
2.5.5 RS-232C communicatie
Deze sectie verklaart de RS-232C communicatie. Door RS-232C communicatie kan data afgedrukt worden op een printer of bijvoorbeeld gelezen met een barcode lezer. Handshaking wordt niet ondersteund bij RS-232C communicatie.
Transmissie
1. Controleer of AR08.05 (
2. Gebruik de TXD(—) instructie om data te versturen.
Vanaf het moment dat deze instructie wordt uitgevoerd tot aan het einde van de data transmissie, zal AR08.05 (of AR08.13 voor de periferie poort) uit blijven. Het bit zal aan gaan nadat de data transmissie is afgelopen.
Start- en endcodes worden niet in het gespecificeerde aantal te verzenden bytes opgenomen. De grootste hoeveelheid data dat kan worden verzonden met of zonder start- en/of endcode is 256 bytes. N ligt tussen de 253 en 256, afhankelijk van de gekozen start- en endcode. Als het aantal te verzenden bytes wordt ingesteld op 0000, dan worden alleen de start- en endcode verstuurd.
(@)TXD
S
C
N
RS-232C poort Transmit Ready Vlag
S: Eerste woord van de te verzenden data
C: Controle data
N: Aantal te verzenden bytes (4 cijfers BCD)
0000 t/m 0256
ytes max.
CQM1 PC Setup
) aan is.
Startcode Data Endcode
Om de RS-232C poort te resetten (terug brengen naar de initiële status) moet
252.09 aangezet worden. Om de periferie poort te resetten moet 252.08 aangezet worden. Deze bits worden automatisch hoog gemaakt nadat de reset is uitgevoerd.
Ontvangen
1. Controleer dat AR08.06 ( (
Periferie Reception Complete Vlag
RS-232C Reception Complete Vlag
) aan zijn.
) of AR08.14
2. Gebruik de RXD(—) instructie om data te ontvangen.
(@)RXD
D
C
N
D: Eerste woord voor het opslaan van de ontvangen data
C: Controle data
Bits 00 t/m 03
0: Linker bytes eerst 1: Rechtert bytes eerst
Bits 12 t/m 15
0: RS-232C poort 1: Periferie poort
N: Hoeveelheid te ontvangen data (4 cijfers BCD)
0000 t/m 0256
3. Het resultaat van het uitlezen van de ontvangen data wordt opgeslagen in het AR gebied. Controleer op deze bits of de lees actie succesvol is afgelopen. De inhoud van deze bits wordt elke keer als RXD(—) wordt uitgevoerd gereset.
RS-232C poort Periferie poort Error
AR08.00 t/m AR08.03
AR08.08 t/m AR08.11
RS-232C poort error code (1 cijfer BCD) 0: Normaal verwerkt 1: Pariteit error 2: Framing
error 3: Overrun error AR08.04 AR08.12 Communicatie error AR08.07 AR08.15
Reception Overrun Vlag
(Nadat de data door de CQM1 is ontvangen wordt de volgende reeks data ontvangen voordat de vorige door het PLC programma was gelezen met de RXD instructie)
AR09 AR10 Aantal ontvangen bytes
CQM1 Programmeerhandleiding pagina 79
CQM1 PC Setup
Sl
M
Voorbeeld
OMRON
Om de RS-232C poort te resetten moet 252.09 hoog gemaakt worden. Om de periferie poort te resetten moet 252.08 hoog gemaakt worden. Deze bits worden automatisch laag nadat de reset is uitgevoerd.
De startcode en endcode zijn niet in AR09 of AR10 opgenomen (aantal ontvangen bytes).
Dit voorbeeld toont een programma dat de RS-232C poort in de RS-232C Mode gebruikt om 10 bytes data (DM0100 t/m DM0104) naar een computer te versturen. Data die wordt ontvangen van de computer wordt opgeslagen in het DM gebied vanaf DM200. Voordat het programma uitgevoerd kan worden moet de volgende instelling in de PC Setup gemaakt worden.
DM6645:
condities)
DM6648:
Voor alle andere instellingen in de PC Setup wordt verondersteld dat deze op de standaard waarde staan. In DM0100 t/m DM0104 wordt 3132 opgeslagen in elke woord. Gebruik op de computer een terminal programma dat op dezelfde manier staat ingesteld als de CQM1.
001.00
099.15 AR08.05
AR08.06
1000 (RS-232C poort in RS-232C Mode; standaard communicatie
2000 (Geen startcode; endcode CR/LF)
DIFU(13)
99.15
TXD
DM0100
#0000
#0010
RXD
DM0200
#0000
AR09
Als AR08.05 (De Transmit Ready Vlag) AAN is en IR001.00 AAN gaat worden de tien bytes data (DM0100 t/m DM0104) verzonden, de linker bytes eerst.
Wanneer AR08.06 (Reception Completed Vlag) AAN gaat wordt het in AR09 gespecificeerde aantal bytes data gelezen uit de CQM1's reception buffer en opgeslagen in het geheugen vanaf DM200. De linker bytes eerst.
Op de computer zal de volgende data ontvangen worden: "1212121212CR LF". De waarde 3132 op een woord in de PLC zijn twee bytes, met de waarde 31 en 32. Dit zijn respectievelijk de ASCII codes voor 1 en 2 (let wel dat in de PLC hexadecimale getallen worden ingevoerd). CR is een carriage return, LF is een linefeed.

2.5.6 One-to-one link communicatie

Als twee CQM1's op 1:1 basis worden gekoppeld via de RS-232C poorten, dan kunnen ze het LR geheugen gezamenlijk delen. Wanneer twee PLC’s one-to-one worden gekoppeld, dan zal de een als master en de ander als slave fungeren.
Opmerking
One-to-one link
Bij de CQM1 en C200HS kan de periferie poort niet worden gebruikt voor 1:1 links. Een one-to-one link staat twee PLC's toe om data gemeenschappelijk te delen in
het LR gebied. Zoals in het onderstaande diagram getoond, zal data die geschreven wordt in een woord in het LR gebied van de ene PLC automatisch naar hetzelfde woord in het LR gebied van de andere PLC worden geschreven. Elke PLC krijgt een aantal vaste woorden toegewezen waarop geschreven kan worden en een aantal vaste woorden waar de andere PLC op mag schrijven.
Master gebied
Slave gebied
Schrijf "1"
1
aster
Automatisch geschreven
ave
Master gebied
1
1
Schrijf "1"
Slave gebied
De woorden die door de PLC’s gebruikt worden staan in de onderstaande tabel. Deze zijn afhankelijk van de in de PC Setup ingestelde link woorden voor de master.
DM6645 instelling LR00 t/m LR63 LR00 t/m LR31 LR00 t/m LR15
Master woorden LR00 t/m LR31 LR00 t/m LR15 LR00 t/m LR07
pagina 80 CQM1 Programmeerhandleiding
OMRON
M
Sl
CQM1 PC Setup
Slave woorden LR32 t/m LR63 LR16 t/m LR31 LR08 t/m LR15
Communicatie procedure
Voorbeeld
Master
Als de instellingen voor de master en de slave correct zijn gemaakt, dan wordt de one-to-one link automatisch gestart door simpelweg de spanning op beide PLC’s te zetten. De 1:1 link werkt onafhankelijk van de mode van de PLC.
Dit voorbeeld toont een programma dat de statussen van de ene CPU doorgeeft aan de andere. Dit gebeurt door middel van een one-to-one link die ingesteld staat op de RS-232C poort. Voor het programma uitgevoerd kan worden moeten de volgende instellingen in de PC Setup gemaakt worden.
Master: DM6645: 3200 (one-to-one link master; LR 00 t/m LR 15 wordt gebruikt) Slave: DM6645: 2000 (one-to-one link slave) Voor de rest van de parameters in de PC Setup wordt aangenomen dat ze op de
standaard waarde staan ingesteld. De woorden die voor de one-to-one link worden gebruikt zijn hieronder getoond.
LR00
LR07
LR08
LR15
aster
Schrijven
Lezen
ave
Lezen
Schrijven
LR00
LR07
LR08
LR15
Wanneer het programma in zowel de master als de slave wordt uitgevoerd, zal de status van woord 001 van elke unit op woord 100 van de andere unit getoond worden. Woord 001 is een ingangswoord en 100 is een uitgangs woord.
253.13
AltijdAAN
MOV(21)
001
LR00
MOV(21)
LR08
100
Slave
253.13
AltijdAAN
MOV(21)
001
LR08
MOV(21)
LR00
100
2.6 Uitbreidingsinstructies
Een set met uitbreidingsinstructies is beschikbaar voor de CQM1 om te voorzien in speciale programmeerbehoeften. Functiecodes kunnen worden toegewezen aan maximaal 18 van de uitbreidingsinstructies om deze beschikbaar te krijgen in het programma. Dit staat de gebruiker toe om die instructies te kiezen die nodig zijn voor het programma waardoor meer effectief met de beschikbare functiecodes, die nodig zijn om een programma in te voeren, kan worden omgegaan.
De mnemonics van uitbreidingsinstructies worden gevolgd door "(—)" als functiecode om aan te geven dat er een nummer aan toegewezen moet worden, in de functie mapping tabel, voor ze door de gebruiker toegepast kunnen worden.
Functie code 61
Functie code 64
Functie code 65
Standaard zijn de functiecodes toegewezen zoals hierboven getoond. (In dit voorbeeld gaat het om de instructie waarmee puls­uitgangen worden aangestuurd)
INI
SPED
PULS
MAX
MIN
SUM
Functie code 61
Functie code 64
Functie code 65
Als de pulsuitgangen niet worden gebruikt en de max, min en sum instructie nodig zijn, dan kan
het function mapping dialoog gebruikt worden om deze instructies functiecodes toe te wijzen in de instructie tabel.
CQM1 Programmeerhandleiding pagina 81
INI
SPED
PULS
MAX
MIN
SUM
CQM1 PC Setup
OMRON
De volgende 18 functiecodes kunnen worden gebruikt voor de uitbreidings­instructies: 17, 18, 19, 47, 48, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 87, 88 en 89.
De uitbreidingsinstructies die kunnen worden gebruikt worden hieronder getoond, samen met de standaard functiecodes die zijn ingesteld als de CQM1 uit de fabriek komt. Instructies die gemarkeerd zijn met "*" zijn alleen in de CQM1-CPU4*-E CPU’s beschikbaar.
Opmerking
Mnemonic Functie
Code
ASFT 17 INT 89 ADBL* --­TKY 18 HKY --- SBBL* --­MCMP 19 FPD --- MBS* --­RXD 47 SRCH --- DBS* --­TXD 48 MAX --- MBSL* --­CMPL 60 MIN --- DBSL* --­INI 61 APR --- CPS* --­PRV 62 LINE --- CPSL* --­CTBL 63 COLM --- NEG* --­SPED 64 SEC --- NEGL* --­PULS 65 HMS --- ZCP* --­SCL 66 SUM --- ZCPL* --­BCNT 67 FCS --- XFRB* --­BCMP 68 HEX --- PLS2* --­STIM 69 AVG --- ACC* --­DSW 87 PWM* --- SCL2* --­7SEG 88 PID* --- SCL3* ---
Mnemonic Functie
Code
Mnemonic Functie
Code
Elke instructie moet een functiecode toegewezen krijgen in de instructietabel die gebruikt wordt in SYSWIN en in de CQM1 voor ze gebruikt kunnen worden in een programma. De toewijzing van uitbreidingsinstructies in de instructietabel verandert de betekenis van instructies en operands. Wees er dus zeker van dat de instructietabel voordat u begint met programmeren is ingesteld en verstuur de instructietabel naar de CQM1 voor u het programma uitvoert.
Een instructietabel kan ook worden opgeslagen op de memorycassettes wanneer deze wordt gebruikt. Wees voorzichtig wanneer een memorycassette gebruikt wordt die al een keer voor een CQM1 gebruikt is. Controleer of de juiste instructietabel in de memorycassette aanwezig is.
Als pin 4 van de CQM1's dipswitches is ingesteld op uit, kunnen alleen de standaard uitbreidingsinstructies worden gebruikt. Een eventueel door de gebruiker ingestelde instructietabel zal worden genegeerd. Wordt de spanning op de PLC gezet dan zullen aanwezige instellingen worden gereset naar de standaard instellingen.
Wees er zeker van de pin 4 van de dipswitches op de CPU op aan staat wanneer een programma uit de memorycassette wordt gelezen waarbij de instructietabel door de gebruiker is ingesteld. Als pin 4 op uit staat zal de PLC de standaard instructietabel gebruiken voor uitbreidingsinstructies die in het programma uit de memorycassette gebruikt worden. In dit geval zullen het programma in de PLC en memorycassette niet gelijk zijn als deze vergeleken worden.

2.7 Analoge instellingen (alleen CQM1-CPU42-E)

In de CQM1-CPU42-E verplaatst de analoge instellingen functie automatisch de instellingen van de CPU's potentiometers naar woord 220 t/m 223. Deze functie is handig wanneer ingestelde waarden in het programma voorkomen die tijdens bedrijf veranderd moeten worden. Deze ingestelde waarden kunnen aangepast worden door aan de potentiometers op de CPU te draaien.
Opmerking
pagina 82 CQM1 Programmeerhandleiding
In andere CQM1 CPU’s dan de CQM1-CPU42-E hebben woord 220 t/m 223 geen speciale functie. Deze woorden kunnen gebruikt worden als werkwoorden/bits in het programma.
De volgende figuur geeft de IR woorden aan die bij de potentiometers horen.
OMRON
CQM1 PC Setup
Opmerking
0
1
2
3
Het adres voor schakelaar 0 is woord 200
Het adres voor schakelaar 1 is woord 201
Het adres voor schakelaar 2 is woord 202
Het adres voor schakelaar 3 is woord 203
De instellingen van de potentiometers worden opgeslagen in BCD en kunnen variëren van 0000 t/m 0200. Gebruik een precisieschroevendraaier om de instellingen aan te passen. Draai de schakelaars met de klok mee om de waarde te verhogen.
De CQM1-CPU42-E vernieuwt zolang de CPU aan staat de woorden 220 t/m 223 voortdurend met de waarde die ingesteld is op de potentiometers. Overschrijf deze woorden niet met het programma of periferie.
CQM1 Programmeerhandleiding pagina 83

Geheugengebieden

OMRON
3 Geheugengebieden
Verschillende typen data zijn nodig om een besturing effectief en correct te kunnen laten werken. Om met deze verschillende typen data overweg te kunnen is de PLC voorzien van verschillende geheugengebieden voor data opslag, waarin elk gebied een andere functie heeft. De gebieden die gebruikt worden in het programma worden datagebieden genoemd. Het andere geheugengebied is het programmageheugen, waar het programma zelf in wordt opgeslagen. Deze gebieden worden hier individueel besproken waarbij alle informatie die nodig is om het te kunnen gebruiken wordt gegeven. Daarom wordt het SR en TR geheugen hier ook besproken, alhoewel dit strikt gezien geen geheugengebieden zijn.
3.1 Introductie
Details waaronder de naam, het acroniem en de functie van elke gebied worden in de volgende tabel samengevat. Op de laatste twee na zijn dit datagebieden. Data en geheugengebieden worden normaal gesproken benoemd met hun acroniem.
Gebied Acroniem Functie
Interne relais IR Gebruikt om I/O punten aan te sturen en om tijdelijke data in op te slaan. Speciale relais SR Bevat systeem klokpulsen, vlaggen, bits met speciale functies en status informatie. Auxiliary relais AR Bevat vlaggen en bits voor speciale functies. Dit gebied houdt de status vast na
spanningsuitval.
Datageheugen DM Gebruikt voor interne dataopslag en manipulatie. Dit gebied houdt de status vast na
spanningsuitval.
Holding relais HR Gebruikt om data (bits) in op te slaan waarvan de status vastgehouden moet worden als de
spanning van de PLC wordt afgezet.
Timer/Counter TC Gebruikt om timers en counters te definiëren en de timer- en countervlaggen te bereiken.
Wanneer dit gebied wordt uitgelezen of bewerkt met instructies op woordniveau wordt de actuele waarde van een timer of counter uitgelezen. Wordt het gebruikt als bitoperand dan wordt de completionvlag van een timer of counter uitgelezen. De completionvlag is hoog als een timer of counter is afgelopen.
Link relais LR Beschikbaar als werkbits. Bij diverse soorten OMRON netwerken wordt dit gebied gebruikt
als gemeenschappelijk geheugen.
Temporary relais TR Gebruikt om tijdelijk executiecondities in op te slaan. Deze bits kunnen alleen met de LD
(LD) en Output (OUT) instructies aangestuurd worden. Bij het programmeren in een ladderdiagram mogen ze niet gebruikt worden. Het opslaan van de status van een executieconditie is nodig tijdens het programmeren van bepaalde aftakkingen in
ladderdiagrammen. Programma geheugen
UM Bevat het programma dat wordt uitgevoerd door de CPU.
Werkbits en woorden
Wanneer sommige bits en woorden in bepaalde datagebieden niet gebruikt
worden voor hun eigenlijke doel, kunnen ze vrij in het programma gebruikt worden
om statussen in op te slaan. Woorden en bits die op deze manier gebruikt worden,
worden werkwoorden en werkbits (helpwoorden, helpbits) genoemd. Bijna alle
ongebruikte bits kunnen worden gebruikt als werkbits. Deze bits worden verderop
in dit hoofdstuk gebied voor gebied uitgelegd. Het daadwerkelijk toepassen van
werkbits en werkwoorden wordt uitgelegd in de sectie “Programma uitvoer” op
pagina 31.
Vlaggen en controlebits
Sommige datagebieden bevatten vlaggen en/of controlebits. Vlaggen zijn bits die
automatisch aan- en uitgezet worden om een bepaalde status van de PLC of
instructie weer te geven. Alhoewel sommige vlaggen door de gebruiker aan- en
uitgezet kunnen worden, zijn de meeste vlaggen read only. De gebruiker mag
alleen de status van de vlag uitlezen, deze vlaggen zijn niet direct aan te sturen.
Controlebits zijn bits die door de gebruiker aan- en uitgezet kunnen worden om
bepaalde aspecten binnen de werking van de PLC of een instructie te
beïnvloeden. Elk bit dat een naam heeft gekregen, met de naam bit in plaats van
vlag, is een controlebit. Bijvoorbeeld restartbits zijn controlebits.
pagina 84 CQM1 Programmeerhandleiding
OMRON

3.2 Geheugengebieden voor de CQM1

Deze sectie beschrijft de structuur van de CQM1's geheugengebieden en verklaart hoe deze te gebruiken. Het beschrijft ook de werking en het omgaan met de memorycassette en hoe het programma verplaatst kan worden tussen de CQM1 en een memorycassette. Een overzicht van de verschillende geheugengebieden voor de CQM1 kan in de sectie hierover worden gevonden
3.2.1 Geheugengebied functie
Geheugengebieden
Geheugengebied structuur
Datagebied Grootte Woorden Bits Functie
IR gebied
MACRO operand gebied
Analoge ingestelde waarde gebied
Highspeed Counter 0 actuele waarde Poort 1 en 2 Pulsuitgang actuele waarden
Highspeed Counter 1 en 2 actuele waarden
Expansie Gebieden
SR gebied 184 bits 244 t/m 255 244.00 t/m
TR gebied 8 bits --- TR0 t/m
HR gebied 1.600 bits HR00 t/m
AR gebied 448 bits AR00 t/m
LR gebied
Timer/Counter gebied
DM gebied
Input gebied 128 of 192
1
Output gebied 100 t/m 115 100.00 t/m
Werk gebieden
Input gebied 64 bits 096 t/m 099 096.00 t/m
1
Output gebied 64 bits 196 t/m 199 196.00 t/m
1
1
1
1
1
1
3
Read/Write 1.024
De volgende geheugengebieden kunnen gebruikt worden bij de CQM1.
000 t/m 015 000.00 t/m
bits
2.720 bits min.
64 bits 220 t/m 223 220.00 t/m
32 bits 230 t/m 231 230.00 t/m
64 bits 236 t/m 239 236.00 t/m
64 bits 232 t/m 235 232.00 t/m
320 bits 200 t/m 215
1.024 bits LR00 t/m
512 bits TC00 t/m TC511
woorden
016 t/m 095 016.00 t/m
116 t/m 195 116.00 t/m
216 t/m 219 216.00 t/m
224 t/m 229 224.00 t/m
240 t/m 243
HR99
AR27
LR63
(timer/counter nummers)
DM0000 t/m DM1023
015.15
115.15
095.15
195.15
219.15
229.15
099.15
199.15
IR223.15
231.15
239.15
235.15
200.00 t/m
215.15
240.00 t/m
243.15
255.07
TR7 HR00.00 t/m HR99.15 AR00.00 t/m AR27.15 LR00.00 t/m LR63.15
--- DM gebied data kan alleen worden geadresseerd in
CQM1-CPU11/21-E: Tot aan 8 woorden (128 bits) kunnen worden gebruikt voor I/O bits. CQM1-CPU4*-E: Tot aan 12 woorden (192 bits) kunnen worden gebruikt voor I/O bits. Werkbits hebben geen speciale functie en kunnen vrij gebruikt worden in het programma
Gebruikt wanneer de Macro instructie, MCRO(99), is gebruikt
CQM1-CPU42-E: Gebruikt om analoge ingestelde waarde in op te slaan. (Kan niet gebruikt worden als werkbits) Kan gebruikt worden als werkbits in andere CPU’s. Gebruikt om de actuele waarde van highspeed counter 0 in op te slaan CQM1-CPU43-E: gebruikt om de actuele waarde van pulsuitgang voor poort 1 en 2 in op te slaan. (Kan niet worden gebruikt als werkbits) CQM1-CPU44-E: Gebruikt door het systeem. (Kan niet worden gebruikt als werkbits) Kan worden gebruikt als werkbits in andere CPU’s. CQM1-CPU43/44-E: Gebruikt om de actuele waarden van highspeed counters 1 en 2 voor poort 1 en 2 in op te slaan. (Kan niet worden gebruikt als werkbits) Kan worden gebruikt als werkbits in andere CPU’s. Van deze bits wordt verwacht dat ze gebruikt worden in toekomstige functies
Deze bits hebben specifieke functies. Het zijn een aantal vlaggen en control bits Deze bits worden gebruikt om tijdelijke statussen van programma vertakkingen in op te slaan Deze bits kunnen gebruikt worden om bits op te slaan waarvan de status behouden moet worden als de spanning van de CPU wordt afgezet Deze bits hebben specifieke functies. Het zijn een aantal vlaggen en control bits
Gebruikt door de 1:1 datalink met de RS-232C poort
Dezelfde nummers worden gebruikt voor timers en voor counters. TC000 t/m TC002 worden gebruikt door de interval timers
woord georiënteerde instructies. De hier opgeslagen waarden behouden hun waarde bij spanningsuitval.
CQM1 Programmeerhandleiding pagina 85
Geheugengebieden
OMRON
Datagebied Grootte Woorden Bits Functie
Read-only
Error historie gebied PC Setup 56
Gebruiker programma (user program) gebied (UM gebied)
Noot
Functie van bits
IR gebied
1, 2, 3...
Werkbits
5.120 woorden
5
425 woorden
5
31 woorden
woorden
3.200 of
7.200 woorden
DM1024 t/m DM6143 DM6144 t/m DM6568 DM6569 t/m DM6599 DM6600 t/m DM6655
---- Gebruikt om het programma in op te slaan. Gebufferd
--- Alleen beschikbaar in de CQM1-CPU4*-E CPU’s
--- Kan niet overschreven worden door het programma
--- Gebruikt om de tijd van voorkomen en de errorcode weg te zetten van errors die zijn voorgekomen
--- Gebruikt om diverse instellingen van de PLC in op te slaan
bij spanningsuitval. CQM1-CPU11/21-E: 3.200 woorden CQM1-CPU4*-E: 7.200 woorden
4
1. IR en LR bits die niet gebruikt worden voor hun toegewezen functie kunnen gebruikt worden als werkbits.
2. Minimaal 2.720 bits kunnen worden gebruikt worden als werkbits. Het totale aantal bits dat hiervoor kan worden gebruikt hangt van de gebruikte PLC configuratie af.
3. Wanneer een actuele waarde geadresseerd moet worden, wordt het TC nummer gebruikt als woord data, wanneer completion vlaggen geadresseerd moeten worden wordt het nummer gebruikt als bit data.
4. Alhoewel de CQM1-CPU11-E en CQM1-CPU21-E niet beschikken over DM1024 t/m DM6143 zal er geen foutmelding gegenereerd worden als ze geadresseerd worden. Een poging om deze woorden te beschrijven zal geen effect hebben en een leespoging zal alleen nullen tonen.
5. Data in DM6144 t/m DM6655 kan niet worden overschreven door het programma.
De functies van de diverse gebieden worden hieronder verklaard. Bits uit het IR gebied bits zijn toegewezen aan terminals op input- en outputunits.
Zij geven de aan/uit status weer van input- en outputsignalen. Inputbits beginnen op 000.00 en outputbits beginnen op 100.00. Bij de CQM1 kan alleen 000.00 t/m
015.15 gebruikt worden voor inputbits en alleen 100.00 t/m 115.15 kan gebruikt
worden voor outputbits.
1) Bij het IR gebied wordt het acroniem IR niet voor het bit of woordnummer geplaatst. Bij de andere datagebieden gebeurd dit wel.
2) Inputbits kunnen niet worden gebruikt in output instructies. Gebruik hetzelfde outputbit niet in meer dan één OUT en/of OUT NOT instructie. In principe is het niet echt fout om het wel te doen, maar het kan vreemde effecten opleveren die voor veel gebruikers niet verklaarbaar zijn.
Bij de CQM1-CPU11/21/41-E CPU’s kan elk bit tussen 001.00 en 243.15, dat niet gebruikt is voor een specifieke functie, gebruikt worden als werkbit. Er zijn een paar uitzonderingen bij de CQM1-CPU42/43/44-E CPU’s, zoals in de volgende tabel is getoond.
CPU Bits die niet beschikbaar zijn als werkbit
CQM1-CPU42-E 220.00 t/m 223.15 CQM1-CPU43/44-E 232.00 t/m 239.15
De werkbits kunnen vrijelijk in het programma gebruikt worden. Ze kunnen echter alleen gebruikt worden in het programma en niet voor externe I/O. Werkbits worden allemaal uitgezet wanneer de CQM1 powersupply uitgezet wordt of wanneer de PLC begint of stopt met het verwerken van het programma.
De woorden in de tabel hieronder hebben specifieke functies, maar kunnen gebruikt worden als werkbits (of woorden) wanneer hun specifieke functies niet worden gebruikt.
Bereik Functie
001 t/m 015 Wanneer toegewezen aan input units fungeren deze bits/woorden
als input bits
096 t/m 099 Wanneer de MACRO instructie wordt gebruikt werken deze
bits/woorden als operand bits
pagina 86 CQM1 Programmeerhandleiding
OMRON
I
SR gebied
TR gebied
HR gebied
Geheugengebieden
Bereik Functie
100 t/m 115 Wanneer toegewezen aan output units fungeren deze bits/woorden
als output bits
196 t/m 199 Wanneer de MACRO instructie wordt gebruikt werken deze
bits/woorden als operand bits
220 t/m 223 In de CQM1-CPU42-E worden deze woorden gebruikt om de
analoge ingestelde waarde in op te slaan. Ze kunnen worden gebruikt als werkbits in andere CPU’s.
230 t/m 231 Wanneer highspeed counter 0 wordt gebruikt wordt op deze
woorden de actuele waarde opgeslagen.
232 t/m 235 In de CQM1-CPU43/44-E worden deze woorden gebruikt om de
actuele waarden voor highspeed counters 1 en 2 op te slaan. Ze kunnen worden gebruikt als werkbits in andere CPU’s
236 t/m 239 In de CQM1-CPU43-E worden deze woorden gebruikt om actuele
waarden op te slaan voor de pulsuitgangen van poort 1 en 2. In de CQM1-CPU44-E worden ze gebruikt door het systeem. Ze kunnen worden gebruikt als werkbits in andere CPU’s.
IR woord 200 t/m 215 en 240 t/m 243 zal worden gebruikt in toekomstige uitbreidingen, zij kunnen tot dat moment worden gebruikt als werkbits.
LR woord 00 t/m 63 wordt gebruikt als linkbits bij een 1:1 link, maar zij kunnen worden gebruikt als werkbits wanneer deze communicatievorm niet wordt gebruikt.
Deze bits worden hoofdzakelijk gebruikt voor diverse vlaggen. Worden de Input interrupts niet gebruikt in de counter mode dan kunnen de
woorden 244 t/m 247 gebruikt worden als werkbits. Wanneer een complex ladderdiagram niet kan worden geprogrammeerd in
mnemonic code zoals het op het scherm staat, dan worden deze bits gebruikt om tijdelijk aan/uit executiecondities op programma aftakkingen op te slaan. Deze bits kunnen alleen in statementlist gebruikt worden. Wanneer in ladderdiagram geprogrammeerd wordt plaatst SYSWIN de benodigde TR bits automatisch.
Hetzelfde TR bit kan in principe niet meer dan één keer gebruikt worden in hetzelfde instructie blok, maar kan opnieuw gebruikt worden in een ander instructie blok. De aan/uit status van TR bits kan niet worden bekeken met periferie zoals bijvoorbeeld SYSWIN.
Deze bits houden hun aan/uit status vast, zelfs als de voedingsspanning van de PLC uitgezet wordt of de PLC start of stopt met verwerking van het programma. Ze kunnen op dezelfde manier worden gebruikt als werkbits.
Voorzichtig
AR gebied
LR gebied
Timer/counter gebied
Gebruik nooit een input bit van een NC (normally closed) input op de reset conditie van een KEEP(11) instructie wanneer het input device een AC powersupply gebruikt. De vertraging in het uitgaan van de PLC’s DC powersupply (relatief ten opzichte van de AC powersupply op het input device) kan ervoor zorgen dat het aan de KEEP(11) instructie toegewezen bit wordt gereset wanneer de besturing wordt uitgezet. Deze situatie wordt hieronder getoond.
nput Unit
A
NOOIT
A
S
R
KEEP(11)
B
Deze bits bevatten hoofdzakelijk vlaggen die de werkingsstatus van de CQM1 weergeven.
Wanneer de CQM1 op 1:1 basis wordt gelinkt met een andere CQM1 worden deze bits gebruikt om data te delen.
LR bits kunnen ook gebruikt worden als werkbits wanneer ze niet gebruikt worden voor datalinks.
Dit gebied wordt gebruikt om timers en counters die gecreëerd zijn met de TIM, TIMH(15), CNT en CNTR(12) instructies. Deze nummers worden voor zowel de timers als de counters gebruikt en elk nummer kan maar één keer in het programma gebruikt worden. Gebruik hetzelfde timer of counter nummer niet tweemaal in het programma, zelfs niet voor twee dezelfde instructies.
CQM1 Programmeerhandleiding pagina 87
Geheugengebieden
1, 2, 3...
DM gebied
OMRON
Het timer/counter nummer wordt gebruikt om timers of counters te creëren, maar ook om de completionvlaggen en de actuele waarden te bereiken. Als een TC nummer wordt geadresseerd op woordbasis, dan geeft het toegang tot de actuele waarde. Wordt het gebuikt als bitdata, dan geeft het toegang tot de completionvlag van timers of counters.
De completionvlag gaat aan wanneer de actuele waarde van de timer of counter die wordt gebruikt op 0 staat. Lees de sectie “timer en counter instructies” op pagina 122 voor meer informatie over timers, counters en hun vlaggen.
1. TC nummers 000 t/m 015 en interrupt processing moeten gebruikt worden voor TIMH(15) als de cyclustijd langer wordt dan 10 ms. Het gebruiken van andere timer/counter nummers of het niet gebruiken van interrupt processing zal leiden tot onnauwkeurigheid van de highspeed timers. Interrupt processing kan ingesteld worden op DM6629 van de PC Setup.
2. Wanneer the input conditie voor een TIM of TIMH(15) instructie laag wordt, wordt de actuele waarde gereset en ingesteld op de ingestelde waarde. De actuele waarde wordt ook gereset aan het begin van de programma-uitvoer of wanneer de interlock conditie uit gaat in een interlock circuit (IL-ILC). De actuele waarde voor CNT of CNTR(12) wordt niet gereset zoals bij de timer instructies, deze wordt alleen gereset wanneer de reset input aan gaat.
Data in dit gebied kan alleen bereikt worden in units van 1 woord (16 bits). Zoals hieronder getoond bevat het DM gebied zowel een gebied dat vrijelijk gebruikt kan worden als gebieden met specifieke functies.
DM0000
DM1024
Dit gebied heeft geen specifieke functies en kan vrij gebruikt worden. Het programma kan zowel lezen als schrijven in dit gebied.
UM gebied
Noot
Voorzichtig
DM6144
DM6569
DM6600
DM6655
(zie noot 1)
Fixed DM (zie noot 2)
Error Log
PC Setup (zie noot 2)
Op dit gebied kan niet geschreven worden vanuit het programma. Het kan gebruikt worden om data in op te slaan die niet verandert. Beschrijven is alleen met peripheral devices mogelijk.
Op dit gebied wordt de error log opgeslagen. De gebruiker kan dit gebied alleen uitlezen en niet beschrijven.
Dit gebied bevat informatie over de instellingen van de CQM1. Deze instellingen moeten met peripheral devices gemaakt worden.
1. De CQM1-CPU11-E en CQM1-CPU21-E ondersteunen DM1024 t/m DM6143 niet.
2. Door pin 1 van de dipswitches op de CPU aan te zetten kan de PC Setup ook niet met peripheral devices beschreven worden.
De inhoud van het fixed DM, de PC Setup, het PLC programma en de instructietabel kan in zijn geheel worden opgeslagen in en geladen uit een memorycassette.
Alhoewel de CQM1-CPU11-E en CQM1-CPU21-E niet beschikken over DM1024 t/m DM6143 wordt er geen error gegenereerd als deze worden gebruikt. Het schrijven van deze woorden heeft geen effect en bij leesacties zullen alleen nullen uitgelezen worden.
Het UM gebied bevat het PLC programma. De inhoud van het UM gebied kan alleen worden gelezen en geschreven als geheel programma via een peripheral device en niet in units van woorden in het PLC programma. De volgende tabel toont de grootte van het UM in de diverse CQM1 CPU’s.
CPU Model UM gebied grootte
CQM1-CPU11/21-E 3.2KW CQM1-CPU4*-E 7.2KW

3.3 Toewijzen van I/O bits

I/O woorden worden toegewezen op volgorde van plaatsing van de I/O kaarten, waarbij wordt begonnen met woord 001 voor de inputunits en 100 voor de
pagina 88 CQM1 Programmeerhandleiding
OMRON
Geheugengebieden
outputunits. De ingangen op de CPU zijn toegewezen aan woord 000. Zelfs als de input- en outputunits in willekeurige volgorde worden gemonteerd, zullen ingangs­en uitgangswoorden apart in het IR gebied worden toegewezen.
Één woord is het minimum dat een I/O kaart toegewezen krijgt, zelfs bij gebruik van 8-punts I/O kaarten. Het gebruik van bits bij 8-punts I/O kaarten is getoond in de onderstaande tabel.
Unit Bits 0 t/m 7 Bits 8 t/m 15
Input Inputbits Altijd uit (0), niet te gebruiken als
werkbits
Output Outputbits Te gebruiken als werkbits
Het aantal I/O bits dat kan worden toegewezen is afhankelijk van de gebruikte CQM1 CPU zoals in de volgende tabel wordt getoond.
CPU Model Aantal I/O bits
CQM1-CPU11/21-E Tot aan 128 bits (8 woorden) kunnen worden gebruikt als I/O bits. CQM1-CPU4*-E Tot aan 192 bits (12 woorden) kunnen worden gebruikt als I/O bits.
Woord toewijzing voorbeeld
PS: Powersupply unit
O
PS CPU
O
I
U
N
I
T
N
16
816
O
O
I
U
N
T
16
16
U
U
T
T
8
8
CPU: CPU IN: Inputunit OUT: Outputunit
Kan niet gebruikt worden
Werkbits
15 8 7 0 15 8 7 0
000
001
002
Alle bits in woorden achter het laatst toegewezen input- en outputwoord kunnen gebruikt worden als werkbits. Het is voor de duidelijkheid van het programma en voor eventuele toekomstige uitbreidingen echter af te raden om dit te doen.
Om de woordtoewijzing begrijpelijker te maken en om noise problemen te elimineren is het aan te raden om alle inputunits direct na de CPU te plaatsen. Voor het bovenstaande voorbeeld zou de plaatsing dan worden zoals hieronder getoond is.
PS: Powersupply unit
O
O
O
O
I
PS CPU
I
U
U
N
N
I
T
N
16
T
8
16
16
16
U T
88
U T
CPU: CPU IN: Inputunit OUT: Outputunit
Het aantal toegewezen inputwoorden is opgeslagen in BCD op AR22.00 t/m AR22.07. Het aantal toegewezen outputwoorden is opgeslagen in BCD op AR22.08 t/m AR22.15. De CQM1 PLC gebruikt geen I/O tabel.

3.4 Opslaan van DM en UM in memorycassettes

Wanneer de optionele memorycassette wordt gebruikt, kan de PC Setup, het PLC programma, het fixed DM geheugen en de instructietabel in ROM worden opgeslagen. Dit beveiligt de PLC tegen ongewenste veranderingen die per ongeluk in het programma worden aangebracht. Daarnaast is het mogelijk om wijzigingen door te voeren in instellingen en het programma door simpelweg de memorycassette te vervangen.
Deze sectie beschrijft hoe data naar de memorycassette geschreven, eruit gelezen of vergeleken kan worden.
100
101
102
103

3.4.1 Memorycassettes en inhoud

Memorycassettes
CQM1 Programmeerhandleiding pagina 89
Er zijn zes typen memorycassettes zoals getoond in de volgende tabel.
Geheugengebieden
UM
2kW)
M
(4kW)
Inhoud
OMRON
Model Opmerking
CQM1-ME04K EEPROM type (zonder klok) 4k woorden CQM1-ME04R EEPROM type (met klok) 4k woorden CQM1-MP08K EPROM type (zonder klok) 8k woorden CQM1-MP08R EPROM type (met klok) 8k woorden CQM1-ME08K EEPROM type (zonder klok) 8k woorden CQM1-ME08R EEPROM type (met klok) 8k woorden
De volgende EEPROM chips (apart bestellen) zijn nodig bij gebruik van EPROM memorycassettes.
Model ROM versie Capaciteit Toegangs snelheid
ROM-IB-B 27128 of gelijkwaardig 8k woorden 200ns ROM-ID-B 27128 of gelijkwaardig 8k woorden 150ns ROM-JD-B 27256 of gelijkwaardig 16k woorden 150ns ROM-KD-B 27512 of gelijkwaardig 32k woorden 150ns
Bij de CQM1 CPU’s kan maximaal 8kW informatie naar de memorycassette geschreven worden. Elk van de bovenstaande EPROM chips heeft voldoende capaciteit en kan dus voor de CQM1 geselecteerd worden.
Raadpleeg het
CQM1 Operation Manual
verwijderen van memorycassettes. De informatie die naar een memorycassette kan worden geschreven wordt in de
onderstaande tabel getoond.
Informatie Bevat
Fixed DM Fixed DM geheugen kan niet door het programma worden
overschreven. Het bereik is van DM6144 t/m DM6568. Deze woorden zijn beschikbaar voor de gebruiker.
PC Setup In de PC Setup worden een aantal instellingen van de CQM1
opgeslagen. Dit gebied loopt van DM6600 t/m DM6655.
Instructietabel In de instructietabel zijn aan de uitbreidingsinstructies functie-
codes toegewezen zodat deze in het programma gebruikt
kunnen worden. Programma geheugen (UM)
In het UM gebied wordt het PLC programma opgeslagen.
voor instructies over het monteren en
De bovenstaande geheugengebieden kunnen in de memorycassette niet apart gelezen, geschreven of vergeleken worden. Het moet in de cassette als één geheugengebied beschouwd worden.

3.4.2 Memorycassette capaciteit en UM gebied grootte

Een niet fatale error zal gegenereerd worden als een poging wordt gedaan om een programma te verplaatsen dat te groot is. Er zijn een aantal gevallen waarin dit kan voorkomen.
1. Wanneer een 4kW EEPROM memorycassette wordt geïnstalleerd in een CQM1-CPU4*-E met een 7.2kW UM gebied, kunnen programma’s met een grootte tot 3.2kW naar de memorycassette worden geschreven. Een niet fatale error zal optreden wanneer een programma naar de memorycassette wordt geschreven dat groter is dan 3.2kW.
Programma groter dan 3.2kW
2. Wanneer een 8kW of grotere memorycassette wordt geïnstalleerd in een CQM1-CPU11/21-E CPU met een 3.2kW UM gebied, kunnen programma’s met een lengte tot 3.2kW worden gelezen uit de memorycassette. Een niet fatale error zal gegenereerd worden als een poging wordt gedaan om een programma uit de memorycassette te lezen dat groter is dan 3.2kW.
gebied (7.


emory cassette
pagina 90 CQM1 Programmeerhandleiding
OMRON
UM
2kW)

M
(8kW)
Geheugengebieden
Opmerking
gebied (3.
emory cassette
Programma groter dan 3.2kW
De twee gevallen hierboven worden normaal uitgevoerd worden als het programma 3.2kW of kleiner is.
Een benadering van de grootte van het programma in het UM gebied en de memorycassette kan worden bepaald aan de hand van de inhoud van AR15 zoals in de volgende tabel getoond is.
Programma
locatie
Memory­cassette
UM gebied AR15.08
Bits Inhoud Betekenis
AR15.00 t/m
00 Geen memorycassette geïnstalleerd of geen
programma opgeslagen in de memorycassette
AR15.07
04 Het programma in de memorycassette is kleiner dan
3.2kW en kan door elke CQM1 CPU worden gelezen
08 Het programma in de memorycassette is kleiner dan
7.2kW en groter dan 3.2kW en kan alleen door CQM1-CPU4*-E CPU’s worden gelezen
04 Het programma in de PLC is kleiner dan 3.2kW en
t/m
kan naar elke memorycassette worden geschreven
AR15.15
08 Het programma in de PLC is kleiner dan 7.2kW maar
groter dan 3.2kW en kan alleen naar memorycassette worden geschreven met een capaciteit van 8kW of meer worden geschreven
In de CQM1-CPU11/21-E CPU’s is de inhoud van AR15.08 t/m AR15.15 normaal 04 en de inhoud van AR15.00 t/m AR15.07 is normaal 04 als een 4kW memorycassette is geïnstalleerd.
De grootte van het programma dat wordt aangegeven in AR15 is exclusief de NOP(00) instructies achter de END(01), maar is inclusief alle andere instructies dan NOP(00) die achter de END(01) staan. Wees er zeker van dat alle onnodige instructies achter de END gewist zijn om een goede uitlezing van de programmagrootte te krijgen.

3.4.3 Schrijven naar de memorycassette

Volg de onderstaande procedure voor het schrijven van het programma naar de EEPROM memorycassette.
1, 2, 3...
1. Controleer of de write-protect schakelaar op de memorycassette uit is (d.w.z. schrijven is toegestaan). Als de schakelaar aan staat (d.w.z. schrijven is niet toegestaan), zet de CQM1 powersupply uit en verwijder de memorycassette voor het veranderen van de schakelaar.
2. Controleer of de CQM1 in de PROGRAM mode staat. Als de PLC in de program mode staat brandt het RUN led op de voorzijde van de CPU niet. Staat de PLC in RUN of MONITOR mode, verander dit dan in de PROGRAM mode.
3. Zet AR14.00 aan.
Het programma wordt van de CQM1 naar de memorycassette geschreven. De CQM1 zal AR14.00 automatisch laag maken als de actie is afgelopen.
Voorzichtig
Data kan niet naar de memorycassette worden geschreven als een memory error is opgetreden.
Opmerking
Als een error optreedt terwijl data wordt verplaatst zal een niet fatale error (FAL 9D) worden gegenereerd en het geëigende AR bit (van AR14.12 t/m AR14.15) aan of uit gaan.
CQM1 Programmeerhandleiding pagina 91
Geheugengebieden

3.4.4 Uitlezen van de memorycassette

Er zijn twee manieren om data uit de memorycassette te lezen: door een peripheral device (bijvoorbeeld SYSWIN) te gebruiken of door het automatisch tijdens het opstarten van de CQM1 over te laten brengen.
Als het programma op de memorycassette uitbreidingsinstructies gebruikt met functiecodes die verschillen van de standaard instelling, zorg er dan voor dat pin 4 van de dipswitches op de CPU's aan staat (dit betekent dat een door de gebruiker gemaakte instructietabel wordt gebruikt).
Opmerking
Uitlezen met peripheral device
Automatisch lezen
Wanneer data wordt gelezen uit de memorycassette moet pin 1 van de dipswitches op de CQM1 uit staan (d.w.z. het beschrijven van DM en UM geheugen is mogelijk). Zet de spanning op de CQM1 uit voordat deze dipswitch wordt ingesteld.
Uitlezen van de memorycassette kan worden uitgevoerd, onafhankelijk van het gebruikte type.
Als een error optreedt terwijl de data wordt verzonden, wordt een niet fatale error (FAL 9D) gegenereerd en zal het geëigende AR bit (van AR14.12 t/m AR14.15) aan of uit gaan.
Om de memorycassette met een peripheral device uit te lezen moet de volgende procedure gebruikt worden.
1. Controleer of de CQM1 in de PROGRAM mode staat. Als de PLC in de program mode staat brandt het RUN led op de voorzijde van de CPU niet. Staat de PLC in RUN of MONITOR mode, verander dit dan met het peripheral device in de PROGRAM mode.
2. Gebruik het peripheral device om AR14.01 aan te zetten.
De informatie wordt uit de memorycassette gelezen naar de CQM1. Wanneer de actie klaar is zal AR14.01 automatisch uitgezet worden.
Als pin 2 van de dipswitch op de CQM1 is aangezet (auto-boot), dan zal de data automatisch worden gelezen uit de memorycassette wanneer de powersupply van de CQM1 wordt aangezet. De CQM1 zal niet werken als een error optreedt tijdens de transfer van data tussen de memorycassette en het geheugen van de CQM1.
OMRON
Voorzichtig
Wees er absoluut zeker van dat de spanning van de powersupply is uitgezet voordat er veranderingen in de CQM1’s dipswitches worden gemaakt.

3.4.5 Memorycassette inhoud vergelijken

De inhoud van de memorycassette kan vergeleken worden met de inhoud van het geheugen van de CQM1 om te controleren of deze gelijk zijn. Deze vergelijking kan bij elk type memorycassette uitgevoerd worden.
Gebruik de volgende procedure.
1, 2, 3...
1. Controleer of de CQM1 in de PROGRAM mode staat. Staat de PLC in RUN of MONITOR mode, verander dit dan met het peripheral device in de PROGRAM mode.
2. Zet AR14.02 aan met een peripheral device. De inhoud van de memorycassette zal worden vergeleken met de inhoud van het geheugen van de CQM1. AR14.02 zal automatisch uit gaan als de vergelijking is uitgevoerd.
3. Controleer de status van AR14.03 voor het resultaat van de vergelijking. AR14.03 zal aan zijn als de inhoud niet gelijk was of de vergelijking niet uitgevoerd kon worden. Als AR14.03 uit is, is de vergelijking met succes uitgevoerd en was de inhoud hetzelfde.
AR14.03 kan niet worden aangestuurd door het PLC programma of door een peripheral device. Het wordt alleen aangestuurd door het resultaat van de vergelijking.
Als een vergelijking wordt uitgevoerd met de CQM1 in een andere mode dan PROGRAM mode, wordt een niet fatale error gegenereerd (FAL 9D) en zal AR14.12 aan gaan. Alhoewel AR14.03 ook aan gaat, is er geen vergelijking
pagina 92 CQM1 Programmeerhandleiding
OMRON
uitgevoerd. AR14.03 zal ook aan gaan als een vergelijking wordt gestart en er geen memorycassette in de CQM1 gemonteerd zit.
3.5 Datagebied structuur
Wanneer een datagebied benoemd wordt, moet het acroniem voor dat gebied altijd ingevoerd worden, behalve voor het IR en SR gebied. Alhoewel de acroniemen voor IR en SR in deze tekst soms genoemd worden, zijn ze niet nodig tijdens invoer van het programma. SYSWIN zal zelfs een foutmelding geven wanneer de acroniemen SR en IR worden ingevoerd. Van elk datagebied dat in deze tekst genoemd wordt zonder acroniem kunt u aannemen dat het in het SR of IR gebied ligt. Omdat IR en SR adressen opeenvolgend in het geheugen geplaatst zijn, zijn de woord en bitadressen voldoende om het onderscheid tussen deze twee gebieden te maken.
De actuele locatie van data binnen een gebied (behalve voor het TC gebied) wordt bepaald door het adres. Het adres bepaalt het woord en/of bit in een gebied waar de data geplaatst is. Het TC gebied bestaat uit TC nummers, waarvan elk wordt gebruikt voor een specifieke timer of counter in het programma. Raadpleeg het hoofdstuk "TC (timer/counter) gebied" op pagina 105 voor meer details over TC nummers en hoofdstuk "Timer en counter instructies" op pagina 122 voor informatie over de werking van timers en counters. Alhoewel voor het timer/counter gebied de acroniem TC wordt gebruikt wordt tijdens het programmeren TIM voor timers en CNT voor counters gebruikt.
De overige datagebieden (d.w.z. de IR, SR, HR, DM, AR en LR gebieden) bestaan uit woorden, waarbij elk woord bestaat uit 16 bits, die genummerd zijn van 00 t/m 15 van rechts naar links. De IR woorden 000 en 001 zijn hieronder getoond met bitnummers. De inhoud van elk woord is getoond met alleen nullen. Bit 00 wordt het meest rechter bit en 15 het meest linker bit genoemd.
De term minst significant wordt ook vaak gebruikt voor het meest rechter bit en de term meest significant voor het meest linker bit. Deze termen worden in deze handleiding niet vaak gebruikt, omdat een enkel data woord vaak wordt gesplitst in twee of meer delen, waarbij elk deel wordt gebruikt voor verschillende parameters of operands. Hierbij kan bij gebruik van de termen “meest” en “minst” significant verwarring ontstaan.
Geheugengebieden
Bit nummer 1514131211100908070605040302 01 00
IR woord 000000000000000000 0 IR woord 001000000000000000 0
Het DM gebied is alleen op woordniveau te adresseren. Het is niet direct mogelijk om een individueel bit in een DM woord te adresseren. Data in de IR, SR, HR, AR en LR gebieden is bereikbaar op zowel woord- als bitniveau, afhankelijk van de instructie die voor het verwerken van de data gebruikt wordt.
Om een woord uit een van deze gebieden te benoemen, is alles wat nodig is het acroniem (indien nodig) en het adres van het woord. Om een bit uit een gebied te benoemen moet het acroniem ingevoerd worden gevolgd door het adres van het woord en het adres van het bit in dat woord. In SYSWIN worden woord- en bitadres van elkaar gescheiden door een punt (.). Wordt de punt in SYSWIN niet ingevoerd dan wordt aangenomen dat de laatst twee ingevoerde cijfers het bitadres in het woord zijn. Het nummer van een bit mag tussen de 00 en 15 liggen en wordt decimaal ingevoerd.
Hetzelfde TC nummer kan gebruikt worden om zowel de actuele waarde van de timer of counter te adresseren of het bit dat functioneert als de completionvlag voor de timer of counter. Dit wordt in meer detail beschreven in hoofdstuk "TC (timer/counter) gebied" op pagina 105.
Gebied Woord toewijzing Bit toewijzing
IR 000 000.15 (meest linker bit in woord 000) SR 252 252.00 (meest rechter bit in woord 252) DM DM1250 Niet mogelijk TC TIM215 of CNT215 (voor de
actuele waarde)
LR LR12 LR12.00
TIM215 of CNT215 (voor de completionvlag)
CQM1 Programmeerhandleiding pagina 93
Geheugengebieden
3.5.1 Data structuur
OMRON
Woorddata die ingevoerd wordt als decimale waarde wordt opgeslagen in BCD formaat (binary-coded decimal); woorddata die ingevoerd wordt als hexadecimale waarde wordt opgeslagen in binair formaat. Elke vier bits van een woord representeren één digit. Dit element van vier bits wordt ook wel een nibble genoemd. Zowel het hexadecimale als het decimale digit is numeriek equivalent aan de waarde van de vier bits waaruit het digit is opgebouwd. Eén woord data bevat dus vier digits, die van rechts naar links worden genummerd. De aan deze digits toegewezen nummers en de daarbij horende bitnummers voor een woord worden hieronder getoond.
Woord Byte 1 (msb) 0 (lsb) Digit3210 Bit 15151312111009080706050403020100
Wanneer gerefereerd wordt naar de digits in een woord, wordt het digit met het nummer 0 het meest rechter of meest significante digit (LSD) genoemd en het digit met het nummer 3 het meest linker of meest significante digit (MSD).
Wanneer data wordt geplaatst op datagebieden moet het in het juiste formaat worden ingevoerd. Dit is geen probleem wanneer individuele bits geadresseerd worden. Deze worden alleen aan (equivalent van de binaire waarde 1) of uit (een binaire waarde 0) gezet. Echter bij het invoeren van woorddata is het belangrijk of dit decimaal (BCD) of hexadecimaal ingevoerd moet worden, afhankelijk van wat de gebruikte instructie wenst. Het hoofdstuk "Instructieset" op pagina 107 specificeert het door instructies gebruikte data formaat.

3.5.2 Verschillende vormen data omzetten

Binaire en hexadecimale data kan eenvoudig omgezet worden tussen deze twee talstelsels, aangezien elke vier bits van een binair nummer numeriek gelijk zijn aan één cijfer van een hexadecimaal nummer. Het binaire getal 0101111101011111 wordt omgezet naar een hexadecimaal getal door steeds een groepje van vier bits apart te nemen vanaf het meest rechter bit. Binair 1111 is gelijk aan hexadecimaal F; binair 0101 is gelijk aan hexadecimaal 5. Het hexadecimale equivalent is dus 5F5F of 24,415 decimaal (4095 x 5 + 256 x 15 + 16 x 5 + 15).
Decimaal en BCD kunnen eenvoudig omgezet worden. In dit geval is elk BCD cijfer (d.w.z. elke groep van vier bits) numeriek equivalent aan het corresponderende decimale cijfer. De BCD bits 0101011101010111 worden geconverteerd naar decimaal door elke groep van vier bits vanaf rechts apart te nemen. Binair 0101 is gelijk aan decimaal 5; binair 0111 is gelijk aan decimal 7. Het decimale equivalent is dus 5757. Houd in de gaten dat dit niet dezelfde waarde is als het hexadecimale equivalent van 0101011101010111 dat 5757 hexadecimaal is of 22359 decimaal (4095 x 5 + 256 x 7 + 16 x 5 + 7).
Omdat het numerieke equivalent van elke vier BCD binaire bits gelijk is aan een decimaal cijfer, kunnen bits combinaties die een numeriek groter resultaat opleveren dan 9 niet gebruikt worden. D.w.z., 1011 is niet toegestaan omdat dit het numerieke equivalent is van hexadecimaal B, wat niet uitgedrukt kan worden in één cijfer in decimale notatie. De binaire code 1011 is natuurlijk wel toegestaan in een hexadecimale code en is equivalent aan het hexadecimale cijfer B.
Er zijn instructies beschikbaar om data van BCD naar hexadecimaal of vice versa om te zetten. Raadpleeg het hoofdstuk "Dataconversie" op pagina 163 voor meer details. Tabellen met het binaire equivalent van hexadecimale en BCD cijfers zijn opgenomen in de appendix (“conversietabel hexadecimaal, bcd, binair” op pagina
245).
3.5.3 Decimale punt
De decimale punt wordt alleen bij timers gebruikt. Hier representeert het minst significante cijfer tienden van een seconde. (De punt wordt echter bij de timer waarde niet ingevoerd). Alle andere instructies in de PLC werken in principe met integers.
pagina 94 CQM1 Programmeerhandleiding
OMRON
321
0
Si

3.5.4 Signed en unsigned binaire data

Deze sectie verklaart het signed en unsigned binaire data formaat. Veel instructies kunnen signed of unsigned data verwerken maar sommige verwerken alleen signed data (bijvoorbeeld CPS(—), CPSL(—), DBS(—), DBSL(—), MBS(—), en MBSL(—)).
Unsigned binair
Signed binair
Unsigned binair is het standaard formaat dat gebruikt wordt in OMRON PLC’s. Data in dit manual is unsigned tenzij anders vermeld is. Unsigned binaire waarden zijn altijd positief en lopen van 0 ($0000) t/m 65,535 ($FFFF). Acht digit waarden lopen van 0 ($0000 0000) t/m 4,294,967,295 ($FFFF FFFF).
Digit waarde
Bit nummer
Inhoud
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
00
Signed binaire data kan een positieve of negatieve waarde hebben. Het sign wordt aangegeven met de status van bit 15. Als bit 15 uit is, is het getal positief. Is dit bit aan dan is het getal negatief. Positieve signed binaire getallen lopen van 0 ($0000) t/m 32,767 ($7FFF) en negatieve signed binaire getallen lopen van -32,768 ($8000) t/m -1 ($FFFF).
gn Indicator
Digit waarde
Bit nummer
Inhoud
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
00
De volgende tabel toont de corresponderende decimale, 16 bit hexadecimale, en 32 bit hexadecimale waarden.
Geheugengebieden
16 16 16 16
000
3210
16 16 16 16
000
00
00
0000
0000
0
0
0
000
0
000
1, 2, 3...
Decimaal 16 bit Hex 32 bit Hex
2147483647 2147483646 : 32768 32767 32766 : 2 1 0
-1
-2 :
-32767
-32768
-32769 :
-2147483647
-2147483648
----
---­:
---­7FFF 7FFE : 0002 0001 0000 FFFF FFFE : 8001 8000
---­:
----
----
7FFFFFFF 7FFFFFFE : 00008000 00007FFF 00007FFE : 00000002 00000001 00000000 FFFFFFFF FFFFFFFE : FFFF8001 FFFF8000 FFFF7FFF : 80000001 80000000
Positieve signed binaire data is gelijk aan unsigned binaire data (tot aan 32,767) en kan omgezet worden uit een BCD getal met de instructie BIN. Het omzetten van een signed (negatief of positief) BCD getal naar een signed binaire waarde kan gedaan worden met de instructie NEG. Beschikt een PLC niet over deze optie dan kan de onderstaande mogelijkheid gebruikt worden. De volgende procedure zet negatieve decimale waarden tussen -32,768 en -1 om naar signed binaire data. In dit voorbeeld wordt -12345 geconverteerd naar CFC7.
1. Neem eerst de absolute waarde (12345) en converteer dit naar unsigned binair:
Bit nummer
Inhoud
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
00
1
00
0
11
00
1
000
1
1
2. Bepaal vervolgens het complement:
Bit nummer
Inhoud
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
11 001
1
1
1
1
10 0
0
110
3. En als laatste tel er een bij op:
CQM1 Programmeerhandleiding pagina 95
Geheugengebieden
OMRON
Bit nummer
Inhoud
Voer de procedure in omgekeerde volgorde uit om negatieve signed binaire data naar positief decimaal te converteren.

3.6 IR (interne relais) gebied

Het IR gebied wordt gebruikt om I/O punten aan te sturen en om intern in de PLC data op te kunnen slaan en te manipuleren. Het IR gebied is op bit- en woordbasis benaderbaar.
Woorden in het IR gebied, die worden gebruikt om I/O punten aan te sturen, worden I/O woorden genoemd. Bits in I/O woorden worden I/O bits genoemd. Bits in het IR gebied, die niet zijn toegewezen aan I/O, kunnen worden gebruikt als werkbits. Werkbits uit het IR gebied worden gereset als de voedingsspanning wordt onderbroken of als de verwerking van het PLC programma wordt gestopt of gestart.
I/O woorden
Inputbit gebruik
Outputbit gebruik
Een signaal dat van buiten de PLC naar binnen gaat is een inputsignaal, het bit dat eraan is toegewezen is een inputbit. Een signaal dat vanuit de PLC naar buiten gaat is een outputsignaal, het erbij horende bit is een outputbit. Om een uitgang aan te zetten moet het erbij horende outputbit aangezet worden. Wanneer een input aan gaat, gaat het erbij horende inputbit ook aan. Deze feiten kunnen gebruikt worden in het programma in inputstatussen te bereiken en outputstatussen aan te sturen via I/O bits.
Inputbits kunnen gebruikt worden om externe signalen op de PLC aan te sluiten en kunnen op elke mogelijke manier in het programma gebruikt worden. Elke inputbit kan zo vaak als gewenst in het programma gebruikt worden om een juiste aansturing te krijgen. Inputbits kunnen niet gebruikt worden in instructies die een bitstatus aansturen zoals de OUT, DIFU en KEEP instructies.
Outputbits worden gebruikt om resultaten uit het programma naar buiten te brengen en kunnen op elke plaats in het programma gebruikt worden. Omdat uitgangen maar één keer per scan worden aangestuurd (d.w.z. een keer per uitvoer van het programma), kan elk outputbit maar in één instructie die de status aanstuurt gebruikt worden. Dit zijn instructies als OUT, KEEP(11), DIFU(13), DIFD(14) en SFT(10). Als contact mag het outputbit zo vaak gebruikt worden als gewenst is. Als een outputbit meer dan één keer in het programma wordt aangestuurd, wordt de status van de uitgang bepaald door de laatste instructie die het bit aanstuurt.
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
11 001
1
1
1
1
10 0
0
11
1

3.7 SR (speciale relais) gebied

Het SR gebied bevat vlaggen en controlebits die gebruikt kunnen worden voor het bekijken van de werking van de PLC, voor toegang tot de klokpulsen en instructie status en errorvlaggen. Het adresbereik van het SR gebied hangt af van het type CPU dat wordt geprogrammeerd.
De volgende tabellen geven een lijst van vlaggen en controlebits in het SR gebied en hun functie. De meeste van deze bits worden verderop in dit hoofdstuk meer in detail beschreven. In principe is de beschrijving op volgorde van het bitnummer. Alleen bits die bij dezelfde functie horen zijn gegroepeerd.
Tenzij anders vermeld wordt zijn vlaggen uit tot de gespecificeerde conditie optreedt, waarop ze aangezet worden. Restartbits zijn normaal uit maar als de gebruiker ze aan en vervolgens uit zet zal de gespecificeerde functie gereset worden. Andere controlebits zijn uit tot de gebruiker de status verandert.

3.7.1 SR gebied overzicht

De toewijzing van vlaggen en bits in het Special Relais Gebied is afhankelijk van het geselecteerde CPU type. Niet alle CPU typen ondersteunen alle bits of woorden in het SR Gebied.
pagina 96 CQM1 Programmeerhandleiding
OMRON
Geheugengebieden
Woord Bit(s) Functie
232 00 t/m 15 233 00 t/m 15 234 00 t/m 15 235 00 t/m 15 236 00 t/m 15 237 00 t/m 15 244 00 t/m 15 Input interrupt 0 counter mode ingestelde waarde 245 00 t/m 15 Input interrupt 1 counter mode ingestelde waarde 246 00 t/m 15 Input interrupt 2 counter mode ingestelde waarde 247 00 t/m 15 Input interrupt 3 counter mode ingestelde waarde 248 00 t/m 15 Input interrupt 0 counter mode actuele waarde min één 249 00 t/m 15 Input interrupt 1 counter mode actuele waarde min één 250 00 t/m 15 Input interrupt 2 counter mode actuele waarde min één 251 00 t/m 15 Input interrupt 3 counter mode actuele waarde min één 252 00 Highspeed counter 0 resetbit
01
02
03 t/m 07 Niet gebruikt 08 Periferie poort resetbit 09 RS-232C poort resetbit 10 PC Setup resetbit 11 Forced status hold bit
12 Data retention control bit
13 Niet gebruikt 14 Errorlog resetbit 15 Output inhibit bit
253 00 t/m 07 FAL error code
08 Lage batterijspanning vlag 09 Cyclustijd te groot errorvlag 10 t/m 12 Niet gebruikt 13 Altijd aan vlag 14 Altijd uit vlag 15 Eerste scan vlag
254 00 1 minuut klokpuls
01 0.02 seconde klokpuls 02 t/m 03 Niet gebruikt 04 05 06 Differential monitor complete vlag 07 STEP(08) uitgevoerd vlag 08 HKY(—) in werking vlag 09 7SEG(—) in werking vlag 10 DSW(—) in werking vlag 11 t/m 14 Niet gebruikt 15
255 00 0.1-seconde klokpuls
01 0.2-seconde klokpuls 02 1.0-seconde klokpuls
CQM1-CPU45: CQM1-CPU45: CQM1-CPU45: CQM1-CPU45: CQM1-CPU45: CQM1-CPU45:
CQM1-CPU43-E: CQM1-CPU44-E:
compensatie bit
CQM1-CPU43-E: CQM1-CPU44-E:
compensatie bit
uit: De status van bits die geforceerd zijn ge(re)set wordt gewist wanneer de PLC van PROGRAM mode naar MONITOR mode wordt geschakeld. aan: De status van bits die geforceerd zijn ge(re)set wordt vastgehouden wanneer de PLC van PROGRAM mode naar MONITOR mode wordt geschakeld.
uit: De status van IR en LR bits wordt gereset wanneer de werking van de PLC wordt gestart of gestopt. aan: De status van IR en LR bits wordt vastgehouden wanneer de werking van de PLC wordt gestart of gestopt.
OFF: Normale output status. aan: Alle outputs worden uitgezet.
CQM1-CPU4*-E: CQM1-CPU4*-E:
CQM1-CPU43-E CQM1-CPU44-E
9C)
Analoge ingang 1 Analoge ingang 2 Analoge ingang 3 Analoge ingang 4 Analoge uitgang 1 Analoge uitgang 2
Highspeed counter 1 resetbit Absolute highspeed counter 1 nulpunt
Highspeed counter 2 resetbit. Absolute highspeed counter 2 nulpunt
Overflow (OF) vlag Underflow (UF) vlag
: Puls I/O errorvlag (FALS 9C) : Absolute highspeed counter errorvlag (FALS
CQM1 Programmeerhandleiding pagina 97
Geheugengebieden
OMRON
Woord Bit(s) Functie
03 Instructie executie error (ER) vlag 04 Carry (CY) vlag 05 Groter dan (GR) vlag 06 Gelijk aan (EQ) vlag 07 Kleiner dan (LE) vlag
Opmerking
Schrijven is niet mogelijk op de woorden 248 t/m 251 en 253 t/m 255
3.7.2 Forced status hold bit
Het gereset zijn hetzelfde blijft als de PLC wordt geschakeld van PROGRAM naar MONITOR mode om de verwerking van het programma te stoppen of te starten. Als het Als het bit uit is worden alle bits in hun standaard staat (uit) gezet wanneer de werking van het programma wordt gestart of gestopt. Het alleen effectief wanneer het in de PC Setup geactiveerd is.
De status van het interruptie. Het mode wordt gezet. Het worden. De PLC kan het niet vanuit het programma aansturen.
Status handhaven tijdens opstarten
De status van het gesette en geresette bits kan worden vastgehouden wanneer de spanning uit- / aangezet wordt. Dit wordt gerealiseerd door het in de PC Setup in te stellen. Als deze optie wordt gebruikt zal de status van het bewaard als de voedingsspanning uit/aan wordt gezet. Als dit wordt gedaan en het

forced status hold bit

geresette bits worden bewaard zoals getoond in de volgende tabel. Het gebruik van het staat. Bij het schakelen naar de RUN mode worden geforceerde bits altijd op hun standaard waarde (dat is uit) ingesteld.
Forced status hold bit
forced status hold bit
forced status hold bit
forced status hold bit
forced status hold bit
forced status hold bit
is aan, dan zal de status van de geforceerd gesette en
Forced status hold
bepaalt of de status van bits die geforceerd geset of
aan is, zullen de bit statussen vastgehouden worden.
forced status hold bit
is
verandert niet door een spannings-
is niet werkzaam wanneer de PLC in de RUN
kan alleen met periferie ingesteld
en dus de status van de geforceerd
forced status hold bit
worden
bit beïnvloedt de werking niet als de PLC in RUN mode
3.7.3 I/O status hold bit
Status handhaven tijdens opstarten
Status voor shutdown Status na het opstarten
Forced status hold
bit
AAN Uitgevoerd AAN Status bewaard
UIT Uitgevoerd UIT Standaard status
PC Setup
Niet uitgevoerd UIT Standaard status
Niet uitgevoerd UIT Standaard status
Forced status hold
bit
geforceerde set /
reset bits
Raadpleeg het hoofdstuk "Instructieset" op pagina 107 voor details over de SYS(49) instructie.
Het

I/O status hold bit

bepaalt of de status van bits in het IR en LR gebied wordt bewaard wanneer de werking van de PLC wordt gestart en gestopt of van de PROGRAM naar MONITOR of RUN mode geschakeld. Als het
I/O status hold bit
aan is, worden de statussen bewaard; als het uit is, worden alle bits in het IR en LR gebied gereset. Het
I/O status hold bit
is alleen effectief wanneer het in de PC
Setup geactiveerd is. De status van het
Het
I/O status hold bit
I/O status hold bit
kan alleen met een periferie ingesteld worden. De PLC kan
veranderd niet door een spanningsinterruptie.
het niet vanuit het programma aansturen. De status van het
I/O status hold bit
en dus de status van de bits in het IR en LR gebied kan worden vastgehouden wanneer de spanning uit- en aangezet wordt. Dit wordt gerealiseerd door in de PC Setup een instelling te maken. Als deze optie wordt gebruikt zal de status van het
I/O status hold bit
voedingsspanning uit/aan wordt gezet. Als dit wordt gedaan en het
is aan, dan zal de status van de bits in het IR en LR gebied worden bewaard
bit
worden bewaard als de
I/O status hold
zoals getoond in de volgende tabel.
pagina 98 CQM1 Programmeerhandleiding
Loading...