Ignition - Siemens String Addressing

Hello There,
I found something very strange while configuring the tags today.
PLC - S7-300
Ignition - 8.0.10

I have a STRING tag sitting in a DB memory with the address - DB36,STRING0

When I try to map this tag to Ignition, ignition gives no value. (it’s null) -

However, when I try with address - DB36,STRING1, it gives me a string missing first character.

Any ideas ?

Thanks in advance.

Hmm. My best guess would be that the String bytes we read from the PLC aren’t actually in the S7 string format. How did that string get there? What happens if you write a new value?

Ignition expects a format like this:

[MaxLen][ActualLen][Remaining Bytes...]

If either of those MaxLen or ActualLen bytes are 0 that would explain the empty string you see.

Interesting !!

First of all, currently, the data is coming from WinCC to PLC. Ignition is only reading.

However, in my test PC, when I wrote STRING to 0, it actually took it and I can see the same value in PLC (monitor mode). Also, when I wrote a string value to PLC and download PLC, I can see the whole string starting from 0.

So, the question is why would PLC not read the String0 written by WinCC.

Also, when I move this String to another DB let say (DB61,STRING20), it reads whole string just fine.

Thanks,
Kaushik Shah

Hi Kaushik,

Did you get this working? I am having the same problem, it gives me a string always missing the first character, if my the address of my string is for example DB36,STRING40 it give me a null string, however if I move the offset to DB36,STRING41 it reads it just fine but then of course the first character is missing.

Does anyone know how to solve this?

Cheers,

David

If you have zero header bytes in the PLC, and it sounds like you do, you need to fix that in the PLC.

Alright! Thank you very much I will do that!