wago .. variablenstellen in einzel variablen ausgeben

RobbyJump

Level-1
Beiträge
30
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich bräuchte mal von euch etwas Hilfe ...

Zur zeit bin ich mit einem Freund dabei für die Anzeige eines Verbrauchswertes (kWh) eine anzeige zu bauen , in der Hauptverteilung ist bereits eine Wago Ethernet SPS verbaut die mit einer Leistungsmessklemme die Leistungswerte mist.

Nun möchten wir die einzelstellen der Variable kWh in z.B. 4 Annalogwerte ausgeben (z.B. 312,5 kWh verbraucht soll dann AQ1=3V AQ2=1V AQ3=2V und AQ4=5V) .. leider fehlen mir die Codesys Kenntnisse um dies umsetzen zu können ..

Hätte ihr für uns einen Tipp zur umsetzung, da wir beide auf dem Schlauch stehen.


Danke schoneinmal

Mfg Robin
 
Tipp zur Ziffernzerlegung einer Zahl von 0.0 ... 123.4 ... 999.9 (... 3276.7 max)
Code:
ziffer1 := TRUNC(kWh) / 100 MOD 10 ;
ziffer2 := TRUNC(kWh) / 10 MOD 10 ;
ziffer3 := TRUNC(kWh) MOD 10 ;
ziffer4 := TRUNC(kWh * 10.0) MOD 10 ;

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Robin,
hier ist eine programmierung des Wago- Controllers erforderlich.

Welche Komponenten habt ihr?
z.B. Controller 750-881
Phasenmessklemme 750-495
...weitere Klemmen...

Wago hat Anwendungshinweise inkl. Beispiel- Programme im Downloadbereich.

Welche Anzeige habt ihr, oder soll das in einer Web- Visualisierung dargestellt werden?

MfG aus OWL
Dingo
 
@ DINGO
ich programmiere nur einen Baustein für die SPS.
das heist ich bekomme den wert eines E-Zähler in kWh der datentyp wird ein WORD sein.
Diese möchte ich nun zerlegen so das ich jede dezimalstelle einzeln nutzen kann.
Haralds wink mit dem Zaunpfaal verstehe ich leider nicht
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Diese möchte ich nun zerlegen so das ich jede dezimalstelle einzeln nutzen kann.
Haralds wink mit dem Zaunpfaal verstehe ich leider nicht
Mein Tip zeigt die Zerlegung eines REAL-Wertes in 3 Ziffern vor dem Dezimalkomma und 1 Ziffer Nachkommastelle.
"MOD 10" ergibt die Einerstelle und "/ 100" oder "/ 10" oder "* 10" verschiebt die jeweils gewünschte Stelle (Hunderter, Zehner, erste Nachkommastelle) vorher zur Einerstelle.

Da ich nicht weiß, wohin Du die Ziffern ausgeben willst, kann ich Dir nicht sagen, wie die Ziffern noch skaliert werden müssen (z.B. AQ1 := TRUNC(3276.7 * ziffer1); ?)


Nun möchten wir die einzelstellen der Variable kWh in z.B. 4 Annalogwerte ausgeben (z.B. 312,5 kWh
ich bekomme den wert eines E-Zähler in kWh der datentyp wird ein WORD sein.
Bist Du sicher? Ein Word kann nur ganze Zahlen enthalten, keine Nachkommastellen. Man kann höchstens vereinbaren, daß z.B. der 10-fache Wert als Ganzzahl (ggf. BCD) übertragen wird und der Empfänger den Wert durch 10 teilen muß. z.B. 312.5 wird als 3125 übertragen. Dann funktioniert die Zerlegung in Einzelziffern aber ein klein wenig anders, z.B. entfällt das TRUNC (Umwandlung REAL in INT).

Harald
 
Zurück
Oben