Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: Drucker per TCP ansteuern

  1. #11
    Registriert seit
    16.03.2004
    Beiträge
    173
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey

    Leider nein
    Die String-Konstanten laut http://infosys.beckhoff.de/content/1...ant_string.htm habe ich alle durch. Ohne Erfolg.

    $P macht nichts anderes, als dass der Test der danach gesendet wird auf die nächste Seite gedruckt wird. $P löst aber den Druckvorgang an sich nicht aus.

    Danke trotzdem
    Tom
    greetings from upper austria

    ... merlin ...

  2. #12
    Registriert seit
    12.04.2010
    Beiträge
    300
    Danke
    22
    Erhielt 54 Danke für 52 Beiträge

    Standard

    Also, leider kenne ich das Teil auch nicht aber lt. Handbuch kannst du
    den Code 12 eigentlich so senden

    "StringUnd$N$R$0c" ... $Zeichen und 2 Hex Ziffern also 0 (null) und C (=12)

    Vermutlich ist $P richtig und vermutlich funktioniert auch $0c, allerdings wird das vielleicht nur aktiv wenn noch ein Zeichen nachkommt,

    also zb ein Leerzeichen

    "StringUnd$N$R$0c " ...

    Da der Drucker auch das Leerzeichen drucken muss und vorher der Seitenvorschub eingetragen ist, könnte es so funktionieren....

    Eventuell...

  3. #13
    Registriert seit
    11.07.2004
    Beiträge
    1.597
    Danke
    10
    Erhielt 213 Danke für 183 Beiträge

    Standard

    $P macht nichts anderes, als dass der Test der danach gesendet wird auf die nächste Seite gedruckt wird.
    Dann hilft warscheinlich auch kein EndOfText oder dergleichen.
    Steuerzeichen:
    http://de.wikipedia.org/wiki/Steuerzeichen

    Na dann eben doch PCL verwenden.

  4. #14
    Registriert seit
    07.12.2009
    Beiträge
    27
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Forumsgemeinde,

    ich muss auch einen CAB Drucker über Ethernet ansteuern. Soweit kommt das Telegramm auch an,
    aber es sind immer Protokollfehler enthalten.
    Ich sende einfach ein Array of String und denke das es daran liegt.
    Weiß jemand ob es als Array of Char passieren muss?
    Code:
    Code:
    iLength := LEN(sWeight);
    IF iLength = 4
    THEN
    strWeight := LEFT(sWeight,1);
    END_IF
    IF iLength = 5
    THEN
    strWeight := LEFT(sWeight,2);
    END_IF
    IF iLength = 6
    THEN
    strWeight := LEFT(sWeight,3);
    END_IF
    
    
    
    
    IF VisuPrinterEin
    THEN
    bPrinterAktiv := TRUE;
    bPrinterInAktiv := FALSE;
    ELSIF VisuPrinterAus
    THEN
    bPrinterAktiv := FALSE;
    bPrinterInAktiv := TRUE;
    END_IF
    
    IF bReset THEN
        bEvDruckerAusfahren := FALSE;
        bEvDruckerEinfahren := TRUE;
        bPrinterReady := FALSE;
        bDruckerPrintStart := FALSE;
    
    
        state := 1;
        END_IF
    
    
    CASE state OF
    1:
        bPrinterReady := FALSE;
        IF bPrint THEN
        bEvDruckerEinfahren := FALSE;
        state := 10;
        END_IF;
    
    10:
        (* Create TCP/IP connection *)
            fbConnect(     sSrvNetID         := '',
                        nMode            := CONNECT_MODE_ENABLEDBG,(* Enable debug output *)
                        sRemoteHost     := sRemoteHost,
                        nRemotePort         := nRemotePort,
                        tReconnect        := T#20s,
                        bEnable            := TRUE,
                        eState            => eState );
            IF NOT fbConnect.bBusy THEN
    
    
                IF NOT fbConnect.bError THEN
                    IF eState = eSOCKET_CONNECTED THEN(* we are connected *)
                        state     := 20;
                    END_IF
                ELSE bErrorTcp := TRUE;
    
    (* connect error: log error
                    errors.A_AddTail( putError := fbConnect.nErrId ); *)
                END_IF
            END_IF
    
    
    20:
    sendBuffer[0] := 'M l LBL;LAY1$R$L';
    sendBuffer[1] := 'R ER;PALM$R$L';
    sendBuffer[2] := 'R SO;ELSTAR$R$L';
    sendBuffer[3] := 'R GR;70/80$R$L';
    sendBuffer[4] := 'R GW;300KG$R$L';
    sendBuffer[5] := 'R KL;1$R$L';
    sendBuffer[6] := 'A 1$R$L';
    state := 30;
    
    30:
    fbSend( bExecute := FALSE );
                                fbSend(    sSrvNetID     := '',
                                        hSocket        := fbConnect.hSocket,
                                        cbLen        := SIZEOF(sendBuffer),(* size of header + size of user data *)
                                        pSrc        := ADR(sendBuffer),(* pointer to the frame data *)
                                        bExecute    := TRUE,
                                        tTimeout         := T#5s );
    state := 40;
    
    40:
    fbSend( bExecute := FALSE );
                        IF NOT fbSend.bBusy THEN
    
                            IF NOT fbSend.bError THEN(* no error *)
        fbConnect( bEnable:= FALSE, eState=>eState );
            IF eState = eSOCKET_DISCONNECTED THEN
                state := 203;
            END_IF
    
                            END_IF
                        END_IF
    
    203:
    IF bDruckerBereit AND bDruckerError
    THEN
    bEvDruckerAusfahren := TRUE;
    END_IF
    IF NOT bDruckerEingefahren
    THEN
    state := 204;
    END_IF
    
    204:
    IF bDruckerAusgefahren  THEN
    bEvDruckerAusfahren := FALSE;
    bDruckerPrintStart := TRUE;
    state := 205;
    END_IF
    
    205:
    IF NOT bStempelEingefahren
    THEN
    state := 2059;
    END_IF
    
    2059:
    IF bStempelEingefahren
    THEN
    state := 2060;
    bDruckerPrintStart := FALSE;
    END_IF
    
    2060:
    bEvDruckerEinfahren := TRUE;
    state := 206;
    206:
    IF bDruckerEingefahren
    THEN
    bEvDruckerEinfahren := FALSE;
    bDruckerPrintStart := FALSE;
    bPrinterReady := TRUE;
    state := 1;
    END_IF
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ;
    END_CASE
    Zitieren Zitieren Drucker ansteuern  

  5. #15
    Registriert seit
    09.01.2008
    Beiträge
    85
    Danke
    5
    Erhielt 13 Danke für 12 Beiträge

    Standard

    Hi,

    versuch doch einfach mal den String via CONCAT() zusammenzufügen, und als ein String zu senden. Sollte normal als String funktionieren.
    Hab zwar bis jetzt nur Drucker von CAB via RS232 angesteuert, aber die Syntax bei TCP sollte gleich sein. Wichtig ist am Ende der Befehl A1. Sonst druckt er nicht!

    Gruß Scrat

  6. #16
    Registriert seit
    07.12.2009
    Beiträge
    27
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hi,
    habe ich auch schon versucht das Problem ist, dass es genau einmal funktioniert und beim zweiten mal
    kriege ich mehrer Protokollfehler.
    Dann schalte ich den Drucker einmal aus und dann funktioniert es wieder einmal
    Hat jemand eine Idee?

  7. #17
    Registriert seit
    09.01.2008
    Beiträge
    85
    Danke
    5
    Erhielt 13 Danke für 12 Beiträge

    Standard

    Hast Du mal nen Netzwerksniffer dazwischen gehängt?
    Wäre mal interessant zu wissen was tatzächlich ankommt.

  8. #18
    Registriert seit
    07.12.2009
    Beiträge
    27
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Welchen empfehlst du denn, Wireshark?

  9. #19
    Registriert seit
    09.01.2008
    Beiträge
    85
    Danke
    5
    Erhielt 13 Danke für 12 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja, zum Beispiel Wireshark.
    Beachte aber, dass Du einen HUB (keinen Switch) dazwischen hängst um die Datenpakete aufzuzeichnen. Sonst kommt nix.

    Gruß Scrat

Ähnliche Themen

  1. Drucker über SPS ansteuern
    Von blueColt im Forum Simatic
    Antworten: 35
    Letzter Beitrag: 26.09.2010, 12:06
  2. Drucker an SPS
    Von mätthi im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 07.03.2007, 14:47
  3. Drucker über CP340 ansteuern
    Von Dirk_S im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.02.2006, 15:24
  4. Drucker ansteuern über CP441
    Von bresei im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 05.12.2005, 17:13
  5. Drucker an S7-200
    Von Willi123 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 04.03.2005, 08:37

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •