TIA CM PtP RS232 Sensor Werte empfangen

Bouc01

Level-1
Beiträge
32
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

Ich arbeite mit einer 1517 3PN/DP und bin über Profinet mit einer ET200SP Verbunden. Diese ist mit CM PtP Karten bestückt.
Ich möchte gerne bei dem CM PtP Modul (KF226) einen Temperaturwert empfangen.
Es ist auch nur eine Temperatur Sonde angeschlossen.

Als Eingangsadressen habe ich die 1080-1087 welche als Byte angelegt wurden. (Siehe KF226 IO Variablen)
Wenn ich die Rohwerte beobachte bekommt ich auch Werte angezeigt. (Siehe Input_DB200 roter Kasten)
Aber jede Karte bekommt die gleichen Werte ob eine Sensor angeschlossen ist oder nicht.
Die Hardware ist richtig angelegt, da es sich um eine Bestandsanlage handelt, und die Temperaturmessung vorher funktioniert hat.

Es geht nur rein um die Auswertung der Karte.
Mir wurde gesagt dafür müsste ich nur den Receive_P2P Baustein einfügen und verschalten.
Als Buffer habe ich ein DB mit einem Array hinterlegt [0-1] of Word in dem ich die empfangen Daten hinterlegen will.
Doch hier kommen nicht einmal die Rohwerte an auch nicht wenn ich den Array als [0-7] of BYTE anlege.
Der Baustein Status sagt aus das die Daten gerade empfangen werden (7002). Aber ich empfange keine Daten.

Muss ich weitere Bausteine hinzufügen um ein Empfangen der Daten anzustoßen wie zum Beispiel den Receive_Config?

Ich blick bei der ganzen Seriellen Geschichte nicht durch und hoffe ihr könnt mir helfen.
 

Anhänge

  • HW_Einstellung.jpg
    HW_Einstellung.jpg
    1,2 MB · Aufrufe: 38
  • Programmbaustein.jpg
    Programmbaustein.jpg
    942,6 KB · Aufrufe: 38
  • Variablen_Typ.jpg
    Variablen_Typ.jpg
    1,2 MB · Aufrufe: 38
Die Eingangsadressen sind irrelevant. Du gibst dem Receive den Port an. Der macht den Rest. Sendet dein Partner von sich aus daten? Ohne dass du anfragst?

Receive Config brauchst du nur wenn du zur Laufzeit die Schnittstelle konfigurieren willst. die Macht nichts anderes als du in der Hardware konfigurierst.

In deinen Screenshots, nutzt du Buffer "CM_PTP_Buffer".XF220 für den Receive auf Port XF226 im nächsten Screenshot stellst du aber irgendein anderes Array dar, wo wird dieses abgefüllt und wieso versuchst du Buffer XF221 mit der Länge vom Receive des XF220 mit einem Move zu überschreiben
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Vollmi,

Ja also diese Werte die du bei dem Input_DB siehst in dem roten Kasten bekomme ich ohne das ich etwas auswerte.
Nur das ich diese Werte von allen Cm PtP Karten bekomme obwohl bei den anderen Karten nichts angeschlossen ist.

Das andere Array kann ignoriert werden, dass war einfach nur ein Versuch den ich wieder verworfen habe :D
Also benötige ich nur den Receive_P2P zum empfangen der Daten?

Hier nochmal ein Bild vom Schaltschrankaufbau:
auf der UF100 ist nur der Sensor auf der ersten Karte links verdrahtet, an den andren Karten ist zur Zeit nichts angeschlossen.
Von Dort werden die Seriellen Schnittstellen via RS232 Stecker mit der CM PtP Karte (KF226) verbunden.
 

Anhänge

  • ET200SP_KF226.jpg
    ET200SP_KF226.jpg
    1 MB · Aufrufe: 35
  • KF226.jpg
    KF226.jpg
    872,1 KB · Aufrufe: 35
  • UF100.jpg
    UF100.jpg
    690,2 KB · Aufrufe: 35
Hi Vollmi,

Ja also diese Werte die du bei dem Input_DB siehst in dem roten Kasten bekomme ich ohne das ich etwas auswerte.
Nur das ich diese Werte von allen Cm PtP Karten bekomme obwohl bei den anderen Karten nichts angeschlossen ist.

Das andere Array kann ignoriert werden, dass war einfach nur ein Versuch den ich wieder verworfen habe :D
Also benötige ich nur den Receive_P2P zum empfangen der Daten?

Hier nochmal ein Bild vom Schaltschrankaufbau:
auf der UF100 ist nur der Sensor auf der ersten Karte links verdrahtet, an den andren Karten ist zur Zeit nichts angeschlossen.
Von Dort werden die Seriellen Schnittstellen via RS232 Stecker mit der CM PtP Karte (KF226) verbunden.
ja und woher kommen die daten von Input_DB? ist das der Eingangsbereich der PtP karte? Wenn ja, brauchst du das nicht.
Sofern dein Partner selbstständig Daten schickt ohne dass du was anfragen musst, reicht dir der Receive Baustein. Der füllt die daten in Buffer ab, sagt dir wieviele Bytes gekommen sind und du kannst sie verarbeiten und ggf den Buffer löschen.
 
Ich schleife alle Ein und Ausgangssignale über PUT_GET am eine 410 CPU (PCS7) durch.
Daher schreibe dich die IB von KF226 auf mein Input_DB. Ich wollte die Cm PtP Karte auf der PCs7 Seite auswerten. Was aber in dem Fall nicht funktioniert da die P2P Bausteine direkt auf die Hardware zugreifen. Deswegen muss ich die Auswertung der Karte auf der TIA Seite machen.
Siehe Bild PUT_GET

Mich wundert es nur das alle CM PtP Karten mir den gleichen Rohwert ausgeben wie auf dem erste Bild mit dem roten Kasten zusehen ist.
Also egal ob es KF226, KF227, KF228 usw. ist. Nur an KF226 ist eine Temperatur Sonde angeschlossen, an den anderen Karten ist nichts angeschlossen.

Fülle ich Evtl. den Buffer falsch?
Am Port hinterlege ich meine HW Adresse KF226
und am Buffer meinen DB in dem ich diese Byte auswerten möchte in ein DWord?
Oder muss ich sie in ein Array schreiben? Also ein Array mit 2 Words oder in ein Array mit 8 Bytes?

In der Beschreibung steht auch immer das ich die Länge angeben muss aber LENGTH ist ja ein Output und dieser interessiert mich in dem Fall ja nicht oder?
 

Anhänge

  • PUT_GET.jpg
    PUT_GET.jpg
    925,4 KB · Aufrufe: 15
  • Buffer_Bereich.jpg
    Buffer_Bereich.jpg
    885,9 KB · Aufrufe: 15
  • PUT_GET.jpg
    PUT_GET.jpg
    925,4 KB · Aufrufe: 15
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich schleife alle Ein und Ausgangssignale über PUT_GET am eine 410 CPU (PCS7) durch.
Daher schreibe dich die IB von KF226 auf mein Input_DB. Ich wollte die Cm PtP Karte auf der PCs7 Seite auswerten. Was aber in dem Fall nicht funktioniert da die P2P Bausteine direkt auf die Hardware zugreifen. Deswegen muss ich die Auswertung der Karte auf der TIA Seite machen.
Siehe Bild PUT_GET

Mich wundert es nur das alle CM PtP Karten mir den gleichen Rohwert ausgeben wie auf dem erste Bild mit dem roten Kasten zusehen ist.
Also egal ob es KF226, KF227, KF228 usw. ist. Nur an KF226 ist eine Temperatur Sonde angeschlossen, an den anderen Karten ist nichts angeschlossen.

Fülle ich Evtl. den Buffer falsch?
Am Port hinterlege ich meine HW Adresse KF226
und am Buffer meinen DB in dem ich diese Byte auswerten möchte in ein DWord?
Oder muss ich sie in ein Array schreiben? Also ein Array mit 2 Words oder in ein Array mit 8 Bytes?

In der Beschreibung steht auch immer das ich die Länge angeben muss aber LENGTH ist ja ein Output und dieser interessiert mich in dem Fall ja nicht oder?
Am Buffer musst du ein Array of Byte anhängen, das mindestens so gross ist wie die Maximale Telegrammlänge die du von deinem Teilnehmer bekommst. Standard hänge ich da normalerweise ein ArrayOfByte von 40 Byte länge an. Das reicht meist. Und dann muss in der Karte natürlich richtig eingestellt werden wie Telegram anfang und ende erkannt werden kann. sonst schaufelt dir die Karte möglicherweise Byte für Byte in den Buffer und du musst diese dann in einem anderen Array zusammenfügen.
Dazu müsstest du jetzt mal das Protokoll deiner Sonde studieren. Hat es irgendeine Anfangszeichenfolge? oder sonst mit der Zeichenverzugszeit arbeiten, d.h. die Sonde wird für ein Telegramm die Bytes direkt nacheinander schicken, dann eine pause einlegen, diese Pause sagt dir, jetzt ist fertig. Du kannst den Buffer kopieren und löschen und aufs nächste Telegramm warten.
 
Okay, hier nochmal Bilder zur Einstellung der Karte.
Hier ist eine Verzugszeit von 40 eingestellt.
Bekomme ich weiterhin ein Status von 7002 "Datenübertragung läuft", aber mein Buffer (Jetzt ein Array of Byte 40) wird nicht gefüllt.

Ist die Einstellung soweit Okay? oder kann ich die Verzugszeitabfragen wann diese beendet ist?
Sorry wegen den ganzen Fragen aber ich blicke hier mit dem Seriellen Zeug nicht durch :D
 

Anhänge

  • Einstellung_1.jpg
    Einstellung_1.jpg
    1,7 MB · Aufrufe: 12
  • Einstellung_2.jpg
    Einstellung_2.jpg
    1,3 MB · Aufrufe: 13
  • Einstellung_3.jpg
    Einstellung_3.jpg
    1,4 MB · Aufrufe: 12
  • Einstellung_4.jpg
    Einstellung_4.jpg
    1,3 MB · Aufrufe: 12
  • Einstellung_5.jpg
    Einstellung_5.jpg
    1,5 MB · Aufrufe: 13
dann werte mal die fehler und stati aus. kannst du auch über die tracefunktion machen. dann siehst du ob überhaupt was auf der Leitung passiert. blinkt t und r LED auf der Karte wenn der Sensor was sendet? hast du einen Datenlogger zum anhängen?
 
Da hier Freeport gewählt ist, sollte die SST alles als Rohdaten übernehmen was gemäß Portkonfiguration
gültig ist.
In deinem Fall: Übertragungsrate 9600, Parität gerade, 8-Bit, 1 Stopbit, keine Flußsteuerung.

Evtl. ist die Zeichenverzugszeit etwas zu kurz oder es sind RxD und Txd verdreht (banalerweise).
Ein Speicheroszilloskop kann hier wahre Wunder bewirken.

Wichtig ist auch, dass der Sende und Empfangsblock (Funktionsbaustein mit DB's)
eingerichtet worden ist, da diese SST meist eine Empfangsfreigabe an die HW
geben müssen.

Gruß

A.
 
Hi,
Ist auf Pin 12 und 14 angeschlossen also Empfangsdaten 4 Drahtbetrieb. Das passt.
Hier nochmal von dem Receive_P2P_DB die Static Werte.
Also in dem DB ist was ReceiveBuffer ist auch was drin. Blauer Kasten

Muss ich den REQ mit einem Taktmerker immer wieder auf True setzten damit ich was empfangen kann?
Oder fällt euch irgendwas auf was hier nicht passt?
 

Anhänge

  • Receive_DB_Static.jpg
    Receive_DB_Static.jpg
    1,3 MB · Aufrufe: 12
REQ Statisch auf 1 Setzen. RD_REC in der Instanz wird vom Receive bearbeitet. Der liest nur den Datensatz der Karte, nicht direkt Telegramme. Das muss dich nicht verwirren. Mach die Zeichenverzugszeit mal auf >200
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist auf Pin 12 und 14 angeschlossen also Empfangsdaten 4 Drahtbetrieb. Das passt.
Das passt gar nicht zu RS232 und auch nicht zu einem "4 Drahtbetrieb".
Laut Deinen Fotos ist das "T/RA-" (12) und "T/RB+" (14). Ich vermute mal, das ist für RS485 (ein 2-Draht-Bus).
Wie vollmi schon schrieb: Zeig mal das Anschlussdatenblatt von deinem Sensor

Was sind das für CM PtP Baugruppen genau? Artikelnummer 6ES7137-6AA00-0BA0 ? Ist das eine alte Anlage (weil diese Artikelnummer bei Siemens nicht mehr lieferbar ist)?

PS: sag' mal Euren Schaltschrankbauern, die sollen die gelben BMKZ-Sticker nicht über die Siemens-Artikelnummer kleben. 3 mm weiter oben wäre perfekt gewesen

Harald
 
Bei dem "UF100" sieht es so aus, als würde das Flachbandkabel den "Bus" darstellen, bei dem die einzelnen Karten parallel hängen. Demnach würde ich auch davon ausgehen, dass es kein RS232 sein kann.
 
1. Die Karte ist auf dem Bild in https://www.sps-forum.de/threads/cm-ptp-rs232-sensor-werte-empfangen.111904/post-880520 klar als 2-Draht RS485 angeschlossen, was im Rahmen des durchgeschleiften Flachbandkabels auch absolut Sinn ergeben würde.

Im wesentlichen stellen sich 2 Fragen:
Was ist UF100 genau? Welches Protokoll wird da gefahren (nicht ganz unüblich wäre z.B. Modbus), kann aber auch was selbstgebasteltes sein ... ?
Beides findest du zunächst mal im wesentlichen in der entsprechenden Anleitung dieses Teils.
Nachdem das geklärt ist, meldest du dich wieder, und man kann sich darüber unterhalten ob und wie welche Bausteine benötigt werden.

Mfg
Manuel
 
Zurück
Oben