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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: Umwandeln von Zahlen

  1. #1
    Registriert seit
    22.03.2010
    Beiträge
    17
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Zusammen.

    Ich habe eine CPU317 2 PN / DP mit einem CP-343. Diese Hardware soll eine alte S5 CPU944 ersetzen. Jetzt gibt es aber ein Datenbaustein zur Übertragung von Bits an ein Rechnersystem. Dieser Rechner erhält die Daten als Telegramm.

    In S5 sieht der DB so aus:

    DW0 KC '0034' ;Telegrammlänge in Byte
    DW2 KM 00000000 00000000
    DW3 KM 00000000 00000000
    DW4 KM 00000000 00000000
    :
    :
    DW16 KM 00000000 00000000
    DW17 KC 'ETX_' ;Endekennung Telegramm
    DW19 KH 0000

    Der übergeordnete Rechner erkennt also das jetzt ein Telegramm von der Steuerung mit einer Länge von 34 Byte kommt und das ETX_ gibt das Telegrammende an. Beides beides wird an dem Rechner auf richtigkeit kontrolliert.

    Jetzt will ich diesen Datenbaustein in S7 umwandeln, also muss ich die KC's als String angeben. Leider verschieben sich dadurch bei mir die Adressen der Daten zwischen DW 2 und 16, und die ganze Telegrammlänge stimmt nun nicht mehr.

    Kann mir da einer von euch einen Tipp geben?

    Gruß
    Torsten

    P.S: An dem übergeordneten Rechner kann ich die Abfrage der Telegrammlänge nicht ändern.
    Zitieren Zitieren Umwandeln von Zahlen  

  2. #2
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Warum ein String?

    Du hast vorne vier ASCII-Zeichen, ein paar HEX-Worte und noch mal vier ASCII.

    Da würde ich den neuen DB genauso aufbauen...
    Das Grauen lauert in der Zwischenablage !!

  3. #3
    firefox711 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.03.2010
    Beiträge
    17
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja will bzw. muss ich auch, aber wie bekomme ich die "Zeichen ETX_" in den neuen DB? KC kennt S7 leider nicht.

  4. #4
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Einfach die erten und letzten Zeichen als ARRAY [1..4]
    CHAR

    definieren

    und dann L 'ETX_'
    T DB.DBD...
    Das Grauen lauert in der Zwischenablage !!

  5. #5
    firefox711 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.03.2010
    Beiträge
    17
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ???? Jetzt steh ich am Bahnhof, sry.

    Also der Datentyp ist dann ARRAY oder CHAR??? Und die Zeile DW0 und DW17 stehen fest im DB. Da brauche ich im Programmablauf nix reinschreiben. Kannst du mir bitte kurz aufschreiben, wie der DB dann aussehen soll?

    Danke dir

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von firefox711 Beitrag anzeigen
    KC kennt S7 leider nicht.
    Das ist Dein Part als erfahrener Programmierer, bestimmte S5-Anweisungen in die entsprechenden S7-Anweisungen zu übersetzen. Den automatischen Konverter könnte ja sonst jeder anschmeissen ...

    Du könntest den DB z.B. so deklarieren:
    Code:
     +0.0 len1  CHAR          '0'
     +1.0 len2  CHAR          '0'
     +2.0 len3  CHAR          '3'
     +3.0 len4  CHAR          '4'
     +4.0 text  ARRAY[2..16]  W#16#0
                WORD
    +34.0 etx1  CHAR          'E'
    +35.0 etx2  CHAR          'T'
    +36.0 etx3  CHAR          'X'
    +37.0 etx4  CHAR          '_'
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #7
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Guter Vorschlag. Muss ich mir merken.

    Bei meiner Lösung muss ich halt initialisieren...
    Das Grauen lauert in der Zwischenablage !!

  8. #8
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Code:
    
    Tele_START    ARRAY[1..4]        vorläufige Platzhaltervariable    
                          CHAR            
    DW2    WORD    W#16#0        
    DW3    WORD    W#16#0        
    DW4    WORD    W#16#0        
    DW5    WORD    W#16#0        
    DW6    WORD    W#16#0        
    DW7    WORD    W#16#0        
    DW8    WORD    W#16#0        
    DW9    WORD    W#16#0        
    DW10    WORD    W#16#0        
    DW11    WORD    W#16#0        
    DW12    WORD    W#16#0        
    DW13    WORD    W#16#0        
    DW14    WORD    W#16#0        
    DW15    WORD    W#16#0        
    DW16    WORD    W#16#0        
    Tele_END    ARRAY[1..4]        vorläufige Platzhaltervariable    
                             CHAR            
    DW19    WORD    W#16#0
    Das Grauen lauert in der Zwischenablage !!

  9. #9
    firefox711 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.03.2010
    Beiträge
    17
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Dann muss ich aber bei dir noch das DW 0 mit '0034' und das DW 17 mit 'ETX_' irgendwo im Programm beschreiben, oder?

  10. #10
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Yep.

    Kostet 4 Zeilen und mann kann danach suchen...
    Das Grauen lauert in der Zwischenablage !!

Ähnliche Themen

  1. S5 - Addition von 32 bit zahlen
    Von matziane im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 23.10.2012, 11:52
  2. Vergleich von Real-Zahlen
    Von Tobi_90 im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 21.04.2012, 21:36
  3. Zahlen umwandeln
    Von Jumpinjack im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 05.01.2011, 11:36
  4. Antworten: 5
    Letzter Beitrag: 30.04.2010, 11:11
  5. Zusammenfügen von Zahlen
    Von HTL im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 16.05.2009, 09:23

Lesezeichen

Berechtigungen

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