# Wago und Analogausgänge



## Noxx79 (13 November 2009)

Hallo zusammen,
stehe hier ziemlich auf dem Schlauch. Habe 2 Probleme,
Möchte gerne über 2 Taster einen Analogausgang steuern, Sprich Taster 1 z.B. Drehzahl Hoch ( 1X Tasten =1mA  2X Tasten =2mA ....20X Tasten=20mA und mit Taster 2 das ganze Umgekehrt.
Das 2te Prob ist, ich habe einen Realwert von einer Skalierung z.B. Füllstand etc etc. Diesen möchten diesen Wert ebenfalls über 4 bis 20 mA ausgeben um evtl. ein Meßinstrument anzuschließen.
So das sind meine Probleme. Für hilfe bin ich echt dankbar.

P.S. meine Bevorzugte Programmiersprache ist CFC und ST, danke


----------



## Mobi (13 November 2009)

Hast du schon ein paar Programmschnitzel oder sollen wir für dich die Hausaufgabe machen.


----------



## Paule (13 November 2009)

Noxx79 schrieb:


> Möchte gerne über 2 Taster einen Analogausgang steuern, Sprich Taster 1 z.B. Drehzahl Hoch ( 1X Tasten =1mA 2X Tasten =2mA ....20X Tasten=20mA und mit Taster 2 das ganze Umgekehrt.


 
Hallo Noxx,

hast Du da ein Panel dran?
Da gibt es die Funktion "Erhöhe Wert" einer Variable, ist ganz einfach.
Wenn nicht dann mal ein Beispiel für Hoch in AWL:

```
U E Hoch   // Taster Hoch
   FP Mx.y    // Tastendruck auswerten
   SPBN No
   L #Drehzahl  // Aktuelle Drehzahl
   +1           // erhöhen
   T #Drehzahl
   L #Maxdrehzahl  // auf Maximaldrehzahl begrenzen
   <I
   SPB Nein
   T #Drehzahl
No: NOP 0
```


----------



## Mobi (13 November 2009)

Noxx79 schrieb:


> ... ( 1X Tasten =1mA  2X Tasten =2mA ....20X Tasten=20mA und mit Taster 2 das ganze Umgekehrt.
> ...



Du meinst wohl 1x tasten = 4mA, 2x tasten = 5mA. Da ja der Analogausgang 4-20mA ausgibt.


----------



## Mobi (13 November 2009)

Am Ausgang kommen 4-20mA raus. 4mA entsprechen Dezimal 0, 20mA entsprechen Dezimal 65535. Die Differenz zwischen 4 und 20 beträgt 16. 65535 / 16 = 4095,9375 *≈ *4096. Also musst du mit jeden Tastendruck 4096 dazu addieren bzw. abziehen, aber nur wenn du mit jeden Tastendruck 1mA mehr haben möchtest. Und das machst du mit einer IF-THEN-Anweisung und natürlich mit einer Flankenerkennung.


----------



## Noxx79 (14 November 2009)

Hört sich alles gut an, aber mit euren lösungansetzen kann ich nichts anfangen da ich rein in CFC Programmiere und mit den anderen Sprachen nichts anfangen kann.  mfg Noxx


----------



## Paule (14 November 2009)

Mobi schrieb:


> Du meinst wohl 1x tasten = 4mA, 2x tasten = 5mA. Da ja der Analogausgang 4-20mA ausgibt.


Nein Mobi,
das meinte ich nicht.


Mobi schrieb:


> Am Ausgang kommen 4-20mA raus. 4mA entsprechen Dezimal 0, 20mA entsprechen Dezimal 65535. Die Differenz zwischen 4 und 20 beträgt 16. 65535 / 16 = 4095,9375 *≈ *4096. Also musst du mit jeden Tastendruck 4096 dazu addieren bzw. abziehen, aber nur wenn du mit jeden Tastendruck 1mA mehr haben möchtest.


Das ist schon klar mit den 4096 Punkten, die ich dann direkt auf das PAW legen kann. 
Oder ich nehme einfach den guten alten Skalierungsbaustein. 
Kann es sein das Phoenix so was gar nicht hat? Denn so wie Du hier Werbung für die Teile machst sprichst Du doch davon oder?
Und noch eins:


Mobi schrieb:


> Und das machst du mit einer IF-THEN-Anweisung und natürlich mit einer Flankenerkennung.


Warum muss ich da die IF-THEN-Anweisung benutzen?
Klar geht das, aber die macht ja an dieser Stelle nichts anderes als den Tastendruck auszuwerten (U E x.x).

Leider ist damit Noxx immer noch nicht geholfen!


----------



## Mobi (14 November 2009)

Paule schrieb:


> Nein Mobi,
> das meinte ich nicht.



Bist du jetzt Noxx? Ich hatte Noxx zitiert.



> Das ist schon klar mit den 4096 Punkten, die ich dann direkt auf das PAW legen kann.
> Oder ich nehme einfach den guten alten Skalierungsbaustein.
> Kann es sein das Phoenix so was gar nicht hat? Denn so wie Du hier Werbung für die Teile machst sprichst Du doch davon oder?


Von was spreche ich denn?


> Und noch eins:
> 
> Warum muss ich da die IF-THEN-Anweisung benutzen?
> Klar geht das, aber die macht ja an dieser Stelle nichts anderes als den Tastendruck auszuwerten (U E x.x).
> ...


Weil er in CFC oder in ST programmieren will und nicht in AWL.

@Noxx:
In CFC: Du nimmst einen Vor-/Rückwärts-Zähler und multiplizierst den Zählerwert mit 4096 und gibts das dann auf den Analogausgang raus.


----------



## Noxx79 (15 November 2009)

Danke schön, hat funktioniert, für mich die Perfekte Lösung.
Aber bitte nicht Streiten meinetwegen.
So kann mir den auch einer sagen wie einen Real Wert auf 4 bis 20 mA Skalieren kann? 
mfg Noxx


----------



## McNugget (16 November 2009)

Moin.


Da schau Dir mal SCALE_D aus der OSCAT-LIB an.

Der funktioniert bei mir bestens.

Gruss

McNugget


----------



## Mobi (16 November 2009)

Noxx79 schrieb:


> Danke schön, hat funktioniert, für mich die Perfekte Lösung.
> Aber bitte nicht Streiten meinetwegen.
> So kann mir den auch einer sagen wie einen Real Wert auf 4 bis 20 mA Skalieren kann?
> mfg Noxx



Welche hat denn funktioniert, meine oder Paules?


----------



## Noxx79 (17 November 2009)

Deine , jedenfalls in der Simulation. Aber mit der Sps bleibt die Analogausgangskarte immer auf 0mA komisch also weiter Probieren.
Habe den Zähler, dessen Ausgang Multipliziere ich mit 4096, und schicke das Ergebnis 1 mal als Int an die Karte und einmal als Word an die Karte ( Wago 750_554 ) beidesmal ist das Ergebnis bei der Karte Null.


----------



## Noxx79 (17 November 2009)

Ach ja hatte ich fast vergessen. Möchte mich bei allen für Ihre hilfe bedanken.


----------



## Mobi (7 Dezember 2009)

Nun bin ich endlich wieder online.

Also schicke doch mal eine Word ab nur mit Nullen zur Karte, dann müssten 4mA rauskommen. So zum testen.


----------

