9 Tijdsfuncties 9.1 Voorstelling tijden Een 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 van de S7-300/400 (bijvoorbeeld: S7-314 heeft 256 timers). De tijdwaarde kan liggen tussen 10 ms en 9990 s (2 uren, 46 minuten en 30 seconden). De S7-300/400 CPU heeft 3 verschillende timers: Inschakelvertraging (2 typen) Uitschakelvertraging Impulstimer (2 typen) Voor het maken van tijdsfuncties hebben we dus 5 verschillende timers ter beschikking S_ODT : On Delay Timer, SD S_ODTS : On delay Timer Saved, SS S_OFFDT : S_OFFDT = Off Delay Timer, SF S_PULSE : Pulse SP S_PEXT : Pulse Extended, SE De gebruiker van deze tijdfuncties dient de interne opbouw hiervan niet te kennen. Het is voldoende te weten dat een interne taktgenerator tellerpulsen aan een aftelfunctie aflevert met een vast frequentie. Om een tijdfunctie te gebruiken moeten we enkel deze teller met een bepaalde waarde voorinstellen of laden. Wanneer de interne tellerpulsen de tellerstand naar nul heeft verminderd, is de tijd afgelopen. De tijdsduur wordt bepaald uit het product van de tijdsfactor en tijdsbasis. De tijdbasis bepaalt de nauwkeurigheid van de ingestelde tijd. De tijdsfactor en tijdsbasis vormen samen 1 woord. De opbouw van het woord wordt voorgesteld in onderstaande figuur. 15 14 13 12 11 10 8 7 4 3 0 Tijdsbasis 10 2 10 1 10 0 0 0 0 0 0,01s 0 0 0 1 0,1s 0 0 1 0 1s 0 0 1 1 10s Tijdsfactor in 1 tot 999 Dit heeft tot gevolg dat kleine tijden tot op 0,01s nauwkeurig kunnen worden ingesteld, grote tijden kunnen echter niet met deze kleine resolutie worden ingesteld (per 10s). De maximale waarde is 2h 46 m 30 s. Enkele voorbeelden om dit duidelijk te maken: KHLim dep IWT Mea 41/141
Tijd Tijdsbasis Tijdsfactor 500ms 50 x 0,01s 0,01 50 25,5s 255 x 0,1s 0,1 255 5min 42,5s = 342,5s 342 x 1s 1 342 1h 40min 25s = 6025s 602x 10s 10 602 We kunnen dus geen 342,5 s instellen, wel 342s of 343s geen 6025s maar wel 6020s of 6030s We kunnen de tijden ingeven in het formaat hierboven beschreven. We kunnen echter de omzetting naar dit formaat ook automatisch laten gebeuren. De tijdsbasis wordt daarbij automatisch gekozen en indien nodig wordt de waarde naar beneden afgerond. We dienen dan de tijden in te geven in het volgende formaat: S5T#wh xm ys z ms Met: wh het aantal uren xm het aantal minuten ys het aantal seconden zms het aantal milliseconden In de cataloog van STEP 7 kunnen we de tijdsfuncties oproepen als volgt: Bit - instructies Iedere timer heeft een aantal parameters. Hieronder een overzicht Parameter Datatype Beschrijving T no - Nummer van de timer S Bool Start ingang TV S5 Time Presetwaarde Bool eset ingang Woord Actuele waarde integer Woord Actuele waarde Q Bool status KHLim dep IWT Mea 42/141
9.2 inschakelvertraging Er zijn 2 inschakelvertragingen: S_ODT S_ODTS (SD in STL) inschakelvertraging zonder geheugen (SS in STL) inschakelvertraging met geheugen Inschakelvertraging zonder geheugen Inschakelvertraging met geheugen T no. Nummer van de timer: T0 T127 T no. Nummer van de timer: T0 T127 S Set : Start het aflopen van de timer bij een stijgende flank op S. Als S laag wordt stopt de tijdstelling. S Set: Start het aflopen van de timer bij een stijgende flank op S. Als S laag wordt stopt de tijdstelling niet. Dit kan enkel door de ingang te hoog te maken. Bij een nieuwe stijgende flank op S vóór het aflopen van de timer, start de tijdstelling opnieuw. TV Timer Value: tijdsduur wordt aangegeven in het formaat S5T# TV Timer Value: tijdsduur wordt aangegeven in het formaat S5T# eset : Stopt de tijdstelling eset : Stopt de tijdstelling Q Output: Deze wordt hoog als de ingestelde tijd is afgelopen en wordt laag als de S ingang laag wordt of als de ingang hoog wordt. Q Output: Deze wordt hoog als de ingestelde tijd is afgelopen en wordt enkel laag als de ingang hoog wordt. van de timer uitgeeft in integer formaat. van de timer uitgeeft in formaat van de timer uitgeeft in integer formaat van de timer uitgeeft in formaat KHLim dep IWT Mea 43/141
Programmavoorbeeld I0.7 S5T#35s I0.5 LAD T4 S_ODT S Q TV Q8.5 MW0 MW2 I0.7 S5T#35s I0.5 FBD S_ODT S TV T4 Q MW0 MW2 Q8.5 = STL Voorbeeld met - vertraging S_ODT I1.3 S5T#1M45s I1.4 T6 S_ODTS S Q TV Q8.7 MW10 MW12 II1.3 S5T#1M45s I1.4 S_ODTS S TV T6 MW10 MW12 Q8.7 Q = A I0.7 L S5T#35S SD T4 A I0.5 T4 L T4 T MW0 LC T4 T MW2 A T4 = Q8.5 Timing diagram S_ODT of SD LO op S LO op Timer loopt Status van de uitgang Q S_ODTS of SS LO op S LO op Timer loopt Status van de uitgang Q KHLim dep IWT Mea 44/141
9.3 pulstimer Er zijn 2 pulstimers: S_PULSE S_PEXT (SP in STL) pulstimer zonder geheugen (SE in STL) pulstimer met geheugen Pulstimer zonder geheugen Pulstimer met geheugen T no. Nummer van de timer: T0 T127 T no. Nummer van de timer: T0 T127 S Set : Start het aflopen van de timer bij een stijgende flank op S. Als S laag wordt stopt de tijdstelling. S Set: Start het aflopen van de timer bij een stijgende flank op S. Als S laag wordt stopt de tijdstelling niet. Dit kan enkel door de ingang te hoog te maken. Bij een nieuwe stijgende flank op S vóór het aflopen van de timer, start de tijdstelling opnieuw. TV Timer Value: tijdsduur wordt aangegeven in het formaat S5T# TV Timer Value: tijdsduur wordt aangegeven in het formaat S5T# eset : Stopt de tijdstelling eset : Stopt de tijdstelling Q Output: Deze wordt hoog bij stijgende flank van de S ingang en wordt laag als de tijd is afgelopen, als de S ingang laag wordt of als de ingang hoog wordt. Q Output: Deze wordt hoog bij stijgende flank van de S ingang en wordt laag als de tijd is afgelopen of als de ingang hoog wordt. Het laag worden van de S ingang heeft geen resetten van de uitgang tot van de timer uitgeeft in integer formaat. van de timer uitgeeft in formaat gevolg van de timer uitgeeft in integer formaat van de timer uitgeeft in formaat KHLim dep IWT Mea 45/141
Programmavoorbeeld LAD FBD STL I0.0 S5T#45s I0.1 I0.2 S5T#1M25s I0.3 T2 S_PULSE S Q TV T9 S_PEXT S Q TV Q9.0 MW5 MW7 Q9.1 MW9 MW11 I0.0 S5T#45s I0.1 I0.2 S5T#1M25s I0.3 T2 S_PULSE S TV Q T9 S_PEXT S TV Q MW5 MW7 MW9 MW11 Q9.0 = Q9.1 = S_PULSE A I0.0 L S5T#45s SP T2 A I0.0 T2 L T2 T MW5 LC T2 T MW7 A T2 = Q9.0 Timing diagram S_PULSE of SP LO op S LO op Timer loopt Status van de uitgang Q S_PEXT of SE LO op S LO op Timer loopt Status van de uitgang Q KHLim dep IWT Mea 46/141
9.4 uitschakelvertraging Er is 1uitschakelvertraging: S_OFFDT (SF in STL) uitschakelvertraging Uitschakelvertraging T no. S TV Q Nummer van de timer: T0 T127 Set : Start het aflopen van de timer bij een dalende flank op S. Als S hoog wordt stopt de tijdstelling. Als S hoog wordt vóór de tijd is verstreken blijft Q hoog en start de tijd opnieuw bij een dalende flank. Timer Value: tijdsduur wordt aangegeven in het formaat S5T# eset : Stopt de tijdstelling Output: Deze wordt hoog als de S ingang hoog wordt en wordt laag als de ingestelde tijd is afgelopen dus de ingestelde tijd nadat S laag is geworden. Q wordt ook laag bij het hoog maken van de ingang. van de timer uitgeeft in integer formaat. van de timer uitgeeft in formaat KHLim dep IWT Mea 47/141
Programmavoorbeeld I1.7 S5T#55s I1.5 LAD T5 S_OFFDT S Q TV Q8.6 MW4 MW6 I1.7 S5T#55s I1.5 FBD T5 S_OFFDT S TV Q MW4 MW6 Q8.6 = STL A I0.7 L S5T#35S SF T4 A I0.5 T4 A T4 = Q8.5 Timing diagram S_OFFDT of SF LO op S LO op Timer loopt Status van de uitgang Q KHLim dep IWT Mea 48/141
Inleiding in de PLC 9.5 Overzicht timing diagramma s KHLim dep IWT Mea 49/141
9.6 Omzetten van LAD of FBD naar STL FBD : Als we deze instructies door STEP7 laten omzetten naar STL door in het menu VIEW te kiezen voor STL, dan krijgen we: STL : Opmerking: De instructies NOP 0 worden toegevoegd door STEP7 bij de omzetting van LAD en FBD naar STL wanneer de en uitgang niet gebruikt worden. Indien we het programma zelf invoeren in STL en nadien wensen om te zetten naar LAD of FBD dienen we zelf deze instructie (NOP 0) toe te voegen, zoniet zal de omzetting naar LAD/FBD niet kunnen. KHLim dep IWT Mea 50/141
9.7 Voorbeeld met PEXT timer in LAD,FBD en STL LAD : FBD : STL : KHLim dep IWT Mea 51/141
9.8 Bitinstructies We kunnen de timers ook programmeren met bitinstructies indien enkel de S en TV ingang van de timer wordt gebruikt. LAD I0.0 T5 ( SD ) S5T#25s I0.1 T9 ( SF ) S5T#15S200MS I0.2 T8 ( SS ) S5T#2S10MS I0.3 T2 ( SP ) S5T#10M50S I0.4 T15 ( SE ) S5T#2H5M FBD T5 I0.0 & SD S55T#25S TV T9 I0.1 & SF S55T#15S200MS TV T8 I0.2 & SS S55T#2S10MS TV T2 I0.3 & SP S55T#10M50S TV T15 I0.4 & SE S55T#2H25M TV STL SD A I0.0 L S5T#25S SD T5 SF AN I0.1 L S5T#15S200MS SF T9 SS A I0.2 L S5T#2S10MS SS T8 SP A I0.3 L S5T#10M50S SP T2 SE A I0.4 L S5T#2H25M SE T15 9.9 Voorbeelden 1. Twee transportbanden dienen gestart te worden. Om de aanloopstroom te beperken starten de banden na elkaar met een tussentijd van 10s. Zorg er ook voor dat er geen nieuw startsignaal wordt gegeven indien de startknop blijft kleven. 2. Maak vorige opgave zo dat bij het stoppen eerst band 1 stopt en 5 s nadien band 2. KHLim dep IWT Mea 52/141