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

Ergebnis 1 bis 7 von 7

Thema: DINT->STRING->DB

  1. #1
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe ein Problem beim Umwandeln eines DoubleInteger-Wertes in String-Zeichenkette, die in Datenbaustein geschrieben werden soll.
    Ich habe probiert den DINT->STRING-Konverter zu benutzen:

    DI_String:
    I: L#1234567
    RET_VAL: #String

    BlkMove:
    SRCBLK: #String
    Retval: nen Integer
    Dstblk: DB3.xxxxxxxxxx (was muss hier hin?)

    Danke schonmal,

    Gruß Philipp
    Zitieren Zitieren Gelöst: DINT->STRING->DB  

  2. "Versuch es mal mit einem Pointer z.B.

    P#db3.dbx0.0 byte 20

    P#Datenbaustein.Bit_bei_dem_der_String_beginnt -> Länge des String in Byte, Word oder DWord.

    Wenn Du den Datenbaustein schon Symbolische bearbeitest hast, müsste nach Eingabe des Pointers der Symbolische Name erscheinen."


  3. #2
    Anonymous Gast

    Standard

    Noch etwas:
    Wie werden Strings verwendet? Was muss ich in der Symboltabelle für einen String eintragen?

    Gruß Philipp
    Zitieren Zitieren Strings....  

  4. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Hier mal das zu "String" gehörende Beispiel aus der Step7-Hilfe:

    Code:
    Aufgabenstellung
    
    In einem Kaufhaus sollen auf einem Display zwei Texte abwechselnd angezeigt werden. Der Text soll alle fünf Minuten wechseln. 
    
    ·	Text 1: "Neue Kollektion - Besuchen Sie unsere Kindermodenabteilung"
    
    ·	Text 2: "Unser Restaurant im 6. Obergeschoß ist geöffnet"
    
    Lösungsweg
    
    Die Texte werden im Datenbaustein "TEXTBIBLIOTHEK" vorgehalten. Der gerade aktuelle Text wird mit Hilfe der SFC 20 "BLKMOV" in den Displaypuffer Datenbaustein "Textausgabe" kopiert. Der Fünf-Minuten-Takt wird mit Hilfe eines Timers realisiert.
    
    AWL-Quelle
    
    //*************************************************************************************
    
    Symboltabelle
    
    BLKMOV	SFC    20	SFC    20	Direct Word Move
    TEXTAUSGABE	DB     11	DB     11	
    TEXTBIBLIOTHEK	DB     112	DB     112	
    //********************************************************************
    DATA_BLOCK "TEXTBIBLIOTHEK"
    TITLE = enthält die beiden anzuzeigenden Texte
    VERSION : 1.0
    
      STRUCT 	
       Text1 : STRING[80] := 'Neue Kollektion - besuchen Sie unsere Kindermodenabteilung!';	
       Text2 : STRING[80] := 'Unser Restaurant im 6. Obergeschoß ist geöffnet.';	
      END_STRUCT ;	
    
    BEGIN
    END_DATA_BLOCK
    
    
    //********************************************************************
    DATA_BLOCK "TEXTAUSGABE"
    
    TITLE = Puffer für Display
    VERSION : 1.0
    
      STRUCT 	
       Display : STRING[80];	
      END_STRUCT ;	
    
    BEGIN
    END_DATA_BLOCK
    
    
    //********************************************************************
    ORGANIZATION_BLOCK OB1
    TITLE =
    VERSION : 1.0
    
    
    VAR_TEMP
      OB1_System: array[1..20] of byte;
    END_VAR
    
    BEGIN
    NETWORK
    TITLE =
    
          UN    M 24.3; 
          SPB   m001; 
          CALL "BLKMOV" (
               SRCBLK                   := "TEXTBIBLIOTHEK".Text1,
               RET_VAL                  := MW 0,
    
               DSTBLK                   := "TEXTAUSGABE".Display);
    
    m001: U     M 24.3; 
          SPB   m002; 
          CALL "BLKMOV" (
               SRCBLK                   := "TEXTBIBLIOTHEK".Text2,
               RET_VAL                  := MW 0,
               DSTBLK                   := "TEXTAUSGABE".Display);
    
    m002: NOP   0; 
    
    
    NETWORK
    TITLE = Umschalten von M24.3, falls fünf Minuten abgelaufen sind
    
          UN    T 10; 			//Timer läuft noch?
          L     S5T#5M; 
          SE    T 10;			//Start als Einschaltverzögerung 
    
          BEB   ; 				//Sprung ans Bausteinende, wenn T noch läuft
          R     T 10; 
          UN    M 24.3; 
          =     M 24.3; 			//M 24.3 negieren
    END_ORGANIZATION_BLOCK
    Leider ist das rein mit symbolischen Namen, aber das beantwortet evtl. auch deine Frage nach dem Symbolikeintrag.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. #4
    Programmierer Gast

    Standard

    Versuch es mal mit einem Pointer z.B.

    P#db3.dbx0.0 byte 20

    P#Datenbaustein.Bit_bei_dem_der_String_beginnt -> Länge des String in Byte, Word oder DWord.

    Wenn Du den Datenbaustein schon Symbolische bearbeitest hast, müsste nach Eingabe des Pointers der Symbolische Name erscheinen.

  6. #5
    Anonymous Gast

    Standard

    Es funktioniert leider doch nicht so.

    Wir haben das Eingangswort (aus Euchner Chipleser)
    PEW260 = 16#87720120 und wollen dieses als STRING in den DB1 laden.
    Wir haben es mit dem DINT->String-Konverter FC5 versucht und dann das Ergebnis mit BLKMOV FC 20 in den DB1 zu schreiben versucht.
    Es funktioniert leider nicht...
    Wer kann helfen?

    thanks
    Philipp
    Zitieren Zitieren nochmal...  

  7. #6
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    ich denke mal, das du den di_string nicht richtig benutzt.

    Code:
    temp: strg	String[7]	0.0
    
    
          L     7                           //dem verwaltungsbyte die länge des strings übergeben
          T     LB     0
    
          CALL  FC     5                    //DI_STRING
           I      :=L#-678901
           RET_VAL:=#strg
          NOP   0
    
          CALL  SFC   20
           SRCBLK :=P#L 0.0 BYTE 9          //muss 2 länger sein als der string
           RET_VAL:=MW10
           DSTBLK :=P#DB10.DBX0.0 BYTE 9
          NOP   0
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  8. #7
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für die Antwort...
    Kann man dint->String überhaupt benutzen, um 16#87720120 in einen String zu wandeln?
    Der String wird dann in einen Datenbaustein geschrieben,auf den die SIMATIC MP270 zugreift und dann den Benutzer mit dem entsprechenden Level aus der Passwortliste anmeldet..

Ähnliche Themen

  1. Frage zu FC5: DINT to STRING
    Von Scanda im Forum Simatic
    Antworten: 23
    Letzter Beitrag: 15.08.2011, 17:53
  2. Konstante String in Variable String schreiben
    Von sailor im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.12.2009, 18:01
  3. Antworten: 13
    Letzter Beitrag: 24.09.2009, 12:54
  4. Ein String kopieren in einen anderen String
    Von CanYouHelpMe im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.09.2008, 17:21
  5. STRING aus einzelnen STRING's zusammenstellen
    Von ollibolli im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.08.2006, 09:39

Lesezeichen

Berechtigungen

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