INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Snap7 / Problem mit DBWrite



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

15.12.2017, 19:27 (Dieser Beitrag wurde zuletzt bearbeitet: 15.12.2017 19:38 von stefan1312.)
Beitrag #1

stefan1312 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: May 2015

17
-
EN


Deutschland
Snap7 / Problem mit DBWrite
Hallo!

Ich verwende Snap7 um Daten aus einer S7-300 PLC auszulesen und zu schreiben. Das Lesen funktioniert ziemlich gut aber leider
habe ich beim Schreiben mit der Funktion "DBWrite" folgendes Problem:

Die Funktion benötigt als Eingabe einen String.
Übergebe ich nun eine Zahl wird diese zunächst als Hex interpretiert und anschließend übertragen.
Meine Überlegung war die Dezimalzahl zunächst selbst als Hex-Code darzustellen und diese Zeichenfolge nun als String zu übergeben.

Ich bräuchte nun die Einstellung das dieser erstellte String bereits als "Hex" dargestellt ist.
Ich kenne es leider nur bei den Eingabefeldern- Rechte Maus - "Hex-Display"

Kann mir vielleicht jemand helfen?
Mein Ziel ist es float Zahlen in den Datenbaustein zu schreiben


Möchte ich zum Beispiel : 12,6 übertragen so wird diese Zahl in Data In als "3431 3439 3939 3941 "interpretiert und auch so übertragen.
Hoffe das Problem ist verständlich.

Danke für eure Hilfe! Smile

LG Stefan


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.12.2017, 13:44
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Snap7 / Problem mit DBWrite
(15.12.2017 19:27 )stefan1312 schrieb:  Die Funktion benötigt als Eingabe einen String.
Ich sag zwar lieber Stream, kommt aber meist auf das selbe heraus.

Zitat:Möchte ich zum Beispiel : 12,6 übertragen so wird diese Zahl in Data In als "3431 3439 3939 3941" interpretiert und auch so übertragen.
Ist das eine Tatsache oder soll das eine Frage sein?

Wenn "3431 3439 3939 3941" herauskommen soll, dann ist 12.6 eine Dezimalzahl im Single-Format. "3431 3439 3939 3941" ist die hexadezimale Darstellungsform des (lesbaren) Wertes "4149999A". Wobei "4149999A" die hexadezimale Darstellungsform der 4-Byte-Single-Zahl 12.6 ist. Wenn ich mich recht entsinne, habe ich bisher immer eher "4149999A" für 12.6 übertragen. Für eine 4-Byte-Sigle Zahl habe ich also immer einen 4-Byte-Stream übertragen (allerdings über einen eigenen TCP/IP-Treiber, nicht über Snap7).

Eigentlich kann ich dein Problem nicht genau nachvollziehen - es sein denn du kommst mit der Ausdrucksweise "Darstellung" und "Speicherformat" durcheinander.

"12.6" ist die dezimale Darstellung eines 4-Byte-Speicherinhaltes, der hexadezimal "41 49 99 9A" dargestellt wird. Ich denke dein DBWrite will nichts weiter als den original Speicherinhalt - das allerdings als Stream - und der heißt in Hex-Darstellung "41 49 99 9A".


Angehängte Datei(en)
11.0 .vi  Unbenannt 1.vi (Größe: 7,84 KB / Downloads: 166)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: