# Blinker



## Schulle1972 (12 Oktober 2004)

Abend, kann mir einer erklären wie ich einen Ausgang blinken lassen kann mit einem bestimmten Takt z.B. 0,5s bei der S7


----------



## Taddy (12 Oktober 2004)

Hallo
Unter Hardware CPU kannst du Taktmerkerbyte definieren. Dann hast du 8 Blinker. Oder so:

      UN    T      2
      L     S5T#500MS
      SE    T      1
      U      T      1
      L     S5T#500MS
      SV    T      2
      U      T      2
      =     A  0.0
javascript:emoticon('')


----------



## Markus (12 Oktober 2004)

wenn du uns sagst mit welcher sps...
es gibt viele möglichkeiten...

ich kauf mir echt bald so ne kugel...


----------



## Zottel (13 Oktober 2004)

Markus schrieb:
			
		

> wenn du uns sagst mit welcher sps...
> es gibt viele möglichkeiten...


Schulle hat doch S7 erwähnt.
Oder meinst du Taddy? Gibts auf der S7 noch SV? Ich hätte noch ein SE genommen. Erstens war es mir immer zu schwer, mir die ganzen SX und ihre Impulsdiagramme zu merken, zweitens geht alles auch mit SE und einem Hilfsmerker, drittens konnte noch jede SPS, die ich gesehen habe, so was wie SE. Insofern wäre es dann wieder egal.


----------



## Taddy (13 Oktober 2004)

Jede SPS der S7 Familie hat identische Zeiten wie S5 (d.h. SE,SV,SA,SI).
Hast du natürlich Recht. Man kann alles mit zwei SE Zeiten bauen, oder auch mit Zählern. Es gibt viele Möglichkeiten. Die beste und einfachste Methode ist ...CPU soll die Blinker selber produzieren. Also: Hardware -> auf CPU  klicken -> Zyklus/Taktmerker wählen -> unten Taktmerker markieren und ein MB eintragen z.B. MB 2. Hardware in die SPS übertragen mach hat 8 Blinker. Oder so: M3.0 = schnell ….M 3.7 = ganz langsam (Beispiel unten)
      UN    T      1
      L     S5T#100MS
      SE    T      1
      SPB   M011
      L     MB     3
      INC   1
      T     MB     3
M011: NOP   0


----------



## Heinz (13 Oktober 2004)

Hallo,
ein ganz anderer Weg ist die Verwendung von Zeitinterrupt-OB's.

z.B. 
OB 35 (S7)

L MW 6
L 1
+I
T MW 6


Bei dieser Lösung stehen 16 Taktmerker zur Verfügung.


----------



## Markus (13 Oktober 2004)

oh sorry, asche über mein haupt...
(aber er hätte es auch größer schreiben können  )

naja bei einer s7 ist die sauberste lösung das oben beschriebene taktmerkerbyte. in der hw konfigurieren, standart ist bei vielen das MB100.


----------



## Heinz (13 Oktober 2004)

Den Code habe ich für eine S7 geschreiben. Der saubereste Weg ist das Taktmerkerbyte.


----------



## Schulle1972 (13 Oktober 2004)

Schulle1972 schrieb:
			
		

> Abend, kann mir einer erklären wie ich einen Ausgang blinken lassen kann mit einem bestimmten Takt z.B. 0,5s bei der S7


----------



## Schulle1972 (13 Oktober 2004)

Schulle1972 schrieb:
			
		

> Abend, kann mir einer erklären wie ich einen Ausgang blinken lassen kann mit einem bestimmten Takt z.B. 0,5s bei der S7



Abend und erstmal danke. Leider half mir das nicht richtig weiter. Bin Meisterschüler und zur Ausbildung gehört auch S7. Leider wurde uns der Blinker nicht erklärt.
Ich wusste das ich Taktmerker 100 setzen muss. Könnt Ihr vielleicht das ganze als Anweisung für FUP machen. Bin darauf getrimmt. Danke supi


----------



## Zottel (13 Oktober 2004)

Ich könnte jetzt sagen: richtige Programme schreibt man in AWL. Das ist natürlich genauso Quatsch, als wenn ich sage, richtige Programme schreibt man in Assembler oder Fortran...

Aber ich finde gerade noch einen Grund warum ich FUP nicht mag: Selbst wenn ich die Funktionsblöcke 100% im Kopf hätte, kann ich sie nicht mit der Tastatur eintippen, um sie zu posten. Ich müsste sie aufmalen und scannen (mit der Gefahr, daß du sie nicht erkennst, weil ich irgendeinen Eingang anders benenne oder die Reihenfolge vertausche) oder ich muß einen anderen Rechner anschmeißen, Step7 laden, das FUP eintippen, Bildschirm kopieren, Netzwerkkabel rein, auf diese Kiste laden und posten.

Irgendwie ist FUP genauso umständlich wie chinesische Schrift:
Mit 22 lateinischen Buchstaben kannst du die meisten Sprachen der Welt schreiben. Mit 20 verschiedenen AWL-Anweisungen kannst du alles programmieren. Mit FUP hast du für alles ein eigenes Symbol (und jeder Hersteller hat seine) und brauchst ein spezielles Programm zur Eingabe.


----------



## Taddy (13 Oktober 2004)

*Taktender Blinker oder blinkender Takt*

Wenn man einen Takter in Zeit-OB schreibt und nutzt man ihn als Blinker für Störungsausgänge (z.B. Leds ) muss man damit rechnen, dass die Leds-Ausgänge (unter Umständen) nicht gleichzeitig blinken. Das kann man dann beobachten, wenn die Zykluszeit stark belastet ist. (z.B. am Zykluszeitanfang des OB1 ist der Blinker von z.B. OB 13 noch eine Eins aber in der Mitte eine Null....der Zeit-OB hat eigene Zykluszeit (eigentlich Aufrufe), die kürzer oder länger als die Zykluszeit von OB1 ist). Als Abhilfe -> Takter von Zeit-OB am Anfang OB1 "umladen". In dem Moment blinken alle Leds-Ausgänge gleich.
Übrigens.....man kann auch Doppelwort addieren, dann hat man 32 Blinker...aber wozu ?
Ganz schnell blinkend wünsche ich einen getakten Abend


----------



## Heinz (14 Oktober 2004)

@Schulle1972

Wenn ein Taktmerker Byte vorhanden ist, dann 

U m100.2
= A 3.5

DAs funktioniert, weil sich bei S7 das Merkerbyte 100 aus den Merkern 100.0 .... 100.7 zusammensetzt.

Dies gilt auch für die Worte und Doppelworte. Somit ergibt sich im folgenden Beispiel eine Doppelbelegung von Merkern.

L 45
T mw0

u e 3.5
u e 4.6
= M 1.0

Hier ist der M1.0 ein Teil vom Merkerwort 0.

Dies gilt für S5 und S7.

Es gibt aber auch andere Steuerung, wo die Speicherbereiche für Bit, Byte, Word usw. getrennt verwaltet werden.

@Teddy stimmt bei langen Zykluszeiten und geringen Zeitraster, können z.B. Störmeldelampen im unterschiedlichen Takt blinken.


----------



## Hamlet (14 Oktober 2004)

*Blinker ohne Timer und Taktmerkerbyte*

Habe untenstehend einen variablen Blinktakt  mit gleieche Impuls Pausenverhältnis. 



FUNCTION_BLOCK "Takt_VARIABEL"
TITLE =
VERSION : 0.1


VAR_INPUT
  ZEITBASIS : INT ;	 // Zeitbasis in ms
END_VAR
VAR_OUTPUT
  mTakt_1Sek : BOOL ;	//pulstakt
  Takt : BOOL ;	
END_VAR
VAR
  iTime : TIME ;	
  iRET_VAL : WORD ;	
END_VAR
VAR_TEMP
  dwTime_TCK : TIME ;	//Zeitwert
END_VAR
BEGIN
NETWORK
TITLE =Sekundentakt erzeugen

      SET   ; // Puls 1 Sekunde loeschen
      R     #mTakt_1Sek; 

      CALL "TIME_TCK" (// current time in [ms]
           RET_VAL                  := #dwTime_TCK);

      L     #iTime; 
      L     LW     2; // current time
      -I    ; 
      L     0; 
      >I    ; 
      SPB   n1; 
      L     #iTime; 
      L     #ZEITBASIS; 
      +I    ; 
      T     #iTime; 
      S     #mTakt_1Sek; // puls setzen
n1:   UN    #mTakt_1Sek; 
      SPB   k1; 
      L     0; // Fehlernummer löschen
      T     #iRET_VAL; 
k1:   NOP   0; 

      U     #mTakt_1Sek; 
      U     #Takt; 
      SPBN  k3; 
      R     #Takt; 
      SPB   k4; 
k3:   U     #mTakt_1Sek; 
      UN    #Takt; 
      SPBNB k4; 
      S     #Takt; 
k4:   NOP   0; 

END_FUNCTION_BLOCK


[/code]


----------



## Zottel (15 Oktober 2004)

*Re: Blinker ohne Timer und Taktmerkerbyte*



			
				Hamlet schrieb:
			
		

> Habe untenstehend einen variablen Blinktakt  mit gleieche Impuls Pausenverhältnis.
> ...
> [/code]


Sicher das längste Listing.
Vergleiche:

```
U M100.x
= Ax.y
```
Alles AWL...
Wer postet denn nun FUP für Schulte1972?
[/code]


----------



## Znarf (15 Oktober 2004)

Hallo
In der Anlage ist ein Blinker mit einem Timer und Exclusiv-oder als AWL und FUP.

Viel Spaß damit


Andreas


----------

