Conversies, vergelijkingen, logische, reken- en schuifbewerkingen
SUB_R ENO EN IN
WOR_W EN ENO IN1 IN2 OUT
OUT BCD_I EN ENO IN
OUT
MUL_R EN ENO IN1 IN2
1 Inhoud
OUT
Basis PLC pagina
pagina 1
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
Conversie-instructies BCD <-> Integer Ingave van een BCD-getal
0 81 5
Uitgave van een BCD-getal
0 2 4 8
Conversie BCD->Integer
Uiteenzetting Conversie BCD<-Integer
LAD
FBD
BCD_I
IW4
MW10
EN
ENO
IN
OUT
EN
I_BCD ENO
IN
OUT
Gebruikersprogramma met aritmetische instructies op gehele getallen
STL
MW20
L IW4 BTI T MW20
QW12
L MW10 ITB T QW12
BCD_I
MW20
IW4
EN
OUT
IN
ENO I_BCD
QW12
MW10
EN
OUT
IN
ENO
2
Basis PLC
Voorbeeld
Een gebruikersprogramma moet berekeningen uitvoeren op waarden die met duimwielschakelaars ingesteld zijn, en het resultaat op een digitaal display visualiseren. Aritmetische berekeningen kunnen onmogelijk in BCD-formaat uitgevoerd worden, dus moeten we het formaat veranderen.
Conversieinstructies
De instructieset van de S7-300/400 ondersteunt een heleboel conversiemogelijkheden. De instructies hebben allemaal dezelfde vorm:
Enable-ingang (EN), enable-uitgang (ENO) Wanneer het RLO aan de enable-ingang EN op 1 staat, wordt de conversie uitgevoerd. De enable-uitgang ENO heeft meestal dezelfde signaalstatus als de enable-ingang EN. Wanneer dit niet het geval is, vermelden we dit expliciet. Ingangsparameter (IN) Wanneer EN = 1 is, wordt de waarde aan IN in de conversie-instructie gelezen. Uitgangsparameter (OUT) Het resultaat van de conversie wordt aan de uitgang OUT afgeleverd. BCD_I / BTI I_BCD / ITB
BCD_DI / BTD DI_BCD / DTB
Conversie van een BCD-getal in een geheel getal van 16 bits. Deze instructie leest de inhoud van de parameter IN onder de vorm van een BCD-getal met drie cijfers (+/- 999) en converteert dit in een geheel getal (16 bits). Conversie van een geheel getal van 16 bits in een BCD-getal. Deze instructie leest de inhoud van de parameter IN onder de vorm van een geheel getal (16 bits) en converteert dit in een BCD-getal met drie cijfers (+/- 999). In geval van een overflow is ENO = 0. Converteert een BCD-getal (+/- 9999999) in een geheel getal van 32 bits. Converteert een geheel getal van 32 bits in een BCD-getal van 7 cijfers (+/- 9999999). In geval van een overflow is ENO = 0.
pagina 2
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
Conversie-instructies I -> DI -> REAL Gegevens van het type integer (geheel getal van 16 bits) Conversie integer 16 bits in integer 32 bits
Uiteenzetting
F B D
Berekeningsprogramma met reële getallen
Conversie integer 32 bits in reële getallen
I_DI
MW12
EN
OUT
IN
ENO
MD14
MD14
STL
DI_R EN
OUT
IN
ENO
MD26
L MW12 ITD DTR T MD26
LAD
EN MW12
IN
I_DI ENO OUT
EN MD14
MD14
IN
DI_R ENO OUT
3
MD26
Basis PLC
Voorbeeld
Een gebruikersprogramma werkt met gehele getallen van 16 bits, maar moet ook delingen uitvoeren, waarvan het resultaat wel eens kleiner dan 1 zou kunnen zijn en dus alleen maar onder de vorm van een reëel getal kan worden weer-gegeven. Het resultaat moet dus in een reëel getal geconverteerd worden. Het gehele getal van 16 bits moet eerst in een geheel getal van 32 bits geconverteerd worden.
I_DI / ITD DI_R / DTR
Converteert een geheel getal van 16 bits in een geheel getal van 32 bits. Converteert een geheel getal van 32 bits in een getal met glijdende komma.
Nota
Andere conversie-instructies, zoals: z INV_I / INVI z NEG_I / NEGI z TRUNC / TRUNC z ROUND / RND z CEIL / RND+ z FLOOR / RNDz INV_DI / INVD z NEG_DI / NEGD z NEG_R / NEGR worden in een programmeercursus voor gevorderden bestudeerd.
pagina 3
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
Vergelijkingsfuncties LAD
CMP ==I
IW0 IW2
IN1 IN2
FBD
CMP ==I
Q9.7
IW0
IN1
IW2
IN2
Q9.7
4 CMP
STL
=
L IW0 L IW2 ==I = Q9.7
Basis PLC
Met de vergelijkingsinstructies kunnen we de volgende digitale waarden met elkaar gaan vergelijken: I twee gehele getallen (van elk 16 bits met vaste komma) D twee gehele getallen (van elk 32 bits met vaste komma) R twee getallen met glijdende komma (reële getallen van 32 bits = getallen met glijdende komma volgens IEEE). Wanneer de vergelijking "waar" is, is het RLO = 1. In het andere geval is het RLO = 0. De vergelijkingen hebben betrekking op de ingangen IN1 en IN2, volgens het soort instructie: EQ: ==: IN1 is gelijk aan IN2 NE: <>: IN1 is verschillend van IN2 GT: >: IN1 is groter dan IN2 LT: <: IN1 is kleiner dan IN2 GE: >=: IN1 is groter dan of gelijk aan IN2 LE: <=: IN1 is kleiner dan of gelijk aan IN2
pagina 4
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
Logische woordbewerkingen WXOR_W WOR_W WAND_W EN IW0 W#16#5F2A
L
IW 0
L
W#16#5F2A
AW / OW / XOW
ENO
T
MW10
IN1 IN2
OUT
15
MW10 IW0 = W#16#5F2A =
0
0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0
AND
OR
XOR
MW10 na "AW"
0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0
MW10 na "OW"
0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0
MW10 na "XOW"
0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0
5
Basis PLC
WAND_W
De "Word AND"-instructie combineert bit per bit de twee digitale waarden die gespecificeerd zijn bij IN1 en IN2, gebaseerd op de AND-waarheidstabel. Het resultaat van de AND-bewerking wordt opgeslagen op het adres OUT. De instructie wordt uitgevoerd als het ingangssignaal van EN = 1. Voorbeeld: Maskeren van de 4de decade van de duimwielschakelaar: IW4 = 0100 0100 1100 0100 W#16#0FFF = 0000 1111 1111 1111 MW30 = 0000 0100 1100 0100
WOR_W
De "Word OR"-instructie combineert bit per bit de twee digitale waarden die gespecificeerd zijn bij IN1 en IN2, gebaseerd op de OR-waarheidstabel. Het resultaat van de OR-bewerking wordt opgeslagen op het adres OUT. De instructie wordt uitgevoerd, als de ingangstoestand van EN = 1. Voorbeeld: Setten van bit 0 in MW32: MW32 = 0100 0010 0110 1010 W#16#0001 = 0000 0000 0000 0001 MW32 = 0100 0010 0110 1011
WXOR_W
De "Word Exclusive OR"-instructie combineert bit per bit de twee binaire waarden die bij de ingangen IN1 en IN2 aangegeven zijn, gebaseerd op de exclusieve-ORwaarheidstabel. Het resultaat van WXOR-instructie wordt opgeslagen op het adres OUT. De instructie wordt uitgevoerd, als de ingang van EN = 1. Voorbeeld: Bepalen van signaalwisseling aan de ingang IW0: IW0 = 0100 0100 1100 1010 MW28 = 0110 0010 1011 1001 MW24 = 0010 0110 0111 0011
pagina 5
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
Basisrekenfuncties LAD
Optellen
MW4 MW10
Aftrekken
MW5 MW11
Vermenigvuldigen
MD6 MD12
Delen
MD40 MD4
ADD_I EN ENO IN1 IN2 OUT SUB_I EN ENO IN1 IN2 OUT MUL_R EN ENO IN1 IN2 DIV_R EN ENO IN1 IN2 OUT
FBD
MW4 MW6
MW10
MW5 MW7
MW11
ADD_I EN OUT IN1 IN2 ENO SUB_I EN OUT IN1 IN2 ENO MUL_R EN OUT
MD6 MD66
MD12
MD40 MD32
MD4
IN1 IN2
STL
MW6
MW7
MD66
ENO
DIV_R EN OUT IN1 IN2 ENO
MD32
6
L L +I T
MW4 MW10
L L -I T
MW5 MW11
L L *R T
MD6 MD12
L L /R T
MD40 MD4
MW6
MW7
MD66
MD32
Basis PLC
Algemeen
De instructieset van de S7-300/400 ondersteunt een groot aantal wiskundige functies. Elke instructie heeft het volgende formaat:
EN = enable input ENO = enable output
Als het RLO aan de ingang EN = 1 is, wordt de instructie uitgevoerd. Wanneer het resultaat niet binnen het toelaatbare waardenbereik voor het overeenkomstige datatype ligt, worden de overflow-bits OV (Overflow) en OS (Overflow met geheugen) geset en wordt de enable output ENO = 0. De volgende met ENO verbonden instructies worden dus niet uitgevoerd. De waarde aan IN1 wordt als eerste operand in de instructie ingelezen en de waarde aan IN2 als tweede operand. De uitgang OUT levert het resultaat van de aritmetische instructie.
IN1 = enter value 1, IN2 = enter value 2 OUT = output value Instructies Optelling: Aftrekking: Vermenigvuldiging: Deling:
Nota
ADD_I ADD_DI ADD_R SUB_I SUB_DI SUB_R MUL_I MUL_DI MUL_R DIV_I DIV_DI DIV_R MOD_DI
optelling van gehele getallen optelling van 32 bits gehele getallen optelling van reële getallen aftrekking van gehele getallen aftrekking van 32 bits gehele getallen aftrekking van reële getallen vermenigvuldiging van gehele getallen vermenivuldiging van 32 bits gehele getallen vermenigvuldiging van reële getallen deling van gehele getallen deling van 32 bits gehele getallen deling van reële getallen rest bij deling van 32 bits gehele getallen
De complexere wiskundige instructies (ABS, SQR, SQRT, LN, EXP, SIN, COS, TAN, ASIN, ACOS, ATAN) worden in een programmeercursus voor gevorderden bestudeerd.
pagina 6
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
Schuifinstructies (woord / dubbelwoord) SHL_W EN MW4
IN
MW8 = +2
N
MW12
OUT
Een woord naar links schuiven: 15
14
13
12
11 10
9
8
7
6
5
4
3
2
of:
L MW8 L MW4 SLW T MW12
ENO
1
L MW4 SLW 2 T MW12
Een woord naar rechts schuiven: 0
15
14
13
12
11 10
9
8
7
6
5
4
3
2
1
0
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1
IN
IN ENO = 0
ENO = 1
1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 OUT
OUT
7
Basis PLC
Verschuiving
De instructie wordt uitgevoerd wanneer het RLO aan de enable-ingang 1 is.
SHL_W / SLW
Shift Left Word. De bits 0 tot 15 van de accumulator worden bit per bit met N bits naar links verplaatst. De lege bits rechts worden opgevuld met nullen.
SHR_W / SRW
Shift Right Word. De bits 0 tot 15 van de accumulator worden bit per bit met N bits naar rechts verplaatst. De lege bits links worden opgevuld met nullen.
Accu1-H
De bits 16 tot 31 worden niet verplaatst.
OUT
De uitgang OUT levert het resultaat van de schuifinstructie.
N
Toegelaten aantal bits voor de verschuiving N = 0...15. Als N >= 16, OUT = 0.
ENO
De functie wordt uitgevoerd als EN = 1; ENO geeft de status van de laatst verschoven bit. Bijgevolg worden de andere aan ENO verbonden instructies (instructies in cascade) niet uitgevoerd, wanneer de laatst verschoven bit de status "0" heeft.
SHL_DW / SLD SHR_DW / SRD
De instructies SHL_DW en SHR_DW komen overeen met de instructies SHL_W en SHR_W, met dit verschil, dat de volledige inhoud van de accumulator 1 (bits 0 tot 31) bit per bit, naar links, respectievelijk naar rechts, verschoven wordt.
pagina 7
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
Integers met voorteken naar rechts schuiven SHR_I EN MW4
L L SSI T
ENO
IN
MW8 = +3
MW12
OUT
N
of:
MW8 MW4
L MW4 SSI 3 T MW12
MW12
Een integer van 16 bits met voorteken naar rechts schuiven: 15
14
13
12
11 10
9
8
7
6
5
4
3
2
1
0
15
14
13
12
11 10
9
8
7
6
5
4
3
2
1
0
1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1
0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1
IN
IN
ENO = 0
1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1
ENO = 1
0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1
OUT
OUT
8
Basis PLC
SHR_I / SSI
Shift Right Integer: gehele getallen van 16 bits met voortekenbit worden naar rechts verschoven. Deze instructie verschuift enkel de accumulator 1-L (bits 0...15) naar rechts. De lege bits worden opgevuld met de waarde van de voortekenbit (bit 15). De bits 16 tot 31 worden niet verschoven. De ingang N geeft het aantal te verschuiven bitposities aan. Als N groter is dan 16, wordt de instructie uitgevoerd alsof N gelijk aan 16 was.
EN/ENO
De functie wordt uitgevoerd als EN = 1 is; ENO geeft de status van de laatst verschoven bit (die overeenkomt met de bits A1 en RLO van het statuswoord). Bijgevolg worden de andere aan ENO verbonden instructies (instructies in cascade) niet uitgevoerd, wanneer de laatst verschoven bit de status "0" heeft.
SHR_DI / SSD
Shift Right Double Integer: gehele getallen van 32 bits met voortekenbit worden naar rechts verschoven. Deze instructie verschuift de gehele accumulator (bits 0...31) bit per bit naar rechts. Toegelaten aantal schuifbits N: 0 ... 32.
Nota
De schuifinstructies worden in detail bestudeerd in een programmeercursus voor gevorderden.
pagina 8
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
Roteerinstructies op een woord van 32 bits ROL_DW
MD2
IN
MW6 = +4
N
31
IN:
30
MD12
OUT
29
L MW6 L MD2 RLD T MD12
ENO
EN
28
27 26
25
24
23
22
21
20 19
18
17
16 15
14
13
12
11 10
of:
L MD2 RLD 4 T MD12
9
8
7
6
5
4
3
2
1
0
1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
4 posities naar links roteren:
OUT:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1
9
Basis PLC
ROL_DW / RLD
Rotate Left Double Word: een dubbelwoord wordt naar links geroteerd. Deze instructie roteert de gehele inhoud van de accumulator 1 naar links. De bits die bij de rotatie vrijkomen, worden opgevuld met de status van de verschoven bits van de accumulator 1. De laatst verschoven bit wordt in de statusbit "A1" geladen en aan de uitgang ENO afgeleverd. Bijgevolg worden de andere aan ENO verbonden instructies (instructies in cascade) niet uitgevoerd, wanneer de laatst verschoven bit de status "0" heeft.
ROR_DW / RRD
Rotate Right Double Word: een dubbelwoord wordt naar rechts geroteerd.
Nota
De rotatie-instructies worden in detail bestudeerd in een programmeercursus voor gevorderden.
pagina 9
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
Spronginstructies: overzicht In
de S7-300/400 worden er verschillende spronginstructies (Jump to Label) ondersteund. Onvoorwaardelijke sprong Voorwaardelijke sprong, gebaseerd op het RLO Voorwaardelijke sprong, gebaseerd op de BR of OV/OS Voorwaardelijke sprong, gebaseerd op het resultaat in CC1 en CC0
Sprong
Instructies binnen de sprong worden niet uitgevoerd wanneer de sprong actief is.
Label
10
Basis PLC
De spronginstructie is een programma-instructie die overeenkomt met een ga naar label”. De spronginstructie identificeert een punt in het programma waar het onderbroken wordt en het label markeert het punt waar het programma voortgezet wordt. Een label bestaat uit maximum vier karakters; het eerste karakter moet een letter zijn, de andere karakters kunnen letters of cijfers zijn. Het label moet in dezelfde codebouwsteen staan als de spronginstructie. Er bestaan vier soorten spronginstructies; enkele daarvan worden niet ondersteund in LAD. Onvoorwaardelijke sprong
De onvoorwaardelijke sprong wordt onafhankelijk van enige voorwaarde uitgevoerd; deze sprong heeft geen invloed op de bits van het statuswoord.
Voorwaardelijke sprong
Elk van deze vier voorwaardelijke spronginstructies evalueert de bit “logisch resultaat” (RLO) en wordt dienovereenkomstig uitgevoerd.
Voorwaardelijke sprong
Elk van deze vier voorwaardelijke spronginstructies evalueert de bit “binair resultaat” (BR), of de bits “overflow-waarde” (OV) en “overflow-set” (OS) en wordt dienovereenkomstig uitgevoerd.
Voorwaardelijke sprong
Elk van deze zeven voorwaardelijke spronginstructies evalueert de combinatie CC1 EN CC0 van de voorwaardelijke-codebits CC1 en CC0. De spronginstructies functioneren op basis van de waarden van de bits in het statuswoord. Voor meer informatie over het statuswoord, zie het handboek STEP7 Statement List Reference Manual, Chapter 2 of het handboek STEP7 Program Design Reference Manual, Appendix B.
pagina 10
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
Onvoorwaardelijke spronginstructies De onvoorwaardelijke sprong wordt onafhankelijk van enige voorwaarde uitgevoerd; deze sprong heeft geen invloed op de bits van het statuswoord.
LAD
STL NEW1
Network 1
Network 1
( JMP )
JU NEW1 . . . . . . Network X . NEW1: AN M5.5 AN I4.7 = M69.0 Network 2
Network 2
Network X
LABEL
NEW1
M5.5
I4.7
M69.0
( )
11
Basis PLC
De onvoorwaardelijke spronginstructie onderbreekt het normale verloop van de logische sturing en doet het programma naar een label springen. In LAD wordt het label aangegeven als de benaming boven het spoelsymbool; in STL is het label het adres van de JU-instructie. Het label markeert het punt waar het programma verder wordt uitgevoerd. Instructies of netwerken tussen de sprong en het label worden niet uitgevoerd. LAD-instructie
“label” --( JMP )
STL-instructie
JU “label”
pagina 11
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
JL, Jump to List Voorbeeld:
STL
LSTX: SEG0: SEG1: SEG3: COMM:
L JL JU JU JU JU JU * * JU * * JU * * * * *
MB20 LSTX SEG0 SEG1 COMM SEG3 COMM COMM
Verklaring laad het jumpdoel in sprongverdeler, doel sprong naar SEG0 als sprong naar SEG1 als sprong naar COMM als sprong naar SEG3 als
ACCU1 als MB20>3. MB20=0. MB20=1. MB20=2. MB20=3.
Code in programmazone SEG0 Code in programmazone SEG1
COMM Code in programmazone SEG3
12
Basis PLC
Een bijkomende instructie in STL is de sprong naar een lijst (JL, Jump to List) De JL-instructie is een sprongverdeler. Deze instructie wordt gevolgd door een reeks onvoorwaardelijke sprongen naar labels. De JL springt naar één van de punten van de lijst onvoorwaardelijke-spronglabels, afhankelijk van de waarde die in accumulator 1 is geladen.
pagina 12
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
Voorwaardelijke sprong, gebaseerd op het RLO De
statuswoordbit “resultaat van logische operatie” (RLO) bepaalt wanneer deze sprongen uitgevoerd worden. Twee van de instructies gebruiken ook de bit “binair resultaat” (BR) in combinatie met het RLO om te bepalen wanneer de sprong actief is. LAD
Sprong als RLO = 1
Sprong als RLO = 0
I0.0
I1.0
I0.0
I1.0
STL
Is RLO=1?
NEW1
A I0.0 A I1.0 JC NEW1
REC2
A I0.0 A I1.0 JCN REC2
( JMP )
Is RLO=0?
( JMPN )
13
Basis PLC
Deze voorwaardelijke sprongen worden afhankelijk van de status van het RLO uitgevoerd. Naast de bovenstaande instructies zijn er nog twee andere opties in STL die een combinatie zijn van de RLO-bit en de BR-bit. Deze STL-instructies zijn: z Sprong als RLO = 1 met BR (JCB) z Sprong als RLO = 0 met BR (JNB) Beide instructies werken op dezelfde manier als JC en JCN; de sprong wordt uitgevoerd in functie van het RLO. De spronginstructies JCB en JNB bewaren het RLO ook in de BR-bit van het statuswoord.
pagina 13
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
Lusoperatie Lusteller initialiseren
Instructiegedeelte dat meermaals moet worden uitgevoerd
Decrement lusteller
ja
Lusteller > 0 ?
L +4 NEXT: T MB10 . . . . . L MB10 LOOP NEXT
// laad lusteller // eerste regel van codedeel // code // code // code // code // code // laatste netwerk van codedeel // sprong naar label NEXT
In dit voorbeeld wordt de code tussen NEXT en LOOP NEXT 4 keer uitgevoerd.
neen verder
Basis PLC
14
Met de lusinstructie kan u een codedeel oproepen om meerdere keren uitgevoerd te worden. Om een lusoperatie te programmeren, wordt het gewenste aantal keren dat de code moet worden uitgevoerd, in accumulator 1 geladen. Bij elke uitvoering van de lusinstructie wordt de waarde in de accumulator met 1 verminderd. Dan wordt de waarde getest. Als de waarde niet gelijk is aan 0, wordt er een sprong uitgevoerd naar een label dat door de lusinstructie is aangegeven. Als de waarde van de lusteller 0 is, verlaat het programma de lus en vervolgt het zijn normale verloop. Opties voor het formaat van lusteller zijn: z Integer +1 to +32,767 bereik z Woord W#16#0001 bereik to W#16#FFFF Nota:
I,Q,M,D,L I,Q,M,D,L
Initialiseer de lusteller niet met een 0 of met een negatieve waarde.
pagina 14
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC
Gebruik van de EN/ENO-parameter ENO = Enable Output
EN = Enable Input
EN Indien actief (1), uitvoering van de box-instructie.
( )
ENO
Indien actief (1), werd de instructie foutloos uitgevoerd.
Indien niet actief (0), geen uitvoering van de instructie.
LAD box-instructies (FC, FB, Move, Add, etc.)
Indien niet actief (0), werd de instructie niet opgeroepen, of trad er een fout op bij de uitvoering
Voorbeeld: bouwsteenoproep in LAD en STL
Voorwaardelijke oproep
I0.1
FC 1 EN ENO
Q9.0 = _001:
15
A JNB CALL A =
I _001 FC BR Q
0.1 1 9.0
Basis PLC
Standaard FC
De volgende regels zijn van toepassing voor de bewerking van de standaard FC's: z Als EN = 1, wordt de bouwsteen bewerkt en, in geval van uitvoering zonder fout, is ENO ook gelijk aan 1. z Als EN = 0, wordt de bouwsteen niet bewerkt en is ENO ook gelijk aan 0. Als er bij de bewerking van de bouwsteen een fout optreedt, wordt ENO gelijk aan 0.
Gebruikers-FC
Of een gebruikersbouwsteen nu in LAD, in FBD of in STL geprogrammeerd werd, de parameters EN en ENO worden extra ingevoegd bij de oproep van deze bouwsteen in LAD/FBD. We kunnen dan het RLO transfereren. EN/ENO zijn niet voorzien in STL. Ze kunnen wel door de gebruiker worden gesimuleerd. Wat ook de gekozen voorstellingswijze is, de gebruiker moet altijd een foutenanalyse programmeren.
Vernesting
In LAD/FBD kunnen we verschillende blokjes achter elkaar schikken en ze logisch combineren via EN/ENO.
pagina 15
Hoofdstuk 6 : Conversies, vergelijkingen, ...
Basis PLC