# Bestimmte Bereiche aus Zähler visualisieren



## turbobit (10 Dezember 2007)

Hi, bin ziemlich neu in der Programmierung von SPSen und hab folgendes Problem: In meiner S5-100u CPU102 hab ich nen Zähler, der sich auch so verändert wie ich will: E0.0 = Vorwärtszählen , E0.1 = Rückwärtszählen.

Jetzt will ich aber den Ausgang 3.6 setzen, wenn der Zähler den Dezimalwert 18 bis 20, 28 bis 32 und 45 bis 49 hat. Ansonsten soll A3.6 = 0. Hat da jemand nen relativ einfachen Vorschlag?



MfG

chris


----------



## vladi (10 Dezember 2007)

*Zähler*

Hi,
ganz einfach:vergleiche dein Zähler mit den Werten, und wenn die passenden da sind, Ausgang setzen;sonst rücksetzen.

V.


----------



## turbobit (10 Dezember 2007)

und wie sieht das konkret in AWL aus?

habe folgendes probiert:
L KZ 20
LZ 1
!=F
=A3.6

L KZ 19
LZ 1
!=F
=A3.6

L KZ 18
LZ 1
!=F
=A3.6

Dies hatte jedoch zur Folge, dass A3.6 nur bei "18" aktiv war, sonst nicht.


----------



## Ralle (10 Dezember 2007)

turbobit schrieb:


> und wie sieht das konkret in AWL aus?
> 
> habe folgendes probiert:
> L KZ 20
> ...




L KZ 20
LZ 1
!=F
=M100.0

L KZ 19
LZ 1
!=F
=M100.1

L KZ 18
LZ 1
!=F
= M 100.2


O M100.0
O M100.1
O M100.2
=A3.6

Ohne Merker und mit Klammern könnte man es evtl. auch machen. Auf jeden Fall darfst du =A3.6 nur einmal schreiben, die letze Anweisung ist sonst entscheidend.


----------



## turbobit (10 Dezember 2007)

Jetzt is nur die Frage, ob man folgenden Quelltext noch vereinfachen kann (mit <=F oder so), sprich, dass wenn ich 5 nebenstehende Zahlenwerte nehmen möchte, mir nicht nen wolf tippen muss (programmiere mit nem PG 605 U  ). kriege es jedoch leider nicht hin. bzw ist das nicht möglich?



> L KZ 20
> LZ 1
> !=F
> =M100.0
> ...


----------



## Ralle (10 Dezember 2007)

In etwa so, mal auf die Schnelle


```
U(
    L    KZ 020
    L    Z1
    >=F
    )
    U(
    L    KZ 018
    L    Z1
    <=F
    )
    =    A  3.6
```
Die Klammern kann man glaube ich auch weglassen, ich hab mir das mal so angwöhnt, wegen der Übersicht .


----------



## turbobit (10 Dezember 2007)

funktioniert soweit, nur dass komischerweise A3.6 zwischen 24 und 32 aktiv ist 

Aber Danke!


----------



## marlob (10 Dezember 2007)

Vielleicht deswegen
24 dez = 18 hex
32 dez = 20 hex


----------



## vierlagig (10 Dezember 2007)

marlob schrieb:


> Vielleicht deswegen
> 24 dez = 18 hex
> 32 dez = 20 hex



das übliche


----------



## turbobit (10 Dezember 2007)

Okay 

aber wie geb ich dann aufm PG die Zeile
L KZ 2D ein?


----------



## vierlagig (10 Dezember 2007)

turbobit schrieb:


> Okay
> 
> aber wie geb ich dann aufm PG die Zeile
> L KZ 2D ein?



<VORTASTE><0> = A
<VORTASTE><1> = B
<VORTASTE><2> = C
<VORTASTE><3> = D
<VORTASTE><4> = E
<VORTASTE><5> = F

http://support.automation.siemens.com/WW/llisapi.dll?query=pg605u&func=cslib.cssearch&content=skm%2Fmain.asp&lang=de&siteid=cseus&objaction=cssearch&searchinprim=&nodeid99=&x=0&y=0


----------



## turbobit (10 Dezember 2007)

Leider *50, komisch steht auch so inner anleitung


----------



## zotos (10 Dezember 2007)

Ralle schrieb:


> ...
> 
> ```
> U(
> ...



Da merkt man erst mal wie alt die S5 ist nach dem 2. Weltkrieg hätte doch keine deutsche Firma ein Kürzel wie *KZ *ruhigen Gewissens verwendet ;o)


----------



## vierlagig (10 Dezember 2007)

scheint nur bei KH zu funzen ... dann solltest du vielleicht deine zahlen einfach umrechnen


----------

