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

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 33

Thema: Kopierfehler SFC20 (BLKMOV) ??

  1. #1
    Registriert seit
    14.07.2004
    Beiträge
    76
    Danke
    19
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    In meinem Programm werden Strings innerhalb eines FB´s (Instanz-DB)mittels SFC20 umkopiert. Dabei ist mir aufgefallen, dass sporadisch (sehr selten) komische Zeichen im Ziel-String landen. z.B.:

    Quell-String: 2008123456
    Ziel-String: 200812□456


    Als Bereichsangabe verwende ich Pointer z.B. DB20.DBX80.0 Byte 34


    Hat jemand von Euch schonmal etwas ähnliches beobachten können?


    Das Programm läuft übrigens in einem Weck-OB (OB31).
    Zitieren Zitieren Kopierfehler SFC20 (BLKMOV) ??  

  2. #2
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    220
    Erhielt 233 Danke für 204 Beiträge

    Standard

    Welchen HEX-Wert hat das Zeichen "□" ?

    Gelesen aus dem DB !
    Karl

  3. #3
    Wastel ist offline Benutzer
    Themenstarter
    Registriert seit
    14.07.2004
    Beiträge
    76
    Danke
    19
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Das dumme daran ist, dass ich diesen Wert nur ganz kurz in der Visualisierung (WinCC) lesen konnte. Leider wurde der Wert dann schon überschrieben bevor ich mir die Variable im Simatic-Manger anschauen konnte.

    Mein eigentliches Problem an dieser Stelle ist, dass diese String-Variablen an einen Simatic-Batch relavanten SFC-Typ als Rückmeldung dienen (Sting.AI). Da das Simatic-Batch keine "Sonderzeichen" auswerten kann, ist dann diese Charge fehlerhaft! Diese kann weder archiviert werden, noch kann man sich den Batch-Report erstellen. Mein Problem ist nun, dass in der Simatic-Batch Datenbank zwei Chargen vorhanden sind, die man nicht löschen kann. Dieses ist jetzt zwei mal inerhalb eines Monats aufgetreten.

    Meine "Notlösung" wäre alle String Variablen (insgesammt 34) vor dem SFC auf "Sonderzeichen" zu überprüfen.

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    Bist du dir sicher, dass du den String (wenn das sporadisch auftritt) nicht mitten in der Aktualisierung einliest ? Vielleicht wäre es ein Ansatz, dass die das Einlesen des String erst dann durchführst, wenn dein Zeit-OB durchgelaufen ist ... Du könntest hier ein Triggerbit toggelen und dieses in der Visu abfragen und daraufhin die Strings lesen ...

    Gruß
    LL

  5. #5
    Wastel ist offline Benutzer
    Themenstarter
    Registriert seit
    14.07.2004
    Beiträge
    76
    Danke
    19
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Bist du dir sicher, dass du den String (wenn das sporadisch auftritt) nicht mitten in der Aktualisierung einliest ?
    LL
    Meinst Du das einlesen für die Batch-Funktion?
    Da bin ich mir 100%ig sicher, dass der String währenddessen unberührt ist.

    Oder habe ich deinen Denkansatz jetzt falsch verstanden?

    Gruß Wastel

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    Der Hintergrund war :
    Bestimmt die Visu den Zeitpunkt des Einlesens des Strings oder tut das die SPS ?
    Falls es die Visu (von sich aus) bestimmt, so könnte ich es mir vorstellen wie schon von mir beschrieben ...

    Gruß
    LL

  7. #7
    Wastel ist offline Benutzer
    Themenstarter
    Registriert seit
    14.07.2004
    Beiträge
    76
    Danke
    19
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Also ich versuche mal die Funktions meines FB´s zu erklären:

    34 String-Variablen sind als Eingänge deklariert:

    String_01
    String_02
    ...usw. bis 34

    35 String-Variablen sind als Ausgange deklariert:

    String_Temp
    String_Out_01
    String_Out_02
    ...usw. bis 34

    Alle 34 + 35 String-Variablen werden Visualisiert.

    Die Eingangs-Strings werden vom Batch-System als Sollwerte vorgegeben.
    In einer Bedienmaske wählt der Anlangenbediener eine String-Variable aus (Datensatz: Integer 1-34). Jetzt wird dieser Strings mittels SFC20 in die Ausgangsvariable "String-Temp" kopiert.

    Wenn dann anschließend auf der Anlage der jeweilige Prozess abgeschlossen ist, wird über einen weiteren Befehl die "String-Temp"-Variable in den nächste freien String_Out_(01-34) kopiert.

    Die jeweiligen SFC20 Aufrufe, dauern immer nur einen Zyklus.

    Die Batch-Funktion ließt erst nach Abschluss des gesammten Prozesses, während keine Änderung der String-Werte mehr erfolgt, die Werte ein.

    Ich konnte während meiner Beobachtung feststellen, dass sich das "Sonderzeichen" auf einer der String_OUT_(01-34) eingeschlichen hat.
    In dem Eingangsbereich String_(01-34) war aber noch kein Sonderzeichen zu erkennen. Müßte also bedeuten, dass bei irgendeinen SFC-20 Aufruf etwas schief gegangen ist, oder?
    Geändert von Wastel (06.07.2008 um 17:46 Uhr)

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    Zitat Zitat von Wastel Beitrag anzeigen
    Ich konnte während meiner Beobachtung feststellen, dass sich das "Sonderzeichen" auf einer der String_OUT_(01-34) eingeschlichen hat.
    In dem Eingangsbereich String_(01-34) war aber noch kein Sonderzeichen zu erkennen. Müßte also bedeuten, dass bei irgendeinen SFC-20 Aufruf etwas schief gegangen ist, oder?
    Das ist mir bisher noch nicht vorgekommen. Wenn der SFC20 verantwortlich wäre (AR-Register verbogen oder so) dann ist es sehr unwahrscheinlich, dass ab dem "falschen" Zeichen wieder die "normalen richtigen" Zeichen kommen. Das wäre dann Zufall.

    Mich hatte das stutzig gemacht :
    Das Programm läuft übrigens in einem Weck-OB (OB31).
    Welches Intervall hast du hier ? 2 Sekunden oder etwas anderes ?

    Wie auch immer ... ich würde den "Fehler" in dem Drum-herum um den SFC suchen ...

    Gruß
    LL

  9. #9
    Wastel ist offline Benutzer
    Themenstarter
    Registriert seit
    14.07.2004
    Beiträge
    76
    Danke
    19
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Das ist mir bisher noch nicht vorgekommen. Wenn der SFC20 verantwortlich wäre (AR-Register verbogen oder so) dann ist es sehr unwahrscheinlich, dass ab dem "falschen" Zeichen wieder die "normalen richtigen" Zeichen kommen. Das wäre dann Zufall.
    Das hat mich ja auch verwundert.

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Mich hatte das stutzig gemacht :Welches Intervall hast du hier ? 2 Sekunden oder etwas anderes ?
    Der Zyklus ist auf 1000ms eingestellt.
    Warum macht es dich stutzig, dass ich meinen FB in einen Weckalarm eingebaut habe?

    Was ich dabei nur nicht ganz verstehe, dass mein Programm "reibungslos" läuft und irgendwann sporadisch dieses "Sonderzeichen" drinn ist.
    Alle Versuche den "Fehler" zu provozieren scheiterten bereits.

    Gruß Wastel

  10. #10
    Registriert seit
    24.05.2006
    Beiträge
    234
    Danke
    14
    Erhielt 77 Danke für 57 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich denke mal, du hast deinen Fehler selber schon wunderschön beschrieben:
    Dein String_Temp befindet sich in einer "OUT"-Variablen. Das klappt so nicht - es muss eine INOUT sein, da du den Wert ja erst in einem der folgenden Aufrufe verwendest, der Wert muss also wieder in den FB geladen werden.

Ähnliche Themen

  1. DBs mit SFC20 BLKMOV kopieren
    Von Lenni im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.02.2012, 22:33
  2. blkmov in SCL
    Von Felse im Forum Simatic
    Antworten: 31
    Letzter Beitrag: 25.03.2009, 14:20
  3. Probleme mit SFC20 "BLKMOV"
    Von matchef im Forum Simatic
    Antworten: 25
    Letzter Beitrag: 18.12.2008, 16:19
  4. Frage zu SFC20 BLKMOV
    Von chivas im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 24.02.2005, 14:47
  5. indriekte Adressierung von sfc20 (blkmov)
    Von Anonymous im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 04.06.2004, 08:26

Lesezeichen

Berechtigungen

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