ASCII umwandeln aus RS232

heppy

Level-1
Beiträge
11
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Gemeinde,

ich arbeite derzeit daran über eine RS232 zu kommunizieren per CM1241/CPU1212.

Das senden der Daten funktioniert, leider hapert es daran die Daten die z.B. von einem Terminal kommen von ASCII in weiter verarbeitbare Daten zu konvertieren.
Ich probiere derzeit per Terminal die Zahlenfolge "1234" auf mein KPT600 zu bekommen. Im "Empfangs"-Datenbaustein steht 16#3132_3334 was den ASCII Zeichen entspricht.
Ebenso muss ich eine gebrochene Zahl wie 12,5 an das HMI übermitteln - wie kann man das realisieren?

Wie bekomme ich die Zeichenfolge so umgesetzt das ich mit ihr weiter arbeiten kann?

Danke im voraus

mfg Heppy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich möchte so wie ich die Zeichen im Terminal eingebe auch weiterarbeiten - ich gebe z.B. im Terminal "1234" ein und möchte das auf mein KPT600 transferieren.
Derzeit bekomme ich aus dem DB ein DWord mit z.B. 16#3132_3334 heraus - das ist für mich völlig unbrauchbar.

mfg Heppy
 
Ich würde eine Variable auf deinem KPT als STRINGCHAR mit Länge 4 definieren. Als Adresse gibtst du das erste Byte in deinem DB an. Als Ausgabefeld nimmt du dann als Darstellung Zeichenkette und als Feldlänge auch wieder 4.


Müsste so gehen.....
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

es gibt da einige IEC Bibliotheks Funktionen, mit denen man strings in Dezimalwerte und umgekehrt wandeln kann. Habe ich zwar noch nie benutzt aber vielleicht hilft es dir ja weiter.

  1. FC5 DI_STRNG: Umwandlung einer Variable vom Typ DINT in eine Variable vom
    Typ STRING,
  2. FC16 I_STRNG: Umwandlung einer Variable vom Typ INT in eine Variable vom Typ
    STRING,
  3. FC30 R_STRNG: Umwandlung einer Variable vom Typ REAL in eine Variable vom
    Typ STRING,
  4. FC37 STRNG_DI: Umwandlung einer STRING-Variablen in eine Variable vom Typ
    DINT,
  5. FC38 STRNG_I: Umwandlung einer STRING-Variablen in eine Variable vom Typ
    INT,
  6. FC39 STRNG_R: Umwandlung einer STRING-Variablen in eine Variable vom Typ
    REAL

Siehe auch http://support.automation.siemens.c...objaction=csview&extranet=standard&viewreg=WW

Auch gibt es in diesem Forum schon haufenweise zu diesem Thema :)
 
Hey!
Kann mich den Vorgängern nur anschließen.
Hab sowas nur auf der 300er und auf a&b gemacht.

Sehr interessantes projektchen.
Pass jedoch auf über/ Unterläufe auf.
Was passiert wenn Partner nicht sendet bzw empfängt?
Zu empfehlen wäre, dass du mehr Zeichen als benötigt überträgst (sollte noch ein wert dazukommen)

Gruß
Plcfritz
 
Danke euch für die Antworten, hatte gestern mehr mit anderen Arbeiten zu tun - Rückmeldung gibts bald.

@ EyeQ: gibt es bei TIA solche IEC Funktionen? Wenn ja wo?
@ plcfritz: Meine SPS empfängt aller 100ms automatisch eine Antwort vom PC, gesendet wird über eine Softkey Taste am KPT. Die Sendefunktion klappt soweit, nur das empfangen bereitet noch Probleme, da ich aus dem String nicht die Daten so herausbekomme wie ich es gern hätte ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bin bisher immer noch nicht auf einen grünen Zweig gekommen. Ich kann die eingelesenen Werte nicht auf dem KPT600 anzeigen lassen egal wie ich rangehe.
Derzeit versuche ich aus den empfangenen Doppelwörtern die einzelnen Chars herauszubekommen ... leider ohne Erfolg am KPT. Wieso kann man denn nur hex, dez, datum/uhrzeit und zeichenkette ausgeben? Ist denn keiner mal auf die Idee gekommen auch Char auszugeben?

Falls jemand weiter weiß ... ich weiß es auf jeden Fall nicht. Ich les hier erfolgreich alles ein was ich brauche und am Ende kommt immer wieder nur eine Dez oder Hex Zahl am Dispay heraus ...
 
Kannst Du mal dein Projekt hier hochladen ?

Es gibt StringChar als variable, damit kann man auch ein Char darstellen.
Ich mußte vor kurzem noch einen String darstellen, der im DB aber Rückwärts stand, also mußte ich alle Zeichen einzeln darstellen , das ging auch (war aber kein KTP sonden TP177B)
 
Zurück
Oben