Step 7 RS232C Schnittstelle

EPaulo

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

ich habe folgendes Problem.
Zur Kommunikation mit einem Laser soll ich eine RS232 Schnittstelle verwenden.
Wir haben über ein Terminal die Kommunikation aufbauen können und haben Befehle gesendet und auch die entsprechende Antwort erhalten.

Nun habe ich das ganze über die SPS versucht und bekomme leider keine Antwort.

Zum Aufbau.

Verwendet ist ein 1Si Modul, diese ist in der HW wie folgt konfiguriert ist.

1Si Ascii 8Byte
Schnittstelle - RS232C
Datenfluss-Kontrolle - Keine
Bautrate - 9600
Datenbits - 8
Stopbits - 1
Parität - keine
Enderkennung - Nach Empfang des Endzeichens
Zeichenverlustzeit - 4
Endzeichen 1 - 13
Dynamischer Telegrammpuffer - X
Empfangspuffer löschen bei Anlauf CPu - X

Vom Hersteller wird folgende Spezifikation vorgegeben.

RS-2323C
Kommunikationsmethode - Vollduplex
Syncronisationsmethode - Start-Stop- Synchronisation
Übertragungscode - ASCII
Datenlänge - 8Bit
Stopplänge - 1 Bit
Parität - keine(ursprünglicher wert), gerade, ungerade
Bautrate - 9600 (ursprünglicher Wert) 19600, 38400, 57600, 115200 Bit/s
Datentrennzeichen - CR
Ablaufsteuerung - keiner

Zum senden und empfangen haben wir die Adern SD(TXD von externem Gerät empfangen - Eingabe), SG (GND), RD (RXD An externes Gerät gesendet - Ausgabe)

Angeschlossen an dem 1 Si wie folgt
TXD vom Teilnehmer an die Klemme 1
RXD vom Teilnehmer an die Klemme 5
GND an die Klemme 8

Zum Programmieren habe ich das Musterprojekt von Siemens genommen mit dem FB2/3, FC21/22 DB40-43
Wenn ich nun im DB 42 unter DBX14 den Befehl `RA$R`eintrage sollte es sich um den Befehl "RACR" und ich sollte als Antwort auch die 3 Zeichen "R"A"CR" bekommen.
Leider bekomme ich zwar antworten aber nicht zuordnen bare Zeichen. Auch werden die Zeichen nicht wie von mir erwartet in den DB43 gelegt!

Danke im Voraus für jede Hilfestellung.

Gruß
 
Hi,
hast du mal versucht bei Vollduplex die Daten die du sendest auch zu empfangen (TXD und RXD verbinden)
Somit kannst du zumindest sicher sein das dein SEND auch richtig funktioniert.

Gruß
Erick
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Erick,

danke für den Tip mit dem verbinden von TXD und RXD, werde ich mal ausprobieren wenn ich vor Ort bin.
Weiß du ob er die Daten dann auch in den DB43 schreibt?

Gruß
 
Ich habe bis nur mit dem SFB12 und SFB13 gearbeitet (BSEND / BRCV) dort habe ich für die Empfangsdaten ein Anypointer bestimmt.
Somit wusste ich auch wohin die Daten gehen.

Ich habe mir mal das BSP angesehen.
Dem nach müsste dein RCV ab DB43. DBB 0 gespeichert werden.
Was mir aber etwas unklar ist, ist der LADDR.
Wenn dies die Adresse des CP sein soll dann müsste SEND und RCV jeweils die gleichen werte haben. Zumindest ist bei dem SFB12/13 mit "ID" so.

Zudem war es beim SFB12/13 so das du den RCV mehr mal aufrufen musstest ohne ein neuen SEND zu starten
1. Aufruf : wurden Daten empfangen?
2. Aufruf : Daten übertragen von CP nach CPU
3. Aufruf: Daten ausgelesen?
oder so ....

Hoffe dies hilft dir weiter/ Schönes WE.

Gruß
Erick
 
Zuletzt bearbeitet:
Zurück
Oben