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

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

Thema: DB-Änderung melden

  1. #11
    Registriert seit
    13.09.2005
    Beiträge
    633
    Danke
    8
    Erhielt 8 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    CALL "R_STRNG"
    IN :="data_in".Temp1
    RET_VAL:=#str


    CALL "BLKMOV"
    SRCBLK :=#str
    RET_VAL:=MW3
    DSTBLK :="dfx_data".temp_1_D

    Der Wert Temp1 ist in einem DB als REAL Variable gepseichert. Der Wert wird aus dem DB ausgelesen, in einen String konvertiert und sollte in einem anderen DB gespeichert werden.

    Absolut wäre das Ziel DB130.DB28

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

    Standard

    das prob ist glaub ich nich die sfc20 sondern die fc30

    ich hab mal was getestet

    temp: st1 String[14] adresse:20
    Code:
          CALL  FC    30
           IN     :=3.150000e+000
           RET_VAL:=#st1
    
          L     LD    20
          T     MD    20
          L     LD    24
          T     MD    24
          L     LD    28
          T     MD    28
          L     LD    32
          T     MD    32
    da stehen nur nullen drin.
    im moment keine ahnung warum
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. #13
    Registriert seit
    13.09.2005
    Beiträge
    633
    Danke
    8
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Ich korrigiere auch meine Angabe. Es stehen nicht die Anfangswerte sondern nur Nullen drin. Anfangs war das mein Anfangswert, aber den habe ich jetzt geändert und trotzdem einen String voller Nullen.

    Liegt es an der Konvertierung oder am schreiben eines Strings in einen DB.

    Ich muß auch INT - Konvertieren -> gleicher Effekt.

  4. #14
    Registriert seit
    13.09.2005
    Beiträge
    633
    Danke
    8
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Es funktioniert. Folgende Vorgehensweise:

    1. den FC30 aus der stdlib verwenden, nicht den aus der standard library
    2. den FC30 nur aus einem FB aufrufen, mit OBs oder FCs funktioniert es interessanterweise nicht

    Klingt komisch, ist es auch.

  5. #15
    Registriert seit
    24.09.2003
    Beiträge
    122
    Danke
    0
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Hallo,


    das funktioniert vermutlich nicht, weil man
    bei 'Stringvariablen' in den Lokaldaten vor Aufruf
    der FC 30 die definierte Länge des Strings manuell
    in Byte 0 eintragen muss.

    (siehe auch in der Hilfe zu FC30 --klick auf 'STRING')


    mfg.

    Rolf

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

    Standard

    ahhhh. hab ich auch mal was gelernt.

    so gehts
    Code:
          L     14
          T     LB    20
    
          CALL  FC    30
           IN     :=3.150000e+000
           RET_VAL:=#st1
    
          L     LD    20
          T     MD    20
          L     LD    24
          T     MD    24
          L     LD    28
          T     MD    28
          L     LD    32
          T     MD    32
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  7. #17
    Registriert seit
    13.09.2005
    Beiträge
    633
    Danke
    8
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Die Umwandlung des Real funktioniert, dafür habe ich jetzt das selbe Problem bei der Umwandlung von INT - Variablen in einen STRING.

    Ich habe einen FB, einen String[3] (Vorzeichen + 2 stellige Zahl) als temporäre Variable angelegt und bekomme trotzdem nur Nullen!

    Warum?

  8. #18
    Registriert seit
    13.09.2005
    Beiträge
    633
    Danke
    8
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Anmerkung: An der Länge des Strings kann es auch nicht liegen, da ich die Länge des Strings bereits auf 20 erhöht habe. Das sollte auf alle Fälle für einen INT reichen!

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    geht ganz genauso. nicht vergessen die stringlänge vorher anzugeben

    Code:
          L     4                           //länge von #string_1
          T     LB     0
    
          CALL  FC    16
           I      :=347
           RET_VAL:=#string_1
          NOP   0
    
          L     LB     0
          T     MB    30
          L     LB     1
          T     MB    31
          L     LB     2                    //vorzeichen
          T     MB    32
          L     LB     3                    //ab hier beginnt  der wert
          T     MB    33
          L     LD     4
          T     MD    34
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

Ähnliche Themen

  1. Batteriefehler bei S5 Melden
    Von 4nD1 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 05.07.2012, 14:41
  2. Jetter-Programmierer melden
    Von Drain im Forum Sonstige Steuerungen
    Antworten: 17
    Letzter Beitrag: 09.01.2011, 20:53
  3. Systemfehler melden
    Von snowbda im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 07.10.2008, 08:50
  4. Antworten: 15
    Letzter Beitrag: 09.12.2007, 14:21
  5. Antworten: 0
    Letzter Beitrag: 25.08.2007, 13:34

Lesezeichen

Berechtigungen

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