FC 10 IEC-Funktion Problem

ice6461

Level-1
Beiträge
15
Reaktionspunkte
0
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
 
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.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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..
 

Anhänge

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

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

Gruß
 
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é
 
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.

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:

https://www.sps-forum.de/threads/14780

Gruß Kai
 

Anhänge

Und noch zwei Bilder von der Simulation mit PLCSIM.

Gruß Kai
 

Anhänge

  • VAT_01.jpg
    VAT_01.jpg
    428,6 KB · Aufrufe: 139
  • VAT_02.jpg
    VAT_02.jpg
    428,3 KB · Aufrufe: 69
Zurück
Oben