Siemens FC10 string compare
Siemens FC10 string compare
(OP)
Hi,
I'm scanning a code from each box to compare and see if the box scanned is a "good" box. The whole code is about 21 bytes and I only want to compare 9 bytes since those 9 bytes differentiate between the 2 types of box. I created (2) 9-byte strings in DB98, string1[9] starts at 0.0 and string2[9] starts at 12.00.
I entered 9 "good" characters in the initial value column for string2. String 1's value will be read from the scanner. FC10 is used to compare the two strings. The problem is that the results are always equal(true) doesn't matter which boxes was scanned !!! In the VAT table, string2's first character which is 0 actually starts at db98.dbb 14, not 12. According to Siemens help file, the first byte in a string is to show maximum length of the string, the second byte shows the actual string length. HELP !!! is there any suggestion on how to correctly solve my problem? Thank you
I'm scanning a code from each box to compare and see if the box scanned is a "good" box. The whole code is about 21 bytes and I only want to compare 9 bytes since those 9 bytes differentiate between the 2 types of box. I created (2) 9-byte strings in DB98, string1[9] starts at 0.0 and string2[9] starts at 12.00.
I entered 9 "good" characters in the initial value column for string2. String 1's value will be read from the scanner. FC10 is used to compare the two strings. The problem is that the results are always equal(true) doesn't matter which boxes was scanned !!! In the VAT table, string2's first character which is 0 actually starts at db98.dbb 14, not 12. According to Siemens help file, the first byte in a string is to show maximum length of the string, the second byte shows the actual string length. HELP !!! is there any suggestion on how to correctly solve my problem? Thank you





RE: Siemens FC10 string compare
RE: Siemens FC10 string compare
Regards,
Jacek
Do it right or don't do it at all.
RE: Siemens FC10 string compare
The structure
String[4]= 1234
Start adress MB0
This will use 6 bytes
MB0 Maximum Amount of char
MB1 Actual Amount used in String
MB2 |First Char if String
Addr MB0---1------2--------3--------4--------5
Load 4----4----16#31----16#32----16#33----16#34
Note the String values from MB2 is ASCII equivelant Values in Hex
Regards
RP
--Off all the things i've lost , i miss my mind the most--
RE: Siemens FC10 string compare
Jacekd, I manually entered (9), the number of valid character in my VAT table and got the compare function to work. Is modifying in the VAT table the right way/only way? What must I do to manually enter number of valid character in the strings to get the FC to work?
Thank you all in advance,
RE: Siemens FC10 string compare
Otherwise you have two ways:
- using functions from library (like I_STRNG) which are aware of how a string data type should be properly assembled
- writting your own functions - but this requires knowledge of indirect addressing in S7.
Regards,
Jacek
Do it right or don't do it at all.
RE: Siemens FC10 string compare
Thanks,
Stan
RE: Siemens FC10 string compare
Which timer (type) do you use ?
Regards,
Jacek
Do it right or don't do it at all.
RE: Siemens FC10 string compare
RE: Siemens FC10 string compare
If you ask of symbol of the one-shot in LAD then you have two options: -(P)- or POS. But check manual to be sure. It's been long time since I used LAD.
Regards,
Jacek
Do it right or don't do it at all.