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

Results 1 to 4 of 4

Thread: String Verarbeitung und Zebra Drucker

  1. #1
    Join Date
    22.06.2020
    Posts
    1
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    Software: TIA V16,
    Programmiersprache:SCL

    Hardware: Windows 10, CPU 1515F-2PN, Drucker ZEBRA 411

    ich habe ein Problem und zwar:
    1)
    ich lese gerade ein String-Daten( Text) aus meinem Programm , aber sie ist zu lang. Ich möchte die länge des Stringes prüfen und wenn größer als 20 ist, dann wird den Rest in der nächsten Zeile reingeschrieben.

    Wie mache ich ein Zeilenumbruch in Scl?

    2) ich habe eine Variable mit den DatenTyp Word (W16#0)
    wie kann ich den Inhalts dieser Variable Bitweise lesen? (immer in SCL)

    3) Im Handbuch vom Drucker Zebra 411 sind paar Befehle zur Steuerung oder zum Ablesen des Druckerstatus.
    Nun sende ich das Befehl ~HS an den Drucker und der Drucker sendet mich drei Strings-Daten (verschieden Länge und Inhalt) mit Informationen.

    Nur ich möchte aus dieser 3 String-Daten nur den Bit 10 vom String 2 die Informationen in SPS ablesen oder aufrufen. Dieser Bit hat den Datentyp Bool.


    Könnte Jemand mir dabei helfen?

    Ich weiße aber, nicht, ob ich an der richtigen Stelle veröffentlicht habe. ich bin noch neu hier.

    Danke im Voraus!
    Last edited by rostiger Nagel; 30.06.2020 at 17:13. Reason: Beitrag zu neuen Thema gemacht
    Reply With Quote Reply With Quote String Verarbeitung und Zebra Drucker  

  2. #2
    Join Date
    25.06.2017
    Location
    Oerlinghausen
    Posts
    2,649
    Danke
    282
    Erhielt 504 Danke für 417 Beiträge

    Default

    Nanu, noch keine qualifizierte Antwort? Anscheinend feiern alle noch Haralds Geburtstag

    Dann versuche ich's mal mit einer improvisierten, ungetesteten Antwort.
    Code:
    // Zu 1.:
    
    sCRLF := CONCAT (IN1:= CHAR#13, IN2:= CHAR#10) ; // die Zeichen CR (=13 ='carriage return') und LF (=10 ='line feed') in den String sCRLF
    sText2 := INSERT (IN1:= sText1, IN2:=sCRLF, P:= 21) ; // den String sCRLF ab Position 21 in den "zu langen" String sText1 einfügen
    
    // Zu 2.:
    
    Bit0  := Wort AND 2#0000000000000001 ; // 'Bit0' u.s.w. vom Typ BOOL, 'Wort' vom Typ WORD
    Bit1  := Wort AND 2#0000000000000010 ;
    Bit2  := Wort AND 2#0000000000000100 ;
    Bit3  := Wort AND 2#0000000000001000 ;
    Bit4  := Wort AND 2#0000000000010000 ;
    Bit5  := Wort AND 2#0000000000100000 ;
    Bit6  := Wort AND 2#0000000001000000 ;
    Bit7  := Wort AND 2#0000000010000000 ;
    Bit8  := Wort AND 2#0000000100000000 ;
    Bit9  := Wort AND 2#0000001000000000 ;
    Bit10 := Wort AND 2#0000010000000000 ;
    Bit11 := Wort AND 2#0000100000000000 ;
    Bit12 := Wort AND 2#0001000000000000 ;
    Bit13 := Wort AND 2#0010000000000000 ;
    Bit14 := Wort AND 2#0100000000000000 ;
    Bit15 := Wort AND 2#1000000000000000 ;
    
    // alternativ zu 2. mit etwas weniger Schreiberei:
    
    Bit0  := Wort AND 16#0001 ;
    Bit1  := Wort AND 16#0002 ;
    Bit2  := Wort AND 16#0004 ;
    Bit3  := Wort AND 16#0008 ;
    Bit4  := Wort AND 16#0010 ;
    Bit5  := Wort AND 16#0020 ;
    Bit6  := Wort AND 16#0040 ;
    Bit7  := Wort AND 16#0080 ;
    Bit8  := Wort AND 16#0100 ;
    Bit9  := Wort AND 16#0200 ;
    Bit10 := Wort AND 16#0400 ;
    Bit11 := Wort AND 16#0800 ;
    Bit12 := Wort AND 16#1000 ;
    Bit13 := Wort AND 16#2000 ;
    Bit14 := Wort AND 16#4000 ;
    Bit15 := Wort AND 16#8000 ;
    Zu 3.:

    Kommt ganz drauf an, wie das mit "Bit 10 vom String 2" gemeint ist.
    Bitte mal ein Beispiel von String 2 posten. Oder die entsprechende Zebra-Doku.
    Könnte mir vorstellen, dass die Information in Form von ASCII-Zeichen als Dual-Zahl (z.B. '0000010000000000') oder Hexadezimal-Zahl (z.B. '0400') dargestellt ist.
    Aus wie vielen Zeichen besteht String 2?

  3. #3
    Join Date
    22.06.2009
    Location
    Sassnitz
    Posts
    15,398
    Danke
    1,272
    Erhielt 4,532 Danke für 3,653 Beiträge

    Default

    "WORD AND Bitmaske" ergibt wieder WORD (mit allen Bits = 0 die in der Bitmaske = 0 sind und höchstens den Bits = 1 die in der Bitmaske = 1 sind). Wenn nur das Bit (als BOOL) benötigt wird, dann noch das Ergebnis auf <> 0 vergleichen.

    Bei S7-1500 kann man die Bits auch direkt per Slice-Zugriff ansprechen: BitstringVariable.%X..
    Code:
    Bit1 := (Wort AND 2#0000000000000010) <> 0 ;
    Bit2 := (Wort AND 16#0004) <> 0 ;
    Bit3 := Wort.%X3 ;  //Slice
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #4
    Join Date
    25.06.2017
    Location
    Oerlinghausen
    Posts
    2,649
    Danke
    282
    Erhielt 504 Danke für 417 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Quote Originally Posted by PN/DP View Post
    "WORD AND Bitmaske" ergibt wieder WORD ... dann noch das Ergebnis auf <> 0 vergleichen.
    Absolut, Harald!
    Ich fange wohl an, senil zu werden. Bevor ich mit dem Eintippen angefangen hatte, hatte ich genau den Vergleich auf <>0 im Kopf, aber nach dem Tippen der vielen vorlaufenden Nullen muss ich schon so erschöpft gewesen sein, dass die Kraft nicht mehr reichte.

    Sorry vielstmals!

Similar Threads

  1. TIA Quellcode an ZEBRA-Drucker senden
    By Partybiker91 in forum Simatic
    Replies: 11
    Last Post: 29.08.2017, 11:22
  2. Zebra-Drucker, S7-300 und TP177B
    By MSP in forum Simatic
    Replies: 13
    Last Post: 29.01.2015, 07:52
  3. Zebra Drucker ZM 400 über TCP/IP
    By PH2013 in forum Sonstige Steuerungen
    Replies: 8
    Last Post: 03.04.2014, 09:24
  4. Ansteuerung Zebra Drucker
    By linksaussensvl in forum Simatic
    Replies: 0
    Last Post: 23.10.2012, 15:25
  5. Zebra Drucker - Anschluss an SPS
    By heri1980 in forum Simatic
    Replies: 3
    Last Post: 07.08.2009, 11:47

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •