Strange AOI behavior at V32

1 post in this topic


I'm experiencing a very strange issue with the functionality of an AOI after upgrading to firmware V32.

Bit of background:

  • CPU is a CLX 1756-L81E. The AOI in question is passed a BOOL array of size 1472 from the HMI, call it HMI_IN[1472], tagged against an InOut parameter, which is defined as say BOOL_IN[1472]. This array is basically holding a load of HMI maintained push buttons, to provide an 'enable' at a given time of day (peg timer).
  • The AOI has been live in multiple projects at V31 or lower, with no issues whatsoever. This particular project also started life at V31, and worked perfectly throughout all my testing at that point.
  • The CPU firmware was then flashed up to V32.014, and Studio 5000 taken to V32.03.

The problem:

  • The problem is related to indirect referencing using the BOOL[1472] array. The AOI takes the current time of day and calculates which element of the 1472 should be examined - this value is held in a DINT called INDEX. We then use an XIC on "BOOL_IN[INDEX]"  to fire a single BOOL called ACTIVE, which is an output parameter.
  • The AOI is always correctly calculating the INDEX value based on the current time of day. The XIC is then becoming true (green), but the ACTIVE bool is not being set! What is really strange is that if you toggle on a bool of minus 32, the XIC goes false, but the ACTIVE bool is set i.e when HMI_IN[ACTIVE-32] is on, ACTIVE becomes set, even though the XIC is correctly showing false. In other words, if the BOOL for the current time segment is 267, turning on HMI_IN[235] causes the ACTIVE bit to be set.

What I've tried:

  1. Re-flashing V31 - this immediately resolved the issue. Flashing back to V32 and the problem immediately returns.
  2. Based on a technote I found which was very very loosely related (something about V32 & 33 being enhanced and having a special structure for BOOLS in AOI's), I exported the entire project file as an l5k, then reimported from this. THIS RESOLVED THE ISSUE, or so I thought.
  3. Having now moved on to a second project using the same AOI (again was V31, been upgraded to V32). This project uses three instances of the AOI - two instances of the AOI worked fine straight after the upgrade, but the third had the same issue as per the above. So I exported/imported as l5k, but rather than fix the problem, it made all three instances broken!
  4. Since then, I've tried:
  • exporting/reimporting the AOI itself
  • deleting & recreating the effected parameters
  • deleting the AOI and recreating it from scratch.
  • Putting the AOI in a periodic task
  • Deleting all other logic from the AOI other than the effected area
  • Delete & recreate the tags assigned against the AOI
  • Added my own temporary BOOL[1472] (not set via the HMI). None of the above worked.

Interestingly, it seems on the odd occasion where it has been working, once that project is saved and I come back to it, download it to the CPU, it remains working. It's like whatever is wrong is held in the project file. My concern (with the first project) is I don't know what's causing it, so I can't guarantee any future action won't suddenly break it. It wouldn't be so bad if it never worked, but the fact I've witnessed it working @ V32 sometimes is what is really concerning.

Video 1 shows the XIC correctly becoming true but the ACTIVE bool not getting set. Video 2 shows the effect of turning on the "minus 32" bool - the XIC correctly goes false, but the ACTIVE bool is set.

Any ideas please? Going to V33 isn't currently an option I have, neither is V32.04 (the client only approves certain versions based on their own staff laptops' FTSP version etc.)




Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now