Step 7 Einrichtung von SEND_PTP

B-asti93

Level-1
Beiträge
20
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey Leute,

ich bin noch ein ziemlicher Anfänger in Sachen SPS-Programmierung und muss für ein Projekt mithilfe des CM 1241 RS232 Kommunikationsmoduls, unten angehangene Zeichenkette an einen Barcodescanner übertragen, damit ich ihn seriell triggern kann. Per manuellem triggern kann ich ihn auch auslesen und seine Daten weiterverarbeiten, aber ich bekomme es einfach nicht hin, ihm den Triggercode "SYN T CR" zu senden, damit er auslöst, wenn ein Näherungssensor ein Objekt erfasst.
Ich habe den SEND_PTP Baustein wie unten angehangen belegt.
Könnt ihr mir sagen, ob das so richtig ist, oder ob ich etwas grundlegend falsch mache? Eigentlich muss ich ihm am Eingang "BUFFER" nur das Char-Array "SYN T CR" übergeben oder nicht?
Und meint ihr das CR steht für Carriage Return? Müsste ich dann nicht "SYN T $R" schreiben?

Vielen Dank schonmal für die Hilfe. Ich hoffe ihr könnt mir das Brett, was vor meinem Kopf ist entfernen...
Ich habe auch schon in die Siemens-Hilfe geschaut, aber da werde ich auch nicht schlauer draus.

Mit besten Grüßen

Waschtl
 

Anhänge

  • Buffer-Array.PNG
    Buffer-Array.PNG
    31,3 KB · Aufrufe: 30
  • SEND_PTP-Baustein.PNG
    SEND_PTP-Baustein.PNG
    12,8 KB · Aufrufe: 39
  • Trigger-Commando.jpg
    Trigger-Commando.jpg
    46,2 KB · Aufrufe: 31
Ich würde sagen, den EN noch mit True beschalten.
Du kannst auch mal einen ganz normalen PC mit serieller SS an den CM anschließen.
Im Netz gibt es Terminalprogramme, die dann den seriellen Port des PC recht einfach auslesen und die empfangenen Daten anzeigen.

REQ braucht wahrscheinlich zum Start des Sendens eine Flanke, das sollte aber in der Hilfe zum Send_PTP zu finden sein.
Done ist i.d.R. auch nur einen Zyklus lang da, um den sicher zu sehen, mußt du auch diesen "fangen".
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für die schnelle Antwort! Ich habe mal die Done-Impulse abgefangen und gezählt...da bekomme ich nach jeder REQ-Flanke auch eine Done-Flanke, was bedeutet, dass die Übertragung angeblich Fehlerfrei vonstatten gegangen sei. Nichtsdestotrotz habe ich den Status #7000 und der Scanner geht durch das Codewort, welches im Test.Testbuffer steckt immer noch nicht an :confused:
 
Ich habe jetzt auch HTerm zur Auslesung des Seriel Ports runtergeladen, aber bekomme keine Kommunikation zustande...das Ding ist auch, dass ich eine Done-Flanke bekomme, wenn gar kein Teilnehmer am CM1241 Modul angeschlossen ist! Also ich habe im Moment keine Ahnung, wie ich das lösen könnte....
 
Das Done ist vielleicht nur das Signal, das der FB die Daten an den CM geschickt hat.
Ich kann nichts über dein Gerät sagen, früher bei den 300-er SPS und der zusätzlichen Baugrupper für RS232 war noch ein Zusatzprogramm dabei, das man für den Step7-Manager installieren mußte, damit man das Teil parametrieren kann. Ist das im TIA-Portal auch möglich, den Port, Trennzeichen, Wartezeiten etc. zu parametrieren? Wenn du empfangen kannst, solltest due aber eigentlich auch senden können.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich hab genau das gleiche Problem wie du @B-asti93. Hast du die Konfiguration der Hardware über den "PORT_CFG" vorher gemacht? Oder nur in der HW-config?

Gruß
Chyll-Out
 
Zuletzt bearbeitet:
@Ralle Also ich habe herausgefunden, dass Done nicht sicherstellt, dass die Daten am Teilnehmer angekommen sind, sondern nur, dass die Daten rausgegangen sind. Muss also nicht zwangsläufig bedeuten, dass die Kommunikation erfolgreich abgelaufen ist.

@Chyll-Out Ich habe die Parametrierung ausschließlich über die Hardwarekonfiguration vorgenommen und das hat beim Empfangen auch alles geklappt...verstehe dann auch nicht, wieso das Senden nicht funktioniert.
 
Bei mir hat es nun geklappt. Das done gibt eigentlich nur wieder, das die Daten an den CM gesendet wurden.

Was mir bei deinen Bildern aufgefallen ist, dass du erst ab dem 3. char im buffer deine Daten stehen hast. Ich vermute mal, dass der Baustein deine Daten nicht richtig interpretiert. Füll mal deinen ganzen buffer mit Zeichen und versuche es nochmal...

Gruss
Chyll-out
 
Zurück
Oben