Hi and Welcome to the Forum!
MightyJoeOld said:
...All of the read/write instructions are in the compact logix...
...I believe they are all cascading, should not be parrelel but I will check again
You need to be a little bit more specific. How many is "all"?
One thing to look at is the CompactLogix' processor system overhead time slice. Messages are executed during this phase of the controller's house keeping. Depending on the level of messaging, and the size in elements, this time slice may not be long enough at times to execute all messages fully.
Also, the CompactLogix uses Unconnected Buffers for messages to SLC/MicroLogix. The default is 10 Outgoing Buffers, but this can be increased, with caution, to up to 40 Unconnected Buffers. Again, depending on the level of messaging, the Buffers may be overrun at certain times.
Also, are you are potentially writing data to the ML1400, while it is potentially using the existing data, for what we do not know yet exactly, but it is possible that overwriting the existing, and potentially in use data, could throw a spanner in the works?
While it might be more convenient to do all the messaging in the CompactLogix, it is not generally good practice to write to controllers, or more, to write directly to the addresses in use.
A better practice, if you must write, is to write the data to holding registers in the ML1400, and access the fresh data as and when needed. i.e. the addresses being used in your logic, that are sourced from the CompactLogix, should be indirectly sourced. So at the end of a batch, or cycle, etc., you then update the data locally for the next batch/cycle, and not during.
Do any messages fault?
nwboson said:
...Have you made sure each MSG block is complete (check DN/ER) before calling the next MSG block?...
I don't believe you have answered this important question?
Regards,
George