Serielle Schnittstelle einlesen

Mathias

Level-1
Beiträge
51
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Ich soll über eine VIPA 214SER Daten eines Gerätes seriell einlesen. Die Daten werden im ASCII Code zur Verfügung gestellt. Wie bekomm ich diese aber jetz zu mir in die SPS und vor allem wie kann ich aus dem ASCII Code die Werte lesen. Die Werte werden Gleitpunktzahlen sein.

Merci für eure Hilfe

Mathias
 
Hallo Mathias,

habe ein ähnliches Problem mit serieller Kom. RS232 von einem Messgerät.

Wäre gut wenn wir uns dazu verbünden könnten.
Ich hätte ein Beispielprogramm mit "lesen" und "schreiben" von der seriellen Schnittstelle (Auch VIPA), und muß das noch auf mein Projekt zuschneiden.

Kannst du genauer erklären wie die Daten bei dir abgefragt werden müssen?
Musst du nur lesen oder gibts eine echte Kommunikation mit Frage und Antwort?
 
Da ist ja kaum was zuzuschneiden :ROFLMAO:, viel einfacher geht es bald nicht mehr.
Auf der CD von VIPA ist die Bibliothek und das Beispielprogramm!

Senden:
SFC217 von VIPA.
Den Datenbaustein mit den Daten füllen.
Eine Positive Flanke !!! an EN anlegen, Daten sich weg.

Empfangen.
Am besten den mitgelieferten FB1 von VIPA nutzen. Der empfängt die vom Any angegebene Länge und meldet dann fertig.
Achtung, wenn man 10 Byte empfangen will und 11 werden gesendet, dann werden die 10 Byte in den DB (ANY) eingetragen und es wird Fertig gemeldet. Wenn man Fertig zurücksetzt, landet Byte 11 im DB im ersten Byte, nach den nächsten 9 Byte wird wieder fertig gemeldet.

Im OB 100 die Schnittstelle initialisieren:

Code:
      CALL  SFC  216
       Protocol   :=B#16#1              //ASCII
       Parameter  :="Dummy"             //wird nicht benötigt für ASCII
       Baudrate   :=B#16#9              //Baudrate
       CharLen    :=B#16#3              //8Bit
       Parity     :=B#16#0              //Parität None
       StopBits   :=B#16#1              //Stopbit 1
       FlowControl:=B#16#0              //RTS nicht beeinflußt
       RetVal     :=MW10
 
Erstmal Danke,
mit Seriell und Vipa hab ich bisher noch nix zu tun gehabt.
CD von Vipa hab ich leider auch (noch) nicht, das Beispiel dürfte aber das selbe sein.

Bei mir geht die Kom. etwas anders aber nicht viel komplizierter:
Ich muß vorab ein Kommando an das Messgerät senden, dann kommt als Antwort ein feste Länge Daten zurück.

Anfrage(ASCII): "dd" bzw. HEX(0x6464) keine Endezeichen!
Antwort(HEX):
"0x 64" > Echo des Befehls
"0x 16" > Datenlänge 22 Byte
"0x 0000 6178 0069 6711 0011 0002 2788 2266 2200 5436 2345" > Nutzdaten (hier Unsinn ;-)
"0x 54" > Checkbyte XOR aller vorherigen Bytes

Gesamt also 26 Bytes.

Wäre toll wenn man das Checkbyte auch noch irgendwie auswerten könnte, was natürlich eine andere Baustelle ist.

Das ganze sollte dann zyklisch 1/sec. ablaufen.

Geräte bekomme ich erst Anfang der nächsten Woche.
 
Zurück
Oben