TIA Textfile vie Ethernet verschicken

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Smartie,

also meine Verbindungsdaten scheinen zu passen, er möchte gerne was verschicken und er reagiert auch am meinem Drucker (Status LED leuchtet), es kommt aber nur nichts an oder er schickt nicht den kompletten Datensatz.

Noch was anderes, wenn ich im DB meine Carriage Return Linefeed beobachte, steht statt §D und $A $R und $L, ist das richtig?

Gruß
 
Hallo Markus,

das die Steuerzeichen im Onlinestatus mit$R und $L angezeigt werden habe ich, wenn ich mich recht erinnere, auch schon beobachtet.
- Muss also passen.

Aber ich habe dir noch mal einen Screenshot von meinem TSEND_C Baustein gemacht und schlage dir vor, zumindest den rot markierten
Bereich in dein Programm zu übernehmen und außerdem einen Blick in die Hilfe des Bausteins zu werfen.

Erst wenn der Status 16#7004 ist wurde eine Verbindung zu dem Drucker aufgebaut und erst dann macht es auch Sinn den Sendevorgang
mit einer Flanke am Eingang REQ anzustossen.

Kleiner Auszug aus der Online-Hilfe:

16#7000 - Keine Auftragsbearbeitung aktiv
16#7001 - Auftragsbearbeitung starten/Verbindung aufbauen/Auf Verbindungspartner warten
16#7002 - Daten werden gesendet
16#7003 - Verbindung wird abgebaut
16#7004 - Verbindung aufgebaut und überwacht, keine Auftragsverarbeitung aktiv

Was die Status LED deines Drucker betrifft kann ich dir nur wenig helfen, bei unseren Druckern (Zebra PAX Modul) ist es zum Beispiel so,
dass die DATA LED dauerhaft leuchtet wenn das Datentelegramm erfolgreich vom Drucker empfangen wurde.
Liegt ein Fehler im Telegramm vor, so blinkt die Data LED nur kurz auf.

Aber wie gesagt ich gehe im Moment davon aus das bei dir noch gar keine Verbindung aufgebaut wurde. - Welchen Port verwendest du im Moment?
Kannst du vielleicht von der Parametrierung des TSEND_C Bausteins einen Screenshot machen?

Gruß smartie
 

Anhänge

  • Druckaufbereitung_FC.jpg
    Druckaufbereitung_FC.jpg
    92,1 KB · Aufrufe: 84
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Smartie,

anbei die Bilder. Also Verbindung macht er mit Port 2000 (Port kann ich an meinem Drucker flexibel einstellen). Was mich bisschen irritiert ist, dass auf deinem Bild am T_SEND_C bei LEN, CONNECT und DATA ein DB dahinter steht. Das zeigt er bei mir nicht an. Glaube dass er sich da keine Daten dann holen kann oder?

Welches Bild mit rotem Rahmen meintest du?

Gruß Markus

T_SEND.jpgT_SEND_2.jpg
 
Hallo Markus,

ich verstehe nicht ganz was du damit meinst:
... dass auf deinem Bild am T_SEND_C bei LEN, CONNECT und DATA ein DB dahinter steht.

Ich vermute, du meinst das bei meinem Programm die absolute Adresse mit angezeigt wird. Zum Beispiel bei LEN steht da in türkis : %DB32.DBW9004.
Das ist nur die zusätzliche Anzeige der absoluten Adresse und kann im Programm umgeschalten werden. - Hat weiter nichts mit der Funktion zu tun.


Das Bild, mit dem roten Rahmen habe ich nun (in meinem letzen Post) angehängt. Aber es hat sich ja mittlerweile erledigt, da du es ja (gegenüber deinem
Beitrag in Post #20) nun so übernommen hast, wie ich es in meinem Screenshot dargestellt habe.

Jetzt scheinst du auch eine Verbindung zu dem Drucker zu haben (Status 16#7004) und du solltest durch Setzen des Tag_6 (%M0.0) das Datentelegramm senden können.
- Kommen die Daten jetzt am Drucker an? - Eventuell versuchst du es mal die Daten auf deinen PC zu senden und mit Hyperterminal (o.ä.) auszuwerten.
(Das habe ich aber mit der S7-1200 noch nicht gemacht und weiß nicht genau welcher Port dafür verwendet wird).

Welcher Port war den am Drucker eingestellt. - Bei den Zebra Druckern (PAX-Modul) hatten wir Probleme wenn wir nicht den Standard Port (9100) verwendet haben.

Gruß smartie
 
Hi Smartie,

also wie gesagt, ich seh eine Veränderung am Drucker (gelbe LED blinkt, hört aber nicht mehr auf) aber keine Daten am Drucker daher vermute ich ein Problem im Datenbaustein. Ich hab gesehen, dass in deinem Datenbaustein Offset Werte drin stehen, in meinem aber nicht. Könnte es damit was zu tun haben und was bewirken diese? Kann nämlich nichts hinzufügen.

Muss ich am Zeilenende ein CR, LF mitschicken? Dies ist normalerweiße ja der Fall und über Terminal schicke ich das mit, nur habe ich das in deinem Beispiel nicht gesehen.

Port habe ich jetzt 2000, am Drucker und über die SPS. Bei 9100 hat er keine Verbindung aufgebaut.

Hoffe du kannst mir noch weiterhelfen.

Gruß Markus

Druckaufbereitung_DB.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Markus,

das Offset, das du in meinem Datenbaustein siehst spielt keine Rolle, ich habe meinen Baustein einfach etwas strukturiert und für jede Struktur einfach 300 Byte verwendet.
Prinzipiell sollte das bei dir auch möglich sein, nur nicht innerhalb eines ARRAY!

Ob ein CR/LF am Zeilenende erwartet wird hängt im wesentlichen vom Drucker und der verwendeten Firmware ab (es gibt auch Firmware, da ist es nicht zwingend erforderlich).
Bei meinem Beispiel und eigentlich auch sonst immer haben wir aber am Zeilenende immer ein CR/LF.

Wie ist den der Status der Status LED am Drucker, bevor du sendest? - Blinkt die da auch schon?
Kann es vielleicht sein das das Blinken bedeutet das die Daten im Druckerspeicher angekommen sind?
Und wie verhält sich die LED wenn du die Daten über ein Terminalprogramm sendest?

Vielleicht solltest du mal im Handbuch des Druckers nachlesen was das blinken bedeutet.

Gruß smartie
 
Hi Smartie,

also es funktioniert jetzt, endlich.
Hatten einen kleinen Fehler im Datenstring, statt 'Z' war ein 'S' drin.

Nun hab ich noch kurz eine Frage, danach denk ich lass ich dich in Ruhe :D

Bekomm ich eigentlich auch ein Signal vom T_SEND_C, wenn der Datentransfer erfolgreich war? Hab jetzt mal alle Signale zwischengespeichert und Senden aktiv und Senden busy sind gleich aktiv, sobald er eine Verbindung hat. Gut wäre wenn ich einmal ein Signal bekomme, nachdem der Transfer erfolgreich war.

Trotzdem vorab vielen vielen Dank für deine Hilfe.

Gruß Markus
 
Guten Morgen Markus,

schön das es jetzt funktioniert. :D

Natürlich bekommst du vom Baustein TSEND_C auch eine Meldung das der Datentransfer erfolgreich war. Dazu musst du einfach den Ausgang DONE auswerten.
(Zusätzlich gibt es vom Drucker bestimmt auch noch einen Ausgang den du abfragen kannst ob er die Daten empfangen und "verstanden" hat.)

Ich habe dir noch einen Screenshot von meiner Auswertung des Status gemacht und angehängt.


Gruß smartie
 

Anhänge

  • Druckaufbereitung_FC.jpg
    Druckaufbereitung_FC.jpg
    92,1 KB · Aufrufe: 84
  • Druckaufbereitung_FC_2.jpg
    Druckaufbereitung_FC_2.jpg
    209,5 KB · Aufrufe: 76
Zuletzt bearbeitet:
Zurück
Oben