WInCC 7.0 SP2 - Binäre Variable in Dezimal umwandeln

longbow24

Member
Beiträge
14
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hi Leute

ich habe hier schon viele Tippsfür unsere Steuerungen gefunden. Nun habe ich aber ein Problem bei dem ich bisher nichts gefunden habe.

Zu meinem Problem:
Ich verwende den Meßumformer ADAM-6017 dermir aus 4-20mA ein HEX Formatmacht und es per Ethernet übertragen kann. Per WinCC kann ich den HEX Wert auslesen - die Verbindung ist also ok. Nun möchte ich aber keinen HEX Wert sondern die Temperatur in meiner Variable darstellen. Hat jemand eine Idee zu Umwandlung / Konvertierung ?

Schonmal vielen Dank für die Tipps.

ciu
 

Lupo

Well-known member
Beiträge
338
Punkte Reaktionen
27
Die Hex-Darstellung ist nur eine andere Form einer Wert-Darstellung - da mußt du erstmal gar nichts konvertieren.
Was steht denn als Hex-Wert in deiner Variablen was dann wie dargestellt werden soll ?
 

M-Ott

Well-known member
Beiträge
1.773
Punkte Reaktionen
374
Zuviel Werbung?
->Hier kostenlos registrieren
Zum zigtausendsten Mal:
Hexadezimal ist nur ein Darstellungsformat. JEDER beliebige Wert kann hexadezimal, binär, dezimal, oktal oder sonstwie dargestellt werden.
 

ducati

Well-known member
Beiträge
7.603
Punkte Reaktionen
1.701
OT: binär 0 = Dezimal 0 ; binär 1 = Dezimal 1 ... ;)

ich vermute mal, Du hast keine Binäre Variable, sondern ein WORD oder DWORD...

Was Du jetzt damit machen musst, hängt davon ab, wie Deine Temperatur darin "codiert" ist. Das können wir hier aber nicht erahnen.

Prinzipiell geht mit nem Script in WinCC sehr viel, vielleicht reicht aber auch schon Dantentyp, Formatanpassung oder lineare Scalierung in Deiner Variablen in WinCC anzupassen.

Gruß.
 
OP
L

longbow24

Member
Beiträge
14
Punkte Reaktionen
0
Hi

schön das es schon ein paar Antworten gibt.
Wie schon geschrieben verwende ich einen ADAM 6017 der mir das Signal in HEX ausgibt. Ich konnte die Variable so konfigurieren das ich es auch binär sehe. Allerdings sollte die Variable in einer Dezimalzahl angezeigt werden. Das lässt sich ja für die Spezialisten viel leichter ablesen. Nun möchte ich diesen Wert leserlich in DEZ umwandeln können.

Ich sitzte leider nicht unmittelbar vor dem WinCC Rechner, kann aber heute nochmal drüber schaun um weitere Fragen beantworten zu können.

mir ist übrigens klar das man mit den verschiedenen Zahlenformaten alle Zahlen darstellen kann. Unterschied ist nur die Basis :)

ciu
 

ducati

Well-known member
Beiträge
7.603
Punkte Reaktionen
1.701
Zuviel Werbung?
->Hier kostenlos registrieren
Wie schon geschrieben verwende ich einen ADAM 6017 der mir das Signal in HEX ausgibt.

Naja, ich vermute in der Dokumentation wird irgendwo stehen, wie die Temperatur scaliert ist? Wenn nicht, evtl. den Herstellersupport bemühen oder ausprobieren...

Vielleicht ist ja auch 0°C=16#0 und 100°C=16#3E8 ? Dann wärs einfach durch 10 dividieren.
Jedenfalls nimmst Du in WinCC einfach nen EA-Fald und trägst als Datenformat "Dezimal" ein. Da musst weiter nix machen.

Gruß.
 

Larry Laffer

Supermoderator
Teammitglied
Beiträge
13.148
Punkte Reaktionen
2.745
Hallo,
im Grunde hat es Ducati ja schon geschrieben - trotzdem noch einmal :
Was wird übertragen und was soll daraus werden ...?

Gruß
Larry
 
OP
L

longbow24

Member
Beiträge
14
Punkte Reaktionen
0
Hi

Ich hab hier an der Arbeit wegen eines großen Umbaus einiges an Arbeit. Morgen werde ich mir aber mal die Zeit nehmen und mich nochmal in das Problem einlesen.


Danke schonal für die rege Teilnahme.
@ Ducati:
Wenn ich mich recht erinnere (Habe das vor 2 Wochen angefangen) habe ich das mit dem E/A Feld in DEZ schon probiert. Dabei kam es immer [####]

Also bis morgen.
 
OP
L

longbow24

Member
Beiträge
14
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
So hier bin ich wieder,

es ist sogar schon mehr als 2 Wochen her als ich das das letzte mal in der Hand hatte. Ich habe zur besseren Erklärung ein paar Screenshots angehängt.

Nun nochmal ein paar Infos zu Erklärung:
Zur Probe habe ich einen Temperatursensor an einen Meßumformer angeschlossen. Der Messumformer senden an den ADAM per Stromschleife (4-20mA) die Temperatur. ADAM wandelt es dann um und macht es per Ethernet verfügbar. Den ADAM frage ich in WinCC per Modbus Protokoll ab. Auf dem ersten Bild ist das ADAM Tool zu sehen mit den übertragenen Werten. Diese sehe ich auch in WinCC. Aber gerade der DEC Wert ist nicht plausibel und muss anscheinend noch gewandelt werden. Gemessen werden ca 22°C (Anzeige Meßumformer). Angezeigt werden in WinCC die 9559. Was das aber für ein Wert sein soll weiß ich nicht. Ebenso hatte ich mit dem EA Feld Probleme. Es zeigte mir oft nur [####] an bis ich das EA Feld einfach mal sehr groß gemacht habe.

Ich hoffe das hilft euch weiter.


01-adam6017.jpg 02-eigenschaften variable.jpg 03-eigenschaften ea-feld.jpg
 
Zuletzt bearbeitet:

ducati

Well-known member
Beiträge
7.603
Punkte Reaktionen
1.701
also wenn ich das richtig sehe, sind 4mA=0 und 20mA=65535, wenn Du jetzt noch rausfindest, welcher Temperaturbereich in die 4...20mA gewandelt wird, kannst Dus umscalieren, evtl. in der WinCC Variable unter "lineare Scalierung".

Gruß.
 
OP
L

longbow24

Member
Beiträge
14
Punkte Reaktionen
0
Der T-Sensor ist ein PT100, aber ich weiß nicht was im Meßumformer ich für ein Bereich eingestellt habe. Über das Display am Meßumformer bekomme ich den korrekten Strom und die aktuelle Temperatur angezeigt. Also sollten die Einstellungen für den PT100 eigentlich passen.

Kannst du mir das mit der linearen Skalierung erklären ?
 
Zuletzt bearbeitet:
OP
L

longbow24

Member
Beiträge
14
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Ich hab gestern Abend in den Variableneigenschaften die lineare Skalierung aktiviert. Eingang von 0-65535, Ausgabe von 0-150. Damit zeigt mir WinCC dann wahrlich 22° an. Aber leider kann ich es nicht überreden mir 21,9°C oder 22,1 anzuzeigen ;-( Hab ich falsche Werte eingetragen ?
 

ducati

Well-known member
Beiträge
7.603
Punkte Reaktionen
1.701
Aber leider kann ich es nicht überreden mir 21,9°C oder 22,1 anzuzeigen

Beim EA-FAld ein anderes Ausgabeformat wählen. Nebenbei gibts bei WinCC auch F1 !

Zum Temperaturbereich, also wenn Du selber nicht weisst, was Du eingestellt hast, oder es auch nicht auf dem Typenschild steht, können wir Dir hier auch nicht helfen... Wenn ich Hellseher wäre, würde ich mein Geld mit dem Vorhersagen von Lottozahlen verdienen...

Gruß.
 

pylades

Well-known member
Beiträge
250
Punkte Reaktionen
64
Ich hab gestern Abend in den Variableneigenschaften die lineare Skalierung aktiviert. Eingang von 0-65535, Ausgabe von 0-150. Damit zeigt mir WinCC dann wahrlich 22° an. Aber leider kann ich es nicht überreden mir 21,9°C oder 22,1 anzuzeigen ;-( Hab ich falsche Werte eingetragen ?

Versuchs mal so:
 

Anhänge

  • Pic.jpg
    Pic.jpg
    41,4 KB · Aufrufe: 26

JoopB

Well-known member
Beiträge
883
Punkte Reaktionen
195
Zuviel Werbung?
->Hier kostenlos registrieren

Aber dan must in S7 dass Word in ein Real umgewandeld werden
L Word xxx (oder PW) xxxx
DTR
T DBx.DBDyyy (wert aus umwandeler in REAL)
und dieser wert in WinCC scalen oder in S7 scalen.

Ein Real wert is in WinCC ohne problem in xxxx.x aus zu bilden.
 
OP
L

longbow24

Member
Beiträge
14
Punkte Reaktionen
0
@JoopB
Ich habe keine S7 zum skalieren. Wenn ich eine hätte, dann würde ich mir einen FC programmieren.
Schau mal etwas weiter oben wie meine Hardware verkoppelt ist.

@pylades
Probiere ich nachher aus

ciu
 
OP
L

longbow24

Member
Beiträge
14
Punkte Reaktionen
0
@pylades

SUPI !!!
Genau deine Einstellungen haben funktioniert !
Temperatur scheint auch richtig zu skalieren. Hab es zwar nur von 21-30°C probiert - aber ich bekomme sofort den korrekten Wert angezeigt.

DANKESCHÖN

Wie man sieht heißt die Variable eigentlich pH-Wert. Ich muss das in naher Zukunft also noch um einen pH Wert Sensor ergänzen. Da die Sonde ebenfalls mit Meßumformer und Stromschleife als Ausgang arbeitet sollten doch die hier gemachten Einstellungen ebenso greifen ?

ciu
 
Oben