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.
NederlandstaligCQM1 Installatie handleiding
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.
OMRON CQM1 InstructiesetPublicatie 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 2CQM1 Programmeerhandleiding
OMRON
Inhoudsopgave
1Schrijven en invoeren van het programma9
1.1Terminologie9
1.2Basis ladderdiagrammen9
1.3Programmeer overwegingen20
1.4Bit statussen aansturen26
1.5Werkbits (interne relais)28
1.6Programmeer voorzorgsmaatregelen30
1.7Programma uitvoer31
Inhoudsopgave
1.2.1Basis begrippen10
1.2.2Mnemonic code10
1.2.3Ladder instructies11
1.2.4De END instructie13
1.2.5Logische blok instructies14
1.2.6Het coderen van meerdere “uitvoerende” instructies20
1.3.1Vertakkende instructie regels20
1.3.2Springen25
1.4.1DIFFERENTIATE UP en DIFFERENTIATE DOWN26
1.4.2KEEP27
1.4.3Zelfhandhavende bits27
1.5.1Werkbit toepassingen28
1.5.2Reduceren van complexe condities28
1.5.3Gedifferentieerde condities29
2CQM1 PC Setup32
2.1Basis CQM1 werking en I/O afhandeling36
2.2CQM1-CPU45 analoge ingangen instellen39
2.3CQM1 pulsuitgang functies instellen en gebruik40
2.3.1Type van pulsuitgangen40
2.3.2Standaard puls uitsturing op een uitgang40
2.3.3Standaard puls uitsturing op poort 1 en 242
2.3.4Variabele duty-ratio puls uitsturing op poort 1 en 248
2.3.5Bepalen van de status van poort 1 en 249
2.4Instellen en gebruik van de CQM1 interrupt functies50
2.4.1Interrupt typen50
2.4.2Input interrupts52
2.4.3Alle interrupts maskeren56
2.4.4Interval timer interrupts56
2.4.5Highspeed counter 0 interrupts58
2.4.6Highspeed counter 0 overflows / underflows63
2.4.7Highspeed counter 1 en 2 interrupts (CQM1-CPU43-E)64
4.15.7Dubbel binair vergelijken met sign - CPSL(—)160
4.15.8Bereik vergelijken met sign - ZCP(—)161
4.15.9Dubbel bereik vergelijken met sign - ZCPL(—)162
4.16Dataconversie163
4.16.1BCD naar binair - BIN(23)163
4.16.2Dubbel BCD naar dubbel binair - BINL(58)164
4.16.3Binair naar BCD - BCD(24)164
4.16.4Dubbel binair naar dubbel BCD - BCDL(59)165
4.16.54 naar 16 decoder - MLPX(76)165
4.16.616 naar 4 encoder - DMPX(77)167
4.16.77 segment decoder - SDEC(78)168
4.16.8ASCII conversie - ASC(86)170
4.16.9ASCII 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.17BCD calculaties181
4.17.1Increment - INC(38)182
4.17.2Decrement - DEC(39)182
4.17.3Zet Carry - STC(40)182
4.17.4Wis Carry - CLC(41)182
4.17.5BCD optellen - ADD(30)183
4.17.6Dubbel BCD optellen - ADDL(54)184
4.17.7BCD aftrekken - SUB(31)185
4.17.8Dubbel BCD aftrekken - SUBL(55)186
4.17.9BCD vermenigvuldigen - MUL(32)188
CQM1 Programmeerhandleidingpagina 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.18Binaire berekeningen191
4.18.1Binair optellen - ADB(50)192
4.18.2Dubbel binair optellen - ADBL(—)193
4.18.3Binair aftrekken - SBB(51)194
4.18.4Dubbel binair aftrekken - SBBL(—)196
4.18.5Binair vermenigvuldigen - MLB(52)197
4.18.6Signed binair vermenigvuldigen - MBS(—)198
4.18.7Dubbel signed binair vermenigvuldigen - MBSL(—)198
4.18.8Binair delen - DVB(53)199
4.18.9Signed binair delen - DBS(—)200
4.18.10 Dubbel signed binair delen - DBSL(—)200
4.19Speciale rekenkundige instructies201
4.19.1Vind maximum - MAX(—)201
4.19.2Vind minimum - MIN(—)202
4.19.3Gemiddelde waarde - AVG(—)203
4.19.4Tel reeks op - SUM(—)204
4.19.5Lineaire benadering - APR(—)206
4.20Logische instructies208
4.20.1Complement - COM(29)209
4.20.2Logische AND - ANDW(34)209
4.20.3Logische OR - ORW(35)209
4.20.4Exclusive OR - XORW(36)210
4.20.5Exclusive NOR - XNRW(37)210
4.21Subroutine en interrupt aansturing211
4.21.1Overzicht211
4.21.2Subroutine definitie en return - SBN(92)/RET(93)211
4.21.3Subroutine aanroep - SBS(91)212
4.22Step instructies213
4.22.1Stap definitie en stap starten - STEP(08) / SNXT(09)213
4.23Speciale instructies220
4.23.1Failure alarm en severe failure alarm - FAL(06) / FALS(07)220
4.23.2Toon boodschap - MSG(46)220
4.23.3Bit counter - BCNT(67)222
4.23.4I/O Refresh - IORF(97)222
4.23.5Data tracing - TRSM(45)222
4.23.6Macro - MCRO(—)223
4.23.7Frame checksum - FCS(—)223
4.23.8Failure point detection - FPD(—)225
4.23.9Interrupt 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.24Communicatie instructies239
4.24.1Receive - RXD(-)239
4.24.2Transmit - TXD(-)240
4.25Geavanceerde I/O instructies242
4.25.17-Segment display output - 7SEG(-)242
4.25.2Digital switch input - DSW(-)242
4.25.3Hexadecimal key input -HKY(-)243
4.25.4TEN KEY INPUT - TKY(-)243
5Appendix245
5.1Conversietabel hexadecimaal, BCD, binair245
5.2Conversietabel hex, ASCII245
5.3Index246
pagina 6CQM1 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 Programmeerhandleidingpagina 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.02005.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 Programmeerhandleidingpagina 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 10CQM1 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.
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 Programmeerhandleidingpagina 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.
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.
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.
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.
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
AdresInstructieOperands
00000LD000.00
00001OUT002.00
AdresInstructieOperands
00000LD000.01
00001OUT NOT002.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.
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.
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.
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.
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.
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.
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 16CQM1 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.
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.
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 aBlok bBlok cBlok 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.
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.
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.
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.01000.06
105.00
000.03
Blok b
000.05000.00000.01000.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.
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.
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 20CQM1 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.
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 “righthand” instructie door hetzelfde TR bit te gebruiken als operand van een LD
instructie
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.
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 22CQM1 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.00000.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.
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.
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 24CQM1 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.
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 Programmeerhandleidingpagina 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.
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 26CQM1 Programmeerhandleiding
OMRON
1.4.2 KEEP
Schrijven en invoeren van het programma
000.00
DIFU(13)
092.00
000.01
DIFD(14)
092.01
AdresInstructieOperands
00000LD000.00
00001DIFU(13)092.00
AdresInstructieOperands
00002LD000.01
00003DIFD(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.
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 Programmeerhandleidingpagina 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.
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.
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.
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.
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
AdresInstructieOperands
00000LD253.13
00001Instructie
Instructie
Instructie
pagina 30CQM1 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.
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.
WoordBitFunctie
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.
DM660000 t/m 07Startup mode (alleen actief als de 08 tot en met 15 op 02 ingesteld staan).
00: PROGRAM; 01: MONITOR; 02 : RUN
08 t/m 15Startup 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
DM660100 t/m 07Gereserveerd (zet op 00)
08 t/m 11
IOM Hold Bit (252.12) Status
0: Reset; 1: Handhaven
pagina 32CQM1 Programmeerhandleiding
OMRON
WoordBitFunctie
12 t/m 15
DM6602 t/m
DM6610
DM661100 t/m 15CQM1-CPU43-E: Mode instelling voor de poorten 1 en 2
08 t/m 15Cyclus monitor activeren (Instelling in 00 t/m 07 x unit; 99s max.)
04 t/m 07Ingangstijdvertraging voor 000.08 t/m 000.15 (Zelfde instelling als de bits 00 t/m 03)
08 t/m 15Ingangstijdvertraging voor 001 (Zelfde instelling als de bits 00 t/m 03)
08 t/m 15Ingangstijdvertraging voor 003 (Zelfde instelling als de bits 00 t/m 03 of DM6620)
08 t/m 15Ingangstijdvertraging voor 005 (Zelfde instelling als de bits 00 t/m 03 van DM6620)
08 t/m 15Ingangstijdvertraging voor 007 (Zelfde instelling als de bits 00 t/m 03 van DM6620)
08 t/m 15Ingangstijdvertraging voor 009 (Zelfde instelling als de bits 00 t/m 03 van DM6620)
08 t/m 15Ingangstijdvertraging voor 011 (Zelfde instelling als de bits 00 t/m 03 van DM6620)
00 t/m 15Gereserveerd
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.
DM665500 t/m 03Stijl
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 07Gereserveerd
08 t/m 11Cyclus tijd monitor activeren
0: Detecteer lange cyclussen als niet fatale errors
1: Detecteer te lange cyclussen niet
12 t/m 15Lage 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 36CQM1 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)
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 ingangstijdvertraging wilt verlengen of verkorten om respectievelijk een stabieler ingangssignaal 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 150
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.
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 Programmeerhandleidingpagina 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 150
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 38CQM1 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 150
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 150
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/OutputWoordFunctie
Ingangen232Analoge ingang 1
233Analoge ingang 2
234Analoge ingang 3
235Analoge ingang 4
Uitgangen236Analoge uitgang 1
237Analoge uitgang 2
CQM1 Programmeerhandleidingpagina 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.
WoordBitsFunctie
AR0408 t/m 1500: 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 CQM1CPU43-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.
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 40CQM1 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.
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 Programmeerhandleidingpagina 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 42CQM1 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(—).
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 doelfrequentie 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
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
De default mode instelling is highspeed counter mode.
CQM1 Programmeerhandleidingpagina 43
CQM1 PC Setup
Bit150
Bit150
OMRON
Sommige instructies kunnen niet gebruikt worden, afhankelijk van de gekozen
mode instelling in DM6611.
DM6611 instellingBetrokken 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.
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 44CQM1 Programmeerhandleiding
OMRON
F
F
CQM1 PC Setup
requentie
1.5 kHz
1.0 kHz
0.5 kHz
Tijd
050.00000.00000.01000.0210,000
gaat AANpulsesgaat AANgaat AANgaat 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.00000.05000.06000.07
gaat AANgaat AANgaat AANgaat 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 Programmeerhandleidingpagina 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.
DM00000050
DM00011000
DM00020000
DM00030010
000.00
050.00
AR05.14
TIM000
SET050.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 pulsuitgangCCW pulsuitgang
helling ongeveer 500 Hz/4 ms
Tijd
050.00AR05.14 Na 5 s
gaat AANgaat 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.
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
000009,100
gaat AANpulsen
±250 Hz/4 ms
Tijd
10,000
pulsen
pagina 46CQM1 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 ±
DM00000050
DM00012000
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.
DM00000050
DM00010001
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.
DM00000100
DM00010500
CQM1 Programmeerhandleidingpagina 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.
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 48CQM1 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 pulsen25% duty-ratio pulsen
00000
gaat AAN
0000100002
gaat AANgaat 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)FunctieOmschrijving
236 en 237 00 t/m15Poort 1 actuele waardeGeeft in acht cijfers de huidige waarde van het aantal uitgestuurde pulsen
238 en 239 00 t/m15Poort 2 actuele waardeGeeft in acht cijfers de huidige waarde van het aantal uitgestuurde pulsen
AR0408 t/m15Puls output statusGeeft de pulsuitgang status aan.
AR0512Poort 1 Deceleratie vlagGeeft deceleratie aan
13Poort 1 Aantal pulsen
vlag
14Poort 1 Puls Output
Completed vlag
15Poort 1 Puls Output
Status vlag
AR0612Poort 2 Deceleratie vlagGeeft deceleratie aan
13Poort 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 Programmeerhandleidingpagina 49
CQM1 PC Setup
Woord(en)Bit(s)FunctieOmschrijving
14Poort 2 Puls Output
Completed vlag
15Poort 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.
BitFunctieOmschrijving
04Deceleratie vlagGeeft deceleratie aan
0: Niet gespecificeerd; 1: Gespecificeerd
05Aantal pulsen vlagGeeft aan of het aantal pulsen is ingesteld.
0: Niet gespecificeerd; 1: Gespecificeerd
06Puls Output Completed vlagGeeft aan of de pulsuitgang klaar is.
0: Niet klaar; 1: Klaar
07Puls Output Status vlagGeeft 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 interruptroutine uitgevoerd. Interrupts hebben de volgende prioriteitsvolgorde (Input
interrupt 0 heeft de hoogste prioriteit en highspeed counter interrupt 0 heeft de
laagste).
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 Programmeerhandleidingpagina 51
CQM1 PC Setup
Bit150
2.4.2 Input interrupts
Uitvoer
OMRON
SBN(92)
253.13
255.03LR00.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.
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.
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 52CQM1 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.
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 Programmeerhandleidingpagina 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.
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 54CQM1 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 counts10 counts20 counts
(zie noot 1) (zie noot 1)
(zie noot 2)
CQM1 Programmeerhandleidingpagina 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 56CQM1 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.
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.
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 Programmeerhandleidingpagina 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.)
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 ms2,4 ms2,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 58CQM1 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
VerhogenVerlagen
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 signaalovergangen 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 cyclusNiet 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 telrichting) en interruptroutine combinaties worden opgeslagen in de vergelijkingstabel. 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 Programmeerhandleidingpagina 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.
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 150
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.
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 60CQM1 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 cijfersMeest rechter 4 cijfers
231230
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 cijfersMeest rechter 4 cijfers
P1+1P1
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 Programmeerhandleidingpagina 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 cijfersMeest rechter 4 cijfers
D+1D
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:
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 62CQM1 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:
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 Programmeerhandleidingpagina 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.
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 64CQM1 Programmeerhandleiding
OMRON
Diff
Pulse/Di
Ri
Li
CQM1 PC Setup
Tel modes
1, 2, 3...
A-fase
B-fase
Teller
1 2 3 4
VerhoogdVerlaagd
A-fase
(Omlaag)
B-fase
(Omhoog)
Teller
Up/Down Mode
1 2 32 1
VerhoogdVerlaagd
erential Phase Mode
5 6 7 8 7 6 5 4
3 2 1 0
A-fase
(Richting)
B-fase
(Pulsen)
Teller
1 2 32 1
rection Mode
VerhoogdVerlaagd
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...
VerlagenVerhogen
08.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 signaalovergangen 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 Programmeerhandleidingpagina 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.
De default mode instelling is highspeed counter mode.
Als DM6611 is ingesteld op pulsuitgang mode, kan een andere vergelijkingsinstructie 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.
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 66CQM1 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.
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.
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.
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)
WoordBit(s)Functie
AR0408 t/m 15Geeft de status aan van de highspeed counters
00: Normaal
01 of 02: Hardware error
03: PC Setup error
AR0500 t/m 07
08
09
AR0600 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.
BitFunctie
00Vergelijkingsvlag (0: Gestopt; 1: In werking)
01Underflow/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 68CQM1 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:
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)
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 70CQM1 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 Programmeerhandleidingpagina 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.
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.
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 72CQM1 Programmeerhandleiding
OMRON
CQM1 PC Setup
WoordBit(s)Functie
AR0408 t/m 15Geeft de absolute highspeed counter status aan
00: Normaal
01 of 02: Hardware error
03: PC Setup error
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:
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 = 085 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 74CQM1 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 CQM1CPU11-E, aangezien deze alleen over een periferie poort beschikt. De CQM1CPU21-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 150
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 150
00
DM6648: RS-232C poort
DM6653: Periferie poort
Nodenummer
(2 cijfers BCD): 00 t/m 31
CQM1 Programmeerhandleidingpagina 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 150
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 150
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
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
InstellingBaudrate
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 Cmode 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 Programmeerhandleidingpagina 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*Xcr.
(Moet "EX" zijn)
Data (tot 122 karakters)FCSTerminator
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 78CQM1 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.
StartcodeDataEndcode
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.
(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)
AR09AR10Aantal ontvangen bytes
CQM1 Programmeerhandleidingpagina 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.
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 pulsuitgangen 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 Programmeerhandleidingpagina 81
INI
SPED
PULS
MAX
MIN
SUM
CQM1 PC Setup
OMRON
De volgende 18 functiecodes kunnen worden gebruikt voor de uitbreidingsinstructies: 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.
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 82CQM1 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 Programmeerhandleidingpagina 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.
GebiedAcroniemFunctie
Interne relaisIRGebruikt om I/O punten aan te sturen en om tijdelijke data in op te slaan.
Speciale relaisSRBevat systeem klokpulsen, vlaggen, bits met speciale functies en status informatie.
Auxiliary relaisARBevat vlaggen en bits voor speciale functies. Dit gebied houdt de status vast na
spanningsuitval.
DatageheugenDMGebruikt voor interne dataopslag en manipulatie. Dit gebied houdt de status vast na
spanningsuitval.
Holding relaisHRGebruikt om data (bits) in op te slaan waarvan de status vastgehouden moet worden als de
spanning van de PLC wordt afgezet.
Timer/CounterTCGebruikt 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 relaisLRBeschikbaar als werkbits. Bij diverse soorten OMRON netwerken wordt dit gebied gebruikt
als gemeenschappelijk geheugen.
Temporary relais TRGebruikt 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
UMBevat 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 84CQM1 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
DatagebiedGrootteWoordenBitsFunctie
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 gebied184 bits244 t/m 255244.00 t/m
TR gebied8 bits---TR0 t/m
HR gebied1.600 bitsHR00 t/m
AR gebied448 bitsAR00 t/m
LR gebied
Timer/Counter gebied
DM
gebied
Input gebied128 of 192
1
Output gebied100 t/m 115100.00 t/m
Werk
gebieden
Input gebied64 bits096 t/m 099096.00 t/m
1
Output gebied 64 bits196 t/m 199196.00 t/m
1
1
1
1
1
1
3
Read/Write1.024
De volgende geheugengebieden kunnen gebruikt worden bij de CQM1.
---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 Programmeerhandleidingpagina 85
Geheugengebieden
OMRON
DatagebiedGrootteWoordenBitsFunctie
Read-only
Error historie
gebied
PC Setup56
Gebruiker programma
(user program) gebied
(UM gebied)
----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.
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.
BereikFunctie
001 t/m 015Wanneer toegewezen aan input units fungeren deze bits/woorden
als input bits
096 t/m 099Wanneer de MACRO instructie wordt gebruikt werken deze
bits/woorden als operand bits
pagina 86CQM1 Programmeerhandleiding
OMRON
I
SR gebied
TR gebied
HR gebied
Geheugengebieden
BereikFunctie
100 t/m 115Wanneer toegewezen aan output units fungeren deze bits/woorden
als output bits
196 t/m 199Wanneer de MACRO instructie wordt gebruikt werken deze
bits/woorden als operand bits
220 t/m 223In 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 231Wanneer highspeed counter 0 wordt gebruikt wordt op deze
woorden de actuele waarde opgeslagen.
232 t/m 235In 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 239In 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 Programmeerhandleidingpagina 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 ModelUM gebied grootte
CQM1-CPU11/21-E3.2KW
CQM1-CPU4*-E7.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 88CQM1 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 ingangsen 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.
UnitBits 0 t/m 7Bits 8 t/m 15
InputInputbitsAltijd uit (0), niet te gebruiken als
werkbits
OutputOutputbitsTe 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 ModelAantal I/O bits
CQM1-CPU11/21-E Tot aan 128 bits (8 woorden) kunnen worden gebruikt als I/O bits.
CQM1-CPU4*-ETot aan 192 bits (12 woorden) kunnen worden gebruikt als I/O bits.
Woord toewijzing voorbeeld
PS: Powersupply unit
O
PSCPU
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 015 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
PSCPU
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 Programmeerhandleidingpagina 89
Er zijn zes typen memorycassettes zoals getoond in de volgende tabel.
Geheugengebieden
UM
2kW)
M
(4kW)
Inhoud
OMRON
ModelOpmerking
CQM1-ME04KEEPROM type (zonder klok) 4k woorden
CQM1-ME04REEPROM type (met klok) 4k woorden
CQM1-MP08KEPROM type (zonder klok) 8k woorden
CQM1-MP08REPROM type (met klok) 8k woorden
CQM1-ME08KEEPROM type (zonder klok) 8k woorden
CQM1-ME08REEPROM type (met klok) 8k woorden
De volgende EEPROM chips (apart bestellen) zijn nodig bij gebruik van EPROM
memorycassettes.
ModelROM versieCapaciteitToegangs snelheid
ROM-IB-B27128 of gelijkwaardig8k woorden200ns
ROM-ID-B27128 of gelijkwaardig8k woorden150ns
ROM-JD-B 27256 of gelijkwaardig16k woorden150ns
ROM-KD-B 27512 of gelijkwaardig32k woorden150ns
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.
InformatieBevat
Fixed DMFixed 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 SetupIn de PC Setup worden een aantal instellingen van de CQM1
opgeslagen. Dit gebied loopt van DM6600 t/m DM6655.
InstructietabelIn 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 90CQM1 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
Memorycassette
UM gebiedAR15.08
BitsInhoudBetekenis
AR15.00
t/m
00Geen memorycassette geïnstalleerd of geen
programma opgeslagen in de memorycassette
AR15.07
04Het programma in de memorycassette is kleiner dan
3.2kW en kan door elke CQM1 CPU worden gelezen
08Het 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
04Het programma in de PLC is kleiner dan 3.2kW en
t/m
kan naar elke memorycassette worden geschreven
AR15.15
08Het 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 Programmeerhandleidingpagina 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 92CQM1 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.
GebiedWoord toewijzingBit toewijzing
IR000000.15 (meest linker bit in woord 000)
SR252252.00 (meest rechter bit in woord 252)
DMDM1250Niet mogelijk
TCTIM215 of CNT215 (voor de
actuele waarde)
LRLR12LR12.00
TIM215 of CNT215 (voor de completionvlag)
CQM1 Programmeerhandleidingpagina 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.
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 94CQM1 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.
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 Programmeerhandleidingpagina 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.
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.
03Instructie executie error (ER) vlag
04Carry (CY) vlag
05Groter dan (GR) vlag
06Gelijk aan (EQ) vlag
07Kleiner 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 shutdownStatus na het opstarten
Forced status hold
bit
AANUitgevoerdAANStatus bewaard
UITUitgevoerdUITStandaard status
PC Setup
Niet uitgevoerdUITStandaard status
Niet uitgevoerdUITStandaard 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 98CQM1 Programmeerhandleiding
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.