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

Ergebnis 1 bis 7 von 7

Thema: FC 10 IEC-Funktion Problem

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo ich bin es schon wieder. Ich hab ein Problem mit dem FC 10 IEC-Funktion.

    Ich hab mir zwei Strings erzeugt um sie mit einander zu vergleichen. Denn String den ich durch den Datamatrix lese sieh wie folg aus.

    In der Variablentabelle

    Operand Statuswert
    DB11.DBB2 5
    DB11.DBB3 1
    DB11.DBB4 1
    DB11.DBB5 0
    DB11.DBB6 0
    DB11.DBB7 5
    .
    .
    DB11.DBB15 5

    Also das passt.

    Dann habe ich mir einen Db gebaut, der so aussieht:

    Name Type Anfangswert
    Abdeckung STRING [14] '511005..5'

    Also beide Werte passen.
    Leider bekomme ich nicht am Ausgang des FC10 ein High-Signal. Hab übrigens an dem Ausgang einen Merker gewählt um ihn in der Variablentabelle an zuschauen.

    Wo ist mein Fehler??

    Hoffe ihr könnt mir helfen.

    Danke im Voraus
    Zitieren Zitieren FC 10 IEC-Funktion Problem  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Ein String[14] ist 16 Byte lang. In Byte 0 und 1 stehen die max. und die tatsächliche Länge des Strings. Hast du die eingetragen?

    Hier mal ein kleines Bsp. in etwas anderem Zusammenhang:

    Code:
          L     P##TempString
          LAR1  
    
    //Stringkopf vorbelegen
          L     10
          T     B [AR1,P#0.0]
          L     0
          T     B [AR1,P#1.0]
    //mit Leerzeichen vorbelegen
          L     W#16#20
          T     B [AR1,P#2.0]
          T     B [AR1,P#3.0]
          T     B [AR1,P#4.0]
          T     B [AR1,P#5.0]
          T     B [AR1,P#6.0]
          T     B [AR1,P#7.0]
          T     B [AR1,P#8.0]
          T     B [AR1,P#9.0]
          T     B [AR1,P#10.0]
          T     B [AR1,P#11.0]
          T     B [AR1,P#12.0]
    
    //String wandeln mit FC5 aus den IEC Functions der Standard-Library (DI_STRNG)
          CALL  FC     5
           I      :=#ZahlDINT
           RET_VAL:=#TempString
    In diesem Fall passierte erstmal nichts, die Integer wurde nicht in den String gewandelt, bis ich die Stringlänge in Byte 0 des Strings als Vorbelegung eingetragen habe.
    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

  3. #3
    ice6461 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.08.2007
    Beiträge
    15
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo, ich habe ein Problem mit dem FC 10 aus der Bibliothek.

    Und zwar möchte ich gerne 2 String miteinander vergleichen.

    Den beiden String hab ich mal als Anhang mit beigelegt.

    Ich hab mir mal ein OP7 angeschlossen um den String1 zu lesen. Auf dem OP7 erscheint dann
    --40046003053404------

    Wie ich denn String 2 aufgebaut habe sieht ihr ja.

    Der Wert steht auch in der SPS drin.

    Leider bekomme ich am Ausgang des FC10 keinen High-Signal. Wie muss ich den 2 String den aufbauen??

    Hoffe von euch kann mir jemand helfen..
    Angehängte Dateien Angehängte Dateien

  4. #4
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    ...die aktuelle Stellenanzahl 2tes BYTE müssen mE auch gleich sein!

    OK = INHALT(gleich) + LÄNGENINFO(gleich)

    Gruß

  5. #5
    Registriert seit
    13.11.2006
    Ort
    Lengerich
    Beiträge
    68
    Danke
    0
    Erhielt 14 Danke für 14 Beiträge

    Standard

    Hallo

    schau dir mal in deinem DB12 und in dem DB200 jeweils die ersten beiden Byte an (dezimal). Die erste Zahl ist die maximale Länge des String (in deinem Falle 20) und in zweiten Byte steht die aktuelle Länge. Diese beiden Zahlen müssen für den FC10 gleich sein.

    Gruß André
    Der Fehler liegt oft zwischen den Ohren!

  6. #6
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von ice6461 Beitrag anzeigen
    Hallo ich bin es schon wieder. Ich hab ein Problem mit dem FC 10 IEC-Funktion.

    Ich hab mir zwei Strings erzeugt um sie mit einander zu vergleichen.
    Hier mal ein kurzes Programmbeispiel:

    Code:
    // FC200 : Datenmatrix
     
    // DATENMATRIX (BYTE) => DATENMATRIX (STRING)
     
          L     14                          // Maximale Länge DATENMATRIX (STRING)
          T     DB200.DBB    0
     
          L     14                          // Aktuelle Länge DATENMATRIX (STRING)
          T     DB200.DBB    1
     
          CALL  "BLKMOV"
           SRCBLK :=P#E 50.0 BYTE 14        // DATENMATRIX (BYTE)
           RET_VAL:=#BLKMOV_RET_VAR
           DSTBLK :=P#DB200.DBX2.0 BYTE 14  // DATENMATRIX (STRING)
     
     
    // DATENMATRIX (STRING) = ABDECKUNG_01 (STRING) 
     
          CALL  "EQ_STRNG"
           S1     :="DB_DATENMATRIX".DATENMATRIX
           S2     :="DB_DATENMATRIX".ABDECKUNG_01
           RET_VAL:="ABDECKUNG_01"
     
     
    // DATENMATRIX (STRING) = ABDECKUNG_02 (STRING) 
     
          CALL  "EQ_STRNG"
           S1     :="DB_DATENMATRIX".DATENMATRIX
           S2     :="DB_DATENMATRIX".ABDECKUNG_02
           RET_VAL:="ABDECKUNG_02"
    Siehe auch hier:

    http://www.sps-forum.de/showthread.php?t=14780

    Gruß Kai
    Angehängte Dateien Angehängte Dateien

  7. #7
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Und noch zwei Bilder von der Simulation mit PLCSIM.

    Gruß Kai
    Angehängte Grafiken Angehängte Grafiken

Ähnliche Themen

  1. funktion SPS
    Von SheepLord im Forum Stammtisch
    Antworten: 19
    Letzter Beitrag: 19.12.2010, 18:20
  2. Problem bei Funktion CHR
    Von biGPack im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 27.08.2009, 15:42
  3. Funktion
    Von Placidjam im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 07.05.2009, 15:26
  4. SCL & Funktion
    Von Felse im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 24.02.2009, 10:07
  5. Funktion
    Von isensa im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 26.07.2006, 18:07

Lesezeichen

Berechtigungen

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