ControlLogix negative length string

I have a weird situation.

Ignition write a string to PLC#1. Then PLC#1 write this string to PLC#2 using indirect messaging.

Sometimes, PLC#1 got this weird string (with a negative length) (see below). When PLC#2 receive that and want to copy this string to another, it crash badly. So badly I need to download the program again.

Does somebody have seen this behaviour with Ignition/ControlLogix?

Ignition version 8.1.39
PLC#1 version 20.18 (Ignition use legacy driver for communication)
PLC#2 version V35.011

That length looks awfully close to the Integer max value 2147483647.

Don't know a ton about Allen Bradley PLCs, but such errors can occur when you have mismatched datatypes (signed vs unsigned int) or when you write a number that is too large to a signed int.

What is the difference between the 2 drivers that can be used to connect to a Control Logix?

With the legacy driver, I need to add ".STRING" at the end of the OpcItemPath to connect to a string tag. I'm wondering if my issue could be caused by some kind of incompatibility...

Thanks.

The legacy drivers use undocumented "direct memory access" features of the older firmware for fastest perform. (Features deleted in v21+, requiring a new driver. And then backported to the final v20 firmware for each PLC model.)

There's no way to see what might be going on, because that older protocol is undocumented. Sorry.

(You can use the new driver with the older processors--just with much lower performance.)

Thank you PTurmel!

"Undocumented" and "Direct memory access" look like something that can create the kind of problem I'm facing.

I'm switching to the new driver. Not sure if it will solve my problem, but it's easy to try.

Eeeeh, not super easy, there are some OPC Item Path syntax differences.

You're right.

But because Ignition very is well made, I've been able to very well made my UDT structure. And it took about 5 minutes to do :slight_smile:

3 Likes