Large array read-write issues with Allen Bradley PLCs (ControlLogix)

Discussions about product bugs & problems!
Note: This is no replacement for the Official ETM Support!
2 posts • Page 1 of 1
tpjctrl
Posts:145
Joined: Tue May 08, 2018 10:30 am

Large array read-write issues with Allen Bradley PLCs (ControlLogix)

Post by tpjctrl »

Curious if anyone here has much experience with using WinCC OA to work with a ControlLogix PLC? I've not had much help via Siemens ticketing system as there doesn't seem to be a lot of CLX knowledge within the ETM support team and it's hard to re-create issues without actually running things on a CLX PLC (which ETM doesn't seem to have).

Main problem I've got at this stage is setting up large arrays as In/Out addresses. There seems to be two limitations that I've discovered so far:

1. The array I'm trying to read/write is Status[3150], it's a DINT array, so each element is 4 bytes / 32 bits (so an int32), these is being read into a dyn_int as an array, so the configured address is:

Status[0]:3150

Now this doesn't work as it's too much data in one go. I seem to remember that there's a limitation of 320 on array elements (although for the life of me I cannot find it anywhere in the Help file). So this was modified to:

Status[0]:320

After hitting Apply this seems to work, but when you try to write into index > 100 it fails to write the data into the PLC. Changing for example the 101st position in the dyn_int and hitting Apply, shows a "Transfer Aktiv" (or smth similar) in the datapoint original config, but it fails to set the value in the PLC and reverts back to the old value. To work around this we've broken the array even further, into 100 element chunks:

Status[0]:100

Which works fine all the way down to the last element. Great, or so we thought...

2. Read / write into index > 1000 isn't possible for some reason. Because the whole array has 3150 elements, to cover the whole thing we had to set up 32 dyn_int datapoints to get the whole lot and discovered that anything past index 1000 doesn't work ie. WinCC OA says the datatag doesn't exist in the PLC. So Status[1000]:## doesn't work at all and we cannot seem to get 2/3 of the data in the array. If a single int datapoint is configured to read / write to a single element in the array, for example Status[2000], then there's no issue, it's only on longer array read / writes where the issue exists.

Are the above bugs or am I simply doing something wrong?

Cheers,
T.

pwbarrett
Posts:9
Joined: Mon Jan 31, 2011 10:18 am

Re: Large array read-write issues with Allen Bradley PLCs (ControlLogix)

Post by pwbarrett »

Tom,
This does indeed sound strange. Most of the recent testing has been with separate Read and Write DPs - I will need to set up a test here and try it.
In the meantime...

What version of WinCC OA are you using?

What Ethernet adapter is in the PLC? Do you know if it is one that will support the larger message-size in the driver config panel? If so, you should be able to transfer 2048-bytes at a time rather than 500.
For Read DPs, you should be able to read an array of any size. Writes are limited to blocks no larger than the configured message size.

I will set up a test here and see how it goes.

-- Paul B.

2 posts • Page 1 of 1