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

Ergebnis 1 bis 6 von 6

Thema: Standard Baustein FC 5 DI_STRNG --- BIE ist immer 0

  1. #1
    Registriert seit
    02.09.2014
    Beiträge
    15
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Tag an alle.

    Meine Problemstellung:
    Ich möchte einen DINT Wert mit Hilfe des FC 5 in einen String wandeln. Ich rufe die Funktion in einem FC auf! Habe jedoch das Problem, das das BIE immer 0 ist. Ich habe schon mit der Länge des Strings(Temp_Str) rumprobiert, da der FC 0 zurückgibt, wenn der String zu kurz ist. Nun habe ich trotz ausreichender Länge des Strings das BIE 0, egal ob ich in die DINT Variable(Temp_Dint) 2, 253, 17982 oder anderes lade. Zusätzlich kam es vor, das der selbe Codeschnipsel in 2 verschiedenen Programmen eingebaut ist, ich nenne sie kurz Prog1 und Prog2. Bei SPS 1 (Microbox PC 4xx) hat der Code nur bei Prog1 funktioniert, bei SPS 2 (CPU3xx) nur bei Prog2, und bei SPS 3 (CPU314C) bei keinem der Programme.
    Ich sollte noch hinzufügen, dass ich den FC 5 in FC398 umbenannt habe Aufgrund unserer Bausteinorganisation.
    Habt Ihr eine Idee, wonach ich noch schauen könnte, als nach der Stringlänge(Temp_Str)?
    Wie könnte ich die Umwandlung von DInt to String im Notfall selber schreiben?
    Code:
          L     DBW   18                   
          T     #Temp_Dint
    
    
          CALL  "DI_To_String"
           I      :=#Temp_Dint
           RET_VAL:=#Temp_Str
    
    
          U     BIE
          SPBN  d010
    Ich danke schon jetzt für jede eurer Bemühungen.
    Geändert von Keb (02.09.2014 um 15:58 Uhr)
    Zitieren Zitieren Standard Baustein FC 5 DI_STRNG --- BIE ist immer 0  

  2. #2
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    RET_VAL OUTPUT STRING D, L Ergebniszeichenkette

    Der Ausgangsparameter kann nur mit einer symbolisch definierten Variable belegt werden.

    Nimm zum Testen mal eine globale oder statische als Ret-Val.

    String im Temp macht womöglich Probleme

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.788
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Hallo,
    der TEMP-String ist nicht initialisiert !!!
    Das heißt, dass zumindestens das Headerbyte des Strings, welches angibt wie lang der String deklariert ist, passend gesetzt werden muss. Nur durch das Anlegen der Variablen ist dies noch nicht gegeben ...

    Gruß
    Larry

  4. #4
    Avatar von Keb
    Keb ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.09.2014
    Beiträge
    15
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    Ich danke euch beiden Vielmals für die Vorschläge. Und werde es sobald ich die Möglichkeit habe austesten.

  5. #5
    Avatar von Keb
    Keb ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.09.2014
    Beiträge
    15
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallöchen,

    ich habe mal den Vorschlag von Larry ausprobiert und jetzt funktioniert der Code wie er sollte. Hier nochmals den Code im Ganzen:
    Code:
        L     10      
    T     LB    48
    
          L     DBW   18                   
          T     #Temp_Dint
    
    
          CALL  "DI_To_String"
           I      :=#Temp_Dint
           RET_VAL:=#Temp_Str
    
    
          U     BIE
          SPBN  end
    Ich danke euch sehr Auf Bald

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.788
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    du solltest hier nur nicht auf diese Weise den String-Header bschreiben - wenn du deine Temp-Variablen mal änderst dann funktioniert das u.U. nicht mehr.
    Besser wäre :
    Code:
    L p#Temp_Str
    LAR1
    L 10
    T B [AR1,p#0.0]
    Gruß
    Larry

  7. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Keb (03.09.2014)

Ähnliche Themen

  1. Standard PLC - Kat; was ist erreichbar
    Von Profilator im Forum Maschinensicherheit - Normen und Richtlinien
    Antworten: 42
    Letzter Beitrag: 24.07.2012, 10:44
  2. Standard Baustein-Deklaration
    Von chipset im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 30.03.2012, 18:48
  3. Instanz Baustein immer ein kompletter DB ??
    Von peter(R) im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 30.01.2009, 10:33
  4. Was ist SPBNB oder das BIE-Bit???
    Von Martink im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 23.07.2007, 19:04
  5. S7-Standard-Baustein-Verwaltung
    Von Thomas_H im Forum Werbung und Produktneuheiten
    Antworten: 0
    Letzter Beitrag: 10.11.2006, 13:21

Lesezeichen

Berechtigungen

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