Simatic S7 Instruction set

download Simatic S7 Instruction set

of 31

Transcript of Simatic S7 Instruction set

  • 8/10/2019 Simatic S7 Instruction set

    1/31

  • 8/10/2019 Simatic S7 Instruction set

    2/31

    S7 Instructieset

  • 8/10/2019 Simatic S7 Instruction set

    3/31

    S7 instuctieset Pagina - 1 /29 -

    KHLim dep IWT BN -

    5. Instructieset S7

    5.1. Bit instructies

    Bit instructies werken met twee binaire waarden, 1 en 0. Het kan een ingang, een uitgang of een andercontact zijn waarbij 1 aangeeft dat de ingang of het contact geactiveerd is of dat de uitgang aangestuurd is. 0

    geeft aan dat de ingang of het contact niet geactiveerd is of de uitgang niet aangestuurd is.

    Het resultaat van de bewerking noemt men Result of Logic Operation of RLO

    De elementen kunnen zichtbaar gemaakt worden in STL wat staat voor Statement List, in LAD wat staat

    voor Ladder logic en in FBD wat staat voor Function Block Diagram

    Overzicht van alle bit elementen :

    5.1.1. Afvragen van 1 signaal

    Dit element is 1 als er spanning is aan de ingang 0.3

    5.1.2. Afvragen van 0 signaal

    Dit element is 1 als er geen spanning is aan de ingang 0.4

    5.1.3. De aanstuurfunctie

    Dit element zal spanning op de uitgang 5.0 brengen als de RLO gelijk is aan 1

    5.1.4. De AND instructie

    De uitgang zal 1 worden als er spanning is aan ingang 0.1 en0.2 en0.3 enals er geen spanning is aan ingang

    0.4

    LAD

  • 8/10/2019 Simatic S7 Instruction set

    4/31

    S7 instuctieset Pagina - 2 /29 -

    KHLim dep IWT BN -

    STL

    FBD

    5.1.5. De OR - instructie

    De uitgang zal 1 worden als er spanning is aan ingang 0.1 of0.2 of0.3 ofals er geen spanning is aan ingang 0.4

    LAD

    STL

    FBD

  • 8/10/2019 Simatic S7 Instruction set

    5/31

    S7 instuctieset Pagina - 3 /29 -

    KHLim dep IWT BN -

    5.1.6. De XOR instructie

    De uitgang zal 1 worden als n van beide ingangen 1 is

    LAD

    STL

    FBD

    5.1.7. De SET instructie

    De set instructie wordt alleen uitgevoerd wanneer de RLO = 1 . Wanneer de RLO =0 zal de status blijven

    zoals hij was

    In onderstaand voorbeeld zal Merker 0.0 geset worden als de signaalstatus van I0.0 1 is.

    LAD

    STL

    FBD

    5.1.8. De RESET instructie

    De reset instructie wordt alleen uitgevoerd wanneer de RLO =1 . Wanneer de RLO =0 zal de status blijven

    zoals hij was

    In onderstaand voorbeeld zal Merker 0.0 gereset worden als de signaalstatus van I0.1 1 is.

    LAD

  • 8/10/2019 Simatic S7 Instruction set

    6/31

    S7 instuctieset Pagina - 4 /29 -

    KHLim dep IWT BN -

    STL

    FBD

    5.1.9. De SET/RESET instructie ( reset dominant )

    Als de beide voorwaarden set en reset 1 zijn, zal de instructie die als laatste bewerkt wordt prioriteit hebben

    boven de andere.

    In onderstaand voorbeeld zal merker 0.0 geset worden als de signaalstatus van ingang 0.0 1 is. De merker zal

    gereset worden als de signaalstatus van ingang 0.1 1 is. Als de twee ingangen samen een signaalstatus 1

    hebben zal de merker gereset worden omdat de reset als laatste geprogrammeerd staat.

    LAD

    STL

    FBD

    5.1.10. De RESET/SET instructie ( set dominant )

    Als de beide voorwaarden set en reset 1 zijn, zal de instructie die als laatste bewerkt wordt prioriteit hebben

    boven de andere.

    In onderstaand voorbeeld zal merker 0.0 geset worden als de signaalstatus van ingang 0.0 1 is. De merker zal

    gereset worden als de signaalstatus van ingang 0.1 1 is. Als de twee ingangen samen een signaalstatus 1

    hebben zal de merker geset worden omdat de set als laatste geprogrammeerd staat.

    LAD

  • 8/10/2019 Simatic S7 Instruction set

    7/31

  • 8/10/2019 Simatic S7 Instruction set

    8/31

    S7 instuctieset Pagina - 6 /29 -

    KHLim dep IWT BN -

    5.1.12. De INVERT - instructie

    De Invert instructie zal de toestand van de RLO gaan inverteren.

    In ons voorbeeld zal de toestand van M0.0 AND I1.0 omgekeerd worden. De uitgang 5.1 zal dus 1 worden als

    de toestand van de serieschakeling van merker en ingang 0 is.

    LAD

    STL

    FBD

    5.1.13. De SAVE instructie

    Met de SAVE - geheugeninstructie wordt de inhoud van het RLO opgeslagen in de binaire - resultaatbit van het

    statuswoord. De statusbit kan weer opgevraagd worden met instructie A BR

    LAD

    STL

    FBD

    5.1.14. De CLR / SET instructie

    De CLR instructie zorgt ervoor dat het RLO op 0 wordt gezet.De SET instructie zorgt ervoor dat het RLO op 1 wordt gezet.

    Deze instructies hebben geen voorstelling in LAD en FBD

  • 8/10/2019 Simatic S7 Instruction set

    9/31

    S7 instuctieset Pagina - 7 /29 -

    KHLim dep IWT BN -

    5.1.15. De positieve flankdetectie

    Een flankdetectie- functie is nodig wanneer er van een programma- onderdeel afgevraagd wordt, of het voor de

    eerste keer is in- of uitgeschakeld.

    Als ingang I1.0 voor de eerste keer van 0 naar 1 verandert zal de positieve flankdetectie dit detecteren en de

    RLO op 1 brengen voor n PLC cyclus tijd. Een puls van n cyclustijd verschijnt aan de uitgang Q8.0. Voor

    de functie van een positieve flank wordt er een flankmerker gespecificeerd waarin de status van het RLO

    opgeslagen wordt. Dit is om een aanvullende signaalwissel in de volgende cyclus te identificeren.

    LAD

    STL

    FBD

    5.1.16. De negatieve flankdetectie

    Bij een negatieve flankdetectie zal de RLO op 1 gebracht worden als de status van ingang 0.0 van 1 naar 0

    verandert. Een puls van n cyclustijd zal er verschijnen op uitgang 5.0. In de flankmerker 0.0 wordt de status

    van de RLO opgeslagen om in de volgende cyclus gebruikt te kunnen worden.

    LAD

    STL

    FBD

    LET OP: in werkelijkheid benvloed de flankdetectie het huidige RLO. Indien niet n maar meerdere inputs

    afgevraagd worden, wordt het resultaat van de gehele verknoping afgevraagd op de positieve of negatieve flank.

  • 8/10/2019 Simatic S7 Instruction set

    10/31

    S7 instuctieset Pagina - 8 /29 -

    KHLim dep IWT BN -

    5.1.17. Positieve adres flankdetectie

    Positieve adres flankdetectie vergelijkt de toestand van ingang 1.0 met de toestand (van die ingang) van de vorige

    scan die opgeslagen is in merker 1.0. Als de toestand van de RLO van 0 naar 1 veranderde, zal de toestand

    van de RLO 1 zijn na deze instructie.

    LAD

    STL

    FBD

    5.1.18. Negatieve adres flankdetectie

    Negatieve adres flankdetectie vergelijkt de toestand van ingang 0.0 met de toestand (van die ingang) van de vorige

    scan die opgeslagen is in merker 0.0. Als de toestand van de RLO van 1 naar 0 veranderde, zal de toestand

    van de RLO 1 zijn na deze instructie.

    LAD

    STL

    FBD

  • 8/10/2019 Simatic S7 Instruction set

    11/31

    S7 instuctieset Pagina - 9 /29 -

    KHLim dep IWT BN -

    5.2. TimersEen speciaal gedeelte van het geheugen van de CPU is gereserveerd voor timers. In dit geheugengedeelte is er

    voor iedere timer een 16-bit woord gereserveerd. Het aantal beschikbare timers is afhankelijk van de CPU. De

    tijdwaarde kan liggen tussen 10 ms en 9990 s ( 2 uur 46 minuten en 30 seconden).

    De tijdwaarde zal gestart worden bij een positieve flank aan de set- ingang van de timer. Bij een positieve flank

    aan de reset ingang zal de timer stoppen en de uitgang laag worden. De toestand van de timer kan worden

    opgevraagd aan uitgang Q. Deze is 1 of 0. De actuele timerwaarde kan binair (L) opgevraagd worden aan

    uitgang BI en in BCD code (LC) aan uitgang BCD. Deze waarden dienen in een 16-bit woord worden

    opgeslagen.

    We hebben keuze uit volgende timers:

    5.2.1. Timer met inschakelvertraging S_ODT

  • 8/10/2019 Simatic S7 Instruction set

    12/31

    S7 instuctieset Pagina - 10 /29 -

    KHLim dep IWT BN -

    5.2.2. Timer met inschakelvertraging met geheugen S_ODTS

    5.2.3. Timer met uitschakelvertraging S_OFFDT

  • 8/10/2019 Simatic S7 Instruction set

    13/31

    S7 instuctieset Pagina - 11 /29 -

    KHLim dep IWT BN -

    5.2.4. Pulse S5 timer S_PULSE

    5.2.5. Extended pulse timer S_PEXT

  • 8/10/2019 Simatic S7 Instruction set

    14/31

    S7 instuctieset Pagina - 12 /29 -

    KHLim dep IWT BN -

    5.2.6. Tijd - notatie

    De in te stellen tijd van de timers is van het data type S5TIME (16 bits)

    Mogelijke eenheden: h(uren), m(minuten), s(seconden), ms(milliseconden)

    Het in te geven formaat is:

    s5t#_xh_ym_zs_xxms

    De grenzen en de resolutie van de S5TIME notatie:

    Grenzen Resolutie

    10 ms tot 9 s 990 ms 0.01 seconden

    100 ms tot 1 m 39 s 900 ms 0.1 seconden

    1 s tot 16 m 39 s 1 seconden

    10 s tot 2 h 46 m 30 s 10 seconden

    Waarden groter dan 2h46m30s worden niet aanvaard.

    Voorbeelden:

    S5TIME#4S 4 seconden

    s5t#2h_15m 2 uur en 15 minuten

    S5T#1H_12M_20S 1 uur, 12 minuten en 20 seconden

    Een waarden waarvan de resolutie te hoog is voor de bepaalde grenzen worden naar beneden afgerond tot een

    aanvaardbare resolutie.

    Voorbeeld: 2h10ms ligt in de grens 10 s tot 2 h 46 m 30 s met een resolutie van 10 seconden. Deze waarden

    zal afgerond worden tot 2h en 0s

  • 8/10/2019 Simatic S7 Instruction set

    15/31

    S7 instuctieset Pagina - 13 /29 -

    KHLim dep IWT BN -

    5.3. TellersEen speciaal gedeelte van het geheugen van de CPU is gereserveerd voor het bijhouden van de tellerstand. In dit

    geheugengedeelte is er voor iedere teller een 16 bit woord gereserveerd. Het aantal tellers is afhankelijk van de

    CPU. De tellerwaarde kan liggen tussen 0 en 999.

    De preset waarde, die ingesteld is aan de PV ingang wordt bij een positieve flank op ingang S ingelezen in de

    teller. Bij een positieve flank op de ingang CU zal de tellerinhoud met 1 vermeerderd worden. Bij een positieve

    flank op de ingang CD zal de tellerinhoud met 1 verminderd worden. Als we een positieve flank aanleggen op

    de reset R ingang zal de tellerinhoud op nul gezet worden. De actuele tellerinhoud kan men binair lezen op

    uitgang CV en in BCD code op de uitgang CV_BCD. De uitgang Q van de teller is 1 als de tellerinhoud

    groter is dan nul, en is 0 als de tellerinhoud gelijk is aan nul.

    We hebben keuze uit volgende tellers :

    5.3.1. De up en down counter S_CUD

  • 8/10/2019 Simatic S7 Instruction set

    16/31

    S7 instuctieset Pagina - 14 /29 -

    KHLim dep IWT BN -

    5.3.2. De up counter S_CU

    5.3.3. De down counter S_CD

  • 8/10/2019 Simatic S7 Instruction set

    17/31

    S7 instuctieset Pagina - 15 /29 -

    KHLim dep IWT BN -

    5.3.4. Teller - notatie

    De tellerwaarde wordt opgeslagen in een 16 bit woord. De enige mogelijkheid om dit woord te lezen zijn de

    teller- instructies.

    De teller waarde in binaire code is opgeslagen in de bits 0 tot en met 9. De tellerwaarde wordt in de teller

    ingelezen als deze een positieve flank detecteert op de set ingang. De tellerwaarde moet liggen tussen 0 en 999.

    De tellerwaarde kan verhoogd (CU) en verlaagd (CD) worden binnen deze grenzen.

    De notatie van de setwaarde om de teller met een bepaalde waarde in te stellen is C#127. De c# staat voor

    BCD formaat. Per 4 bits wordt een decade van de teller ingesteld. De bits 0 tot en met 11 vormen zo de BCD

    tellerwaarde.

    Onderstaande figuur toont

    de inhoud van de teller nadat men de BCD waarde c#127 heeft geladen,

    de tellerwaarde in binaire vorm nadat de teller is geset.

  • 8/10/2019 Simatic S7 Instruction set

    18/31

    S7 instuctieset Pagina - 16 /29 -

    KHLim dep IWT BN -

    5.4. Laden en Transfereren (Move)

    De instructie MOVE kan een waarde of een variabele kopiren naar een andere variabele. Als de EN ingang

    actief is, zal de waarde / variabele die op de IN ingang ingevuld is, naar de OUT uitgang gekopieerd worden.

    ENO heeft hetzelfde signaal als EN, als de instructie geldig is.

    Deze instructie is zeer goed te gebruiken om van een bepaald dataformaat naar een ander dataformaat te

    transfereren. ( bijvoorbeeld van byte naar woord )

    De instructies LADEN en TRASFEREREN maken het in STL mogelijk om waarden en variabelen te kopiren

    naar andere waarden en variabelen. De instructie laden en transfereren zijn niet afhankelijk van het RLO. De data

    worden uitgewisseld via de accumulator. De laad instructie ( L ) laadt de waarde in de accumulator 1, en de

    transfereer instructie ( T ) kopieert de inhoud van accumulator 1 naar de gewenste bestemming. Wanneer er iets

    geladen in de accumulator wordt, zal de oude waarde van ACCU 1 naar ACCU 2 geschoven worden.

  • 8/10/2019 Simatic S7 Instruction set

    19/31

    S7 instuctieset Pagina - 17 /29 -

    KHLim dep IWT BN -

    Bovenstaand LAD in STL gezet geeft ons:

    A I 0.7

    JNB _001 jump naar label _001 als I 0.7 0 is

    L MW 0 Laad de inhoud van merker woord 0 in ACCU 1

    T QW 18 Kopieert de inhoud van ACCU 1 naar uitgangswoord 18

    SET RLO op 1 zettenSAVE RLO in BR flag opslaan

    CLR ROL op 0 zetten

    _001: A BR toestand van BR flag oproepen

    = Q 8.0

    De S7 300 heeft twee 32 bits accumulatoren, en de S7 400 heeft vier 32 bit accumulatoren.

    Enkele voorbeelden van laad instructies:

    L IB10 Laad ingangsbyte IB10 in ACCU 1.

    L MB120 Laad merkerbyte MB120 in ACCU 1.

    L DBB12 Laad databyte DBB12 in ACCU 1.

    L DIW15 Laad instant datawoord DIW15 in ACCU 1.

    We kunnen ook een getal inladen :

    L +5 laad een 16 bit constante

    L L#123456 laad een 32 bit constante

    L B#16#EF laad een byte in hexadecimaal formaat

    L 2#0001_0101_1010_1111 laad een 16 bit binaire waarde

  • 8/10/2019 Simatic S7 Instruction set

    20/31

    S7 instuctieset Pagina - 18 /29 -

    KHLim dep IWT BN -

    5.5. Sprong instructie (Logic control)

    5.5.1. De onvoorwaardelijke sprong

    De onvoorwaardelijke sprong onderbreekt het programma en springt naar een label in het programma. Dit label is

    gemarkeerd in LAD en FBD met een bloksymbool.

    In STL geeft dit :

  • 8/10/2019 Simatic S7 Instruction set

    21/31

    S7 instuctieset Pagina - 19 /29 -

    KHLim dep IWT BN -

    5.5.2. Voorwaardelijke sprong

    De RLO ( Result of Logic Operation ) bit bepaalt wanneer de sprong uitgevoerd wordt.

    JC: Sprong naar label als de RLO bit 1 is.

    JCN: Sprong naar label als de RLO bit 0 is.

    Let OP:

    Als een voorwaardelijke sprong niet uitgevoerd wordt, zal het programma na de spronginstructie de RLO- bit op

    1 zetten.

  • 8/10/2019 Simatic S7 Instruction set

    22/31

    S7 instuctieset Pagina - 20 /29 -

    KHLim dep IWT BN -

    5.6. Programma controle

    5.6.1. De master control realay

    De Master Control Relay is een logische masterschakelaar voor het vrijgeven van een deel van een schakeling. Een gebied dat

    met de master control relay gedeactiveerd is, zal de sturingen in dit gebied met "O" aansturen, in plaats van met het door hetprogramma berekende resultaat. Wanneer de master control relay ingeschakeld wordt, zullen de aansturingen verder via het

    programma plaatsvinden.

    Instructies met een uitgang zullen binnen het MCR-gebied met 0 overschreven worden, als de MCR gelijk is aan 0

    (gedeactiveerd). De "set"- en "reset"-instructies veranderen niet van waarde. De waarde nul wordt gestuurd naar transfer-instructies.

    MCRA

    De instructie MCRActivate activeert de functie "master control relay". De instructies MCR< (master control relay

    on) en MCR> (master control relay off) moeten op de instructie MCRA volgen.

    MCR